1 00:00:08,119 --> 00:00:11,630 [Powered by Google Translate] David J. Malan: Olgu, see on CS50, ja see on 2 00:00:11,630 --> 00:00:14,790 algus nädalal kaks. 3 00:00:14,790 --> 00:00:16,300 Aitäh. 4 00:00:16,300 --> 00:00:19,000 Alustagem siin telefonikõne. 5 00:00:19,000 --> 00:00:30,005 Ma olen umbes helistada 617-BUG-CS50. 6 00:00:30,005 --> 00:00:31,230 CS50: See on CS50. 7 00:00:31,230 --> 00:00:33,930 Sest Shuttle Poiss, vajutage 1. 8 00:00:33,930 --> 00:00:36,660 Et alustada, vajutage 9. 9 00:00:36,660 --> 00:00:38,180 David J. Malan: Siis ta ütles jaoks Shuttle Poiss, vajutage 1. 10 00:00:38,180 --> 00:00:41,560 Nii et me ei kavatse vajutage 1. 11 00:00:41,560 --> 00:00:43,230 CS50: Mis on su päritolu? 12 00:00:43,230 --> 00:00:45,340 Quad, vajutage 1. 13 00:00:45,340 --> 00:00:47,080 Ema, vajutage 2. 14 00:00:47,080 --> 00:00:49,240 Boylston, vajutage 3. 15 00:00:49,240 --> 00:00:51,280 Lamont vajutage 4. 16 00:00:51,280 --> 00:00:53,210 Mem Hall, vajutage 5. 17 00:00:53,210 --> 00:00:55,660 Et alustada, vajutage 0. 18 00:00:55,660 --> 00:00:59,590 David J. Malan: Me vajuta 1 quad. 19 00:00:59,590 --> 00:01:03,610 CS50: Järgmine buss väljub seda väga minut 13:10, ja 20 00:01:03,610 --> 00:01:09,820 siis kell 1:20, 01:30, 01:40. 21 00:01:09,820 --> 00:01:12,030 See on CS50. 22 00:01:12,030 --> 00:01:15,570 >> David J. Malan: Nii et see on CS50 hääl. 23 00:01:15,570 --> 00:01:18,030 Ja see on näide sorti lõplik projektide jaoks 24 00:01:18,030 --> 00:01:19,500 Näiteks saab hammustada välja poole 25 00:01:19,500 --> 00:01:20,600 semestri lõpuks. 26 00:01:20,600 --> 00:01:23,840 Näiteks, et shuttleboy.cs50.net olemas - 27 00:01:23,840 --> 00:01:28,200 tegelikult projekti, et ma esimest kirjutasin pärast pildistamist CS51 28 00:01:28,200 --> 00:01:29,740 tagasi, kui olin bakalaureuseõppe. 29 00:01:29,740 --> 00:01:32,250 Ja siit inspiratsiooni oli tollal, kõik nad olid olnud 30 00:01:32,250 --> 00:01:34,320 trükitud liinibuss sõiduplaanide, ja ei olnud 31 00:01:34,320 --> 00:01:35,970 mõiste otsin asju internetis. 32 00:01:35,970 --> 00:01:38,730 Ja nii ma omamoodi tuvi ühe nädalavahetusega, valatakse läbi 33 00:01:38,730 --> 00:01:41,460 trükitud ajakava ja teisaldatud selle arvutiprogramm. 34 00:01:41,460 --> 00:01:43,790 Ajal, mil arvutiprogramm juhtus olema kirjalik 35 00:01:43,790 --> 00:01:47,110 aastal C. Ja sa tegelikult jooksis ta kirjutades Shuttle poiss 36 00:01:47,110 --> 00:01:48,600 vilgub kiire nagu me oleme seda teinud siiani. 37 00:01:48,600 --> 00:01:50,450 Aga aastate jooksul on see kujunenud vahetu 38 00:01:50,450 --> 00:01:51,390 Sõnumid bot. 39 00:01:51,390 --> 00:01:53,970 See on arenenud viimasel käesoleval veebilehel sisseveo 40 00:01:53,970 --> 00:01:57,720 SMS-põhine tööriist, samuti sellesse hääl-põhine tööriist. 41 00:01:57,720 --> 00:02:00,170 Ja see on vihje asjadele, mida saate 42 00:02:00,170 --> 00:02:02,380 teha ise semestri lõpus. 43 00:02:02,380 --> 00:02:05,490 >> Näiteks seal, SMS versioon Shuttle Poiss juhtub 44 00:02:05,490 --> 00:02:06,510 tegutseda järgmiselt. 45 00:02:06,510 --> 00:02:10,880 Kui teie mobiiltelefon, saadate tekstsõnumi 41411 ja 46 00:02:10,880 --> 00:02:14,300 siis saatke eritähise sboy jaoks Shuttle Poiss, 47 00:02:14,300 --> 00:02:18,350 järgneb A ja B, kus on päritolu ja B on 48 00:02:18,350 --> 00:02:19,070 sihtkoht - 49 00:02:19,070 --> 00:02:21,030 Näiteks Boylston Kosmos Quad - 50 00:02:21,030 --> 00:02:23,330 mida sa peaksid tagasi minema mõne sekundi jooksul on tekst 51 00:02:23,330 --> 00:02:25,820 sõnum Shuttle Poiss ütleb teile täpselt, kui 52 00:02:25,820 --> 00:02:28,990 Järgmise paari süstikud on sellest hetkest alates on kavatse, et 53 00:02:28,990 --> 00:02:29,640 punkt B. 54 00:02:29,640 --> 00:02:32,510 Ja see on üldisem näide sellest, mis on tuntud kui 55 00:02:32,510 --> 00:02:33,920 kasutades API. 56 00:02:33,920 --> 00:02:36,930 >> Nii näiteks see siin on lihtsalt shuttleboy.cs50.net, 57 00:02:36,930 --> 00:02:39,300 tegelik veebipõhine kehastus see. 58 00:02:39,300 --> 00:02:42,480 Aga andmed, mis rõhutab selle ja teiste apps, mis CS50 59 00:02:42,480 --> 00:02:45,560 on välja töötanud kõik puutume kõik siin kujul 60 00:02:45,560 --> 00:02:49,340 rakendusliideste, rakenduse programmeerimise liidesed. 61 00:02:49,340 --> 00:02:52,220 Ja see on ainult fancy viis öelda, et inimestele meeldib meie kohta 62 00:02:52,220 --> 00:02:56,010 Internet ja teised on mõnda aega luua 63 00:02:56,010 --> 00:02:59,970 tarkvara, mida saab kasutada, et haarata andmeid meile ja 64 00:02:59,970 --> 00:03:02,510 siis ehitada oma rakendusi peal 65 00:03:02,510 --> 00:03:03,840 Selle andmekogum. 66 00:03:03,840 --> 00:03:06,610 Nii näiteks see Shuttle Poiss API leht siin, mis 67 00:03:06,610 --> 00:03:09,390 juhtub olema CS50 kasutusjuhendi sisuliselt dokumendid 68 00:03:09,390 --> 00:03:13,080 kuidas saab minna umbes paludes CS50 serverite andmed. 69 00:03:13,080 --> 00:03:16,240 Näiteks, kui te olete juba tuttav CSV faili, koma 70 00:03:16,240 --> 00:03:18,940 eraldatud väärtused, need on lihtsalt omamoodi kiire ja räpane 71 00:03:18,940 --> 00:03:20,310 Excel-like faile. 72 00:03:20,310 --> 00:03:23,110 Nii et võite küsida Shuttle Poiss kõigi andmeid kõikide 73 00:03:23,110 --> 00:03:25,090 majade ja nende GPS-koordinaadid ja saad 74 00:03:25,090 --> 00:03:27,300 tagasi sisuliselt, arvutustabeli niimoodi, et 75 00:03:27,300 --> 00:03:30,820 võite lugeda meie programmi enda ja seejärel 76 00:03:30,820 --> 00:03:33,250 andma tulemusi, nagu Shuttle Poiss ise 77 00:03:33,250 --> 00:03:34,160 juhtub tegema. 78 00:03:34,160 --> 00:03:37,030 Neile rohkem tuttav, moodsam andmed esindused 79 00:03:37,030 --> 00:03:39,420 sisaldavad JSON, JavaScript Object Notation. 80 00:03:39,420 --> 00:03:40,620 Midagi tulevad sulle tagasi suunas 81 00:03:40,620 --> 00:03:41,720 semestri lõpuks. 82 00:03:41,720 --> 00:03:45,440 >> Aga jälle, see on vaid üks mitmete CS50 enda rakendusliideste. 83 00:03:45,440 --> 00:03:48,320 Ja põnev asi on nüüd, nendel päevadel, Facebooki ja 84 00:03:48,320 --> 00:03:51,110 Twitter ja Google ja päris palju iga populaarne veebileht välja 85 00:03:51,110 --> 00:03:54,130 seal on mingi API, mis tähendab, kui sa loed 86 00:03:54,130 --> 00:03:56,620 dokumendid oma veebilehel, kui sisse logida 87 00:03:56,620 --> 00:03:59,980 konto, saate siis hakake tarkvara peal 88 00:03:59,980 --> 00:04:03,680 mida iganes vahendeid või andmed, et ettevõte on ette näeb. 89 00:04:03,680 --> 00:04:06,210 Ja nii üks meie õpetamise stipendiaatide paar aastat tagasi 90 00:04:06,210 --> 00:04:07,620 kirjutas Mac versioon sellest. 91 00:04:07,620 --> 00:04:10,990 Nii et lingil Mac siin üleval vasakul, saate tegelikult 92 00:04:10,990 --> 00:04:13,940 lae Mac OS vidin, mis töötab oma Mac teha 93 00:04:13,940 --> 00:04:15,040 sama liiki asju. 94 00:04:15,040 --> 00:04:17,970 Nii et see on kõik umbes hoone peal andmekogud nagu need. 95 00:04:17,970 --> 00:04:21,839 Aga rohkem sellest poole semestri lõpuks. 96 00:04:21,839 --> 00:04:25,780 >> Nii et olgem sukelduda päris kiire putukas, lihtsalt selline saada 97 00:04:25,780 --> 00:04:27,990 asjad üles soojendada täna, ja mõtlen tagasi mõnele 98 00:04:27,990 --> 00:04:29,660 asjad me vaatasime eelmisel nädalal. 99 00:04:29,660 --> 00:04:32,840 Eelkõige lubage mul minna ja tõmba, ütleme, 100 00:04:32,840 --> 00:04:34,080 Selles näites siin. 101 00:04:34,080 --> 00:04:37,500 Buggy1.c, see on kättesaadav kursuse veebilehel, kui soovite 102 00:04:37,500 --> 00:04:40,250 soovite alla laadida, ja tuhnima ise. 103 00:04:40,250 --> 00:04:43,520 Aga olgem suumimiseks siin selles üsna lühike programm ja lihtsalt 104 00:04:43,520 --> 00:04:46,550 ülikiire sulgege mõned põhilised ehitusplokid et 105 00:04:46,550 --> 00:04:48,880 me tõesti tahame lihtsalt hakata võtma enesestmõistetavana. 106 00:04:48,880 --> 00:04:51,860 >> Nii sinine värk, ridadel 1 kuni 9, on vaid 107 00:04:51,860 --> 00:04:53,670 Softball küsimustele. 108 00:04:53,670 --> 00:04:54,590 Nii et need on lihtsalt kommentaarid. 109 00:04:54,590 --> 00:04:56,230 Neil puudub funktsionaalne tähendus. 110 00:04:56,230 --> 00:04:58,460 Aga nad märkusi selles mõttes, et nad märgib, et 111 00:04:58,460 --> 00:05:02,010 Mina, inimene, teha ise nii, et loengu ja pärast 112 00:05:02,010 --> 00:05:04,340 loeng, ma ei saa tegelikult mäleta, mida see programm 113 00:05:04,340 --> 00:05:07,120 Kas ilma see läbi lugeda rida realt ja 114 00:05:07,120 --> 00:05:08,990 taasloomine ajalugu minu meelest. 115 00:05:08,990 --> 00:05:11,000 Pealegi, kui ma käega seda programmi kellelegi meeldib 116 00:05:11,000 --> 00:05:14,420 teile, see on palju selgem teile, sest kommentaaride meeldib see, 117 00:05:14,420 --> 00:05:16,680 Mis programmi tegelikult teeme, või vähemalt see, mida 118 00:05:16,680 --> 00:05:18,210 Programmi pidanud tegema. 119 00:05:18,210 --> 00:05:20,760 Sõltumata sellest, kas see on õige on hoopis teine ​​küsimus. 120 00:05:20,760 --> 00:05:25,040 Nüüd, C, mitmeliiniline kommentaare, meelde tuletada, et on line 121 00:05:25,040 --> 00:05:27,880 üks siin on maagiline sümbol, / *. 122 00:05:27,880 --> 00:05:30,380 See tähendab, siin on algusest kommentaari. 123 00:05:30,380 --> 00:05:34,560 Ja miski muu ei loe, kuni jõuate lõpuks terminaator 124 00:05:34,560 --> 00:05:36,700 mis on * / vastupidine. 125 00:05:36,700 --> 00:05:39,120 Nii et mul on 80-mõned kummalised tärni siia 126 00:05:39,120 --> 00:05:41,550 Vasakult paremale on tõesti ainult esteetiline detail. 127 00:05:41,550 --> 00:05:43,370 Tal ei ole funktsionaalne tähendus. 128 00:05:43,370 --> 00:05:44,490 >> Nüüd kuidas line 11? 129 00:05:44,490 --> 00:05:46,940 Mida see teeb üldarusaadavat mõttes? 130 00:05:51,560 --> 00:05:52,540 Mis see on? 131 00:05:52,540 --> 00:05:54,280 Sihtrühm: Sisaldab standard. 132 00:05:54,280 --> 00:05:54,740 David J. Malan: OK, hea. 133 00:05:54,740 --> 00:05:57,500 Nii et see sisaldab stdio.h raamatukogu. 134 00:05:57,500 --> 00:05:58,230 Nii et mida see tähendab? 135 00:05:58,230 --> 00:06:01,570 Noh, sees, et fail, stdio.h, on terve hunnik 136 00:06:01,570 --> 00:06:03,320 funktsioon deklaratsioonid - 137 00:06:03,320 --> 00:06:05,290 see on kood, et keegi teine ​​kirjutas. 138 00:06:05,290 --> 00:06:08,160 Ja suurepärane näide funktsioon, mis on välja kuulutatud 139 00:06:08,160 --> 00:06:10,250 stdio.h on - 140 00:06:10,250 --> 00:06:11,980 mis lemmik nüüdseks? 141 00:06:11,980 --> 00:06:14,300 Nii printf, üks enim levinud kasutada, kindlasti 142 00:06:14,300 --> 00:06:15,840 varakult, st et raamatukogu on olemas. 143 00:06:15,840 --> 00:06:19,290 Kui ma välistada, et rida koodi, rõkkama hakkab lõugama 144 00:06:19,290 --> 00:06:22,550 mind midagi kasutades deklareerimata sümbol. 145 00:06:22,550 --> 00:06:24,930 Midagi deklareerimata on ilmselt märksõna, sest 146 00:06:24,930 --> 00:06:27,770 me ei ole teavitanud kompilaator mida printf välja 147 00:06:27,770 --> 00:06:29,230 meeldib kui me hulka, et liin. 148 00:06:29,230 --> 00:06:31,830 Ja rohkem alla maa, tõesti, mida see rida ütleb on 149 00:06:31,830 --> 00:06:34,890 avada see fail, stdio.h, kus iganes see on serveri 150 00:06:34,890 --> 00:06:38,200 kõvaketta või seadme kõvakettale, ja kopeeri-kleebi see 151 00:06:38,200 --> 00:06:40,240 seal minu pilti ilma minu 152 00:06:40,240 --> 00:06:41,730 võttes tegema, et käsitsi. 153 00:06:41,730 --> 00:06:44,420 >> Nüüd, kui saame siin all Otse enne pikka hakkame 154 00:06:44,420 --> 00:06:46,900 kiusasid peale mida int ja mida tühjus. 155 00:06:46,900 --> 00:06:48,430 Aga nüüd, vaatame kolm liini 156 00:06:48,430 --> 00:06:50,350 15 kuni 17. 157 00:06:50,350 --> 00:06:52,250 See siin ma väita, nagu lollakas. 158 00:06:52,250 --> 00:06:54,900 Rida 7 minu kommentaarid ütleb: "Kui printida 10 159 00:06:54,900 --> 00:06:59,410 tärne kuid ei. "Miks see ei prindi, kuigi tegelikult 160 00:06:59,410 --> 00:07:01,097 10 sellist tähte? 161 00:07:01,097 --> 00:07:02,347 Sihtrühm: [kuuldamatu]. 162 00:07:05,210 --> 00:07:05,800 David J. Malan: Täpselt. 163 00:07:05,800 --> 00:07:08,720 Nii märkate, et oleme hakanud lugema 0-st. 164 00:07:08,720 --> 00:07:10,780 Ja see on tegelikult konventsiooni programmeerimine ja 165 00:07:10,780 --> 00:07:13,230 arvutiteadus üldisemalt hakanud lugema 166 00:07:13,230 --> 00:07:14,610 0 1 asemel. 167 00:07:14,610 --> 00:07:16,690 Ja see on tõesti lihtsalt tuleneb asjaolust, et 168 00:07:16,690 --> 00:07:18,940 Näiteks, kui meil oli kaheksa inimest lavale, kui 169 00:07:18,940 --> 00:07:20,680 keegi ei tõsta oma käsi, need olid 170 00:07:20,680 --> 00:07:22,340 kõik tõhusalt nulli. 171 00:07:22,340 --> 00:07:24,260 Ja nii see on lihtsalt mingi arvuti konventsiooni nii, 172 00:07:24,260 --> 00:07:26,030 seetõttu, et alustada loendamist 0. 173 00:07:26,030 --> 00:07:29,130 Kui see on väiksem number saab esindada binaarne. 174 00:07:29,130 --> 00:07:32,270 >> Nii et siin me oleme alustanud initsialiseerimisel I 0. 175 00:07:32,270 --> 00:07:34,230 Oleme loonud i = 0. 176 00:07:34,230 --> 00:07:37,780 Aga siis ma tegin seda viga siin, öeldes i on väiksem või 177 00:07:37,780 --> 00:07:38,820 võrdne 10. 178 00:07:38,820 --> 00:07:41,700 Aga kui sa arvad, et läbi, kui ma hakkan 0 ja siis lähen 179 00:07:41,700 --> 00:07:46,410 kuni 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ma olen tegelikult läheb 180 00:07:46,410 --> 00:07:49,980 välja printida 11 tähte ekraani, sest ma olen kasvanud 181 00:07:49,980 --> 00:07:52,410 ja võrdne 10. 182 00:07:52,410 --> 00:07:55,090 Nii lihtne lahendus siin siis on mis? 183 00:07:55,090 --> 00:07:56,070 Sihtrühm: [kuuldamatu]. 184 00:07:56,070 --> 00:07:57,350 David J. Malan: Lihtsalt muuta see vähem kui. 185 00:07:57,350 --> 00:07:59,700 Kui sa tõesti tahad, siis võiks seda teha. 186 00:07:59,700 --> 00:08:01,370 Aga üldiselt, mis on kortsutas kulmu. 187 00:08:01,370 --> 00:08:04,020 Ja nii hakkab lugema 0-st on lihtsalt midagi, mida peaks 188 00:08:04,020 --> 00:08:05,510 tavaliselt harjuda. 189 00:08:05,510 --> 00:08:07,810 Nüüd, kuidas kogu see konstruktsioon ja ise? 190 00:08:07,810 --> 00:08:10,640 See rida 15 demarks jaoks silmus. 191 00:08:10,640 --> 00:08:12,510 Nii ei ole funktsioon. 192 00:08:12,510 --> 00:08:13,640 See on lihtsalt avalduse. 193 00:08:13,640 --> 00:08:16,180 See on silmuspõletamise ehitada, nagu me nägime Scratch. 194 00:08:16,180 --> 00:08:17,600 Ja see koosneb kolmest osast. 195 00:08:17,600 --> 00:08:19,740 Pange tähele, et seal on esimene osa 196 00:08:19,740 --> 00:08:21,350 vasakul semikooloniga. 197 00:08:21,350 --> 00:08:24,200 Seal keskel osa kahe semikoolonit. 198 00:08:24,200 --> 00:08:26,250 Ja siis on parempoolne osa paremal 199 00:08:26,250 --> 00:08:27,640 Teise semikooloniga. 200 00:08:27,640 --> 00:08:31,822 Nüüd, esimene neist teeb mida? 201 00:08:31,822 --> 00:08:33,679 Sihtrühm: [kuuldamatu]. 202 00:08:33,679 --> 00:08:34,270 David J. Malan: seal? 203 00:08:34,270 --> 00:08:34,816 Jah? 204 00:08:34,816 --> 00:08:35,980 Sihtrühm: ettekanne. 205 00:08:35,980 --> 00:08:36,850 >> David J. Malan: ettekanne. 206 00:08:36,850 --> 00:08:37,840 Mida see tähendab? 207 00:08:37,840 --> 00:08:40,690 Meil on deklareeritud muutuja nimega i. 208 00:08:40,690 --> 00:08:43,840 See on tüüpi int, sest ma olen täpsustatud int i. 209 00:08:43,840 --> 00:08:46,470 Ja ma initsialiseerimisel i väärtusega 0. 210 00:08:46,470 --> 00:08:47,730 Mis siis see tõesti öelda? 211 00:08:47,730 --> 00:08:50,680 See on tegelikult öelda, et arvuti Hei, anna mulle piisavalt 212 00:08:50,680 --> 00:08:53,660 mälu, piisavalt RAM, mis sobib number, ja seejärel panna 213 00:08:53,660 --> 00:08:56,130 number on 0, et patakas RAM. 214 00:08:56,130 --> 00:08:59,100 Ja kui kõrvale, kui suur on int tavaliselt, vähemalt sees 215 00:08:59,100 --> 00:09:00,280 seadmest välja? 216 00:09:00,280 --> 00:09:01,000 Sihtrühm: 32-bitine. 217 00:09:01,000 --> 00:09:01,670 David J. Malan: 32 bitti. 218 00:09:01,670 --> 00:09:04,890 Nii et see tähendab mulle 32 bitti, muidu tuntud 4 baiti, 219 00:09:04,890 --> 00:09:07,250 ja pane väärtuseks 0. see, mis on üsna lihtne, sest 220 00:09:07,250 --> 00:09:09,110 See tähendab lihtsalt seada kõik bitid 0-ga. 221 00:09:09,110 --> 00:09:11,690 >> Nüüd teine ​​osa on siin seisukorras. 222 00:09:11,690 --> 00:09:14,590 Ja seisukorras, nagu nimigi ütleb, on see, mida on kontrollitud 223 00:09:14,590 --> 00:09:18,100 uuesti ja uuesti ja uuesti, kas see on õige või vale. 224 00:09:18,100 --> 00:09:21,410 Nii et see on lihtsalt öeldes teha järgmist rida koodi - 225 00:09:21,410 --> 00:09:23,950 nimelt liin 16, sest see on ainus, liigestatud 226 00:09:23,950 --> 00:09:24,820 all - 227 00:09:24,820 --> 00:09:26,980 nii kaua kui ma alla 10. 228 00:09:26,980 --> 00:09:30,520 Ja pärast iga iteratsiooni kaudu see silmus, teha 229 00:09:30,520 --> 00:09:33,840 juurdekasvu, mis antud juhul on i + +. 230 00:09:33,840 --> 00:09:35,580 Nüüd, see ei pea olema i + +. 231 00:09:35,580 --> 00:09:37,610 See võiks olla i -. 232 00:09:37,610 --> 00:09:39,860 Aga kui ma tegin seda, mis seal käitumine läheb 233 00:09:39,860 --> 00:09:41,370 olema selle programmi? 234 00:09:41,370 --> 00:09:42,290 Sihtrühm: See saab olema lõputu silmuse. 235 00:09:42,290 --> 00:09:44,060 David J. Malan: See saab olema mingi lõputu silmuse, 236 00:09:44,060 --> 00:09:47,720 kui meil veab pärast negatiivne 2 miljardit või nii. 237 00:09:47,720 --> 00:09:51,320 Ehk asjad see murtakse, lihtsalt milline on piiratud 238 00:09:51,320 --> 00:09:53,930 bittide arvu, et oleme eraldatud int. 239 00:09:53,930 --> 00:09:56,270 Aga see on kindlasti kavatse kinnitada, kaugelt üle 10 ja 240 00:09:56,270 --> 00:09:58,630 kindlasti rohkem kui 11 korda siin. 241 00:09:58,630 --> 00:10:02,240 >> Ja nüüd, just nagu kõrvale, mõista, et i + + ja I - 242 00:10:02,240 --> 00:10:04,420 on tõesti ainult süntaktiline suhkur. 243 00:10:04,420 --> 00:10:07,210 See on lihtsalt stenografisti märke, mida on veidi rohkem 244 00:10:07,210 --> 00:10:08,720 selgesõnaliselt kirjutatud järgmiselt: 245 00:10:08,720 --> 00:10:11,200 i = i + 1. 246 00:10:11,200 --> 00:10:13,460 See on identne i + +. 247 00:10:13,460 --> 00:10:15,860 See lihtsalt selline näeb ilusam öelda i + +. 248 00:10:15,860 --> 00:10:17,490 See on sisutihe, loetavamaks. 249 00:10:17,490 --> 00:10:19,030 Ja nii enamik inimesi teha, et mitte. 250 00:10:19,030 --> 00:10:21,840 Aga see on identne funktsionaalselt 251 00:10:21,840 --> 00:10:22,900 mida me just nägime. 252 00:10:22,900 --> 00:10:27,770 Nii lühike, kiirparandus on siin lihtsalt öelda itereerima i 253 00:10:27,770 --> 00:10:30,690 0 kõik viis kuni vähem kui 10. 254 00:10:30,690 --> 00:10:32,700 Ja siis me tõesti saada 10 tähte. 255 00:10:32,700 --> 00:10:33,430 >> Nii et proovime seda. 256 00:10:33,430 --> 00:10:35,310 Lubage mul avada terminali allosas. 257 00:10:35,310 --> 00:10:37,420 Lubage mul minna kataloogi, et see on sisse 258 00:10:37,420 --> 00:10:40,030 Ja ma lähen kompileerida käsitsi rõkkama nüüd. 259 00:10:40,030 --> 00:10:44,880 Ja ma lähen kompileerida seda buggy1.c, Enter. 260 00:10:44,880 --> 00:10:50,280 Ja nüüd buggy1, miks on sellist faili või kataloogi 261 00:10:50,280 --> 00:10:52,026 nimetatakse buggy1? 262 00:10:52,026 --> 00:10:53,850 Sihtrühm: [kuuldamatu]. 263 00:10:53,850 --> 00:10:54,240 David J. Malan: Jah. 264 00:10:54,240 --> 00:10:55,420 Nii et see on tegelikult nn a.out. 265 00:10:55,420 --> 00:10:57,480 Nii et meenutada, kui sa lihtsalt kulgema rõkkama, kus rõkkama on 266 00:10:57,480 --> 00:11:00,420 tõlkija, ja te ei määra nimi, mida soovite 267 00:11:00,420 --> 00:11:03,550 anda oma programmi, siis läheb vaikimisi a.out. 268 00:11:03,550 --> 00:11:05,030 Nii et tõepoolest, kui ma LS - 269 00:11:05,030 --> 00:11:05,510 oops. 270 00:11:05,510 --> 00:11:07,680 Ja ma ei - must-valge küsimus mõnede 271 00:11:07,680 --> 00:11:08,840 te silmitsi on fikseeritud. 272 00:11:08,840 --> 00:11:10,670 Aga lubage mul seda teha. 273 00:11:10,670 --> 00:11:14,570 Seal on meil a.out vasakul servas on olemas. 274 00:11:14,570 --> 00:11:17,360 Nii et me peame jooksma a.out asemel buggy1. 275 00:11:17,360 --> 00:11:19,140 >> Nii et lubage mul minna ja seda teha. 276 00:11:19,140 --> 00:11:22,840 . / A.out, Enter. 277 00:11:22,840 --> 00:11:26,160 Ja ma ilmselt ei tee mida? 278 00:11:26,160 --> 00:11:26,620 Sihtrühm: Salvesta. 279 00:11:26,620 --> 00:11:27,390 David J. Malan: Salvesta minu faili. 280 00:11:27,390 --> 00:11:31,520 Nii et kergelt lahendatav lööb Control S, või läheb 281 00:11:31,520 --> 00:11:33,450 File, Save, nagu enamikus programmides. 282 00:11:33,450 --> 00:11:36,360 Lubage mul minna siin, selge ekraan, käivitage see uuesti. 283 00:11:36,360 --> 00:11:37,960 Ja seal on veel viga. 284 00:11:37,960 --> 00:11:41,618 Nii et mis toimub - 285 00:11:41,618 --> 00:11:42,980 Sihtrühm: Sa ei kompileerida. 286 00:11:42,980 --> 00:11:44,040 David J. Malan: Ah, hea. 287 00:11:44,040 --> 00:11:45,010 Ma ei kompileerida. 288 00:11:45,010 --> 00:11:47,250 Nagu idioot, ma vaatan koodi näha, mis on valesti. 289 00:11:47,250 --> 00:11:51,275 Nii rõkkama buggy1.c, nüüd a.out. 290 00:11:51,275 --> 00:11:52,640 Ja phew, päästetud. 291 00:11:52,640 --> 00:11:55,090 >> Nii et tundub natuke kole, sest ei ole uue liini 292 00:11:55,090 --> 00:11:55,970 kõikjal programm. 293 00:11:55,970 --> 00:11:57,390 Aga jälle, see on ainult esteetiline detail. 294 00:11:57,390 --> 00:11:59,430 Ja vähemalt kui me loota need, peaksime 295 00:11:59,430 --> 00:12:01,160 nüüd vaata 10 sellist tähte. 296 00:12:01,160 --> 00:12:03,260 Noh, aga see teine ​​soojenduseks näiteks? 297 00:12:03,260 --> 00:12:07,750 Nii buggy2, Väidan, et see versioon ka, prinditakse 298 00:12:07,750 --> 00:12:10,110 10 tähte, üks rea kohta. 299 00:12:10,110 --> 00:12:12,340 Nii et seekord on mul reavahetus sümbol, vaid teha 300 00:12:12,340 --> 00:12:13,520 asjad natuke ilusamaks. 301 00:12:13,520 --> 00:12:15,410 Kuid selle asemel, mida ma saan on see. 302 00:12:15,410 --> 00:12:19,590 Nii et las ma teen rõkkama buggy2.c, Enter. 303 00:12:19,590 --> 00:12:21,790 Nüüd on taas kutsutud a.out. 304 00:12:21,790 --> 00:12:23,130 Enter. 305 00:12:23,130 --> 00:12:26,900 Ma näen ainult ühte uut liini, vaid väga viimane uus liin, mis 306 00:12:26,900 --> 00:12:29,370 liigub minu kiire järgmisele reale. 307 00:12:29,370 --> 00:12:32,660 Ja veel selgelt Olen trükkimine *, siis uus liin, 308 00:12:32,660 --> 00:12:33,990 *, Siis uus rida. 309 00:12:33,990 --> 00:12:35,490 Aga mis viga siin? 310 00:12:35,490 --> 00:12:35,974 Jah? 311 00:12:35,974 --> 00:12:37,224 Sihtrühm: [kuuldamatu]. 312 00:12:39,850 --> 00:12:40,470 >> David J. Malan: Täpselt. 313 00:12:40,470 --> 00:12:44,110 Nii et erinevalt mõnest keeles, nagu Python, kus taandus 314 00:12:44,110 --> 00:12:46,030 tegelikult on funktsionaalne tähendus, mis 315 00:12:46,030 --> 00:12:47,150 keeles nagu C - 316 00:12:47,150 --> 00:12:49,140 nagu näeme, PHP, JavaScript - 317 00:12:49,140 --> 00:12:51,940 taandus on tõesti ainult inimesele kasuks. 318 00:12:51,940 --> 00:12:55,690 Nii et ma olen taandrea 16 ja 17 tundub hea, 319 00:12:55,690 --> 00:12:57,530 kuid see ei ole funktsionaalne tähendus siin. 320 00:12:57,530 --> 00:13:00,700 Kui ma tahan nii read täita osana jaoks 321 00:13:00,700 --> 00:13:05,140 loop, siis pean lisama neid looksulg seda teed. 322 00:13:05,140 --> 00:13:08,540 Võite ainult lõigata, et nurgas ja jätta looksulg kui 323 00:13:08,540 --> 00:13:10,036 Mis puhul? 324 00:13:10,036 --> 00:13:10,410 Sihtrühm: Lihtsalt üks rida. 325 00:13:10,410 --> 00:13:11,130 David J. Malan: Lihtsalt üks rida. 326 00:13:11,130 --> 00:13:15,280 Nii et see on lihtsalt mingi kena omamoodi süntaks üksikasjalikult, nii et 327 00:13:15,280 --> 00:13:17,900 sa ei raiska aega kirjalikult kolm rida, millest kaks on 328 00:13:17,900 --> 00:13:20,040 looksulg, lihtsalt kirjutada koodirida. 329 00:13:20,040 --> 00:13:21,650 Aga kui sul on kaks või enam rida, me 330 00:13:21,650 --> 00:13:22,860 tõesti vaja seda teha. 331 00:13:22,860 --> 00:13:24,210 >> Nüüd lubage mul päästa see. 332 00:13:24,210 --> 00:13:27,140 Lubage mul minna ja uuesti käivitada rõkkama. 333 00:13:27,140 --> 00:13:31,375 Siis andke mulle uuesti, a.out, ja nüüd ma saan neid üks rea kohta. 334 00:13:31,375 --> 00:13:33,670 Nüüd a.out jälle on selline loll nimi programm. 335 00:13:33,670 --> 00:13:37,500 Kuidas ma saan aru rõkkama tegelikult mulle faili nimi 336 00:13:37,500 --> 00:13:39,820 see on kasutajasõbralikum, nagu buggy2 ise? 337 00:13:43,200 --> 00:13:44,466 Vähe selgemalt? 338 00:13:44,466 --> 00:13:45,220 Sihtrühm: [kuuldamatu]. 339 00:13:45,220 --> 00:13:47,810 David J. Malan: OK, nii et ma ei saa tegelikult võtta väga 340 00:13:47,810 --> 00:13:51,000 kasutajasõbralik otsetee ja lihtsalt kirjutada tegema buggy2. 341 00:13:51,000 --> 00:13:53,840 Ma ei täpsustata. C antud juhul ja vajuta Enter. 342 00:13:53,840 --> 00:13:58,530 Ja mida teha ei ole see kompileerib buggy2.c minu poolt 343 00:13:58,530 --> 00:14:00,260 küsib rõkkama seda teha. 344 00:14:00,260 --> 00:14:05,100 Otsesõnu nõuab rõkkama, siis jookseb rõkkama kasutades nii rohkem 345 00:14:05,100 --> 00:14:08,540 käsurea argumente või lülitid, kui ma tegelikult vajan. 346 00:14:08,540 --> 00:14:11,270 Aja jooksul me tuleme tagasi, mida kõik need erinevad 347 00:14:11,270 --> 00:14:13,810 segasena sidekriipsuga väljendeid tähendab. 348 00:14:13,810 --> 00:14:16,910 Aga nüüd, et lihtsalt säästa mind vaevast 349 00:14:16,910 --> 00:14:19,600 vaja meeles pidada ja võttes tüüpi läbi kõik need 350 00:14:19,600 --> 00:14:21,150 erinevate sidekriipsuga väljendeid. 351 00:14:21,150 --> 00:14:23,240 Ja tagurpidi see lõppkokkuvõttes on 352 00:14:23,240 --> 00:14:25,900 et nüüd on mul buggy2. 353 00:14:25,900 --> 00:14:27,480 Kui ma tahan seda teha käsitsi, kuigi ma 354 00:14:27,480 --> 00:14:28,775 võib selle asemel tee seda - 355 00:14:28,775 --> 00:14:34,110 rõkkama-o buggy2 ja siis buggy2.c. 356 00:14:34,110 --> 00:14:37,980 Ja mis sarnaselt mulle fail nimega buggy2. 357 00:14:37,980 --> 00:14:39,710 >> Nii lühike, rõkkama on kompilaator. 358 00:14:39,710 --> 00:14:43,080 Tee on lihtsalt kasutajasõbralik vahend, et me kasutame rohkem 359 00:14:43,080 --> 00:14:44,420 ja veel, sest see lihtsalt hakkab 360 00:14:44,420 --> 00:14:47,330 lihtsustada asjad meie jaoks. 361 00:14:47,330 --> 00:14:49,430 Ja me tagastab 0, lõpuks. 362 00:14:49,430 --> 00:14:51,890 Praegu lihtsalt sellepärast, kuid hakkame kiusasid et osa 363 00:14:51,890 --> 00:14:52,930 täna ja kolmapäeval. 364 00:14:52,930 --> 00:14:55,560 Kõik küsimused kõik see? 365 00:14:55,560 --> 00:14:56,450 Jah? 366 00:14:56,450 --> 00:14:58,234 Sihtrühm: [kuuldamatu] 367 00:14:58,234 --> 00:15:00,020 Kas jutumärkides on? 368 00:15:00,020 --> 00:15:01,710 David J. Malan: OK. 369 00:15:01,710 --> 00:15:05,880 Kui ma tipitud ls hinnapakkumisi, mis oli mulle teeme mõned maagia 370 00:15:05,880 --> 00:15:07,160 kulisside taga määrata bug. 371 00:15:07,160 --> 00:15:09,370 Ma unustasin, nagu me oleme öelnud paljudel teist kohta 372 00:15:09,370 --> 00:15:11,600 Vestlusringide, mida teha - 373 00:15:11,600 --> 00:15:17,220 Me teeme seda nüüd - sudo yum-y uuendus appliance50. 374 00:15:17,220 --> 00:15:19,790 Oih, et see on kirjutatud. 375 00:15:19,790 --> 00:15:23,240 Nii et aparaat on nagu operatsioonisüsteemi. 376 00:15:23,240 --> 00:15:25,650 See töötab see operatsioonisüsteemi nimega Fedora. 377 00:15:25,650 --> 00:15:27,450 Ja nüüd, sest minu aeglane internetiühendus, ma olen 378 00:15:27,450 --> 00:15:28,260 tõesti hosed ta. 379 00:15:28,260 --> 00:15:31,620 Nii töötab sudo yum update, kui me ütleme teile, mida teha 380 00:15:31,620 --> 00:15:34,080 lahendamist, on sisuliselt nagu jooksmine automaatsed uuendused 381 00:15:34,080 --> 00:15:35,420 Mac OS või Windows. 382 00:15:35,420 --> 00:15:37,280 Ja põhjus töötab see päris algusest 383 00:15:37,280 --> 00:15:39,640 Ülesanded on, sest kui me loodud aparaat, ma 384 00:15:39,640 --> 00:15:42,480 messed up, ja ma kogemata tehtud kõik programmid vaadata 385 00:15:42,480 --> 00:15:45,210 must must ekraan, mis on, miks sa ei näe neid 386 00:15:45,210 --> 00:15:45,860 vaikimisi. 387 00:15:45,860 --> 00:15:48,020 Aga viimane versioon seade määrab selle. 388 00:15:48,020 --> 00:15:50,500 Ja ma parandan selle ajal pausi kui olen Internet 389 00:15:50,500 --> 00:15:51,280 ühendust. 390 00:15:51,280 --> 00:15:54,630 >> Nii tsiteerib lihtsalt peidab minu viga, väga diskreetselt, 391 00:15:54,630 --> 00:15:55,730 ilmselt. 392 00:15:55,730 --> 00:15:56,980 Muud küsimused? 393 00:15:59,750 --> 00:16:00,668 Jah? 394 00:16:00,668 --> 00:16:02,012 Sihtrühm: Kus teha tulevad? 395 00:16:02,012 --> 00:16:03,810 [Kuuldamatu] 396 00:16:03,810 --> 00:16:04,280 David J. Malan: Hea küsimus. 397 00:16:04,280 --> 00:16:05,460 Kui ei teha tulevad? 398 00:16:05,460 --> 00:16:09,390 See on Linux programm, mis on kestnud juba aastaid, pikk 399 00:16:09,390 --> 00:16:10,570 enne CS50. 400 00:16:10,570 --> 00:16:12,930 Ja see on kaasas operatsioonisüsteemi nagu Fedora. 401 00:16:12,930 --> 00:16:14,830 See ei ole pärit CS50 raamatukogu. 402 00:16:14,830 --> 00:16:17,560 Tegelikult ainsad asjad, mis tulevad CS50 raamatukogu 403 00:16:17,560 --> 00:16:20,470 seni, et me oleme näinud, on getString, GetInt kõik 404 00:16:20,470 --> 00:16:25,550 need Get funktsioone, ja sõna string, ja mingil 405 00:16:25,550 --> 00:16:26,575 määral, sõna bool. 406 00:16:26,575 --> 00:16:29,180 Aga me tease et peale kui me sukelduda CS50 407 00:16:29,180 --> 00:16:30,580 seade ise. 408 00:16:30,580 --> 00:16:32,820 >> Nii et jah, veel üks küsimus siin. 409 00:16:32,820 --> 00:16:36,636 Sihtrühm: Kui te ütlesite teha ja siis lollakas, kuidas 410 00:16:36,636 --> 00:16:39,980 arvuti tean [kuuldamatu]? 411 00:16:39,980 --> 00:16:40,520 David J. Malan: Hea küsimus. 412 00:16:40,520 --> 00:16:43,830 Nii et kui sa lihtsalt kulgema teha buggy1 või teha buggy2, kuidas 413 00:16:43,830 --> 00:16:45,220 ei tee tead? 414 00:16:45,220 --> 00:16:49,900 Seega vaikimisi kui tipite teha buggy1 teha välimuse eest 415 00:16:49,900 --> 00:16:52,330 fail nimega buggy1.c. 416 00:16:52,330 --> 00:16:55,570 Ja siis ta täidab korral rõkkama käske, 417 00:16:55,570 --> 00:17:00,380 seeläbi ülekaaluka vaikimisi väljund fail nimega a.out. 418 00:17:00,380 --> 00:17:03,670 Tegelikult, kui me vaatame, mida teha, mida - 419 00:17:03,670 --> 00:17:04,839 olgem sulgege see. 420 00:17:04,839 --> 00:17:09,530 Kui me vaatame, mida teha oli tegelikult seda teha buggy2, 421 00:17:09,530 --> 00:17:10,470 see on juba kursis. 422 00:17:10,470 --> 00:17:13,020 Nii et lubage mul kustutada käsuga rm, 423 00:17:13,020 --> 00:17:14,319 Programmi ma kirjutasin enne. 424 00:17:14,319 --> 00:17:17,319 Kirjutades Y-E-S kinnitada, et ma tahan seda eemaldada. 425 00:17:17,319 --> 00:17:20,480 Kui ma nüüd ei tee, märkate, et selles väga pikas reas, 426 00:17:20,480 --> 00:17:22,980 seal on see viimane asi, mida siin-o buggy2. 427 00:17:22,980 --> 00:17:26,959 Kõik teeme teeb möödub see argument, kui nii võib öelda, et 428 00:17:26,959 --> 00:17:29,665 Rõkkama, nii et ma ei pea seda ise. 429 00:17:29,665 --> 00:17:32,660 >> Olgu, nii kiire paar haldus 430 00:17:32,660 --> 00:17:33,470 teadaandeid. 431 00:17:33,470 --> 00:17:36,940 Nii lõigud, mis ametlikult algas tuleval 432 00:17:36,940 --> 00:17:38,970 Pühapäev, saad alati tahan tuua, kui 433 00:17:38,970 --> 00:17:40,120 teil on üks, sülearvuti. 434 00:17:40,120 --> 00:17:42,570 Kui sul ei ole laptop, ei jõuaks mind 435 00:17:42,570 --> 00:17:43,580 kukutades mind talle. 436 00:17:43,580 --> 00:17:44,810 Ja me nuputada töövoo. 437 00:17:44,810 --> 00:17:47,100 Mis üldiselt leiad punktis on, et nad osa 438 00:17:47,100 --> 00:17:48,770 kontseptuaalne, osa praktilist. 439 00:17:48,770 --> 00:17:52,190 Me konkreetselt kasutada osa küsimusi, osa 440 00:17:52,190 --> 00:17:54,110 nädala probleem komplekt, et kõndida läbi mõned 441 00:17:54,110 --> 00:17:55,820 kontseptuaalne materjali loeng. 442 00:17:55,820 --> 00:17:57,480 Ja ongi kõik praeguse lahendamist. 443 00:17:57,480 --> 00:18:00,010 Ja me ka sukelduda mõned praktiliste tegevuste, mõnikord 444 00:18:00,010 --> 00:18:02,190 millest on vaja esitada, mõnikord 445 00:18:02,190 --> 00:18:02,830 mis mitte. 446 00:18:02,830 --> 00:18:04,630 Näiteks see esimene nädal, nad on mõeldud just nagu 447 00:18:04,630 --> 00:18:05,780 soojenduseks kasutada. 448 00:18:05,780 --> 00:18:07,800 Ja sa leiad, et need probleemid on tõesti just seda. 449 00:18:07,800 --> 00:18:10,220 Nad on mõeldud suhteliselt väike, kuid mitte tingimata 450 00:18:10,220 --> 00:18:13,100 triviaalne programme kirjutada, et ei ole tingimata 451 00:18:13,100 --> 00:18:16,230 põnev ja ise aga on head võimalused 452 00:18:16,230 --> 00:18:19,620 harjutada süntaks, uusi funktsioone, mugavalt 453 00:18:19,620 --> 00:18:21,900 sektsiooni, kus teil on paar oma klassikaaslastega esitada võimalikult 454 00:18:21,900 --> 00:18:22,870 samuti oma TF. 455 00:18:22,870 --> 00:18:26,210 >> Ja mida me teeme aja jooksul on kasutada tööriista nimega CS50 Spaces, 456 00:18:26,210 --> 00:18:28,940 mille asemel lihtsalt kasutades CS50 Appliance, siis saad 457 00:18:28,940 --> 00:18:32,450 asemel minna veebi brauseris, kus sa pead olema võimeline 458 00:18:32,450 --> 00:18:35,610 kirjutada koodi brauseri aknas ajal jagu. 459 00:18:35,610 --> 00:18:38,240 Ja siis, kui valite, oma õpetusega mehe saab siis näidata 460 00:18:38,240 --> 00:18:40,980 mis iganes see on tipite ekraanil oma brauseris 461 00:18:40,980 --> 00:18:43,930 akna üleval klassi ees, kas anonüümselt või 462 00:18:43,930 --> 00:18:47,250 avalikult, nii et ta saab siis kõndida läbi koos 463 00:18:47,250 --> 00:18:50,080 oma klassikaaslastega, mida sa tegid hästi, mida sa ei teinud seda hästi. 464 00:18:50,080 --> 00:18:52,750 Ja jälle, kindel see kõik saab kenasti anonüümseks. 465 00:18:52,750 --> 00:18:54,410 Aga see saab olema tore võimalus palju 466 00:18:54,410 --> 00:18:56,810 interaktiivsust kui midagi loeng võimaldab. 467 00:18:56,810 --> 00:18:58,910 >> Vahepeal me peame neid asju nimetatakse super 468 00:18:58,910 --> 00:19:01,610 lõigud, mis on vabatahtlik, kuid on avatud kõigile 469 00:19:01,610 --> 00:19:04,030 klassi, nii et seda saab teha rohkem kollektiivselt jaoks 470 00:19:04,030 --> 00:19:05,190 probleem seatud. 471 00:19:05,190 --> 00:19:06,010 Siin on ajakava. 472 00:19:06,010 --> 00:19:08,870 See on ka postitati kodulehel cs50.net. 473 00:19:08,870 --> 00:19:10,850 Pange tähele, et seal saad häkker-spetsiifilise 474 00:19:10,850 --> 00:19:12,430 1 homme pärastlõunal. 475 00:19:12,430 --> 00:19:15,460 Ja me filmida üks täna ja homme üks ja postitada need 476 00:19:15,460 --> 00:19:16,720 Interneti 24 tunni jooksul. 477 00:19:16,720 --> 00:19:19,370 Nii et kui te ei saa teha ühtegi neist korda, ärge muretsege. 478 00:19:19,370 --> 00:19:22,720 Ja jälle ajakava on online praegu cs50.net. 479 00:19:22,720 --> 00:19:25,350 >> Seoses sektsioneerimispunktid ise, siis oleks saanud 480 00:19:25,350 --> 00:19:28,520 e juhendades teil minna muidugi kodulehte leida 481 00:19:28,520 --> 00:19:29,610 välja oma osa. 482 00:19:29,610 --> 00:19:32,890 Kui elu on muutunud ja sa pead muutma oma osa, 483 00:19:32,890 --> 00:19:33,560 ei ole probleem. 484 00:19:33,560 --> 00:19:37,900 Mine tagasi sama URL cs50.net/section, ainsuses, 485 00:19:37,900 --> 00:19:40,090 ja saate täitke jms kujul, nii et saate 486 00:19:40,090 --> 00:19:41,260 siis anna meile oma eelistustele. 487 00:19:41,260 --> 00:19:43,360 Ja me jälgida poolt nädala lõpus, et mida suudame 488 00:19:43,360 --> 00:19:44,240 mahutada. 489 00:19:44,240 --> 00:19:49,530 Eelmisel nädalal meelde tuletada, et me pakkusime kasutades CS50 arutada 490 00:19:49,530 --> 00:19:51,370 Muidugi arutelule vahend, loeng. 491 00:19:51,370 --> 00:19:53,680 Nii et meil oli 40 küsimust, mis Paluti ning 492 00:19:53,680 --> 00:19:54,720 vastas ajal loeng. 493 00:19:54,720 --> 00:19:56,280 Nii et see tundus töö hästi, nii et me jätkame 494 00:19:56,280 --> 00:19:57,180 üritab seda teha. 495 00:19:57,180 --> 00:19:59,600 Kui ajal loeng, siis ei ole lihtsalt mugav tõstmine 496 00:19:59,600 --> 00:20:00,780 oma käsi, ei ole probleem. 497 00:20:00,780 --> 00:20:04,640 Mine cs50.net/discuss, postita sinna, ja üks meie õpetamise 498 00:20:04,640 --> 00:20:07,270 stipendiaatide kas vastata elektrooniliselt või tõsta oma 499 00:20:07,270 --> 00:20:10,620 aga teie nimel anonüümselt küsida, sõltuvalt 500 00:20:10,620 --> 00:20:12,470 olemuse kohta küsimus. 501 00:20:12,470 --> 00:20:15,000 Ja nii tagasisidet, üldiselt psets on 502 00:20:15,000 --> 00:20:16,760 tagasi ühe nädala jooksul. 503 00:20:16,760 --> 00:20:19,080 Sest see võtab natuke aega, osad, et saavutada 504 00:20:19,080 --> 00:20:22,430 tasakaalu, esimene pset, 0 ja 1, on natuke 505 00:20:22,430 --> 00:20:24,130 hilineb asjad rahunema. 506 00:20:24,130 --> 00:20:27,130 Aga Hoia, et lähinädalatel. 507 00:20:27,130 --> 00:20:29,750 >> Olgu, las ma panna minu tõsine 508 00:20:29,750 --> 00:20:31,040 hääl hetkeks. 509 00:20:31,040 --> 00:20:32,690 Nii et see on tegelikult huvitav kliima olla 510 00:20:32,690 --> 00:20:35,210 seda arutelu, mida kõik muud asjad 511 00:20:35,210 --> 00:20:37,310 toimub ülikoolilinnakus sellega seotud kohustusi. 512 00:20:37,310 --> 00:20:40,220 Aga CS50 on kindlasti olnud oma ajaloos selle konkreetse 513 00:20:40,220 --> 00:20:43,360 teema, nii palju kui igal aastal, seda muidugi paljude 514 00:20:43,360 --> 00:20:46,910 aastat, Ad-Lauad ligikaudu 3% klassist. 515 00:20:46,910 --> 00:20:51,620 See viimane aasta, 2011, CS50 Ad-minnakse 35 üliõpilast. 516 00:20:51,620 --> 00:20:54,120 See ei ole, ma arvan, sest puudub selgus. 517 00:20:54,120 --> 00:20:56,760 Aru, et kursuse ainekava, seal on leheküljel 518 00:20:56,760 --> 00:20:59,020 avaldus, milles selgitatakse, kus seisab. 519 00:20:59,020 --> 00:21:01,350 Sama avalduse korratakse iga ühe 520 00:21:01,350 --> 00:21:03,070 probleem seab leheküljel üks. 521 00:21:03,070 --> 00:21:05,760 >> Nii et ma mainin seda täna tõesti lihtsalt teha 522 00:21:05,760 --> 00:21:07,030 inimesed arvestavad seda. 523 00:21:07,030 --> 00:21:08,080 Ja me oleme proovinud erinevaid asju. 524 00:21:08,080 --> 00:21:10,630 Ja mida ma arvasin, et me teeks täna on lihtsalt võtta hetk 525 00:21:10,630 --> 00:21:13,830 tegelikult mõningaid varasemate juhtumite et on tulla. 526 00:21:13,830 --> 00:21:16,160 Selle asemel, et hoida neid nagu väike räpane saladus, tegelikult 527 00:21:16,160 --> 00:21:19,170 meelde, mida õpilased on teinud ja kuidas me oleme avastatud 528 00:21:19,170 --> 00:21:21,630 see ja see, mida üldine motivatsioon on 529 00:21:21,630 --> 00:21:23,950 isegi seda vestlust. 530 00:21:23,950 --> 00:21:27,060 Nii et öelda, joon sisuliselt on see - 531 00:21:27,060 --> 00:21:29,200 kohta ainekava, sa oled teretulnud, siis soovitatakse, et 532 00:21:29,200 --> 00:21:30,210 rääkida klassikaaslastega. 533 00:21:30,210 --> 00:21:31,910 Ongi kogu eesmärk võttes need koostööl 534 00:21:31,910 --> 00:21:34,470 kontori tundi Annenberg ja julgustav inimesi 535 00:21:34,470 --> 00:21:35,755 lõplik projekt koos töötada. 536 00:21:35,755 --> 00:21:38,590 Aga tõmmatakse joon, kui on aeg tegelikult kirjutada 537 00:21:38,590 --> 00:21:39,790 oma lõpliku lahenduse. 538 00:21:39,790 --> 00:21:42,590 Rääkides inglise, täiesti korras, kõneldes pseudo kood, 539 00:21:42,590 --> 00:21:43,400 täiesti okei. 540 00:21:43,400 --> 00:21:46,340 Elekter klassivend oma pset, lastes neil vaadata üle 541 00:21:46,340 --> 00:21:48,610 ekraani käed jätkake tippimist, 542 00:21:48,610 --> 00:21:50,110 üle joone samuti. 543 00:21:50,110 --> 00:21:52,250 Ära vaata, et ainekava eelkõige read. 544 00:21:52,250 --> 00:21:55,850 >> Aga lihtsalt, et maalida pilti sellest, kuidas see on kahjuks 545 00:21:55,850 --> 00:21:58,370 Tegelikkuses aru, et seal on veebilehed seal, et 546 00:21:58,370 --> 00:22:01,490 on lahendusi selle klassi ja paljud muud liigid. 547 00:22:01,490 --> 00:22:04,940 Asjaolu, et teil või mõnel 3% teadsid, et see on olemas 548 00:22:04,940 --> 00:22:07,240 tähendab, et me teame, et see on olemas. 549 00:22:07,240 --> 00:22:09,340 Asjaolu, et seal on veebilehed nagu see, kus sa 550 00:22:09,340 --> 00:22:11,540 Tasuda saab keegi tegelikult teha teie probleem seab - see oli 551 00:22:11,540 --> 00:22:13,450 konkreetsest juhtumist, mis tulid eelmisel aastal. 552 00:22:13,450 --> 00:22:15,790 See on kodulehel nimetatakse odesk.com. 553 00:22:15,790 --> 00:22:20,090 Ja Tim oli isiku nimi siin, kes oli postitad 554 00:22:20,090 --> 00:22:24,580 sellel veebilehel ning küsis keegi teha oma pset 7 555 00:22:24,580 --> 00:22:25,570 Sellel konkreetsel juhul. 556 00:22:25,570 --> 00:22:28,350 Noh, odesk.com on väga Google-võimeline, ja oleme ka 557 00:22:28,350 --> 00:22:30,310 väga hea Google'i abil. 558 00:22:30,310 --> 00:22:32,360 Ka siin on saite - ja see on pigem 559 00:22:32,360 --> 00:22:34,234 jõle, ausalt. 560 00:22:34,234 --> 00:22:38,050 [Naer] 561 00:22:38,050 --> 00:22:39,610 David J. Malan: Naljakas asi see sait on, kui 562 00:22:39,610 --> 00:22:41,970 Lugedes About page, nad räägivad oma ettevõtte 563 00:22:41,970 --> 00:22:44,390 kultuur ja kuidas klienditeenindus on nende number üks 564 00:22:44,390 --> 00:22:46,190 prioriteet, veendumaks, et oma ülesandeid saada 565 00:22:46,190 --> 00:22:47,890 välja õigel ajal. 566 00:22:47,890 --> 00:22:50,580 >> Aga täie tõsidusega, jälle see, et nende alade 567 00:22:50,580 --> 00:22:52,910 olemas, mõistame me, liiga, on teadlik 568 00:22:52,910 --> 00:22:53,730 Sellised alad. 569 00:22:53,730 --> 00:22:55,890 Ja teile tunde, mis moodustab see üldiselt 570 00:22:55,890 --> 00:22:58,570 võtab, me üldiselt ei ole suur skandaalide, kus inimesed 571 00:22:58,570 --> 00:23:01,080 teevad koostööd mis tahes liiki massiliselt, vaid pigem 572 00:23:01,080 --> 00:23:04,540 see on nende hilisõhtul hetki nõrkus, kus teil on nii 573 00:23:04,540 --> 00:23:07,550 palju teha, see on 04:00, sa oled kurnatud, ja te 574 00:23:07,550 --> 00:23:09,770 arvan, et ise, noh, las ma lihtsalt heita pilk minu 575 00:23:09,770 --> 00:23:11,770 toakaaslane on või mu sõbra kood vms. 576 00:23:11,770 --> 00:23:14,800 Ja ilminguid see kahjuks kaasata Student 577 00:23:14,800 --> 00:23:17,640 Esitades midagi sellist ja õppuritele B esitamisest 578 00:23:17,640 --> 00:23:20,370 midagi sellist, mis kindlasti, et arvuti 579 00:23:20,370 --> 00:23:23,830 teaduse klassi, on tähelepanuväärselt lihtne arvutiteadlaste 580 00:23:23,830 --> 00:23:25,690 tuvastada tarkvara. 581 00:23:25,690 --> 00:23:28,410 See on veel üks ühine paradigma, kus sa oled omamoodi 582 00:23:28,410 --> 00:23:31,010 töötanud kõrval keegi, äkki rääkima 583 00:23:31,010 --> 00:23:32,360 Inglise, just fine, pseudokoodi. 584 00:23:32,360 --> 00:23:35,080 Aga siis on aeg tegelikult esitada, ja psets 585 00:23:35,080 --> 00:23:37,910 lihtsalt saada vahetatud e-posti teel või Dropbox jms. 586 00:23:37,910 --> 00:23:41,120 Aga püüdes teha seda vähem ilmne, et see on 587 00:23:41,120 --> 00:23:44,830 mis juhtus, siis need ongi esitatud. 588 00:23:44,830 --> 00:23:47,880 Ka see ei kömmähdys hästi kirjutatud tükki 589 00:23:47,880 --> 00:23:50,360 tarkvara nagu meil tegelikult avastada 590 00:23:50,360 --> 00:23:51,280 selliseid asju. 591 00:23:51,280 --> 00:23:53,760 Ja tõepoolest see, mida me teeme, on käivitada tarkvara, mis võrdleb kõiki 592 00:23:53,760 --> 00:23:55,540 Tänavuse esitatu kõik möödunud aastal 593 00:23:55,540 --> 00:23:57,380 esildised, vastu kõike, mida me leida 594 00:23:57,380 --> 00:24:00,060 Internet, vastu iga töö kodulehel seal. 595 00:24:00,060 --> 00:24:01,710 See kõik on väga automatiseeritud. 596 00:24:01,710 --> 00:24:05,665 Ja nii me seda tõesti väga õigluse 97%, kes 597 00:24:05,665 --> 00:24:07,760 tõesti töötavad nende eeslid maha see ja teistes 598 00:24:07,760 --> 00:24:11,530 klasside ja kasutusele kõik selle pingutuse nii et töö 599 00:24:11,530 --> 00:24:13,030 nad lõpuks esitama on nende oma. 600 00:24:13,030 --> 00:24:14,220 Ja ma ei saa minna aegade. 601 00:24:14,220 --> 00:24:16,030 >> Need on vaid käputäis eelmisel aastal juhtudel. 602 00:24:16,030 --> 00:24:19,350 Mõned õpilased esitasid neid faile ühesuguselt 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 Sellisel juhul oli see viktoriin 0 ja eelmisel aastal, kus kaks 605 00:24:26,360 --> 00:24:29,570 õpilased esitasid identselt see lause paljude 606 00:24:29,570 --> 00:24:32,210 teised, "taotluse liik -" dot, dot, dot. 607 00:24:32,210 --> 00:24:34,530 Nii et isegi klassi 600 tegime avastada selle 608 00:24:34,530 --> 00:24:36,310 kohta esitatud viktoriine. 609 00:24:36,310 --> 00:24:39,080 Nii lühike, see - ausalt öeldes, ma vihkan võttes selline 610 00:24:39,080 --> 00:24:41,300 vestlus - kuid see on tõesti läbimõeldud jõupingutusi 611 00:24:41,300 --> 00:24:43,540 Sel aastal püüda alandada, et number. 612 00:24:43,540 --> 00:24:45,650 Sest kuigi me ütleme selliseid asju iga 613 00:24:45,650 --> 00:24:48,100 aastal, ma arvan, et reaalsus olles rääkis, seda paar 614 00:24:48,100 --> 00:24:50,800 sekundit veel kui tavaliselt ja tegelikult lihtsalt juhtides tähelepanu 615 00:24:50,800 --> 00:24:53,600 et see, mida võib tunduda, eh, ei nii suur asi, vähemalt 616 00:24:53,600 --> 00:24:56,390 arvan, et tagasi seda eriti praegu, nii õigluse 617 00:24:56,390 --> 00:25:00,100 ennast ja oma klassikaaslastega siin. 618 00:25:00,100 --> 00:25:02,480 Nii et kui teil kunagi on küsimusi selle kohta, kus liin 619 00:25:02,480 --> 00:25:04,290 on, siis lihtsalt jõuda mind isiklikult. 620 00:25:04,290 --> 00:25:07,190 Aga vastus on alati, täiesti rõhutas 621 00:25:07,190 --> 00:25:09,090 viimasel minutil, sularaha hilja päev. 622 00:25:09,090 --> 00:25:11,080 Või kui see on küsimus, kellel ei ole hilja päeva, 623 00:25:11,080 --> 00:25:12,900 ausalt, kirjuta mulle isiklikult. 624 00:25:12,900 --> 00:25:14,110 Me mőtlen midagi välja. 625 00:25:14,110 --> 00:25:17,480 Palun ärge pange oma aega siin Harvardi ohus. 626 00:25:17,480 --> 00:25:18,570 >> Nüüd ma arvasin, et me peaks Tuju nii et ma 627 00:25:18,570 --> 00:25:20,264 lisatud seda järgmisele slaidile. 628 00:25:20,264 --> 00:25:22,770 [Naer] 629 00:25:22,770 --> 00:25:23,630 David J. Malan: See veebileht oli suurepärane. 630 00:25:23,630 --> 00:25:24,820 Ma tegelikult sain natuke segane. 631 00:25:24,820 --> 00:25:26,330 Seal on see üks. 632 00:25:26,330 --> 00:25:29,590 Ja siis see üks oli hämmastav. 633 00:25:29,590 --> 00:25:35,190 Okei, nii et mõtle, et kassipoeg hilisõhtuni tegemisel 634 00:25:35,190 --> 00:25:36,040 need otsused. 635 00:25:36,040 --> 00:25:40,110 Olgu, tagasi lõbusam ja kergem kraam, nagu 636 00:25:40,110 --> 00:25:40,780 tingimustel. 637 00:25:40,780 --> 00:25:43,900 >> Olgu, me rääkisime põgusalt neid. 638 00:25:43,900 --> 00:25:46,080 See on midagi, mis on ilmselt üsna tuttav 639 00:25:46,080 --> 00:25:47,260 maailma Scratch. 640 00:25:47,260 --> 00:25:49,860 Ja maailma Scratch, meil on see vajadus mõnikord 641 00:25:49,860 --> 00:25:51,110 minna teha kahvlid maantee. 642 00:25:51,110 --> 00:25:54,840 Kas teha seda või teist või see teine ​​asi siin. 643 00:25:54,840 --> 00:25:58,990 Ja kui me tahame teha seda, mida saame kasutada, C nüüd, see kui 644 00:25:58,990 --> 00:26:00,860 veel ehitada. 645 00:26:00,860 --> 00:26:06,420 Ja siis on meil siin Boole'i ​​avaldised. 646 00:26:06,420 --> 00:26:09,260 Näiteks Boole'i ​​avaldiste siin, saame või 647 00:26:09,260 --> 00:26:12,260 need kokku, selles mõttes, et meil on see tingimus või 648 00:26:12,260 --> 00:26:13,200 see tingimus. 649 00:26:13,200 --> 00:26:15,100 Me saame ja need kokku, selles mõttes, et me tahame 650 00:26:15,100 --> 00:26:17,710 kontrollida selle tingimuse Ja see tingimus. 651 00:26:17,710 --> 00:26:22,440 Ja siin on meil lüliti avaldus nüüd, mis ei ole nii 652 00:26:22,440 --> 00:26:26,040 sarnane süntaktiliselt neid erinevaid tingimusi, kuid see 653 00:26:26,040 --> 00:26:30,160 võimaldab meil teha samaväärne kui else if, else if, else 654 00:26:30,160 --> 00:26:34,990 kui, ja nagu lihtsalt loetleda neid juhtumipõhiselt 655 00:26:34,990 --> 00:26:36,670 poolt juhtumipõhiselt. 656 00:26:36,670 --> 00:26:38,370 Nii nägime neid viimast korda. 657 00:26:38,370 --> 00:26:40,430 Ja siis hakkasime puudutades asju nagu silmad. 658 00:26:40,430 --> 00:26:42,070 Me nägime ühte neist hetk tagasi. 659 00:26:42,070 --> 00:26:44,180 Kuid on ka neid teisi silmuspõletamise konstrueerib. 660 00:26:44,180 --> 00:26:46,370 >> Näiteks see siin. 661 00:26:46,370 --> 00:26:50,140 Niisiis, kui (tingimus), seda asja uuesti ja uuesti. 662 00:26:50,140 --> 00:26:53,070 Nii et põhimõtteliselt, mis tundub olevat erinev see 663 00:26:53,070 --> 00:26:55,760 jaoks silmus ja selle ajal ahela siin? 664 00:27:00,810 --> 00:27:05,045 See loop ja see samas silmus. 665 00:27:05,045 --> 00:27:07,840 Jah? 666 00:27:07,840 --> 00:27:08,800 Mis see on? 667 00:27:08,800 --> 00:27:10,050 Sihtrühm: [kuuldamatu]. 668 00:27:14,632 --> 00:27:15,120 David J. Malan: Hea. 669 00:27:15,120 --> 00:27:17,130 Nii et arvestades jaoks silmus seisukorras, seal on selgelt 670 00:27:17,130 --> 00:27:17,940 rohkem süntaks. 671 00:27:17,940 --> 00:27:20,560 Seal on see käivitamise, seal on see uuendus. 672 00:27:20,560 --> 00:27:23,820 Aastal samal ajal loop, seal on lihtsalt see tingimus. 673 00:27:23,820 --> 00:27:26,630 Seega tundub, et see on natuke reldes kehtestatakse versus jaoks 674 00:27:26,630 --> 00:27:28,770 ahel, mis tähendab, et kui me tahame muutujate ja me tahame 675 00:27:28,770 --> 00:27:30,800 on juurdekasvu, me tegelikult on 676 00:27:30,800 --> 00:27:32,500 seda asja endale. 677 00:27:32,500 --> 00:27:34,420 >> Nii et lubage mul minna ja avada gedit. 678 00:27:34,420 --> 00:27:36,320 Lubage mul minna üle seadme. 679 00:27:36,320 --> 00:27:38,110 Ja olgem lihtsalt teha kiire väike näide, et 680 00:27:38,110 --> 00:27:40,550 eristab neist teistest. 681 00:27:40,550 --> 00:27:42,490 Ja tagasi minu arvates siin, ma peaks ütlema ühte asja. 682 00:27:42,490 --> 00:27:44,120 Ma konkreetselt nimetatud nime Tim. 683 00:27:44,120 --> 00:27:47,740 Tim oli tegelikult keegi, et õpilane püüdnud leida seda teha 684 00:27:47,740 --> 00:27:48,680 oma kodutöö jaoks. 685 00:27:48,680 --> 00:27:51,280 Meil ei olnud Tim selles konkreetses punktis. 686 00:27:51,280 --> 00:27:53,690 Nii mõistma, et ma ei avaldata õpilane, ei olnud õpilane. 687 00:27:53,690 --> 00:27:55,720 See oli juhuslik isik Internetis asju 688 00:27:55,720 --> 00:27:57,180 volikirja alusel eelmisel aastal. 689 00:27:57,180 --> 00:27:58,670 Nii leiame, et liiga. 690 00:27:58,670 --> 00:28:00,630 Nii et antud juhul siin, lubage mul minna ja 691 00:28:00,630 --> 00:28:02,810 avada uus fail. 692 00:28:02,810 --> 00:28:04,800 Fail Uus. 693 00:28:04,800 --> 00:28:06,050 See annab mulle kaardi. 694 00:28:06,050 --> 00:28:09,940 Lubage mul minna ja salvestage see loop.c. 695 00:28:09,940 --> 00:28:11,810 Lase mind lahti ja klõpsake nuppu Salvesta. 696 00:28:11,810 --> 00:28:15,340 Ja siis siin, lähme edasi ja hakake 697 00:28:15,340 --> 00:28:16,605 # Include . 698 00:28:19,116 --> 00:28:20,520 Lubage mul suumimiseks 699 00:28:20,520 --> 00:28:23,410 Nüüd teen int main (void). 700 00:28:23,410 --> 00:28:30,020 Nüüd lubage mul minna ja teha jaoks (int i = 0; i < 701 00:28:30,020 --> 00:28:33,480 oh, 10; i + +). 702 00:28:33,480 --> 00:28:36,620 Ja nüüd ma lähen edasi minna ja ei prindi täht, et ma 703 00:28:36,620 --> 00:28:37,890 tegin varem. 704 00:28:37,890 --> 00:28:39,390 Ja siis lõpus selle programmi, me lihtsalt läheb 705 00:28:39,390 --> 00:28:41,130 printida uus liin, just nii, et minu kiire 706 00:28:41,130 --> 00:28:42,470 ei tundu kõik räpane. 707 00:28:42,470 --> 00:28:45,170 return 0. 708 00:28:45,170 --> 00:28:47,610 Tundub süntaktiliselt õige? 709 00:28:47,610 --> 00:28:48,040 Siiani. 710 00:28:48,040 --> 00:28:48,560 Nii et vaatame. 711 00:28:48,560 --> 00:28:51,290 >> Nii et lubage mul suumimiseks lähevad minu terminaliakent. 712 00:28:51,290 --> 00:28:54,570 Ja lubage mul minna ja joosta silmus, sest ma helistasin selle 713 00:28:54,570 --> 00:28:55,690 asi loop.c. 714 00:28:55,690 --> 00:28:56,780 Nii et silmuse. 715 00:28:56,780 --> 00:28:57,840 Tundub, et koostada OK. 716 00:28:57,840 --> 00:29:00,210 Ma jooksen silmus ja nüüd Enter. 717 00:29:00,210 --> 00:29:01,820 Ja tundub, et on trükitud 10 tähte. 718 00:29:01,820 --> 00:29:03,780 Nii et olgem lihtsalt teisendada see samas loop ja vaata, mida 719 00:29:03,780 --> 00:29:05,220 laadi küsimused me komistada. 720 00:29:05,220 --> 00:29:11,290 Nii et selle asemel see, lase mul minna siia ja ütle, kui ma ei 721 00:29:11,290 --> 00:29:12,760 vähem kui 10 - 722 00:29:12,760 --> 00:29:14,910 lubage mul vabaneda jaoks silmus. 723 00:29:14,910 --> 00:29:17,170 OK, nii et meil on paar probleemi juba. 724 00:29:17,170 --> 00:29:21,110 Nii tingimus on sama, aga ma ilmselt puudub 725 00:29:21,110 --> 00:29:21,680 ettekanne. 726 00:29:21,680 --> 00:29:23,840 Ma olen kadunud juurdekasvu. 727 00:29:23,840 --> 00:29:28,020 Mida peaks kompilaator tõenäoliselt ütle mulle, kui ma üritan 728 00:29:28,020 --> 00:29:29,170 koostada selle programmiga? 729 00:29:29,170 --> 00:29:29,666 Jah? 730 00:29:29,666 --> 00:29:31,154 Sihtrühm: [kuuldamatu]. 731 00:29:31,154 --> 00:29:31,650 >> David J. Malan: Hea. 732 00:29:31,650 --> 00:29:34,180 Nii see läheb öelda midagi deklareerimata - selles 733 00:29:34,180 --> 00:29:35,280 juhul muutuja i. 734 00:29:35,280 --> 00:29:37,980 Ja tõepoolest, kasutage deklareerimata tunnus i. 735 00:29:37,980 --> 00:29:40,960 Ja nii see on erinevalt keeltes nagu PHP ja 736 00:29:40,960 --> 00:29:43,120 Python ja Ruby, kellega mõned võite olla tuttav, 737 00:29:43,120 --> 00:29:44,820 kus saab lihtsalt selline algust kasutades muutujaid 738 00:29:44,820 --> 00:29:47,420 tahes-tahtmata ja ei pea muretsema neist teatamata 739 00:29:47,420 --> 00:29:48,560 selgesõnaliselt alati. 740 00:29:48,560 --> 00:29:51,770 C ja keeltes nagu Java ja C + +, peate olema 741 00:29:51,770 --> 00:29:53,020 super selge. 742 00:29:53,020 --> 00:29:55,760 Ja kui sa tahad muutuja nimega i, sa pead mulle ütlema 743 00:29:55,760 --> 00:29:57,360 millist muutuja on. 744 00:29:57,360 --> 00:29:59,360 Nii et me lähed on määrata see järgmiselt. 745 00:29:59,360 --> 00:30:05,510 Ma lähen minema siit-tüüpi int i, mistõttu 746 00:30:05,510 --> 00:30:07,860 Olen deklareeritud muutuja nimega i. 747 00:30:07,860 --> 00:30:09,180 Nüüd olen vahele jäänud üks samm. 748 00:30:09,180 --> 00:30:11,340 Olen ilmselt ei ole vormindatud, kuid vaatame, kas see on 749 00:30:11,340 --> 00:30:13,650 vähemalt marke rõkkama peatus kaevates. 750 00:30:13,650 --> 00:30:15,770 Nii et lubage mul uusversioon seda programmi. 751 00:30:15,770 --> 00:30:16,770 >> Hea küll, nüüd on see lihtsalt kaevates 752 00:30:16,770 --> 00:30:17,870 teisel põhjusel. 753 00:30:17,870 --> 00:30:21,130 "Muutuja" i "on uninitialized kui kasutada siin." Olgu, nii 754 00:30:21,130 --> 00:30:22,340 see on päris selge. 755 00:30:22,340 --> 00:30:25,510 Käivitub tähendab lihtsalt, millega see võrdne väärtus. 756 00:30:25,510 --> 00:30:30,820 Ja me oleme seda teinud, seega lubage mul proovida võrdub 0. 757 00:30:30,820 --> 00:30:35,030 Nüüd proovime seda uuesti ja uuesti käivitada rõkkama. 758 00:30:35,030 --> 00:30:36,140 Koostanud seekord. 759 00:30:36,140 --> 00:30:37,210 Ja ma olen umbes käivitada. 760 00:30:37,210 --> 00:30:43,120 Aga suur vana lõputu silmuse, sest ma olen teinud 761 00:30:43,120 --> 00:30:45,530 käivitamise, ma olen teinud seisukorras, kuid ma pole kunagi teinud 762 00:30:45,530 --> 00:30:47,030 mingit juurdekasvu. 763 00:30:47,030 --> 00:30:48,780 Niisiis, kuidas ma saan teha juurdekasvu? 764 00:30:48,780 --> 00:30:51,170 Noh, samas silmus, tundub, nagu ma lähen on 765 00:30:51,170 --> 00:30:54,180 seda teha sees silmus, sest palju nagu varem 766 00:30:54,180 --> 00:30:56,570 nädala näiteid teed kurvilised konstruktsioonidest, jms 767 00:30:56,570 --> 00:30:59,040 sokid ja ise loendada, pidime tegema 768 00:30:59,040 --> 00:31:01,550 midagi päris lõpus, meeldib minna tagasi järgmise rea. 769 00:31:01,550 --> 00:31:05,040 Aga kui ma edasi minna ja seda teha i + + siin? 770 00:31:05,040 --> 00:31:06,030 Ärme isegi kompileerida seda. 771 00:31:06,030 --> 00:31:06,890 Püüa mind juba. 772 00:31:06,890 --> 00:31:09,704 Mis viga siin? 773 00:31:09,704 --> 00:31:10,690 Sihtrühm: [kuuldamatu]. 774 00:31:10,690 --> 00:31:11,770 >> David J. Malan: Nii see kindlasti ei ole int. 775 00:31:11,770 --> 00:31:13,080 See on i. 776 00:31:13,080 --> 00:31:15,110 Ja looksulg, nagu enne, 777 00:31:15,110 --> 00:31:16,800 taandus ei piisa. 778 00:31:16,800 --> 00:31:18,410 Nii et nüüd ma olen seda ehitada. 779 00:31:18,410 --> 00:31:21,780 Nii et kui ma alla 10, printida täht, 780 00:31:21,780 --> 00:31:23,220 siis juurdekasvu i. 781 00:31:23,220 --> 00:31:25,680 Ja nii samas loop töötab, et niipea, kui olete tabanud 782 00:31:25,680 --> 00:31:29,630 põhja silmus, mis antud juhul paistab rida 10, 783 00:31:29,630 --> 00:31:32,880 see saab minna tagasi rida 6, misjärel 784 00:31:32,880 --> 00:31:34,400 tingimus kontrollitakse uuesti. 785 00:31:34,400 --> 00:31:37,500 Ja kui ma veel vähem kui 10, siis me teeme read 8 ja 786 00:31:37,500 --> 00:31:41,250 siis 9, siis me hit 10, ja minna tagasi 6, uuesti ja 787 00:31:41,250 --> 00:31:45,580 uuesti ja uuesti ja uuesti, nii kaua kui ma alla 10. 788 00:31:45,580 --> 00:31:47,860 Nii et olgem uuesti käivitada teha siin. 789 00:31:47,860 --> 00:31:48,940 >> Okei, oleme koostanud okei. 790 00:31:48,940 --> 00:31:50,300 Las ma uue ringi silmus. 791 00:31:50,300 --> 00:31:52,620 Ja nüüd ta tegelikult tundub töötavat. 792 00:31:52,620 --> 00:31:55,100 Nii plussid ja miinused siin? 793 00:31:55,100 --> 00:31:58,910 Noh, siiani seal tegelikult ei kogu PVO - 794 00:31:58,910 --> 00:31:59,420 nii armas. 795 00:31:59,420 --> 00:32:01,870 Olgu, see oli - ah, see oli õnnetus. 796 00:32:01,870 --> 00:32:05,200 Olgu, lähme tagasi loop. 797 00:32:05,200 --> 00:32:07,530 Nii silmuseid on tore, sest nad on super selge. 798 00:32:07,530 --> 00:32:09,720 Ja kuigi nad natuke kohmakad kirjutada, et see on 799 00:32:09,720 --> 00:32:11,500 väga võimas ja see võimaldab teil teha 800 00:32:11,500 --> 00:32:12,980 mitu asja korraga. 801 00:32:12,980 --> 00:32:16,240 Kuigi silmad ei tundu olevat väga palju raha lihtsalt 802 00:32:16,240 --> 00:32:18,500 veel, sest see tundub me lihtsalt peame tegema rohkem tööd. 803 00:32:18,500 --> 00:32:20,670 Meil on panna initsialiseerimise siin, 804 00:32:20,670 --> 00:32:23,480 uuendada siia alla, ja me peame meeles pidama, et kõike seda teha. 805 00:32:23,480 --> 00:32:26,260 Nii et me näeme kord, kui silmuseid tegelikult laenata 806 00:32:26,260 --> 00:32:29,380 end lihtsalt erinevates kontekstides, erinevate andmete 807 00:32:29,380 --> 00:32:33,900 struktuure nagu nimekirjad ja hash tabeleid, asjad jõuame 808 00:32:33,900 --> 00:32:34,970 keskel semester. 809 00:32:34,970 --> 00:32:37,900 Aga nüüd teame, et seal on see kolmas tüüp tuntud tee- 810 00:32:37,900 --> 00:32:38,480 samas silmus. 811 00:32:38,480 --> 00:32:39,540 Ja me oleme näinud seda lühidalt. 812 00:32:39,540 --> 00:32:41,830 Ja see võib olla super abivalmis pset 1. 813 00:32:41,830 --> 00:32:45,570 Iga kord, kui tahad midagi teha ja siis vaadata, kas 814 00:32:45,570 --> 00:32:48,940 kasutaja tegid, ja kui nad seda ei teinud, seda uuesti teha, do- 815 00:32:48,940 --> 00:32:51,460 samas silmus on sobiv selline loogika. 816 00:32:51,460 --> 00:32:55,640 Sest nagu tellimise ülalt siin ütleb, 817 00:32:55,640 --> 00:32:57,750 ei sõnalt tähendab seda tegema. 818 00:32:57,750 --> 00:32:59,830 Ja seda ikka ja jälle, milline võiks olla? 819 00:32:59,830 --> 00:33:03,000 Ehk see tähendab, kutsudes GetInt või getString ja seejärel 820 00:33:03,000 --> 00:33:05,830 kontrollimise väärtus GetInt või getString ja siis karjuma 821 00:33:05,830 --> 00:33:08,260 kell kasutajat, kui nad ei ole teinud koostööd, nõudes neilt 822 00:33:08,260 --> 00:33:10,100 uuesti ja uuesti ja uuesti. 823 00:33:10,100 --> 00:33:11,730 Kui sa tahad midagi teha üks kord, 824 00:33:11,730 --> 00:33:13,210 siis vaadata mõned seisukorras. 825 00:33:13,210 --> 00:33:14,110 >> Nii et proovime seda. 826 00:33:14,110 --> 00:33:17,130 Lubage mul tegelikult seda muuta nüüd do-kui ahela. 827 00:33:17,130 --> 00:33:18,830 Ja ma lähen edasi minna ja teha järgmist. 828 00:33:18,830 --> 00:33:21,830 Nii et tehke järgmist. 829 00:33:21,830 --> 00:33:26,870 Teeme int i = GetInt (), kuid olgem kõigepealt öelda kasutaja 830 00:33:26,870 --> 00:33:27,410 mida teha. 831 00:33:27,410 --> 00:33:29,050 Nii et natuke erinev seekord. 832 00:33:29,050 --> 00:33:31,270 "Anna mulle int". 833 00:33:31,270 --> 00:33:32,910 Nii et ma kasutan printf selle eest. 834 00:33:32,910 --> 00:33:35,740 Ja nüüd ma lähen siia alla, ja ma teen seda 835 00:33:35,740 --> 00:33:41,520 kuigi ma ei oletame, et on suurem kui - 836 00:33:41,520 --> 00:33:47,540 Vaatame, i, oletame, väiksem kui 0, või ma ei 837 00:33:47,540 --> 00:33:48,730 suurem kui 10. 838 00:33:48,730 --> 00:33:51,810 Teisisõnu, ma tahan number vahemikus 1 kuni 9, ainult 839 00:33:51,810 --> 00:33:52,720 omavoliliselt. 840 00:33:52,720 --> 00:33:55,290 Nii et ma kasutan kombineeritud Boole'i ​​avaldis siin 841 00:33:55,290 --> 00:33:59,930 veenduge, et mul on väiksem kui 0 või suurem kui 10, milles 842 00:33:59,930 --> 00:34:02,530 juhul teen seda silmus siin jälle. 843 00:34:02,530 --> 00:34:04,400 Nii et taas, seda teha - 844 00:34:04,400 --> 00:34:08,480 kuigi ma on väiksem kui 0 või I on suurem kui 10. 845 00:34:08,480 --> 00:34:11,440 >> Nüüd lähme edasi ja tee seda kohe, kui oleme seda teinud. 846 00:34:11,440 --> 00:34:13,270 Teeme lihtsalt teha kiire meelerahu kontrolli. 847 00:34:13,270 --> 00:34:18,929 printf ("Aitäh, i% d", i). 848 00:34:18,929 --> 00:34:21,350 Nii et see lihtne programm küsib kasutajalt int, 849 00:34:21,350 --> 00:34:24,000 tagab see jooksul mõned vahemikus 1 kuni 9 kaasav, 850 00:34:24,000 --> 00:34:26,280 ja siis tänu kasutaja, meenutades neile, mida nad lihtsalt 851 00:34:26,280 --> 00:34:27,940 tipitud, just nagu natuke meelerahu kontrolli. 852 00:34:27,940 --> 00:34:30,659 Aga vaatame, kas see toimib nagu ette nähtud. 853 00:34:30,659 --> 00:34:34,533 Lubage mul minna pea alla ja uuesti käivitada teha silmus. 854 00:34:34,533 --> 00:34:35,350 Hmm. 855 00:34:35,350 --> 00:34:38,600 "Kasuta deklareerimata tunnus" i "". See on imelik. 856 00:34:38,600 --> 00:34:41,509 Ma arvasin, et me lahendada seda. 857 00:34:45,489 --> 00:34:47,560 Sama sümptom, kuid erineva koodiga. 858 00:34:47,560 --> 00:34:47,899 Jah? 859 00:34:47,899 --> 00:34:50,191 Sihtrühm: [kuuldamatu] sees kaks, peame 860 00:34:50,191 --> 00:34:52,639 [Kuuldamatu]. 861 00:34:52,639 --> 00:34:53,260 >> David J. Malan: Täpselt. 862 00:34:53,260 --> 00:34:55,989 Nii see tegelikult viib meid teemat tuntakse ulatus. 863 00:34:55,989 --> 00:34:59,350 Selgub, et C, uuesti, see tõesti võtab siis sõna otseses mõttes. 864 00:34:59,350 --> 00:35:02,970 Ja kui sa midagi sellist, kus sa deklareerima int 865 00:35:02,970 --> 00:35:06,120 ja siis määrata see mingi väärtus, kuid sa seda sees 866 00:35:06,120 --> 00:35:09,840 paari looksulg, mida C teeb, on see eeldab, et sa 867 00:35:09,840 --> 00:35:14,800 tahan ainult need 32 bitti tuntakse i olemasolu jooksul 868 00:35:14,800 --> 00:35:18,200 kontekstis need looksulg kontekstis ridade 869 00:35:18,200 --> 00:35:22,420 6 kuni 9. Nii et ma ei ole deklareeritud, ja see on määratud 870 00:35:22,420 --> 00:35:26,530 väärtus vastavalt 8, kuid niipea, kui sa väljas 871 00:35:26,530 --> 00:35:30,270 rida 9 allpool lokkis traksidega, ma ei ole enam 872 00:35:30,270 --> 00:35:31,910 reguleerimisala, nii rääkida. 873 00:35:31,910 --> 00:35:35,030 S-C-O-P-E. See ei ole enam õiges kontekstis. 874 00:35:35,030 --> 00:35:37,940 Nii et nüüd ei ole ma, nii et see on nagu me ei olnud isegi 875 00:35:37,940 --> 00:35:38,770 deklareeritud seda üldse. 876 00:35:38,770 --> 00:35:41,520 >> Mis siis fix siis midagi sellist, kui 877 00:35:41,520 --> 00:35:44,300 Põhjuseks on, et i on kuulutatud jooksul looksulg, mis 878 00:35:44,300 --> 00:35:45,120 on ilmselt halb? 879 00:35:45,120 --> 00:35:45,410 Siin? 880 00:35:45,410 --> 00:35:46,820 Sihtrühm: [kuuldamatu]. 881 00:35:46,820 --> 00:35:47,150 David J. Malan: Jah. 882 00:35:47,150 --> 00:35:48,710 Nii saame initsialiseerida ta väljaspool. 883 00:35:48,710 --> 00:35:53,530 Nii et lubage mul minna ja kustutada deklaratsiooni osad, mille 884 00:35:53,530 --> 00:35:55,820 Ma täpsustada, millist tüüpi ja las ma teen seda siin üleval. 885 00:35:55,820 --> 00:36:00,220 Nii et rida 5, siis nüüd ütleb: "Anna mulle int." Kõne see i. 886 00:36:00,220 --> 00:36:03,400 Teate reale 9, ma ei taha seda teha, sest ma 887 00:36:03,400 --> 00:36:04,830 juba 32 bitti. 888 00:36:04,830 --> 00:36:06,140 Ma ei taha küsida arvuti 889 00:36:06,140 --> 00:36:07,630 erinev 32 bitti. 890 00:36:07,630 --> 00:36:09,850 Ma tahan kasutada neid samu 32 bitti. 891 00:36:09,850 --> 00:36:13,190 Ja nüüd, sest mul on välja kuulutatud rida 5, see on ikka legit 892 00:36:13,190 --> 00:36:16,550 seda kasutada vastavalt 11 ja rida 12. 893 00:36:16,550 --> 00:36:19,310 >> Nii et lubage mul proovida kompileeri see ja vaata 894 00:36:19,310 --> 00:36:20,490 kui rõkkama peatub karjuma. 895 00:36:20,490 --> 00:36:22,380 teha silmus. 896 00:36:22,380 --> 00:36:25,470 Nii et nüüd on "kaudne deklaratsiooni funktsioon 897 00:36:25,470 --> 00:36:29,880 "GetInt" on kehtetu C99. "Mis see on? 898 00:36:29,880 --> 00:36:30,400 Jah? 899 00:36:30,400 --> 00:36:32,330 Sihtrühm: [kuuldamatu]. 900 00:36:32,330 --> 00:36:32,690 David J. Malan: Jah. 901 00:36:32,690 --> 00:36:35,520 Nüüd, et ma olen tegelikult kasutades GetInt, see ei ole midagi 902 00:36:35,520 --> 00:36:38,190 et lihtsalt kaasas C. See pärineb CS50. 903 00:36:38,190 --> 00:36:39,890 Nii et me vajame seda siin. 904 00:36:39,890 --> 00:36:41,450 Ja lubage mul tagasi minna kiiresti alla 905 00:36:41,450 --> 00:36:43,500 siin ja uuesti käivitada teha. 906 00:36:43,500 --> 00:36:44,160 Okei, lõpuks. 907 00:36:44,160 --> 00:36:46,270 Nüüd oleme otsustanud, et ja muud viga. 908 00:36:46,270 --> 00:36:48,930 Lubage mul nüüd jooksma silmuse ja näha, mis juhtub. 909 00:36:48,930 --> 00:36:51,740 "Anna mulle int." Ma annan selle 11. 910 00:36:51,740 --> 00:36:53,100 Ma annan selle -1. 911 00:36:53,100 --> 00:36:54,470 Ma annan selle suva. 912 00:36:54,470 --> 00:36:56,080 Ma annan talle 5. 913 00:36:56,080 --> 00:36:57,450 Ja nüüd see tõepoolest toimib. 914 00:36:57,450 --> 00:36:59,410 Aga kiiret muutunud põhjus siin. 915 00:36:59,410 --> 00:37:02,800 Miks ta öelda uuesti üks neist korda, kuid anna mulle 916 00:37:02,800 --> 00:37:03,920 int teised kolm korda? 917 00:37:03,920 --> 00:37:05,500 Miks see käitumine erinev? 918 00:37:05,500 --> 00:37:06,980 Sihtrühm: andsin selle stringi. 919 00:37:06,980 --> 00:37:07,830 David J. Malan: Vabandust? 920 00:37:07,830 --> 00:37:08,570 Sihtrühm: Sa andsid selle stringi. 921 00:37:08,570 --> 00:37:08,990 David J. Malan: Jah. 922 00:37:08,990 --> 00:37:11,450 Nii et me andsime ta stringi see kolmas katse, 923 00:37:11,450 --> 00:37:12,490 kui ma kirjutada suva. 924 00:37:12,490 --> 00:37:13,200 Foo on string. 925 00:37:13,200 --> 00:37:14,340 See on ilmselt mitte int. 926 00:37:14,340 --> 00:37:17,500 Ja nii, et CS50 on rakendanud GetInt on see, et me 927 00:37:17,500 --> 00:37:20,330 ei vaadata, kas midagi on väiksem kui 0 või suurem kui 10 928 00:37:20,330 --> 00:37:22,260 Teile, sest kuidas me teame ette, millist 929 00:37:22,260 --> 00:37:23,130 int sa tahad? 930 00:37:23,130 --> 00:37:25,880 Aga me saame minimaalselt kontrollida sind, kasutaja vähemalt 931 00:37:25,880 --> 00:37:26,730 kirjuta täisarv? 932 00:37:26,730 --> 00:37:30,500 Ja kui nad seda ei teinud, me kisa kasutaja kirjutades "retry" kohta 933 00:37:30,500 --> 00:37:31,440 ekraan. 934 00:37:31,440 --> 00:37:34,210 >> Nii et nüüd on meil programm, mis on silmuspõletamise. Okei. 935 00:37:34,210 --> 00:37:37,070 Nüüd, kus neist on omamoodi parem ehitada? 936 00:37:37,070 --> 00:37:39,060 Nii et see on koht, kus asjad hakkavad natuke räpane, 937 00:37:39,060 --> 00:37:42,360 Asjaolu, et teil on meeles pidada kuulutada muutuja siia 938 00:37:42,360 --> 00:37:44,630 kui te soovite seda kasutada sees mõned 939 00:37:44,630 --> 00:37:46,460 looksulg ja väljaspool. 940 00:37:46,460 --> 00:37:48,490 Aga isegi kui see tundub veidi segasena esimesel 941 00:37:48,490 --> 00:37:50,750 lühidalt, lihtsalt uuesti, mäletad lihtne loogika. 942 00:37:50,750 --> 00:37:54,630 Selleks, et kasutada midagi C, kas see on funktsioon või 943 00:37:54,630 --> 00:37:57,680 see muutuja, peate lisama juhul, kui see on funktsioon 944 00:37:57,680 --> 00:37:59,770 mõnes raamatukogus, või peate kuulutada see. 945 00:37:59,770 --> 00:38:02,405 Aga nüüd sa pead olema ekstra tähelepanelik, et 946 00:38:02,405 --> 00:38:04,940 sa tunnistades selle õiges ulatuses. 947 00:38:04,940 --> 00:38:08,150 Sa ei lase seda liiga tihedalt sees sulgudes. 948 00:38:08,150 --> 00:38:09,410 >> Nii et lubage mul tegelikult tagasi pöörata. 949 00:38:09,410 --> 00:38:12,660 Kui me läheme tagasi näiteks varasemate, ja ma lähen 950 00:38:12,660 --> 00:38:19,245 tagasi võtta int, int i = 0; i <10; i + +, ja ma 951 00:38:19,245 --> 00:38:26,370 teha printf staaridega, nagu see ja seejärel lähedal paren, ja nüüd 952 00:38:26,370 --> 00:38:30,410 printf i on nüüd - 953 00:38:30,410 --> 00:38:33,500 vastavalt sama loogika, mis juhtub, kui ma püüan 954 00:38:33,500 --> 00:38:35,500 koostada selle programmiga? 955 00:38:35,500 --> 00:38:36,790 Sihtrühm: Vigane tunnus. 956 00:38:36,790 --> 00:38:38,560 David J. Malan: Nii see on teine ​​vigane tunnus, 957 00:38:38,560 --> 00:38:39,470 deklareerimata tunnus. 958 00:38:39,470 --> 00:38:41,810 Nüüd põhjus on natuke teistmoodi. 959 00:38:41,810 --> 00:38:44,370 Seal ilmselt ei looksulg siin, kuid samas 960 00:38:44,370 --> 00:38:46,790 idee, sama lugu ulatus kehtib. 961 00:38:46,790 --> 00:38:50,340 Kui teil on deklareerinud muutuja nagu ma sees 962 00:38:50,340 --> 00:38:53,960 jaoks silmus, isegi kui sa ei ole selgesõnaliselt kirjutatud lokkis 963 00:38:53,960 --> 00:38:56,980 traksid, mõtle neile vaimselt kui ikka on seal, kus 964 00:38:56,980 --> 00:39:00,310 juhul i kehtib ainult seestpoolt jaoks silmus. 965 00:39:00,310 --> 00:39:03,080 See ei kehti, kui sa saad järgmisele reale, mis 966 00:39:03,080 --> 00:39:05,090 Sel juhul on nüüd 10. 967 00:39:05,090 --> 00:39:09,060 Nii lihtsalt mõned küsimused ulatuse jms. 968 00:39:09,060 --> 00:39:12,620 Olgu, mingeid küsimusi? 969 00:39:12,620 --> 00:39:15,310 >> Olgu, see on selline triviaalne väike programm, 970 00:39:15,310 --> 00:39:17,450 trüki lihtsalt vähe tähti. 971 00:39:17,450 --> 00:39:20,400 Aga vaatame, kas sa mäletad seda laulu siin. 972 00:39:20,400 --> 00:39:22,530 See on uskumatult tüütu laul lapsed oleks laulda 973 00:39:22,530 --> 00:39:23,550 koolibuss jms. 974 00:39:23,550 --> 00:39:25,990 Aga mis on tore see on, et see on tema tsüklilisuse 975 00:39:25,990 --> 00:39:27,910 kusjuures see "99 pudelit õlut seinal, 976 00:39:27,910 --> 00:39:28,520 99 pudelit õlut. 977 00:39:28,520 --> 00:39:31,030 Võtke üks maha, andke seda ümber, 98 pudelit õlut 978 00:39:31,030 --> 00:39:34,330 seina. "Ja siis laulu kordab 97, siis 96, siis 979 00:39:34,330 --> 00:39:38,040 95, siis 94, kõik tee alla 0, kui te tegelikult sain selle 980 00:39:38,040 --> 00:39:38,920 kaugele bussi. 981 00:39:38,920 --> 00:39:41,960 Nii et see on kena programm sorteerida ning rakendada, sest minu 982 00:39:41,960 --> 00:39:43,650 Jumal, kui sa võiksid lihtsalt rakendada seda vähe 983 00:39:43,650 --> 00:39:46,660 rida koodi, siis võiks sülitama kogu lyrics sellele 984 00:39:46,660 --> 00:39:48,240 Laulu üsna kiiresti. 985 00:39:48,240 --> 00:39:50,420 Aga mööda teed, saame hakata nüüd tease peale mõned 986 00:39:50,420 --> 00:39:52,460 Nende põhiline silmuspõletamise konstrueerib ja nüüd ka 987 00:39:52,460 --> 00:39:55,830 tutvustada funktsioone, mis me kirjutame ise tagasi väärtused 988 00:39:55,830 --> 00:39:57,020 et võtame ringi. 989 00:39:57,020 --> 00:39:58,910 Aga kõigepealt, miks me ei võiks minna edasi ja võtta meie viieminutiline 990 00:39:58,910 --> 00:39:59,320 murda siin? 991 00:39:59,320 --> 00:40:01,480 Ja kui me tagasi tuleme, siis me laulame seda laulu. 992 00:40:05,680 --> 00:40:08,760 >> Olgu, nii et me oleme tagasi. 993 00:40:08,760 --> 00:40:11,850 Ja kui ma ütlen me nüüd laulda seda laulu, ma mõtlen 994 00:40:11,850 --> 00:40:13,250 programmiliselt, mitte suuliselt. 995 00:40:13,250 --> 00:40:19,370 Nii et siin on meil beer1.c, mis on üks rakendamise 996 00:40:19,370 --> 00:40:20,580 eriti laulu. 997 00:40:20,580 --> 00:40:23,110 Ja et asi selge oleks, neile võõras mida 998 00:40:23,110 --> 00:40:24,460 see asi välja näeb, andke minna 999 00:40:24,460 --> 00:40:27,070 ja teha beer1, Enter. 1000 00:40:27,070 --> 00:40:30,400 Nüüd lubage mul joosta beer1, ja mida me näeme - kui palju pudeleid 1001 00:40:30,400 --> 00:40:31,140 õlle on veel? 1002 00:40:31,140 --> 00:40:33,240 Ma kirjuta 99, nagu laul ütleb. 1003 00:40:33,240 --> 00:40:34,040 Enter. 1004 00:40:34,040 --> 00:40:35,650 Ja nüüd, kui me kerida - 1005 00:40:35,650 --> 00:40:38,280 Vabandust - kui me kerida kõik see, näeme, et 1006 00:40:38,280 --> 00:40:41,350 see oli tõesti laulda kogu laulu. 1007 00:40:44,050 --> 00:40:44,540 Oota üks hetk. 1008 00:40:44,540 --> 00:40:46,240 Minu kerimisriba on natuke sassis. 1009 00:40:46,240 --> 00:40:47,940 Olgem kasutada suuremas aknas. 1010 00:40:47,940 --> 00:40:53,500 Nii beer1, 99, seal läheme. 1011 00:40:53,500 --> 00:40:56,420 Nii et siin on meil kogu laulu lauldakse palju kiiremini 1012 00:40:56,420 --> 00:40:58,450 arvuti kui seda oleks võinud meie poolt. 1013 00:40:58,450 --> 00:41:00,340 Nii märkate, aga tsüklilisusest siin. 1014 00:41:00,340 --> 00:41:03,380 Ta ütleb 99, siis 99, siis "võta üks alla, andke seda 1015 00:41:03,380 --> 00:41:04,740 ümber ", siis 98. 1016 00:41:04,740 --> 00:41:06,640 Ja nüüd see kordub ikka ja jälle. 1017 00:41:06,640 --> 00:41:08,840 >> Nii et see on tegelikult suurepärane võimalus mingi 1018 00:41:08,840 --> 00:41:10,400 silmuspõletamise ehitada. 1019 00:41:10,400 --> 00:41:12,950 Pange tähele, et ma olen selline lõikamine nurgas siin. 1020 00:41:12,950 --> 00:41:15,960 Pange tähele, et ma räägin "98 pudelit õlut seinal, 1021 00:41:15,960 --> 00:41:19,010 97 pudelit õlut seinal, "ja see oli lihtsalt nii 1022 00:41:19,010 --> 00:41:21,640 et kui me ühe pudelit õlut, ma ei pea 1023 00:41:21,640 --> 00:41:23,300 muretsema inglise keele grammatika. 1024 00:41:23,300 --> 00:41:25,790 Aga me saame ka määrata seda natuke, kui 1025 00:41:25,790 --> 00:41:26,910 tingimus, võib-olla. 1026 00:41:26,910 --> 00:41:30,110 Kui see number on ainsuses, edasi minna ja öelda "pudel", 1027 00:41:30,110 --> 00:41:31,840 muidu kui see on mitmuses, öelge "pudelid". 1028 00:41:31,840 --> 00:41:34,150 Aga nüüd, ma olen täiesti lõikamine et nurgas. 1029 00:41:34,150 --> 00:41:35,520 Nii et vaatame, mis meil siin. 1030 00:41:35,520 --> 00:41:37,150 Nii et meil on mõned märkused ülaosas. 1031 00:41:37,150 --> 00:41:39,450 Ma olen ka nende kahe raamatukogud, nagu 1032 00:41:39,450 --> 00:41:41,140 me oleme tavaliselt olnud. 1033 00:41:41,140 --> 00:41:43,610 Ja nüüd las ma kerin alla esimesele 1034 00:41:43,610 --> 00:41:44,990 tegelik rida koodi. 1035 00:41:44,990 --> 00:41:47,020 Rida 17 avalöögi peamine. 1036 00:41:47,020 --> 00:41:50,610 Rida 21 ja 20 on mitu pudelit õlut on veel? 1037 00:41:50,610 --> 00:41:52,060 Ja siis ma kutsun GetInt. 1038 00:41:52,060 --> 00:41:53,800 Ja nüüd on mul natuke meelerahu kontrolli. 1039 00:41:53,800 --> 00:41:57,030 >> Nii et see on konventsioon, mis me nüüd hakata vastu kuni 1040 00:41:57,030 --> 00:41:59,620 rangemalt kontrollida kasutaja sisend. 1041 00:41:59,620 --> 00:42:01,710 Mõnikord sa lihtsalt ei taha kallutada neid uuesti 1042 00:42:01,710 --> 00:42:02,630 ja uuesti ja uuesti. 1043 00:42:02,630 --> 00:42:05,620 Kui kasutaja kruvid üles ja ei tee koostööd trahvi. 1044 00:42:05,620 --> 00:42:07,430 Lõpeta ja lihtsalt ei tegele nendega. 1045 00:42:07,430 --> 00:42:08,990 Ja nii see on, mida ma siin teen. 1046 00:42:08,990 --> 00:42:12,520 Kui n on väiksem kui 1, ma lihtsalt läheb peale karjuma kasutaja, 1047 00:42:12,520 --> 00:42:14,330 "Vabandust, et ei ole mõtet." Ja siis ma lähen 1048 00:42:14,330 --> 00:42:16,650 omavoliliselt return 1. 1049 00:42:16,650 --> 00:42:18,550 Nii et jällegi, see on lihtsalt konventsiooni harjuda. 1050 00:42:18,550 --> 00:42:19,850 Praegu võtavad seda usku. 1051 00:42:19,850 --> 00:42:22,700 Aga siiani oleme alati tagasi 0, sest 1052 00:42:22,700 --> 00:42:25,204 me oleme öelnud tagasi 0 tähistab mis? 1053 00:42:25,204 --> 00:42:26,000 Sihtrühm: Success. 1054 00:42:26,000 --> 00:42:27,320 David J. Malan: Edu, see on kõik. 1055 00:42:27,320 --> 00:42:29,740 Nüüd, et me lõpuks hakanud mõtlema 1056 00:42:29,740 --> 00:42:31,330 mitte-edu - 1057 00:42:31,330 --> 00:42:33,760 teisisõnu, nurgas juhtudel viga tingimused - 1058 00:42:33,760 --> 00:42:37,520 nüüd on mul lõputu pakkumise, või vähemalt 4000000000 1059 00:42:37,520 --> 00:42:39,790 võimalik asju, mida saab valesti minna oma programmides. 1060 00:42:39,790 --> 00:42:42,300 Ja ma ei saa alustada määrates neile individuaalset numbrid. 1061 00:42:42,300 --> 00:42:44,340 Nüüd, tavaliselt piisab lihtsalt tagasi 1062 00:42:44,340 --> 00:42:45,730 midagi muud kui 0. 1063 00:42:45,730 --> 00:42:48,040 Nii et me lähme lihtsalt tagasi 1 nüüd. 1064 00:42:48,040 --> 00:42:51,440 Aga naasmise põhjus 1 on, et niipea kui naasete 1065 00:42:51,440 --> 00:42:55,110 1, arva mis juhtub ülejäänud programmi? 1066 00:42:55,110 --> 00:42:55,720 See peatub. 1067 00:42:55,720 --> 00:42:56,560 Nii see on. 1068 00:42:56,560 --> 00:42:59,150 Nii et ma teen sulle tagasi 1 on tõhusalt 1069 00:42:59,150 --> 00:43:02,950 lühistaksid seda programmi täitmist, nii et 1070 00:43:02,950 --> 00:43:06,780 midagi allpool rida 27 jätkab täidesaatva. 1071 00:43:06,780 --> 00:43:09,210 Niipea kui peamine tulu, mis see on. 1072 00:43:09,210 --> 00:43:13,160 >> Olgu, nii et kui kasutaja teeb koostööd ja jõuame reas 30 1073 00:43:13,160 --> 00:43:15,680 sest nad ei tippinud õigustatud number, siin on minu 1074 00:43:15,680 --> 00:43:16,990 rakendamiseks seda laulu. 1075 00:43:16,990 --> 00:43:19,050 Nii et ma esimest korda välja printida reavahetus sümbol, lihtsalt 1076 00:43:19,050 --> 00:43:19,880 esteetika. 1077 00:43:19,880 --> 00:43:21,500 Mul on nüüd jaoks silmus. 1078 00:43:21,500 --> 00:43:22,930 Ja märka ma teen asju natuke 1079 00:43:22,930 --> 00:43:23,880 ja teises suunas. 1080 00:43:23,880 --> 00:43:26,210 Ma ei pea seda alla, ma ei pea tegema + +. 1081 00:43:26,210 --> 00:43:30,660 Võin vaid öelda initsialiseerida muutuja i, määrake see võrdub 1082 00:43:30,660 --> 00:43:35,080 arvu n kasutaja sisestatud, siis tehke järgmist, nii 1083 00:43:35,080 --> 00:43:39,590 Niikaua kui ma on suurem kui 0, siis I - 1084 00:43:39,590 --> 00:43:42,070 Kui olete lõpetanud ühe iteratsiooni see silmus. 1085 00:43:42,070 --> 00:43:44,310 Nii saame loendama kasutades loop samuti. 1086 00:43:44,310 --> 00:43:47,520 Nüüd on see päris palju nädal 1 kraam nüüd, printf. 1087 00:43:47,520 --> 00:43:51,770 Nii print "% d pudelit õlut seinal." Print "% d 1088 00:43:51,770 --> 00:43:54,990 pudelit õlut. "" Võtke üks maha, läheb see ümber. "Prindi 1089 00:43:54,990 --> 00:43:58,880 "% D pudelit õlut seinal." Nii et see on ikka% d, kuid 1090 00:43:58,880 --> 00:44:02,770 märgata, et argument printf muutub. 1091 00:44:02,770 --> 00:44:05,840 Pärast koma, pean ma, sest ma tahan öelda 99. 1092 00:44:05,840 --> 00:44:08,590 Pärast seda koma, pean ma, sest ma tahan öelda 99. 1093 00:44:08,590 --> 00:44:14,030 Pärast seda koma, mul on i - 1, sest ma tahan öelda 98 1094 00:44:14,030 --> 00:44:16,260 Selle esimese iteratsiooni, ja nii edasi. 1095 00:44:16,260 --> 00:44:18,520 Ja nüüd siin all, ma lihtsalt pean mõned loll väike märkus. 1096 00:44:18,520 --> 00:44:22,270 Ja siis joon 42, I return 0 kokkuleppeliselt, mis tähendab, et 1097 00:44:22,270 --> 00:44:23,650 kõik on korras. 1098 00:44:23,650 --> 00:44:24,490 >> Mis siis, kui ma goofed? 1099 00:44:24,490 --> 00:44:26,350 Mis võiks üldine viga siin olema? 1100 00:44:26,350 --> 00:44:29,200 Noh, mis siis, kui ma kogemata ütles hästi, ma tahan loota 1101 00:44:29,200 --> 00:44:31,640 alla 0, ma tahan 0 pudelit õlut seinal? 1102 00:44:31,640 --> 00:44:34,620 Nii et ma ütlen, ma on suurem või võrdne 0-ga. 1103 00:44:34,620 --> 00:44:38,920 Mis saab olema sümptom, et ma nüüd vaatan, kas ma kompileeri 1104 00:44:38,920 --> 00:44:41,173 beer1 ja kasutada seda? 1105 00:44:41,173 --> 00:44:42,120 Sihtrühm: Negatiivne. 1106 00:44:42,120 --> 00:44:43,590 David J. Malan: Jah, see on lähen negatiivne. 1107 00:44:43,590 --> 00:44:45,950 See on off-by-one viga, uskumatult 1108 00:44:45,950 --> 00:44:47,270 Levinud viga teha. 1109 00:44:47,270 --> 00:44:48,960 Olgem tegelikult minna tagasi terminali aken ja tee seda 1110 00:44:48,960 --> 00:44:50,620 siin, et saaksime näha rohkem korraga. 1111 00:44:50,620 --> 00:44:53,280 Sisesta, 99 pudelit õlut. 1112 00:44:53,280 --> 00:44:56,580 Sulge, kuid me läksime kunagi nii veidi liiga kaugele. 1113 00:44:56,580 --> 00:45:00,500 Me laulsime laulu liiga kaugele ette, nii et me nüüd tabanud 1114 00:45:00,500 --> 00:45:01,510 negatiivne arv. 1115 00:45:01,510 --> 00:45:03,680 Nii et see ei ole päris tööd. 1116 00:45:03,680 --> 00:45:06,450 >> Olgu, saame kergesti kindlaks, et minnes tagasi 1117 00:45:06,450 --> 00:45:07,650 viis ta kunagi oli. 1118 00:45:07,650 --> 00:45:10,360 Aga millised on mõned võimalused nüüd 1119 00:45:10,360 --> 00:45:11,190 parandamist? 1120 00:45:11,190 --> 00:45:17,200 Noh, las ma avada beer2.c ja keri siit ja võtta 1121 00:45:17,200 --> 00:45:19,310 vaata seda versiooni. 1122 00:45:19,310 --> 00:45:21,370 Mis on esimene asi, mis hüppab välja ennast nii erinevad 1123 00:45:21,370 --> 00:45:23,715 selles versioonis siin? 1124 00:45:23,715 --> 00:45:24,190 Sihtrühm: [kuuldamatu]. 1125 00:45:24,190 --> 00:45:26,510 David J. Malan: Jah, seda enam ma, sest see tekkis 1126 00:45:26,510 --> 00:45:29,350 sa tead, mida ma olen palunud kasutaja jaoks n, ja siis ma 1127 00:45:29,350 --> 00:45:33,580 millega ma võrdne n, ja siis ma muudan i, aga ma ei ole kunagi 1128 00:45:33,580 --> 00:45:34,590 liigutav n uuesti. 1129 00:45:34,590 --> 00:45:37,390 Nii et mida kuradit mõte oli teile eraldamise teise 32 1130 00:45:37,390 --> 00:45:45,210 bitti kutsus ma lihtsalt nii, et ma võib olla erinev muutuja? 1131 00:45:45,210 --> 00:45:47,960 Nii et sel juhul ma justkui tunnistanud, et tarbetu 1132 00:45:47,960 --> 00:45:49,190 kujunduslik. 1133 00:45:49,190 --> 00:45:52,730 Ja ma nüüd ütlen, kui n on suurem kui 0, siis mine 1134 00:45:52,730 --> 00:45:56,180 käia ja printida sama laulu, mis kulgeb n printf nagu 1135 00:45:56,180 --> 00:46:00,210 Teine argument ja n - 1, teine ​​argument siin. 1136 00:46:00,210 --> 00:46:02,930 Ja siis iga iteratsiooni Selle ahela minna ja lihtsalt 1137 00:46:02,930 --> 00:46:05,080 aland n ise. 1138 00:46:05,080 --> 00:46:06,960 Nüüd, funktsionaalselt, see programm 1139 00:46:06,960 --> 00:46:08,010 saab olema identsed. 1140 00:46:08,010 --> 00:46:10,730 Kui ma sisestada 99, n algab kell 99. 1141 00:46:10,730 --> 00:46:12,890 Ma aland, aland, aland, aland. 1142 00:46:12,890 --> 00:46:15,875 Ma lähen, et saada kõik tee alla "Üks pudel õlut 1143 00:46:15,875 --> 00:46:16,740 seina, üks pudel õlut. 1144 00:46:16,740 --> 00:46:18,020 Võtke üks maha, läheb see ümber. 1145 00:46:18,020 --> 00:46:21,480 0 pudelit õlut seinal. "Lõppu, sest ma tegin 1146 00:46:21,480 --> 00:46:23,200 saada tingimus õige. 1147 00:46:23,200 --> 00:46:24,280 See on suurem kui 0. 1148 00:46:24,280 --> 00:46:26,220 Ma ei tee seda viga. 1149 00:46:26,220 --> 00:46:28,470 >> Nii et mis on parem, versiooni ühe või versioon kaks? 1150 00:46:31,380 --> 00:46:33,480 Nii ma kuulsin kamp murmurings kaks. 1151 00:46:33,480 --> 00:46:34,730 Miks kaks? 1152 00:46:37,210 --> 00:46:38,225 Mis see on? 1153 00:46:38,225 --> 00:46:39,215 Sihtrühm: [kuuldamatu]. 1154 00:46:39,215 --> 00:46:40,070 David J. Malan: Oh, okei. 1155 00:46:40,070 --> 00:46:42,870 Nii see ei lähe alla 0, kuid pea meeles, versioonis üks, 1156 00:46:42,870 --> 00:46:45,870 originaal õige versioon ei lähe alla 0 kas. 1157 00:46:45,870 --> 00:46:48,340 Seega pidage meeles, et see on õige versioon. 1158 00:46:48,340 --> 00:46:51,630 Nii et olgem vähemalt võrrelda kahte õige versioon. 1159 00:46:51,630 --> 00:46:53,300 Mis argument versioon 1160 00:46:53,300 --> 00:46:55,146 kaks on, mmm, parem? 1161 00:46:55,146 --> 00:46:55,642 Jah? 1162 00:46:55,642 --> 00:46:57,630 Sihtrühm: Ta kasutab vähem ruumi. 1163 00:46:57,630 --> 00:46:59,530 David J. Malan: Okei, nii et see kasutab vähem ruumi, eks? 1164 00:46:59,530 --> 00:47:02,900 Arvestades versioon, mida kasutatakse 32 bitti jaoks n, ja siis teine 1165 00:47:02,900 --> 00:47:07,680 32 bitti i. 1166 00:47:07,680 --> 00:47:10,060 Versioon 2 kasutab vaid 32 bitti jaoks n, nii et 1167 00:47:10,060 --> 00:47:11,700 tundub olevat pluss. 1168 00:47:11,700 --> 00:47:12,950 Muud mõtted? 1169 00:47:18,070 --> 00:47:21,520 Kas keegi taha pooldavad üks? 1170 00:47:21,520 --> 00:47:22,070 Jah? 1171 00:47:22,070 --> 00:47:25,240 Sihtrühm: Teil on kasutada pildi koodirida n -. 1172 00:47:25,240 --> 00:47:26,090 >> David J. Malan: Okei, muidugi. 1173 00:47:26,090 --> 00:47:26,960 Nii et see õiglane. 1174 00:47:26,960 --> 00:47:29,040 Nii see lihtsalt, vähemalt mulle - 1175 00:47:29,040 --> 00:47:31,940 Ma mõtlen, see tundub tegelikult veidi Messier, et 1176 00:47:31,940 --> 00:47:35,120 Ma ei saa omamoodi kapseldada kõiki minu loogika ühes 1177 00:47:35,120 --> 00:47:38,030 ilus rida, loop, kui loop saab. 1178 00:47:38,030 --> 00:47:40,240 Siin ma selline pean tack see n - 1179 00:47:40,240 --> 00:47:41,120 aasta lõpus loop, sest 1180 00:47:41,120 --> 00:47:42,550 see on loogiliselt vajalik. 1181 00:47:42,550 --> 00:47:45,190 Aga see selline röövib mind valesti, lihtsalt sellepärast, et see 1182 00:47:45,190 --> 00:47:48,260 Tundub eraldi loogikat siin, kuigi 1183 00:47:48,260 --> 00:47:49,430 jälle, see on vajalik. 1184 00:47:49,430 --> 00:47:50,990 Muud mõtted? 1185 00:47:50,990 --> 00:47:51,490 Jah? 1186 00:47:51,490 --> 00:47:52,740 Sihtrühm: [kuuldamatu]. 1187 00:47:57,990 --> 00:47:58,350 >> David J. Malan: Jah. 1188 00:47:58,350 --> 00:48:00,730 Mis siis, kui sa selle asemel, lõpus laulu, tahtsin 1189 00:48:00,730 --> 00:48:02,950 välja printida jälle laulu nimi? 1190 00:48:02,950 --> 00:48:05,660 Nagu "Täname mängides 99 pudelit õlut", või midagi 1191 00:48:05,660 --> 00:48:06,690 tobe niimoodi? 1192 00:48:06,690 --> 00:48:09,750 Aga point on selles, et sa tahtsid juurdepääsu esialgsest väärtusest. 1193 00:48:09,750 --> 00:48:13,180 Asjaolu, et olete muteerunud või muutunud n iga 1194 00:48:13,180 --> 00:48:16,330 iteratsiooni ja seega on hävitanud oma esialgsest väärtusest 1195 00:48:16,330 --> 00:48:18,650 tähendab sa lihtsalt ei saa seda teha aasta lõpus. 1196 00:48:18,650 --> 00:48:20,660 Nüüd väidetavalt me ​​kindlasti ei taha seda teha 1197 00:48:20,660 --> 00:48:21,450 et selles programmis. 1198 00:48:21,450 --> 00:48:22,350 Nii et keda see huvitab? 1199 00:48:22,350 --> 00:48:23,630 Aga see on väga kehtiv punkti. 1200 00:48:23,630 --> 00:48:25,520 Ja kui aus olla, seal on tõesti keegi 1201 00:48:25,520 --> 00:48:26,630 õige vastus siin. 1202 00:48:26,630 --> 00:48:28,740 Nad on mõlemad võrdselt õiged. 1203 00:48:28,740 --> 00:48:30,210 Ma võiksin olla veendunud ükskõik kummale poole. 1204 00:48:30,210 --> 00:48:33,310 Ma ütlen, et üldiselt, et see on hea põhimõte, kui te 1205 00:48:33,310 --> 00:48:36,030 küsis kasutaja jaoks mingi väärtus ja mida säilitatakse muutuja 1206 00:48:36,030 --> 00:48:38,730 nagu n, lihtsalt omamoodi põhimõtteliselt, see on ilmselt hea 1207 00:48:38,730 --> 00:48:40,160 hoida, et ümber. 1208 00:48:40,160 --> 00:48:43,400 Ja mis tahes andmetest, mida soovite muteeruda ja jälle, lihtsalt 1209 00:48:43,400 --> 00:48:46,030 anda endale koopia, et muutuja, just nii, et te 1210 00:48:46,030 --> 00:48:47,830 juurdepääs originaal. 1211 00:48:47,830 --> 00:48:51,040 Sa kulutavad 32 rohkem bitte, kuid reaalsus on see 1212 00:48:51,040 --> 00:48:53,490 arvuti on, nagu, kaks gigabaiti mälu nendel päevadel, 1213 00:48:53,490 --> 00:48:55,310 ja me laveerimine üle 32 bitti? 1214 00:48:55,310 --> 00:48:56,320 Tõesti ei ole nii suur asi. 1215 00:48:56,320 --> 00:48:58,550 Ja isegi selle seadmega siin, millel on pool kaarik või 1216 00:48:58,550 --> 00:49:01,700 GB RAM, 32 bitti versus 64 bitti, 1217 00:49:01,700 --> 00:49:02,920 ei nii suur asi. 1218 00:49:02,920 --> 00:49:05,890 Kindlasti täna, see saab olema nii rabatud suurus 1219 00:49:05,890 --> 00:49:08,400 programm ise, mis saab olema mitusada 1220 00:49:08,400 --> 00:49:10,890 kilobaiti, kui mitte paar megabaiti, nendel päevadel. 1221 00:49:10,890 --> 00:49:13,550 >> Nii et mõistlik mured, keegi õiget vastust. 1222 00:49:13,550 --> 00:49:15,490 Aga vähemalt need on mõtted, mis peaks hakkama 1223 00:49:15,490 --> 00:49:16,790 minna läbi oma meelt? 1224 00:49:16,790 --> 00:49:19,600 Sest pset 0, kuigi me tõesti ainult oodata 1225 00:49:19,600 --> 00:49:22,340 õigsust, või vähemalt loobuvad erinevate vead, mis 1226 00:49:22,340 --> 00:49:25,440 Te olete kokku puutunud, kui me liigume edasi, disain on 1227 00:49:25,440 --> 00:49:27,910 saab olema veel üks oluline aspekt, nii kirjalikult kood 1228 00:49:27,910 --> 00:49:29,770 ja ka meie hinnates kood. 1229 00:49:29,770 --> 00:49:32,310 Ja nii vähemalt kaaluda asjad niimoodi. 1230 00:49:32,310 --> 00:49:35,590 Ja just sellepärast, et midagi töötab, ei tähenda, et see on hea, 1231 00:49:35,590 --> 00:49:37,130 See ei tähenda, et see on hästi läbi mõeldud. 1232 00:49:37,130 --> 00:49:38,820 Ja see on üks asjadest, õpetamise stipendiaatide ja 1233 00:49:38,820 --> 00:49:41,990 probleem komplekti aitavad meil tease osa ajas. 1234 00:49:41,990 --> 00:49:45,020 >> Noh, aga oletame, et see versioon siin? 1235 00:49:45,020 --> 00:49:49,090 Las ma teen midagi natuke seksikas siin hetkel. 1236 00:49:49,090 --> 00:49:50,740 Esiteks lubage mul vabaneda sellest. 1237 00:49:50,740 --> 00:49:54,120 Ja nüüd määrata see grammatiline küsimus. 1238 00:49:54,120 --> 00:49:58,780 Nii et selles versioonis, ma parandan grammatika nii, et 1239 00:49:58,780 --> 00:50:02,460 mitte lihtsalt öelda Sulgudes s, nagu "pudel" 1240 00:50:02,460 --> 00:50:03,360 või "pudelid" - 1241 00:50:03,360 --> 00:50:04,900 Ma ei taha lõigata, et nurgas - 1242 00:50:04,900 --> 00:50:08,350 Tahan ka dünaamiliselt välja trükkida sõna "pudelid" 1243 00:50:08,350 --> 00:50:12,820 või "pudel", kasutades seejuures neid% s kohatäited täna. 1244 00:50:12,820 --> 00:50:16,550 Nii et mul on vaja tinglikult vaadata, mida on väärtus i. 1245 00:50:16,550 --> 00:50:19,590 Ja kui see on 1, tahan öelda "pudel", ja kui see on midagi 1246 00:50:19,590 --> 00:50:23,115 muidu, ma tahan öelda "pudelid". Nii et proovime seda teha. 1247 00:50:23,115 --> 00:50:31,340 Nii et kui ma == 1, siis lubage mul minna ja kuulutada - 1248 00:50:31,340 --> 00:50:34,080 Mul on vaja stringi, seega lubage mul teha string s1, sest see on 1249 00:50:34,080 --> 00:50:36,070 Esimene string ma hoolin kohe. 1250 00:50:36,070 --> 00:50:40,980 Ma ütlen "pudel". Ja siis, vaatame, string 1251 00:50:40,980 --> 00:50:43,110 S2 - ja ma seletan, kus ma lähen hetke pärast - 1252 00:50:43,110 --> 00:50:47,650 "Pudeleid." Nii tuletavad meelde, et see laul, peame suutma 1253 00:50:47,650 --> 00:50:50,580 printida asju, kaks erinevat sõna potentsiaalselt. 1254 00:50:50,580 --> 00:50:53,590 Nii et kui me vaatame tagasi siin, märkate, et kui me saame 1255 00:50:53,590 --> 00:50:56,440 Selles näites siin, "kaks pudelit õlut seinal, 1256 00:50:56,440 --> 00:50:59,490 kaks pudelit õlut, võtke üks maha, andke seda ümber ", ma tahan 1257 00:50:59,490 --> 00:51:02,380 see neljas rida nüüd öelda "ühe pudeli õlut 1258 00:51:02,380 --> 00:51:04,900 seina ". Seega on mul vaja otsustada, kas ma tahan öelda" pudelid "või 1259 00:51:04,900 --> 00:51:07,780 "Pudel"? Nii et ma lähen suvaliselt öelda, eks, 1260 00:51:07,780 --> 00:51:10,530 Ma lähen nüüd kuulutada muutuja nimega s1, string 1261 00:51:10,530 --> 00:51:13,830 üks, et läheb aina ühendatud siin ja ka siin, 1262 00:51:13,830 --> 00:51:16,070 sest need sõnad on alati ühesugused, vaid seetõttu, 1263 00:51:16,070 --> 00:51:17,290 milline on laul. 1264 00:51:17,290 --> 00:51:20,100 Ja ma lähen helistada s2 iganes sõna ma tahan 1265 00:51:20,100 --> 00:51:21,560 lõpuks ilmuvad siin. 1266 00:51:21,560 --> 00:51:25,530 Nüüd, sõna otseses mõttes, 99 korda 100st, et see saab olema 1267 00:51:25,530 --> 00:51:28,820 sama mõlemas juhtudel, sest 3 on mitmuses, 2 on 1268 00:51:28,820 --> 00:51:30,200 mitmuses, 4 on mitmuses. 1269 00:51:30,200 --> 00:51:34,640 Aga selles nurgas juhul, kui saame 2 ja siis 1 või 1270 00:51:34,640 --> 00:51:37,250 isegi 1 ja siis 0, ma vajan seda loogikat. 1271 00:51:37,250 --> 00:51:41,020 Nii et ma pean veidi aega minu koodi saada, et õigus. 1272 00:51:41,020 --> 00:51:47,530 Nii et kui ma seda teen, kui ma == 1, siis pane s1 võrdne "pudel" 1273 00:51:47,530 --> 00:51:52,010 ja s2 võrdne "pudelid", sest see on 1 1274 00:51:52,010 --> 00:51:56,340 pudel, ja see on kui 0 pudeleid. 1275 00:51:56,340 --> 00:51:58,250 Ja see siin, mida see koosneb? 1276 00:51:58,250 --> 00:51:59,780 Lihtsalt peab olema selge. 1277 00:51:59,780 --> 00:52:00,620 See on lihtsalt kommentaari. 1278 00:52:00,620 --> 00:52:03,730 Nii et sul võib olla üherealise kommentaari tähendab, et sa 1279 00:52:03,730 --> 00:52:06,110 Kommenteerida saavad oma koodi näeb välja selline, kuid üks ühine 1280 00:52:06,110 --> 00:52:09,050 paradigma, liiga, on see, et kui sul on super lühike lause, mis 1281 00:52:09,050 --> 00:52:11,410 soovite ennast ja see on lihtsalt loetavamaks panna 1282 00:52:11,410 --> 00:52:13,270 see õigus lõpus rida koodi, saate 1283 00:52:13,270 --> 00:52:15,230 absoluutselt midagi sellist teha. 1284 00:52:15,230 --> 00:52:20,150 >> Nüüd aga kui ma seda teen? Else if i ei ole võrdne 1. 1285 00:52:20,150 --> 00:52:21,620 Nii paugu võrdub - 1286 00:52:21,620 --> 00:52:23,150 hüüumärk on tuntud kui "pauk". 1287 00:52:23,150 --> 00:52:25,080 Nii paugu = 1. 1288 00:52:25,080 --> 00:52:28,530 Nii et kui ma ei ole võrdne 1, mida ma selle asemel teha tahad? 1289 00:52:28,530 --> 00:52:31,700 Noh, esimene sõna ma tahan olla mis? 1290 00:52:34,620 --> 00:52:40,030 Nii et string 1 peaks olema "pudelid" jaoks mitmuses pudelid, 1291 00:52:40,030 --> 00:52:42,440 ja siis see mitmuses "pudelid" samuti, nüüd. 1292 00:52:42,440 --> 00:52:43,800 Ja me näeme, kui see tegelikult muutub meile 1293 00:52:43,800 --> 00:52:44,870 kuhu me tahame minna. 1294 00:52:44,870 --> 00:52:47,680 Nii et nüüd, kui ma keri siin, märkate, et ma kõrvaldamine 1295 00:52:47,680 --> 00:52:50,170 mitte ainult mina, vaid s1. 1296 00:52:50,170 --> 00:52:51,860 Ma ühendades i ja s1. 1297 00:52:51,860 --> 00:52:54,440 Ja siis siin, ma olen miinus 1, mis on sama 1298 00:52:54,440 --> 00:52:55,920 enne, kuid s2. 1299 00:52:55,920 --> 00:52:58,730 Teisisõnu, ma tahan ingliskeelset sõna vahetada põhineb 1300 00:52:58,730 --> 00:52:59,930 Selle loogika. 1301 00:52:59,930 --> 00:53:03,310 Nüüd, seal on juba mõned probleemid selle koodi. 1302 00:53:03,310 --> 00:53:08,460 Mis on katki juba väravast läbi siin? 1303 00:53:08,460 --> 00:53:10,796 Jah? 1304 00:53:10,796 --> 00:53:13,210 Sihtrühm: [kuuldamatu]. 1305 00:53:13,210 --> 00:53:13,800 >> David J. Malan: Täpselt. 1306 00:53:13,800 --> 00:53:16,030 Nii et ma olen juba rikkunud õppetund ulatus. 1307 00:53:16,030 --> 00:53:19,610 Nii et ma olen deklareeritud S1 ja S2, kuid ma olen seda teinud sees 1308 00:53:19,610 --> 00:53:22,980 looksulg, mis tähendab, jah, see kood töötab kuni 1309 00:53:22,980 --> 00:53:27,430 kuni liin 42, kuid niipea kui ma tabanud rida 43, guess what ei 1310 00:53:27,430 --> 00:53:28,900 enam ei eksisteeri? 1311 00:53:28,900 --> 00:53:32,600 Noh, arvan, mida pole enam ulatusega - ei s1 või s2. 1312 00:53:32,600 --> 00:53:33,780 Nii et me peame seda parandada. 1313 00:53:33,780 --> 00:53:36,180 Nii et lubage mul kustutada deklaratsioonid. 1314 00:53:36,180 --> 00:53:39,320 Ja ma jätan muutuja nimed ja kustutada selle siit 1315 00:53:39,320 --> 00:53:40,120 ja kustuta see siin. 1316 00:53:40,120 --> 00:53:43,557 Ja Kuidas peaks ma tõesti tunnistada neid asju? 1317 00:53:43,557 --> 00:53:44,960 Sihtrühm: [kuuldamatu]. 1318 00:53:44,960 --> 00:53:45,410 David J. Malan: Jah, nii ilmselt 1319 00:53:45,410 --> 00:53:46,850 õige siin, 33-ish. 1320 00:53:46,850 --> 00:53:50,670 Nii et string s1 ja siis stringi s2. 1321 00:53:50,670 --> 00:53:51,950 Ja selgub, ma suudan seda. 1322 00:53:51,950 --> 00:53:54,260 Kui sa kuulutab kahe muutuja sama tüüpi, 1323 00:53:54,260 --> 00:53:57,420 tegelikult võite lihtsalt kasutada koma ja teha, et C. Kõik 1324 00:53:57,420 --> 00:53:58,970 õige, nii et nüüd on mul kaks muutujat - 1325 00:53:58,970 --> 00:53:59,860 S1 ja S2. 1326 00:53:59,860 --> 00:54:02,000 Ma määrates neile väärtustele need 1327 00:54:02,000 --> 00:54:04,210 tingimused siin, või siin. 1328 00:54:04,210 --> 00:54:06,690 Ja siis ma kasutan neid allapoole. 1329 00:54:06,690 --> 00:54:10,960 Kui hästi on see nüüd läheb tööle? 1330 00:54:10,960 --> 00:54:12,740 >> Noh, see on ikka natuke lollakas, kuid olgem vähemalt näha 1331 00:54:12,740 --> 00:54:13,730 kui kaugele me oleme saanud. 1332 00:54:13,730 --> 00:54:16,500 Nii et lubage mul minna ja teha beer3. 1333 00:54:16,500 --> 00:54:17,695 Kas see beer3? 1334 00:54:17,695 --> 00:54:19,410 Jah, see on beer3. 1335 00:54:19,410 --> 00:54:21,510 Ja nüüd lubage mul minna ja joosta beer3. 1336 00:54:21,510 --> 00:54:23,820 399 99. 1337 00:54:23,820 --> 00:54:25,840 Me ei saa ilmselt vahele enamik neist. 1338 00:54:25,840 --> 00:54:29,100 Ja siin all, vaata seda. 1339 00:54:29,100 --> 00:54:31,110 "Üks pudel õlut seinal, üks pudel õlut võtta 1340 00:54:31,110 --> 00:54:34,306 Üks maas, andke seda ümber, 0 pudelit õlut seinal. " 1341 00:54:34,306 --> 00:54:37,570 Aga ma olen joonistus oma tähelepanu ainult poolik lahendus. 1342 00:54:37,570 --> 00:54:39,620 Kind of silmamunad siin. 1343 00:54:39,620 --> 00:54:43,030 Seega tundub, et nurgas juhtudel tekkida siis, kui ma võrdub mida 1344 00:54:43,030 --> 00:54:44,030 kaks väärtust? 1345 00:54:44,030 --> 00:54:45,020 Sihtrühm: 2, 1. 1346 00:54:45,020 --> 00:54:46,190 David J. Malan: 2 ja 1. 1347 00:54:46,190 --> 00:54:48,180 See pole 1 ja mitte 1. 1348 00:54:48,180 --> 00:54:51,890 See on tõesti ainult need kaks viimast stanzas seda laulu. 1349 00:54:51,890 --> 00:54:53,890 Mida ma selle asemel teha tahad? 1350 00:54:53,890 --> 00:54:58,890 Nii et ma tundub, et on püütud juhul, kui kui ma ei == 1, 1351 00:54:58,890 --> 00:55:02,240 siis esimene sõna on "pudel", kuid teine ​​sõna 1352 00:55:02,240 --> 00:55:07,230 on "pudelid". Aga siin, ma tahan muuta, et see oleks == 2. 1353 00:55:07,230 --> 00:55:08,570 Ja kui see nii on, mida ma tahan 1354 00:55:08,570 --> 00:55:09,620 esimene sõna olema? 1355 00:55:09,620 --> 00:55:10,430 Sihtrühm: "Pudelid". 1356 00:55:10,430 --> 00:55:12,890 David J. Malan: "Pudelid", nii kaks pudelit. 1357 00:55:12,890 --> 00:55:14,690 Ja siis see sõna siin peaks olema - 1358 00:55:14,690 --> 00:55:15,340 Sihtrühm: "Pudel". 1359 00:55:15,340 --> 00:55:17,316 David J. Malan: "Pudel", ainsuses. 1360 00:55:20,430 --> 00:55:25,160 >> Olgu, lähme välja suumida, mine tagasi siia, re-run teha, 1361 00:55:25,160 --> 00:55:28,590 Re-run beer3, Type 99 uuesti. 1362 00:55:28,590 --> 00:55:30,710 Okei, "Segmentimise süü (tuum dumpinguhinnaga)." 1363 00:55:30,710 --> 00:55:32,780 Mida ma valesti teinud olen? 1364 00:55:36,050 --> 00:55:38,722 Sihtrühm: Sa ei pea väärtus [kuuldamatu]. 1365 00:55:38,722 --> 00:55:40,480 David J. Malan: Ah, suurepärane punkt. 1366 00:55:40,480 --> 00:55:43,310 Olgu, mis viga siin? 1367 00:55:43,310 --> 00:55:45,450 Nii killustatust süü, ja me tegelikult näeme 1368 00:55:45,450 --> 00:55:49,020 see päris paar korda tulevikus teadlikult. 1369 00:55:49,020 --> 00:55:51,030 Aga nüüd, mida see tegelikult tähendab? 1370 00:55:51,030 --> 00:55:53,620 Killustatust süü peaaegu alati tähendab, et teil on 1371 00:55:53,620 --> 00:55:56,760 kuidagi püüdnud ligi pääseda mälu, RAM arvuti, 1372 00:55:56,760 --> 00:56:00,600 et sa ei oma, et sa ei ole tegelikult palus 1373 00:56:00,600 --> 00:56:02,050 operatsioonisüsteemi jaoks. 1374 00:56:02,050 --> 00:56:04,440 Nii et sel juhul teate, mis ma olen teinud, mis on 1375 00:56:04,440 --> 00:56:05,870 puudulik minu loogika. 1376 00:56:05,870 --> 00:56:09,500 Olen määratud S1 ja S2 raha, kui ma võrdub 1. 1377 00:56:09,500 --> 00:56:11,590 Ma olen ka teinud, et kui ma võrdub 2. 1378 00:56:11,590 --> 00:56:13,710 Aga ma ei ole seda teinud lõpmatu hulk teisi 1379 00:56:13,710 --> 00:56:14,690 võimalusi - 1380 00:56:14,690 --> 00:56:17,940 eriti, 3 või 4 või dot, dot, dot, 99. 1381 00:56:17,940 --> 00:56:20,100 Nii et üks parandus see võis olla lihtsalt olgem 1382 00:56:20,100 --> 00:56:22,190 on teine ​​tingimus. 1383 00:56:22,190 --> 00:56:26,780 Ja lase mul minna siia ja ütle s1 võrdub - 1384 00:56:26,780 --> 00:56:28,180 milline peaks see siin olema? 1385 00:56:28,180 --> 00:56:28,750 Sihtrühm: [kuuldamatu]. 1386 00:56:28,750 --> 00:56:30,460 >> David J. Malan: "Pudelid", sest ühises asjas 1387 00:56:30,460 --> 00:56:32,020 see on lihtsalt sama asi. 1388 00:56:32,020 --> 00:56:35,580 Nii võrdub tsiteerin Tsitaat lõppeb, "pudeleid." Nii mitmuses 1389 00:56:35,580 --> 00:56:41,010 pudelid ja siis siia üles, sest mitmuse pudeleid. 1390 00:56:41,010 --> 00:56:44,580 Okei, nii et nüüd las ma lähen tagasi oma terminali aknas 1391 00:56:44,580 --> 00:56:47,200 kompileeri uuesti käivitada. 1392 00:56:47,200 --> 00:56:48,440 99. 1393 00:56:48,440 --> 00:56:49,150 Whew. 1394 00:56:49,150 --> 00:56:50,610 Ja teeme kiiresti meelerahu vaadata. 1395 00:56:50,610 --> 00:56:52,400 Tehniliselt me ​​tahaks lugeda kõik need veenduda 1396 00:56:52,400 --> 00:56:53,370 nad õige, kuid vaatame 1397 00:56:53,370 --> 00:56:54,640 vähemalt tuntud süüdlased. 1398 00:56:54,640 --> 00:56:57,370 3 pudelit, 2 pudelit, 2 pudelit, 1 1399 00:56:57,370 --> 00:57:00,380 pudel, 1 pudel, 0 pudeleid. 1400 00:57:00,380 --> 00:57:03,080 Tundub, et me oleme vähemalt fikseeritud see nüüd. 1401 00:57:03,080 --> 00:57:06,010 Aga saak on selles, et mida jumal kohutav jama see on 1402 00:57:06,010 --> 00:57:07,470 läbitegemine loll 1403 00:57:07,470 --> 00:57:09,540 ühetähelise grammatilisi detail. 1404 00:57:09,540 --> 00:57:11,150 Nii et seal on mingi põhjus, et ma lõikasin selle nurga 1405 00:57:11,150 --> 00:57:14,090 varem, sest see on lihtsalt täiesti tüütu on, et 1406 00:57:14,090 --> 00:57:15,020 kirjutan seda palju koodi. 1407 00:57:15,020 --> 00:57:17,530 Aga selgub, et seal on veidi rohkem elegantne võimalusi 1408 00:57:17,530 --> 00:57:20,110 väljendades täpselt sama asi. 1409 00:57:20,110 --> 00:57:22,040 Ja me võime seda teha järgmiselt. 1410 00:57:22,040 --> 00:57:23,890 >> Lubage mul jätta see ekraanile hetkeks ja 1411 00:57:23,890 --> 00:57:27,320 tutvustada midagi tuntud kolmekomponentsete operaator. 1412 00:57:27,320 --> 00:57:29,600 See on selline ühe-liner, mis on just mõeldud, et meie 1413 00:57:29,600 --> 00:57:31,880 elab vähe seksikam, nagu lubatud. 1414 00:57:31,880 --> 00:57:33,130 Ja ma teen seda järgmiselt. 1415 00:57:33,130 --> 00:57:35,810 Anna mulle string nimega s1, ja andke mulle 1416 00:57:35,810 --> 00:57:37,200 määrata see järgmiselt. 1417 00:57:37,200 --> 00:57:39,900 (I == 1)? 1418 00:57:39,900 --> 00:57:47,820 "Pudel", muidu "pudelid". String s2 saab (i == 2)? 1419 00:57:47,820 --> 00:57:52,670 "Pudel", muidu "pudelid". 1420 00:57:52,670 --> 00:57:57,050 Mis siis on siin midagi? 1421 00:57:57,050 --> 00:57:59,370 Need kaks rida koodi, Väidan, saab 1422 00:57:59,370 --> 00:58:02,200 asendada kogu see jama. 1423 00:58:02,200 --> 00:58:04,280 Nii et ma kutsun seda jama, lihtsalt sellepärast, et selline röövib mind 1424 00:58:04,280 --> 00:58:05,940 vale, et see on nii palju ridu koodi. 1425 00:58:05,940 --> 00:58:06,650 Mitte valesti. 1426 00:58:06,650 --> 00:58:07,700 See ei ole halb disain. 1427 00:58:07,700 --> 00:58:10,140 Nagu, see on täiesti õige ja täiesti korras. 1428 00:58:10,140 --> 00:58:12,970 Aga kodeerimine saab tüütu, kui sa pead ennast väljendada nii 1429 00:58:12,970 --> 00:58:15,530 kurat just uuesti ja uuesti ja uuesti lihtsa 1430 00:58:15,530 --> 00:58:16,620 stsenaarium meeldib see. 1431 00:58:16,620 --> 00:58:19,470 Nii C on mõned otseteed niimoodi. 1432 00:58:19,470 --> 00:58:24,270 Nii et see sisuliselt ütleb kuulutada string nimega s1 ja 1433 00:58:24,270 --> 00:58:32,610 määrata selle kas see väärtus või selle väärtuse, kui ma ei == - 1434 00:58:32,610 --> 00:58:35,290 Vabandust, ma peaks ütlema seda selgemalt. 1435 00:58:35,290 --> 00:58:41,680 Tuvastada muutuja s1, anna see seda väärtust, kui see on tõsi. 1436 00:58:41,680 --> 00:58:44,280 Vastasel korral määrata see seda väärtust. 1437 00:58:44,280 --> 00:58:47,220 Nii et teiste sõnadega, see on omamoodi üherealine viis 1438 00:58:47,220 --> 00:58:51,490 öeldes, kui teine, kuid teevad loovutamise teel. 1439 00:58:51,490 --> 00:58:55,540 Nii et kui ma 1, siis minna ja nimetame seda "pudel". Ja 1440 00:58:55,540 --> 00:58:59,830 siis see teine, nimetame seda "pudelid". Vahepeal s2, 1441 00:58:59,830 --> 00:59:04,060 teine ​​sõna, et me peame määratlema, kui ma võrdub 2, siis me 1442 00:59:04,060 --> 00:59:08,350 seatud S2 "pudel". Vastasel juhul seadke see "pudelid". Ja mida 1443 00:59:08,350 --> 00:59:11,460 see tähendab nüüd on Ma ei saa minna läbi selle ja kustutada kõik 1444 00:59:11,460 --> 00:59:12,860 need read koodi. 1445 00:59:12,860 --> 00:59:17,220 Ja kui ma ütlen, mõnevõrra naeruväärselt, et see on nüüd 1446 00:59:17,220 --> 00:59:20,060 seksikam, see on seksikam on omamoodi stilistiline mõttes. 1447 00:59:20,060 --> 00:59:22,660 Asjaolu, et funktsionaalselt, see kood on tegelikult läheb 1448 00:59:22,660 --> 00:59:24,610 teha täpselt sama asi. 1449 00:59:24,610 --> 00:59:26,890 Ja kuigi see võib tunduda veidi segasena esimesel 1450 00:59:26,890 --> 00:59:29,250 lühidalt, sest me pole näinud seda konstrukti enne, ma 1451 00:59:29,250 --> 00:59:31,850 väidavad, et see on lõpuks saab olema nii palju 1452 00:59:31,850 --> 00:59:34,820 loetav ja nii palju lihtsam meie, inimesed sortida kohta 1453 00:59:34,820 --> 00:59:36,830 mõista, sest nüüd saab lihtsalt lugeda 1454 00:59:36,830 --> 00:59:38,830 koodi kõik ühes reas. 1455 00:59:38,830 --> 00:59:41,550 See on ikka sarnase sisuga, kui, kui see on 1456 00:59:41,550 --> 00:59:44,920 seisukorras ja siis on see mis seal sees siis ja selles 1457 00:59:44,920 --> 00:59:46,480 on, mis seal sees veel. 1458 00:59:46,480 --> 00:59:49,450 Aga me saame seda teha lihtsalt palju rohkem elegantselt. 1459 00:59:49,450 --> 00:59:52,650 >> Ja kui ma nüüd lähen tagasi oma terminali, olles kustutanud kõik 1460 00:59:52,650 --> 00:59:55,530 Kõnealuste liinide ja asendas need lihtsalt nende kahe, 1461 00:59:55,530 --> 01:00:00,150 kompileeri uuesti kulgema pudelit õlut 99, teate, et minu 1462 01:00:00,150 --> 01:00:03,350 grammatika on tegelikult ikka õige. 1463 01:00:03,350 --> 01:00:06,160 Nii et taas, midagi alustada. 1464 01:00:06,160 --> 01:00:08,840 2 pudelit õlut, 1 pudel õlut. 1465 01:00:08,840 --> 01:00:09,370 Paistab küll. 1466 01:00:09,370 --> 01:00:10,100 Jah. 1467 01:00:10,100 --> 01:00:13,900 Nii et meil on palju sisutihedat lahendus. 1468 01:00:13,900 --> 01:00:16,020 Nii ka see, kui sa saad rohkem rahul C, ei 1469 01:00:16,020 --> 01:00:18,630 tingimata koos esimese pset või isegi teine, kuid 1470 01:00:18,630 --> 01:00:21,170 aru, et selliseid konstruktsioone võimaldavad meil teha asju kunagi 1471 01:00:21,170 --> 01:00:22,810 rohkem elegantselt. 1472 01:00:22,810 --> 01:00:25,200 Nüüd teeme ühe asja siin. 1473 01:00:25,200 --> 01:00:31,460 Lubage mul minna ja avada return1.c. 1474 01:00:31,460 --> 01:00:34,340 Nüüd alustame lahendada üks probleem nii, et 1475 01:00:34,340 --> 01:00:37,140 võimaldab meil kirjutada keerukamaid kood. 1476 01:00:37,140 --> 01:00:39,960 >> Nii et siin on lihtne väike programm, mille eesmärk elus 1477 01:00:39,960 --> 01:00:41,870 on juurdekasvu väärtused. 1478 01:00:41,870 --> 01:00:43,100 Ja tegelikult, olgem astuda samm tagasi. 1479 01:00:43,100 --> 01:00:44,400 Lubage mul teha seda käsitsi. 1480 01:00:44,400 --> 01:00:52,200 Las ma teen sisaldama ja int main (void). 1481 01:00:52,200 --> 01:00:53,450 Ja las ma kutsun seda increment.c. 1482 01:00:57,150 --> 01:00:58,570 Ja mida ma tahan teha? 1483 01:00:58,570 --> 01:01:02,240 Ma lähen edasi minna ja öelda midagi sellist - 1484 01:01:02,240 --> 01:01:04,280 me helistada numbritele sama - 1485 01:01:04,280 --> 01:01:04,980 int x. 1486 01:01:04,980 --> 01:01:13,670 Nii int x saab 2; printf x on% d, uus liin, x. 1487 01:01:13,670 --> 01:01:16,780 Nii et ma olen masinakirja kiire, kuid omamoodi tuttav värk nüüd. 1488 01:01:16,780 --> 01:01:18,830 Siis ma lähen tegema x + +. 1489 01:01:18,830 --> 01:01:21,710 Siis ma lähen printida sama lause uuesti. 1490 01:01:21,710 --> 01:01:24,550 Ja siis ma lähen tagastab 0 lihtsalt sulgege programm. 1491 01:01:24,550 --> 01:01:25,960 Olgu, see on programm, mis 1492 01:01:25,960 --> 01:01:26,960 sammuga arv. 1493 01:01:26,960 --> 01:01:29,830 See esimene läheb initsialiseerida midagi 2 ja siis on 1494 01:01:29,830 --> 01:01:33,470 läheb juurdekasvu ja prindi see uuesti. 1495 01:01:33,470 --> 01:01:36,930 >> Nii et olgem joosta juurdekasvu, uskumatult lihtne programm. 1496 01:01:36,930 --> 01:01:40,940 Aga oletame nüüd, et ma tahan kuubik väärtus, nii et ärge 1497 01:01:40,940 --> 01:01:42,490 midagi mõnevõrra meelevaldne. 1498 01:01:42,490 --> 01:01:45,140 Ja ma tegelikult tahan teha x saab kuubik ta. 1499 01:01:45,140 --> 01:01:47,570 Nii et ma võiks kasutada, mida nimetatakse pow funktsiooni, kuid ma ei 1500 01:01:47,570 --> 01:01:48,650 tea, kus see on veel. 1501 01:01:48,650 --> 01:01:50,580 Nii et ma teen seda vanamoeliselt. 1502 01:01:50,580 --> 01:01:54,550 x korda see võrdub x korda x korda x. 1503 01:01:54,550 --> 01:01:56,880 Nii et ma olen cubing väärtus, korrutades seda ise uuesti 1504 01:01:56,880 --> 01:02:00,440 ja uuesti ja uuesti, nii et me saame võimu 1505 01:02:00,440 --> 01:02:02,050 3 käesolevas asjas. 1506 01:02:02,050 --> 01:02:06,000 Nüüd numbreid ma peaks trükkima peaks olema, nagu me näha 1507 01:02:06,000 --> 01:02:08,450 siin - teha juurdekasvu, nii see tegelikult ei ole tõesti juurdekasvu 1508 01:02:08,450 --> 01:02:10,260 enam, kuid me jätan nimi üksi - 1509 01:02:10,260 --> 01:02:11,590 2 ja siis 8. 1510 01:02:11,590 --> 01:02:17,670 Nüüd on meil alguse võimaluse täiustamise 1511 01:02:17,670 --> 01:02:21,570 siin, kus see cubing asi korrutada arv 1512 01:02:21,570 --> 01:02:24,680 ise ise ise tundub see võib lihtsalt olla 1513 01:02:24,680 --> 01:02:27,920 kasulik omada funktsioonina, umbes nagu keegi otsustas 1514 01:02:27,920 --> 01:02:30,430 aastat tagasi - te teate, millist kasu, kui üks meist istub maha 1515 01:02:30,430 --> 01:02:33,120 ja kirjutab printf nii et ülejäänud maailm seda kasutada, 1516 01:02:33,120 --> 01:02:36,160 miks me ei istuda ja kirjutada funktsioon nimega kuubik 1517 01:02:36,160 --> 01:02:39,250 et kas see cubing meile, et me ei pea käsitsi 1518 01:02:39,250 --> 01:02:41,500 rakendada mõistet cubing väärtused siin? 1519 01:02:41,500 --> 01:02:44,040 >> Nii lihtne näide, kuid olgem minna ja kasutada seda kui 1520 01:02:44,040 --> 01:02:46,280 võimalus kirjutada oma funktsiooni. 1521 01:02:46,280 --> 01:02:49,110 Nii et siiani oleme ainult kasutatud peamine, ja oleme kasutanud muid 1522 01:02:49,110 --> 01:02:51,780 Inimeste funktsioone, kuid me ei ole kirjutatud meie oma. 1523 01:02:51,780 --> 01:02:52,650 Nii et siin me läheme. 1524 01:02:52,650 --> 01:02:56,330 Ma lähen edasi minna ja kirjutada funktsioon nimega kuubik. 1525 01:02:56,330 --> 01:02:58,490 Ja ma lähen on ta võtma sisend. 1526 01:02:58,490 --> 01:03:02,070 Nii et tema panus saab olema täisarv. 1527 01:03:02,070 --> 01:03:03,570 Ja mida ta kavatseb teha? 1528 01:03:03,570 --> 01:03:08,500 See saab deklareerida int väljund = sisend korda sisend 1529 01:03:08,500 --> 01:03:09,880 korda sisend. 1530 01:03:09,880 --> 01:03:12,190 Ja siis see läheb tagasi, et väljund. 1531 01:03:12,190 --> 01:03:14,500 Ja siis ma pean olema konkreetne nüüd. 1532 01:03:14,500 --> 01:03:16,820 See funktsioon ei kavatse naasta int. 1533 01:03:16,820 --> 01:03:19,130 Nii et siin on siis kuidas sa kirjutada oma funktsioone. 1534 01:03:19,130 --> 01:03:20,850 Sa kõigepealt otsustada, milline on nime oma 1535 01:03:20,850 --> 01:03:21,720 funktsiooni saab olema. 1536 01:03:21,720 --> 01:03:23,964 Ja üldiselt, midagi selgitavat on hea, et ma tulen 1537 01:03:23,964 --> 01:03:25,060 nimetame seda kuubik. 1538 01:03:25,060 --> 01:03:27,180 Siis tuleb sul määrata, mis sealt tagasi, mis on 1539 01:03:27,180 --> 01:03:28,240 oma toodangut saab olema. 1540 01:03:28,240 --> 01:03:29,595 Ja meil ei ole, et palju võimalusi veel. 1541 01:03:29,595 --> 01:03:32,260 Keskmine, char, float, bool, string. 1542 01:03:32,260 --> 01:03:34,260 Praegu ma lähen kinni int, sest ma tahan seda 1543 01:03:34,260 --> 01:03:35,880 tagasi täisarv. 1544 01:03:35,880 --> 01:03:38,770 Siis on täpsustada, mis selle sisendite, kui üldse, on. 1545 01:03:38,770 --> 01:03:41,570 Ja kui kuubik võtab argument, võtab midagi vahel 1546 01:03:41,570 --> 01:03:44,970 sulgudes, sa pead andma selle argumendi nime, nii et 1547 01:03:44,970 --> 01:03:47,860 võite helistada see midagi, kui sa rakendamisel või kirjalikult 1548 01:03:47,860 --> 01:03:50,550 Selle funktsiooni ja sa pead andma see tüüp, kes selles 1549 01:03:50,550 --> 01:03:51,810 juhul saab olema int. 1550 01:03:51,810 --> 01:03:54,690 Nii lühike, kuubik on funktsioon, mis võtab täisarv 1551 01:03:54,690 --> 01:03:57,560 kui sisend ja tagastab täisarvu toodanguna. 1552 01:03:57,560 --> 01:03:59,240 >> Nii et mida see pistmist, et sisend? 1553 01:03:59,240 --> 01:04:03,710 Noh, joon 14, Kinnitan muutuja nimega väljund, ja ma 1554 01:04:03,710 --> 01:04:07,410 määrata selle väärtus, sisendi korda sisend korda sisend. 1555 01:04:07,410 --> 01:04:11,490 Ja siis ma tagasi toodangut. 1556 01:04:11,490 --> 01:04:14,890 Niisiis, kuidas ma saan kasutada seda siis? 1557 01:04:14,890 --> 01:04:19,210 Mida ma saan muuta neid esile tähemärki real 1558 01:04:19,210 --> 01:04:21,006 7 nimetatud, sa arvad? 1559 01:04:21,006 --> 01:04:21,800 Sihtrühm: [kuuldamatu]. 1560 01:04:21,800 --> 01:04:25,570 David J. Malan: Jah, nii kuubik x. 1561 01:04:25,570 --> 01:04:28,290 Nii et x on muutuja, mis tähendab, tal mingi väärtus. 1562 01:04:28,290 --> 01:04:30,190 Õnneks on tüüpi täisarv. 1563 01:04:30,190 --> 01:04:34,280 Ja kuna x on keskmine, see tähendab, et ma ei liigu see kuubik. 1564 01:04:34,280 --> 01:04:39,500 Ja kuigi ma ülekaaluka väärtus x-väärtus 1565 01:04:39,500 --> 01:04:42,780 kuubik x, nagu on juhtunud siiani, iga kord, kui 1566 01:04:42,780 --> 01:04:46,150 on võrdusmärk ning rida koodi, kraami õigus 1567 01:04:46,150 --> 01:04:49,090 saab teostada ja siis saab määrata 1568 01:04:49,090 --> 01:04:50,150 väärtus vasakul. 1569 01:04:50,150 --> 01:04:52,950 Nii et tegevuse on nagu me oleks lootust. 1570 01:04:52,950 --> 01:04:56,620 Nii see toimib? 1571 01:04:56,620 --> 01:04:58,410 Noh, lase mul minna siia alla. 1572 01:04:58,410 --> 01:04:59,970 Lubage mul avada minu terminaliakent. 1573 01:04:59,970 --> 01:05:03,610 Las ma ei tee juurdekasvu, Enter. 1574 01:05:03,610 --> 01:05:07,140 "Kaudsed deklaratsiooni funktsioon" kuubik "on kehtetu 1575 01:05:07,140 --> 01:05:13,700 C99. "Nagu kõrvale, C99 viitab keel C, sest see oli 1576 01:05:13,700 --> 01:05:16,790 määratletud aastal 1999, mis oli uuendus üle versioon 1577 01:05:16,790 --> 01:05:19,360 1989, mis on uuendatud üle originaal. 1578 01:05:19,360 --> 01:05:21,740 Nii et kõik see tähendab. 1579 01:05:21,740 --> 01:05:24,250 >> Nii et mida see tähendab, et "kaudne deklaratsioon 1580 01:05:24,250 --> 01:05:26,790 funktsiooni 'kuubik' on kehtetu? "See on siinsamas. 1581 01:05:26,790 --> 01:05:28,430 See on seal ka rida 12. 1582 01:05:28,430 --> 01:05:30,460 Sihtrühm: [kuuldamatu]. 1583 01:05:30,460 --> 01:05:30,730 David J. Malan: Mis see on? 1584 01:05:30,730 --> 01:05:32,470 Sihtrühm: See ei ole enne. 1585 01:05:32,470 --> 01:05:33,540 David J. Malan: See ei ole enne. 1586 01:05:33,540 --> 01:05:34,740 Nii et see on asi. 1587 01:05:34,740 --> 01:05:38,190 C on tobe, või C kompilaatorid on tobe. 1588 01:05:38,190 --> 01:05:41,060 Nad tõesti ainult seda, mida sa ütled neile, mida teha. 1589 01:05:41,060 --> 01:05:44,770 Ja nad eelkõige lugeda ainult oma koodi ülevalt alla, 1590 01:05:44,770 --> 01:05:45,620 vasakult paremale. 1591 01:05:45,620 --> 01:05:49,140 Nii et kui kompilaator, rõkkama, loeb oma kood, rida 1, see 1592 01:05:49,140 --> 01:05:50,120 nuputab, kuidas seda teha. 1593 01:05:50,120 --> 01:05:50,940 Oh, siit tuleb põhiline. 1594 01:05:50,940 --> 01:05:53,000 Okei, las ma minna ja kuulutada muutuja x. 1595 01:05:53,000 --> 01:05:54,160 Las ma printida midagi. 1596 01:05:54,160 --> 01:05:55,890 Rida 7, mida kuradit on kuup? 1597 01:05:55,890 --> 01:05:58,230 See ei ole deklareeritud stdio.h. 1598 01:05:58,230 --> 01:06:00,950 See ei tule koos C. Ma ei tea, mida teha. 1599 01:06:00,950 --> 01:06:03,960 Ja nii rõkkama lihtsalt Bails ja sulgub ja mis veateate. 1600 01:06:03,960 --> 01:06:05,850 Nii saame määrata seda paar võimalust. 1601 01:06:05,850 --> 01:06:10,530 Me ei saa õpetada rõkkama mida kuubik lihtsalt liigub kus 1602 01:06:10,530 --> 01:06:11,820 deklaratsioon. 1603 01:06:11,820 --> 01:06:14,640 Nii et ma lõigata ja kleepida see atop peamine. 1604 01:06:14,640 --> 01:06:17,770 Nüüd mõistan, et lihtsalt sellepärast, et peamine ei ole enam esimene, see on 1605 01:06:17,770 --> 01:06:19,150 ikka täidetakse vaikimisi. 1606 01:06:19,150 --> 01:06:20,060 Peamine on peamine. 1607 01:06:20,060 --> 01:06:21,022 See on vaikefunktsioon nimi. 1608 01:06:21,022 --> 01:06:22,930 See ei ole tähtis, kui see on fail. 1609 01:06:22,930 --> 01:06:26,910 Aga vähemalt nüüd rõkkama on näinud kuubik enne ma kasutan seda. 1610 01:06:26,910 --> 01:06:28,500 Nii et vaatame, kui rõkkama on praegu õnnelikum. 1611 01:06:28,500 --> 01:06:31,410 Tee juurdekasvu, see ei kompileerida seekord. 1612 01:06:31,410 --> 01:06:33,060 >> Ma jooksen juurdekasvu. 1613 01:06:33,060 --> 01:06:34,810 Ja tõepoolest, see näib toimivat. 1614 01:06:34,810 --> 01:06:36,810 Nüüd saate tulla stsenaariumi lõpuks, kui 1615 01:06:36,810 --> 01:06:38,650 see ei ole võimalik panna iga funktsioon 1616 01:06:38,650 --> 01:06:39,740 Ülaltoodud iga teine ​​funktsioon. 1617 01:06:39,740 --> 01:06:42,140 Sul jänni see lõputu silmuse tegelikkuses 1618 01:06:42,140 --> 01:06:43,480 kus see kutt tahab olla siin, kuid see 1619 01:06:43,480 --> 01:06:44,390 mees peab seal olema. 1620 01:06:44,390 --> 01:06:45,830 Nii et alati ei toimi. 1621 01:06:45,830 --> 01:06:49,020 Nii et õnneks C on rohkem elegantne lahendus. 1622 01:06:49,020 --> 01:06:50,790 Ma panen selle tagasi, kui ta oli lihtsalt sellepärast, et ma 1623 01:06:50,790 --> 01:06:53,390 eelistavad, kui põhimõtteliselt, et peamine alati 1624 01:06:53,390 --> 01:06:55,550 ülaosas, sest see on lihtsalt tore näha, mida see programm 1625 01:06:55,550 --> 01:06:56,920 Kas vaikimisi. 1626 01:06:56,920 --> 01:06:58,950 Ja mida ma teen siin on kuulutada, mida nimetatakse 1627 01:06:58,950 --> 01:07:00,250 prototüüp. 1628 01:07:00,250 --> 01:07:05,730 Ma lähen uuesti deklareerima minu kuubik funktsioon sõna otseses mõttes 1629 01:07:05,730 --> 01:07:07,180 kopeerimist ja kleepimist. 1630 01:07:07,180 --> 01:07:08,290 Tegelikult, see ei ole sõna-sõnalt. 1631 01:07:08,290 --> 01:07:13,060 Nii et sõna otseses mõttes kopeerida ja kleepida real 15 1632 01:07:13,060 --> 01:07:15,160 ülevalt rida 6. 1633 01:07:15,160 --> 01:07:17,010 See ei ole oluline milliseid rida see jõuab. 1634 01:07:17,010 --> 01:07:18,380 See juhtub olema real 4. 1635 01:07:18,380 --> 01:07:19,950 Aga see ei pea olema enne peamisi. 1636 01:07:19,950 --> 01:07:21,150 Aga märka erinevust. 1637 01:07:21,150 --> 01:07:24,100 Rida 4 lõpeb semikooloniga, mis tähendab, hei, 1638 01:07:24,100 --> 01:07:27,510 Rõkkama, võtke minu sõna see, et on olemas funktsioon 1639 01:07:27,510 --> 01:07:31,350 nimetatakse kuubik, mis võtab int ja tagastab int. 1640 01:07:31,350 --> 01:07:33,020 Aga ma ei ütle sulle, mis see on. 1641 01:07:33,020 --> 01:07:35,180 Lihtsalt tean, et ma luban sulle lõpuks. 1642 01:07:35,180 --> 01:07:38,490 Ja tõepoolest, nüüd see on okei, et see on allapoole. 1643 01:07:38,490 --> 01:07:41,275 >> Nii et see on üldiselt parem, sest siis ülaosas 1644 01:07:41,275 --> 01:07:44,240 fail, saab lihtsalt vuristama, kiire tulekahju, üks rida 1645 01:07:44,240 --> 01:07:46,470 iga, mis nimed oma funktsioonide ja milline on nende 1646 01:07:46,470 --> 01:07:49,120 sisendid on, millised on nende väljundid. 1647 01:07:49,120 --> 01:07:52,210 Ja oleks selgem, sisend tähendab üldiselt argument või 1648 01:07:52,210 --> 01:07:54,110 parameeter, sünonüümid. 1649 01:07:54,110 --> 01:07:56,890 Etendus tähendab tagastatav väärtus, mida see 1650 01:07:56,890 --> 01:07:58,700 Samas mulle tagasi. 1651 01:07:58,700 --> 01:08:03,420 Nii et selles asjas, kuubik on kuulutatud tipus, kuid 1652 01:08:03,420 --> 01:08:06,940 määratletud, muidu tuntud rakendatud, allosas. 1653 01:08:06,940 --> 01:08:09,620 Nii et nüüd lähme siia tagasi ja uuesti käivitada seda. 1654 01:08:09,620 --> 01:08:13,430 Nüüd lubage mul minna ja uuesti käivitada teha, uuesti käivitada juurdekasvu. 1655 01:08:13,430 --> 01:08:16,500 Ja nüüd paistab töötavat just fine. 1656 01:08:16,500 --> 01:08:19,450 Nii et nüüd saame minna ja tegurdada midagi 1657 01:08:19,450 --> 01:08:23,720 õlu näiteks sellesse neljas versioon. 1658 01:08:23,720 --> 01:08:25,590 Nii et las ma kerin alla siit. 1659 01:08:25,590 --> 01:08:28,149 Ja märkate, et ma mingi võtsin selle õppetund südamesse just nüüd. 1660 01:08:28,149 --> 01:08:31,140 Asjaolu, et ma laulis sama stroof uuesti ja 1661 01:08:31,140 --> 01:08:34,130 uuesti ja uuesti, sama refrääni rida laulu, vilt 1662 01:08:34,130 --> 01:08:36,439 meeldib Miks ma ei tegur, mis viidud funktsioon? 1663 01:08:36,439 --> 01:08:38,470 Ja tõepoolest, see peaks olema üks motivatsioone. 1664 01:08:38,470 --> 01:08:40,960 Peale selle, et keegi teine ​​maailmas võiksite 1665 01:08:40,960 --> 01:08:42,390 kasutada kuubik funktsioon - 1666 01:08:42,390 --> 01:08:44,560 see on hea põhjus tegur midagi välja ja kirjutage 1667 01:08:44,560 --> 01:08:45,720 omatehtud funktsioon - 1668 01:08:45,720 --> 01:08:48,720 kui seal on patakas kood oma programm, mis lihtsalt teeb 1669 01:08:48,720 --> 01:08:51,370 kontseptuaalses mõttes, et sa nagu tahaks, et anda sellele 1670 01:08:51,370 --> 01:08:53,740 nimi - nagu käesoleval juhul, koori - 1671 01:08:53,740 --> 01:08:57,380 siis saate samamoodi kirjutada, et eraldi funktsioon. 1672 01:08:57,380 --> 01:08:59,560 Sa ei pea kirjutama kõike peamist, kui ta lihtsalt 1673 01:08:59,560 --> 01:09:02,609 tunneb puhastaja, mis eraldab selle läbi ja annab talle nime. 1674 01:09:02,609 --> 01:09:05,529 >> Nii et selles asjas, märkate, et mul on Kommentaari atop 1675 01:09:05,529 --> 01:09:06,859 seda funktsiooni, et lihtsalt laulab sellest 1676 01:09:06,859 --> 01:09:08,630 määratud arvu pudeleid. 1677 01:09:08,630 --> 01:09:10,609 Teade siin, et ma ei vaja helistada nende 1678 01:09:10,609 --> 01:09:12,520 asjad sisend ja väljund. 1679 01:09:12,520 --> 01:09:16,090 Tegelikult seekord ma lihtsalt helistasin oma panuse b pudeli. 1680 01:09:16,090 --> 01:09:19,960 Ja märka siin, tühine soovitab mida? 1681 01:09:19,960 --> 01:09:21,309 See koor - 1682 01:09:21,309 --> 01:09:22,660 Sihtrühm: ei tagasta seda. 1683 01:09:22,660 --> 01:09:23,870 David J. Malan: ei tagasta raha. 1684 01:09:23,870 --> 01:09:26,800 Ja tõepoolest, funktsioone ei pea tagastama väärtused. 1685 01:09:26,800 --> 01:09:28,060 Nad võivad lihtsalt midagi teha. 1686 01:09:28,060 --> 01:09:30,270 Nad võivad olla nn kõrvaltoimeid, mida käesoleval 1687 01:09:30,270 --> 01:09:33,109 juhul on lihtsalt terve hunnik trükkimine ekraanile. 1688 01:09:33,109 --> 01:09:36,580 Nii märkate, et see kood siin, ma sõna otseses mõttes lihtsalt varastas 1689 01:09:36,580 --> 01:09:37,680 eelmises näites. 1690 01:09:37,680 --> 01:09:39,930 Ainus erinevus on, selle asemel ma nagu mu 1691 01:09:39,930 --> 01:09:42,890 muutuja, ma olen nüüd kasutades b nagu minu muutuja. 1692 01:09:42,890 --> 01:09:45,880 Nii et mul on b siia, mul on b siia, mul on b 1693 01:09:45,880 --> 01:09:47,109 miinus 1 siia. 1694 01:09:47,109 --> 01:09:49,279 Aga kood on täpselt sama. 1695 01:09:49,279 --> 01:09:52,529 Aga ainult sulle nüüd, kuidas saame kasutada seda, lase mul minna 1696 01:09:52,529 --> 01:09:56,780 edasi ja tegelikult muuta, et see oleks loop. 1697 01:09:56,780 --> 01:10:03,850 jaoks (int i = n; i> n, i -). 1698 01:10:03,850 --> 01:10:06,230 >> Nii et ma olen varastanud, et meie eelmise näite. 1699 01:10:06,230 --> 01:10:08,970 Varem see on kooskõlas 37, oleksin alustanud 1700 01:10:08,970 --> 01:10:10,640 laulmine see tüütu lugu. 1701 01:10:10,640 --> 01:10:15,810 Kuid selle asemel, ma lihtsalt lähen nüüd helistada koori i. 1702 01:10:15,810 --> 01:10:16,870 Valmis. 1703 01:10:16,870 --> 01:10:20,260 Nüüd iga iteratsiooni see silmus, ma nimetan seda teiste 1704 01:10:20,260 --> 01:10:22,220 funktsioon, refrään, et sattusin kirjutama. 1705 01:10:22,220 --> 01:10:24,110 See ei olnud kirjutatud kellegi teise aastat tagasi. 1706 01:10:24,110 --> 01:10:27,930 Aga refrään, vahepeal kasutab printf printida 1707 01:10:27,930 --> 01:10:29,840 välja need neli rida. 1708 01:10:29,840 --> 01:10:32,720 Kuid tõsiasi, et ma helistan kooris ikka ja jälle 1709 01:10:32,720 --> 01:10:35,900 loop tähendab, et ma lähen saada, päris lõpus, 1710 01:10:35,900 --> 01:10:39,310 täpselt sama lugu nagu ma olen siiani. 1711 01:10:39,310 --> 01:10:42,130 Nii lühike, nüüd kui ma vaatan tagasi oma koodi, kuigi 1712 01:10:42,130 --> 01:10:44,240 funktsionaalselt on see samaväärne, märkate, et see on 1713 01:10:44,240 --> 01:10:46,020 käivitumas isegi paremini arusaadavaks. 1714 01:10:46,020 --> 01:10:48,410 Ma ei tea täpselt, kuidas GetInt 1715 01:10:48,410 --> 01:10:49,250 rakendatakse. 1716 01:10:49,250 --> 01:10:52,050 Ausalt, ma ei tea, kuidas koor rakendatakse. 1717 01:10:52,050 --> 01:10:52,970 Aga see ei ole oluline mulle. 1718 01:10:52,970 --> 01:10:55,620 Mind ei huvita, sest nüüd saan omamoodi, nagu inimesele, loe 1719 01:10:55,620 --> 01:10:57,050 see ülalt alla. 1720 01:10:57,050 --> 01:10:59,950 Ja kuna funktsioonid on nimetatud vastavalt sellele, mida nad 1721 01:10:59,950 --> 01:11:02,910 teha, minu kood on üha loetav. 1722 01:11:02,910 --> 01:11:05,190 Ja kui meie programme saada palju keerulisem - 1723 01:11:05,190 --> 01:11:07,220 poolt semestri lõppu, siis saad kirjalikult värsireani 1724 01:11:07,220 --> 01:11:10,970 Koodi keeles nagu PHP ja JavaScript jms - 1725 01:11:10,970 --> 01:11:13,550 leiad, et see on nii palju lihtsam kui jälgida 1726 01:11:13,550 --> 01:11:14,080 mida sa teinud oled. 1727 01:11:14,080 --> 01:11:15,810 Ja kui hakkate koostööd sõprade või 1728 01:11:15,810 --> 01:11:19,010 partnerite ja kolleegidega, on sul võimalik kirjutada palju rohkem 1729 01:11:19,010 --> 01:11:22,910 suuremahulisi alustades teostada neid põhilisi 1730 01:11:22,910 --> 01:11:23,990 ehituskivid. 1731 01:11:23,990 --> 01:11:25,550 >> Nii et öelda, miks me ei nimetavad seda päeva? 1732 01:11:25,550 --> 01:11:27,190 Ja me näeme kolmapäeval. 1733 01:11:27,190 --> 01:11:33,611 [Aplaus]