1 00:00:00,000 --> 00:00:00,980 2 00:00:00,980 --> 00:00:04,410 >> [Muzikos grojimo] 3 00:00:04,410 --> 00:00:11,147 4 00:00:11,147 --> 00:00:12,230 David J. Malan: Gerai. 5 00:00:12,230 --> 00:00:16,440 Tai CS50, ir tai yra 2 savaitės pabaigoje. 6 00:00:16,440 --> 00:00:18,480 Taigi, šiandien mes ketiname tęsti savo išvaizdą 7 00:00:18,480 --> 00:00:21,150 tuo, kaip mes atstovaujame dalykus po hood-- tolsta 8 00:00:21,150 --> 00:00:23,520 iš numerius, pavyzdžiui, sveikieji skaičiai ir slankiojo kablelio vertybes 9 00:00:23,520 --> 00:00:26,810 ir sutelkiant dėmesį į eilutes ir galiausiai daugiau įdomių programų. 10 00:00:26,810 --> 00:00:30,140 Tačiau mes taip pat priimsime išvaizdą pora domeno specifinis problems-- 11 00:00:30,140 --> 00:00:33,620 kurių pirmasis bus būti įtraukti kriptografiją, 12 00:00:33,620 --> 00:00:36,570 iš kodavimo informaciją menas, , kurioje pamatysite kaip čia 13 00:00:36,570 --> 00:00:41,480 yra radijo Našlaitis Annie nuotraukos paslaptis dekoderis žiedas iš pasekėjai. 14 00:00:41,480 --> 00:00:46,490 >> Tai iš tikrųjų yra labai primityvi forma ir vaikas draugiškas forma cryptopgraphy 15 00:00:46,490 --> 00:00:50,590 , kai šis žiedas turi du disks-- viena viduje ir viena lauke. 16 00:00:50,590 --> 00:00:54,740 Ir sukasi vienas iš tų, galite esmės išsirikiuoti laiškus kaip 17 00:00:54,740 --> 00:00:59,520 iki Z su kitais raštais kaip B naudojant A. Kitaip tariant, 18 00:00:59,520 --> 00:01:03,730 Jūs galite tiesiog pasukti abėcėlę, taip ateina su žemėlapių nuo 19 00:01:03,730 --> 00:01:07,820 laiškai laiškus taip, kad, jei norėjo siųsti slaptą žinutę 20 00:01:07,820 --> 00:01:11,820 kad kažkas panašaus Annie, galite rašyti žemyn jūsų pranešimą ir tada pasukite 21 00:01:11,820 --> 00:01:15,370 raidės, pagal kurią, jei jūs turite galvoje pasakyti "A", jūs vietoj pasakyti "B" 22 00:01:15,370 --> 00:01:17,280 jūs norėjote pasakyti "B" Jūs, o ne sakyti, "C" - 23 00:01:17,280 --> 00:01:20,240 ar kažką šiek tiek daugiau protingas nei that-- ir tada, galiausiai, 24 00:01:20,240 --> 00:01:24,630 kol Annie turi šią dekoderis žiedas, ji gali iššifruoti pranešimą. 25 00:01:24,630 --> 00:01:28,540 Dabar, jums gali prisiminti, iš tikrųjų, kad ši buvo naudojamas labai garsaus filmo, kad 26 00:01:28,540 --> 00:01:31,140 vaidina ad nauseum metu Kalėdų sezoną. 27 00:01:31,140 --> 00:01:32,650 Paimkime pažvelgti čia. 28 00:01:32,650 --> 00:01:35,294 29 00:01:35,294 --> 00:01:37,210 Ralphie PARKER: "Būk Žinoma, kad visi santrauka 30 00:01:37,210 --> 00:01:41,000 kad Ralph Parkeris yra skiriamas Mažosios Orphan Annie Secret narys 31 00:01:41,000 --> 00:01:44,860 Draugų ir turi teisę visi pagyrimu ir nauda pasireiškia tuo. " 32 00:01:44,860 --> 00:01:47,410 >> Ralphie PARKER (pasakojama): Pasirašyta Little Našlaitis Annie. 33 00:01:47,410 --> 00:01:50,070 Parašu, Pierre Andre! 34 00:01:50,070 --> 00:01:51,490 Be rašalu. 35 00:01:51,490 --> 00:01:55,494 Garbės ir nauda, jau nuo devynerių metų. 36 00:01:55,494 --> 00:01:57,402 >> [Muzikos grojimo] 37 00:01:57,402 --> 00:02:00,470 >> [RADIJO Pašnekovo] 38 00:02:00,470 --> 00:02:01,470 Ralphie PARKER: Nagi. 39 00:02:01,470 --> 00:02:02,344 Leiskite grįžti į ją. 40 00:02:02,344 --> 00:02:06,029 Man nereikia visą tą džiazą apie kontrabandininkus ir piratai. 41 00:02:06,029 --> 00:02:08,820 RADIJO Komentatorius: Klausykitės rytoj naktį baigiamajame nuotykių 42 00:02:08,820 --> 00:02:11,060 The Black Pirate Ship. 43 00:02:11,060 --> 00:02:14,740 Dabar atėjo laikas Annie Slapta pasakyti nariai 44 00:02:14,740 --> 00:02:17,110 iš Secret Circle. 45 00:02:17,110 --> 00:02:20,700 Prisiminti vaikams, tik nariams Annie Secret Circle 46 00:02:20,700 --> 00:02:23,270 gali dekoduoti Annie slaptą žinutę. 47 00:02:23,270 --> 00:02:27,270 >> Atminkite, Annie priklauso nuo jūsų. 48 00:02:27,270 --> 00:02:30,060 Nustatykite savo smeigtukai B-2. 49 00:02:30,060 --> 00:02:34,004 Čia yra Message 12, 11, 2-- 50 00:02:34,004 --> 00:02:36,503 Ralphie PARKER (pasakojama): Aš esu savo pirmąją slaptą susitikimą. 51 00:02:36,503 --> 00:02:40,041 RADIJO Komentatorius: --25, 14, 11, 18, 16-- 52 00:02:40,041 --> 00:02:42,790 Ralphie PARKER (pasakojama): O, Pierre buvo labai balso vakarą. 53 00:02:42,790 --> 00:02:46,110 Galėčiau pasakyti, kad vakaro žinia buvo tikrai svarbus. 54 00:02:46,110 --> 00:02:47,930 >> RADIJO Komentatorius: --3, 25. 55 00:02:47,930 --> 00:02:49,940 Štai iš Annie pati žinutė. 56 00:02:49,940 --> 00:02:52,182 Atminkite, kad nereikia niekam. 57 00:02:52,182 --> 00:02:55,077 >> [Tapyba] 58 00:02:55,077 --> 00:02:57,285 Ralphie PARKER (pasakojama): Vėliau nei devyniasdešimt sekundžių, aš 59 00:02:57,285 --> 00:03:00,090 vieninteliame kambaryje namas, kuriame iš devynių berniukas 60 00:03:00,090 --> 00:03:04,380 gali sėdėti privatumo ir iššifruoti. 61 00:03:04,380 --> 00:03:04,990 Ak. 62 00:03:04,990 --> 00:03:05,680 "B." 63 00:03:05,680 --> 00:03:06,524 >> [Kikenimu] 64 00:03:06,524 --> 00:03:08,684 >> Ralphie PARKER (pasakojama): Nuėjau į kitą. 65 00:03:08,684 --> 00:03:09,610 "E." 66 00:03:09,610 --> 00:03:11,641 Pirmasis žodis yra "būti". 67 00:03:11,641 --> 00:03:12,140 Taip! 68 00:03:12,140 --> 00:03:14,293 Jis artėjo lengviau dabar. 69 00:03:14,293 --> 00:03:15,259 "U." 70 00:03:15,259 --> 00:03:16,225 >> [Kikenimu] 71 00:03:16,225 --> 00:03:18,157 >> RANDY PARKER: Aw, nagi, Ralphie. 72 00:03:18,157 --> 00:03:19,606 Turiu eiti! 73 00:03:19,606 --> 00:03:21,538 >> Ralphie PARKER: aš būsiu teisus žemyn, Ma. 74 00:03:21,538 --> 00:03:22,504 Gee nusišvilpti. 75 00:03:22,504 --> 00:03:25,402 76 00:03:25,402 --> 00:03:31,220 "T." "O." "Būtinai į. "Būtinai", ką? 77 00:03:31,220 --> 00:03:33,981 Koks buvo Little Našlaitis Annie bando pasakyti? "Būtinai", ką? 78 00:03:33,981 --> 00:03:35,522 MOTINA: Ralphie Randy gavo eiti. 79 00:03:35,522 --> 00:03:36,735 Ar galite išeiti? 80 00:03:36,735 --> 00:03:38,190 >> Ralphie PARKER: Gerai, mama! 81 00:03:38,190 --> 00:03:39,787 Aš būsiu ne! 82 00:03:39,787 --> 00:03:41,995 Ralphie PARKER (pasakojama): Man buvo vis arčiau dabar. 83 00:03:41,995 --> 00:03:43,370 Įtampa buvo baisi. 84 00:03:43,370 --> 00:03:44,794 Kokia ji buvo? 85 00:03:44,794 --> 00:03:47,656 Planetos likimas gali pakabinti ant plauko. 86 00:03:47,656 --> 00:03:50,518 >> MOTINA: Ralphie, Randy turiu eiti! 87 00:03:50,518 --> 00:03:53,635 >> Ralphie PARKER: aš būsiu teisus out, šaukė garsiai! 88 00:03:53,635 --> 00:03:55,343 Ralphie PARKER (Pasakoja): Beveik ten! 89 00:03:55,343 --> 00:03:56,520 Mano pirštai atskrido! 90 00:03:56,520 --> 00:03:58,500 Mano protas buvo plieno spąstai. 91 00:03:58,500 --> 00:03:59,850 Kiekvienas porų vibruoja. 92 00:03:59,850 --> 00:04:01,806 Tai buvo beveik aišku! 93 00:04:01,806 --> 00:04:02,773 Taip! 94 00:04:02,773 --> 00:04:03,273 Taip! 95 00:04:03,273 --> 00:04:03,773 Taip! 96 00:04:03,773 --> 00:04:04,740 Taip! 97 00:04:04,740 --> 00:04:10,250 >> Ralphie PARKER: "Būtinai gerti savo Ovaltine ". 98 00:04:10,250 --> 00:04:10,750 Ovaltine? 99 00:04:10,750 --> 00:04:14,864 100 00:04:14,864 --> 00:04:17,539 Prastas komercinis? 101 00:04:17,539 --> 00:04:19,439 >> [Muzikos grojimo] 102 00:04:19,439 --> 00:04:21,724 >> Ralphie PARKER: Kalės vaikas. 103 00:04:21,724 --> 00:04:23,460 >> [Atsakyti] 104 00:04:23,460 --> 00:04:27,070 >> David J. Malan: Taigi, kad tada yra kokia kriptografija žvilgsnis 105 00:04:27,070 --> 00:04:29,880 gali būti, this-- a gerti iš pasekėjai. 106 00:04:29,880 --> 00:04:30,900 Taigi greitai paskelbimas. 107 00:04:30,900 --> 00:04:33,410 Jei esate nemokamai tai Penktadienį 13:15 ir būtų 108 00:04:33,410 --> 00:04:36,610 norėčiau prisijungti prie mūsų CS50 pietūs, galva į šį URL čia. 109 00:04:36,610 --> 00:04:38,080 Pirmas atėjai, pirmas tarnauti kaip įprasta. 110 00:04:38,080 --> 00:04:41,840 Tačiau laikui bėgant, mes pasirūpinsime, kad Patys visiems, kurie norite dalyvauti 111 00:04:41,840 --> 00:04:43,640 gali planuoti išmintingas. 112 00:04:43,640 --> 00:04:45,170 >> Taigi stygos. 113 00:04:45,170 --> 00:04:47,940 Mes turime Zamyla-- KURIUO jūs dabar susitiko greičiausiai 114 00:04:47,940 --> 00:04:50,750 į problemą, 1-- kurio pavadinimas rašomas taip. 115 00:04:50,750 --> 00:04:53,570 Ir manau, kad jūs įvedėte savo vardą į kompiuterio programą, kad manimi 116 00:04:53,570 --> 00:04:55,710 naudojant kažką panašaus getString. 117 00:04:55,710 --> 00:04:57,890 Kad gauti tie klavišų, kaip 118 00:04:57,890 --> 00:05:01,620 mes eiti apie atstovaujantis eilutė, žodis, pastraipa, 119 00:05:01,620 --> 00:05:03,960 arba kelis laiškus, kaip šie čia? 120 00:05:03,960 --> 00:05:06,790 >> Mes kalbėjomės paskutinį kartą apie sveikieji skaičiai ir problemos 121 00:05:06,790 --> 00:05:09,960 kurie kyla su sveikojo skaičiaus perpildymo ir slankiojo kablelio vertybes 122 00:05:09,960 --> 00:05:12,190 ir problemos, su kuriomis atsiranda per tikslumu. 123 00:05:12,190 --> 00:05:16,080 Su stygos, mes bent turėti šiek tiek daugiau lankstumo 124 00:05:16,080 --> 00:05:17,970 nes strings-- tik realiame world-- 125 00:05:17,970 --> 00:05:19,790 gali būti gana savavališkas ilgis. 126 00:05:19,790 --> 00:05:21,055 Gana trumpas, gana ilgai. 127 00:05:21,055 --> 00:05:23,680 Bet net ir tada, mes ketiname mano, kad kompiuteriai gali kartais 128 00:05:23,680 --> 00:05:27,200 paleisti iš atminties, o ne dar laikyti pakankamai didelis eilutę. 129 00:05:27,200 --> 00:05:30,840 >> Bet dabar, pradėkime vizualizuoti eilutė, kaip kažkas šiose dėžėse 130 00:05:30,840 --> 00:05:31,340 čia. 131 00:05:31,340 --> 00:05:36,410 Taigi šešių tokios dėžės, kurių kiekvienas atstovauja simbolį arba "char". 132 00:05:36,410 --> 00:05:40,646 Taigi prisiminti, kad "char", - c-h--r-- yra vienas iš built-in duomenų tipų C. 133 00:05:40,646 --> 00:05:43,520 Ir kas malonu yra tai, kad jūs galite naudoti kad tarsi kaip statybinis blokas, 134 00:05:43,520 --> 00:05:47,880 dėlionės gabalas, jei norite, kad susidarytų didesnis duomenų tipas, kad mes ir toliau 135 00:05:47,880 --> 00:05:49,410 skambinti "eilutę". 136 00:05:49,410 --> 00:05:53,650 >> Dabar, kas yra naudinga apie mąstymo apie tokius dalykus kaip stygos šiuo būdu? 137 00:05:53,650 --> 00:05:57,720 Na, it turns out, kad mes galime realiai išnaudoti šią struktūrą 138 00:05:57,720 --> 00:06:01,420 faktiškai pasiekti atskirus simbolius į gana nesudėtingai. 139 00:06:01,420 --> 00:06:04,099 Aš ruošiuosi eiti į priekį ir kurti failas, vadinamas "stringzero.c" 140 00:06:04,099 --> 00:06:05,765 bet jūs galite jį vadiname viską, ką norite. 141 00:06:05,765 --> 00:06:08,500 Ir nuo kurso tinklalapyje yra jau šis pavyzdys iš anksto, 142 00:06:08,500 --> 00:06:10,430 taigi jums nereikės reikia įrašykite viską iš. 143 00:06:10,430 --> 00:06:13,820 >> Ir aš ruošiuosi eiti į priekį ir pirmą kartą padaryti int main negaliojančiu. 144 00:06:13,820 --> 00:06:15,980 Ir per kelias dienas, mes pradėsime erzinti išskyrus 145 00:06:15,980 --> 00:06:19,070 kas tuščia čia, kodėl tai int šalia pagrindinė ir kt. 146 00:06:19,070 --> 00:06:21,180 Bet dabar, tegul toliau kopijuoti įklijuokite kad. 147 00:06:21,180 --> 00:06:23,455 >> Aš ruošiuosi paskelbti eilutę, vadinamą Š. 148 00:06:23,455 --> 00:06:26,920 Ir aš ruošiuosi grįžti iš GetString kokiomis vartotojo tipus. 149 00:06:26,920 --> 00:06:29,170 Tai bus paprasta programa, jokių nurodymų, 150 00:06:29,170 --> 00:06:31,336 Aš tik ketina aklai tikėtis, kad vartotojas žino 151 00:06:31,336 --> 00:06:32,600 ką daryti, kad laikyti jį paprasta. 152 00:06:32,600 --> 00:06:34,220 >> Ir dabar aš ruošiuosi už linijos. 153 00:06:34,220 --> 00:06:37,450 Ir viduje mano už kilpa aš teks int i gauna nulį. 154 00:06:37,450 --> 00:06:40,660 Ir aš, vėlgi, tik konvencija, rodyklė kintamasis skaičiavimas, 155 00:06:40,660 --> 00:06:42,350 bet aš negalėjau tai vadiname, ką noriu. 156 00:06:42,350 --> 00:06:46,275 Aš ruošiuosi daryti i mažiau than-- gerai Zamyla vardas šešių simbolių ilgio. 157 00:06:46,275 --> 00:06:48,150 Taigi, aš ruošiuosi sunku kodas, kuris yra dabar. 158 00:06:48,150 --> 00:06:49,730 >> Ir tada i ++. 159 00:06:49,730 --> 00:06:53,190 Ir dabar viduje jie garbanoti petnešos aš ruošiuosi daryti printf, 160 00:06:53,190 --> 00:06:55,460 ir aš noriu spausdinti vieną charakteris metu. 161 00:06:55,460 --> 00:06:58,227 Taigi, aš ruošiuosi naudoti% C ir galbūt pirmą kartą. 162 00:06:58,227 --> 00:07:00,560 Ir tada aš noriu spausdinti kiekvieną charakteris atskiroje eilutėje. 163 00:07:00,560 --> 00:07:02,550 Taigi, aš ruošiuosi įdėti mažai Backslash n ten. 164 00:07:02,550 --> 00:07:03,640 Uždaryti citata. 165 00:07:03,640 --> 00:07:06,250 >> Ir dabar aš noriu padaryti kažką čia. 166 00:07:06,250 --> 00:07:10,610 Noriu atsispausdinti konkretus laiškas į eilutę, 167 00:07:10,610 --> 00:07:13,670 ai, kaip aš Iteracja nuo nulio iki šešių. 168 00:07:13,670 --> 00:07:17,150 Kitaip tariant, aš noriu spausdinti i'th charakterį s. 169 00:07:17,150 --> 00:07:18,420 Dabar, kaip aš galiu tai padaryti? 170 00:07:18,420 --> 00:07:21,550 >> Na panašiai kaip langeliuose atstovavimas čia 171 00:07:21,550 --> 00:07:25,560 rūšies, įsivaizduoti, kad bokso sąvoką raidės, galite taip pat padaryti, kad 172 00:07:25,560 --> 00:07:32,630 sintaksiškai C tiesiog nurodant, Noriu atsispausdinti S i'th pobūdžio. 173 00:07:32,630 --> 00:07:35,640 Naudojant skliaustus ant kompiuterio klaviatūros 174 00:07:35,640 --> 00:07:38,910 kad JAV klaviatūros yra paprastai virš jūsų grąžinimo raktu. 175 00:07:38,910 --> 00:07:42,630 >> Taigi tai yra ne visai teisus dar, kaip jūs galbūt jau pastebėjote. 176 00:07:42,630 --> 00:07:44,780 Bet aš ruošiuosi natūra aklai išsiveržia į priekį čia. 177 00:07:44,780 --> 00:07:47,020 Ir aš ruošiuosi daryti, kad string 0. 178 00:07:47,020 --> 00:07:50,860 Tačiau prieš tai padaryti, tegul pamatyti, jei mes negali numatyti kai kurių bendrų klaidų. 179 00:07:50,860 --> 00:07:52,844 Ar tai kompiliuoti? 180 00:07:52,844 --> 00:07:54,510 Ne, aš trūksta visa krūva daiktų. 181 00:07:54,510 --> 00:07:55,280 Bibliotekos išgirdau. 182 00:07:55,280 --> 00:07:58,480 >> Taigi, kuris header failus gali Noriu pridurti? 183 00:07:58,480 --> 00:07:59,205 Taip. 184 00:07:59,205 --> 00:08:01,580 >> PUBLIKA: Jums reikia standartinis I / O [nesigirdi] 185 00:08:01,580 --> 00:08:02,663 >> David J. Malan: Puikiai. 186 00:08:02,663 --> 00:08:06,060 Taigi man reikia standartinio I / O. Už ką tikslas aš noriu standartinį I / O? 187 00:08:06,060 --> 00:08:06,670 Dėl printf. 188 00:08:06,670 --> 00:08:09,220 Taigi yra stdio.h. 189 00:08:09,220 --> 00:08:13,490 Ir jūs taip pat pasiūlyti, kad aš taip pat CS50 biblioteka, dėl kokių priežasčių? 190 00:08:13,490 --> 00:08:14,650 Norėdami turėti stygos. 191 00:08:14,650 --> 00:08:17,780 Taigi, mes pamatyti, ką CS50 biblioteka daro 192 00:08:17,780 --> 00:08:19,260 sukurti šią eilutę sąvoką. 193 00:08:19,260 --> 00:08:21,930 Bet dabar, jūs tiesiog galite galvoti apie tai, kaip faktinė duomenų tipą. 194 00:08:21,930 --> 00:08:23,596 >> Taigi, atrodo, kad būti šiek tiek išvalyti. 195 00:08:23,596 --> 00:08:27,060 Ir dabar aš ruošiuosi eiti į priekį ir iš tiesų tai padaryti eilutę 0. 196 00:08:27,060 --> 00:08:27,700 Parengė. 197 00:08:27,700 --> 00:08:28,370 Taigi, kad gerai. 198 00:08:28,370 --> 00:08:32,799 Taigi ./string0 leiskite padidinti, todėl mes galime labiau, kas vyksta pamatyti. 199 00:08:32,799 --> 00:08:33,850 Įveskite. 200 00:08:33,850 --> 00:08:37,789 Z-M-Y-L-Enter. 201 00:08:37,789 --> 00:08:39,440 Ir mes išspausdintas su Zamyla vardu. 202 00:08:39,440 --> 00:08:40,409 >> Taigi tai gana geras. 203 00:08:40,409 --> 00:08:43,220 Taigi dabar eikime į priekį ir paleisti šią programą iš naujo, 204 00:08:43,220 --> 00:08:45,659 ir tipo iš Daven savo vardą ir pavardę. 205 00:08:45,659 --> 00:08:46,450 Staigmena, staigmena. 206 00:08:46,450 --> 00:08:48,021 Įveskite. 207 00:08:48,021 --> 00:08:48,520 Hmm. 208 00:08:48,520 --> 00:08:51,750 Mes ne atspausdintas Daven s pilnas vardas teisingai. 209 00:08:51,750 --> 00:08:54,250 Dabar tai turėtų būti akivaizdu Retrospekcja dėl ko, 210 00:08:54,250 --> 00:08:57,010 rūšiuoti, kvailas dizainas sprendimas? 211 00:08:57,010 --> 00:08:59,590 >> Taip, aš sunkiai koduojami šešių viduje mano už linijos. 212 00:08:59,590 --> 00:09:01,610 Dabar aš padariau, kad tik todėl, kad Žinojau Zamyla vardą 213 00:09:01,610 --> 00:09:02,776 buvau ketinate būti šešios raidės. 214 00:09:02,776 --> 00:09:04,720 Bet tikrai tai nėra bendras sprendimas. 215 00:09:04,720 --> 00:09:07,720 Taigi paaiškėja, mes galime dinamiškai išsiaiškinti tam eilutės ilgis 216 00:09:07,720 --> 00:09:10,440 paskambinę funkcija vadinama strlen. 217 00:09:10,440 --> 00:09:12,840 >> Vėlgi, sąmoningai trumpai vadinamas tiesiog 218 00:09:12,840 --> 00:09:14,450 kad ji taptų patogi tipo. 219 00:09:14,450 --> 00:09:17,170 Bet tai sinonimas gauti tam eilutės ilgis. 220 00:09:17,170 --> 00:09:23,190 Aš ruošiuosi grįžti į savo terminalą langą ir iš naujo paleisti kompiliatorių. 221 00:09:23,190 --> 00:09:24,170 Bet tai šaukiantį į mane. 222 00:09:24,170 --> 00:09:29,130 Spėti skelbiantis bibliotekos funkciją strlen su tipo unsigned int const-- 223 00:09:29,130 --> 00:09:29,780 Aš prarado. 224 00:09:29,780 --> 00:09:30,590 Visiškai. 225 00:09:30,590 --> 00:09:32,940 >> Taigi, visų pirma savo akys pradeda glazūra per 226 00:09:32,940 --> 00:09:36,000 su klaidų pranešimus, kaip tai, dėmesio sąžiningai apie pirmuosius keletą žodžių. 227 00:09:36,000 --> 00:09:38,590 Mes žinome, problema yra linija 8, kaip nurodyta čia. 228 00:09:38,590 --> 00:09:40,500 Ir tai virvele-0.c. 229 00:09:40,500 --> 00:09:43,580 Spėti skelbiantis bibliotekos funkcija strlen. 230 00:09:43,580 --> 00:09:47,000 Taigi, kad paprastai vyksta būti klaidų pranešimų raštas. 231 00:09:47,000 --> 00:09:49,190 Spėti skelbiantis kažką. 232 00:09:49,190 --> 00:09:53,250 >> Taigi trumpai tariant, tai, ką aš turiu, atrodo, padariau atžvilgiu linija 8, čia. 233 00:09:53,250 --> 00:09:56,880 Kas gali būti sprendimas dar jei jūs niekada nesinaudojo strlen sau? 234 00:09:56,880 --> 00:09:58,907 >> PUBLIKA: Dalis kitokio bibliotekoje? 235 00:09:58,907 --> 00:10:00,740 David J. Malan: Dalis skirtingo bibliotekoje. 236 00:10:00,740 --> 00:10:02,400 Taigi jis pareiškė, kad kalbėti. 237 00:10:02,400 --> 00:10:07,510 Ji minima kai byla išskyrus stdio.h ir CS50.h. 238 00:10:07,510 --> 00:10:09,179 Dabar, kai jis apibrėžtas? 239 00:10:09,179 --> 00:10:12,220 Tiesą sakant, jūs arba turi tik žinau, tai ne jūsų galvos viršuje, 240 00:10:12,220 --> 00:10:13,640 ar jums paieškos serveriuose tai ir sužinoti. 241 00:10:13,640 --> 00:10:18,150 Arba žinoti, aš atvėrė į CS50 Prietaiso nustatymas terminalo programą, kuri 242 00:10:18,150 --> 00:10:22,200 yra tik didelis, per visą ekraną portalo kas į gedit lango apačioje. 243 00:10:22,200 --> 00:10:24,970 >> Ir it turns out, kad yra Panašiai lakoniškas komandą, vadinama 244 00:10:24,970 --> 00:10:29,280 žmogus vadovą, kur, jei įvedate iš funkcijos pavadinimas ir paspauskite "Enter", 245 00:10:29,280 --> 00:10:32,240 jūs gausite atgal gana paslaptinga dokumentai. 246 00:10:32,240 --> 00:10:35,299 Tai tiesiog tekstas, paprastai atrodo šiek tiek kažką panašaus į tai. 247 00:10:35,299 --> 00:10:37,090 Tai šiek tiek absoliuti iš pirmo žvilgsnio. 248 00:10:37,090 --> 00:10:39,048 Bet atvirai aš ruošiuosi tegul mano akys glazūra per 249 00:10:39,048 --> 00:10:41,930 ir tik sutelkti dėmesį į iš dalies Aš rūpintis šiuo metu. 250 00:10:41,930 --> 00:10:42,780 >> Kuris yra tai. 251 00:10:42,780 --> 00:10:45,470 Kuris atrodo struktūriškai kaip ką aš esu susipažinęs su. 252 00:10:45,470 --> 00:10:48,080 Iš tiesų žmogus puslapis, taip kalbėti, pasakys 253 00:10:48,080 --> 00:10:51,590 kokia antraštė failą funkcija kaip strlen apibrėžiama. 254 00:10:51,590 --> 00:10:54,170 Taigi, aš ruošiuosi grįžti dabar gedit. 255 00:10:54,170 --> 00:10:59,070 Ir aš ruošiuosi eiti į priekį ir pridėti čia Include 256 00:10:59,070 --> 00:11:00,480 ir išsaugokite failą. 257 00:11:00,480 --> 00:11:04,300 >> Aš einu išvalyti ekraną Valdymo L Jei jau įdomu. 258 00:11:04,300 --> 00:11:08,210 Ir aš ruošiuosi vėl paleisti markę string.0, sudaro šį kartą. 259 00:11:08,210 --> 00:11:11,790 ./string.0 Zamyla. 260 00:11:11,790 --> 00:11:15,020 Atrodė, kad dirbti Leiskite man eiti į priekį ir iš naujo paleisti jį su Davenport. 261 00:11:15,020 --> 00:11:15,860 Įveskite. 262 00:11:15,860 --> 00:11:17,730 Ir tai taip pat atrodė, kad dirbti. 263 00:11:17,730 --> 00:11:21,220 >> Taigi, mes galime padaryti šiek tiek geriau, nei tai, nors, mes galime pradėti su tvarkinga dalykų 264 00:11:21,220 --> 00:11:23,257 iki tik šiek tiek. 265 00:11:23,257 --> 00:11:25,590 Ir aš ruošiuosi iš tikrųjų pristatyti dar vieną dalyką dabar. 266 00:11:25,590 --> 00:11:28,930 Aš ruošiuosi eiti į priekį ir išsaugoti tai į kitą failą. 267 00:11:28,930 --> 00:11:31,770 Ir aš ruošiuosi skambinti šią bylą string1.c tik 268 00:11:31,770 --> 00:11:34,620 turi būti suderinti su kodu Galėsite rasti internete. 269 00:11:34,620 --> 00:11:37,050 >> Ir tegul sutelkti dėmesį į lygiai tas pats kodas. 270 00:11:37,050 --> 00:11:39,000 Pasirodo, kad aš buvo rūšies paėmimo 271 00:11:39,000 --> 00:11:42,600 savaime suprantamu dalyku tai, kad mano nešiojamas, ir, savo ruožtu, CS50 prietaisas 272 00:11:42,600 --> 00:11:47,450 turi daug atminties, daug daug RAM baitų daug erdvės 273 00:11:47,450 --> 00:11:48,920 į kurį galiu laikyti eilutes. 274 00:11:48,920 --> 00:11:53,560 >> Tačiau tikrovė, jei aš įvedėte ilgai pakankamai ir pakankamai klavišų, 275 00:11:53,560 --> 00:11:56,170 Aš teoriškai tipą daugiau simbolių 276 00:11:56,170 --> 00:11:58,830 nei mano kompiuteryje fiziškai turi atmintį. 277 00:11:58,830 --> 00:11:59,830 Ir tai yra problemiškas. 278 00:11:59,830 --> 00:12:03,050 Panašiai kaip int gali tik skaičius toks didelis, teoriškai, 279 00:12:03,050 --> 00:12:06,600 jūs galite tik prisikimšti tiek daug simbolių, į kompiuterio RAM arba su atsitiktiniais 280 00:12:06,600 --> 00:12:07,920 Access Memory. 281 00:12:07,920 --> 00:12:11,140 >> Taigi aš geriau numatyti ši problema, net 282 00:12:11,140 --> 00:12:13,660 nors tai gali būti retos kampe atveju, taip sakant. 283 00:12:13,660 --> 00:12:15,670 Ar negali atsitikti, kad dažnai gali atsitikti. 284 00:12:15,670 --> 00:12:18,815 Ir jei tai atsitinka ir aš ne numatyti ir programa jį, 285 00:12:18,815 --> 00:12:20,300 mano programa galėtų padaryti, kas žino ką. 286 00:12:20,300 --> 00:12:22,220 Freeze, pakabinti, perkrauti, whatever. 287 00:12:22,220 --> 00:12:24,490 Kažkas tikėtasi gali atsitikti. 288 00:12:24,490 --> 00:12:27,120 >> Taigi, ką aš ruošiuosi daryti dabar nuo šiol tikrai, 289 00:12:27,120 --> 00:12:31,630 yra prieš aš kada nors aklai naudoti kintamąjį kaip s, kad 290 00:12:31,630 --> 00:12:36,790 buvo priskirtas sugrįžimo vertę kai kurios kitos funkcijos kaip getstring, 291 00:12:36,790 --> 00:12:40,200 Aš ruošiuosi įsitikinti kad jo vertė yra galiojanti. 292 00:12:40,200 --> 00:12:44,280 Taigi aš žinau, tik gražu skaityti CS50 dokumentacijoje getstring, 293 00:12:44,280 --> 00:12:49,020 kuri galiausiai mes jums turi būti nukreiptas, kad getstring grįžta ypatingą simbolį 294 00:12:49,020 --> 00:12:53,610 vadinamas NULL, N-U-L-l visi kepurės, jei kažkas negerai. 295 00:12:53,610 --> 00:12:55,650 >> Taigi paprastai, jis grąžina eilutę. 296 00:12:55,650 --> 00:12:59,700 Bet kitaip, jei jis grįžta N-U-L-L-- mes galų gale pamatyti, ką tai iš tikrųjų 297 00:12:59,700 --> 00:13:01,790 means-- kad tik reiškia, kažkas blogai atsitiko. 298 00:13:01,790 --> 00:13:05,560 Dabar tai reiškia, panašiai kaip nulio, Galiu patikrinti sąlygą čia C, 299 00:13:05,560 --> 00:13:08,830 jei s daro ne vienodą NULL. 300 00:13:08,830 --> 00:13:11,930 Taigi, jei jūs dar nematėte prieš tai, tai tiesiog reiškia, kad nėra lygūs. 301 00:13:11,930 --> 00:13:15,290 >> Taigi tai iš priešais lygių lygybės, kuri, primename, 302 00:13:15,290 --> 00:13:18,940 skiriasi nuo vieno lygi, kuris yra užduotis. 303 00:13:18,940 --> 00:13:23,030 Taigi, jei ai nėra lygi NULL, tik tada daryti 304 00:13:23,030 --> 00:13:25,980 Noriu atlikti šias kodo eilutes. 305 00:13:25,980 --> 00:13:28,080 Taigi, kitaip tariant, kol aš pasinerti aklai 306 00:13:28,080 --> 00:13:30,919 ir pradėti Iteracja per s, ir jį gydyti 307 00:13:30,919 --> 00:13:33,710 kaip nors tai iš eilės simbolių, aš pirmiausia patikrinti, 308 00:13:33,710 --> 00:13:37,900 palauk, tai s tikrai ne lygi šios specialios vertės, NULL? 309 00:13:37,900 --> 00:13:40,030 >> Nes jei jis yra, blogi dalykai gali atsitikti. 310 00:13:40,030 --> 00:13:43,080 Ir dabar, tarkime, kad blogus dalykus vyksta reiškia, kad jūsų programa sugenda, 311 00:13:43,080 --> 00:13:45,070 ir jūs galite nebūtinai atsigauti. 312 00:13:45,070 --> 00:13:46,800 Taigi atvirai, atrodo mažiau akivaizdus. 313 00:13:46,800 --> 00:13:48,660 tai tipo painu dabar žvilgsnio. 314 00:13:48,660 --> 00:13:50,780 Tačiau tai taps susipažinęs prieš ilgas. 315 00:13:50,780 --> 00:13:52,920 >> Bet aš ruošiuosi pasiūlyti dabar vienas kitas patobulinimas. 316 00:13:52,920 --> 00:13:54,660 Štai patobulinimas teisingumą. 317 00:13:54,660 --> 00:13:58,800 Mano programa dabar yra labiau tinkamas, nes retais atvejais, kad nepakanka atminties 318 00:13:58,800 --> 00:14:01,180 egzistuoja, tvarkyti, ir aš tiesiog nieko nedaryti. 319 00:14:01,180 --> 00:14:02,680 Aš bent jau nebus katastrofos. 320 00:14:02,680 --> 00:14:05,000 >> Bet darykime galutinę versiją čia. 321 00:14:05,000 --> 00:14:07,690 Ir byla vadinama string2.c. 322 00:14:07,690 --> 00:14:10,190 Aš ruošiuosi įdėti, kad Tas pats kodas truputi, 323 00:14:10,190 --> 00:14:14,210 ir aš ruošiuosi pabrėžti tai linija, 11, čia tik už akimirką. 324 00:14:14,210 --> 00:14:18,179 Dabar realybė yra tai, kad protingas kompiliatoriai kaip Zaszczękać galėtų išspręsti šią problemą mums 325 00:14:18,179 --> 00:14:19,970 užkulisiuose be mūsų nuolat nežinant. 326 00:14:19,970 --> 00:14:24,670 Bet pagalvokime apie tai iš esmės kaip probleminio dizainas. 327 00:14:24,670 --> 00:14:29,010 >> Šis kodo eilutę, žinoma, sakydamas, inicijuoti kai kintamasis I 0. 328 00:14:29,010 --> 00:14:30,260 Tai gana paprasta. 329 00:14:30,260 --> 00:14:34,691 Ir kas kartą tai teiginys, čia i ++, darai? 330 00:14:34,691 --> 00:14:37,066 Mes matėme anksčiau, bet mes nelabai apie tai kalbėti. 331 00:14:37,066 --> 00:14:37,900 >> PUBLIKA: leidžiama didinti i. 332 00:14:37,900 --> 00:14:39,191 >> David J. Malan: leidžiama didinti i. 333 00:14:39,191 --> 00:14:41,890 Taigi ant kiekvieno pakartojimo per šis ciklas, kiekvienas ciklas, 334 00:14:41,890 --> 00:14:43,570 jūs incrementing i viena. 335 00:14:43,570 --> 00:14:45,740 Taigi ji tampa didesni ir didesni, ir didesni, kol kilpa nutraukė. 336 00:14:45,740 --> 00:14:46,810 Kaip ji nutraukti? 337 00:14:46,810 --> 00:14:49,430 Na ten tai vidutinio sąlyga, kuri mes naudojamas anksčiau. 338 00:14:49,430 --> 00:14:52,500 Jūs mačiau ir Walkthroughs į P rinkinys. 339 00:14:52,500 --> 00:14:53,880 >> Bet kas tai yra posakis? 340 00:14:53,880 --> 00:14:58,352 Ar šią kilpą taip kol i yra mažesnis nei ką? 341 00:14:58,352 --> 00:14:59,810 PUBLIKA: Virvės ilgis. 342 00:14:59,810 --> 00:15:01,518 David J. Malan: ilgis eilutę. 343 00:15:01,518 --> 00:15:04,300 Taigi verčia gana švariai į anglų šia prasme. 344 00:15:04,300 --> 00:15:08,810 Dabar problema yra tai, kad kiekvieną kartą, kai aš pakartoti per šią kilpą teoriškai 345 00:15:08,810 --> 00:15:10,000 Aš prašau šį klausimą. 346 00:15:10,000 --> 00:15:12,250 Ar aš mažiau nei eilutės ilgis ir s? 347 00:15:12,250 --> 00:15:14,500 Ar aš mažiau nei eilutės ilgis ir s? 348 00:15:14,500 --> 00:15:18,380 >> Dabar yra i kinta nuo kiekvienos iteracijos? 349 00:15:18,380 --> 00:15:18,880 Tai. 350 00:15:18,880 --> 00:15:19,629 Dėl ++. 351 00:15:19,629 --> 00:15:21,700 Taigi kiekvienas pakartojimas man vis didesni. 352 00:15:21,700 --> 00:15:25,411 Bet darosi didesni, arba mažesnis arba keičiant ne visi? 353 00:15:25,411 --> 00:15:25,910 Ne 354 00:15:25,910 --> 00:15:30,240 Taigi kalbant apie dizainą, viena iš krypčių , išilgai kurio mes bandome įvertinti kodą 355 00:15:30,240 --> 00:15:32,610 klasėje, tai jaučiasi rūšies kvailas. 356 00:15:32,610 --> 00:15:34,690 >> Kaip jūs pažodžiui, ant kiekvieno pakartojimo 357 00:15:34,690 --> 00:15:37,110 Šios kilpos klausia pats velniškai klausimas vėl, 358 00:15:37,110 --> 00:15:40,770 ir vėl, ir vėl, ir tiesiogine prasme ji niekada pakeisti. 359 00:15:40,770 --> 00:15:44,220 Bent jei aš ne liesti s ir bando pakeisti s turinį. 360 00:15:44,220 --> 00:15:46,610 Taigi aš galiu padaryti šiek tiek geriau nei šis. 361 00:15:46,610 --> 00:15:49,530 >> Ir tai, ką aš ruošiuosi daryti nėra paskelbti tik vieną kintamąjį i, 362 00:15:49,530 --> 00:15:53,330 bet antra kintamasis gausit savavališkai, bet tradiciškai, jį vadiname n. 363 00:15:53,330 --> 00:15:55,940 Priskirti n lygi Styga ilgis s. 364 00:15:55,940 --> 00:15:59,090 Ir tada per čia, aš ruošiuosi padaryti protingas mažai optimizavimas, taip 365 00:15:59,090 --> 00:16:03,460 kalbėti, kad dienos pabaigoje yra ne daugiau teisinga, ar ne mažiau teisinga 366 00:16:03,460 --> 00:16:04,260 nei anksčiau. 367 00:16:04,260 --> 00:16:05,500 Bet tai geriau dizainas. 368 00:16:05,500 --> 00:16:09,480 Be to, kad aš naudoju mažiau laiko, mažiau CPU ciklų, todėl 369 00:16:09,480 --> 00:16:14,040 kalbėti, atsakyti į tą patį klausimas, tačiau tik vieną kartą. 370 00:16:14,040 --> 00:16:17,870 >> Bet toje Bendrieji klausimai principas gerinimas 371 00:16:17,870 --> 00:16:21,294 pasakyti, programos efektyvumas? 372 00:16:21,294 --> 00:16:21,991 Taip? 373 00:16:21,991 --> 00:16:23,699 PUBLIKA: Kodėl jums naudokite [nesigirdi]? 374 00:16:23,699 --> 00:16:25,760 375 00:16:25,760 --> 00:16:27,010 David J. Malan: Geras klausimas. 376 00:16:27,010 --> 00:16:30,690 Taigi, kodėl mes įdėti ++ nuo pabaigos i vietoj AŠ pradžia? 377 00:16:30,690 --> 00:16:33,070 Šiuo atveju, ji turi funkcinis poveikis. 378 00:16:33,070 --> 00:16:36,670 Ir apskritai, esu linkęs naudoti postfix operatorius 379 00:16:36,670 --> 00:16:41,750 kad tai šiek tiek daugiau aišku, kada operacija vyksta. 380 00:16:41,750 --> 00:16:46,670 >> Tiems, nepažįstamas, yra dar vienas pareiškimai, kuriais galima padaryti ++ i. 381 00:16:46,670 --> 00:16:48,747 Tai yra funkciškai atitinka šiuo atveju 382 00:16:48,747 --> 00:16:51,080 nes ten nieko aplink, kad rodmenų didėjimas. 383 00:16:51,080 --> 00:16:54,435 Bet jūs galite sugalvoti atvejai ir eilučių kodo 384 00:16:54,435 --> 00:16:55,810 , kurioje, kad daro skirtumą. 385 00:16:55,810 --> 00:16:57,810 Taigi apskritai, mes neturime net kalbėti apie šį vieną. 386 00:16:57,810 --> 00:17:00,690 Nes tiesą sakant, jis daro savo kodas seksualesnis, ir tarsi Lietusmētelis, 387 00:17:00,690 --> 00:17:01,776 ir mažiau simbolių. 388 00:17:01,776 --> 00:17:04,859 Tačiau tikrovė yra tokia, kad tai daug sunkiau, Manau, net ir man, į kuriuos vyniojami savo protą 389 00:17:04,859 --> 00:17:07,319 aplink jį, kartais, Veiklos tvarka. 390 00:17:07,319 --> 00:17:09,750 Taigi, kaip panaikinti, jei tikrai nepatinka tai, 391 00:17:09,750 --> 00:17:14,650 nors tai yra rūšies seksualus ieško, jūs taip pat gali tai padaryti i + = 1, 392 00:17:14,650 --> 00:17:18,880 kuris yra mažiau akivaizdus portalo pati idėja postfix rodmenų didėjimas. 393 00:17:18,880 --> 00:17:22,250 >> Aš tai sakau ir jums turėtų pasijuokti iš jo, 394 00:17:22,250 --> 00:17:25,140 bet jums bus pamatyti kodą kažkas gražus prieš ilgas. 395 00:17:25,140 --> 00:17:27,160 >> [Juokas] 396 00:17:27,160 --> 00:17:28,410 >> David J. Malan: Teisė? 397 00:17:28,410 --> 00:17:29,360 Taip. 398 00:17:29,360 --> 00:17:30,480 Klausimas viduryje. 399 00:17:30,480 --> 00:17:32,146 >> PUBLIKA: Ar jums reikia pasakyti, int n? 400 00:17:32,146 --> 00:17:34,020 David J. Malan: Jūs darote nereikia sakyti, int n. 401 00:17:34,020 --> 00:17:37,670 Taigi todėl, kad mes jau minėjome, int Jums nereikia sakyt. 402 00:17:37,670 --> 00:17:41,820 Laimikis, kad n turi būti pats duomenų tipas, kaip i. 403 00:17:41,820 --> 00:17:43,310 Taigi tai tiesiog patogumo čia. 404 00:17:43,310 --> 00:17:44,058 Taip. 405 00:17:44,058 --> 00:17:47,806 >> PUBLIKA: Ar jūs einate per išsiųs personažo s laikiklis i naujo? 406 00:17:47,806 --> 00:17:48,930 David J. Malan: Absoliučiai. 407 00:17:48,930 --> 00:17:52,110 Taigi% c, prisiminti nuo praėjusių laikas, yra tik vietos rezervavimo ženklas. 408 00:17:52,110 --> 00:17:53,930 Tai reiškia, įdėti char čia. 409 00:17:53,930 --> 00:17:56,780 Backslash n, žinoma, tik priemonė įdėti eilutės lūžį čia. 410 00:17:56,780 --> 00:17:59,540 Taigi, kad tik lapai, dabar, šis naujos sintaksės gabalas. 411 00:17:59,540 --> 00:18:03,730 Ir tai yra tiesiog sakydamas, patraukti eilutė vadinama s ir eikite gauti jos 412 00:18:03,730 --> 00:18:06,050 i'th pobūdį, taip sakant. 413 00:18:06,050 --> 00:18:10,590 >> Ir aš nuolat sako i'th charakterį nes kiekvienoje šio ciklo iteracijos 414 00:18:10,590 --> 00:18:14,540 tai kaip nors mes spausdinti , pirma s laikiklis 0, 415 00:18:14,540 --> 00:18:15,780 kaip programuotojas gali pasakyti. 416 00:18:15,780 --> 00:18:18,680 Tada ai laikiklis 1, tada ai laikiklis 2, tada 3, tada 4. 417 00:18:18,680 --> 00:18:21,610 Bet, žinoma, tai kintamasis, todėl aš tiesiog išreikšti ją su i. 418 00:18:21,610 --> 00:18:23,900 >> Raktas, nors, yra suprasti, ypač jei jūs ne 419 00:18:23,900 --> 00:18:26,358 buvo Acclimating į šį pasaulį programavimo, kur mes visi 420 00:18:26,358 --> 00:18:28,950 atrodo skaičiuoti nuo nulio, turiu pradėti skaičiuoti nuo nulio dabar. 421 00:18:28,950 --> 00:18:35,130 Nes stygos, pirmasis simbolis, z Zamyla yra geriau ar blogiau 422 00:18:35,130 --> 00:18:40,490 ketina gyventi vietos nulis. 423 00:18:40,490 --> 00:18:48,210 >> Visos teisės, todėl leiskite man duoti mums atgal čia Zamyla 424 00:18:48,210 --> 00:18:50,746 ir pamatyti, kas iš tikrųjų vyksta apie po gaubtu. 425 00:18:50,746 --> 00:18:52,370 Taigi, čia yra tai tipo liejimo sąvoka. 426 00:18:52,370 --> 00:18:53,800 Galbūt iš tikrųjų grojo su tai jau, 427 00:18:53,800 --> 00:18:55,970 gal hakeris leidimas P nustatyti vieną. 428 00:18:55,970 --> 00:19:00,320 Bet tipo liejimas tiesiog reiškia gebėjimas C ir kai kurias kitas kalbas 429 00:19:00,320 --> 00:19:03,170 konvertuoti vieną duomenų tipą į kitą. 430 00:19:03,170 --> 00:19:05,450 >> Dabar, kaip gali mes matome tai gana tiesmukai? 431 00:19:05,450 --> 00:19:08,530 Taigi, tai, prisiminti, yra pradžia anglų abėcėlės. 432 00:19:08,530 --> 00:19:11,265 Ir kontekstas, pamenu, iš kaip prieš savaitę yra ASCII. 433 00:19:11,265 --> 00:19:13,790 Amerikos standartinis kodas skirtas informacijos mainams. 434 00:19:13,790 --> 00:19:17,080 Kuris yra tik tikrai ilgas kelias sakydamas žemėlapių iš raidžių 435 00:19:17,080 --> 00:19:19,370 numeriais, ir iš numerių raides. 436 00:19:19,370 --> 00:19:22,940 >> Taigi per M čia, dot dot taškų, linijų su, prisiminti, 437 00:19:22,940 --> 00:19:25,582 dešimtainis skaičius 65 ant up. 438 00:19:25,582 --> 00:19:27,290 Ir mes ne kalbėti Apie tai aiškiai, 439 00:19:27,290 --> 00:19:29,850 bet tikrai yra labai panašus numeriai mažosiomis raidėmis. 440 00:19:29,850 --> 00:19:30,820 Ir iš tiesų, yra. 441 00:19:30,820 --> 00:19:33,730 Pasaulis nusprendė keletą metų prieš, kad mažai, mažosiomis, 442 00:19:33,730 --> 00:19:35,020 bus 97. 443 00:19:35,020 --> 00:19:38,010 Ir šiek tiek b vyksta būti 98 ir kt. 444 00:19:38,010 --> 00:19:40,200 >> Ir bet kuriuo kitu klavišu klaviatūra, ten 445 00:19:40,200 --> 00:19:42,190 bus panašus modelis bitai. 446 00:19:42,190 --> 00:19:44,540 Arba analogiškai, dešimtainis skaičius. 447 00:19:44,540 --> 00:19:47,110 Taigi po ranka klausimas, tada, kaip mes galime 448 00:19:47,110 --> 00:19:49,400 realiai pamatyti tai po kapotu? 449 00:19:49,400 --> 00:19:51,539 Taigi, aš ruošiuosi eiti per su gedit dar kartą. 450 00:19:51,539 --> 00:19:53,330 Ir užuot tipą tai vienas iš nulio, 451 00:19:53,330 --> 00:19:55,330 Aš ruošiuosi eiti į priekį ir tiesiog atverti kažką 452 00:19:55,330 --> 00:19:58,350 iš šiandienos kodas vadinama ASCII nulio. 453 00:19:58,350 --> 00:20:01,210 >> Ir ASCII nulis atrodo taip. 454 00:20:01,210 --> 00:20:02,710 Taigi leiskite susivynioti mūsų protus aplink tai. 455 00:20:02,710 --> 00:20:04,969 Taigi, pirmiausia, aš komentavo kodas, kuris yra gražus. 456 00:20:04,969 --> 00:20:07,010 Nes tai tiesiog pasakojo, ko tikėtis, 457 00:20:07,010 --> 00:20:08,950 rodyti už didžiąsias raides žemėlapių. 458 00:20:08,950 --> 00:20:13,690 Dabar aš ne visai žinoti, ką aš reiškia, kad, todėl galime daryti išvadą. 459 00:20:13,690 --> 00:20:16,870 >> Anglų kalba, gal šiek tiek techniką Anglų, 460 00:20:16,870 --> 00:20:20,660 ką eilutė 18 atrodo daryti tai, už mus? 461 00:20:20,660 --> 00:20:21,500 Tiesiog linija 18. 462 00:20:21,500 --> 00:20:22,430 Kas tai paskatinti? 463 00:20:22,430 --> 00:20:25,192 Kas jis ketina nusimesti čia? 464 00:20:25,192 --> 00:20:26,100 >> PUBLIKA: kilpa. 465 00:20:26,100 --> 00:20:26,630 >> David J. Malan: kilpa. 466 00:20:26,630 --> 00:20:28,463 Ir kiek kartų yra kad ketina pakartoti? 467 00:20:28,463 --> 00:20:31,562 468 00:20:31,562 --> 00:20:33,270 PUBLIKA: [Tarpines BALSAS] šešis kartus. 469 00:20:33,270 --> 00:20:34,830 David J. Malan: ne šešis kartus. 470 00:20:34,830 --> 00:20:35,840 PUBLIKA: 26 kartų. 471 00:20:35,840 --> 00:20:36,560 David J. Malan: 26 kartų. 472 00:20:36,560 --> 00:20:37,060 Taip, atsiprašau. 473 00:20:37,060 --> 00:20:37,960 26 kartus. 474 00:20:37,960 --> 00:20:38,460 Kodėl? 475 00:20:38,460 --> 00:20:41,590 Na, tai truputį keistai, bet Aš pradėjau skaičiuoti nuo 65. 476 00:20:41,590 --> 00:20:43,300 Kuris yra keista, bet ne blogai. 477 00:20:43,300 --> 00:20:44,610 Tai nėra blogai už Say aprašymą. 478 00:20:44,610 --> 00:20:46,980 Ir aš darau, kad tik nes, šiame pavyzdyje, 479 00:20:46,980 --> 00:20:50,455 Aš rūšies numatymas kad kapitalas buvo 65. 480 00:20:50,455 --> 00:20:53,330 Dabar tai yra ne pats elegantiškas būdas tai padaryti, kad tokio pobūdžio sunkaus kodas 481 00:20:53,330 --> 00:20:56,130 ezoterinės reikšmės, kad niekas kada nors tikimasi, kad prisiminti. 482 00:20:56,130 --> 00:21:00,155 >> Bet dabar, pastebėsite, kad aš tai daryti ne per 65 plius 26. 483 00:21:00,155 --> 00:21:03,030 Nes, matyt, aš net nenoriu daryti aritmetiką, mano galva. 484 00:21:03,030 --> 00:21:04,440 Taigi aš tegul sudarytojas daryti. 485 00:21:04,440 --> 00:21:08,600 Bet tada ant kiekvieno ciklo, kiekvienos iteracijos kilpos, aš incrementing i. 486 00:21:08,600 --> 00:21:10,196 >> Taigi, dabar tai atrodo mažai paslaptingas. 487 00:21:10,196 --> 00:21:13,320 Bet mes turime turėti pagrindinį pastatą blokai, su kuriais tai suprasti. 488 00:21:13,320 --> 00:21:15,510 % C yra tik už char vietos rezervavimo ženklas. 489 00:21:15,510 --> 00:21:19,010 % I už int vietos rezervavimo ženklas. 490 00:21:19,010 --> 00:21:23,310 Ir it turns out, kad naudojant šį nauja sintaksė, tai įterptinis, todėl 491 00:21:23,310 --> 00:21:26,100 kalbėti, todėl duomenų tipą viduje skliausteliuose, 492 00:21:26,100 --> 00:21:32,270 Galiu priversti kompiliatorių gydyti i ne, yra sveikas, bet kaip char. 493 00:21:32,270 --> 00:21:35,520 >> Taip rodo man simbolį ekvivalentas šio skaičiaus. 494 00:21:35,520 --> 00:21:37,986 Dabar žemyn čia, šis kodas yra gana daug vienodi. 495 00:21:37,986 --> 00:21:39,860 Aš tik norėjau, kad super aiškus faktas 496 00:21:39,860 --> 00:21:42,095 kad aš pradedant 97, kuris yra mažosios raidės. 497 00:21:42,095 --> 00:21:44,080 Dėl aukštyn per 26 daugiau raidžių. 498 00:21:44,080 --> 00:21:46,970 Ir aš doing-- vėl, liejimo i, taip sakant. 499 00:21:46,970 --> 00:21:49,160 Arba tipas liejimo i taip sakant. 500 00:21:49,160 --> 00:21:51,420 >> Vyksta į char int. 501 00:21:51,420 --> 00:21:55,760 Taigi galutinis rezultatas bus, tiesą sakant, informacija, kurią mes jau žinome. 502 00:21:55,760 --> 00:21:59,411 Aš ruošiuosi padaryti ASCII-0 dot-- ne dot c. 503 00:21:59,411 --> 00:22:02,160 Pranešimas, kad tu tikriausiai jau, kad klaida, nes aš tiesiog padarė netyčia. 504 00:22:02,160 --> 00:22:03,820 Padaryti ASCII 0. 505 00:22:03,820 --> 00:22:06,090 Dabar aš ruošiuosi daryti ./ascii-0. 506 00:22:06,090 --> 00:22:09,050 Aš padidinti, ir, deja, jis ketina pereiti nuo ekrano. 507 00:22:09,050 --> 00:22:15,060 Tačiau mes matome visą diagramą kur žemėlapiai į 97, b žemėlapiai 98, 508 00:22:15,060 --> 00:22:18,931 ir jei mes slinkite aukštyn toliau Žinoma, žemėlapiai 65. 509 00:22:18,931 --> 00:22:21,180 Taigi tai yra tik pasakyti, kad Ką mes pamokslavo, 510 00:22:21,180 --> 00:22:25,310 yra tai lygiavertiškumas, yra Iš tikrųjų iš tikrųjų atvejis. 511 00:22:25,310 --> 00:22:28,000 Taigi greitai modifikacija tai. 512 00:22:28,000 --> 00:22:31,220 Leiskite atverti ascii-1.c. 513 00:22:31,220 --> 00:22:38,070 Ir atkreipkite dėmesį tai protingas, tarsi d paaiškinti tai. 514 00:22:38,070 --> 00:22:41,770 Tai ASCII-1.c ir pastebėti šio crazy dalykas. 515 00:22:41,770 --> 00:22:45,120 >> Ir tai tikrai gauna į širdį ką kompiuteriai darai. 516 00:22:45,120 --> 00:22:48,150 Nors mes, žmonės būtų nesiskaito požiūriu letters-- 517 00:22:48,150 --> 00:22:50,380 Nemanau, pradėti galvoti, viskas gerai tada b 518 00:22:50,380 --> 00:22:52,590 ir naudoti tuos skaičiuoti fizinius objektus. 519 00:22:52,590 --> 00:22:58,680 Jūs tikrai negali pasakyti, kad aš noriu inicijuoti kai kintamasis vadinamas c-- 520 00:22:58,680 --> 00:23:03,220 bet aš galėjo tai pavadino anything-- taip c yra inicializuoti kapitalo A. 521 00:23:03,220 --> 00:23:07,560 >> Nes pabaigoje dienos, kompiuterio nerūpi, ką jūs saugoti, 522 00:23:07,560 --> 00:23:10,170 ji tik rūpinasi, kaip norite pateikti šią informaciją. 523 00:23:10,170 --> 00:23:13,560 Kaip norite, kad kompiuteris interpretuoti, kad bitai modelį? 524 00:23:13,560 --> 00:23:16,320 Taigi tai yra ne tai, ką aš kuris paprastai rekomenduoja daryti. 525 00:23:16,320 --> 00:23:19,500 Tai tikrai tik pavyzdys perteikti, kad jūs galite visiškai 526 00:23:19,500 --> 00:23:22,049 inicijuoti žinutę į char sveikasis skaičius. 527 00:23:22,049 --> 00:23:24,090 Kadangi po gaubtas iš char, žinoma, 528 00:23:24,090 --> 00:23:26,170 yra tik skaičių nuo 0 iki iki 255. 529 00:23:26,170 --> 00:23:28,540 >> Taigi jūs tikrai gali įdėti jį viduje int. 530 00:23:28,540 --> 00:23:30,890 Ir ką tai taip pat rodo, kad mes 531 00:23:30,890 --> 00:23:34,040 gali konvertuoti iš vienos įrašykite į kitą, čia, 532 00:23:34,040 --> 00:23:36,780 galiausiai spausdinti tą patį. 533 00:23:36,780 --> 00:23:44,760 Ir iš tiesų, tai aš nustatyti online-- turėjo tai pasakyti, vėlgi, čia. 534 00:23:44,760 --> 00:23:48,610 Leiskite išvalyti tai iki internete, ir mes matyti internetinėje rankos, kiek reikia, 535 00:23:48,610 --> 00:23:50,280 tai, kas buvo skirta ten. 536 00:23:50,280 --> 00:23:50,960 >> Gerai. 537 00:23:50,960 --> 00:23:53,892 Taigi paskutinis pavyzdys dabar dalyvauja a-ųjų ir b-ųjų ir tada mes 538 00:23:53,892 --> 00:23:54,850 imtis dalykų vienu žingsniu. 539 00:23:54,850 --> 00:23:58,330 Taigi su per-aisiais ir B-aisiais ir c 's kapitalizaciją 540 00:23:58,330 --> 00:24:01,560 ir lygiavertiškumas dalį, tegul imtis šiame pavyzdyje atrodo, čia. 541 00:24:01,560 --> 00:24:02,752 Kitas kodas pavyzdys. 542 00:24:02,752 --> 00:24:04,460 Mes atidaryti vieną, kad jau, kad mes 543 00:24:04,460 --> 00:24:06,440 neturite jį įrašyti visi iš nulio. 544 00:24:06,440 --> 00:24:09,420 >> Ir atkreipkite dėmesį, tikintis mes naudojame kelis antraštę 545 00:24:09,420 --> 00:24:13,240 bylos, tarp kurių yra Mūsų naujas draugas, string.h. 546 00:24:13,240 --> 00:24:15,597 Dabar tai atrodo, iš pradžių žvilgsnis, šiek tiek paslaptingas. 547 00:24:15,597 --> 00:24:18,180 Bet pažiūrėkime, jei mes negalime samprotauti per tai, kas vyksta čia. 548 00:24:18,180 --> 00:24:21,150 Pirma gaunu eilutę iš vartotojo, ir aš įdėti, kad eilutę kintamasis 549 00:24:21,150 --> 00:24:22,286 vadinami s. 550 00:24:22,286 --> 00:24:24,090 Pasta Kopijuoti iš anksčiau. 551 00:24:24,090 --> 00:24:27,250 Pagal 22, aš, matyt, daro, ką 552 00:24:27,250 --> 00:24:30,760 Aš prieš akimirką, aš Iteracja per s simbolių. 553 00:24:30,760 --> 00:24:34,780 >> Ir naujų triukų čia yra naudojant eilutės ilgis, nepilnametis optimizavimas 554 00:24:34,780 --> 00:24:37,930 saugoti eilutės ilgis yra N, o ne skambinti dar kartą strlen, 555 00:24:37,930 --> 00:24:38,850 ir vėl, ir vėl. 556 00:24:38,850 --> 00:24:41,120 Ir tik patikrinti, kad aš yra mažesnis nei n. 557 00:24:41,120 --> 00:24:43,330 Dabar čia viskas susitvarko tiek įdomu. 558 00:24:43,330 --> 00:24:45,980 Bet tai tik paraiškos Šio naują tą pačią idėją. 559 00:24:45,980 --> 00:24:48,470 Kas anglų kalba nėra ai laikiklis i atstovauti? 560 00:24:48,470 --> 00:24:51,772 561 00:24:51,772 --> 00:24:54,260 >> PUBLIKA: Skaičiavimo kiekvienas charakteris [nesigirdi]. 562 00:24:54,260 --> 00:24:55,926 >> David J. Malan: Skaičiavimo kiekvieną simbolį. 563 00:24:55,926 --> 00:24:58,680 Ir dar trumpai, ai laikiklis aš atstovauju, ką? 564 00:24:58,680 --> 00:25:00,950 Ar galite pasakyti. 565 00:25:00,950 --> 00:25:04,084 Ne įdėti jums vietoje čia. 566 00:25:04,084 --> 00:25:06,375 >> PUBLIKA: Well-- 567 00:25:06,375 --> 00:25:09,500 David J. Malan: Taigi, jei žodis is-- jei eilutė yra Zamyla, kuris starts-- 568 00:25:09,500 --> 00:25:12,380 PUBLIKA: --Prieš spręsti simbolių separately-- 569 00:25:12,380 --> 00:25:13,690 David J. Malan: Geras. 570 00:25:13,690 --> 00:25:14,190 Būtent. 571 00:25:14,190 --> 00:25:17,940 Kvadratinių laikiklis notacija leidžia jums pasiekti kiekvieną simbolį atskirai, 572 00:25:17,940 --> 00:25:21,120 taip ai laikiklis 0 bus Pirmasis simbolis eilutę. 573 00:25:21,120 --> 00:25:24,110 ai laikiklis 1 bus antra, ir taip toliau. 574 00:25:24,110 --> 00:25:28,050 Taigi klausimas aš prašau, čia, šios būklės yra kas? 575 00:25:28,050 --> 00:25:33,984 Ar i'th pobūdis ių Greater nei arba lygus mažosiomis? 576 00:25:33,984 --> 00:25:36,400 Ir ką tai reiškia, čia, su dvigubo jungimo ženklus? 577 00:25:36,400 --> 00:25:36,800 PUBLIKA (KARTU): Ir. 578 00:25:36,800 --> 00:25:37,210 David J. Malan: Ir. 579 00:25:37,210 --> 00:25:38,418 Tai tiesiog prilygsta tai. 580 00:25:38,418 --> 00:25:42,310 Ir nėra C raktažodį, jūs turite naudojimas, annoyingly, ampersand ampersand. 581 00:25:42,310 --> 00:25:47,520 Ir tai, priešingai, prašo yra S i'th pobūdžio mažesnis arba lygus 582 00:25:47,520 --> 00:25:49,030 mažosiomis raidėmis z? 583 00:25:49,030 --> 00:25:52,440 Ir vėl, štai kur suprasti pagrindinis 584 00:25:52,440 --> 00:25:54,550 įgyvendinimas kompiuteris turi prasmę. 585 00:25:54,550 --> 00:25:57,330 Atkreipkite dėmesį, kad, nors turiu dot dot dot ten, 586 00:25:57,330 --> 00:26:04,410 atrodo iki z mažosiomis raidėmis yra visi gretimi vertės iki nuo 97 d iki. 587 00:26:04,410 --> 00:26:07,820 >> Ir pats didžiosiomis raidėmis, pradedant nuo 65. 588 00:26:07,820 --> 00:26:10,410 Taigi Takeaway, tada, yra tai, kad anglų kalba, 589 00:26:10,410 --> 00:26:12,760 Kaip jūs apibūdintumėte ką linija 24 daro? 590 00:26:12,760 --> 00:26:15,736 591 00:26:15,736 --> 00:26:16,728 Taip? 592 00:26:16,728 --> 00:26:21,575 >> PUBLIKA: 24 tai patikrinti pamatyti ar kiekvienas personažas yra mažosios. 593 00:26:21,575 --> 00:26:24,700 David J. Malan: Tai patikrinti, ar kiekvienas personažas yra mažoji raidė. 594 00:26:24,700 --> 00:26:28,590 Taigi dar trumpai, yra i'th pobūdis ių mažosiomis raidėmis? 595 00:26:28,590 --> 00:26:30,690 Tai viskas, mes išreikšti čia logiškai, 596 00:26:30,690 --> 00:26:33,750 mažai cryptically, bet galiausiai gana tiesmukai. 597 00:26:33,750 --> 00:26:36,480 Ar S i'th simbolių mažosiomis raidėmis? 598 00:26:36,480 --> 00:26:40,130 >> Jei taip, ir čia, kur viskas gauti šiek tiek proto lenkimo 599 00:26:40,130 --> 00:26:44,760 už truputi, jei taip, eiti į priekį ir atsispausdinti simbolį. 600 00:26:44,760 --> 00:26:47,360 Taigi tai yra tik vietos rezervavimo ženklas, tačiau tai, ką charakteris? 601 00:26:47,360 --> 00:26:53,710 Kodėl aš darau ai kronšteiną i atėmus šis posakis čia? 602 00:26:53,710 --> 00:26:55,110 >> Na pastebėsite modelis čia. 603 00:26:55,110 --> 00:26:57,380 Faktiniai skaičiai neturi reikšmės tiek daug. 604 00:26:57,380 --> 00:27:02,700 Tačiau pastebite, kad 97 yra kaip toli nuo 65? 605 00:27:02,700 --> 00:27:03,560 >> PUBLIKA: 32. 606 00:27:03,560 --> 00:27:04,480 >> David J. Malan: 32. 607 00:27:04,480 --> 00:27:06,890 Kaip toli yra 98 iš 66? 608 00:27:06,890 --> 00:27:07,740 >> PUBLIKA: 32. 609 00:27:07,740 --> 00:27:09,890 >> David J. Malan: Little c iš didžiojo C? 610 00:27:09,890 --> 00:27:10,420 32. 611 00:27:10,420 --> 00:27:14,550 Taigi, čia yra 32 apyniai viena raidė į kitą. 612 00:27:14,550 --> 00:27:17,790 Taigi atvirai aš, galėtų supaprastinti tai, kad. 613 00:27:17,790 --> 00:27:20,400 Bet tada aš tipo sunku kodavimo tai žemo lygio supratimas 614 00:27:20,400 --> 00:27:21,740 kad skaitytojas yra kada nors supras. 615 00:27:21,740 --> 00:27:25,080 Taigi, aš ruošiuosi apibendrinti kaip aš žinau, mažosios raidės yra didesnės. 616 00:27:25,080 --> 00:27:28,400 Aš žinau, kad didžiosios raidės yra mažesni dydžiai, ironiškai. 617 00:27:28,400 --> 00:27:33,216 >> Bet tai iš esmės atitinka sakydamas atimti 32 iš S laikiklio i. 618 00:27:33,216 --> 00:27:35,430 Taigi, iš šių kontekste laiškus, jei laiško 619 00:27:35,430 --> 00:27:38,950 atsitinka būti, mažosiomis raidėmis ir aš atimti 32, 620 00:27:38,950 --> 00:27:43,442 kokį poveikį tai turi bendro, matematiškai, ant mažosiomis? 621 00:27:43,442 --> 00:27:44,400 PUBLIKA: Capitalizes-- 622 00:27:44,400 --> 00:27:45,691 David J. Malan: pasinaudojama jį. 623 00:27:45,691 --> 00:27:48,440 Ir iš tiesų, tai yra, kodėl mūsų Programa vadinama pasinaudoti nuliui. 624 00:27:48,440 --> 00:27:51,590 Ši programa arba pasinaudos laišką, 625 00:27:51,590 --> 00:27:54,580 po patikrinimo, jei tai yra iš tiesų mažoji raidė. 626 00:27:54,580 --> 00:27:59,810 Priešingu atveju, 30 eilutėje, ką man daryti, jei tai ne mažoji raidė, kad aš 627 00:27:59,810 --> 00:28:02,852 žiūri ne pirma iteracijos kilpa. 628 00:28:02,852 --> 00:28:03,890 Tiesiog atspausdinti jį. 629 00:28:03,890 --> 00:28:07,010 >> Taigi nereikia keisti stuff kad net ne mažosiomis raidėmis. 630 00:28:07,010 --> 00:28:10,790 Apriboti save tiek per mažai z. 631 00:28:10,790 --> 00:28:12,730 Dabar tai yra gana neaiškus. 632 00:28:12,730 --> 00:28:15,230 Bet dienos pabaigoje, tai kaip mes, kadaise, 633 00:28:15,230 --> 00:28:16,460 turėjo įgyvendinti dalykų. 634 00:28:16,460 --> 00:28:19,780 Jei aš vietoj atidaryti pasinaudoti vienas, oi ačiū Dievui. 635 00:28:19,780 --> 00:28:22,320 Yra funkcija vadinamas viršutinių kad gali 636 00:28:22,320 --> 00:28:25,410 daryti viską, ką tik padariau ne gana žemo lygio. 637 00:28:25,410 --> 00:28:28,752 >> Dabar į viršutinę įdomu nes ji yra deklaruota failą, 638 00:28:28,752 --> 00:28:31,210 ir jums bus tik žinau, tai patikrinę dokumentus, 639 00:28:31,210 --> 00:28:35,730 ar buvo pasakyta, tarkim, klasėje, kur tai yra, failo vadinamas ctype.h. 640 00:28:35,730 --> 00:28:37,630 Taigi, tai yra dar vienas naujas draugas mūsų. 641 00:28:37,630 --> 00:28:40,750 Ir viršutinė ar tiksliai ką rodo jo pavadinimas. 642 00:28:40,750 --> 00:28:44,860 >> Jūs galite pereiti į, kaip argumentą, tarp šie skliaustai, kai personažas. 643 00:28:44,860 --> 00:28:48,390 Aš ruošiuosi pereiti į i'th pobūdžio S naudojant mūsų išgalvotas naują žymėjimą 644 00:28:48,390 --> 00:28:49,870 įtraukiant laužtiniuose skliaustuose. 645 00:28:49,870 --> 00:28:53,391 Ir atspėti, kas yra grąža vertė į viršutinę matyt vyksta 646 00:28:53,391 --> 00:28:53,890 būti? 647 00:28:53,890 --> 00:28:56,460 648 00:28:56,460 --> 00:28:57,770 Didžioji raidė. 649 00:28:57,770 --> 00:28:58,620 Didžioji raidė. 650 00:28:58,620 --> 00:29:02,330 >> Taigi, jei aš pereiti į mažąsias a, tikiuosi, apibrėžiamos kaip į viršutinę, 651 00:29:02,330 --> 00:29:05,600 jis ketina grįžti didžiąsias A. Priešingu atveju, 652 00:29:05,600 --> 00:29:08,590 jei tai ne mažosiomis raidė Pirmoji vieta, aš tiesiog atsispausdinti jį. 653 00:29:08,590 --> 00:29:10,800 Ir iš tiesų, pastebėsite, Antrasis draugas čia. 654 00:29:10,800 --> 00:29:13,840 Ne tik, kad viršutinė egzistuoja, bet yra mažesnė, o 655 00:29:13,840 --> 00:29:16,200 tikrai atsakys, kad klausimas man. 656 00:29:16,200 --> 00:29:19,730 >> Dabar kas parašė šiuos dalykus, 10s ir prieš metus, jūs žinote, ką? 657 00:29:19,730 --> 00:29:23,840 Įvykdyta į viršutinę ir sumažinti naudojant kodą, kaip šis. 658 00:29:23,840 --> 00:29:27,270 Bet vėl, suderinama su šis atsiribotų toli idėja, 659 00:29:27,270 --> 00:29:29,190 rūšiuoti, žemesnio lygio įgyvendinimo informacija. 660 00:29:29,190 --> 00:29:32,600 Ir stovi ant žmonių pečių kuris atėjo prieš mus, naudojant funkcijas 661 00:29:32,600 --> 00:29:36,300 kaip į viršutinę ir mažesnis, o nuostabiai pakankamai gražiai 662 00:29:36,300 --> 00:29:40,190 pavadintas pasakyti, ką jie daro, yra puikus paradigma priimti. 663 00:29:40,190 --> 00:29:44,040 >> Dabar paaiškėja, kad, jei aš perskaičiau vyras puslapis, tarkim, į viršutinę, 664 00:29:44,040 --> 00:29:45,010 Aš kažko išmokti daugiau. 665 00:29:45,010 --> 00:29:46,890 Taigi vyras toUpper. 666 00:29:46,890 --> 00:29:48,050 Tai šiek tiek absoliuti. 667 00:29:48,050 --> 00:29:51,110 Tačiau pranešimas, štai, kad paminėti header failą, kad turėčiau naudotis. 668 00:29:51,110 --> 00:29:54,460 Kaip panaikinti, nes tai yra klaidinantis, funkcija 669 00:29:54,460 --> 00:29:59,070 naudoja int vietoj simbolių dėl priežasčių, susijusių klaidų tikrinimas. 670 00:29:59,070 --> 00:30:01,260 Bet mes galbūt ateis atgal į tą, kuris ateityje. 671 00:30:01,260 --> 00:30:05,910 >> Tačiau pastebite, čia į viršutinį atsivertusių laiškas C didžiąsias, jei įmanoma. 672 00:30:05,910 --> 00:30:07,674 Taigi tai gana paprasta. 673 00:30:07,674 --> 00:30:09,340 Ir dabar būkime šiek tiek siauresni. 674 00:30:09,340 --> 00:30:12,750 Pažvelkime į dalis vyras puslapis pagal grįžimo vertės. 675 00:30:12,750 --> 00:30:15,420 Grąžinta reikšmė yra ta, kad konvertuojamos laiške. 676 00:30:15,420 --> 00:30:18,690 Arba c, jei konvertavimas buvo neįmanoma, 677 00:30:18,690 --> 00:30:20,250 kur c yra originalus įėjimas. 678 00:30:20,250 --> 00:30:24,140 Kuris žinau iš čia, iš argumentas, kad viršutinis. 679 00:30:24,140 --> 00:30:25,780 >> Taigi, kas yra tai Takeaway? 680 00:30:25,780 --> 00:30:28,060 Grąžinta reikšmė yra ta, kad konvertuojamos laiške, 681 00:30:28,060 --> 00:30:32,110 arba c originalus raštas, jei konversija buvo neįmanoma. 682 00:30:32,110 --> 00:30:36,460 Kas tobulinimas galiu todėl padaryti savo kodą dizainą? 683 00:30:36,460 --> 00:30:37,146 Taip? 684 00:30:37,146 --> 00:30:38,810 >> PUBLIKA: Jūs galite pašalinti kitur. 685 00:30:38,810 --> 00:30:40,810 David J. Malan: galiu pašalinti else, 686 00:30:40,810 --> 00:30:42,510 ir ne tik else. 687 00:30:42,510 --> 00:30:44,150 >> PUBLIKA: Galite pašalinti [nesigirdi]. 688 00:30:44,150 --> 00:30:46,310 >> David J. Malan: galiu pašalinti visą šakę 689 00:30:46,310 --> 00:30:48,209 kelyje, jei dar apskritai. 690 00:30:48,209 --> 00:30:50,250 Taigi iš tiesų, leiskite man atidaryti Galutinis variantas tai, 691 00:30:50,250 --> 00:30:55,540 kapitalizuoti-2 ir pastebėsite, kiek, jei jūs, seksualus, kodas yra dabar vis, 692 00:30:55,540 --> 00:31:00,040 tuo, kad aš sumažėjo nuo kai septynis ar taip linijas tiesiog keturių, 693 00:31:00,040 --> 00:31:03,850 funkcionalumas, kad aš skirti tiesiog paskambinę į viršutinę, 694 00:31:03,850 --> 00:31:09,410 einančios ių laikiklio i, ir spausdinimo , dalyvaujant rezervuotos vietos% c, 695 00:31:09,410 --> 00:31:11,090 kad ypač charakteris. 696 00:31:11,090 --> 00:31:14,560 >> Dabar, be abejo, yra klaidų, arba bent jau apie klaidą rizika, 697 00:31:14,560 --> 00:31:15,350 šioje programoje. 698 00:31:15,350 --> 00:31:18,200 Taigi tiesiog grįžti į ankstesnį takeaway, 699 00:31:18,200 --> 00:31:21,820 ką turėčiau tikriausiai taip pat daryti šią programą, kad ji labiau patikimas, 700 00:31:21,820 --> 00:31:24,974 kad nėra jokio būdo tai gali katastrofos, net retais atvejais? 701 00:31:24,974 --> 00:31:26,390 PUBLIKA: Įsitikinkite, kad jis yra ne NULL. 702 00:31:26,390 --> 00:31:28,056 David J. Malan: Įsitikinkite, kad jis yra ne NULL. 703 00:31:28,056 --> 00:31:31,030 Taigi tikrai, kad šis super tinkamas, turėčiau daryti kažką panašaus, 704 00:31:31,030 --> 00:31:35,300 jei s ne NULL, tada eiti į priekį ir paleisti 705 00:31:35,300 --> 00:31:38,470 šie kodo eilutes, kurios Galiu tada įtrauka, kaip kad, 706 00:31:38,470 --> 00:31:39,870 ir tada įdėti į mano glaudžiai petnešomis. 707 00:31:39,870 --> 00:31:41,550 Taigi gera susiejimas kartu iš dviejų idėjų. 708 00:31:41,550 --> 00:31:42,429 Taip? 709 00:31:42,429 --> 00:31:44,470 PUBLIKA: Ar jūs naudojate daryti, o kilpos, o ne? 710 00:31:44,470 --> 00:31:47,270 David J. Malan: Could Aš padaryti, o do kilpa? 711 00:31:47,270 --> 00:31:50,020 PUBLIKA: --Prieš norite įsitikinti, kad jūs iš tikrųjų [nesigirdi]. 712 00:31:50,020 --> 00:31:51,728 David J. Malan: Could jūs naudojate daryti, o? 713 00:31:51,728 --> 00:31:52,450 Trumpas atsakymas, Nr. 714 00:31:52,450 --> 00:31:54,700 Kadangi jūs ketinate pristatyti kito kampo bylą. 715 00:31:54,700 --> 00:31:56,660 Jei eilutė yra nulinė ilgio. 716 00:31:56,660 --> 00:31:59,600 Jei, pavyzdžiui, aš tiesiog paspauskite Įveskite, be galimybės kada nors rašyti Zamyla. 717 00:31:59,600 --> 00:32:02,490 Aš ruošiuosi perduoti jums atgal faktinis eilutė, kaip mes galų gale pamatyti, 718 00:32:02,490 --> 00:32:03,780 kad nulinis simbolių. 719 00:32:03,780 --> 00:32:05,630 Jis vis dar seka, tai tiesiog super trumpa. 720 00:32:05,630 --> 00:32:07,960 Tačiau, jei jūs naudojate daryti, o, jūs ketinate aklai 721 00:32:07,960 --> 00:32:10,050 pabandyti padaryti kažką gerbti tą eilutę, 722 00:32:10,050 --> 00:32:12,537 ir nieko vyksta ten. 723 00:32:12,537 --> 00:32:18,607 >> PUBLIKA: Na, jei tu daryti [nesigirdi] o s-- 724 00:32:18,607 --> 00:32:21,190 David J. Malan: O aš matau, išlaikyti gauti iš naudotojo eilutę. 725 00:32:21,190 --> 00:32:23,525 Taigi trumpas atsakymas, jūs gali ir išlaikyti paerzinti 726 00:32:23,525 --> 00:32:26,150 jiems suteikti jums eilutę, kad yra pakankamai trumpas, kad tilptų atmintyje. 727 00:32:26,150 --> 00:32:26,700 Absoliučiai. 728 00:32:26,700 --> 00:32:27,630 Aš tiesiog pasirinko ne. 729 00:32:27,630 --> 00:32:30,505 Jei jie nesuteikia man string I nori, aš mesti, aš mesti. 730 00:32:30,505 --> 00:32:33,260 Tačiau visiškai šiuo tikslu, galite visiškai padaryti. 731 00:32:33,260 --> 00:32:37,500 >> Taigi bibliotekos header files, kad mes dabar susipažinę su yra šie, čia. 732 00:32:37,500 --> 00:32:41,550 Standartinio I / O, CS50.h, string.h, ctype.h, ir yra, tiesą sakant, kt. 733 00:32:41,550 --> 00:32:44,460 Kai kurie iš jūsų atrado matematikos biblioteka math.h. 734 00:32:44,460 --> 00:32:48,200 Bet leiskite man pristatyti jums, dabar, siekiant tai išteklių, kad CS50 darbuotojai, Davin, 735 00:32:48,200 --> 00:32:50,630 ir Rob ir Gabe ypač kartu sudėjus. 736 00:32:50,630 --> 00:32:52,630 Tai netrukus nuorodą Kursas tinklapyje. 737 00:32:52,630 --> 00:32:54,870 Tai vadinama CS50 nuoroda. 738 00:32:54,870 --> 00:32:58,230 >> Kuris tiesiog suteikti jums greitai skonis tai veikia taip, kaip nurodyta toliau. 739 00:32:58,230 --> 00:33:00,740 Leiskite man eiti į reference.cs50.net. 740 00:33:00,740 --> 00:33:02,990 Pamatysite ant kairės rankos puse didžioji sąrašą 741 00:33:02,990 --> 00:33:04,595 funkcijų, kad ateiti su c. 742 00:33:04,595 --> 00:33:07,790 Bet jei aš rūpinuosi, šiuo metu, apie kažką panašaus strlen, 743 00:33:07,790 --> 00:33:08,746 Galiu įveskite jį čia. 744 00:33:08,746 --> 00:33:10,870 Jis filtruoja žemyn sąrašą į ką aš rūpi. 745 00:33:10,870 --> 00:33:11,940 Aš ruošiuosi jį spustelėkite. 746 00:33:11,940 --> 00:33:14,740 Ir dabar į kairę, pamatysite, ką mes tikimės, 747 00:33:14,740 --> 00:33:18,290 yra paprastesnis, žmogaus draugiškas paaiškinimas, kaip 748 00:33:18,290 --> 00:33:19,170 ši funkcija veikia. 749 00:33:19,170 --> 00:33:20,600 >> Grąžina eilutę ilgį. 750 00:33:20,600 --> 00:33:24,060 Štai trumpa apžvalga, Štai kaip naudoti atsižvelgiant į failo antraštės, 751 00:33:24,060 --> 00:33:27,430 ir kalbant apie tai, ką funkcija atrodo pagal savo argumentams pagrįsti. 752 00:33:27,430 --> 00:33:30,250 Ir tada čia sugrįžta iš eilutės ilgis. 753 00:33:30,250 --> 00:33:34,280 Bet tiems iš jūsų, patogesnis, jūs iš tikrųjų galite spustelėti daugiau patogūs, 754 00:33:34,280 --> 00:33:37,070 ir šio turinys puslapis, dabar bus pakeisti 755 00:33:37,070 --> 00:33:41,660 būti numatytąsias vertes, ką jums naudojant žinyno puslapį. 756 00:33:41,660 --> 00:33:44,100 >> Kitaip tariant, CS50 Nuorodos supaprastinimas 757 00:33:44,100 --> 00:33:46,220 iš žinyno puslapių, pagal personalo, studentų. 758 00:33:46,220 --> 00:33:49,320 Ypač tie, mažiau patogus ir tarp jų, taip, kad jūs 759 00:33:49,320 --> 00:33:51,660 neturite pabandyti wrap jūsų protas aplink, tiesą sakant, 760 00:33:51,660 --> 00:33:55,030 kai gana paslaptingas sintaksė ir dokumentacija kažkada. 761 00:33:55,030 --> 00:33:57,650 >> Taigi keep that in mind dienomis ateiti. 762 00:33:57,650 --> 00:33:59,560 Taigi čia, vėlgi, yra Zamyla. 763 00:33:59,560 --> 00:34:03,255 Leiskite dabar užduoti klausimą, kad yra šiek tiek daugiau žmonių prieinama. 764 00:34:03,255 --> 00:34:05,380 Ačiū Chang, kas buvo spausdinti daugiau drambliai 765 00:34:05,380 --> 00:34:07,090 be sustojimo per pastaruosius keletą dienų. 766 00:34:07,090 --> 00:34:09,730 Mes turime galimybę suteikti bent vienas iš jų toli. 767 00:34:09,730 --> 00:34:13,239 Jei galėtume gauti tik vieną savanorį ateiti iki atkreipti ekrane. 768 00:34:13,239 --> 00:34:14,530 Kaip apie čia? 769 00:34:14,530 --> 00:34:15,340 >> Nagi iki. 770 00:34:15,340 --> 00:34:16,720 Kas yra jūsų vardas? 771 00:34:16,720 --> 00:34:17,219 ALEX: Alex. 772 00:34:17,219 --> 00:34:17,760 David J. Malan: Alex. 773 00:34:17,760 --> 00:34:18,259 Viskas gerai. 774 00:34:18,259 --> 00:34:19,388 Alex, nagi iki. 775 00:34:19,388 --> 00:34:21,679 Mes pasiruošę žiūrėt savo rašysenos ekrane čia. 776 00:34:21,679 --> 00:34:24,325 777 00:34:24,325 --> 00:34:25,570 Gerai, nice to meet you. 778 00:34:25,570 --> 00:34:26,429 >> ALEX: Nicos jums susitikti su jumis. 779 00:34:26,429 --> 00:34:27,512 >> David J. Malan: Gerai. 780 00:34:27,512 --> 00:34:28,969 Taigi, super paprasta naudotis. 781 00:34:28,969 --> 00:34:31,440 Baras nėra didelis, gauti dramblį šiandien. 782 00:34:31,440 --> 00:34:33,439 Tu žaidi su getstring vaidmenį. 783 00:34:33,439 --> 00:34:35,980 Ir aš ruošiuosi tik pasakyti, eilutė, kad jūs Dotarłeś. 784 00:34:35,980 --> 00:34:38,080 Ir manau, kad jūs, getstring buvo vadinamas. 785 00:34:38,080 --> 00:34:42,480 Ir žmogaus, kaip ir aš, turi įvedėte Zamyla, Z-A-M-Y-L-A. 786 00:34:42,480 --> 00:34:45,650 Tiesiog eikite į priekį ir rašyti Zamyla ant ekranas kaip nors jūs Dotarłeś 787 00:34:45,650 --> 00:34:47,250 ir saugomi kažkur atmintyje. 788 00:34:47,250 --> 00:34:52,370 789 00:34:52,370 --> 00:34:55,570 >> Palikus kambarys, koks bus kelias kitas words-- kad viskas OK, nesustoti. 790 00:34:55,570 --> 00:34:59,620 >> [Juokas] 791 00:34:59,620 --> 00:35:00,800 >> Taigi Zamyla, puikus. 792 00:35:00,800 --> 00:35:04,880 Taigi dabar manau, kad jūs, getstring, vadinami dar kartą. 793 00:35:04,880 --> 00:35:09,350 Ir todėl aš pateikti jums, bent klaviatūra, su kitu pavadinimu, Belinda. 794 00:35:09,350 --> 00:35:17,560 795 00:35:17,560 --> 00:35:18,060 Viskas gerai. 796 00:35:18,060 --> 00:35:22,380 Ir dabar, kai kitą kartą getstring yra vadinamas, aš tipo kažkas panašaus Gabe, 797 00:35:22,380 --> 00:35:27,560 G--B-E. Jūs tikrai vartojate širdies laisvosios kreipties atminties. 798 00:35:27,560 --> 00:35:29,631 Kuris rengia viską visiškai atsitiktinai. 799 00:35:29,631 --> 00:35:30,130 Gerai. 800 00:35:30,130 --> 00:35:31,104 >> [Juokas] 801 00:35:31,104 --> 00:35:32,520 ALEX: Atsiprašome mano rašysena yra blogai. 802 00:35:32,520 --> 00:35:33,770 David J. Malan: Ne, tai viskas OK. 803 00:35:33,770 --> 00:35:40,480 Ir kaip apie Rob, R-O-B. Gerai. 804 00:35:40,480 --> 00:35:41,020 Geras. 805 00:35:41,020 --> 00:35:43,853 Taigi aš ne tikėtis jums būtų rūšies nustatyti dalykus tokiu būdu. 806 00:35:43,853 --> 00:35:45,020 Tačiau mes galime padaryti šį darbą. 807 00:35:45,020 --> 00:35:48,810 Taigi, kaip jums eiti apie nustatantis iš šių simbolių atmintyje? 808 00:35:48,810 --> 00:35:51,310 Kitaip tariant, jei mes manome, tai stačiakampio juodas ekranas 809 00:35:51,310 --> 00:35:53,550 kaip atstovaujanti kompiuterio RAM arba atminties. 810 00:35:53,550 --> 00:35:55,850 >> Ir prisiminti, kad RAM yra tiesiog visa krūva baitų, 811 00:35:55,850 --> 00:35:57,480 ir baitai visa krūva bitai. 812 00:35:57,480 --> 00:35:59,350 Ir bitai yra kažkaip įgyvendinti, paprastai 813 00:35:59,350 --> 00:36:01,119 su tam tikra forma elektros aparatūros. 814 00:36:01,119 --> 00:36:03,160 Taigi, kad tarsi sluoksniavimasis mes kalbėjome apie 815 00:36:03,160 --> 00:36:04,510 ir dabar gali savaime suprantamu dalyku. 816 00:36:04,510 --> 00:36:07,020 Kaip jums eiti apie nuspręsti, kur rašyti 817 00:36:07,020 --> 00:36:11,634 Robas palyginti Gabe palyginti Belinda palyginti Zamyla? 818 00:36:11,634 --> 00:36:14,020 >> ALEX: Aš ką tik padarė jį nurodyti, kad jūs man pasakė. 819 00:36:14,020 --> 00:36:15,650 >> David J. Malan: Ir tai yra tiesa. 820 00:36:15,650 --> 00:36:20,100 Bet kas reglamentuoja, kur jūs įdėti Belinda pavadinimas ir Gabe vardas? 821 00:36:20,100 --> 00:36:20,764 >> ALEX: Nieko? 822 00:36:20,764 --> 00:36:22,930 David J. Malan: [Juokiasi] Taigi, kad veikia, tai gerai. 823 00:36:22,930 --> 00:36:25,290 Taigi kompiuterių mažai daugiau tvarkingai, kad ne. 824 00:36:25,290 --> 00:36:29,000 Ir todėl, kai mes implement-- ten tik už moment-- kai mes iš tikrųjų 825 00:36:29,000 --> 00:36:31,470 įgyvendinti kažką panašaus getstring kompiuteryje, 826 00:36:31,470 --> 00:36:34,480 Zamyla gali būti išdėstyti gana daug kaip tu ant ekrano, ten. 827 00:36:34,480 --> 00:36:36,660 >> Ir kas svarbiausia pastebėti čia ką Aleksas padarė, 828 00:36:36,660 --> 00:36:40,260 ten yra natūra iš demarkacijos tarp kiekvienos iš šių žodžių, tiesa? 829 00:36:40,260 --> 00:36:46,580 Jūs nerašė Z-M-Y-L--B-E L-I-N-D--G--B-- 830 00:36:46,580 --> 00:36:49,740 Kitaip tariant, yra keletas rūšių demarkacijos kuris, atrodo,, 831 00:36:49,740 --> 00:36:52,370 rūšiuoti, atsitiktinis tarpai tarp šių įvairių žodžių. 832 00:36:52,370 --> 00:36:54,120 Bet tai gerai, nes mes, žmonės dabar gali 833 00:36:54,120 --> 00:36:56,470 vizualizuoti, kad tai yra keturios skirtingos stygos. 834 00:36:56,470 --> 00:36:59,540 Tai ne tik vienas seka iš daug simbolių. 835 00:36:59,540 --> 00:37:04,190 Taigi kompiuteris, tada, tuo tarpu, gali užtrukti eilutę kaip Zamyla, 836 00:37:04,190 --> 00:37:07,220 įdėti kiekvieną iš šių laiškų viduje iš atminties baito. 837 00:37:07,220 --> 00:37:10,400 Tačiau šis skaičius yra žymiai didesnis, Žinoma, kaip šešių simbolių. 838 00:37:10,400 --> 00:37:11,690 >> Yra visa krūva RAM. 839 00:37:11,690 --> 00:37:15,330 Ir taip, nuo šiol, tai tinklelis dėžių vyksta 840 00:37:15,330 --> 00:37:17,560 atstovauti, ką Aleksas tiesiog padarė čia ekrane. 841 00:37:17,560 --> 00:37:20,937 Ir dabar, Aleksas, mes Jums galime pasiūlyti pasiūlyti mėlynos arba oranžinės spalvos dramblys iš Chang. 842 00:37:20,937 --> 00:37:22,270 ALEX: Imsiu mėlyną dramblį. 843 00:37:22,270 --> 00:37:23,120 David J. Malan: mėlyna dramblys. 844 00:37:23,120 --> 00:37:25,580 Taigi didelis audringi plojimai, jei mes galėtų būti, Alex čia. 845 00:37:25,580 --> 00:37:26,100 >> [Plojimai] 846 00:37:26,100 --> 00:37:26,766 >> ALEX: Ačiū. 847 00:37:26,766 --> 00:37:28,820 David J. Malan: Ačiū. 848 00:37:28,820 --> 00:37:36,230 Taigi Takeaway yra tai, kad, nors modelis rūšies pasikeitė laikui bėgant, čia 849 00:37:36,230 --> 00:37:40,430 lentoje, ten buvo toks Takoskyra tarp įvairių stygų 850 00:37:40,430 --> 00:37:42,610 Alex gavo už mus. 851 00:37:42,610 --> 00:37:45,230 Dabar kompiuteriai, tiesą sakant, galėtų padaryti tą patį. 852 00:37:45,230 --> 00:37:48,210 Jie gali rūšies pūkštelėti stygos niekur RAM. 853 00:37:48,210 --> 00:37:50,710 Iki čia per čia žemyn čia, žemyn čia. 854 00:37:50,710 --> 00:37:52,020 >> Jie gali padaryti būtent tai. 855 00:37:52,020 --> 00:37:54,280 Bet, žinoma, tai tikriausiai ne geriausias planavimas. 856 00:37:54,280 --> 00:37:54,780 Teisė? 857 00:37:54,780 --> 00:37:57,340 Jei aš nuolat klausia Alex vardai, pavardės, tikriausiai jis nori 858 00:37:57,340 --> 00:38:01,370 įdėti šiek tiek daugiau žemyn čia, gal iki čia per čia, daugiau čia galiausiai 859 00:38:01,370 --> 00:38:02,211 čia. 860 00:38:02,211 --> 00:38:05,460 Bet su šiek tiek daugiau planavimo, žinoma, galėtume nustatyti dalykus daugiau švariai. 861 00:38:05,460 --> 00:38:07,350 Ir iš tiesų, tai, ką kompiuteris daro. 862 00:38:07,350 --> 00:38:10,720 >> Bet laimikis, kad jei šalia styginių man 863 00:38:10,720 --> 00:38:14,050 po Zamyla yra kažkas kaip Belinda, 864 00:38:14,050 --> 00:38:17,929 pasiūlyti kur mes galime rašyti b punktas, atsižvelgiant į šios tinklelį? 865 00:38:17,929 --> 00:38:18,720 Kur eitumėte? 866 00:38:18,720 --> 00:38:21,480 Norėdami į teisę, žemiau z, mažesnis už A? 867 00:38:21,480 --> 00:38:23,204 Ką jūsų pirmieji instinktai būti? 868 00:38:23,204 --> 00:38:24,120 PUBLIKA: Žemiau z. 869 00:38:24,120 --> 00:38:25,100 David J. Malan: Taigi žemiau z. 870 00:38:25,100 --> 00:38:26,530 Ir tai gana paprasta, tiesa? 871 00:38:26,530 --> 00:38:29,321 Tai tipo tvarkingas, tai, ką mes darome ant klaviatūros, kai mes paspauskite Enter, 872 00:38:29,321 --> 00:38:31,770 arba siųsti priimant ženkleliais sąrašas dalykų. 873 00:38:31,770 --> 00:38:34,310 Tačiau realybė yra ta, kad kompiuteriai stengiuosi būti efektyvesnis, 874 00:38:34,310 --> 00:38:37,170 ir prisikimšti tikrai kiek duomenis į RAM, kiek įmanoma, 875 00:38:37,170 --> 00:38:38,890 taip, kad jums nereikia gaišti jokių baitų. 876 00:38:38,890 --> 00:38:41,545 Taigi, kad jums nereikia gaišti bet ekranas nekilnojamojo turto. 877 00:38:41,545 --> 00:38:44,170 Ir problema, nors, yra tai, kad jei mes tiesiog įdėti laišką 878 00:38:44,170 --> 00:38:49,940 b po, kaip mes ketiname žinoti, kur Zamyla pavadinimas baigiasi 879 00:38:49,940 --> 00:38:51,840 o Belinda vardas prasideda? 880 00:38:51,840 --> 00:38:55,270 Taigi jūs žmogus nuolatos tiesiog pasiūlė, gerai, Enter klavišą, iš esmės. 881 00:38:55,270 --> 00:38:56,410 Įdėkite jį žemyn žemiau. 882 00:38:56,410 --> 00:38:59,750 Arba net padarė Alex, tiesiog pradėkite rašyti Kitas pavadinimas žemiau ankstesnės, 883 00:38:59,750 --> 00:39:01,583 ir toliau, kad vienas, ir tada toliau, kad vienas. 884 00:39:01,583 --> 00:39:02,510 Štai vaizdo užuomina. 885 00:39:02,510 --> 00:39:05,960 >> Kompiuteriai turite kitą vaizdinę lazda, bet tai šiek tiek daugiau glausta. 886 00:39:05,960 --> 00:39:07,840 Tai tai funky simbolių. 887 00:39:07,840 --> 00:39:11,890 Kairinis pasvirasis brūkšnys 0, kuris yra galbūt primena pasvirąjį n, 888 00:39:11,890 --> 00:39:12,640 ir taip toliau, dabar. 889 00:39:12,640 --> 00:39:14,120 Specialūs evakuacijos sekas. 890 00:39:14,120 --> 00:39:19,120 Kairinis pasvirasis brūkšnys 0 yra būdas atstovaujančių aštuonių nulis bitai iš eilės. 891 00:39:19,120 --> 00:39:22,000 0000 0000. 892 00:39:22,000 --> 00:39:26,130 >> Būdas jums išreikšti tai nereiškia, nukentėjo nulis klaviatūroje, 893 00:39:26,130 --> 00:39:28,140 nes tai, kad yra ASCII char. 894 00:39:28,140 --> 00:39:30,990 Atrodo, skaičių, tačiau iš tikrųjų yra dešimtainis skaičius 895 00:39:30,990 --> 00:39:35,910 kuri atstovauja cirkuliarą glifų, apskritas šrifto. 896 00:39:35,910 --> 00:39:38,410 Tuo tarpu, Backslash nulis reiškia, pažodžiui 897 00:39:38,410 --> 00:39:40,700 įdėti aštuonis nulis baitų čia man. 898 00:39:40,700 --> 00:39:42,136 >> Taigi, tai yra šiek tiek savavališka. 899 00:39:42,136 --> 00:39:44,260 Galėtume jau naudojamas bet koks modelis Bitų, bet pasaulis 900 00:39:44,260 --> 00:39:46,610 nusprendė keletą metų prieš, kad atstovauti 901 00:39:46,610 --> 00:39:49,710 Styga pabaigos atmintyje, tiesiog įdėti visa krūva nulių. 902 00:39:49,710 --> 00:39:51,000 Kadangi mes galime aptikti, kad. 903 00:39:51,000 --> 00:39:54,790 Dabar tai reiškia, kad joks laiškas abėcėlė gali būti atstovaujama su nuliais. 904 00:39:54,790 --> 00:39:58,480 >> Bet tai gerai, mes jau matėme kad mes naudojame 65 d iki 97 d viršų. 905 00:39:58,480 --> 00:40:00,290 Mes ne gauti bet uždaryti visi nuliai. 906 00:40:00,290 --> 00:40:03,040 907 00:40:03,040 --> 00:40:06,540 Taigi Belinda į kompiuterio atmintį iš tikrųjų ketinate eiti čia. 908 00:40:06,540 --> 00:40:09,764 Aš sudarytas jį geltonai tik atkreipti dėmesį į jį. 909 00:40:09,764 --> 00:40:11,680 Ir pranešimas, taip pat tai yra visiškai savavališkas. 910 00:40:11,680 --> 00:40:12,680 Aš sudarytas jį kaip tinklelis. 911 00:40:12,680 --> 00:40:14,460 Kaip, RAM tik kai fizinis objektas. 912 00:40:14,460 --> 00:40:17,300 Tai nebūtinai turi eilutes ir stulpelius, per se. 913 00:40:17,300 --> 00:40:20,490 Jis ką tik gavo visa krūva baitų įgyvendinamos techninės kažkaip. 914 00:40:20,490 --> 00:40:22,817 Bet jei po Belinda I įvedėte Gabe pavadinimas, 915 00:40:22,817 --> 00:40:25,650 jis ketina baigti čia iš atminties, ir jei aš įvedėte Daven pavadinimas, 916 00:40:25,650 --> 00:40:27,316 Pavyzdžiui, jis ketina baigti čia. 917 00:40:27,316 --> 00:40:29,310 Ir aš galiu toliau rašyti net daugiau vardų. 918 00:40:29,310 --> 00:40:32,100 >> Deja, jei aš stengiuosi rašyti super ilgą pavadinimą, 919 00:40:32,100 --> 00:40:33,730 Galėčiau galiausiai paleisti iš atminties. 920 00:40:33,730 --> 00:40:37,810 Tokiu atveju, getstring yra ketina grįžti NULL, kaip mes sakėme. 921 00:40:37,810 --> 00:40:41,720 Bet laimei, bent jau šis vaizdo čia mes ne gauti gana, kad toli. 922 00:40:41,720 --> 00:40:45,860 >> Dabar, kas yra gražus, kad tai Bendra idėja gydyti dalykų 923 00:40:45,860 --> 00:40:49,720 kaip dėžėse yra atstovas C funkcija 924 00:40:49,720 --> 00:40:52,690 ir kalbų daug, žinomas kaip masyvą. 925 00:40:52,690 --> 00:40:55,490 Masyvas yra dar vienas duomenų tipas. 926 00:40:55,490 --> 00:40:57,380 Tai duomenų struktūra, jei bus. 927 00:40:57,380 --> 00:41:01,160 Struktūra ir jo prasme tikrai, rūšies, atrodo kaip dėžutės, bent jau 928 00:41:01,160 --> 00:41:02,320 savo proto akis. 929 00:41:02,320 --> 00:41:09,680 Masyvas yra greta seka identiškų duomenų tipų, 930 00:41:09,680 --> 00:41:11,330 atgal atgal atgal į nugarą. 931 00:41:11,330 --> 00:41:14,720 >> Taigi seka, kitais žodžiai yra iš simbolių masyvas. 932 00:41:14,720 --> 00:41:16,120 Simbolių masyvas. 933 00:41:16,120 --> 00:41:19,070 Tačiau paaiškėja, jūs galite turėti matricos kekių dalykų. 934 00:41:19,070 --> 00:41:21,870 Iš tiesų, mes galime įdėti net numeriai masyvą. 935 00:41:21,870 --> 00:41:23,920 Taigi tokios formos, kokios mes ketiname pradėti 936 00:41:23,920 --> 00:41:26,590 skelbiantis šiuos duomenis struktūra žinomas kaip masyvo 937 00:41:26,590 --> 00:41:28,250 taip pat ketina naudoti skliaustus. 938 00:41:28,250 --> 00:41:31,500 Tačiau šie Kvadrātiekavas ketinate turi skirtingą reikšmę ir šiame kontekste. 939 00:41:31,500 --> 00:41:33,450 >> Ir pažiūrėkime, kaip nurodyta toliau. 940 00:41:33,450 --> 00:41:36,780 Tarkime, kad aš atidariau iki naujo failo čia. 941 00:41:36,780 --> 00:41:38,535 Ir aš tai išsaugoti kaip ages.c. 942 00:41:38,535 --> 00:41:41,280 943 00:41:41,280 --> 00:41:43,470 Ir aš tai išsaugoti savo aplanką čia. 944 00:41:43,470 --> 00:41:46,130 Ir dabar aš ruošiuosi eiti į priekį ir pradėkite rašyti kažką 945 00:41:46,130 --> 00:41:53,940 kaip įtraukti CS50.h, apima stdio.h, int main negaliojančiu. 946 00:41:53,940 --> 00:41:57,370 Ir tada viduje čia, aš noriu pirmiausia turi int vadinamas amžiaus. 947 00:41:57,370 --> 00:42:01,371 >> Ir aš ruošiuosi naudoti, kad gauti int iš jo ar jos amžiaus vartotojui. 948 00:42:01,371 --> 00:42:04,620 Tačiau ši programa yra skirtas būti naudojamas keli žmonės, nepriklausomai nuo konteksto. 949 00:42:04,620 --> 00:42:05,490 Aš turiu žmonių liniją. 950 00:42:05,490 --> 00:42:08,281 Visi jie turi įvesti savo amžius gal kai aš nežinau, 951 00:42:08,281 --> 00:42:10,530 konkurencija, ar įvykis kad jie atvyko. 952 00:42:10,530 --> 00:42:13,030 Taigi kitam asmeniui, aš reikia kito kintamojo. 953 00:42:13,030 --> 00:42:15,790 >> Nes jei aš tiesiog padaryti amžiaus gauna getInt, tai 954 00:42:15,790 --> 00:42:18,500 ketina Bylų, ar perrašyti praėjusių asmens amžius. 955 00:42:18,500 --> 00:42:19,760 Taigi, kad nieko gero. 956 00:42:19,760 --> 00:42:21,790 Taigi mano pirmasis instinktas Gali būti, oi, viskas gerai, 957 00:42:21,790 --> 00:42:26,260 jei aš noriu gauti daug žmonių-ųjų ages-- tegul pavadinkime šį age1, 958 00:42:26,260 --> 00:42:31,280 int age2 gauna int, int age3 gauna getInt. 959 00:42:31,280 --> 00:42:35,340 Ir dabar aš ruošiuosi naudoti kai Pseudocode kodas čia. 960 00:42:35,340 --> 00:42:37,679 >> Ar kažką su tais numeriais. 961 00:42:37,679 --> 00:42:40,470 Mes išvykti į kitą dieną, kas mes darome čia, nes mes tik 962 00:42:40,470 --> 00:42:44,200 rūpintis metu apie age1, age2, age3. 963 00:42:44,200 --> 00:42:46,450 Deja, kai aš kaupia šią programą 964 00:42:46,450 --> 00:42:51,140 ir įdėti jį į priešais tikriesiems vartotojams, kas iš esmės prastas dizainas 965 00:42:51,140 --> 00:42:53,890 sprendimas man atrodo, kad padarė? 966 00:42:53,890 --> 00:42:54,624 Taip? 967 00:42:54,624 --> 00:42:55,499 PUBLIKA: [nesigirdi] 968 00:42:55,499 --> 00:42:58,071 969 00:42:58,071 --> 00:42:59,820 David J. Malan: Taip, Aš net bandė 970 00:42:59,820 --> 00:43:02,028 išsiaiškinti, kaip daug amžių man iš tikrųjų rūpi? 971 00:43:02,028 --> 00:43:05,380 Jeigu aš turiu mažiau nei trys žmonės čia ir todėl mažiau kaip tris amžiaus, 972 00:43:05,380 --> 00:43:07,260 Aš vis dar aklai tikintis tris. 973 00:43:07,260 --> 00:43:08,720 Neduok Dieve keturi žmonės parodyti. 974 00:43:08,720 --> 00:43:10,990 Mano programa tiesiog nebus net padėti jiems. 975 00:43:10,990 --> 00:43:13,280 >> Ir todėl tai, ilga istorija Trumpai tariant, nėra geras įprotis. 976 00:43:13,280 --> 00:43:13,780 Teisė? 977 00:43:13,780 --> 00:43:16,530 Aš iš esmės buvo nukopijuoti ir įklijuoti kodą ir tiesiog truputį keisdami 978 00:43:16,530 --> 00:43:17,430 kad kintamųjų vardai. 979 00:43:17,430 --> 00:43:22,410 Ir, mano Dieve, jei jūs turėjo ne tris amžių, tačiau 10 arba 100, arba net 6500 980 00:43:22,410 --> 00:43:23,820 bakalaurai, pavyzdžiui. 981 00:43:23,820 --> 00:43:26,950 Tai nesiruošia būti ypač elegantiškas kodas, arba tvarus. 982 00:43:26,950 --> 00:43:29,200 Jūs ketinate turėti perrašyti programos kiekvieną kartą 983 00:43:29,200 --> 00:43:30,760 jūsų telefono numeris keisis. 984 00:43:30,760 --> 00:43:35,090 >> Taigi, laimei, mūsų tikrasis ages.c byla šiandien, 985 00:43:35,090 --> 00:43:36,970 mes turime daugiau protingas sprendimas. 986 00:43:36,970 --> 00:43:39,800 Pirma, aš ruošiuosi skolintis statyti, mes naudojamas kelis kartus, 987 00:43:39,800 --> 00:43:43,744 tai daryti, o kilpa, siekiant gauti žmonių į kambarį skaičius. 988 00:43:43,744 --> 00:43:46,910 Aš tik ketina kvaršinti vartotojui, vėl ir vėl, kol jis ar ji man duoda 989 00:43:46,910 --> 00:43:49,260 vertė n tai teigiamas sveikasis skaičius. 990 00:43:49,260 --> 00:43:51,590 >> Aš galėjo naudoti, naujausia laikas get teigiamą int. 991 00:43:51,590 --> 00:43:53,720 Bet mes neturime, kad nekilnojamojo, todėl nuėjau į priekį 992 00:43:53,720 --> 00:43:55,660 ir vėl įgyvendinti šią idėją. 993 00:43:55,660 --> 00:43:58,410 Dabar žemyn čia, tai yra naujas triukas. 994 00:43:58,410 --> 00:44:02,260 Pagal 27, kaip komentarus linijiniai 26 rodo, 995 00:44:02,260 --> 00:44:05,180 paskelbti masyvą, kuriame saugoti kiekvieno žmogaus amžių. 996 00:44:05,180 --> 00:44:09,320 >> Taigi, jei norite gauti ne vieną int, o ne du ints, bet visa krūva int. 997 00:44:09,320 --> 00:44:13,800 Tiksliau n sveikieji skaičiai, n buvo might būti trijų, gali būti 100, gali būti 1000. 998 00:44:13,800 --> 00:44:17,570 Sintaksė, paprasčiausiai, yra tarkim, kas duomenų tipas norite? 999 00:44:17,570 --> 00:44:19,620 Ką norite skambinti kad atminties riekė? 1000 00:44:19,620 --> 00:44:23,530 Ką norite skambinti tinklelį kad atrodo taip pavaizduotomis piktogramo-? 1001 00:44:23,530 --> 00:44:27,700 >> Ir skliausteliuose čia, jūs sakote kaip didelis norite masyvas būti. 1002 00:44:27,700 --> 00:44:30,450 Ir taip anksčiau, kai aš sakiau sintaksė mažai kuo skiriasi čia 1003 00:44:30,450 --> 00:44:33,614 mes vis dar naudojate laužtiniuose skliaustuose, bet kai aš skelbiantis masyvą, 1004 00:44:33,614 --> 00:44:35,530 viduje skaičius laužtiniuose skliaustuose priemonės 1005 00:44:35,530 --> 00:44:37,610 kaip didelis norite masyvas būti. 1006 00:44:37,610 --> 00:44:42,490 >> Priešingai, kai mes buvome naudojant s laikiklis i prieš akimirką, s, eilutė, 1007 00:44:42,490 --> 00:44:46,820 Iš tiesų iš simbolių masyvas, bet kai esate ne skelbiantis kintamąjį, 1008 00:44:46,820 --> 00:44:49,760 kaip su šiuo raktažodžiu čia jūs tiesiog gauti 1009 00:44:49,760 --> 00:44:54,280 specifinis rodiklis, specifinis elementas iš tos masyvo. 1010 00:44:54,280 --> 00:44:57,090 Kai mes žinome, kad likusios tai yra paprasta. 1011 00:44:57,090 --> 00:45:00,765 Jei yra nauja aš pirmą ketinate spausdinti kas iš asmens numerio i amžiaus. 1012 00:45:00,765 --> 00:45:03,890 Kur aš tiesiog pasakyti žmogus numeris vienas, asmuo numeris du, asmens kodas trys. 1013 00:45:03,890 --> 00:45:06,306 >> Ir aš tiesiog daro aritmetines, taip, kad, pavyzdžiui, normalūs žmonės, 1014 00:45:06,306 --> 00:45:09,030 tikimės iš vieno už tai programa, o ne nuo nulio. 1015 00:45:09,030 --> 00:45:13,620 Tada aš vadinu getint, bet aš laikyti į amžių atsakymas laikiklis i. 1016 00:45:13,620 --> 00:45:16,610 Kuris yra i'th amžius masyve. 1017 00:45:16,610 --> 00:45:21,640 Todėl nors paskutinį kartą mes žiūrėjome šie langeliai kaip simbolių, skirtų Zamyla pavadinimas, 1018 00:45:21,640 --> 00:45:22,490 ir kt. 1019 00:45:22,490 --> 00:45:26,530 Dabar šie langeliai atstovauti 32 bitų ar keturių baitų 1020 00:45:26,530 --> 00:45:29,510 , kurioje mes galime laikyti int, int, int. 1021 00:45:29,510 --> 00:45:31,890 Visa tai, vėlgi, yra tas pats duomenų tipas. 1022 00:45:31,890 --> 00:45:33,890 >> Dabar darau kažką kvaila, kaip laikas eina, tiesiog 1023 00:45:33,890 --> 00:45:35,510 pateisinti raštu šią programą. 1024 00:45:35,510 --> 00:45:40,050 Ir tada žemyn čia, aš dar kartą pakartoti per masyvo sakydamas metų nuo dabar, 1025 00:45:40,050 --> 00:45:43,090 asmuo numeris vienas valia būti kažkas metai. 1026 00:45:43,090 --> 00:45:45,010 Ir suprasti, kad math-- Aš turiu galvoje, tai 1027 00:45:45,010 --> 00:45:49,260 nėra labai sudėtinga arithmetic-- Aš tiesiog pridėti vieną į jų amžių. 1028 00:45:49,260 --> 00:45:51,240 Tiesiog dar kartą įrodyti, tai. 1029 00:45:51,240 --> 00:45:57,910 >> Lygiai taip pat aš galiu puslapis į eilutę, S, taip galiu puslapis į kurio amžiaus masyvas, 1030 00:45:57,910 --> 00:45:59,950 kaip kad. 1031 00:45:59,950 --> 00:46:03,340 Taigi, kur tai vyksta, imasi mus? 1032 00:46:03,340 --> 00:46:07,070 Taigi mes matome, galų gale, Keletas dalykų, kuriuos per kelias dienas į priekį. 1033 00:46:07,070 --> 00:46:09,510 Vienas iš jų, visą šį laiką, kai raštu savo programas, 1034 00:46:09,510 --> 00:46:11,239 kaip Mario, gobšus, kreditą. 1035 00:46:11,239 --> 00:46:13,780 Jūs buvote įvedę vardą programa ir pataikyti Enter. 1036 00:46:13,780 --> 00:46:15,610 Ir tada gauti vartotojo įvesties. 1037 00:46:15,610 --> 00:46:18,137 >> Su getString, getInt, getLongLong arba pan. 1038 00:46:18,137 --> 00:46:20,720 Tačiau paaiškėja, kad C atramas kažkas vadinamas komandų eilutės 1039 00:46:20,720 --> 00:46:25,740 argumentai, kurie ruošiasi leisti mus faktiškai gauti ne žodžiais, kad jūs tipo, 1040 00:46:25,740 --> 00:46:28,570 ne mirksi eilutę po savo programos pavadinimą. 1041 00:46:28,570 --> 00:46:31,430 >> Taigi dienų ateiti, jums gali įvesti kažką panašaus Cezaris, 1042 00:46:31,430 --> 00:46:34,950 arba ./caesar numeris 13, po to. 1043 00:46:34,950 --> 00:46:36,070 Pamatysime, kaip tai veikia. 1044 00:46:36,070 --> 00:46:37,550 Nes iš tiesų, problema nustatyti du, mes 1045 00:46:37,550 --> 00:46:39,383 ketina pristatyti Jums su šiek tiek kažką 1046 00:46:39,383 --> 00:46:42,360 primena Ralphie s nuginčyti iš kartografijos. 1047 00:46:42,360 --> 00:46:43,970 Iš kodavimo informaciją menas. 1048 00:46:43,970 --> 00:46:46,660 Tai, iš tiesų, yra labai primena, kas Ralphie padarė. 1049 00:46:46,660 --> 00:46:51,380 >> Tai iš šifravimo pavyzdys algoritmas vadinamas ROT13 R-O-P 13. 1050 00:46:51,380 --> 00:46:54,910 Kuris tiesiog reiškia pasukti raidės abėcėlės 13 vietose. 1051 00:46:54,910 --> 00:46:58,309 Ir jei jūs darote, kad jūs pamatysite dabar kas yra, ko gero, žino frazė. 1052 00:46:58,309 --> 00:47:01,100 Bet kaip mes ketiname naudoti tai galiausiai yra apskritai. 1053 00:47:01,100 --> 00:47:04,390 >> P nustatyti du, į standartinę versiją, jums įgyvendinti keletą šifrai pora, 1054 00:47:04,390 --> 00:47:06,720 vienas vadinamas Cezaris, vienas vadinamas Vigenere. 1055 00:47:06,720 --> 00:47:10,090 Abu jie yra sukimosi šifrai, nes kažkaip 1056 00:47:10,090 --> 00:47:11,826 įjungti vieną raidę į kitą laišką. 1057 00:47:11,826 --> 00:47:12,950 Ir Cezaris yra super paprasta. 1058 00:47:12,950 --> 00:47:16,220 Jūs pridėti dar vieną, jūs pridedate 13, arba kai iki 26 skaičius. 1059 00:47:16,220 --> 00:47:19,570 Vigenere daro, kad už laiško pagrindas. 1060 00:47:19,570 --> 00:47:22,140 Taigi Vigenere, kaip jūs pamatysite į spec, yra saugesnis. 1061 00:47:22,140 --> 00:47:24,973 >> Bet dienos pabaigoje, ko jums bus įgyvendinti ir P nustatyti du, 1062 00:47:24,973 --> 00:47:29,050 yra tai, kad raktas, kurį naudoja tiek kai šifravimui ir iššifravimui. 1063 00:47:29,050 --> 00:47:32,160 Kalbėdamas apie tekinimo proceso teksto, kai originalus pranešimą, 1064 00:47:32,160 --> 00:47:34,490 į Cypher tekstą, kuris yra kažkas užkoduota. 1065 00:47:34,490 --> 00:47:36,220 Ir tada iškodavimo jį dar kartą. 1066 00:47:36,220 --> 00:47:38,119 >> Be hacker leidimas, Tuo tarpu, jūs būsite 1067 00:47:38,119 --> 00:47:40,660 pavesta kažką panašaus dvasia, kur mes suteiksime jums 1068 00:47:40,660 --> 00:47:44,610 failą, iš tipiškų Linux, arba Mac, Unix kompiuteris vadinamas Etsy 1069 00:47:44,610 --> 00:47:47,800 slaptažodis, kurį sudaro visumą krūva vardų ir slaptažodžių. 1070 00:47:47,800 --> 00:47:50,932 Ir tie slaptažodžiai turi visi buvo užšifruotas, arba maiša, 1071 00:47:50,932 --> 00:47:53,140 taip daugiau kalbėti tinkamai, kaip jūs pamatysite spec. 1072 00:47:53,140 --> 00:47:57,090 >> Ir įsilaužėlis leidimas bus iššūkis jūs su atsižvelgiant įvestį, kaip tai, 1073 00:47:57,090 --> 00:47:58,800 ir krekingo slaptažodį. 1074 00:47:58,800 --> 00:48:02,590 Tai reiškia, kad suprasti, ką Žmogaus slaptažodį tikrųjų buvo. 1075 00:48:02,590 --> 00:48:05,570 Nes, tiesą sakant, slaptažodžiai paprastai nėra saugomi aišku, 1076 00:48:05,570 --> 00:48:08,260 ir apskritai slaptažodžius turėtų būti sunku atspėti. 1077 00:48:08,260 --> 00:48:09,610 Tai nėra dažnas atvejis. 1078 00:48:09,610 --> 00:48:12,110 >> Ir tai, ką aš maniau, mes norime padaryti, tai sudaryti su pora minučių 1079 00:48:12,110 --> 00:48:15,160 žvilgsnis ypač prastas pasirinkimas slaptažodžių 1080 00:48:15,160 --> 00:48:17,260 iš filmo jūs tikriausiai pamenate, kad meile. 1081 00:48:17,260 --> 00:48:18,915 O jei ne, jums reikia išsinuomoti. 1082 00:48:18,915 --> 00:48:20,070 >> [VIDEO PLAYBACK] 1083 00:48:20,070 --> 00:48:22,320 >> -Helmet, Jūs fanatikas, kas vyksta? 1084 00:48:22,320 --> 00:48:24,240 Ką tu darai su mano dukra? 1085 00:48:24,240 --> 00:48:28,010 >> -Permit Man pristatyti jaunas puikus plastikos chirurgas, 1086 00:48:28,010 --> 00:48:30,010 Gydytojas Phillip Schlotkin. 1087 00:48:30,010 --> 00:48:35,020 Didžiausias nosis darbas žmogus Visa visata ir Beverly Hills. 1088 00:48:35,020 --> 00:48:36,140 >> -Your Didenybė. 1089 00:48:36,140 --> 00:48:36,820 >> -Nose Darbo? 1090 00:48:36,820 --> 00:48:37,700 Aš nesuprantu. 1091 00:48:37,700 --> 00:48:39,070 Ji jau turėjo nosies darbą. 1092 00:48:39,070 --> 00:48:40,800 Tai buvo jos saldus 16 metu. 1093 00:48:40,800 --> 00:48:42,590 >> Ne, tai ne tai, ką jūs manote. 1094 00:48:42,590 --> 00:48:44,490 Tai daug, daug blogiau. 1095 00:48:44,490 --> 00:48:48,160 Jei jūs neturite duoti man derinys oro skydas, 1096 00:48:48,160 --> 00:48:52,748 Gydytojas Schlotkin duos savo dukra atsarginę savo seną nosį. 1097 00:48:52,748 --> 00:48:53,748 - [Gūsių] Nooooooooooooo. 1098 00:48:53,748 --> 00:48:57,684 1099 00:48:57,684 --> 00:48:59,652 Kur tu jį gavai? 1100 00:48:59,652 --> 00:49:00,640 >> -Gerai. 1101 00:49:00,640 --> 00:49:02,506 Pasakysiu aš jums pasakysiu. 1102 00:49:02,506 --> 00:49:03,498 >> Ne, tėti, ne. 1103 00:49:03,498 --> 00:49:04,490 Jūs turite ne. 1104 00:49:04,490 --> 00:49:06,090 >> -Tu Teisė my dear. 1105 00:49:06,090 --> 00:49:07,390 Aš praleisti savo naują nosį. 1106 00:49:07,390 --> 00:49:10,990 Bet aš ne pasakykite jiems, kad derinys, nesvarbu koks. 1107 00:49:10,990 --> 00:49:12,450 >> -Labai Gerai. 1108 00:49:12,450 --> 00:49:14,830 Gydytojas Schlotkin, tai blogiausias. 1109 00:49:14,830 --> 00:49:15,744 >> -My Malonumas. 1110 00:49:15,744 --> 00:49:19,860 1111 00:49:19,860 --> 00:49:20,800 >> -no! 1112 00:49:20,800 --> 00:49:22,780 Palauk, palauk. 1113 00:49:22,780 --> 00:49:24,000 Aš pasakysiu. 1114 00:49:24,000 --> 00:49:25,830 Aš pasakysiu. 1115 00:49:25,830 --> 00:49:28,270 >> -Aš Žinojo, kad tai veikia. 1116 00:49:28,270 --> 00:49:31,390 Gerai, kad tai man. 1117 00:49:31,390 --> 00:49:36,220 >> -The Derinys yra vienas. 1118 00:49:36,220 --> 00:49:36,740 >> -Vienas. 1119 00:49:36,740 --> 00:49:37,473 >> -Vienas. 1120 00:49:37,473 --> 00:49:37,972 -Dvi. 1121 00:49:37,972 --> 00:49:38,471 -Dvi. 1122 00:49:38,471 --> 00:49:39,800 -Dvi. 1123 00:49:39,800 --> 00:49:40,300 -Three. 1124 00:49:40,300 --> 00:49:40,800 -Three. 1125 00:49:40,800 --> 00:49:41,800 -Three. 1126 00:49:41,800 --> 00:49:42,300 Keturi. 1127 00:49:42,300 --> 00:49:42,800 Keturi. 1128 00:49:42,800 --> 00:49:44,707 Keturi. 1129 00:49:44,707 --> 00:49:45,521 -Five. 1130 00:49:45,521 --> 00:49:46,430 -Five. 1131 00:49:46,430 --> 00:49:47,930 -Five. 1132 00:49:47,930 --> 00:49:53,480 -Taigi Derinys yra vienas, du, trys, keturi penki. 1133 00:49:53,480 --> 00:49:56,140 Štai stupidest derinys Aš kada nors išgirsti mano gyvenime. 1134 00:49:56,140 --> 00:49:58,640 Štai iš dalykas, natūra idiotas turės savo bagažo. 1135 00:49:58,640 --> 00:50:00,000 >> -Ačiū, Jūsų Didenybe. 1136 00:50:00,000 --> 00:50:01,340 >> [REMOTE PASPAUDIMAI] 1137 00:50:01,340 --> 00:50:02,450 >> -Ko Tu padarei? 1138 00:50:02,450 --> 00:50:03,800 >> -Aš Išjungtas sieną. 1139 00:50:03,800 --> 00:50:05,010 >> Ne, tu negali, tu išjungtas visą filmą. 1140 00:50:05,010 --> 00:50:06,220 >> -Aš Tikriausiai paspaudėte klaidingą mygtuką. 1141 00:50:06,220 --> 00:50:07,064 >> Na, padėkite jį atgal! 1142 00:50:07,064 --> 00:50:07,910 Įdėkite filmą atgal! 1143 00:50:07,910 --> 00:50:08,300 >> Taip, sere! 1144 00:50:08,300 --> 00:50:08,799 Taip, sere. 1145 00:50:08,799 --> 00:50:09,660 -Paleiskite Keliaukime, Arnold. 1146 00:50:09,660 --> 00:50:10,450 Ateik, Gretchen. 1147 00:50:10,450 --> 00:50:12,533 Žinoma, jūs žinote, aš jums turi sąskaitą už tai. 1148 00:50:12,533 --> 00:50:16,720 1149 00:50:16,720 --> 00:50:17,220 Na? 1150 00:50:17,220 --> 00:50:17,802 Ar jis veikia? 1151 00:50:17,802 --> 00:50:18,510 Kur karalius? 1152 00:50:18,510 --> 00:50:20,218 >> -Ji Dirbo, pone, mes turi derinys. 1153 00:50:20,218 --> 00:50:20,740 -Great. 1154 00:50:20,740 --> 00:50:24,810 Dabar mes galime imtis visų paskutinio atodūsio šviežio oro iš planetos Druidia. 1155 00:50:24,810 --> 00:50:25,890 Kas derinys? 1156 00:50:25,890 --> 00:50:28,155 >> -Vienas, Du, trys, keturi penki. 1157 00:50:28,155 --> 00:50:29,890 >> -Vienas, Du, trys, keturios, penkios? 1158 00:50:29,890 --> 00:50:30,390 Taip. 1159 00:50:30,390 --> 00:50:31,110 -Tai Nuostabi. 1160 00:50:31,110 --> 00:50:34,550 Aš turiu tą patį derinys mano bagažą. 1161 00:50:34,550 --> 00:50:37,160 Paruoškite SPACEBALL 1 už neatidėliotinas išvykimas. 1162 00:50:37,160 --> 00:50:38,160 >> Taip, sere. 1163 00:50:38,160 --> 00:50:40,745 >> -Ir Keisti derinys mano bagažą. 1164 00:50:40,745 --> 00:50:41,578 [Durų uždarymo SOUND] 1165 00:50:41,578 --> 00:50:42,064 [Clink DURŲ pataikyti šalmas] 1166 00:50:42,064 --> 00:50:42,550 -Ahh. 1167 00:50:42,550 --> 00:50:43,383 [END VIDEO PLAYBACK] 1168 00:50:43,383 --> 00:50:46,700 David J. Malan: Štai ir viskas už CS50, mes pasimatysime kitą savaitę. 1169 00:50:46,700 --> 00:50:49,883 Narrator: Ir dabar, Deep Mintys, pagal Daven Farnham. 1170 00:50:49,883 --> 00:50:53,160 1171 00:50:53,160 --> 00:50:55,860 >> DAVEN Farnham: Kodai C yra tiek daug sunkiau, nei nulio. 1172 00:50:55,860 --> 00:50:57,320 printf, įbrėžimams buvo melas. 1173 00:50:57,320 --> 00:50:59,930 1174 00:50:59,930 --> 00:51:01,430 >> [Juokas SOUNDBITE] 1175 00:51:01,430 --> 00:51:02,486