1 00:00:08,119 --> 00:00:11,630 [Powered by Google Translate] David J. MALAN: U redu, ovo je CS50, a to je 2 00:00:11,630 --> 00:00:14,790 početak tjedna dva. 3 00:00:14,790 --> 00:00:16,300 Hvala Vam. 4 00:00:16,300 --> 00:00:19,000 Počnimo ovdje s telefonskog poziva. 5 00:00:19,000 --> 00:00:30,005 Ja sam o birati 617-bug-CS50. 6 00:00:30,005 --> 00:00:31,230 CS50: Ovo je CS50. 7 00:00:31,230 --> 00:00:33,930 Za Shuttlea Boy, pritisnite jednom. 8 00:00:33,930 --> 00:00:36,660 Da početi ispočetka, pritisnite 9. 9 00:00:36,660 --> 00:00:38,180 David J. MALAN: Dakle, kazao je za Shuttlea Boy, pritisnite 1. 10 00:00:38,180 --> 00:00:41,560 Tako ćemo pritisnuti jedan. 11 00:00:41,560 --> 00:00:43,230 CS50: Koji je vaš izvor? 12 00:00:43,230 --> 00:00:45,340 Za quad, pritisnite 1. 13 00:00:45,340 --> 00:00:47,080 Mather, pritisnite 2. 14 00:00:47,080 --> 00:00:49,240 Boylston, pritisnite 3. 15 00:00:49,240 --> 00:00:51,280 Lamont, pritisnite 4. 16 00:00:51,280 --> 00:00:53,210 Mem Hall, pritisnite 5. 17 00:00:53,210 --> 00:00:55,660 Da početi ispočetka, pritisnite 0. 18 00:00:55,660 --> 00:00:59,590 David J. MALAN: Mi ćemo pritisnite 1 za quad. 19 00:00:59,590 --> 00:01:03,610 CS50: Sljedeća prijevoz ostavlja ovaj vrlo minute na 13:10, a 20 00:01:03,610 --> 00:01:09,820 zatim na 13:20, 13:30, 13:40. 21 00:01:09,820 --> 00:01:12,030 Ovo je CS50. 22 00:01:12,030 --> 00:01:15,570 >> David J. MALAN: Dakle, ovo je CS50 glas. 23 00:01:15,570 --> 00:01:18,030 I to je primjer vrste završnih projekata, za 24 00:01:18,030 --> 00:01:19,500 Na primjer, možete odgristi prema 25 00:01:19,500 --> 00:01:20,600 kraj semestra. 26 00:01:20,600 --> 00:01:23,840 Na primjer, da shuttleboy.cs50.net postoji - 27 00:01:23,840 --> 00:01:28,200 zapravo projekt koji sam prvi put pisao nakon uzimanja CS51 28 00:01:28,200 --> 00:01:29,740 natrag kad sam bio student. 29 00:01:29,740 --> 00:01:32,250 A inspiracija ovdje bio tada, sve što su imali bilo 30 00:01:32,250 --> 00:01:34,320 tiskani prijevoz autobusom rasporedi, i nije bilo 31 00:01:34,320 --> 00:01:35,970 Pojam gleda stvari online. 32 00:01:35,970 --> 00:01:38,730 I tako sam vrsta goluba u jednom vikendu, izlio kroz 33 00:01:38,730 --> 00:01:41,460 tiskan raspored, te ga koristiti na računalnog programa. 34 00:01:41,460 --> 00:01:43,790 U to vrijeme, računalni program se dogodilo da se pisani 35 00:01:43,790 --> 00:01:47,110 u C. I vi zapravo ga je vodio upisivanjem prijevoza Boy na 36 00:01:47,110 --> 00:01:48,600 treperi brz kao što smo radili do sada. 37 00:01:48,600 --> 00:01:50,450 No, tijekom godina, to je evoluirao u trenutak 38 00:01:50,450 --> 00:01:51,390 poruka bot. 39 00:01:51,390 --> 00:01:53,970 To je evoluirala u novije vrijeme u ovoj web stranici, u 40 00:01:53,970 --> 00:01:57,720 SMS-based alat, kao i u ovaj glas-based alat. 41 00:01:57,720 --> 00:02:00,170 A to je da se naslutiti na svašta da možete 42 00:02:00,170 --> 00:02:02,380 učiniti za sebe po semestru kraja. 43 00:02:02,380 --> 00:02:05,490 >> Na primjer, postoje, SMS verzija Shuttle Boy događa 44 00:02:05,490 --> 00:02:06,510 djelovati kako slijedi. 45 00:02:06,510 --> 00:02:10,880 Ako, na svoj mobilni telefon, možete poslati SMS poruku na 41411, a 46 00:02:10,880 --> 00:02:14,300 zatim poslati posebnu sboy simbol, za Shuttlea Boy, 47 00:02:14,300 --> 00:02:18,350 slijedi A i B, gdje A je podrijetla i B je 48 00:02:18,350 --> 00:02:19,070 odredište - 49 00:02:19,070 --> 00:02:21,030 Primjerice, Boylston Space Quad - 50 00:02:21,030 --> 00:02:23,330 ono što bi trebalo vratiti u roku od nekoliko sekundi je tekst 51 00:02:23,330 --> 00:02:25,820 Poruka iz Shuttlea Boy vam reći točno kada 52 00:02:25,820 --> 00:02:28,990 Sljedećih nekoliko letjelica su, od tog trenutka će da 53 00:02:28,990 --> 00:02:29,640 točke B. 54 00:02:29,640 --> 00:02:32,510 A to je više opći primjer onoga što je poznato kao 55 00:02:32,510 --> 00:02:33,920 pomoću API-ja. 56 00:02:33,920 --> 00:02:36,930 >> Tako na primjer, ovo ovdje je samo shuttleboy.cs50.net, 57 00:02:36,930 --> 00:02:39,300 Stvarni web-based utjelovljenje toga. 58 00:02:39,300 --> 00:02:42,480 No, podaci koji naglašava ovaj i druge aplikacije koje CS50 59 00:02:42,480 --> 00:02:45,560 razvila su svi izloženi svima ovdje u obliku 60 00:02:45,560 --> 00:02:49,340 od API, sučelja za programiranje aplikacija. 61 00:02:49,340 --> 00:02:52,220 A to je samo fancy način govoreći da su ljudi mi se sviđa na 62 00:02:52,220 --> 00:02:56,010 Internet i drugi su proveli neko vrijeme stvaranja 63 00:02:56,010 --> 00:02:59,970 softver koji možete koristiti kako bi se zgrabite podatke od nas i 64 00:02:59,970 --> 00:03:02,510 onda graditi svoje vlastite aplikacije na vrh 65 00:03:02,510 --> 00:03:03,840 tog skupa podataka. 66 00:03:03,840 --> 00:03:06,610 Tako na primjer, ovo API prijevoza Dječak stranica ovdje, koji 67 00:03:06,610 --> 00:03:09,390 se događa da se u CS50 priručniku, bitno dokumente 68 00:03:09,390 --> 00:03:13,080 kako možete ići o postavljanju CS50 poslužiteljima za prijenos podataka. 69 00:03:13,080 --> 00:03:16,240 Na primjer, ako ste upoznati s CSV datoteka, zarez 70 00:03:16,240 --> 00:03:18,940 vrijednosti odvojenih, to su samo neka vrsta brz i prljave 71 00:03:18,940 --> 00:03:20,310 Excel-poput datoteka. 72 00:03:20,310 --> 00:03:23,110 Dakle, možete pitati Shuttle Boy za sve podatke o svim 73 00:03:23,110 --> 00:03:25,090 Kuće i njihovi GPS koordinate, a vi ćete dobiti 74 00:03:25,090 --> 00:03:27,300 natrag, u suštini, proračunske tablice kao što je to da 75 00:03:27,300 --> 00:03:30,820 onda možete pročitati u programu svoj vlastiti, a zatim 76 00:03:30,820 --> 00:03:33,250 generirati rezultate, poput prijevoza Boy sama 77 00:03:33,250 --> 00:03:34,160 se događa da se radi. 78 00:03:34,160 --> 00:03:37,030 Za one više poznatih, više modernih podataka reprezentacija 79 00:03:37,030 --> 00:03:39,420 uključuju JSON, JavaScript Object notaciji. 80 00:03:39,420 --> 00:03:40,620 Nešto će se vratiti k vama prema 81 00:03:40,620 --> 00:03:41,720 kraj semestra. 82 00:03:41,720 --> 00:03:45,440 >> Ali opet, to je samo jedna od nekoliko CS50 vlastite API. 83 00:03:45,440 --> 00:03:48,320 A uzbudljiva stvar je sada, ovih dana, Facebook i 84 00:03:48,320 --> 00:03:51,110 Twitter i Google i prilično mnogo svaki popularan website out 85 00:03:51,110 --> 00:03:54,130 tamo ima nekakav API, što znači da ako ste pročitali 86 00:03:54,130 --> 00:03:56,620 dokumentacija na svojim web stranicama, od vas se prijavili za 87 00:03:56,620 --> 00:03:59,980 račun, onda možete početi pisati softver na vrhu 88 00:03:59,980 --> 00:04:03,680 god alata ili podataka koje tvrtka ima pruža. 89 00:04:03,680 --> 00:04:06,210 I tako jedan od naših vlastitih nastavnih bližnjima par godina unatrag 90 00:04:06,210 --> 00:04:07,620 napisao Mac verziju toga. 91 00:04:07,620 --> 00:04:10,990 Tako na link pod nazivom Mac ovdje u gornjem lijevom kutu, možete zapravo 92 00:04:10,990 --> 00:04:13,940 preuzeti widget Mac OS koji radi na svoj Mac veze 93 00:04:13,940 --> 00:04:15,040 iste vrste stvari. 94 00:04:15,040 --> 00:04:17,970 Dakle, to je sve o izgradnji na vrhu skupine podataka poput ovih. 95 00:04:17,970 --> 00:04:21,839 Ali više o tome krajem semestra. 96 00:04:21,839 --> 00:04:25,780 >> Dakle, neka je roniti u stvarnom brzo bug, samo da nekako dobiti 97 00:04:25,780 --> 00:04:27,990 stvari zagrijati i danas, i mislim natrag na neke od 98 00:04:27,990 --> 00:04:29,660 stvari koje smo gledali prošlog tjedna. 99 00:04:29,660 --> 00:04:32,840 Konkretno, pusti me naprijed i povucite prema gore, recimo, 100 00:04:32,840 --> 00:04:34,080 ovaj primjer ovdje. 101 00:04:34,080 --> 00:04:37,500 Buggy1.c, ovo je dostupan na stazi web stranici ako želite 102 00:04:37,500 --> 00:04:40,250 vole ga preuzeti i guranje oko sebe. 103 00:04:40,250 --> 00:04:43,520 Ali neka je povećavanje ovdje na ovom prilično kratkom programu, a samo 104 00:04:43,520 --> 00:04:46,550 super-brzo rekapitulacija neke od osnovnih građevnih blokova koji 105 00:04:46,550 --> 00:04:48,880 mi stvarno ide na samo početi uzimati zdravo za gotovo. 106 00:04:48,880 --> 00:04:51,860 >> Dakle plavom stvari, u redovima od 1 do 9, samo su 107 00:04:51,860 --> 00:04:53,670 softball pitanja. 108 00:04:53,670 --> 00:04:54,590 Dakle, to su samo komentari. 109 00:04:54,590 --> 00:04:56,230 Oni nemaju funkcionalnu značenje. 110 00:04:56,230 --> 00:04:58,460 No, oni su komentari u smislu da oni primjećuje da 111 00:04:58,460 --> 00:05:02,010 Ja, čovjek, napravio sebi, tako da u predavanju i nakon 112 00:05:02,010 --> 00:05:04,340 predavanje, ja zapravo mogu sjetiti što je ovaj program 113 00:05:04,340 --> 00:05:07,120 ne bez da pročitate kroz to liniju po liniju i 114 00:05:07,120 --> 00:05:08,990 rekreacija povijest u mom umu. 115 00:05:08,990 --> 00:05:11,000 Štoviše, ako sam predati ovaj program kako bi netko drugi poput 116 00:05:11,000 --> 00:05:14,420 da, to je puno jasnije za vas, zbog komentara kao što je ovaj, 117 00:05:14,420 --> 00:05:16,680 što je program zapravo radi, ili barem ono što 118 00:05:16,680 --> 00:05:18,210 Program bi trebao biti događaj. 119 00:05:18,210 --> 00:05:20,760 Hoće li ili ne to je točno je druga stvar uopce. 120 00:05:20,760 --> 00:05:25,040 Sada, u C, s multi-line komentare, podsjetiti da je na liniji 121 00:05:25,040 --> 00:05:27,880 jedan ovdje je magija simbol, / *. 122 00:05:27,880 --> 00:05:30,380 To znači da ovdje dolazi početak komentaru. 123 00:05:30,380 --> 00:05:34,560 I ništa drugo pitanjima dok ne dođete do kraja terminator, 124 00:05:34,560 --> 00:05:36,700 što je * /, suprotno. 125 00:05:36,700 --> 00:05:39,120 Dakle, činjenica da imam 80-ak neke zvijezde ovdje iz 126 00:05:39,120 --> 00:05:41,550 lijeva na desno je zapravo samo estetski detalj. 127 00:05:41,550 --> 00:05:43,370 To nema funkcionalnu značenje. 128 00:05:43,370 --> 00:05:44,490 >> Sada o tome liniji 11? 129 00:05:44,490 --> 00:05:46,940 Što to učiniti u laik uvjete? 130 00:05:51,560 --> 00:05:52,540 Što je to? 131 00:05:52,540 --> 00:05:54,280 PUBLIKA: Uključuje standard. 132 00:05:54,280 --> 00:05:54,740 David J. MALAN: OK, dobro. 133 00:05:54,740 --> 00:05:57,500 Dakle, to uključuje stdio.h knjižnicu. 134 00:05:57,500 --> 00:05:58,230 Dakle, što to znači? 135 00:05:58,230 --> 00:06:01,570 Pa, u toj datoteci, stdio.h su cijela hrpa 136 00:06:01,570 --> 00:06:03,320 Funkcija deklaracije - 137 00:06:03,320 --> 00:06:05,290 da je, kod koje je netko drugi napisao. 138 00:06:05,290 --> 00:06:08,160 I savršen primjer funkcije koja je proglašena u 139 00:06:08,160 --> 00:06:10,250 stdio.h je - 140 00:06:10,250 --> 00:06:11,980 koji omiljeno do sada? 141 00:06:11,980 --> 00:06:14,300 Dakle printf, jedan od najčešćih one za korištenje, sigurno 142 00:06:14,300 --> 00:06:15,840 rano, iz tog knjižnici postoji. 143 00:06:15,840 --> 00:06:19,290 Ako ja ne isključujem tu liniju koda, zveka će vikati 144 00:06:19,290 --> 00:06:22,550 na meni nešto o korištenju crno simbol. 145 00:06:22,550 --> 00:06:24,930 Nešto neprijavljeni je vjerojatno ključna riječ, jer 146 00:06:24,930 --> 00:06:27,770 nismo obaviješteni prevodilac ono printf izgleda 147 00:06:27,770 --> 00:06:29,230 sviđa ako mi uključiti tu liniju. 148 00:06:29,230 --> 00:06:31,830 I više dolje na Zemlji, zaista, ono što je linija govori je 149 00:06:31,830 --> 00:06:34,890 otvoriti tu datoteku, stdio.h, gdje god je to na poslužitelj je 150 00:06:34,890 --> 00:06:38,200 hard disk, ili aparata tvrdi disk, a copy-paste to 151 00:06:38,200 --> 00:06:40,240 tamo u mojoj datoteci, bez moje 152 00:06:40,240 --> 00:06:41,730 što učiniti da ručno. 153 00:06:41,730 --> 00:06:44,420 >> Sada, nakon što smo dobili ovdje dolje za glavni, prije dugo ćemo početi 154 00:06:44,420 --> 00:06:46,900 zadirkivanje, osim što int i što je nevažeće. 155 00:06:46,900 --> 00:06:48,430 Ali za sada, pogledajmo tri linije 156 00:06:48,430 --> 00:06:50,350 roku od 15 do 17. 157 00:06:50,350 --> 00:06:52,250 Ovo ovdje sam tvrditi da je lud. 158 00:06:52,250 --> 00:06:54,900 Linija 7 u mojim komentarima kaže: "Ako ispis 10 159 00:06:54,900 --> 00:06:59,410 Zvjezdica, ali ne. "Zašto to ne ispisuje, u stvari, 160 00:06:59,410 --> 00:07:01,097 10 takve zvijezde? 161 00:07:01,097 --> 00:07:02,347 PUBLIKA: [nečujan]. 162 00:07:05,210 --> 00:07:05,800 David J. MALAN: Točno. 163 00:07:05,800 --> 00:07:08,720 Dakle primijetiti da smo počeli brojati od 0. 164 00:07:08,720 --> 00:07:10,780 I to je zapravo konvencija u programiranju i 165 00:07:10,780 --> 00:07:13,230 računalna znanost općenito, počevši brojati 166 00:07:13,230 --> 00:07:14,610 od 0 umjesto 1. 167 00:07:14,610 --> 00:07:16,690 I ovo je stvarno samo proizlazi iz činjenice da je, za 168 00:07:16,690 --> 00:07:18,940 Na primjer, kada smo imali osam ljudi na pozornicu, kada 169 00:07:18,940 --> 00:07:20,680 nitko nije bio podizanje njihove ruke, bili su 170 00:07:20,680 --> 00:07:22,340 svi učinkovito nule. 171 00:07:22,340 --> 00:07:24,260 I tako to je samo vrsta računalnog konvencije tako, 172 00:07:24,260 --> 00:07:26,030 dakle, početi računajući od 0. 173 00:07:26,030 --> 00:07:29,130 Ako je to najmanji broj možete predstavljati u binarnom. 174 00:07:29,130 --> 00:07:32,270 >> Dakle, ovdje smo počeli ja inicijalizacije na 0. 175 00:07:32,270 --> 00:07:34,230 Postavili smo i jednak 0. 176 00:07:34,230 --> 00:07:37,780 Ali onda sam napravio ovu grešku ovdje, govoreći ja je manja od ili 177 00:07:37,780 --> 00:07:38,820 jednak 10. 178 00:07:38,820 --> 00:07:41,700 No, ako mislite da se kroz, ako krenem na 0, a onda idem 179 00:07:41,700 --> 00:07:46,410 do 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ja zapravo idem 180 00:07:46,410 --> 00:07:49,980 isprintati 11 zvijezde na ekranu, jer sam otišao gore 181 00:07:49,980 --> 00:07:52,410 na i jednak 10. 182 00:07:52,410 --> 00:07:55,090 Dakle, lako popraviti ovdje onda je ono? 183 00:07:55,090 --> 00:07:56,070 PUBLIKA: [nečujan]. 184 00:07:56,070 --> 00:07:57,350 David J. MALAN: Dovoljno je promijeniti to manje nego. 185 00:07:57,350 --> 00:07:59,700 Ako stvarno želite, možete to učiniti. 186 00:07:59,700 --> 00:08:01,370 No, u cjelini, koji je frowned. 187 00:08:01,370 --> 00:08:04,020 I tako počinje brojati od 0 je samo nešto što ste trebali 188 00:08:04,020 --> 00:08:05,510 obično se koristi za. 189 00:08:05,510 --> 00:08:07,810 Sada, što je cijeli ovaj konstrukt u sebi? 190 00:08:07,810 --> 00:08:10,640 Ova linija 15 demarks for petlje. 191 00:08:10,640 --> 00:08:12,510 Dakle, za ne funkcionira. 192 00:08:12,510 --> 00:08:13,640 To je samo izjava. 193 00:08:13,640 --> 00:08:16,180 To je petlje konstrukt, kao što smo vidjeli u nule. 194 00:08:16,180 --> 00:08:17,600 I ona ima tri dijela. 195 00:08:17,600 --> 00:08:19,740 Primijetiti da je prvi dio za 196 00:08:19,740 --> 00:08:21,350 lijevo od zarezom. 197 00:08:21,350 --> 00:08:24,200 Tu je srednji dio u sredini između dvije zarezom. 198 00:08:24,200 --> 00:08:26,250 A tu je i desna ruka dio na desno 199 00:08:26,250 --> 00:08:27,640 drugog zarezom. 200 00:08:27,640 --> 00:08:31,822 Sada, prvi od njih što radi? 201 00:08:31,822 --> 00:08:33,679 PUBLIKA: [nečujan]. 202 00:08:33,679 --> 00:08:34,270 David J. MALAN: Povratak postoji? 203 00:08:34,270 --> 00:08:34,816 Da? 204 00:08:34,816 --> 00:08:35,980 PUBLIKA: Inicijalizacija. 205 00:08:35,980 --> 00:08:36,850 >> David J. MALAN: Inicijalizacija. 206 00:08:36,850 --> 00:08:37,840 Dakle, što to znači? 207 00:08:37,840 --> 00:08:40,690 Mi smo proglasili varijablu sam nazvao. 208 00:08:40,690 --> 00:08:43,840 To je tipa int, jer sam navedeno int i. 209 00:08:43,840 --> 00:08:46,470 I ja sam inicijalizirati na vrijednost od 0. 210 00:08:46,470 --> 00:08:47,730 Dakle, ono što je to zapravo govori? 211 00:08:47,730 --> 00:08:50,680 To je učinkovito govori na računalo hej, daj mi dovoljno 212 00:08:50,680 --> 00:08:53,660 memorije, dovoljno RAM-a, kako bi odgovarao broj, a zatim staviti 213 00:08:53,660 --> 00:08:56,130 broj 0 u tom komad RAM-a. 214 00:08:56,130 --> 00:08:59,100 I kao stranu, koliko je velik int obično, barem unutar 215 00:08:59,100 --> 00:09:00,280 od uređaja? 216 00:09:00,280 --> 00:09:01,000 PUBLIKA: 32-bitni. 217 00:09:01,000 --> 00:09:01,670 David J. MALAN: 32 bita. 218 00:09:01,670 --> 00:09:04,890 Dakle, to znači da mi dati 32 bita, inače poznat kao 4 bajta, 219 00:09:04,890 --> 00:09:07,250 i stavite 0 vrijednost u tome, što je prilično lako, jer 220 00:09:07,250 --> 00:09:09,110 To samo znači postaviti sve bitova na 0. 221 00:09:09,110 --> 00:09:11,690 >> Tako sada, drugi dio ovdje je stanje. 222 00:09:11,690 --> 00:09:14,590 A stanje, kao ime sugerira, je ono što je označeno 223 00:09:14,590 --> 00:09:18,100 opet i opet i opet da li je to istina ili laž. 224 00:09:18,100 --> 00:09:21,410 Dakle, ovo samo govori učiniti sljedeće linije koda - 225 00:09:21,410 --> 00:09:23,950 naime linija 16, jer to je samo jedan razvedena 226 00:09:23,950 --> 00:09:24,820 ispod - 227 00:09:24,820 --> 00:09:26,980 tako dugo dok sam je manje od 10. 228 00:09:26,980 --> 00:09:30,520 I nakon svake iteracije kroz ove petlje, učinite 229 00:09:30,520 --> 00:09:33,840 incrementation, koja je u ovom slučaju ja + +. 230 00:09:33,840 --> 00:09:35,580 Sada, to ne mora biti i + +. 231 00:09:35,580 --> 00:09:37,610 To bi mogao biti ja -. 232 00:09:37,610 --> 00:09:39,860 Ali, ako sam to učinio, ono što se događa ponašanje 233 00:09:39,860 --> 00:09:41,370 da se od ovog programa? 234 00:09:41,370 --> 00:09:42,290 PUBLIKA: To će biti beskonačna petlja. 235 00:09:42,290 --> 00:09:44,060 David J. MALAN: To će biti neka vrsta beskonačnoj petlji, 236 00:09:44,060 --> 00:09:47,720 osim ako mi se posreći nakon negativnog 2000000000 ili tako. 237 00:09:47,720 --> 00:09:51,320 Možda će se stvari zaokrenuti, samo po prirodi konačnog 238 00:09:51,320 --> 00:09:53,930 broj bitova koji smo dodijeljenih za int. 239 00:09:53,930 --> 00:09:56,270 Ali to sigurno će ponoviti daleko više od 10, a 240 00:09:56,270 --> 00:09:58,630 sigurno više od 11 puta ovdje. 241 00:09:58,630 --> 00:10:02,240 >> I sada, baš kao i na stranu, shvaćaju da ja + + i ja - 242 00:10:02,240 --> 00:10:04,420 su zapravo samo sintaktička šećer. 243 00:10:04,420 --> 00:10:07,210 To je samo skraćeni zapis za ono što je malo više 244 00:10:07,210 --> 00:10:08,720 eksplicitno napisano kako slijedi: 245 00:10:08,720 --> 00:10:11,200 i = i + 1. 246 00:10:11,200 --> 00:10:13,460 To je identičan i + +. 247 00:10:13,460 --> 00:10:15,860 To je samo vrsta izgleda ljepše reći i + +. 248 00:10:15,860 --> 00:10:17,490 To je više jasna, više čitati. 249 00:10:17,490 --> 00:10:19,030 I tako većina ljudi to učiniti umjesto. 250 00:10:19,030 --> 00:10:21,840 No, to je identičan funkcionalno da 251 00:10:21,840 --> 00:10:22,900 ono što smo upravo vidjeli. 252 00:10:22,900 --> 00:10:27,770 Dakle, u kratko, brzo popraviti ovdje je samo reći da sam ponoviti 253 00:10:27,770 --> 00:10:30,690 od 0 pa sve do manje od 10. 254 00:10:30,690 --> 00:10:32,700 I onda smo doista ćete dobiti 10 zvijezde. 255 00:10:32,700 --> 00:10:33,430 >> Dakle, pokušajmo to. 256 00:10:33,430 --> 00:10:35,310 Dopustite mi otvoriti terminal na dnu. 257 00:10:35,310 --> 00:10:37,420 Pusti me u imeniku da je to u. 258 00:10:37,420 --> 00:10:40,030 I ja ću ga prevesti ručno zveka za sada. 259 00:10:40,030 --> 00:10:44,880 I ja ću sastaviti ovo kao buggy1.c, Enter. 260 00:10:44,880 --> 00:10:50,280 A sada buggy1, zašto je nema takve datoteke ili direktorija 261 00:10:50,280 --> 00:10:52,026 zove buggy1? 262 00:10:52,026 --> 00:10:53,850 PUBLIKA: [nečujan]. 263 00:10:53,850 --> 00:10:54,240 David J. MALAN: Da. 264 00:10:54,240 --> 00:10:55,420 Dakle, to je zapravo zove a.out. 265 00:10:55,420 --> 00:10:57,480 Dakle, ako se prisjetiti samo pokrenuti zveka, gdje zveka je 266 00:10:57,480 --> 00:11:00,420 prevodilac, a vi ne navedete ime koje želite 267 00:11:00,420 --> 00:11:03,550 dati svoj program, to će zadani a.out. 268 00:11:03,550 --> 00:11:05,030 Dakle, ako doista radim ls - 269 00:11:05,030 --> 00:11:05,510 Ups. 270 00:11:05,510 --> 00:11:07,680 I didn't - u crno-bijelu pitanje neke od 271 00:11:07,680 --> 00:11:08,840 ste suočeni je fiksna. 272 00:11:08,840 --> 00:11:10,670 No, dopustite mi to učiniti. 273 00:11:10,670 --> 00:11:14,570 Tu imamo a.out na lijevoj strani. 274 00:11:14,570 --> 00:11:17,360 Dakle, moramo pokrenuti a.out umjesto buggy1. 275 00:11:17,360 --> 00:11:19,140 >> Pa neka mi ići naprijed i učiniti. 276 00:11:19,140 --> 00:11:22,840 . / A.out, Enter. 277 00:11:22,840 --> 00:11:26,160 I očito nije učinio što? 278 00:11:26,160 --> 00:11:26,620 PUBLIKA: Spremi. 279 00:11:26,620 --> 00:11:27,390 David J. MALAN: Spremi moj dosje. 280 00:11:27,390 --> 00:11:31,520 Tako da je lako riješiti udaranje Upravljačka S, ili će 281 00:11:31,520 --> 00:11:33,450 File, Save, kao iu većini programa. 282 00:11:33,450 --> 00:11:36,360 Pusti me ovdje dolje, brisanje zaslona, ​​pokrenuti ga ponovno. 283 00:11:36,360 --> 00:11:37,960 A tu je još uvijek bug. 284 00:11:37,960 --> 00:11:41,618 Dakle, ono što se događa - 285 00:11:41,618 --> 00:11:42,980 PUBLIKA: Nisi sastaviti. 286 00:11:42,980 --> 00:11:44,040 David J. MALAN: Ah, dobro. 287 00:11:44,040 --> 00:11:45,010 Nisam ga sastaviti. 288 00:11:45,010 --> 00:11:47,250 Poput idiot, gledam koda kako bi vidjeli što se dogodilo. 289 00:11:47,250 --> 00:11:51,275 Dakle zveka buggy1.c, sada a.out. 290 00:11:51,275 --> 00:11:52,640 A fuj, spašen. 291 00:11:52,640 --> 00:11:55,090 >> Tako to izgleda malo ružno, jer ne postoji nova linija 292 00:11:55,090 --> 00:11:55,970 bilo gdje u programu. 293 00:11:55,970 --> 00:11:57,390 Ali opet, to je samo estetski detalj. 294 00:11:57,390 --> 00:11:59,430 I barem ako ćemo brojati one van, trebali bismo 295 00:11:59,430 --> 00:12:01,160 sada vidim 10 takvih zvijezda. 296 00:12:01,160 --> 00:12:03,260 Pa, što je s tom drugom zagrijavanja primjer? 297 00:12:03,260 --> 00:12:07,750 Tako je u buggy2, ja tvrdim da je ova verzija će također ispisati 298 00:12:07,750 --> 00:12:10,110 10 zvjezdica, jedan po retku. 299 00:12:10,110 --> 00:12:12,340 Dakle, ovaj put, imam newline karakter, samo da bi 300 00:12:12,340 --> 00:12:13,520 stvari malo ljepše. 301 00:12:13,520 --> 00:12:15,410 No, umjesto što sam se je li to. 302 00:12:15,410 --> 00:12:19,590 Pa neka mi to zveka buggy2.c, Enter. 303 00:12:19,590 --> 00:12:21,790 Sada je opet zove a.out. 304 00:12:21,790 --> 00:12:23,130 Upišite. 305 00:12:23,130 --> 00:12:26,900 Ja samo vidim jednu novu liniju, samo posljednji nova linija koja 306 00:12:26,900 --> 00:12:29,370 seli moj upit u sljedeći redak. 307 00:12:29,370 --> 00:12:32,660 A ipak, jasno sam ispis *, a zatim novu liniju, 308 00:12:32,660 --> 00:12:33,990 *, Onda nova linija. 309 00:12:33,990 --> 00:12:35,490 No, ono što je bug ovdje? 310 00:12:35,490 --> 00:12:35,974 Da? 311 00:12:35,974 --> 00:12:37,224 PUBLIKA: [nečujan]. 312 00:12:39,850 --> 00:12:40,470 >> David J. MALAN: Točno. 313 00:12:40,470 --> 00:12:44,110 Dakle, za razliku od nekih jezika, kao što su Python, gdje indentacijskom 314 00:12:44,110 --> 00:12:46,030 zapravo ima funkcionalno značenje, u 315 00:12:46,030 --> 00:12:47,150 jezik kao C - 316 00:12:47,150 --> 00:12:49,140 kao što ćemo vidjeti, PHP, Javascript - 317 00:12:49,140 --> 00:12:51,940 udubljenje je stvarno samo za ljude 'korist. 318 00:12:51,940 --> 00:12:55,690 Dakle, činjenica da sam razvedena liniju 16 i 17 izgleda sjajno, 319 00:12:55,690 --> 00:12:57,530 ali to nema funkcionalnu značenje ovdje. 320 00:12:57,530 --> 00:13:00,700 Ako želim obje linije izvršiti kao dio za 321 00:13:00,700 --> 00:13:05,140 petlja, onda moram ih priložiti u vitičastim zagradama na taj način. 322 00:13:05,140 --> 00:13:08,540 Možete samo smanjiti taj kut i izostaviti vitičastih zagrada ako 323 00:13:08,540 --> 00:13:10,036 što je slučaj? 324 00:13:10,036 --> 00:13:10,410 PUBLIKA: Samo jedan redak. 325 00:13:10,410 --> 00:13:11,130 David J. MALAN: Samo jedan redak. 326 00:13:11,130 --> 00:13:15,280 Dakle, to je samo vrsta lijepo vrste sintakse detalje, tako da 327 00:13:15,280 --> 00:13:17,900 ne gubiti vrijeme pisanja tri linije, dvije od kojih su 328 00:13:17,900 --> 00:13:20,040 vitičastih zagrada, samo napisati jednu liniju koda. 329 00:13:20,040 --> 00:13:21,650 No, ako imate dva ili više redaka, mi 330 00:13:21,650 --> 00:13:22,860 doista potrebno da to učinite. 331 00:13:22,860 --> 00:13:24,210 >> Pa sada neka mi spasiti ovo. 332 00:13:24,210 --> 00:13:27,140 Pusti me naprijed i ponovno pokrenuti zveka. 333 00:13:27,140 --> 00:13:31,375 Onda neka mi reprizu a.out, a sada sam ih dobiti jedan po retku. 334 00:13:31,375 --> 00:13:33,670 Sada, a.out opet je vrsta glupo ime za program. 335 00:13:33,670 --> 00:13:37,500 Kako mogu reći zveka da zapravo mi dati ime datoteke 336 00:13:37,500 --> 00:13:39,820 to je više user-friendly, kao buggy2 sama? 337 00:13:43,200 --> 00:13:44,466 Malo jasnije? 338 00:13:44,466 --> 00:13:45,220 PUBLIKA: [nečujan]. 339 00:13:45,220 --> 00:13:47,810 David J. MALAN: OK, tako da sam zapravo mogu uzeti vrlo 340 00:13:47,810 --> 00:13:51,000 razumljiv prečac i samo napisati da buggy2. 341 00:13:51,000 --> 00:13:53,840 Ja ne odredite. C, u ovom slučaju, i pritisnite Enter. 342 00:13:53,840 --> 00:13:58,530 A što bi se je to sastavlja buggy2.c za mene od strane 343 00:13:58,530 --> 00:14:00,260 molba zveka to učiniti. 344 00:14:00,260 --> 00:14:05,100 Naime, on poziva zveka, radi zveka korištenjem način više 345 00:14:05,100 --> 00:14:08,540 naredbenog retka argumente ili preklopnici nego što sam zapravo potrebno. 346 00:14:08,540 --> 00:14:11,270 U vrijeme, vratit ćemo se na to što sve ove razne 347 00:14:11,270 --> 00:14:13,810 grobni crticu izrazi znači. 348 00:14:13,810 --> 00:14:16,910 No, za sada, samo da se štedi mi nevolje 349 00:14:16,910 --> 00:14:19,600 pamtiti i da se tip iz svima 350 00:14:19,600 --> 00:14:21,150 razne crticu izrazi. 351 00:14:21,150 --> 00:14:23,240 I naopako toga u konačnici je 352 00:14:23,240 --> 00:14:25,900 da sada imam buggy2. 353 00:14:25,900 --> 00:14:27,480 Ako želim da to učinite ručno, iako sam 354 00:14:27,480 --> 00:14:28,775 možete to učiniti umjesto - 355 00:14:28,775 --> 00:14:34,110 jeka-o buggy2 a zatim buggy2.c. 356 00:14:34,110 --> 00:14:37,980 I to na sličan će mi dati datoteku pod nazivom buggy2. 357 00:14:37,980 --> 00:14:39,710 >> Dakle, u kratko, zveka je prevodilac. 358 00:14:39,710 --> 00:14:43,080 Provjerite je samo user-friendly alat koji ćemo koristiti više 359 00:14:43,080 --> 00:14:44,420 i više, jer je to samo počne 360 00:14:44,420 --> 00:14:47,330 pojednostaviti stvari za nas. 361 00:14:47,330 --> 00:14:49,430 I mi smo se vratili 0, na kraju. 362 00:14:49,430 --> 00:14:51,890 Za sada, samo zato, ali mi ćemo početi zadirkivanje taj dio 363 00:14:51,890 --> 00:14:52,930 danas i srijedu. 364 00:14:52,930 --> 00:14:55,560 Sva pitanja o bilo kojoj od ove? 365 00:14:55,560 --> 00:14:56,450 Da? 366 00:14:56,450 --> 00:14:58,234 PUBLIKA: [nečujan] 367 00:14:58,234 --> 00:15:00,020 Je li u navodnike tamo? 368 00:15:00,020 --> 00:15:01,710 David J. MALAN: U redu. 369 00:15:01,710 --> 00:15:05,880 Kad sam upisali li u navodnike, koja je mene rade neke magije 370 00:15:05,880 --> 00:15:07,160 iza kulisa popraviti bug. 371 00:15:07,160 --> 00:15:09,370 Zaboravio sam, kao što smo reći da mnogi od vas na 372 00:15:09,370 --> 00:15:11,600 panele za raspravu, treba učiniti - 373 00:15:11,600 --> 00:15:17,220 mi ćemo to učiniti sada - sudo yum-y ažuriranje appliance50. 374 00:15:17,220 --> 00:15:19,790 Joj, da to je precizirao pravo. 375 00:15:19,790 --> 00:15:23,240 Dakle, aparat je kao operativni sustav. 376 00:15:23,240 --> 00:15:25,650 To je trčanje ovaj operativni sustav pod nazivom Fedora. 377 00:15:25,650 --> 00:15:27,450 I sad zbog moje spore internetske veze, ja sam 378 00:15:27,450 --> 00:15:28,260 stvarno hosed. 379 00:15:28,260 --> 00:15:31,620 Dakle, radi sudo yum update, kao što smo vam reći da to u 380 00:15:31,620 --> 00:15:34,080 Problem skup, bitno je vole trčanje automatskog ažuriranja 381 00:15:34,080 --> 00:15:35,420 u Mac OS ili Windows. 382 00:15:35,420 --> 00:15:37,280 A razlog za trčanje to na samom početku 383 00:15:37,280 --> 00:15:39,640 Problem je skup jer kad smo stvorili aparat, ja 384 00:15:39,640 --> 00:15:42,480 zabrljati gore, a ja sam slučajno napravio sve svoje programe, pogledajte 385 00:15:42,480 --> 00:15:45,210 crno na crnom ekranu, što je razlog zašto niste ih vidim 386 00:15:45,210 --> 00:15:45,860 po defaultu. 387 00:15:45,860 --> 00:15:48,020 No, najnovija verzija uređaja popravci ovaj. 388 00:15:48,020 --> 00:15:50,500 I ja ću to popraviti tijekom pauze jednom imam internet 389 00:15:50,500 --> 00:15:51,280 povezivanja. 390 00:15:51,280 --> 00:15:54,630 >> Tako su citati samo skriva svoju pogrešku, vrlo diskretno, 391 00:15:54,630 --> 00:15:55,730 očito. 392 00:15:55,730 --> 00:15:56,980 Ostala pitanja? 393 00:15:59,750 --> 00:16:00,668 Da? 394 00:16:00,668 --> 00:16:02,012 PUBLIKA: Odakle bi došao? 395 00:16:02,012 --> 00:16:03,810 [Nečujan] 396 00:16:03,810 --> 00:16:04,280 David J. MALAN: Dobro pitanje. 397 00:16:04,280 --> 00:16:05,460 Gdje bi došli? 398 00:16:05,460 --> 00:16:09,390 To je Linux program koji postoji već dugi niz godina, dok 399 00:16:09,390 --> 00:16:10,570 prije CS50. 400 00:16:10,570 --> 00:16:12,930 I to dolazi s operativnim sustavom poput Fedora. 401 00:16:12,930 --> 00:16:14,830 To ne dolazi od CS50 knjižnici. 402 00:16:14,830 --> 00:16:17,560 U stvari, samo stvari koje dolaze iz CS50 knjižnici 403 00:16:17,560 --> 00:16:20,470 tako daleko, da smo vidjeli, su GetString, GetInt, sve 404 00:16:20,470 --> 00:16:25,550 one dobiti funkcije, i niz riječi, i na neke 405 00:16:25,550 --> 00:16:26,575 mjeri, riječ bool. 406 00:16:26,575 --> 00:16:29,180 No, mi ćemo zafrkavati da, osim kada smo zaroniti u CS50 407 00:16:29,180 --> 00:16:30,580 sam aparat. 408 00:16:30,580 --> 00:16:32,820 >> Tako da, još jedno pitanje ovdje. 409 00:16:32,820 --> 00:16:36,636 PUBLIKA: Kad ste rekli da i onda lud, kako se 410 00:16:36,636 --> 00:16:39,980 Računalo znati [nečujan]? 411 00:16:39,980 --> 00:16:40,520 David J. MALAN: Dobro pitanje. 412 00:16:40,520 --> 00:16:43,830 Dakle, kada ste samo pokrenuti napraviti buggy1 ili napraviti buggy2, kako 413 00:16:43,830 --> 00:16:45,220 ne bi znao? 414 00:16:45,220 --> 00:16:49,900 Dakle, po defaultu, ako upišete napraviti buggy1, da traži 415 00:16:49,900 --> 00:16:52,330 file zove buggy1.c. 416 00:16:52,330 --> 00:16:55,570 I onda izvršava odgovarajuće zveka naredbe, 417 00:16:55,570 --> 00:17:00,380 time preskakanja datoteku zadanu izlaznu zove a.out. 418 00:17:00,380 --> 00:17:03,670 U stvari, ako ćemo gledati na ono što čine, što - 419 00:17:03,670 --> 00:17:04,839 ajmo prestati to. 420 00:17:04,839 --> 00:17:09,530 Ako ćemo gledati na ono što bi se zapravo radi, da buggy2, 421 00:17:09,530 --> 00:17:10,470 to je već do danas. 422 00:17:10,470 --> 00:17:13,020 Pa neka mi ukloniti rm naredba, 423 00:17:13,020 --> 00:17:14,319 Program sam pisao prije. 424 00:17:14,319 --> 00:17:17,319 Tipkanje Y-E-S potvrditi da sam ga želite ukloniti. 425 00:17:17,319 --> 00:17:20,480 Ako ja sada ne čine, primijetiti da u ovom vrlo dugu liniju, 426 00:17:20,480 --> 00:17:22,980 tu je ovo zadnja stvar ovdje,-o buggy2. 427 00:17:22,980 --> 00:17:26,959 Sve bi se to prolazi tu tvrdnju, da tako kažemo, na 428 00:17:26,959 --> 00:17:29,665 Jek, tako da ne moram upisivati ​​to sam. 429 00:17:29,665 --> 00:17:32,660 >> U redu, tako brzo par upravni 430 00:17:32,660 --> 00:17:33,470 najave. 431 00:17:33,470 --> 00:17:36,940 Dakle, za dijelove, koji je službeno započeo ovaj dolazak 432 00:17:36,940 --> 00:17:38,970 Nedjelja, uvijek ćete želite dovesti, ako 433 00:17:38,970 --> 00:17:40,120 imate jedan, laptop. 434 00:17:40,120 --> 00:17:42,570 Ako nemate prijenosno računalo, ne doprijeti do mene od strane 435 00:17:42,570 --> 00:17:43,580 padaju mi ​​e-mail. 436 00:17:43,580 --> 00:17:44,810 A mi ćemo shvatiti tijek rada. 437 00:17:44,810 --> 00:17:47,100 Što općenito ćete pronaći u sekciji je da su oni dio 438 00:17:47,100 --> 00:17:48,770 konceptualni, dio ruke na. 439 00:17:48,770 --> 00:17:52,190 Mi posebno ćemo koristiti dio pitanja, dio 440 00:17:52,190 --> 00:17:54,110 ovog tjedna je problem skup, hodati kroz neke od 441 00:17:54,110 --> 00:17:55,820 konceptualni materijal iz predavanja. 442 00:17:55,820 --> 00:17:57,480 I to je sve u tekuću problematiku setu. 443 00:17:57,480 --> 00:18:00,010 I također ćemo zaroniti u nekim hands-on aktivnosti, ponekad 444 00:18:00,010 --> 00:18:02,190 od kojih će se tražiti da se podnosi, ponekad 445 00:18:02,190 --> 00:18:02,830 koji neće. 446 00:18:02,830 --> 00:18:04,630 Na primjer, ovaj prvi tjedan, oni značilo samo kao 447 00:18:04,630 --> 00:18:05,780 zagrijavanja vježbe. 448 00:18:05,780 --> 00:18:07,800 I vidjet ćete da su ti problemi su zapravo samo to. 449 00:18:07,800 --> 00:18:10,220 Oni bi trebala biti prilično mali, ali ne i nužno 450 00:18:10,220 --> 00:18:13,100 trivijalne programi za pisanje, koji nisu nužno 451 00:18:13,100 --> 00:18:16,230 uzbudljive i od sebe, ali su dobre prilike za 452 00:18:16,230 --> 00:18:19,620 vježbati sa sintaksom, s novim funkcijama, u udobnosti 453 00:18:19,620 --> 00:18:21,900 odjeljak gdje imate nekoliko svojih kolega predstaviti kao 454 00:18:21,900 --> 00:18:22,870 i kao TF. 455 00:18:22,870 --> 00:18:26,210 >> I što ćemo učiniti s vremenom je koristiti alat zvan CS50 mjesta, 456 00:18:26,210 --> 00:18:28,940 pri čemu umjesto samo pomoću CS50 aparati, vi ćete 457 00:18:28,940 --> 00:18:32,450 umjesto toga ići na web stranici u pregledniku, gdje ćete biti u mogućnosti 458 00:18:32,450 --> 00:18:35,610 pisati kod u prozoru tijekom dijelu. 459 00:18:35,610 --> 00:18:38,240 A onda, ako se odlučite, vaš kolega nastava onda se može pokazati 460 00:18:38,240 --> 00:18:40,980 bez obzira na to je li pišete na vašem zaslonu u vašem pregledniku 461 00:18:40,980 --> 00:18:43,930 Prozor se na prednjem dijelu razreda, bilo anonimno ili 462 00:18:43,930 --> 00:18:47,250 javno, tako da on ili ona tada može šetati uz 463 00:18:47,250 --> 00:18:50,080 Vaši kolege što ste učinili dobro, ono što nije dobro. 464 00:18:50,080 --> 00:18:52,750 I opet, budite uvjereni sve to može lijepo biti anonimni. 465 00:18:52,750 --> 00:18:54,410 No, to će biti lijepo prilika za mnogo više 466 00:18:54,410 --> 00:18:56,810 interaktivnost nego nešto poput predavanja dopušta. 467 00:18:56,810 --> 00:18:58,910 >> U međuvremenu, mi ćemo imati ove stvari zove super 468 00:18:58,910 --> 00:19:01,610 dijelovi, koji su opcionalno, ali su otvoreni za sve u 469 00:19:01,610 --> 00:19:04,030 klase, tako da možete to učiniti više za kolektivno 470 00:19:04,030 --> 00:19:05,190 Problem postaviti jedan. 471 00:19:05,190 --> 00:19:06,010 Evo raspored. 472 00:19:06,010 --> 00:19:08,870 To je također objavljena na početnoj stranici na cs50.net. 473 00:19:08,870 --> 00:19:10,850 Primijetit ćete da postoji će biti haker specifična 474 00:19:10,850 --> 00:19:12,430 jedan sutra poslijepodne. 475 00:19:12,430 --> 00:19:15,460 A mi ćemo snimiti jedan danas i jedan sutra i postavljati onima 476 00:19:15,460 --> 00:19:16,720 online u roku od 24 sata. 477 00:19:16,720 --> 00:19:19,370 Dakle, ako ne možete učiniti bilo koji od tih vremena, ne brinite. 478 00:19:19,370 --> 00:19:22,720 I opet, raspored je sada online na cs50.net. 479 00:19:22,720 --> 00:19:25,350 >> U smislu se sekcije, trebali ste stečen 480 00:19:25,350 --> 00:19:28,520 e naložio da odeš na tečaj internetskoj stranici pronaći 481 00:19:28,520 --> 00:19:29,610 iz svog dijela. 482 00:19:29,610 --> 00:19:32,890 Ako se život promijenio i da trebate promijeniti svoj dio, 483 00:19:32,890 --> 00:19:33,560 nije problem. 484 00:19:33,560 --> 00:19:37,900 Vratite se na taj isti URL, cs50.net/section, jednini, 485 00:19:37,900 --> 00:19:40,090 i da ćete ispuniti isti oblik, tako da možete 486 00:19:40,090 --> 00:19:41,260 tada nam dati svoje postavke. 487 00:19:41,260 --> 00:19:43,360 I mi ćemo pratiti do kraja tjedna, kao što možemo 488 00:19:43,360 --> 00:19:44,240 smjestiti. 489 00:19:44,240 --> 00:19:49,530 Prošli tjedan, podsjetiti da smo predložili pomoću CS50 raspravljati, 490 00:19:49,530 --> 00:19:51,370 toku je rasprava alat, u predavanju. 491 00:19:51,370 --> 00:19:53,680 Dakle, imali smo 40 pitanja koja su postavljana i 492 00:19:53,680 --> 00:19:54,720 odgovorio tijekom predavanja. 493 00:19:54,720 --> 00:19:56,280 Dakle, činilo se da rade dobro, pa ćemo nastaviti 494 00:19:56,280 --> 00:19:57,180 pokušava to učiniti. 495 00:19:57,180 --> 00:19:59,600 Ako tijekom predavanja, ne samo da se osjećaju ugodno podizanje 496 00:19:59,600 --> 00:20:00,780 tvoja ruka, nije problem. 497 00:20:00,780 --> 00:20:04,640 Idi na cs50.net/discuss, post tamo, i jedan od naših nastave 498 00:20:04,640 --> 00:20:07,270 momci ili će ga odgovoriti elektronički ili podići svoje 499 00:20:07,270 --> 00:20:10,620 ruku na vaše ime anonimno pitati, ovisno 500 00:20:10,620 --> 00:20:12,470 o prirodi pitanja. 501 00:20:12,470 --> 00:20:15,000 I u smislu povratne informacije, općenito psets će biti 502 00:20:15,000 --> 00:20:16,760 vratiti u roku od tjedan dana. 503 00:20:16,760 --> 00:20:19,080 Budući da je potrebno neko vrijeme za dionice kako bi se postigla 504 00:20:19,080 --> 00:20:22,430 ravnoteže, prvi pset, 0 i 1, će biti malo 505 00:20:22,430 --> 00:20:24,130 odgođen kako stvari smiriti. 506 00:20:24,130 --> 00:20:27,130 No, stay tuned za to u tjednima koji dolaze. 507 00:20:27,130 --> 00:20:29,750 >> U redu, pa neka me stavi na moj ozbiljan 508 00:20:29,750 --> 00:20:31,040 Glas za samo trenutak. 509 00:20:31,040 --> 00:20:32,690 Dakle, to je zapravo zanimljivo klimatske biti 510 00:20:32,690 --> 00:20:35,210 da ovu raspravu, što sa svim ostalim 511 00:20:35,210 --> 00:20:37,310 događa na kampusu s tim u vezi. 512 00:20:37,310 --> 00:20:40,220 Ali CS50 sigurno je imao svoju povijest to posebice 513 00:20:40,220 --> 00:20:43,360 tema, u koliko svake godine, ovaj tečaj, za mnoge 514 00:20:43,360 --> 00:20:46,910 godine, Ad-Ploče otprilike 3% u razredu. 515 00:20:46,910 --> 00:20:51,620 Ova najnovija godine, 2011, CS50 Ad-ukrcao 35 studenata. 516 00:20:51,620 --> 00:20:54,120 To nije, mislim, zbog nedostatka jasnoće. 517 00:20:54,120 --> 00:20:56,760 Shvatite da u toku je nastavni plan i program, tu je stranica 518 00:20:56,760 --> 00:20:59,020 obrazloženje gdje su linije. 519 00:20:59,020 --> 00:21:01,350 Taj isti izjava se ponavlja na svakom jedan od 520 00:21:01,350 --> 00:21:03,070 Problem postavlja na stranici jedan. 521 00:21:03,070 --> 00:21:05,760 >> Pa sam spomenuo to danas stvarno samo da bi 522 00:21:05,760 --> 00:21:07,030 ljudi svjesni toga. 523 00:21:07,030 --> 00:21:08,080 I mi smo pokušali različite stvari. 524 00:21:08,080 --> 00:21:10,630 I ono što sam mislio da će to učiniti i danas je samo uzeti trenutak za 525 00:21:10,630 --> 00:21:13,830 zapravo pogledati neke od posljednjih slučajeva koji su došli. 526 00:21:13,830 --> 00:21:16,160 Umjesto da ove kao prljave male tajne, zapravo 527 00:21:16,160 --> 00:21:19,170 istaknuti ono što studenti su učinili i kako smo otkrili 528 00:21:19,170 --> 00:21:21,630 to i stvarno ono sveobuhvatan motivacija za 529 00:21:21,630 --> 00:21:23,950 čak i nakon što je ovaj razgovor. 530 00:21:23,950 --> 00:21:27,060 Dakle, s koje je rekao, linija bitno je ovo - 531 00:21:27,060 --> 00:21:29,200 po nastavnom planu, da ste dobrodošli, koju su ohrabreni, da 532 00:21:29,200 --> 00:21:30,210 razgovarati s kolegama. 533 00:21:30,210 --> 00:21:31,910 To je cijela svrha da ove suradničke 534 00:21:31,910 --> 00:21:34,470 radno vrijeme u Annenberg i poticanje ljudi za 535 00:21:34,470 --> 00:21:35,755 Konačni projekt raditi zajedno. 536 00:21:35,755 --> 00:21:38,590 Ali linija je nacrtana kada je u pitanju vrijeme da se zapravo napisati 537 00:21:38,590 --> 00:21:39,790 Vaš konačno rješenje. 538 00:21:39,790 --> 00:21:42,590 Govoreći na engleskom jeziku, potpuno u redu, govoreći u pseudo kodu, 539 00:21:42,590 --> 00:21:43,400 potpuno u redu. 540 00:21:43,400 --> 00:21:46,340 Slanje kolegica svoju pset, ostavljajući ih gledati preko 541 00:21:46,340 --> 00:21:48,610 zaslon kao i dalje ruke tipkati, 542 00:21:48,610 --> 00:21:50,110 preko linije kao dobro. 543 00:21:50,110 --> 00:21:52,250 Nemojte gledati na programu za pojedine linije. 544 00:21:52,250 --> 00:21:55,850 >> Ali samo slikati sliku o tome kako je to nažalost 545 00:21:55,850 --> 00:21:58,370 stvarnost, shvatiti da postoje web stranice vani da 546 00:21:58,370 --> 00:22:01,490 imaju rješenja iz ove klase i mnogim drugim razredima. 547 00:22:01,490 --> 00:22:04,940 Činjenica da ste vi ili neki 3% od vas znaju da to postoji 548 00:22:04,940 --> 00:22:07,240 znači da smo znali da to postoji. 549 00:22:07,240 --> 00:22:09,340 Činjenica da postoje web stranice kao što je ovaj gdje se 550 00:22:09,340 --> 00:22:11,540 Možete platiti nekoga da zapravo učiniti svoje problematična seta - to je 551 00:22:11,540 --> 00:22:13,450 stvarni slučaj da dođe do prošle godine. 552 00:22:13,450 --> 00:22:15,790 Ovo je web stranica zove odesk.com. 553 00:22:15,790 --> 00:22:20,090 A Tim je ime osobe koja je ovdje objavljivati ​​na 554 00:22:20,090 --> 00:22:24,580 ova web stranica i pitao nekoga napraviti svoju pset 7 u 555 00:22:24,580 --> 00:22:25,570 ovaj slučaj. 556 00:22:25,570 --> 00:22:28,350 Pa, odesk.com je vrlo Google-u mogućnosti, a mi smo 557 00:22:28,350 --> 00:22:30,310 vrlo dobar u Googling. 558 00:22:30,310 --> 00:22:32,360 Ovdje, također, postoje mjesta - i to jedna je prilično 559 00:22:32,360 --> 00:22:34,234 zločest, iskreno. 560 00:22:34,234 --> 00:22:38,050 [Smijeh] 561 00:22:38,050 --> 00:22:39,610 David J. MALAN: Smiješno je stvar o ovim stranicama je ako 562 00:22:39,610 --> 00:22:41,970 ste pročitali O stranicu, oni govore o svojim korporativne 563 00:22:41,970 --> 00:22:44,390 kultura i kako Služba je njihov broj jedan 564 00:22:44,390 --> 00:22:46,190 prioritet, kako bi bili sigurni da vaše zadatke dobiti 565 00:22:46,190 --> 00:22:47,890 okrenuo se na vrijeme. 566 00:22:47,890 --> 00:22:50,580 >> Ali u svim ozbiljnosti, opet, činjenica da su ove stranice 567 00:22:50,580 --> 00:22:52,910 postojati, shvatili smo, također, nisu svjesni 568 00:22:52,910 --> 00:22:53,730 Takve web stranice. 569 00:22:53,730 --> 00:22:55,890 I da vam dati osjećaj što čini ovo općenito 570 00:22:55,890 --> 00:22:58,570 traje, mi općenito nemaju velike afere u kojoj ljudi 571 00:22:58,570 --> 00:23:01,080 surađuju na bilo kakve masovno, nego 572 00:23:01,080 --> 00:23:04,540 to ti kasno-noćni trenuci slabosti, gdje imate tako 573 00:23:04,540 --> 00:23:07,550 mnogo učiniti, to je 04:00, da ste iscrpljeni, a vi 574 00:23:07,550 --> 00:23:09,770 mislim na sebe, dobro, neka mi samo pogledati moje 575 00:23:09,770 --> 00:23:11,770 cimer-a ili moje prijateljice kod ili slično. 576 00:23:11,770 --> 00:23:14,800 I manifestacije to nažalost uključivati ​​Student 577 00:23:14,800 --> 00:23:17,640 Slanjem ovako nešto i Studentski B podnošenje 578 00:23:17,640 --> 00:23:20,370 nešto kao što je ovaj, što je svakako u računalu 579 00:23:20,370 --> 00:23:23,830 znanost klase, je iznimno jednostavan za računalnih znanstvenika 580 00:23:23,830 --> 00:23:25,690 otkriti sa softverom. 581 00:23:25,690 --> 00:23:28,410 Ovo je još jedna zajednička paradigma, gdje ste vrsta 582 00:23:28,410 --> 00:23:31,010 radili uz nekoga, možda govori u 583 00:23:31,010 --> 00:23:32,360 Engleski, sasvim u redu, pseudocode. 584 00:23:32,360 --> 00:23:35,080 Ali onda dođe vrijeme da se zapravo podnijeti, a psets 585 00:23:35,080 --> 00:23:37,910 Upravo se razmjenjuju putem e-maila ili Dropbox ili slično. 586 00:23:37,910 --> 00:23:41,120 No, u pokušaju da ga manje očito da je to 587 00:23:41,120 --> 00:23:44,830 ono što se dogodilo, onda je to ono što je podnijela. 588 00:23:44,830 --> 00:23:47,880 To je, također, ne saplitati dobro napisana komada 589 00:23:47,880 --> 00:23:50,360 softver kao što smo zapravo detektirati 590 00:23:50,360 --> 00:23:51,280 ovakve stvari. 591 00:23:51,280 --> 00:23:53,760 I doista ono što mi radimo je mali softver koji uspoređuje sve 592 00:23:53,760 --> 00:23:55,540 Ovogodišnji podnesci protiv svih Posljednjih godinu je 593 00:23:55,540 --> 00:23:57,380 podnesci, protiv svega što smo pronašli na 594 00:23:57,380 --> 00:24:00,060 Internet, protiv svakog radnog web vani. 595 00:24:00,060 --> 00:24:01,710 To je sve vrlo automatizirano. 596 00:24:01,710 --> 00:24:05,665 I tako smo to stvarno u velikoj pravednosti do 97% onih koji 597 00:24:05,665 --> 00:24:07,760 se stvarno radi svoje guzice off u ovom i drugim 598 00:24:07,760 --> 00:24:11,530 klase i stavljajući u sve to truda, tako da rad 599 00:24:11,530 --> 00:24:13,030 oni u konačnici dostaviti je njihova vlastita. 600 00:24:13,030 --> 00:24:14,220 I ja mogu ići na uzrasta. 601 00:24:14,220 --> 00:24:16,030 >> To su samo nekoliko prošlogodišnjih slučajeva. 602 00:24:16,030 --> 00:24:19,350 Prije nekoliko učenika poslali te datoteke identično za 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 U ovom slučaju, to je bio kviz 0 i prošle godine, gdje je dvije 605 00:24:26,360 --> 00:24:29,570 Učenici poslali identično ovu rečenicu među mnogima 606 00:24:29,570 --> 00:24:32,210 drugi, "Zahtjev tipa -" točka, točka, točka. 607 00:24:32,210 --> 00:24:34,530 Dakle, čak iu klasi 600 nije mi otkriti ovu 608 00:24:34,530 --> 00:24:36,310 na poslali kvizovima. 609 00:24:36,310 --> 00:24:39,080 Dakle, u kratko, ovo - iskreno, ja mrzim ovu vrstu 610 00:24:39,080 --> 00:24:41,300 razgovor - ali ovo je stvarno namjerno napor 611 00:24:41,300 --> 00:24:43,540 ove godine pokušati voziti dolje taj broj. 612 00:24:43,540 --> 00:24:45,650 Jer iako smo reći takve stvari svakih 613 00:24:45,650 --> 00:24:48,100 godine, mislim da je stvarnost da su se zadržavali na njemu malo 614 00:24:48,100 --> 00:24:50,800 više sekundi nego inače, a zapravo samo istaknuti 615 00:24:50,800 --> 00:24:53,600 da je ono što se može činiti kao, eh, ne tako velikog posla, barem 616 00:24:53,600 --> 00:24:56,390 sjetim ovom konkretnom trenutku, kako u pravednosti za 617 00:24:56,390 --> 00:25:00,100 sebe i svoje kolege ovdje. 618 00:25:00,100 --> 00:25:02,480 Dakle, ako ste ikada imate bilo kakvih pitanja što se gdje linija 619 00:25:02,480 --> 00:25:04,290 je, molim samo doprijeti do mene osobno. 620 00:25:04,290 --> 00:25:07,190 No, odgovor je uvijek, potpuno istaknuo je na 621 00:25:07,190 --> 00:25:09,090 last minute, novac u kasnom dan. 622 00:25:09,090 --> 00:25:11,080 Ili ako je stvar što nije bilo kasno dana, 623 00:25:11,080 --> 00:25:12,900 Iskreno, mi e-mail osobno. 624 00:25:12,900 --> 00:25:14,110 Mi ćemo nešto smisliti. 625 00:25:14,110 --> 00:25:17,480 Molimo ne stavljajte svoje vrijeme ovdje na Harvardu u opasnosti. 626 00:25:17,480 --> 00:25:18,570 >> Sada, mislio sam da smo trebali olakšaj raspoloženje, pa sam 627 00:25:18,570 --> 00:25:20,264 uključeni ovo kao sljedeći slajd. 628 00:25:20,264 --> 00:25:22,770 [Smijeh] 629 00:25:22,770 --> 00:25:23,630 David J. MALAN: Ova web stranica je super. 630 00:25:23,630 --> 00:25:24,820 Ja sam zapravo dobio malo rastresen. 631 00:25:24,820 --> 00:25:26,330 Tu je ovaj jedan. 632 00:25:26,330 --> 00:25:29,590 I onda je to jedna je bila nevjerojatna. 633 00:25:29,590 --> 00:25:35,190 Ok, tako da mislim da mačića kasno noću prilikom 634 00:25:35,190 --> 00:25:36,040 te odluke. 635 00:25:36,040 --> 00:25:40,110 U redu, pa natrag do više zabave i manje ozbiljne stvari, poput 636 00:25:40,110 --> 00:25:40,780 uvjeti. 637 00:25:40,780 --> 00:25:43,900 >> U redu, tako da smo razgovarali kratko o njima. 638 00:25:43,900 --> 00:25:46,080 To je nešto što je vjerojatno prilično upoznati s 639 00:25:46,080 --> 00:25:47,260 svijet Scratch. 640 00:25:47,260 --> 00:25:49,860 I u svijetu Scratch, imamo tu potrebu ponekad 641 00:25:49,860 --> 00:25:51,110 ići napraviti vilice na cesti. 642 00:25:51,110 --> 00:25:54,840 Ili to, ili da ili ovu drugu stvar ovdje. 643 00:25:54,840 --> 00:25:58,990 A kad želimo da to učinite, možemo koristiti u C sada, to ako 644 00:25:58,990 --> 00:26:00,860 drugo graditi. 645 00:26:00,860 --> 00:26:06,420 I onda ovdje imamo Boolean izraza. 646 00:26:06,420 --> 00:26:09,260 Na primjer, Boolean izraza Ovdje možemo ILI 647 00:26:09,260 --> 00:26:12,260 ih zajedno, u smislu da imamo ovaj uvjet ILI 648 00:26:12,260 --> 00:26:13,200 taj uvjet. 649 00:26:13,200 --> 00:26:15,100 Možemo ih i zajedno, u smislu da želimo 650 00:26:15,100 --> 00:26:17,710 provjeriti ovo stanje, te da stanje. 651 00:26:17,710 --> 00:26:22,440 I ovdje imamo switch izjavu sada, koja je ne tako 652 00:26:22,440 --> 00:26:26,040 Sličan sintaktički tim vrstama uvjeta, ali to 653 00:26:26,040 --> 00:26:30,160 omogućuje nam da učinite ekvivalent ako, drugo ako, ako, drugo drugo 654 00:26:30,160 --> 00:26:34,990 ako, i kao jednostavno nabrajaju ih od slučaja do slučaja 655 00:26:34,990 --> 00:26:36,670 do slučaja do slučaja. 656 00:26:36,670 --> 00:26:38,370 Dakle, vidjeli smo te posljednji put. 657 00:26:38,370 --> 00:26:40,430 A onda smo počeli dotičući stvari kao što su petlje. 658 00:26:40,430 --> 00:26:42,070 Vidjeli smo jednog od njih samo trenutak prije. 659 00:26:42,070 --> 00:26:44,180 No, tu su ovi drugi ušica konstrukti. 660 00:26:44,180 --> 00:26:46,370 >> Na primjer, ovaj ovdje. 661 00:26:46,370 --> 00:26:50,140 Dakle, dok je (uvjet), učiniti ovu stvar opet i opet. 662 00:26:50,140 --> 00:26:53,070 Dakle, u osnovi, ono što se čini da se razlikuje između ova 663 00:26:53,070 --> 00:26:55,760 za petlje i ove while petlja ovdje? 664 00:27:00,810 --> 00:27:05,045 Ovo za petlje i ove while petlja. 665 00:27:05,045 --> 00:27:07,840 Da? 666 00:27:07,840 --> 00:27:08,800 Što je to? 667 00:27:08,800 --> 00:27:10,050 PUBLIKA: [nečujan]. 668 00:27:14,632 --> 00:27:15,120 David J. MALAN: Dobro. 669 00:27:15,120 --> 00:27:17,130 Dakle, dok je u stanju za petlje, tu je jasno 670 00:27:17,130 --> 00:27:17,940 više sintaksa. 671 00:27:17,940 --> 00:27:20,560 Tu je ovaj inicijalizacije, tu je ovo ažuriranje. 672 00:27:20,560 --> 00:27:23,820 U while petlji, tamo je samo taj uvjet. 673 00:27:23,820 --> 00:27:26,630 Tako se čini da je to malo svede u odnosu na 674 00:27:26,630 --> 00:27:28,770 petlje, što znači da ako želimo imati varijable i želimo 675 00:27:28,770 --> 00:27:30,800 imati incrementation, mi zapravo moramo 676 00:27:30,800 --> 00:27:32,500 napraviti ovu stvar sami. 677 00:27:32,500 --> 00:27:34,420 >> Pa neka mi ići naprijed i otvoriti gedit. 678 00:27:34,420 --> 00:27:36,320 Dopustite mi prebaciti na aparatu. 679 00:27:36,320 --> 00:27:38,110 I neka je samo učiniti brzo malo primjer taj 680 00:27:38,110 --> 00:27:40,550 razlikuje jedan od tih od drugih. 681 00:27:40,550 --> 00:27:42,490 A u pozadini moga uma ovdje, ja bi trebao reći jednu stvar. 682 00:27:42,490 --> 00:27:44,120 Ja konkretno spominje ime Tima. 683 00:27:44,120 --> 00:27:47,740 Tim je zapravo netko da student pokušao pronaći napraviti 684 00:27:47,740 --> 00:27:48,680 njihova zadaća za njih. 685 00:27:48,680 --> 00:27:51,280 Nismo imali Tima u tom dijelu. 686 00:27:51,280 --> 00:27:53,690 Dakle shvatiti, da sam otkrila student, to nije bio učenik. 687 00:27:53,690 --> 00:27:55,720 To je bio slučajan osoba na internetu radi stvari 688 00:27:55,720 --> 00:27:57,180 po proxy prošle godine. 689 00:27:57,180 --> 00:27:58,670 Dakle, vidimo da, previše. 690 00:27:58,670 --> 00:28:00,630 Dakle, u ovom slučaju ovdje, pusti me naprijed i 691 00:28:00,630 --> 00:28:02,810 otvara novu datoteku. 692 00:28:02,810 --> 00:28:04,800 File, New. 693 00:28:04,800 --> 00:28:06,050 To mi daje karticu ovdje. 694 00:28:06,050 --> 00:28:09,940 Pusti me naprijed i spremite ga kao loop.c. 695 00:28:09,940 --> 00:28:11,810 Pusti me i kliknite Spremi. 696 00:28:11,810 --> 00:28:15,340 I onda ovdje dolje, idemo naprijed i početi pisati 697 00:28:15,340 --> 00:28:16,605 # Include . 698 00:28:19,116 --> 00:28:20,520 Dopustite mi povećali u. 699 00:28:20,520 --> 00:28:23,410 Sada ćemo napraviti int main (void). 700 00:28:23,410 --> 00:28:30,020 Sada neka mi ići naprijed i učiniti za (int i = 0; ja < 701 00:28:30,020 --> 00:28:33,480 oh, 10; i + +). 702 00:28:33,480 --> 00:28:36,620 A sada ću ići naprijed i nemojte ispisivati ​​zvijezdu da sam 703 00:28:36,620 --> 00:28:37,890 učinio ranije. 704 00:28:37,890 --> 00:28:39,390 I onda na kraju ovog programa, samo mi ide na 705 00:28:39,390 --> 00:28:41,130 ispisati novu liniju, samo tako da je moj upit 706 00:28:41,130 --> 00:28:42,470 ne izgleda sve neuredan. 707 00:28:42,470 --> 00:28:45,170 povratak 0. 708 00:28:45,170 --> 00:28:47,610 Izgleda sintaktički ispravan? 709 00:28:47,610 --> 00:28:48,040 Do sada. 710 00:28:48,040 --> 00:28:48,560 Tako ćemo vidjeti. 711 00:28:48,560 --> 00:28:51,290 >> Pa neka mi povećali, idite na moj prozor terminala. 712 00:28:51,290 --> 00:28:54,570 I neka mi ići naprijed i pokrenuti petlju, jer sam to nazvao 713 00:28:54,570 --> 00:28:55,690 stvar loop.c. 714 00:28:55,690 --> 00:28:56,780 Tako bi petlju. 715 00:28:56,780 --> 00:28:57,840 Čini se da se prevedu u redu. 716 00:28:57,840 --> 00:29:00,210 Dopustite mi pokrenuti petlju, a sada Enter. 717 00:29:00,210 --> 00:29:01,820 A čini se da su tiskana 10 zvijezde. 718 00:29:01,820 --> 00:29:03,780 Dakle, neka je samo to pretvoriti u while petlji i vidjeti što 719 00:29:03,780 --> 00:29:05,220 vrste pitanja smo zapeti. 720 00:29:05,220 --> 00:29:11,290 Dakle, umjesto toga, pusti me unutra i reći dok sam je 721 00:29:11,290 --> 00:29:12,760 manje od 10 - 722 00:29:12,760 --> 00:29:14,910 neka mi riješi for petlje. 723 00:29:14,910 --> 00:29:17,170 U redu, tako da imamo nekoliko problema već. 724 00:29:17,170 --> 00:29:21,110 Dakle, stanje je isto, ali sam očito mi nedostaje 725 00:29:21,110 --> 00:29:21,680 inicijalizacije. 726 00:29:21,680 --> 00:29:23,840 Ja sam nedostaje incrementation. 727 00:29:23,840 --> 00:29:28,020 Dakle, ono što treba prevodilac vjerojatno mi reći kad sam pokušati 728 00:29:28,020 --> 00:29:29,170 sastaviti ovaj program? 729 00:29:29,170 --> 00:29:29,666 Da? 730 00:29:29,666 --> 00:29:31,154 PUBLIKA: [nečujan]. 731 00:29:31,154 --> 00:29:31,650 >> David J. MALAN: Dobro. 732 00:29:31,650 --> 00:29:34,180 Dakle, to će reći nešto poput nedeklarirani - u ovom 733 00:29:34,180 --> 00:29:35,280 slučaju, ja varijabli. 734 00:29:35,280 --> 00:29:37,980 I doista, koristiti neprijavljenog identifikator ja. 735 00:29:37,980 --> 00:29:40,960 I tako je to u suprotnosti s jezicima kao što su PHP i 736 00:29:40,960 --> 00:29:43,120 Python i Ruby, s kojima su neki od vas možda biti upoznat, 737 00:29:43,120 --> 00:29:44,820 gdje možete samo vrsta početka pomoću varijabli 738 00:29:44,820 --> 00:29:47,420 hoćeš-nećeš, a da ne morate brinuti o njima proglašenja 739 00:29:47,420 --> 00:29:48,560 izričito uvijek. 740 00:29:48,560 --> 00:29:51,770 U C i jezicima kao što su Java i C + +, morate biti 741 00:29:51,770 --> 00:29:53,020 super eksplicitno. 742 00:29:53,020 --> 00:29:55,760 A ako želite varijablu sam nazvao, morate mi reći 743 00:29:55,760 --> 00:29:57,360 kakav varijable je. 744 00:29:57,360 --> 00:29:59,360 Tako ćemo morati popraviti ovo što slijedi. 745 00:29:59,360 --> 00:30:05,510 Ja ću morati ići ovdje i upišite int i, stoga, 746 00:30:05,510 --> 00:30:07,860 Ja sam proglašen varijablu sam nazvao. 747 00:30:07,860 --> 00:30:09,180 Sada, ja sam preskočila jedan korak. 748 00:30:09,180 --> 00:30:11,340 Ja sam očito ne inicijaliziran, ali neka se vidi ako je to u 749 00:30:11,340 --> 00:30:13,650 Barem izrađuje zveka prestati žaliti. 750 00:30:13,650 --> 00:30:15,770 Pa neka mi remake ovaj program. 751 00:30:15,770 --> 00:30:16,770 >> U redu, sada je to samo žaliti 752 00:30:16,770 --> 00:30:17,870 drugog razloga. 753 00:30:17,870 --> 00:30:21,130 "Promjenjiva 'ja' je nepokrenute kada se koristi ovdje." U redu, tako da 754 00:30:21,130 --> 00:30:22,340 to je prilično jasno. 755 00:30:22,340 --> 00:30:25,510 Inicijalizirati samo znači postavljanje je jednaka vrijednosti. 756 00:30:25,510 --> 00:30:30,820 A mi ne ste to učinili, pa neka me pokušati jednaka 0. 757 00:30:30,820 --> 00:30:35,030 Sada ćemo pokušati to ponovno i ponovno pokrenuti zveka. 758 00:30:35,030 --> 00:30:36,140 Sastavio ovaj put. 759 00:30:36,140 --> 00:30:37,210 I ja sam o tome da ga pokrenuti. 760 00:30:37,210 --> 00:30:43,120 No, velika stara klapa, jer sam učinio 761 00:30:43,120 --> 00:30:45,530 inicijalizacija, ja sam učinio stanje, ali ja nikad nisam učinio 762 00:30:45,530 --> 00:30:47,030 bilo kakav incrementation. 763 00:30:47,030 --> 00:30:48,780 Dakle, kako mogu učiniti incrementation? 764 00:30:48,780 --> 00:30:51,170 Pa, u while petlji, ona se osjeća kao da ću imati 765 00:30:51,170 --> 00:30:54,180 to učiniti unutar petlje, jer baš kao i prvi 766 00:30:54,180 --> 00:30:56,570 ovotjedni primjeri radili petlje konstrukti, kao što s 767 00:30:56,570 --> 00:30:59,040 čarape i sa self-prebrojavanja, morali smo napraviti 768 00:30:59,040 --> 00:31:01,550 nešto na samom kraju, željeli vratiti u sljedeći redak. 769 00:31:01,550 --> 00:31:05,040 Što ako sam ići naprijed i to ja + + ovdje? 770 00:31:05,040 --> 00:31:06,030 Nemojmo ni sastaviti to. 771 00:31:06,030 --> 00:31:06,890 Catch me već. 772 00:31:06,890 --> 00:31:09,704 Što je krivo ovdje? 773 00:31:09,704 --> 00:31:10,690 PUBLIKA: [nečujan]. 774 00:31:10,690 --> 00:31:11,770 >> David J. MALAN: Dakle, to definitivno nije int. 775 00:31:11,770 --> 00:31:13,080 To je sam. 776 00:31:13,080 --> 00:31:15,110 I vitičastih zagrada, kao prije, 777 00:31:15,110 --> 00:31:16,800 udubljenje nije dovoljno. 778 00:31:16,800 --> 00:31:18,410 Dakle, sada sam to izvesti. 779 00:31:18,410 --> 00:31:21,780 Dakle, dok sam je manje od 10, ispis zvijezdu, 780 00:31:21,780 --> 00:31:23,220 onda ja povećavati. 781 00:31:23,220 --> 00:31:25,680 I tako, dok petlja djela je da čim hit 782 00:31:25,680 --> 00:31:29,630 dno petlje, koja je u ovom slučaju izgleda kao linija 10, 783 00:31:29,630 --> 00:31:32,880 to će se vratiti na liniju 6, na kojem trenutku 784 00:31:32,880 --> 00:31:34,400 stanje će biti ponovno provjereni. 785 00:31:34,400 --> 00:31:37,500 A ako je i dalje manje od 10, mi ćemo učiniti linije 8 i 786 00:31:37,500 --> 00:31:41,250 zatim devet, onda ćemo pogoditi 10, i vratite se na šest, i opet 787 00:31:41,250 --> 00:31:45,580 opet i opet i opet, tako dugo dok sam je manje od 10. 788 00:31:45,580 --> 00:31:47,860 Dakle, neka je ponovno pokrenuti napraviti ovdje. 789 00:31:47,860 --> 00:31:48,940 >> Ok, sastavili smo ok. 790 00:31:48,940 --> 00:31:50,300 Dopustite mi da ponovno pokrenuti petlje. 791 00:31:50,300 --> 00:31:52,620 A sada je to zapravo čini da rade. 792 00:31:52,620 --> 00:31:55,100 Dakle pluses i minusa ovdje? 793 00:31:55,100 --> 00:31:58,910 Pa, do sada tu je zapravo ne cijela PLO - 794 00:31:58,910 --> 00:31:59,420 tako slatka. 795 00:31:59,420 --> 00:32:01,870 U redu, to je bio - ah, to je nesreća. 796 00:32:01,870 --> 00:32:05,200 U redu, tako da ćemo se vratiti u for petlji. 797 00:32:05,200 --> 00:32:07,530 Dakle, za petlje su lijepe, jer oni su super eksplicitno. 798 00:32:07,530 --> 00:32:09,720 I iako oni malo nezgrapnih pisati, to je 799 00:32:09,720 --> 00:32:11,500 vrlo moćan i to vam omogućuje da učinite 800 00:32:11,500 --> 00:32:12,980 više stvari odjednom. 801 00:32:12,980 --> 00:32:16,240 Dok petlje ne čini se da imaju veliku količinu vrijednosti samo 802 00:32:16,240 --> 00:32:18,500 Ipak, budući da se osjeća kao da smo samo morati učiniti više posla. 803 00:32:18,500 --> 00:32:20,670 Moramo staviti inicijalizacije ovdje, 804 00:32:20,670 --> 00:32:23,480 ažurirati ovdje dolje, i moramo se prisjetiti da će učiniti sve da. 805 00:32:23,480 --> 00:32:26,260 Pa ćemo vidjeti u vrijeme dok petlje da zapravo posuditi 806 00:32:26,260 --> 00:32:29,380 sami za samo različitim kontekstima, različiti podaci 807 00:32:29,380 --> 00:32:33,900 strukture kao što su popisi i hash tablice, stvari ćemo doći do 808 00:32:33,900 --> 00:32:34,970 Sredinom semestra. 809 00:32:34,970 --> 00:32:37,900 Ali za sada, znamo da postoji taj treći tip poznat kao ne- 810 00:32:37,900 --> 00:32:38,480 while petlja. 811 00:32:38,480 --> 00:32:39,540 I mi smo vidjeli ovo kratko. 812 00:32:39,540 --> 00:32:41,830 A to bi moglo biti super korisno s pset jedan. 813 00:32:41,830 --> 00:32:45,570 Svaki put kada želite nešto učiniti, a zatim provjerite je li 814 00:32:45,570 --> 00:32:48,940 Korisnik surađivali, a ako nisu, to učiniti opet, ne- 815 00:32:48,940 --> 00:32:51,460 while petlja posuđuje sama za tu vrstu logike. 816 00:32:51,460 --> 00:32:55,640 Jer kao naređivanje od vrha do dna ovdje sugerira, 817 00:32:55,640 --> 00:32:57,750 ne doslovno znači to. 818 00:32:57,750 --> 00:32:59,830 A to opet i opet, što bi to moglo biti? 819 00:32:59,830 --> 00:33:03,000 Možda to znači pozivajući GetInt ili GetString, a zatim 820 00:33:03,000 --> 00:33:05,830 provjeru vrijednost GetInt ili GetString a zatim deranja 821 00:33:05,830 --> 00:33:08,260 na korisnika ako oni nisu surađivali ih pita 822 00:33:08,260 --> 00:33:10,100 opet i opet i opet. 823 00:33:10,100 --> 00:33:11,730 Gdje želite učiniti nešto jednom, 824 00:33:11,730 --> 00:33:13,210 zatim provjeriti neke uvjete. 825 00:33:13,210 --> 00:33:14,110 >> Dakle, pokušajmo to. 826 00:33:14,110 --> 00:33:17,130 Dopustite mi zapravo promijeniti to sada učiniti-while petlje. 827 00:33:17,130 --> 00:33:18,830 I ja ću ići naprijed i učiniti sljedeće. 828 00:33:18,830 --> 00:33:21,830 Dakle, učinite sljedeće. 829 00:33:21,830 --> 00:33:26,870 Učinimo int i = GetInt (), ali neka prvi korisniku reći 830 00:33:26,870 --> 00:33:27,410 što učiniti. 831 00:33:27,410 --> 00:33:29,050 Dakle, malo drugačije ovaj put. 832 00:33:29,050 --> 00:33:31,270 "Daj mi int". 833 00:33:31,270 --> 00:33:32,910 Dakle, ja ću koristiti printf za to. 834 00:33:32,910 --> 00:33:35,740 A sada ću ići dolje, i ja ću to učiniti 835 00:33:35,740 --> 00:33:41,520 dok sam je, recimo, veći od - 836 00:33:41,520 --> 00:33:47,540 neka se vidi, ja je, recimo, manje od 0, ili sam je 837 00:33:47,540 --> 00:33:48,730 veća od 10. 838 00:33:48,730 --> 00:33:51,810 Drugim riječima, želim broj 1 do 9, samo 839 00:33:51,810 --> 00:33:52,720 proizvoljno. 840 00:33:52,720 --> 00:33:55,290 Dakle, ja sam koristeći kombiniranu Boolean izraza ovdje 841 00:33:55,290 --> 00:33:59,930 bi bili sigurni da sam je manja od 0 ili veći od 10, u kojoj je 842 00:33:59,930 --> 00:34:02,530 Slučaj Učinit ću ovu petlju opet ovdje. 843 00:34:02,530 --> 00:34:04,400 Pa opet, to - 844 00:34:04,400 --> 00:34:08,480 dok sam je manja od 0 ili i je veći od 10. 845 00:34:08,480 --> 00:34:11,440 >> Dakle, sada idemo naprijed i to nakon što smo to učinili. 846 00:34:11,440 --> 00:34:13,270 Ajmo napraviti brzo razum ček. 847 00:34:13,270 --> 00:34:18,929 printf ("Hvala, i je% d", i). 848 00:34:18,929 --> 00:34:21,350 Dakle, ovo jednostavan program pita korisnika za int, 849 00:34:21,350 --> 00:34:24,000 čini da je to u nekom rasponu od 1 do 9 inclusive, 850 00:34:24,000 --> 00:34:26,280 i onda zahvaljujući korisniku podsjećajući ih što su upravo 851 00:34:26,280 --> 00:34:27,940 upisali u, baš kao malo uračunljivosti ček. 852 00:34:27,940 --> 00:34:30,659 Ali neka je vidjeti ako to radi onako kako smo zamislili. 853 00:34:30,659 --> 00:34:34,533 Pusti me glava ovdje dolje i ponovno pokrenuti napraviti petlju. 854 00:34:34,533 --> 00:34:35,350 Hmm. 855 00:34:35,350 --> 00:34:38,600 "Korištenje neprijavljenog identifikator 'ja'". To je čudno. 856 00:34:38,600 --> 00:34:41,509 Mislio sam da ćemo riješiti to. 857 00:34:45,489 --> 00:34:47,560 Sve simptom, ali različiti broj. 858 00:34:47,560 --> 00:34:47,899 Da? 859 00:34:47,899 --> 00:34:50,191 PUBLIKA: [nečujno] unutar dva, moramo 860 00:34:50,191 --> 00:34:52,639 [Nečujan]. 861 00:34:52,639 --> 00:34:53,260 >> David J. MALAN: Točno. 862 00:34:53,260 --> 00:34:55,989 Dakle, ovo je zapravo nas dovodi do teme poznat kao djelokruga. 863 00:34:55,989 --> 00:34:59,350 Ispada da je C, opet, to je stvarno vas vodi doslovno. 864 00:34:59,350 --> 00:35:02,970 A ako ste učiniti nešto poput ovoga gdje ste proglasi int 865 00:35:02,970 --> 00:35:06,120 a zatim dodijeliti neku vrijednost, ali ne da se unutrašnjost 866 00:35:06,120 --> 00:35:09,840 Par vitičastih zagrada, što znači C je to pretpostavlja da 867 00:35:09,840 --> 00:35:14,800 Samo želim te 32 bita poznate kao ja da postoje unutar 868 00:35:14,800 --> 00:35:18,200 kontekst onih vitičastih zagrada, u kontekstu linije 869 00:35:18,200 --> 00:35:22,420 6 do 9. Tako sam se proglasio, i to je dodijeljen 870 00:35:22,420 --> 00:35:26,530 vrijednost u skladu osam, ali čim dođete izvan 871 00:35:26,530 --> 00:35:30,270 linija 9 ispod kovrčave vitice, ja više ne 872 00:35:30,270 --> 00:35:31,910 Opseg, da se tako izrazim. 873 00:35:31,910 --> 00:35:35,030 S-C-O-P-E. To više nije u pravom kontekstu. 874 00:35:35,030 --> 00:35:37,940 Dakle, sada nema ja, tako da je to kao da smo imali čak ni 875 00:35:37,940 --> 00:35:38,770 ga proglasio uopće. 876 00:35:38,770 --> 00:35:41,520 >> Dakle, ono što je popraviti onda za nešto ovako, ako 877 00:35:41,520 --> 00:35:44,300 Razlog je u tome što sam proglašen unutar vitičastih zagrada, koji 878 00:35:44,300 --> 00:35:45,120 je očito loše? 879 00:35:45,120 --> 00:35:45,410 Ovdje? 880 00:35:45,410 --> 00:35:46,820 PUBLIKA: [nečujan]. 881 00:35:46,820 --> 00:35:47,150 David J. MALAN: Da. 882 00:35:47,150 --> 00:35:48,710 Dakle, možemo ga inicijalizirati izvan. 883 00:35:48,710 --> 00:35:53,530 Pa neka mi ići naprijed i izbrisati Deklaracije dijelove Čime 884 00:35:53,530 --> 00:35:55,820 Ja navedite tip, i neka mi to učiniti ovdje. 885 00:35:55,820 --> 00:36:00,220 Dakle, u skladu pet, to je sada kaže: "Daj mi int." Nazovite to ja. 886 00:36:00,220 --> 00:36:03,400 Obavijest u skladu 9, ne želim to učiniti, jer sam 887 00:36:03,400 --> 00:36:04,830 već imaju 32 bita. 888 00:36:04,830 --> 00:36:06,140 Ne želim pitati računalo za 889 00:36:06,140 --> 00:36:07,630 Različite 32 bita. 890 00:36:07,630 --> 00:36:09,850 Želim koristiti one iste 32 bita. 891 00:36:09,850 --> 00:36:13,190 I sada, jer sam je proglašen u skladu 5, to je još uvijek čitljiv 892 00:36:13,190 --> 00:36:16,550 koristiti ga u skladu 11 i 12 linija. 893 00:36:16,550 --> 00:36:19,310 >> Pa neka mi pokušati rekompiliranje to i vidjeti 894 00:36:19,310 --> 00:36:20,490 ako zveka prestaje vikati. 895 00:36:20,490 --> 00:36:22,380 napraviti petlju. 896 00:36:22,380 --> 00:36:25,470 Dakle, sada je "implicitno deklaracija funkcije 897 00:36:25,470 --> 00:36:29,880 'GetInt' je nevažeća u C99. "Što je to? 898 00:36:29,880 --> 00:36:30,400 Da? 899 00:36:30,400 --> 00:36:32,330 PUBLIKA: [nečujan]. 900 00:36:32,330 --> 00:36:32,690 David J. MALAN: Da. 901 00:36:32,690 --> 00:36:35,520 Tako da sada sam zapravo koristi GetInt, to nije nešto 902 00:36:35,520 --> 00:36:38,190 samo da dolazi s C. To dolazi iz CS50. 903 00:36:38,190 --> 00:36:39,890 Dakle, moramo ovo ovdje. 904 00:36:39,890 --> 00:36:41,450 I neka mi se vratiti na brz dolje 905 00:36:41,450 --> 00:36:43,500 ovdje i ponovno pokrenuti napraviti. 906 00:36:43,500 --> 00:36:44,160 Ok, napokon. 907 00:36:44,160 --> 00:36:46,270 Sada smo odluku da i drugi pogrešku. 908 00:36:46,270 --> 00:36:48,930 Dopustite mi sada pokrenuti petlju i vidjeti što se događa. 909 00:36:48,930 --> 00:36:51,740 "Daj mi int." Ja ću dati 11. 910 00:36:51,740 --> 00:36:53,100 Dat ću ga -1. 911 00:36:53,100 --> 00:36:54,470 Dat ću ga foo. 912 00:36:54,470 --> 00:36:56,080 Ja ću dati pet. 913 00:36:56,080 --> 00:36:57,450 A sada je to doista funkcionira. 914 00:36:57,450 --> 00:36:59,410 No, brz promijenilo s razlogom ovdje. 915 00:36:59,410 --> 00:37:02,800 Zašto to kažem ponovo jedan od tih vremena, ali daj mi 916 00:37:02,800 --> 00:37:03,920 int ostale tri puta? 917 00:37:03,920 --> 00:37:05,500 Zašto je to ponašanje drugačije? 918 00:37:05,500 --> 00:37:06,980 PUBLIKA: Dao mu je niz. 919 00:37:06,980 --> 00:37:07,830 David J. MALAN: Žao mi? 920 00:37:07,830 --> 00:37:08,570 PUBLIKA: Vi dali niz. 921 00:37:08,570 --> 00:37:08,990 David J. MALAN: Da. 922 00:37:08,990 --> 00:37:11,450 Tako smo dali niz u ovom trećem pokušaju, 923 00:37:11,450 --> 00:37:12,490 kad sam upisali foo. 924 00:37:12,490 --> 00:37:13,200 Foo je niz. 925 00:37:13,200 --> 00:37:14,340 To je očito nije int. 926 00:37:14,340 --> 00:37:17,500 A način na koji je proveden CS50 GetInt je da smo 927 00:37:17,500 --> 00:37:20,330 ne provjeriti da li nešto je manji od 0 ili veća od 10 928 00:37:20,330 --> 00:37:22,260 za vas, jer kako znamo unaprijed kakav 929 00:37:22,260 --> 00:37:23,130 int želite? 930 00:37:23,130 --> 00:37:25,880 Ali mi minimalno možete provjeriti za vas, nije korisnik barem 931 00:37:25,880 --> 00:37:26,730 upisati cijeli broj? 932 00:37:26,730 --> 00:37:30,500 A ako nisu, mi vikati na korisnika upišete "ponovo" na 933 00:37:30,500 --> 00:37:31,440 zaslon. 934 00:37:31,440 --> 00:37:34,210 >> Tako sada imamo program koji je petlje. Ok. 935 00:37:34,210 --> 00:37:37,070 Sada, koji od njih je nekako bolje konstrukt? 936 00:37:37,070 --> 00:37:39,060 Dakle, ovo je mjesto gdje se stvari početi da se malo neuredan, 937 00:37:39,060 --> 00:37:42,360 Činjenica da imate na umu da se proglasi varijablu ovdje 938 00:37:42,360 --> 00:37:44,630 ako ga želite koristiti unutar nekih 939 00:37:44,630 --> 00:37:46,460 vitičastih zagrada i izvan nje. 940 00:37:46,460 --> 00:37:48,490 No, čak i ako to izgleda malo zagonetan na prvi 941 00:37:48,490 --> 00:37:50,750 pogled, samo jednom, zapamtite jednostavnu logiku. 942 00:37:50,750 --> 00:37:54,630 Kako bi se koristiti ništa u C, da li je funkcija ili 943 00:37:54,630 --> 00:37:57,680 to je promjenjiva, morate ga uključiti ako je funkcija 944 00:37:57,680 --> 00:37:59,770 u nekoj knjižnici, ili trebate ga proglasiti. 945 00:37:59,770 --> 00:38:02,405 Ali sada morate biti extra svjesni činjenice da 946 00:38:02,405 --> 00:38:04,940 ste ga izjavljujući u pravom opsegu. 947 00:38:04,940 --> 00:38:08,150 Vi ne stavljajući ga previše čvrsto unutar zagrade. 948 00:38:08,150 --> 00:38:09,410 >> Pa neka mi zapravo vratiti. 949 00:38:09,410 --> 00:38:12,660 Ako se vratimo na naše primjerice od ranije, a idem 950 00:38:12,660 --> 00:38:19,245 natrag na int, int i = 0; ja <10; ja + +, a ja 951 00:38:19,245 --> 00:38:26,370 učiniti printf zvijezde, kao što je ovaj, a zatim zatvorite paren, a sada 952 00:38:26,370 --> 00:38:30,410 printf ja sada - 953 00:38:30,410 --> 00:38:33,500 prema istoj logici, ono što će se dogoditi kad sam pokušati 954 00:38:33,500 --> 00:38:35,500 sastaviti ovaj program? 955 00:38:35,500 --> 00:38:36,790 PUBLIKA: Nevažeći identifikator. 956 00:38:36,790 --> 00:38:38,560 David J. MALAN: Dakle, to je još jedan valjan identifikator, 957 00:38:38,560 --> 00:38:39,470 neprijavljenog identifikator. 958 00:38:39,470 --> 00:38:41,810 Sada, razlog je malo drugačija. 959 00:38:41,810 --> 00:38:44,370 Tu je očito nema vitičastih zagrada ovdje, ali isto 960 00:38:44,370 --> 00:38:46,790 Ideja, ista priča opsega vrijedi. 961 00:38:46,790 --> 00:38:50,340 Ako ste proglašeni varijablu kao da sam unutar 962 00:38:50,340 --> 00:38:53,960 za petlje, čak i ako nisu eksplicitno napisano kovrčava 963 00:38:53,960 --> 00:38:56,980 aparatić, mislim od njih psihički je još uvijek tamo, u kojem 964 00:38:56,980 --> 00:39:00,310 slučaj i vrijedi samo unutar for petlje. 965 00:39:00,310 --> 00:39:03,080 To ne vrijedi kad dođete na sljedeću liniju, koja je u 966 00:39:03,080 --> 00:39:05,090 ovaj slučaj je sada 10. 967 00:39:05,090 --> 00:39:09,060 Dakle, samo nekoliko pitanja opsega i slično. 968 00:39:09,060 --> 00:39:12,620 U redu, bilo kakva pitanja? 969 00:39:12,620 --> 00:39:15,310 >> U redu, tako da je ovo vrsta beznačajni malo programa, 970 00:39:15,310 --> 00:39:17,450 ispis samo malo zvijezde. 971 00:39:17,450 --> 00:39:20,400 Ali neka je vidjeti ako se sjećate ovu pjesmu ovdje. 972 00:39:20,400 --> 00:39:22,530 Ovo je nevjerojatno neugodno pjesma djeca će pjevati na 973 00:39:22,530 --> 00:39:23,550 školski autobus i slično. 974 00:39:23,550 --> 00:39:25,990 No, ono što je lijepo o tome je da je ovaj cyclicity, 975 00:39:25,990 --> 00:39:27,910 pri čemu je "99 boca piva na zidu, 976 00:39:27,910 --> 00:39:28,520 99 boca piva. 977 00:39:28,520 --> 00:39:31,030 Jedan Uzmi dolje, to zaobići, 98 boca piva na 978 00:39:31,030 --> 00:39:34,330 zid. "A onda pjesma ponavlja 97, zatim 96, a zatim 979 00:39:34,330 --> 00:39:38,040 95, zatim 94, pa sve do 0 ako ste zapravo dobio da 980 00:39:38,040 --> 00:39:38,920 daleko u autobusu. 981 00:39:38,920 --> 00:39:41,960 Dakle, ovo je lijep program za sortiranje od oruđa, jer moje 982 00:39:41,960 --> 00:39:43,650 Bog, ako baš mogao provesti ovo s nekoliko 983 00:39:43,650 --> 00:39:46,660 linija koda, možete ispljunuti cijeli lyrics to 984 00:39:46,660 --> 00:39:48,240 pjesma vrlo brzo. 985 00:39:48,240 --> 00:39:50,420 No, na tom putu, možemo početi sada zafrkavati osim nekih 986 00:39:50,420 --> 00:39:52,460 tih osnovnih petlje konstrukata i sada 987 00:39:52,460 --> 00:39:55,830 uvesti funkcije koje smo sami napisati, vratiti vrijednosti 988 00:39:55,830 --> 00:39:57,020 da mi prođe oko. 989 00:39:57,020 --> 00:39:58,910 Ali prvo, zašto ne bismo ići naprijed i uzeti naš pet minuta 990 00:39:58,910 --> 00:39:59,320 razbiti ovdje? 991 00:39:59,320 --> 00:40:01,480 A kad smo se vratiti, mi ćemo pjevati ovu pjesmu. 992 00:40:05,680 --> 00:40:08,760 >> U redu, tako da smo se vratili. 993 00:40:08,760 --> 00:40:11,850 A kad kažem sada ćemo pjevati ovu pjesmu, mislim 994 00:40:11,850 --> 00:40:13,250 programatski, a ne verbalno. 995 00:40:13,250 --> 00:40:19,370 Dakle, ovdje imamo beer1.c, što je jedan provedba ovog 996 00:40:19,370 --> 00:40:20,580 Posebno pjesma. 997 00:40:20,580 --> 00:40:23,110 I samo da bude jasno, za one koji nisu upoznati s onim što 998 00:40:23,110 --> 00:40:24,460 ova stvar izgleda, pusti me naprijed 999 00:40:24,460 --> 00:40:27,070 i napraviti beer1, Enter. 1000 00:40:27,070 --> 00:40:30,400 Sada neka mi pokrenuti beer1, a što ćemo vidjeti - koliko boce 1001 00:40:30,400 --> 00:40:31,140 piva tu će biti? 1002 00:40:31,140 --> 00:40:33,240 Ja ću upisati u 99, kao i pjesma kaže. 1003 00:40:33,240 --> 00:40:34,040 Upišite. 1004 00:40:34,040 --> 00:40:35,650 A sad, ako smo se kretali kroz - 1005 00:40:35,650 --> 00:40:38,280 Ups - ako smo se kretali kroz sve to, vidjet ćemo da je 1006 00:40:38,280 --> 00:40:41,350 ovo je zaista pjevaju cijelu pjesmu. 1007 00:40:44,050 --> 00:40:44,540 Čekaj malo. 1008 00:40:44,540 --> 00:40:46,240 Moj klizač je malo zabrljao. 1009 00:40:46,240 --> 00:40:47,940 Ajmo koristiti veći prozor. 1010 00:40:47,940 --> 00:40:53,500 Dakle beer1, 99, tamo idemo. 1011 00:40:53,500 --> 00:40:56,420 Dakle, ovdje imamo cijelu pjesmu, pjeva puno brže 1012 00:40:56,420 --> 00:40:58,450 Računalo nego što je mogao biti kod nas. 1013 00:40:58,450 --> 00:41:00,340 Dakle primijetiti, ipak, cikličku prirodu ovdje. 1014 00:41:00,340 --> 00:41:03,380 Ona kaže 99, zatim 99, zatim "jedan uzeti dolje, to proći 1015 00:41:03,380 --> 00:41:04,740 oko ", zatim 98. 1016 00:41:04,740 --> 00:41:06,640 I sad to ponavlja opet i opet. 1017 00:41:06,640 --> 00:41:08,840 >> Dakle, to je zapravo idealna prilika za neke vrste 1018 00:41:08,840 --> 00:41:10,400 petlje izgraditi. 1019 00:41:10,400 --> 00:41:12,950 Primijetit ćete da sam vrsta rezanja kutu ovdje. 1020 00:41:12,950 --> 00:41:15,960 Primijetit ćete da sam rekao "98 boca piva na zidu, 1021 00:41:15,960 --> 00:41:19,010 97 boca piva na zidu ", i da je samo tako 1022 00:41:19,010 --> 00:41:21,640 da kad smo doći do jedne boce piva, nemam 1023 00:41:21,640 --> 00:41:23,300 brinuti o engleskoj gramatici. 1024 00:41:23,300 --> 00:41:25,790 Ali, mi također može popraviti s malo, ako 1025 00:41:25,790 --> 00:41:26,910 stanje, možda. 1026 00:41:26,910 --> 00:41:30,110 Ako je taj broj u jednini, ići naprijed i reći "bocu", 1027 00:41:30,110 --> 00:41:31,840 inače ako je množina, kažu "boce". 1028 00:41:31,840 --> 00:41:34,150 Ali za sada, ja sam potpuno rezanje taj kut. 1029 00:41:34,150 --> 00:41:35,520 Pa da vidimo što imamo ovdje. 1030 00:41:35,520 --> 00:41:37,150 Dakle, imamo neke komentare na vrhu. 1031 00:41:37,150 --> 00:41:39,450 Ja uključujući ove dvije knjižnice, kao 1032 00:41:39,450 --> 00:41:41,140 smo često sam bio. 1033 00:41:41,140 --> 00:41:43,610 I sada neka mi se pomaknite prema dolje do prvog 1034 00:41:43,610 --> 00:41:44,990 Stvarni linija koda. 1035 00:41:44,990 --> 00:41:47,020 Linija 17 započinje glavni. 1036 00:41:47,020 --> 00:41:50,610 Linija 21 i 20 ima koliko boca piva tu će biti? 1037 00:41:50,610 --> 00:41:52,060 A onda sam nazvati GetInt. 1038 00:41:52,060 --> 00:41:53,800 A sada imam malo o uračunljivosti provjeriti. 1039 00:41:53,800 --> 00:41:57,030 >> Dakle, ovo je konvencija da smo sada ću početi usvajanje na 1040 00:41:57,030 --> 00:41:59,620 više rigorozno provjeriti korisnikov ulaz. 1041 00:41:59,620 --> 00:42:01,710 Ponekad jednostavno ne žele da ih zatražiti ponovno 1042 00:42:01,710 --> 00:42:02,630 i opet i opet. 1043 00:42:02,630 --> 00:42:05,620 Ako korisnik vijci i ne surađuju, u redu. 1044 00:42:05,620 --> 00:42:07,430 Zatvorite i jednostavno ne nositi s njima. 1045 00:42:07,430 --> 00:42:08,990 I tako to je ono što ja radim ovdje. 1046 00:42:08,990 --> 00:42:12,520 Ako je n manje od 1, Samo ću vikati na korisnika, 1047 00:42:12,520 --> 00:42:14,330 "Žao mi je, da nema smisla." A onda ću 1048 00:42:14,330 --> 00:42:16,650 samovoljno vrati jedan. 1049 00:42:16,650 --> 00:42:18,550 Pa opet, to je samo konvencija naviknuti. 1050 00:42:18,550 --> 00:42:19,850 Za sada, to se na vjeri. 1051 00:42:19,850 --> 00:42:22,700 No, do sada, uvijek smo bili vraća 0, jer 1052 00:42:22,700 --> 00:42:25,204 smo kazao povratka 0 označava ono što? 1053 00:42:25,204 --> 00:42:26,000 PUBLIKA: Uspjeh. 1054 00:42:26,000 --> 00:42:27,320 David J. MALAN: Uspjeh, to je sve. 1055 00:42:27,320 --> 00:42:29,740 Tako da sada smo napokon počinju razmišljati o 1056 00:42:29,740 --> 00:42:31,330 non-uspjesi - 1057 00:42:31,330 --> 00:42:33,760 Drugim riječima, kutak slučajeva, pogreškama uvjetima - 1058 00:42:33,760 --> 00:42:37,520 sada imam beskonačnu ponudu, ili barem četiri milijarde 1059 00:42:37,520 --> 00:42:39,790 moguće stvari koje mogu poći krivo u mojim programima. 1060 00:42:39,790 --> 00:42:42,300 I mogu početi dodjeljujući im pojedinačne brojeve. 1061 00:42:42,300 --> 00:42:44,340 Sada, općenito dovoljno je samo povratak 1062 00:42:44,340 --> 00:42:45,730 nešto drugo od 0. 1063 00:42:45,730 --> 00:42:48,040 Tako ćemo jednostavno vratiti jedan za sada. 1064 00:42:48,040 --> 00:42:51,440 No, razlog za povratak jedan je da čim se vratite 1065 00:42:51,440 --> 00:42:55,110 1, pogodite što se događa s ostatkom programa? 1066 00:42:55,110 --> 00:42:55,720 Ona zaustavlja. 1067 00:42:55,720 --> 00:42:56,560 To je to. 1068 00:42:56,560 --> 00:42:59,150 Dakle, činjenica da sam u povratku jedan je učinkovito 1069 00:42:59,150 --> 00:43:02,950 kratkog spoja Ovaj program je izvršenje, tako da 1070 00:43:02,950 --> 00:43:06,780 ništa ispod linije 27 će nastaviti izvršenje. 1071 00:43:06,780 --> 00:43:09,210 Čim glavnih vraća, to je to. 1072 00:43:09,210 --> 00:43:13,160 >> U redu, tako da ako korisnik ne surađuju i dolazimo do linije 30 1073 00:43:13,160 --> 00:43:15,680 jer su upisali u legitimnom broju, ovdje je moj 1074 00:43:15,680 --> 00:43:16,990 Provedba ove pjesme. 1075 00:43:16,990 --> 00:43:19,050 Tako sam prvi ispisati newline karakter, samo za 1076 00:43:19,050 --> 00:43:19,880 estetika. 1077 00:43:19,880 --> 00:43:21,500 Sada imam za petlju. 1078 00:43:21,500 --> 00:43:22,930 I primijetiti da radim stvari u malo 1079 00:43:22,930 --> 00:43:23,880 od drugom smjeru. 1080 00:43:23,880 --> 00:43:26,210 Ja ne moram raditi manje, ne moram raditi + +. 1081 00:43:26,210 --> 00:43:30,660 Ja mogu reći umjesto inicijalizirati varijablu ja, postavljen je jednaka 1082 00:43:30,660 --> 00:43:35,080 n, broj korisnika upisali u, a zatim učinite sljedeće, pa 1083 00:43:35,080 --> 00:43:39,590 dok sam je veći od 0, onda ja - 1084 00:43:39,590 --> 00:43:42,070 nakon što ste završili jedan iteracija ove petlje. 1085 00:43:42,070 --> 00:43:44,310 Dakle, možemo računati dolje pomoću for petlje, kao dobro. 1086 00:43:44,310 --> 00:43:47,520 Sada, to je prilično puno tjedna jedna stvar sada, s printf. 1087 00:43:47,520 --> 00:43:51,770 Dakle print "% d boce piva na zidu." Ispis "% d 1088 00:43:51,770 --> 00:43:54,990 boca piva. "" jedan Uzmi dolje, to zaobići. "Ispis 1089 00:43:54,990 --> 00:43:58,880 "% D boce piva na zidu." Dakle, to je još uvijek% d, ali 1090 00:43:58,880 --> 00:44:02,770 primijetiti da argument printf da se mijenja. 1091 00:44:02,770 --> 00:44:05,840 Nakon zareza, ja imam, jer želim reći 99. 1092 00:44:05,840 --> 00:44:08,590 Nakon ovog zarezom, ja imam, jer želim reći 99. 1093 00:44:08,590 --> 00:44:14,030 Nakon ovog zarezom, ja imam - 1, jer želim reći 98 u 1094 00:44:14,030 --> 00:44:16,260 ova prva iteracija, i tako dalje. 1095 00:44:16,260 --> 00:44:18,520 I sada ovdje dolje, samo moram malo glupo malo primjedbu. 1096 00:44:18,520 --> 00:44:22,270 A onda linija 42, vraćam 0 po konvenciji, što znači da je 1097 00:44:22,270 --> 00:44:23,650 sve je u redu. 1098 00:44:23,650 --> 00:44:24,490 >> Pa što ako sam goofed? 1099 00:44:24,490 --> 00:44:26,350 Što bi uobičajena pogreška ovdje biti? 1100 00:44:26,350 --> 00:44:29,200 Pa, što ako sam slučajno rekao dobro, ja ne želim računati 1101 00:44:29,200 --> 00:44:31,640 do 0, želim 0 boce piva na zidu? 1102 00:44:31,640 --> 00:44:34,620 Dakle, ja kažem, ja je veći ili jednak 0. 1103 00:44:34,620 --> 00:44:38,920 Što će biti simptom koji ja sada vidim da sam rekompiliranje 1104 00:44:38,920 --> 00:44:41,173 beer1 i pokrenite ga? 1105 00:44:41,173 --> 00:44:42,120 PUBLIKA: Negativna. 1106 00:44:42,120 --> 00:44:43,590 David J. MALAN: Da, to će ići negativna. 1107 00:44:43,590 --> 00:44:45,950 Ovo je off-by-jedna pogreška, nevjerojatno 1108 00:44:45,950 --> 00:44:47,270 uobičajena pogreška za napraviti. 1109 00:44:47,270 --> 00:44:48,960 Ajmo zapravo vratiti na prozor terminala i učiniti ga 1110 00:44:48,960 --> 00:44:50,620 ovdje, tako da možemo vidjeti više u isto vrijeme. 1111 00:44:50,620 --> 00:44:53,280 Unesite, 99 boca piva. 1112 00:44:53,280 --> 00:44:56,580 Zatvori, ali smo otišli ikada tako nešto predaleko. 1113 00:44:56,580 --> 00:45:00,500 Mi je pjevao pjesmu predaleko dolje, tako da smo sada hit 1114 00:45:00,500 --> 00:45:01,510 Negativan broj. 1115 00:45:01,510 --> 00:45:03,680 Dakle, to ne sasvim raditi. 1116 00:45:03,680 --> 00:45:06,450 >> U redu, tako da se lako može popraviti da ide natrag u 1117 00:45:06,450 --> 00:45:07,650 način što je nekad bio. 1118 00:45:07,650 --> 00:45:10,360 No, ono što su neke mogućnosti za sada 1119 00:45:10,360 --> 00:45:11,190 poboljšanje? 1120 00:45:11,190 --> 00:45:17,200 Pa, dopustite mi da otvorite beer2.c i dođite ovamo i uzeti 1121 00:45:17,200 --> 00:45:19,310 pogled na ovoj verziji. 1122 00:45:19,310 --> 00:45:21,370 Što je prva stvar koja skače na vas kao različiti 1123 00:45:21,370 --> 00:45:23,715 u ovoj verziji ovdje? 1124 00:45:23,715 --> 00:45:24,190 PUBLIKA: [nečujan]. 1125 00:45:24,190 --> 00:45:26,510 David J. MALAN: Da, tako da nema više ja, jer to palo na pamet 1126 00:45:26,510 --> 00:45:29,350 mi znate što, ja tražim korisnika za n, i onda sam 1127 00:45:29,350 --> 00:45:33,580 postavljanje i jednak n, a onda sam ja mijenja, ali nikad nisam 1128 00:45:33,580 --> 00:45:34,590 dira n opet. 1129 00:45:34,590 --> 00:45:37,390 Dakle, ono što je ispitati kritički je točka od vas dodjele još 32 1130 00:45:37,390 --> 00:45:45,210 bitova zove ja samo tako da mogu imati različite varijable? 1131 00:45:45,210 --> 00:45:47,960 Dakle, u ovom slučaju, ja vrsta priznati da nepotrebno 1132 00:45:47,960 --> 00:45:49,190 značajka dizajna. 1133 00:45:49,190 --> 00:45:52,730 I ja sad idem reći dok je n veći od 0, idite 1134 00:45:52,730 --> 00:45:56,180 naprijed i ispisati istu pjesmu, prolazeći n do printf kao 1135 00:45:56,180 --> 00:46:00,210 drugi argument, i n - 1 kao drugog argumenta ovdje dolje. 1136 00:46:00,210 --> 00:46:02,930 A onda se na svakoj iteraciji ovog petlje, ići naprijed i samo 1137 00:46:02,930 --> 00:46:05,080 dekrementirati n sama. 1138 00:46:05,080 --> 00:46:06,960 Sada, funkcionalno, ovaj program 1139 00:46:06,960 --> 00:46:08,010 će biti identičan. 1140 00:46:08,010 --> 00:46:10,730 Ako sam upisati 99, n počinje u 99. 1141 00:46:10,730 --> 00:46:12,890 Ja snižavanja, snižavanja, snižavanja, smanjuju. 1142 00:46:12,890 --> 00:46:15,875 Ja ću dobiti sve na putu prema dolje kako bi "jedna boca piva na 1143 00:46:15,875 --> 00:46:16,740 zid, jedna boca piva. 1144 00:46:16,740 --> 00:46:18,020 Jedan Uzmi dolje, to zaobići. 1145 00:46:18,020 --> 00:46:21,480 0 boce piva na zidu. "Kraj, jer sam 1146 00:46:21,480 --> 00:46:23,200 dobiti uvjet točne. 1147 00:46:23,200 --> 00:46:24,280 To je veći od 0. 1148 00:46:24,280 --> 00:46:26,220 Nisam napravila tu pogrešku. 1149 00:46:26,220 --> 00:46:28,470 >> Dakle, što je bolje, verzija jedne ili dvije verzije? 1150 00:46:31,380 --> 00:46:33,480 Dakle, čuo sam hrpu mrmljanja za dvoje. 1151 00:46:33,480 --> 00:46:34,730 Zašto dvije? 1152 00:46:37,210 --> 00:46:38,225 Što je to? 1153 00:46:38,225 --> 00:46:39,215 PUBLIKA: [nečujan]. 1154 00:46:39,215 --> 00:46:40,070 David J. MALAN: Oh, u redu. 1155 00:46:40,070 --> 00:46:42,870 Dakle, to neće ići ispod 0, ali zapamtite, u verziji jedan, 1156 00:46:42,870 --> 00:46:45,870 izvorna verzija nije točna ići ispod 0 bilo. 1157 00:46:45,870 --> 00:46:48,340 Pa sjetite se da je to točno verzija. 1158 00:46:48,340 --> 00:46:51,630 Dakle, neka je barem usporediti dvije ispravne verzije. 1159 00:46:51,630 --> 00:46:53,300 Što je argument u korist verziji 1160 00:46:53,300 --> 00:46:55,146 dva bića, mmm, bolje? 1161 00:46:55,146 --> 00:46:55,642 Da? 1162 00:46:55,642 --> 00:46:57,630 PUBLIKA: Ona koristi manje prostora. 1163 00:46:57,630 --> 00:46:59,530 David J. MALAN: Ok, tako da koristi manje prostora, zar ne? 1164 00:46:59,530 --> 00:47:02,900 Dok verzija jedan koristi 32 bita za n, a zatim još 1165 00:47:02,900 --> 00:47:07,680 32 bita jer ja. 1166 00:47:07,680 --> 00:47:10,060 Verzija dva koristi samo 32 bita za n, tako da 1167 00:47:10,060 --> 00:47:11,700 Čini se da je plus. 1168 00:47:11,700 --> 00:47:12,950 Druge misli? 1169 00:47:18,070 --> 00:47:21,520 Zar itko želi raspravljati u korist jedne? 1170 00:47:21,520 --> 00:47:22,070 Da? 1171 00:47:22,070 --> 00:47:25,240 PUBLIKA: Morate koristiti dodatni redak koda za n -. 1172 00:47:25,240 --> 00:47:26,090 >> David J. MALAN: Dobro, jeste. 1173 00:47:26,090 --> 00:47:26,960 Tako da je pošteno. 1174 00:47:26,960 --> 00:47:29,040 Dakle, ovo je samo, barem za mene - 1175 00:47:29,040 --> 00:47:31,940 Mislim, to je zapravo osjeća malo Messier, činjenicu da 1176 00:47:31,940 --> 00:47:35,120 Ja ne mogu sortirati od utjelovljuje sve moje logike u jednoj 1177 00:47:35,120 --> 00:47:38,030 lijepa linija, za petlju, kao for petlje može. 1178 00:47:38,030 --> 00:47:40,240 Evo, ja nekako morati napada na ovaj n - 1179 00:47:40,240 --> 00:47:41,120 na kraju petlje, jer 1180 00:47:41,120 --> 00:47:42,550 to je logično potrebno. 1181 00:47:42,550 --> 00:47:45,190 Ali to vrsta trlja mi krivi način, samo zato što 1182 00:47:45,190 --> 00:47:48,260 Čini se odvojeno od logike do ovdje, iako, 1183 00:47:48,260 --> 00:47:49,430 opet, to je potrebno. 1184 00:47:49,430 --> 00:47:50,990 Druge misli? 1185 00:47:50,990 --> 00:47:51,490 Da? 1186 00:47:51,490 --> 00:47:52,740 PUBLIKA: [nečujan]. 1187 00:47:57,990 --> 00:47:58,350 >> David J. MALAN: Da. 1188 00:47:58,350 --> 00:48:00,730 Pa što ako umjesto toga, na kraju pjesme, htjela 1189 00:48:00,730 --> 00:48:02,950 ispisati ponovo ime pjesme? 1190 00:48:02,950 --> 00:48:05,660 Kao "Hvala za igranje 99 boca piva", ili nešto 1191 00:48:05,660 --> 00:48:06,690 glup kao da? 1192 00:48:06,690 --> 00:48:09,750 No, stvar je, što ste htjeli pristup izvorne vrijednosti. 1193 00:48:09,750 --> 00:48:13,180 Činjenica da ste mutirao ili mijenjati n na svaki 1194 00:48:13,180 --> 00:48:16,330 iteracija i stoga su uništili svoju izvornu vrijednost 1195 00:48:16,330 --> 00:48:18,650 znači da jednostavno ne može učiniti da je na kraju. 1196 00:48:18,650 --> 00:48:20,660 Sada, nedvojbeno, mi očito ne žele raditi 1197 00:48:20,660 --> 00:48:21,450 da je u ovom programu. 1198 00:48:21,450 --> 00:48:22,350 Dakle, tko mari? 1199 00:48:22,350 --> 00:48:23,630 No, to je vrlo valjan točka. 1200 00:48:23,630 --> 00:48:25,520 I da budem iskren, tamo je stvarno nitko 1201 00:48:25,520 --> 00:48:26,630 pravo odgovoriti ovdje. 1202 00:48:26,630 --> 00:48:28,740 Obojica su jednako točne. 1203 00:48:28,740 --> 00:48:30,210 Mogao sam se uvjeriti u bilo kojem smjeru. 1204 00:48:30,210 --> 00:48:33,310 Ja ću reći da, u načelu, to je dobar princip ako 1205 00:48:33,310 --> 00:48:36,030 upitani korisnika za neke vrijednosti i pohranjeni u varijable 1206 00:48:36,030 --> 00:48:38,730 kao n, samo vrsta u načelu, to je vjerojatno dobar 1207 00:48:38,730 --> 00:48:40,160 držati da okolo. 1208 00:48:40,160 --> 00:48:43,400 I sve podatke želite mutiraju i opet, samo 1209 00:48:43,400 --> 00:48:46,030 dati sebe kopiju tog varijablu, tako da samo vi 1210 00:48:46,030 --> 00:48:47,830 imati pristup izvorniku. 1211 00:48:47,830 --> 00:48:51,040 Vi živite 32 više bitova, ali stvarnost je ovo 1212 00:48:51,040 --> 00:48:53,490 Računalo je, kao, dva gigabajta RAM-a ovih dana, 1213 00:48:53,490 --> 00:48:55,310 i mi smo smicalica preko 32 bita? 1214 00:48:55,310 --> 00:48:56,320 Stvarno nije tako velika stvar. 1215 00:48:56,320 --> 00:48:58,550 Pa čak i na ovom uređaju ovdje, s pola koncert ili 1216 00:48:58,550 --> 00:49:01,700 gigabajt RAM-a, 32 bita naspram 64 bita, 1217 00:49:01,700 --> 00:49:02,920 nije tako velika stvar. 1218 00:49:02,920 --> 00:49:05,890 Dakako danas, to će biti put osvaja po veličini 1219 00:49:05,890 --> 00:49:08,400 od samog programa, koji će biti nekoliko stotina 1220 00:49:08,400 --> 00:49:10,890 kilobajta, ako ne i nekoliko megabajta, ovih dana. 1221 00:49:10,890 --> 00:49:13,550 >> Dakle razumne brige, nitko ne pravi odgovor. 1222 00:49:13,550 --> 00:49:15,490 No, barem one su misli da bi trebao početi 1223 00:49:15,490 --> 00:49:16,790 proći kroz vaš um? 1224 00:49:16,790 --> 00:49:19,600 Budući da u pset 0, iako smo stvarno samo očekuje 1225 00:49:19,600 --> 00:49:22,340 ispravnost, ili barem odricanja od odgovornosti razne greške koje 1226 00:49:22,340 --> 00:49:25,440 možda ste naišli, kao što smo naprijed, dizajn je 1227 00:49:25,440 --> 00:49:27,910 će biti još jedan ključni aspekt, oboje pisanja koda 1228 00:49:27,910 --> 00:49:29,770 i naše procjene koda. 1229 00:49:29,770 --> 00:49:32,310 I tako barem dati mislio na stvari kao što je ovaj. 1230 00:49:32,310 --> 00:49:35,590 I samo zato što nešto radi, ne znači da je dobro, 1231 00:49:35,590 --> 00:49:37,130 ne znači da je dobro osmišljen. 1232 00:49:37,130 --> 00:49:38,820 I to je jedna od stvari koje su nastavne bližnjima i 1233 00:49:38,820 --> 00:49:41,990 Problem setovi će nam pomoći da zafrkavati dio tijekom vremena. 1234 00:49:41,990 --> 00:49:45,020 >> Pa, što o, recimo, ovu verziju ovdje? 1235 00:49:45,020 --> 00:49:49,090 Dopustite mi nešto malo seksi ovdje u ovom trenutku. 1236 00:49:49,090 --> 00:49:50,740 Prvo neka mi riješi ovo. 1237 00:49:50,740 --> 00:49:54,120 A sad ajmo riješili ovaj problem gramatičku. 1238 00:49:54,120 --> 00:49:58,780 Dakle, u ovoj verziji, želim popraviti gramatiku, tako da, 1239 00:49:58,780 --> 00:50:02,460 nego samo reći zagradi je, kao što je "bocu" 1240 00:50:02,460 --> 00:50:03,360 ili "boce" - 1241 00:50:03,360 --> 00:50:04,900 Ne želim smanjiti taj kutak - 1242 00:50:04,900 --> 00:50:08,350 Također želim dinamički ispisati riječi "boce" 1243 00:50:08,350 --> 00:50:12,820 ili "boca", čime pomoću% s rezervirana mjesta danas. 1244 00:50:12,820 --> 00:50:16,550 Dakle, moram uvjetno provjeriti što je vrijednost ja. 1245 00:50:16,550 --> 00:50:19,590 A ako je jedan, želim reći "bocu", i ako je to nešto 1246 00:50:19,590 --> 00:50:23,115 drugo, želim reći "boce". Tako ćemo pokušati to učiniti. 1247 00:50:23,115 --> 00:50:31,340 Dakle, ako sam == 1, onda me pusti naprijed i proglasiti - 1248 00:50:31,340 --> 00:50:34,080 Trebam niz, pa neka me učiniti string s1, jer je 1249 00:50:34,080 --> 00:50:36,070 prvi string mi je stalo upravo sada. 1250 00:50:36,070 --> 00:50:40,980 Ja ću reći "bocu". A onda, ajmo vidjet, gudački 1251 00:50:40,980 --> 00:50:43,110 s2 - a ja ću objasniti gdje idem u trenutku - 1252 00:50:43,110 --> 00:50:47,650 "Boce". Dakle podsjetiti da, u ovoj pjesmi, moramo biti u stanju 1253 00:50:47,650 --> 00:50:50,580 ispisati stvari, dvije različite riječi potencijalno. 1254 00:50:50,580 --> 00:50:53,590 Dakle, ako gledamo unatrag ovdje primijetiti da kad dođemo do 1255 00:50:53,590 --> 00:50:56,440 ovaj primjer ovdje ", dvije boce piva na zidu, 1256 00:50:56,440 --> 00:50:59,490 dvije boce piva, jedan skinu, to zaobići ", želim 1257 00:50:59,490 --> 00:51:02,380 ovo četvrti linija sada reći "jednu bocu piva na 1258 00:51:02,380 --> 00:51:04,900 zid ". Dakle, moram odlučiti, ne želim reći" boce "ili 1259 00:51:04,900 --> 00:51:07,780 "Boca"? Tako ću samovoljno reći, sve pravo, 1260 00:51:07,780 --> 00:51:10,530 Idem sad proglasiti varijablu pod nazivom S1, niz 1261 00:51:10,530 --> 00:51:13,830 jedan, da će doći uključen u ovdje i ovdje, 1262 00:51:13,830 --> 00:51:16,070 jer su te riječi su uvijek isti, samo zbog 1263 00:51:16,070 --> 00:51:17,290 priroda pjesmu. 1264 00:51:17,290 --> 00:51:20,100 I ja ću zvati s2 god riječ želim 1265 00:51:20,100 --> 00:51:21,560 s vremenom pojaviti ovdje. 1266 00:51:21,560 --> 00:51:25,530 Sada, doslovce, 99 puta od 100, to će biti 1267 00:51:25,530 --> 00:51:28,820 isti u oba od tih slučajeva, jer 3 je množina, 2 1268 00:51:28,820 --> 00:51:30,200 množine, 4 je množina. 1269 00:51:30,200 --> 00:51:34,640 No, u ovom slučaju kutak, gdje smo dobili dva i onda jedan ili 1270 00:51:34,640 --> 00:51:37,250 čak 1, a zatim 0, trebam tu logiku. 1271 00:51:37,250 --> 00:51:41,020 Dakle, moram provesti neko vrijeme u mom kodu uzimajući to pravo. 1272 00:51:41,020 --> 00:51:47,530 Dakle, ako sam to učiniti, ako sam == 1, zatim postaviti s1 jednaki "boce" 1273 00:51:47,530 --> 00:51:52,010 i s2 jednaki "boca", jer će to biti za jedan 1274 00:51:52,010 --> 00:51:56,340 boca, a to će biti za 0 boce. 1275 00:51:56,340 --> 00:51:58,250 A ovo ovdje, što to predstavlja? 1276 00:51:58,250 --> 00:51:59,780 Samo da bude jasno. 1277 00:51:59,780 --> 00:52:00,620 Ovo je samo komentar. 1278 00:52:00,620 --> 00:52:03,730 Dakle, činjenica da možete imati jednu-line komentare vas znači 1279 00:52:03,730 --> 00:52:06,110 Možete komentirati svoj kod ovako, ali još jedna zajednička 1280 00:52:06,110 --> 00:52:09,050 paradigma je, također, da ako imate super-kratka fraza koja 1281 00:52:09,050 --> 00:52:11,410 Želite li se staviti i to je samo više čitati staviti 1282 00:52:11,410 --> 00:52:13,270 to pravo na kraju linije koda, možete 1283 00:52:13,270 --> 00:52:15,230 apsolutno učiniti nešto ovako. 1284 00:52:15,230 --> 00:52:20,150 >> I što sad, ako sam to učiniti? Drugo ako je i nije jednak 1. 1285 00:52:20,150 --> 00:52:21,620 Dakle bang jednaka - 1286 00:52:21,620 --> 00:52:23,150 Uskličnik je poznat kao "prasak". 1287 00:52:23,150 --> 00:52:25,080 Dakle bang = 1. 1288 00:52:25,080 --> 00:52:28,530 Dakle, ako sam nije jednaka 1, što sam, umjesto želite učiniti? 1289 00:52:28,530 --> 00:52:31,700 Pa, prva riječ želim biti što? 1290 00:52:34,620 --> 00:52:40,030 Dakle, niz jedan bi trebao biti "boce" za množinu boce, 1291 00:52:40,030 --> 00:52:42,440 i onda će to biti množina "boce", kao i, za sada. 1292 00:52:42,440 --> 00:52:43,800 A vidjet ćemo, ako to zapravo dobiva nas na 1293 00:52:43,800 --> 00:52:44,870 gdje želimo ići. 1294 00:52:44,870 --> 00:52:47,680 Pa sad, ako sam dođite ovamo, primijetiti da sam plugging u 1295 00:52:47,680 --> 00:52:50,170 Ne samo ja, nego s1. 1296 00:52:50,170 --> 00:52:51,860 Ja sam plugging u I. i s1. 1297 00:52:51,860 --> 00:52:54,440 I onda ovdje dolje, ja sam minus jedan, koji je isti kao i 1298 00:52:54,440 --> 00:52:55,920 i prije, ali s2. 1299 00:52:55,920 --> 00:52:58,730 Drugim riječima, želim englesku riječ za promjenu temelji 1300 00:52:58,730 --> 00:52:59,930 na toj logici. 1301 00:52:59,930 --> 00:53:03,310 Sada, tu je već neki problemi u ovom kodeksu. 1302 00:53:03,310 --> 00:53:08,460 Što je slomljen već od vrata ovdje? 1303 00:53:08,460 --> 00:53:10,796 Da? 1304 00:53:10,796 --> 00:53:13,210 PUBLIKA: [nečujan]. 1305 00:53:13,210 --> 00:53:13,800 >> David J. MALAN: Točno. 1306 00:53:13,800 --> 00:53:16,030 Dakle, već sam povrijeđena lekciju djelokruga. 1307 00:53:16,030 --> 00:53:19,610 Tako sam proglasio S1 i S2, ali sam to učinio unutar 1308 00:53:19,610 --> 00:53:22,980 vitičastih zagrada, što znači da, ovaj kod će raditi do 1309 00:53:22,980 --> 00:53:27,430 do linije 42, ali čim sam pogodio crtu 43, pogodite što ne 1310 00:53:27,430 --> 00:53:28,900 više ne postoji? 1311 00:53:28,900 --> 00:53:32,600 Pa, pogodite što više nije u opsegu - ni s1 ili s2. 1312 00:53:32,600 --> 00:53:33,780 Dakle, moramo popraviti. 1313 00:53:33,780 --> 00:53:36,180 Pa neka mi izbrisati deklaracije. 1314 00:53:36,180 --> 00:53:39,320 I ja ću ostaviti varijablu imena i brisanje ovo ovdje 1315 00:53:39,320 --> 00:53:40,120 i ovo izbrisati ovdje. 1316 00:53:40,120 --> 00:53:43,557 A u ono linije trebao sam stvarno izjavljujem takve stvari? 1317 00:53:43,557 --> 00:53:44,960 PUBLIKA: [nečujan]. 1318 00:53:44,960 --> 00:53:45,410 David J. MALAN: Da, tako je vjerojatno 1319 00:53:45,410 --> 00:53:46,850 gore desno ovdje, 33-ish. 1320 00:53:46,850 --> 00:53:50,670 Dakle string s1, a zatim niz s2. 1321 00:53:50,670 --> 00:53:51,950 A što se ispostavilo, ja to mogu. 1322 00:53:51,950 --> 00:53:54,260 Ako ste proglašenja dvije varijable istog tipa, 1323 00:53:54,260 --> 00:53:57,420 zapravo možete samo koristiti zarez i to u C. Sve 1324 00:53:57,420 --> 00:53:58,970 desno, tako da sada imam dvije varijable - 1325 00:53:58,970 --> 00:53:59,860 S1 i S2. 1326 00:53:59,860 --> 00:54:02,000 Ja sam dodjeljujući im vrijednosti u tim 1327 00:54:02,000 --> 00:54:04,210 uvjeti ovdje, ili ovdje. 1328 00:54:04,210 --> 00:54:06,690 A onda sam ih koristite dolje. 1329 00:54:06,690 --> 00:54:10,960 Kako je dobro ovo sada ide na posao? 1330 00:54:10,960 --> 00:54:12,740 >> Pa, to je još uvijek malo lud, ali neka je barem vidjeti 1331 00:54:12,740 --> 00:54:13,730 koliko smo dobili. 1332 00:54:13,730 --> 00:54:16,500 Pa neka mi ići naprijed i učiniti beer3. 1333 00:54:16,500 --> 00:54:17,695 Je li ovo beer3? 1334 00:54:17,695 --> 00:54:19,410 Yep, to je beer3. 1335 00:54:19,410 --> 00:54:21,510 I sada neka mi ići naprijed i pokrenuti beer3. 1336 00:54:21,510 --> 00:54:23,820 399 99. 1337 00:54:23,820 --> 00:54:25,840 Mi vjerojatno može preskočiti većina njih. 1338 00:54:25,840 --> 00:54:29,100 A ovdje dolje, pogled na to. 1339 00:54:29,100 --> 00:54:31,110 "Jedna boca piva na zidu, jedna boca piva, uzeti 1340 00:54:31,110 --> 00:54:34,306 jedan dolje, to zaobići, 0 boce piva na zidu. " 1341 00:54:34,306 --> 00:54:37,570 Ali crtam pozornost na samo pola rješenja. 1342 00:54:37,570 --> 00:54:39,620 Vrsta zeznuo ovdje. 1343 00:54:39,620 --> 00:54:43,030 Dakle, čini se da su slučajevi kutak nastaju kada sam jednako ono 1344 00:54:43,030 --> 00:54:44,030 dvije vrijednosti? 1345 00:54:44,030 --> 00:54:45,020 PUBLIKA: 2, 1. 1346 00:54:45,020 --> 00:54:46,190 David J. MALAN: 2 i 1. 1347 00:54:46,190 --> 00:54:48,180 To nije jedan, a ne jedan. 1348 00:54:48,180 --> 00:54:51,890 To je zapravo samo ove zadnje dvije strofe ove pjesme. 1349 00:54:51,890 --> 00:54:53,890 Dakle, ono što mi je umjesto želite učiniti? 1350 00:54:53,890 --> 00:54:58,890 Dakle, čini mi se da su uhvatili slučaj gdje ako je i == do 1, 1351 00:54:58,890 --> 00:55:02,240 onda je prvi riječ "bočica", ali druga riječ 1352 00:55:02,240 --> 00:55:07,230 je "boce". Ali ovdje, želim da se to promijeni biti == 2. 1353 00:55:07,230 --> 00:55:08,570 A ako je to slučaj, što ne želim 1354 00:55:08,570 --> 00:55:09,620 Prva riječ biti? 1355 00:55:09,620 --> 00:55:10,430 PUBLIKA: "Boce". 1356 00:55:10,430 --> 00:55:12,890 David J. MALAN: "Boce", tako da za dvije boce. 1357 00:55:12,890 --> 00:55:14,690 I onda se ta riječ ovdje bi trebao biti - 1358 00:55:14,690 --> 00:55:15,340 PUBLIKA: "boca". 1359 00:55:15,340 --> 00:55:17,316 David J. MALAN: "boca", u jednini. 1360 00:55:20,430 --> 00:55:25,160 >> U redu, neka je povećali, vratiti ovamo, ponovno pokrenuti napraviti, 1361 00:55:25,160 --> 00:55:28,590 re-run beer3, tip 99 opet. 1362 00:55:28,590 --> 00:55:30,710 Ok, "Segmentacija kriv (jezgra bačena)." 1363 00:55:30,710 --> 00:55:32,780 Što sam učinio krivo? 1364 00:55:36,050 --> 00:55:38,722 PUBLIKA: Vi nemate vrijednost [nečujan]. 1365 00:55:38,722 --> 00:55:40,480 David J. MALAN: Ah, odličan točka. 1366 00:55:40,480 --> 00:55:43,310 U redu, tako što je krivo ovdje? 1367 00:55:43,310 --> 00:55:45,450 Dakle segmentacije kvara, a mi zapravo idemo vidjeti 1368 00:55:45,450 --> 00:55:49,020 Ovo je sasvim nekoliko puta u budućnosti, namjerno. 1369 00:55:49,020 --> 00:55:51,030 Ali za sada, što to zapravo znači? 1370 00:55:51,030 --> 00:55:53,620 Segmentacija kriv gotovo uvijek znači da morate 1371 00:55:53,620 --> 00:55:56,760 nekako pokušali pristupiti memorije, RAM na računalu, 1372 00:55:56,760 --> 00:56:00,600 da ne posjedujete, da niste zapravo pitao 1373 00:56:00,600 --> 00:56:02,050 operativni sustav za. 1374 00:56:02,050 --> 00:56:04,440 Dakle, u ovom slučaju, primjetiti ono što sam učinio, što je 1375 00:56:04,440 --> 00:56:05,870 manjkav u mojoj logici. 1376 00:56:05,870 --> 00:56:09,500 Ja sam dodijeljen S1 i S2 vrijednost ako ja jednaka jedan. 1377 00:56:09,500 --> 00:56:11,590 Također sam učinio da ako ja jednako dva. 1378 00:56:11,590 --> 00:56:13,710 Ali nisam to učinio u bezbroj drugih 1379 00:56:13,710 --> 00:56:14,690 mogućnosti - 1380 00:56:14,690 --> 00:56:17,940 posebno, 3 ili 4 ili točka, točka, točka, 99. 1381 00:56:17,940 --> 00:56:20,100 Dakle, jedan fix za ovo mogao biti samo neka je 1382 00:56:20,100 --> 00:56:22,190 imati drugo stanje. 1383 00:56:22,190 --> 00:56:26,780 I da me pusti unutra i reći s1 jednak - 1384 00:56:26,780 --> 00:56:28,180 što bi trebao biti ovdje? 1385 00:56:28,180 --> 00:56:28,750 PUBLIKA: [nečujan]. 1386 00:56:28,750 --> 00:56:30,460 >> David J. MALAN: "Boce", jer se u zajedničkom predmetu, 1387 00:56:30,460 --> 00:56:32,020 to je samo ista stvar. 1388 00:56:32,020 --> 00:56:35,580 Dakle, jednako citat, završiti citat, "boce". Dakle, za množinu 1389 00:56:35,580 --> 00:56:41,010 boce, a onda se ovdje, za množinu boce. 1390 00:56:41,010 --> 00:56:44,580 Ok, tako da sada pusti me natrag u moj prozor terminala, 1391 00:56:44,580 --> 00:56:47,200 rekompiliranje, ponovno ga pokrenuti. 1392 00:56:47,200 --> 00:56:48,440 99. 1393 00:56:48,440 --> 00:56:49,150 Uh. 1394 00:56:49,150 --> 00:56:50,610 I neka je učiniti brzo razum ček. 1395 00:56:50,610 --> 00:56:52,400 Tehnički, mi bi željeli čitati sve to kako bi bili sigurni 1396 00:56:52,400 --> 00:56:53,370 oni su točne, ali pogledajmo 1397 00:56:53,370 --> 00:56:54,640 najmanje poznati krivci. 1398 00:56:54,640 --> 00:56:57,370 3 boce, 2 boce, 2 boce, 1 1399 00:56:57,370 --> 00:57:00,380 boca, jedna boca, 0 boce. 1400 00:57:00,380 --> 00:57:03,080 Izgleda da smo ga barem fiksno za sada. 1401 00:57:03,080 --> 00:57:06,010 No, kvaka je u tome što je Bog strašno nered je to 1402 00:57:06,010 --> 00:57:07,470 samo riješiti glup 1403 00:57:07,470 --> 00:57:09,540 jedan lik gramatičke detalja. 1404 00:57:09,540 --> 00:57:11,150 Dakle, tu je vrsta razloga da sam smanjiti ovu kutak 1405 00:57:11,150 --> 00:57:14,090 ranije, jer to je samo potpuno neugodno da moraju 1406 00:57:14,090 --> 00:57:15,020 napisati ovaj puno koda. 1407 00:57:15,020 --> 00:57:17,530 No, ispostavilo se da postoji nešto više elegantan način 1408 00:57:17,530 --> 00:57:20,110 izražavajući točno istu stvar. 1409 00:57:20,110 --> 00:57:22,040 A to možemo napraviti kako slijedi. 1410 00:57:22,040 --> 00:57:23,890 >> Dopustite mi da ovo ostaviti na zaslonu za trenutak i 1411 00:57:23,890 --> 00:57:27,320 uvesti nešto poznat kao ternarni operator. 1412 00:57:27,320 --> 00:57:29,600 To je vrsta jedan-liner koji je samo značilo da bi naš 1413 00:57:29,600 --> 00:57:31,880 živi malo seksi, kao što je obećao. 1414 00:57:31,880 --> 00:57:33,130 I ja ću to učiniti na sljedeći način. 1415 00:57:33,130 --> 00:57:35,810 Daj mi niz zove s1, i pusti me 1416 00:57:35,810 --> 00:57:37,200 dodijeliti to kako slijedi. 1417 00:57:37,200 --> 00:57:39,900 (I == 1)? 1418 00:57:39,900 --> 00:57:47,820 "Boca", inače "boce". Gudački s2 dobiva (i == 2)? 1419 00:57:47,820 --> 00:57:52,670 "Boca", inače "boce". 1420 00:57:52,670 --> 00:57:57,050 Pa što je onda razlika ovdje? 1421 00:57:57,050 --> 00:57:59,370 Ove dvije linije koda, tvrdim, mogu 1422 00:57:59,370 --> 00:58:02,200 zamijeniti ovu zbrku. 1423 00:58:02,200 --> 00:58:04,280 Tako sam ga nazvati nered, samo zato što je vrsta trlja mi 1424 00:58:04,280 --> 00:58:05,940 krivi način da je toliko linija koda. 1425 00:58:05,940 --> 00:58:06,650 Nije u redu. 1426 00:58:06,650 --> 00:58:07,700 To nije loš dizajn. 1427 00:58:07,700 --> 00:58:10,140 Kao, to je savršeno točno i savršeno u redu. 1428 00:58:10,140 --> 00:58:12,970 No, kodiranje dobiva zamorno ako imate izraziti sebe tako 1429 00:58:12,970 --> 00:58:15,530 damn posebno opet i opet i opet s jednostavnim 1430 00:58:15,530 --> 00:58:16,620 scenarij kao što je ovaj. 1431 00:58:16,620 --> 00:58:19,470 Dakle C ima neke prečace, kao što je ovaj. 1432 00:58:19,470 --> 00:58:24,270 Dakle, to je bitno rekavši proglasiti string zove s1 i 1433 00:58:24,270 --> 00:58:32,610 dodijeliti bilo ova vrijednost ili ova vrijednost ako je i == - 1434 00:58:32,610 --> 00:58:35,290 Žao nam je, trebao bih reći da je ovo jasnije. 1435 00:58:35,290 --> 00:58:41,680 Proglasiti varijable s1, dodijeliti ovu vrijednost ako je to istina. 1436 00:58:41,680 --> 00:58:44,280 Inače, dodijeliti mu tu vrijednost. 1437 00:58:44,280 --> 00:58:47,220 Dakle, drugim riječima, to je neka vrsta jedan-line način 1438 00:58:47,220 --> 00:58:51,490 govoreći, ako drugi, ali to je zadatak na putu. 1439 00:58:51,490 --> 00:58:55,540 Dakle, ako je i jedan, a zatim ići naprijed i to nazivamo "bocu". I 1440 00:58:55,540 --> 00:58:59,830 onda je ovo drugo, to nazvati "boce". U međuvremenu, s2, 1441 00:58:59,830 --> 00:59:04,060 Druga riječ da trebamo definirati, ako sam jednako dva, mi ćemo 1442 00:59:04,060 --> 00:59:08,350 postaviti s2 na "boce". Inače, postavite ga na "boce". I ono što 1443 00:59:08,350 --> 00:59:11,460 to znači sada je mogu proći kroz to i izbrisati sve 1444 00:59:11,460 --> 00:59:12,860 ta linija koda. 1445 00:59:12,860 --> 00:59:17,220 A kad kažem, pomalo smiješno, da je to sada 1446 00:59:17,220 --> 00:59:20,060 seksipilnije, to je seksi u kakve stilske smislu. 1447 00:59:20,060 --> 00:59:22,660 Činjenica da je funkcionalno, ovaj broj zapravo ide 1448 00:59:22,660 --> 00:59:24,610 napraviti točno istu stvar. 1449 00:59:24,610 --> 00:59:26,890 I iako bi to moglo izgledati malo zagonetan na prvi 1450 00:59:26,890 --> 00:59:29,250 pogled, jer nismo vidjeli ovaj konstrukt prije, ja bih 1451 00:59:29,250 --> 00:59:31,850 tvrde da je to u konačnici će biti tako mnogo više 1452 00:59:31,850 --> 00:59:34,820 čitati i tako puno lakše za mi ljudi da vrsta 1453 00:59:34,820 --> 00:59:36,830 razumjeti, jer sada možete samo čitati 1454 00:59:36,830 --> 00:59:38,830 Kod sve na jednoj liniji. 1455 00:59:38,830 --> 00:59:41,550 To je još uvijek slični u duhu ako, gdje je to 1456 00:59:41,550 --> 00:59:44,920 stanje i onda je to ono što je unutra, ako i to 1457 00:59:44,920 --> 00:59:46,480 je ono što je unutar drugog. 1458 00:59:46,480 --> 00:59:49,450 No, to možemo učiniti samo mnogo elegantno. 1459 00:59:49,450 --> 00:59:52,650 >> A ako ja sada vratiti u svoju terminala, nakon što je izbrisan sve 1460 00:59:52,650 --> 00:59:55,530 od tih linija i zamijenio ih sa samo one dvije, 1461 00:59:55,530 --> 01:00:00,150 rekompiliranje, ponovno pokrenuti boce piva s 99, obavijest da je moje 1462 01:00:00,150 --> 01:00:03,350 gramatika je, u stvari, još uvijek točna. 1463 01:00:03,350 --> 01:00:06,160 Pa opet, nešto za početak. 1464 01:00:06,160 --> 01:00:08,840 2 boce piva, jedan boca piva. 1465 01:00:08,840 --> 01:00:09,370 Izgleda pravo. 1466 01:00:09,370 --> 01:00:10,100 Da. 1467 01:00:10,100 --> 01:00:13,900 Dakle, tu imamo puno više jezgrovit rješenje. 1468 01:00:13,900 --> 01:00:16,020 Dakle, to je, također, kao što ste dobili više udoban sa C, a ne 1469 01:00:16,020 --> 01:00:18,630 nužno s prvom pset ili čak drugi, ali 1470 01:00:18,630 --> 01:00:21,170 shvatiti da ovi konstrukti mogu nam omogućiti da učinite stvari ikad 1471 01:00:21,170 --> 01:00:22,810 više elegantno. 1472 01:00:22,810 --> 01:00:25,200 Sada ćemo napraviti jednu drugu stvar ovdje. 1473 01:00:25,200 --> 01:00:31,460 Dopustite mi ići naprijed i otvoriti return1.c. 1474 01:00:31,460 --> 01:00:34,340 Sada krenimo riješiti još jedan problem na način da 1475 01:00:34,340 --> 01:00:37,140 nam omogućuje da pisati više sofisticirane koda. 1476 01:00:37,140 --> 01:00:39,960 >> Dakle, ovdje je jednostavan mali program čiji je cilj u životu 1477 01:00:39,960 --> 01:00:41,870 je za povećanje vrijednosti. 1478 01:00:41,870 --> 01:00:43,100 A zapravo, ajmo uzeti jedan korak natrag. 1479 01:00:43,100 --> 01:00:44,400 Dopustite mi da to učinite ručno. 1480 01:00:44,400 --> 01:00:52,200 Dopustite mi da to uključuje i int main (void). 1481 01:00:52,200 --> 01:00:53,450 I neka mi to nazivamo increment.c. 1482 01:00:57,150 --> 01:00:58,570 A što ja želim učiniti? 1483 01:00:58,570 --> 01:01:02,240 Ja ću ići naprijed i reći nešto poput - 1484 01:01:02,240 --> 01:01:04,280 ćemo nazvati brojeve ista - 1485 01:01:04,280 --> 01:01:04,980 int x. 1486 01:01:04,980 --> 01:01:13,670 Dakle, int x dobiva dva; printf x je% d, nova linija, x. 1487 01:01:13,670 --> 01:01:16,780 Dakle, ja sam tipkati brzo, ali vrsta poznatom stvari sada. 1488 01:01:16,780 --> 01:01:18,830 Tada ću učiniti x + +. 1489 01:01:18,830 --> 01:01:21,710 Onda idem ispisati taj isti rečenicu ponovo. 1490 01:01:21,710 --> 01:01:24,550 A onda ću se vratiti 0 samo za izlazak iz programa. 1491 01:01:24,550 --> 01:01:25,960 U redu, tako da je ovo program koji 1492 01:01:25,960 --> 01:01:26,960 koracima broj. 1493 01:01:26,960 --> 01:01:29,830 To je prvi će inicijalizirati nešto dva, a onda je 1494 01:01:29,830 --> 01:01:33,470 će ga povećavati i ispisati ga opet. 1495 01:01:33,470 --> 01:01:36,930 >> Dakle, neka je pokrenuti prirast, nevjerojatno jednostavan program. 1496 01:01:36,930 --> 01:01:40,940 Ali pretpostavimo da sada želim kocka vrijednost, tako da 1497 01:01:40,940 --> 01:01:42,490 nešto donekle proizvoljna. 1498 01:01:42,490 --> 01:01:45,140 A ja zapravo želim učiniti x dobiva kocku njega. 1499 01:01:45,140 --> 01:01:47,570 Tako sam mogao koristiti ono što se zove Pow funkciju, ali ja ne 1500 01:01:47,570 --> 01:01:48,650 znam gdje da je još uvijek. 1501 01:01:48,650 --> 01:01:50,580 Dakle, ja ću to učiniti na starinski način. 1502 01:01:50,580 --> 01:01:54,550 x puta to iznosi x puta x puta x. 1503 01:01:54,550 --> 01:01:56,880 Tako sam cubing vrijednost, to pomnoži sa sebe opet 1504 01:01:56,880 --> 01:02:00,440 i opet i opet, tako da smo dobili snagu 1505 01:02:00,440 --> 01:02:02,050 od tri u ovom slučaju. 1506 01:02:02,050 --> 01:02:06,000 Dakle, sada su brojevi trebam ispisati bi trebao biti, kao što ćemo vidjeti 1507 01:02:06,000 --> 01:02:08,450 ovdje - da prirast, tako da je zapravo stvarno ne povećavati 1508 01:02:08,450 --> 01:02:10,260 više, ali ćemo ostaviti na miru ime - 1509 01:02:10,260 --> 01:02:11,590 2 i zatim 8. 1510 01:02:11,590 --> 01:02:17,670 Sada imamo početke priliku za doradu 1511 01:02:17,670 --> 01:02:21,570 Ovdje, pri čemu ovo cubing stvar množenjem broja 1512 01:02:21,570 --> 01:02:24,680 po sebi sama po sebi po sebi osjeća kao što je ovaj može biti samo 1513 01:02:24,680 --> 01:02:27,920 korisno imati u funkciji, baš kao netko odlučio 1514 01:02:27,920 --> 01:02:30,430 godina - znate, vrsta korisno ako jedan od nas sjedne 1515 01:02:30,430 --> 01:02:33,120 i piše printf tako da ostatak svijeta može ga koristiti, 1516 01:02:33,120 --> 01:02:36,160 zašto ne bismo sjesti i napisati funkciju zove kocka 1517 01:02:36,160 --> 01:02:39,250 da se ovaj cubing za nas, tako da ne morate ručno 1518 01:02:39,250 --> 01:02:41,500 provoditi pojam cubing vrijednosti ovdje? 1519 01:02:41,500 --> 01:02:44,040 >> Dakle, jednostavnom primjeru, ali idemo naprijed i koristiti to kao 1520 01:02:44,040 --> 01:02:46,280 prilika pisati vlastitu funkciju. 1521 01:02:46,280 --> 01:02:49,110 Dakle, do sada, možemo samo sam se glavna, a mi smo koristili druge 1522 01:02:49,110 --> 01:02:51,780 ljudi funkcije, ali nismo pisali su naša vlastita. 1523 01:02:51,780 --> 01:02:52,650 Dakle, ovdje mi ići. 1524 01:02:52,650 --> 01:02:56,330 Ja ću ići naprijed i napisati funkciju zove kocka. 1525 01:02:56,330 --> 01:02:58,490 I ja ću ga uzeti ulaz. 1526 01:02:58,490 --> 01:03:02,070 Tako njegov ulaz će biti cijeli broj. 1527 01:03:02,070 --> 01:03:03,570 A što će to učiniti? 1528 01:03:03,570 --> 01:03:08,500 To će proglasiti int izlaz = ulaz puta ulaza 1529 01:03:08,500 --> 01:03:09,880 puta ulaza. 1530 01:03:09,880 --> 01:03:12,190 I onda se događa da se vrati taj izlaz. 1531 01:03:12,190 --> 01:03:14,500 I onda moram biti specifična sada. 1532 01:03:14,500 --> 01:03:16,820 Ova funkcija će vratiti int. 1533 01:03:16,820 --> 01:03:19,130 Dakle, ovdje je onda kako bih napisati svoje funkcije. 1534 01:03:19,130 --> 01:03:20,850 Najprije odlučite što je naziv vašeg 1535 01:03:20,850 --> 01:03:21,720 Funkcija će biti. 1536 01:03:21,720 --> 01:03:23,964 I općenito, nešto objašnjivo je dobra, pa ću 1537 01:03:23,964 --> 01:03:25,060 nazovite to kocka. 1538 01:03:25,060 --> 01:03:27,180 Zatim morate odrediti što će se vratiti, što je 1539 01:03:27,180 --> 01:03:28,240 njegov izlaz će biti. 1540 01:03:28,240 --> 01:03:29,595 A mi nemamo mnogo mogućnosti da se još. 1541 01:03:29,595 --> 01:03:32,260 Interesi, char, float, bool, niz. 1542 01:03:32,260 --> 01:03:34,260 Za sada, ja ću se držati s int, jer ja to želim 1543 01:03:34,260 --> 01:03:35,880 vratiti cijeli broj. 1544 01:03:35,880 --> 01:03:38,770 Tada ćete morati odrediti što njegovi inputi, ako ih ima, jesu. 1545 01:03:38,770 --> 01:03:41,570 A ako kocka uzima argument, ima nešto između 1546 01:03:41,570 --> 01:03:44,970 zagrade, morate dati taj argument ime, tako da 1547 01:03:44,970 --> 01:03:47,860 možete nazvati nešto kao da ste provedbi ili pisanje 1548 01:03:47,860 --> 01:03:50,550 ova funkcija, a vi morate dati tip, koji je u to 1549 01:03:50,550 --> 01:03:51,810 slučaj će biti int. 1550 01:03:51,810 --> 01:03:54,690 Dakle, u kratko, kocka je funkcija koja traje cijeli 1551 01:03:54,690 --> 01:03:57,560 kao ulaz i vraća cijeli broj kao izlaz. 1552 01:03:57,560 --> 01:03:59,240 >> Pa što se to učiniti s tom ulazu? 1553 01:03:59,240 --> 01:04:03,710 Pa, u skladu 14, izjavljujem varijablu nazvanu izlaz, i ja 1554 01:04:03,710 --> 01:04:07,410 dodijeliti vrijednost, ulazni puta ulaza puta ulaza. 1555 01:04:07,410 --> 01:04:11,490 I onda sam se vratiti izlaz. 1556 01:04:11,490 --> 01:04:14,890 Pa kako sam koristiti to onda? 1557 01:04:14,890 --> 01:04:19,210 Što trebam promijeniti ove istaknute znakove na liniji 1558 01:04:19,210 --> 01:04:21,006 7 da se, što mislite? 1559 01:04:21,006 --> 01:04:21,800 PUBLIKA: [nečujan]. 1560 01:04:21,800 --> 01:04:25,570 David J. MALAN: Da, tako kocka x. 1561 01:04:25,570 --> 01:04:28,290 Tako je x varijabla, što znači da ima neku vrijednost. 1562 01:04:28,290 --> 01:04:30,190 Srećom, to je tipa integer. 1563 01:04:30,190 --> 01:04:34,280 I zato je x int, to znači da ja mogu proći u kocki. 1564 01:04:34,280 --> 01:04:39,500 I iako sam preskakanja vrijednost x sa vrijednosti 1565 01:04:39,500 --> 01:04:42,780 od kocke x, kao što je to bio slučaj do sada, svaki put kad 1566 01:04:42,780 --> 01:04:46,150 imati znak jednakosti i linija koda, stvari na pravo 1567 01:04:46,150 --> 01:04:49,090 dobiva izvršiti, a zatim dobiva dodijeljena 1568 01:04:49,090 --> 01:04:50,150 Vrijednost na lijevoj strani. 1569 01:04:50,150 --> 01:04:52,950 Dakle, da bi operacija je kako bismo se nadam. 1570 01:04:52,950 --> 01:04:56,620 Tako to funkcionira? 1571 01:04:56,620 --> 01:04:58,410 Pa, pusti me ovdje dolje. 1572 01:04:58,410 --> 01:04:59,970 Dopustite mi da otvori svoj prozor terminala. 1573 01:04:59,970 --> 01:05:03,610 Dopustite mi da ne bi prirast, Enter. 1574 01:05:03,610 --> 01:05:07,140 "Implicitno deklaracija funkcije 'kocke' je nevažeća 1575 01:05:07,140 --> 01:05:13,700 C99. "Kao na stranu, C99 se odnosi na jezik C kao što je bio 1576 01:05:13,700 --> 01:05:16,790 definirano u 1999, koji je bio ažuriranje preko verziji od 1577 01:05:16,790 --> 01:05:19,360 1989, koji je ažuriranje preko originala. 1578 01:05:19,360 --> 01:05:21,740 Tako da je sve to znači. 1579 01:05:21,740 --> 01:05:24,250 >> Dakle, što to znači da je "implicitno deklaracija 1580 01:05:24,250 --> 01:05:26,790 funkciji "kocka" je nevažeća? "To je upravo ovdje. 1581 01:05:26,790 --> 01:05:28,430 Tamo je u skladu 12. 1582 01:05:28,430 --> 01:05:30,460 PUBLIKA: [nečujan]. 1583 01:05:30,460 --> 01:05:30,730 David J. MALAN: Što je to? 1584 01:05:30,730 --> 01:05:32,470 PUBLIKA: To je ne prije. 1585 01:05:32,470 --> 01:05:33,540 David J. MALAN: To je ne prije. 1586 01:05:33,540 --> 01:05:34,740 Dakle, ovo je stvar. 1587 01:05:34,740 --> 01:05:38,190 C je glupo, ili C kompilatora su glupo. 1588 01:05:38,190 --> 01:05:41,060 Oni su stvarno samo ono što vam reći da učine. 1589 01:05:41,060 --> 01:05:44,770 I oni, posebno, samo čitati vrh koda do dna, 1590 01:05:44,770 --> 01:05:45,620 lijeva na desno. 1591 01:05:45,620 --> 01:05:49,140 Dakle, ako prevodilac, zveka, čita svoj kôd, linija 1, to 1592 01:05:49,140 --> 01:05:50,120 figure out kako to učiniti. 1593 01:05:50,120 --> 01:05:50,940 Oh, ovdje dolazi glavni. 1594 01:05:50,940 --> 01:05:53,000 Ok, neka mi ići naprijed i proglasiti varijable x.. 1595 01:05:53,000 --> 01:05:54,160 Dopustite mi da nešto ispisati. 1596 01:05:54,160 --> 01:05:55,890 Linija 7, što je ispitati kritički je kocka? 1597 01:05:55,890 --> 01:05:58,230 To nije proglašen stdio.h. 1598 01:05:58,230 --> 01:06:00,950 To ne dolazi s C. Nemam pojma što učiniti. 1599 01:06:00,950 --> 01:06:03,960 I tako jek samo bails i zatvara s tom porukom pogreške. 1600 01:06:03,960 --> 01:06:05,850 Tako možemo popraviti u nekoliko načina. 1601 01:06:05,850 --> 01:06:10,530 Možemo učiti jeka što kocka je samo pomicanjem gdje 1602 01:06:10,530 --> 01:06:11,820 Deklaracija je. 1603 01:06:11,820 --> 01:06:14,640 Tako sam izrezati i zalijepiti ga na vrhu glavni. 1604 01:06:14,640 --> 01:06:17,770 Sada shvatiti da samo zato glavni više nije prvi, to je 1605 01:06:17,770 --> 01:06:19,150 još uvijek izvode po defaultu. 1606 01:06:19,150 --> 01:06:20,060 Glavni je glavni. 1607 01:06:20,060 --> 01:06:21,022 To je ime zadana funkcija. 1608 01:06:21,022 --> 01:06:22,930 Nije bitno gdje je u datoteci. 1609 01:06:22,930 --> 01:06:26,910 Ali barem sada zveka je vidio kocku prije nego što sam ga koristiti. 1610 01:06:26,910 --> 01:06:28,500 Dakle, neka je vidjeti ako zveka je sretnija sada. 1611 01:06:28,500 --> 01:06:31,410 Napravite prirasta, to nije sastaviti ovaj put. 1612 01:06:31,410 --> 01:06:33,060 >> Dopustite mi pokrenuti prirast. 1613 01:06:33,060 --> 01:06:34,810 I doista, čini se da se radi. 1614 01:06:34,810 --> 01:06:36,810 Sada, možete doći do scenarija na kraju gdje 1615 01:06:36,810 --> 01:06:38,650 to nije moguće staviti sve funkcije 1616 01:06:38,650 --> 01:06:39,740 iznad svakog drugog funkciji. 1617 01:06:39,740 --> 01:06:42,140 Vi ćete zapeti u ovoj beskonačnoj petlji u stvarnosti, 1618 01:06:42,140 --> 01:06:43,480 gdje je taj momak želi biti ovdje, ali ovo 1619 01:06:43,480 --> 01:06:44,390 čovjek treba biti tamo. 1620 01:06:44,390 --> 01:06:45,830 Tako da ne uvijek rade. 1621 01:06:45,830 --> 01:06:49,020 Dakle, srećom, C ima elegantnije rješenje. 1622 01:06:49,020 --> 01:06:50,790 Ja ću staviti ovo leđa gdje je bio, samo zato što sam 1623 01:06:50,790 --> 01:06:53,390 radije, kao stvar principa, da glavni uvijek biti 1624 01:06:53,390 --> 01:06:55,550 na vrhu, jer to je samo lijepo vidjeti što ovaj program 1625 01:06:55,550 --> 01:06:56,920 radi po defaultu. 1626 01:06:56,920 --> 01:06:58,950 I ono što ću učiniti ovdje se izjaviti ono što se zove 1627 01:06:58,950 --> 01:07:00,250 prototip. 1628 01:07:00,250 --> 01:07:05,730 Idem ponovno objavim kocke funkciju doslovno 1629 01:07:05,730 --> 01:07:07,180 kopiranje i lijepljenje. 1630 01:07:07,180 --> 01:07:08,290 Zapravo, to nije doslovno. 1631 01:07:08,290 --> 01:07:13,060 Dakle, doslovno kopiranje i lijepljenje linije 15 1632 01:07:13,060 --> 01:07:15,160 gore linije 6. 1633 01:07:15,160 --> 01:07:17,010 To ne smeta što je ovo linija završava na. 1634 01:07:17,010 --> 01:07:18,380 To se događa da se na liniji četiri. 1635 01:07:18,380 --> 01:07:19,950 No, to ne mora biti prije glavne. 1636 01:07:19,950 --> 01:07:21,150 Ali primijetiti razliku. 1637 01:07:21,150 --> 01:07:24,100 Linija 4 završava sa zarezom, što znači hej, 1638 01:07:24,100 --> 01:07:27,510 Jeka, uzeti moj riječ za to da postoji funkcija 1639 01:07:27,510 --> 01:07:31,350 zove kocka koja uzima jedan int i vraća int. 1640 01:07:31,350 --> 01:07:33,020 No, neću vam reći što je to još uvijek. 1641 01:07:33,020 --> 01:07:35,180 Samo znam da sam obećanje da vam kažem na kraju. 1642 01:07:35,180 --> 01:07:38,490 I doista, sad je ok da je to dolje. 1643 01:07:38,490 --> 01:07:41,275 >> Dakle, ovo je općenito bolje, jer onda na vrhu 1644 01:07:41,275 --> 01:07:44,240 Vaša datoteka, možete samo rattle off, brzo vatre, jedna linija 1645 01:07:44,240 --> 01:07:46,470 svaki, što su imena svojih funkcija, ono što njihovo 1646 01:07:46,470 --> 01:07:49,120 ulazi su, što su njihovi rezultati su. 1647 01:07:49,120 --> 01:07:52,210 I da bude jasnije, ulaz općenito znači argument ili 1648 01:07:52,210 --> 01:07:54,110 parametar, sinonim. 1649 01:07:54,110 --> 01:07:56,890 Izlaz znači povratnu vrijednost, što ga čini 1650 01:07:56,890 --> 01:07:58,700 ruka natrag na mene. 1651 01:07:58,700 --> 01:08:03,420 Dakle, u ovom slučaju ovdje, kocka je proglašen na vrhu, ali 1652 01:08:03,420 --> 01:08:06,940 definirana, inače poznat kao provodi, na dnu. 1653 01:08:06,940 --> 01:08:09,620 Dakle, sad idemo nazad ovdje i ponovno pokrenuti ovo. 1654 01:08:09,620 --> 01:08:13,430 Pa sada neka mi ići naprijed i ponovno pokrenuti napraviti, ponovno pokrenuti prirast. 1655 01:08:13,430 --> 01:08:16,500 I sada se čini da se radi sasvim u redu. 1656 01:08:16,500 --> 01:08:19,450 Dakle, sada možemo ići naprijed i uzet iz nešto poput 1657 01:08:19,450 --> 01:08:23,720 pivo primjer u ovoj četvrti verziji. 1658 01:08:23,720 --> 01:08:25,590 Pa neka mi dođite ovamo. 1659 01:08:25,590 --> 01:08:28,149 I primijetiti da sam nekako uzeo ovu lekciju na srcu upravo sada. 1660 01:08:28,149 --> 01:08:31,140 Činjenica da sam pjevao istu kiticu opet i 1661 01:08:31,140 --> 01:08:34,130 i opet, isti zbor linija u pjesmi, osjetio 1662 01:08:34,130 --> 01:08:36,439 sviđa zašto ne bih faktor koji se u funkciji? 1663 01:08:36,439 --> 01:08:38,470 I doista, to bi trebao biti jedan od motiva. 1664 01:08:38,470 --> 01:08:40,960 Osim činjenice da je netko drugi u svijetu možda želite 1665 01:08:40,960 --> 01:08:42,390 koristiti funkciju kocke - 1666 01:08:42,390 --> 01:08:44,560 to je dobar razlog da faktor nešto i napisati svoj 1667 01:08:44,560 --> 01:08:45,720 vlastiti običaj funkcija - 1668 01:08:45,720 --> 01:08:48,720 ako postoji komad koda u svom programu da samo čini 1669 01:08:48,720 --> 01:08:51,370 konceptualni osjećaj, da ste vrsta želite dati 1670 01:08:51,370 --> 01:08:53,740 ime - kao u ovom slučaju, zbor - 1671 01:08:53,740 --> 01:08:57,380 onda slično može napisati da je kao zasebna funkcija. 1672 01:08:57,380 --> 01:08:59,560 Vi ne morate pisati sve što je u glavni, ako to samo 1673 01:08:59,560 --> 01:09:02,609 osjeća čistač ga izdvojiti i dati joj ime. 1674 01:09:02,609 --> 01:09:05,529 >> Dakle, u ovom slučaju ovdje, primijetiti da imam komentar na vrhu 1675 01:09:05,529 --> 01:09:06,859 ova funkcija samo da pjeva o 1676 01:09:06,859 --> 01:09:08,630 navedeni brojevi boca. 1677 01:09:08,630 --> 01:09:10,609 Obavijest da sam ovdje ne treba zvati ove 1678 01:09:10,609 --> 01:09:12,520 stvari ulazne i izlazne. 1679 01:09:12,520 --> 01:09:16,090 U stvari, ovaj put sam nazvao moj ulaznog b za bocu. 1680 01:09:16,090 --> 01:09:19,960 I primijetiti, nevažeće sugerira što? 1681 01:09:19,960 --> 01:09:21,309 To zbor - 1682 01:09:21,309 --> 01:09:22,660 PUBLIKA: Ne ga vratiti. 1683 01:09:22,660 --> 01:09:23,870 David J. MALAN: Ne vratiti vrijednost. 1684 01:09:23,870 --> 01:09:26,800 I doista, funkcije ne moraju vratiti vrijednosti. 1685 01:09:26,800 --> 01:09:28,060 Oni samo mogu nešto učiniti. 1686 01:09:28,060 --> 01:09:30,270 Oni mogu imati ono što se naziva nuspojave, koji je u to 1687 01:09:30,270 --> 01:09:33,109 Slučaj je samo cijela hrpa ispisa na zaslonu. 1688 01:09:33,109 --> 01:09:36,580 Dakle, primijetite da je to kod ovdje, doslovno sam upravo ukrao iz 1689 01:09:36,580 --> 01:09:37,680 prethodnog primjera. 1690 01:09:37,680 --> 01:09:39,930 Jedina razlika je umjesto koristim kao svojega 1691 01:09:39,930 --> 01:09:42,890 varijabla, ja sam sada pomoću b kao moj varijable. 1692 01:09:42,890 --> 01:09:45,880 Dakle, imam b ovdje dolje, imam b ovdje dolje, imam b 1693 01:09:45,880 --> 01:09:47,109 minus jedan ovdje dolje. 1694 01:09:47,109 --> 01:09:49,279 Ali kod je isti. 1695 01:09:49,279 --> 01:09:52,529 No, samo da vam pokažem kako sada možemo koristiti ovo, pusti me 1696 01:09:52,529 --> 01:09:56,780 naprijed i zapravo promijeniti to da se za petlje. 1697 01:09:56,780 --> 01:10:03,850 za (int i = n; i> n; i -). 1698 01:10:03,850 --> 01:10:06,230 >> Tako sam ukrao da iz našeg prethodnom primjeru. 1699 01:10:06,230 --> 01:10:08,970 Prije toga, to je u redu 37 da bih počeo 1700 01:10:08,970 --> 01:10:10,640 pjeva ovu pjesmu neugodno. 1701 01:10:10,640 --> 01:10:15,810 No, umjesto toga, ja samo idem sada zvati pripjevom ja. 1702 01:10:15,810 --> 01:10:16,870 Gotovo. 1703 01:10:16,870 --> 01:10:20,260 Tako sada u svakoj iteraciji ove petlje, sam nazvati ovaj drugi 1704 01:10:20,260 --> 01:10:22,220 funkcija, zbor, da mi se dogodilo da pisati. 1705 01:10:22,220 --> 01:10:24,110 To nije napisao netko drugi godina. 1706 01:10:24,110 --> 01:10:27,930 No, zbor, u međuvremenu, koristi printf za ispis 1707 01:10:27,930 --> 01:10:29,840 od ove četiri linije. 1708 01:10:29,840 --> 01:10:32,720 No, činjenica da sam pozivom refren i opet u 1709 01:10:32,720 --> 01:10:35,900 petlja znači da ću dobiti, na samom kraju, 1710 01:10:35,900 --> 01:10:39,310 Isti pjesma kao što sam ja do sada. 1711 01:10:39,310 --> 01:10:42,130 Dakle, u kratko, ako sada sam se osvrnuti na mom kodu, iako 1712 01:10:42,130 --> 01:10:44,240 funkcionalno to je ekvivalent, primijetiti da je 1713 01:10:44,240 --> 01:10:46,020 počinju da se još više čitati. 1714 01:10:46,020 --> 01:10:48,410 Ja ne znam točno kako se GetInt 1715 01:10:48,410 --> 01:10:49,250 provodi. 1716 01:10:49,250 --> 01:10:52,050 Iskreno, ne znam kako se refren provodi. 1717 01:10:52,050 --> 01:10:52,970 No, to ne smeta mi. 1718 01:10:52,970 --> 01:10:55,620 Ne zanima me, jer sada mogu sortirati u, kao čovjek, pročitajte 1719 01:10:55,620 --> 01:10:57,050 to od vrha do dna. 1720 01:10:57,050 --> 01:10:59,950 I zato se funkcije nazvane prema onome što su 1721 01:10:59,950 --> 01:11:02,910 učiniti, moj broj je sve čitati. 1722 01:11:02,910 --> 01:11:05,190 I dok naši programi dobiti mnogo složeniji - 1723 01:11:05,190 --> 01:11:07,220 po semestru na kraju, vi ćete biti pismeno stotine linija 1724 01:11:07,220 --> 01:11:10,970 koda u jezicima kao što su PHP i JavaScript i kao - 1725 01:11:10,970 --> 01:11:13,550 vidjet ćete da je tako puno lakše nego pratiti 1726 01:11:13,550 --> 01:11:14,080 ono što ste učinili. 1727 01:11:14,080 --> 01:11:15,810 A kad počnete surađivati ​​s prijateljima ili 1728 01:11:15,810 --> 01:11:19,010 partneri ili suradnici, vi ćete biti u mogućnosti pisati mnogo više 1729 01:11:19,010 --> 01:11:22,910 masivni programi po počinju ostvarivati ​​ove osnovne 1730 01:11:22,910 --> 01:11:23,990 izgrađeni. 1731 01:11:23,990 --> 01:11:25,550 >> Dakle, s koje je rekao, zašto ne zovemo ga dan? 1732 01:11:25,550 --> 01:11:27,190 A mi ćemo vas vidjeti u srijedu. 1733 01:11:27,190 --> 01:11:33,611 [Pljesak]