1 00:00:00,000 --> 00:00:00,980 2 00:00:00,980 --> 00:00:04,410 >> [Muusika mängimine] 3 00:00:04,410 --> 00:00:11,147 4 00:00:11,147 --> 00:00:12,230 DAVID J. Humala: Olgu. 5 00:00:12,230 --> 00:00:16,440 See on CS50 ja see on lõpuks 2. nädal. 6 00:00:16,440 --> 00:00:18,480 Nii et täna me ei kavatse jätkata meie välimus 7 00:00:18,480 --> 00:00:21,150 kuidas me esindame asjad all hood-- loobumas 8 00:00:21,150 --> 00:00:23,520 numbritelt nagu täisarvud ujukoma väärtused 9 00:00:23,520 --> 00:00:26,810 ja keskendudes stringid ja lõppkokkuvõttes rohkem huvitavaid programme. 10 00:00:26,810 --> 00:00:30,140 Aga me ka võtta pilk Paar erialaspetsiifilisi probleeme-- 11 00:00:30,140 --> 00:00:33,620 Esimene mis olema kaasatud krüptograafia, 12 00:00:33,620 --> 00:00:36,570 art skrambleerimisbittide info kus sa näed eespool siin 13 00:00:36,570 --> 00:00:41,480 on pilt Radio harva Annie saladus dekooder sõrmuse Läinud. 14 00:00:41,480 --> 00:00:46,490 >> See on tegelikult väga primitiivne vorm ja lapsesõbraliku kujul cryptopgraphy 15 00:00:46,490 --> 00:00:50,590 kusjuures see ring on kaks disks-- üks sees ja teine ​​väljaspool. 16 00:00:50,590 --> 00:00:54,740 Ja keerates üks neist, saate sisuliselt rivistama tähed nagu 17 00:00:54,740 --> 00:00:59,520 läbi Z teiste tähtede nagu B kaudu A. Teisisõnu 18 00:00:59,520 --> 00:01:03,730 saab sõna otseses mõttes pöörlema ​​tähestik, seeläbi tulemas kujutus 19 00:01:03,730 --> 00:01:07,820 tähed tähed nii, et kui sa tahtsin saata salajane sõnum 20 00:01:07,820 --> 00:01:11,820 keegi nagu Annie, võid kirjutada maha oma sõnum ja seejärel pöörake 21 00:01:11,820 --> 00:01:15,370 kirjad, mille kohaselt juhul, kui sa mõtled öelda "," sa selle asemel öelda "B" 22 00:01:15,370 --> 00:01:17,280 sa taha öelda, "B" te asemel öelda "C" - 23 00:01:17,280 --> 00:01:20,240 või midagi natuke targem kui et-- ja siis lõpuks 24 00:01:20,240 --> 00:01:24,630 nii kaua, kui Annie on see dekooder ring, ta saab dekodeerida sõnumit. 25 00:01:24,630 --> 00:01:28,540 Nüüd võite meelde tuletada, et tegelikult see kasutati väga kuulus film, mis 26 00:01:28,540 --> 00:01:31,140 mängib ad nauseum ajal jõulud. 27 00:01:31,140 --> 00:01:32,650 Võtame pilk siia. 28 00:01:32,650 --> 00:01:35,294 29 00:01:35,294 --> 00:01:37,210 Ralphie PARKER: "Olgu see teada, et kõik kokkuvõte 30 00:01:37,210 --> 00:01:41,000 et Ralph Parker nimetatakse liige Little harva Annie Secret 31 00:01:41,000 --> 00:01:44,860 Circle ning tal on õigus kõik kiitusega ja kasu esinevad nendega. " 32 00:01:44,860 --> 00:01:47,410 >> Ralphie PARKER (jutustamise): Allkirjastatud Little harva Annie. 33 00:01:47,410 --> 00:01:50,070 Allkirjastas Pierre Andre! 34 00:01:50,070 --> 00:01:51,490 Tindiga. 35 00:01:51,490 --> 00:01:55,494 Kiitusega ja hüvitised, juba üheksa-aastaselt. 36 00:01:55,494 --> 00:01:57,402 >> [Muusika mängimine] 37 00:01:57,402 --> 00:02:00,470 >> [RAADIO Vestluse] 38 00:02:00,470 --> 00:02:01,470 Ralphie PARKER: Tule. 39 00:02:01,470 --> 00:02:02,344 Lähme edasi. 40 00:02:02,344 --> 00:02:06,029 Ma ei pea kõik, mis jazz umbes salakaubavedajate ja piraatide. 41 00:02:06,029 --> 00:02:08,820 Raadiodiktor Kuulake homme õhtu lõpetatakse seiklus 42 00:02:08,820 --> 00:02:11,060 Musta Pirate Ship. 43 00:02:11,060 --> 00:02:14,740 Nüüd on aeg Annie Salajane sõnum teile kohal 44 00:02:14,740 --> 00:02:17,110 Secret Circle. 45 00:02:17,110 --> 00:02:20,700 Pea meeles, lapsed, ainult liikmetele Annie Secret Circle 46 00:02:20,700 --> 00:02:23,270 saab dekodeerida Annie salajane sõnum. 47 00:02:23,270 --> 00:02:27,270 >> Pea meeles, et Annie on sõltuvalt teile. 48 00:02:27,270 --> 00:02:30,060 Määra oma sõrmed B-2. 49 00:02:30,060 --> 00:02:34,004 Siin on message-- 12, 11, 2-- 50 00:02:34,004 --> 00:02:36,503 Ralphie PARKER (jutustamise): I olen oma esimese salajane koosolek. 51 00:02:36,503 --> 00:02:40,041 Raadiodiktor: --25, 14, 11, 18, 16-- 52 00:02:40,041 --> 00:02:42,790 Ralphie PARKER (jutustamise): Oh, Pierre oli suurepärane hääl täna. 53 00:02:42,790 --> 00:02:46,110 Ma võiksin öelda, et tänane sõnum oli väga oluline. 54 00:02:46,110 --> 00:02:47,930 >> Raadiodiktor: vähemalt 3, 25. 55 00:02:47,930 --> 00:02:49,940 See on sõnum Annie ise. 56 00:02:49,940 --> 00:02:52,182 Pea meeles, et ei räägi kellelegi. 57 00:02:52,182 --> 00:02:55,077 >> [Hingeldamine] 58 00:02:55,077 --> 00:02:57,285 Ralphie PARKER (jutustamise): Üheksakümmend sekundit hiljem, ma olen 59 00:02:57,285 --> 00:03:00,090 aastal ainus tuba maja, kus poiss üheksa 60 00:03:00,090 --> 00:03:04,380 võiks istuda privaatsust ja dekodeerida. 61 00:03:04,380 --> 00:03:04,990 Ah. 62 00:03:04,990 --> 00:03:05,680 "B." 63 00:03:05,680 --> 00:03:06,524 >> [Chuckles] 64 00:03:06,524 --> 00:03:08,684 >> Ralphie PARKER (jutustamise): Ma läksin edasi. 65 00:03:08,684 --> 00:03:09,610 "E." 66 00:03:09,610 --> 00:03:11,641 Esimene sõna on "olla." 67 00:03:11,641 --> 00:03:12,140 Jah! 68 00:03:12,140 --> 00:03:14,293 See tuli lihtsam nüüd. 69 00:03:14,293 --> 00:03:15,259 "U." 70 00:03:15,259 --> 00:03:16,225 >> [Chuckles] 71 00:03:16,225 --> 00:03:18,157 >> Randy PARKER: Ah, ole nüüd, Ralphie. 72 00:03:18,157 --> 00:03:19,606 Ma pean minema! 73 00:03:19,606 --> 00:03:21,538 >> Ralphie PARKER: Ma tulen kohe alla, ema. 74 00:03:21,538 --> 00:03:22,504 Gee viuhti. 75 00:03:22,504 --> 00:03:25,402 76 00:03:25,402 --> 00:03:31,220 "T." "O." "Kindlasti kuni. "" Kindlasti, "mida? 77 00:03:31,220 --> 00:03:33,981 Mis oli Little harva Annie vestlemisel? "Kindlasti" Mis? 78 00:03:33,981 --> 00:03:35,522 EMA: Ralphie, Randy peab kaduma. 79 00:03:35,522 --> 00:03:36,735 Kas sa palun tule välja? 80 00:03:36,735 --> 00:03:38,190 >> Ralphie PARKER: Olgu, ema! 81 00:03:38,190 --> 00:03:39,787 Ma tulen kohe välja! 82 00:03:39,787 --> 00:03:41,995 Ralphie PARKER (jutustamise): Ma olin jõudmas nüüd. 83 00:03:41,995 --> 00:03:43,370 Pinge oli kohutav. 84 00:03:43,370 --> 00:03:44,794 Mis see oli? 85 00:03:44,794 --> 00:03:47,656 Planeedi saatuse võib riputada tasakaalu. 86 00:03:47,656 --> 00:03:50,518 >> EMA: Ralphie, Randy peab minema! 87 00:03:50,518 --> 00:03:53,635 >> Ralphie PARKER: Ma tulen kohe välja, nutt valjusti! 88 00:03:53,635 --> 00:03:55,343 Ralphie PARKER (Jutustamise): Peaaegu! 89 00:03:55,343 --> 00:03:56,520 Minu sõrmed lendas! 90 00:03:56,520 --> 00:03:58,500 Minu arvates oli terase lõksu. 91 00:03:58,500 --> 00:03:59,850 Igast poorist vibreerima. 92 00:03:59,850 --> 00:04:01,806 See oli peaaegu selge! 93 00:04:01,806 --> 00:04:02,773 Jah! 94 00:04:02,773 --> 00:04:03,273 Jah! 95 00:04:03,273 --> 00:04:03,773 Jah! 96 00:04:03,773 --> 00:04:04,740 Jah! 97 00:04:04,740 --> 00:04:10,250 >> Ralphie PARKER: "Kindlasti juua oma 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 Trullakas kaubanduslik? 101 00:04:17,539 --> 00:04:19,439 >> [Muusika mängimine] 102 00:04:19,439 --> 00:04:21,724 >> Ralphie PARKER: Son of a bitch. 103 00:04:21,724 --> 00:04:23,460 >> [LAUGHING] 104 00:04:23,460 --> 00:04:27,070 >> DAVID J. Humala: Nii, et siis on pilguheit mida krüptograafia 105 00:04:27,070 --> 00:04:29,880 võib olla see-- juua Läinud. 106 00:04:29,880 --> 00:04:30,900 Nii kiire teadaanne. 107 00:04:30,900 --> 00:04:33,410 Kui oled vaba seda Reedel kell 13:15 ja oleks 108 00:04:33,410 --> 00:04:36,610 tahan liituda meiega CS50 lunch, pea see URL siia. 109 00:04:36,610 --> 00:04:38,080 Kes ees, see toimib alati. 110 00:04:38,080 --> 00:04:41,840 Aga aja jooksul, me veenduge, et Kõige kes tahaks osaleda 111 00:04:41,840 --> 00:04:43,640 võib ajastada tark. 112 00:04:43,640 --> 00:04:45,170 >> Nii stringe. 113 00:04:45,170 --> 00:04:47,940 Meil on Zamyla-- kellele olete nüüd täidetud kõige tõenäolisem 114 00:04:47,940 --> 00:04:50,750 aastal Ülesanded 1-- kelle nimi kirjutatakse nii. 115 00:04:50,750 --> 00:04:53,570 Ja arvan, et sa kirjutasid oma nime arvutisse programmi, mis on 116 00:04:53,570 --> 00:04:55,710 kasutades midagi getString. 117 00:04:55,710 --> 00:04:57,890 Et laadida need klahvivajutused, kuidas 118 00:04:57,890 --> 00:05:01,620 me minna esindavad string, sõna, lõigu 119 00:05:01,620 --> 00:05:03,960 või mitu tähte, nagu need siin? 120 00:05:03,960 --> 00:05:06,790 >> Me rääkisime eelmisel korral umbes täisarvud ja probleemid 121 00:05:06,790 --> 00:05:09,960 mis tekivad täisarv ülevool ujukoma väärtused 122 00:05:09,960 --> 00:05:12,190 ja probleeme, mis tekivad täpsusega. 123 00:05:12,190 --> 00:05:16,080 Mis stringid, me vähemalt on veidi rohkem paindlikkust 124 00:05:16,080 --> 00:05:17,970 sest strings-- lihtsalt reaalses aasta Maailma 125 00:05:17,970 --> 00:05:19,790 võib olla üsna suvalise pikkusega. 126 00:05:19,790 --> 00:05:21,055 Päris lühike, üsna pikk. 127 00:05:21,055 --> 00:05:23,680 Aga isegi siis, me ei kavatse leiavad, et arvutid võivad mõnikord 128 00:05:23,680 --> 00:05:27,200 mälu täis ja ei ole isegi salvestada piisavalt suur string. 129 00:05:27,200 --> 00:05:30,840 >> Aga nüüd, alustame visualiseerida stringi midagi neid karpe 130 00:05:30,840 --> 00:05:31,340 siin. 131 00:05:31,340 --> 00:05:36,410 Nii kuus sellist kastid, millest igaüks tähistab märk või "char". 132 00:05:36,410 --> 00:05:40,646 Nii et meelde tuletada, et "char" - c-h-a-r-- on üks sisseehitatud andmete liigid C. 133 00:05:40,646 --> 00:05:43,520 Ja mis on tore on, et saate kasutada et omamoodi nagu ehituskivi, 134 00:05:43,520 --> 00:05:47,880 puzzle tükk, kui soovite, et moodustada suurem tüüpi andmeid me jätkame 135 00:05:47,880 --> 00:05:49,410 helistada "string." 136 00:05:49,410 --> 00:05:53,650 >> Nüüd, mis on kasulik mõtlemist asju nagu stringid niimoodi? 137 00:05:53,650 --> 00:05:57,720 Noh, selgub, et suudame tegelikult võimendada selle struktuuri 138 00:05:57,720 --> 00:06:01,420 tegelikult juurdepääs üksikute märkide aastal üsna otsekohene viisil. 139 00:06:01,420 --> 00:06:04,099 Ma lähen edasi minna ja luua fail nimega "stringzero.c" 140 00:06:04,099 --> 00:06:05,765 kuid võite helistada see, mida sa soovid. 141 00:06:05,765 --> 00:06:08,500 Ja muidugi veebilehel on juba selles näites eelnevalt 142 00:06:08,500 --> 00:06:10,430 nii et sa ei pea kirjuta kõike välja. 143 00:06:10,430 --> 00:06:13,820 >> Ja ma lähen edasi minna ja esimene tee int main void. 144 00:06:13,820 --> 00:06:15,980 Ja paari päeva jooksul, hakkame tease peale 145 00:06:15,980 --> 00:06:19,070 mis tühine on siin, miks see int kõrval peamine, ja nii edasi. 146 00:06:19,070 --> 00:06:21,180 Aga nüüd, olgem jätkata kopeerida kleebi see. 147 00:06:21,180 --> 00:06:23,455 >> Ma kinnitan, string nimega s. 148 00:06:23,455 --> 00:06:26,920 Ja ma lähen tagasi alates GetString iganes kasutaja liigid. 149 00:06:26,920 --> 00:06:29,170 See saab olema lihtne programmi, ei juhiseid, 150 00:06:29,170 --> 00:06:31,336 Ma lihtsalt pimesi eeldada, et kasutaja teab 151 00:06:31,336 --> 00:06:32,600 mida teha, et hoida lihtsa. 152 00:06:32,600 --> 00:06:34,220 >> Ja nüüd ma lähen on silmus. 153 00:06:34,220 --> 00:06:37,450 Ja sees minu jaoks silmus olen läheb on int i saab nulli. 154 00:06:37,450 --> 00:06:40,660 Ja ma jällegi vaid konventsiooni index muutuja lugemist 155 00:06:40,660 --> 00:06:42,350 aga ma nimetan seda, mida tahan. 156 00:06:42,350 --> 00:06:46,275 Ma lähen tegema, i on väiksem kui-- hästi Zamyla nimi on kuus tähte pikk. 157 00:06:46,275 --> 00:06:48,150 Nii et ma lähen kõvasti kood, mis seal nüüd. 158 00:06:48,150 --> 00:06:49,730 >> Ja siis ma ++. 159 00:06:49,730 --> 00:06:53,190 Ja nüüd sees need lokkis traksid ma teen printf, 160 00:06:53,190 --> 00:06:55,460 ja ma tahan printida ühe märgi korraga. 161 00:06:55,460 --> 00:06:58,227 Nii et ma lähen kasutada% C võibolla esmakordselt. 162 00:06:58,227 --> 00:07:00,560 Ja siis ma tahan printida iga märgi oma rida. 163 00:07:00,560 --> 00:07:02,550 Nii et ma lähen üles vähe längkriipsu n seal. 164 00:07:02,550 --> 00:07:03,640 Sulge tsiteerida. 165 00:07:03,640 --> 00:07:06,250 >> Ja nüüd ma tahan teha midagi. 166 00:07:06,250 --> 00:07:10,610 Ma tahan välja printida konkreetse kirja string, 167 00:07:10,610 --> 00:07:13,670 s, kui ma iterating alates null kuni kuus. 168 00:07:13,670 --> 00:07:17,150 Teisisõnu, ma tahan prindi -nda iseloomu s. 169 00:07:17,150 --> 00:07:18,420 Nüüd, kuidas ma saan seda teha? 170 00:07:18,420 --> 00:07:21,550 >> Hästi palju nagu kastid see esitus siin 171 00:07:21,550 --> 00:07:25,560 liiki, võluda mõiste poks tähed, saad samamoodi teha 172 00:07:25,560 --> 00:07:32,630 süntaktiliselt C lihtsalt täpsustades, Ma tahan välja printida s on i-nda iseloomu. 173 00:07:32,630 --> 00:07:35,640 Kasutades nurksulgudes arvuti klaviatuuri 174 00:07:35,640 --> 00:07:38,910 et USA klaviatuur on üldiselt üle oma Enter. 175 00:07:38,910 --> 00:07:42,630 >> Nii et see ei ole päris õige veel, nagu te võib-olla märganud. 176 00:07:42,630 --> 00:07:44,780 Aga ma lähen liiki pimesi edasi liikuda siin. 177 00:07:44,780 --> 00:07:47,020 Ja ma ei tee string 0. 178 00:07:47,020 --> 00:07:50,860 Aga enne kui ma seda teen, vaatame, kas me ei saa ette näha mõningaid ühiseid vigu. 179 00:07:50,860 --> 00:07:52,844 Kas see läheb kompileerida? 180 00:07:52,844 --> 00:07:54,510 Ei, ma kadunud terve hunnik asju. 181 00:07:54,510 --> 00:07:55,280 Raamatukogud kuulsin. 182 00:07:55,280 --> 00:07:58,480 >> Nii et mis päisefailiga võib Tahan lisada siia? 183 00:07:58,480 --> 00:07:59,205 Jah. 184 00:07:59,205 --> 00:08:01,580 >> Sihtrühm: Sa pead standard I / O [kuuldamatu] 185 00:08:01,580 --> 00:08:02,663 >> DAVID J. Humala: Suurepärane. 186 00:08:02,663 --> 00:08:06,060 Nii et ma pean standard I / O. Sest mis Selleks ma tahan standard I / O? 187 00:08:06,060 --> 00:08:06,670 Printf. 188 00:08:06,670 --> 00:08:09,220 Nii hõlmavad stdio.h. 189 00:08:09,220 --> 00:08:13,490 Ja sa ka ettepaneku, et ma lisama CS50 raamatukogu, mis põhjusel? 190 00:08:13,490 --> 00:08:14,650 Et on stringid. 191 00:08:14,650 --> 00:08:17,780 Nii me näeme, mida CS50 raamatukogu teeb 192 00:08:17,780 --> 00:08:19,260 luua selle mõiste string. 193 00:08:19,260 --> 00:08:21,930 Aga nüüd, saate lihtsalt arvan, sellest, kui tegelikud andmed tüüp. 194 00:08:21,930 --> 00:08:23,596 >> Nii et tundub, et veidi koristanud. 195 00:08:23,596 --> 00:08:27,060 Ja nüüd ma lähen edasi minna ja tõesti ei tee string 0. 196 00:08:27,060 --> 00:08:27,700 Koostanud. 197 00:08:27,700 --> 00:08:28,370 Nii et see on hea. 198 00:08:28,370 --> 00:08:32,799 Nii ./string0 lase mind sisse suumida, et saaksime vaata lähemalt, mis toimub. 199 00:08:32,799 --> 00:08:33,850 Sisesta. 200 00:08:33,850 --> 00:08:37,789 Z-A-M-Y-L-sisestada. 201 00:08:37,789 --> 00:08:39,440 Ja me oleme välja printida kuni Zamyla nimi. 202 00:08:39,440 --> 00:08:40,409 >> Nii et see on päris hea. 203 00:08:40,409 --> 00:08:43,220 Nüüd lähme edasi ja Käivita see programm uuesti, 204 00:08:43,220 --> 00:08:45,659 ja kirjuta välja Daven täisnimi. 205 00:08:45,659 --> 00:08:46,450 Üllatus, üllatus. 206 00:08:46,450 --> 00:08:48,021 Sisesta. 207 00:08:48,021 --> 00:08:48,520 Hmm. 208 00:08:48,520 --> 00:08:51,750 Me ei ole trükitud Daven on täiseesnime õigesti. 209 00:08:51,750 --> 00:08:54,250 Nüüd peaks see olema ilmne tagasivaade sest mida, 210 00:08:54,250 --> 00:08:57,010 omamoodi, loll disain otsus? 211 00:08:57,010 --> 00:08:59,590 >> Jah, ma kõva kodeeritud kuue sees minu jaoks silmus. 212 00:08:59,590 --> 00:09:01,610 Nüüd ma tegin seda ainult sellepärast, Ma teadsin Zamyla nimi 213 00:09:01,610 --> 00:09:02,776 pidi olema kuus tähte. 214 00:09:02,776 --> 00:09:04,720 Aga kindlasti ei ole see üldine lahendus. 215 00:09:04,720 --> 00:09:07,720 Nii selgub saame dünaamiliselt nuputada pikkus string 216 00:09:07,720 --> 00:09:10,440 kutsudes funktsiooni nimetatakse strlen. 217 00:09:10,440 --> 00:09:12,840 >> Jällegi tahtlikult tabavalt nimeks lihtsalt 218 00:09:12,840 --> 00:09:14,450 et oleks mugavam kirjutada. 219 00:09:14,450 --> 00:09:17,170 Aga see on sünonüüm saada pikkus string. 220 00:09:17,170 --> 00:09:23,190 Ma lähen tagasi oma terminali akna ja uuesti käivitada tõlkija. 221 00:09:23,190 --> 00:09:24,170 Aga see on minu peale karjumine. 222 00:09:24,170 --> 00:09:29,130 Kaudselt kuulutatakse raamatukogu funktsiooni strlen tüüpi allkirjastamata int const-- 223 00:09:29,130 --> 00:09:29,780 Ma olen eksinud. 224 00:09:29,780 --> 00:09:30,590 Täielikult. 225 00:09:30,590 --> 00:09:32,940 >> Seega, eriti kui teie hakkavad silmad glasuur üle 226 00:09:32,940 --> 00:09:36,000 veateateid nagu see, keskendudes ausalt paar esimest sõna. 227 00:09:36,000 --> 00:09:38,590 Me teame, et probleem on rida 8, nagu on näidatud siin. 228 00:09:38,590 --> 00:09:40,500 Ja see on string-0.c. 229 00:09:40,500 --> 00:09:43,580 Kaudselt kuulutatakse raamatukogu funktsiooni strlen. 230 00:09:43,580 --> 00:09:47,000 Nii et üldiselt läheb olema muster veateateid. 231 00:09:47,000 --> 00:09:49,190 Kaudselt kuulutatakse midagi. 232 00:09:49,190 --> 00:09:53,250 >> Nii et lühidalt öeldes, mis on I näis on teinud seoses rida 8, siin. 233 00:09:53,250 --> 00:09:56,880 Mis võib olla lahus olla isegi Kui olete kunagi kasutanud strlen ise? 234 00:09:56,880 --> 00:09:58,907 >> Sihtrühm: Osa erinevad raamatukogu? 235 00:09:58,907 --> 00:10:00,740 DAVID J. Humala: Osa ning erinevate raamatukogu. 236 00:10:00,740 --> 00:10:02,400 Nii et see on välja kuulutatud, kui nii võib öelda. 237 00:10:02,400 --> 00:10:07,510 Seda mainitakse mõnda faili va stdio.h ja CS50.h. 238 00:10:07,510 --> 00:10:09,179 Nüüd, kus on see määratletud? 239 00:10:09,179 --> 00:10:12,220 Kui aus olla, siis on kas lihtsalt tean, et see välja peal oma peaga, 240 00:10:12,220 --> 00:10:13,640 või sa googeldada seda ja teada saada. 241 00:10:13,640 --> 00:10:18,150 Või teavad seda, ma olen avanenud CS50 seadmega terminali programm, mis 242 00:10:18,150 --> 00:10:22,200 on lihtsalt suur, täisekraani versioon mis on põhja gedit aknas. 243 00:10:22,200 --> 00:10:24,970 >> Ja selgub, et seal on sarnaselt sisutihe käsk, mida nimetatakse 244 00:10:24,970 --> 00:10:29,280 mees käsitsi, kui siis, kui sa kirjutad nimi funktsioon ja vajuta Enter, 245 00:10:29,280 --> 00:10:32,240 saad tagasi üsna kauge dokumentatsiooni. 246 00:10:32,240 --> 00:10:35,299 See on lihtsalt tekst, et üldiselt tundub natuke midagi sellist. 247 00:10:35,299 --> 00:10:37,090 See on natuke suur esimesel pilgul. 248 00:10:37,090 --> 00:10:39,048 Aga ausalt öeldes ma lähen lase oma silmad glasuur üle 249 00:10:39,048 --> 00:10:41,930 ja keskenduda vaid osa Ma hoolin hetkel. 250 00:10:41,930 --> 00:10:42,780 >> Milline on see. 251 00:10:42,780 --> 00:10:45,470 Milline näeb välja struktuurilt nagu midagi, mida ma olen tuttav. 252 00:10:45,470 --> 00:10:48,080 Tõepoolest mees lehele, nii rääkida, ütlen teile, 253 00:10:48,080 --> 00:10:51,590 millises päisefailist funktsioon nagu strlen on määratletud. 254 00:10:51,590 --> 00:10:54,170 Nii et ma lähen nüüd tagasi gedit. 255 00:10:54,170 --> 00:10:59,070 Ja ma lähen edasi minna ja lisada siin #include 256 00:10:59,070 --> 00:11:00,480 ja salvestage fail. 257 00:11:00,480 --> 00:11:04,300 >> Ma lähen selge ekraan koos Kontroll L Kui oled olnud mõtlesin. 258 00:11:04,300 --> 00:11:08,210 Ja ma lähen uuesti käivitada make string.0, koostab seekord. 259 00:11:08,210 --> 00:11:11,790 ./string.0 Zamyla. 260 00:11:11,790 --> 00:11:15,020 See tundus töötada Lase mul minna edasi ja korrake seda Davenport. 261 00:11:15,020 --> 00:11:15,860 Sisesta. 262 00:11:15,860 --> 00:11:17,730 Ja see ka, tundus, et töötada. 263 00:11:17,730 --> 00:11:21,220 >> Nii saame teha natuke parem kui see, aga saame hakkama kasitud asjad 264 00:11:21,220 --> 00:11:23,257 üles natuke. 265 00:11:23,257 --> 00:11:25,590 Ja ma tegelikult tutvustada üks asi nüüd. 266 00:11:25,590 --> 00:11:28,930 Ma lähen edasi minna ja salvestada selle teise faili. 267 00:11:28,930 --> 00:11:31,770 Ja ma lähen helistada Faili string1.c lihtsalt 268 00:11:31,770 --> 00:11:34,620 olema kooskõlas koodi Teil on võimalik leida internetis. 269 00:11:34,620 --> 00:11:37,050 >> Ja olgem keskenduda täpselt sama koodi. 270 00:11:37,050 --> 00:11:39,000 Tuleb välja, et ma olen olnud omamoodi võtmist 271 00:11:39,000 --> 00:11:42,600 enesestmõistetavaks, et minu laptop, ja omakorda CS50 seade 272 00:11:42,600 --> 00:11:47,450 on palju mälu, palju RAM, palju baiti ruumi 273 00:11:47,450 --> 00:11:48,920 kus ma saan salvestada stringe. 274 00:11:48,920 --> 00:11:53,560 >> Aga reaalsus kui ma kirjutada pikk piisavalt ja piisavalt klahvivajutusi, 275 00:11:53,560 --> 00:11:56,170 Ma võiks teoreetiliselt tüüp rohkem tähemärki 276 00:11:56,170 --> 00:11:58,830 kui mu arvuti füüsiliselt on mälu. 277 00:11:58,830 --> 00:11:59,830 Ja see on problemaatiline. 278 00:11:59,830 --> 00:12:03,050 Palju nagu int võib ainult loota, et kõrge teoreetiliselt 279 00:12:03,050 --> 00:12:06,600 saab ainult tuupima nii palju märke oma arvuti RAM või Random 280 00:12:06,600 --> 00:12:07,920 Access Memory. 281 00:12:07,920 --> 00:12:11,140 >> Nii et mul oli paremini ennetada Selle probleemi isegi 282 00:12:11,140 --> 00:12:13,660 ehkki see võib olla haruldane nurga puhul, nii rääkida. 283 00:12:13,660 --> 00:12:15,670 Ei juhtu, et tihti võib juhtuda. 284 00:12:15,670 --> 00:12:18,815 Ja kui see juhtub, ja ma ei ole ennetada ja programm see, 285 00:12:18,815 --> 00:12:20,300 minu programm võiks teha, kes teab mida. 286 00:12:20,300 --> 00:12:22,220 Paigal, riputada, reboot, mis iganes. 287 00:12:22,220 --> 00:12:24,490 Midagi oodata võib juhtuda. 288 00:12:24,490 --> 00:12:27,120 >> Niisiis, mida ma lähen tegema nüüd, nüüdsest tõesti, 289 00:12:27,120 --> 00:12:31,630 on enne kui ma kunagi pimesi kasutada muutuja nagu s, et 290 00:12:31,630 --> 00:12:36,790 on määratud tagastatav väärtus mõned muud ülesanded, nagu getString, 291 00:12:36,790 --> 00:12:40,200 Ma lähen veenduda et selle väärtus ei kehti. 292 00:12:40,200 --> 00:12:44,280 Nii et ma tean ainult lugenud CS50 dokumentatsioonist getString, 293 00:12:44,280 --> 00:12:49,020 mis lõppkokkuvõttes me juhtida teid, et getString naaseb eriline sümbol 294 00:12:49,020 --> 00:12:53,610 kutsus NULL, N-U-L-L kõikides Mütsid, kui midagi läheb valesti. 295 00:12:53,610 --> 00:12:55,650 >> Nii et tavaliselt, siis tagastab stringi. 296 00:12:55,650 --> 00:12:59,700 Aga muidu, kui ta naaseb N-U-L-ma-- me lõpuks näha, mis tegelikult 297 00:12:59,700 --> 00:13:01,790 means-- et lihtsalt vahendid midagi halba juhtunud. 298 00:13:01,790 --> 00:13:05,560 Nüüd tähendab see, palju nagu Scratch, Võin kontrollima seisukorras siin C, 299 00:13:05,560 --> 00:13:08,830 kui te ei võrdu NULL. 300 00:13:08,830 --> 00:13:11,930 Nii et kui te pole näinud seda enne, tähendab see lihtsalt ei ole võrdne. 301 00:13:11,930 --> 00:13:15,290 >> Nii et see on vastupidine võrdne võrdsete, mis meenutavad, 302 00:13:15,290 --> 00:13:18,940 erineb ühe võrdne, mis on ülesanne. 303 00:13:18,940 --> 00:13:23,030 Nii et kui te ei ole võrdne NULL, siis alles 304 00:13:23,030 --> 00:13:25,980 Ma tahan, et täita neid ridu koodi. 305 00:13:25,980 --> 00:13:28,080 Nii teisisõnu enne kui ma sukelduda pimesi 306 00:13:28,080 --> 00:13:30,919 ja alustada iterating üle s, ja selle pidamine 307 00:13:30,919 --> 00:13:33,710 nagu ta on järjestus tegelased, ma lähen kõigepealt kontrollida, 308 00:13:33,710 --> 00:13:37,900 Oota, on S kindlasti mitte võrdub see eriline väärtus, NULL? 309 00:13:37,900 --> 00:13:40,030 >> Sest kui see on, halbu asju võib juhtuda. 310 00:13:40,030 --> 00:13:43,080 Ja nüüd, eeldame, et halvad asjad toimub tähendab, et teie programm jookseb kokku, 311 00:13:43,080 --> 00:13:45,070 ja sa ei pruugi taastuda. 312 00:13:45,070 --> 00:13:46,800 Nii et ausalt öeldes tundub koledam. 313 00:13:46,800 --> 00:13:48,660 see on natuke segane nüüd pilk. 314 00:13:48,660 --> 00:13:50,780 Kuid see muutub tuttav enne pikk. 315 00:13:50,780 --> 00:13:52,920 >> Aga ma lähen ettepaneku nüüd ühe teise paranemist. 316 00:13:52,920 --> 00:13:54,660 See paranemine õigsust. 317 00:13:54,660 --> 00:13:58,800 Minu programm on nüüd õigem, sest harvadel juhtudel, mis ei ole piisavalt mälu 318 00:13:58,800 --> 00:14:01,180 olemas, ma tegelen sellega, ja ma lihtsalt ei tee midagi. 319 00:14:01,180 --> 00:14:02,680 Ma vähemalt ei ole viga. 320 00:14:02,680 --> 00:14:05,000 >> Aga teeme lõplik versioon siit. 321 00:14:05,000 --> 00:14:07,690 Ja faili nimega string2.c. 322 00:14:07,690 --> 00:14:10,190 Ma lähen kleebi et sama kood hetk, 323 00:14:10,190 --> 00:14:14,210 ja ma lähen seda rõhutada line, 11, siin, just praegu. 324 00:14:14,210 --> 00:14:18,179 Nüüd reaalsus on see, et tark koostajad nagu rõkkama võiks määrata see meile 325 00:14:18,179 --> 00:14:19,970 kulisside taga ilma meie kunagi teada. 326 00:14:19,970 --> 00:14:24,670 Aga mõtleme sellele põhimõtteliselt nagu problemaatiline disain. 327 00:14:24,670 --> 00:14:29,010 >> See rida koodi on muidugi öeldes initsialiseerida mõned muutuja i 0. 328 00:14:29,010 --> 00:14:30,260 See on päris lihtne. 329 00:14:30,260 --> 00:14:34,691 Ja mis veel on see avalduse, siin ma ++ teed? 330 00:14:34,691 --> 00:14:37,066 Me oleme näinud seda enne, kuid me tegelikult ei räägi sellest. 331 00:14:37,066 --> 00:14:37,900 >> Sihtrühm: incrementing i. 332 00:14:37,900 --> 00:14:39,191 >> DAVID J. Humala: incrementing i. 333 00:14:39,191 --> 00:14:41,890 Nii et iga iteratsiooni kaudu see silmus, iga tsükli 334 00:14:41,890 --> 00:14:43,570 sa incrementing i ühe võrra. 335 00:14:43,570 --> 00:14:45,740 Nii et see muutub suuremaks ja suuremaks, ja suurem kuni silmus lõpeb. 336 00:14:45,740 --> 00:14:46,810 Kuidas see lõpetada? 337 00:14:46,810 --> 00:14:49,430 Noh seal on see keskel seisund, mida me oleme varem kasutanud. 338 00:14:49,430 --> 00:14:52,500 Olete näinud ja walkthroughs on P komplekti. 339 00:14:52,500 --> 00:14:53,880 >> Aga milline on see sõna? 340 00:14:53,880 --> 00:14:58,352 Kas järgmine ring nii Niikaua kui ma väiksem kui see, mida? 341 00:14:58,352 --> 00:14:59,810 Sihtrühm: stringi pikkusena. 342 00:14:59,810 --> 00:15:01,518 DAVID J. Humala: stringi pikkusena. 343 00:15:01,518 --> 00:15:04,300 Nii et see tähendab päris puhtalt Inglise selles mõttes. 344 00:15:04,300 --> 00:15:08,810 Nüüd on probleem selles, et iga kord, kui ma itereerima läbi selle silmuse teoreetiliselt 345 00:15:08,810 --> 00:15:10,000 Ma palun sellele küsimusele. 346 00:15:10,000 --> 00:15:12,250 Kas ma alla string pikkusega s? 347 00:15:12,250 --> 00:15:14,500 Kas ma alla string pikkusega s? 348 00:15:14,500 --> 00:15:18,380 >> Nüüd on i muutes iga iteratsiooni? 349 00:15:18,380 --> 00:15:18,880 On. 350 00:15:18,880 --> 00:15:19,629 Kuna ++. 351 00:15:19,629 --> 00:15:21,700 Nii et iga iteratsiooni i on üha suurem. 352 00:15:21,700 --> 00:15:25,411 Kuid kas s muutub suuremaks, või väiksem, või muutuvad üldse? 353 00:15:25,411 --> 00:15:25,910 Ei 354 00:15:25,910 --> 00:15:30,240 Nii et nii disaini, üheks teljeks mida mööda me püüame hinnata kood 355 00:15:30,240 --> 00:15:32,610 klassis, see tundub tobe. 356 00:15:32,610 --> 00:15:34,690 >> Nagu te olete sõna otseses mõttes, iga iteratsiooni 357 00:15:34,690 --> 00:15:37,110 Selle ahela paludes samas kuradi küsimus uuesti, 358 00:15:37,110 --> 00:15:40,770 ja uuesti ja uuesti ja sõna otseses mõttes see kunagi ei muutu. 359 00:15:40,770 --> 00:15:44,220 Vähemalt siis, kui ma ei puutu s ja katsed muuta sisu s. 360 00:15:44,220 --> 00:15:46,610 Ma võin teha natuke parem kui see. 361 00:15:46,610 --> 00:15:49,530 >> Ja mida ma lähen tegema, ei ole kuulutada vaid üks muutuja i, 362 00:15:49,530 --> 00:15:53,330 aga teine ​​muutuja panen omavoliliselt, aga tavapäraselt, nimetame seda n. 363 00:15:53,330 --> 00:15:55,940 Määra n võrdne string pikkusega s. 364 00:15:55,940 --> 00:15:59,090 Ja siis siin, ma lähen teha väike nutikas optimeerimine, nii 365 00:15:59,090 --> 00:16:03,460 rääkida, et lõpus päeval ei ole enam õige või mitte vähem õige 366 00:16:03,460 --> 00:16:04,260 kui enne. 367 00:16:04,260 --> 00:16:05,500 Aga see on parem disain. 368 00:16:05,500 --> 00:16:09,480 Selles, et ma kasutan vähem aega, vähem CPU tsüklit, nii 369 00:16:09,480 --> 00:16:14,040 rääkida, vastata sama küsimus, kuid ainult üks kord. 370 00:16:14,040 --> 00:16:17,870 >> On küsimusi, mis üldiselt parandamise põhimõte, 371 00:16:17,870 --> 00:16:21,294 öelda, programmi tõhusust? 372 00:16:21,294 --> 00:16:21,991 Jah? 373 00:16:21,991 --> 00:16:23,699 Sihtrühm: Miks sa kasutada [kuuldamatu]? 374 00:16:23,699 --> 00:16:25,760 375 00:16:25,760 --> 00:16:27,010 DAVID J. Humala: Hea küsimus. 376 00:16:27,010 --> 00:16:30,690 Miks me paneme ++ aasta lõpuks i asemel alguses i? 377 00:16:30,690 --> 00:16:33,070 Sellisel juhul peab no funktsionaalne mõju. 378 00:16:33,070 --> 00:16:36,670 Ja üldiselt, ma pigem kasuta Postfix operaator 379 00:16:36,670 --> 00:16:41,750 nii et see on natuke rohkem selge kui et kui operatsioon toimub. 380 00:16:41,750 --> 00:16:46,670 >> Neile ei tunne, on teine avaldused, mille sa võiksid teha ++ i. 381 00:16:46,670 --> 00:16:48,747 Need on funktsionaalselt samaväärsed selles asjas 382 00:16:48,747 --> 00:16:51,080 sest seal on midagi muud ümber, et incrementation. 383 00:16:51,080 --> 00:16:54,435 Aga sa võid tulla juhtudel ja rida koodi 384 00:16:54,435 --> 00:16:55,810 kus, mis muudab erinevus. 385 00:16:55,810 --> 00:16:57,810 Nii et üldiselt, me ei pea isegi räägiks. 386 00:16:57,810 --> 00:17:00,690 Sest ausalt öeldes, see teeb oma kood seksikam, ja omamoodi vihmamantel, 387 00:17:00,690 --> 00:17:01,776 ja vähem tähemärki. 388 00:17:01,776 --> 00:17:04,859 Kuid reaalsus on see, et seda on palju raskem, Ma arvan, et isegi minu jaoks, et murrab oma meelt 389 00:17:04,859 --> 00:17:07,319 ümber mõnikord Tehete järjekord. 390 00:17:07,319 --> 00:17:09,750 Nii nagu kõrvale, kui te tõesti ei meeldi see, 391 00:17:09,750 --> 00:17:14,650 kuigi see on seksikas vaadates, saate ka teha i + = 1, 392 00:17:14,650 --> 00:17:18,880 mis on koledam versioon Sama idee Postfix incrementation. 393 00:17:18,880 --> 00:17:22,250 >> Ma ütlen seda, ja te peaks nalja tegema seda, 394 00:17:22,250 --> 00:17:25,140 kuid siis tulevad vaatama, nii nagu see midagi ilusat enne pikk. 395 00:17:25,140 --> 00:17:27,160 >> [Naer] 396 00:17:27,160 --> 00:17:28,410 >> DAVID J. Humala: Right? 397 00:17:28,410 --> 00:17:29,360 Jah. 398 00:17:29,360 --> 00:17:30,480 Küsimus keskel. 399 00:17:30,480 --> 00:17:32,146 >> Sihtrühm: Kas teil on vaja öelda, int n? 400 00:17:32,146 --> 00:17:34,020 DAVID J. Humala: Sa teed pole vaja öelda, int n. 401 00:17:34,020 --> 00:17:37,670 Niisiis, kuna oleme juba öelnud, int, sa ei pea ütlema, et see uuesti. 402 00:17:37,670 --> 00:17:41,820 Saak on see, et n on olema sama andmetüüp nagu i. 403 00:17:41,820 --> 00:17:43,310 Nii et see on lihtsalt mugavuse siin. 404 00:17:43,310 --> 00:17:44,058 Jah. 405 00:17:44,058 --> 00:17:47,806 >> Sihtrühm: Kas te lähete üle print iseloomu s sulg i uuesti? 406 00:17:47,806 --> 00:17:48,930 DAVID J. Humala: Absoluutselt. 407 00:17:48,930 --> 00:17:52,110 Nii% c, mäletate viimast aega, on lihtsalt kohatäide. 408 00:17:52,110 --> 00:17:53,930 See tähendab panna char siin. 409 00:17:53,930 --> 00:17:56,780 längkriipsu n muidugi lihtsalt abil panna reavahetus siin. 410 00:17:56,780 --> 00:17:59,540 Nii et lihtsalt jätab, nüüd, see tükk uus süntaks. 411 00:17:59,540 --> 00:18:03,730 Ja see on sõna otseses mõttes öelda, ostke string nimega s ja too oma 412 00:18:03,730 --> 00:18:06,050 i-nda iseloomu, nii rääkida. 413 00:18:06,050 --> 00:18:10,590 >> Ja ma saan öelda, i-nda iseloomu sest iga iteratsiooni Selle ahela 414 00:18:10,590 --> 00:18:14,540 see on nii, nagu me printimisel esiteks s sulg 0, 415 00:18:14,540 --> 00:18:15,780 programmeerijana öelda. 416 00:18:15,780 --> 00:18:18,680 Siis s sulg 1, siis s Rühma 2, siis 3, siis 4. 417 00:18:18,680 --> 00:18:21,610 Aga muidugi on see muutuja, nii et ma lihtsalt väljendada seda i. 418 00:18:21,610 --> 00:18:23,900 >> Key, aga on mõista, eriti kui sa oled ei 419 00:18:23,900 --> 00:18:26,358 on acclimating selle maailma programmeerimine, kus me kõik 420 00:18:26,358 --> 00:18:28,950 Tundub, et loota nullist, pead hakka lugema nullist nüüd. 421 00:18:28,950 --> 00:18:35,130 Kuna stringid, esimene märk, z Zamyla on hea või halb 422 00:18:35,130 --> 00:18:40,490 läheb elama asukoha number null. 423 00:18:40,490 --> 00:18:48,210 >> Olgu, lubage mul tuua meid tagasi siia Zamyla 424 00:18:48,210 --> 00:18:50,746 ja näha, mis tegelikult toimub seal all on kapuuts. 425 00:18:50,746 --> 00:18:52,370 Nii et see mõiste tüüpi valu. 426 00:18:52,370 --> 00:18:53,800 Sul võib olla tegelikult mängitakse seda juba, 427 00:18:53,800 --> 00:18:55,970 äkki häkker väljaanne P seatud üks. 428 00:18:55,970 --> 00:19:00,320 Kuid tüüpi valu vaid viitab võime C ja mõnedes teistes keeltes 429 00:19:00,320 --> 00:19:03,170 teisendada üks andmete tüübist teise. 430 00:19:03,170 --> 00:19:05,450 >> Nüüd, kuidas võiks me näeme seda päris arusaadav? 431 00:19:05,450 --> 00:19:08,530 Nii et see, mäletate, on algusest inglise tähestikku. 432 00:19:08,530 --> 00:19:11,265 Ja seoses meenutada, alates nagu nädal tagasi on ASCII. 433 00:19:11,265 --> 00:19:13,790 American Standard Code infovahetuse. 434 00:19:13,790 --> 00:19:17,080 Mis on lihtsalt väga pikk tee öelda kujutus kirjad 435 00:19:17,080 --> 00:19:19,370 numbritele, ja numbrid tähed. 436 00:19:19,370 --> 00:19:22,940 >> Nii läbi olen siin, dot dot dot, ridade järele, tagasikutsumine, 437 00:19:22,940 --> 00:19:25,582 koma number 65 üles. 438 00:19:25,582 --> 00:19:27,290 Ja me ei räägi sellest selgesõnaliselt, 439 00:19:27,290 --> 00:19:29,850 kuid kindlasti on olemas sarnane numbrid väiketähti. 440 00:19:29,850 --> 00:19:30,820 Ja tõepoolest on. 441 00:19:30,820 --> 00:19:33,730 Maailma otsustas paar aastat tagasi, et vähe, väiketähed, 442 00:19:33,730 --> 00:19:35,020 saab olema 97. 443 00:19:35,020 --> 00:19:38,010 Ja vähe b läheb olema 98, ja nii edasi. 444 00:19:38,010 --> 00:19:40,200 >> Ja ühegi muu klahvi klaviatuuri, seal 445 00:19:40,200 --> 00:19:42,190 saab olema sarnane muster bitti. 446 00:19:42,190 --> 00:19:44,540 Või võrreldavalt kümnendkohani. 447 00:19:44,540 --> 00:19:47,110 Seega on küsimus käepärast, seega, kuidas me saame 448 00:19:47,110 --> 00:19:49,400 tegelikult näha selle all kapuuts? 449 00:19:49,400 --> 00:19:51,539 Nii et ma lähen üle gedit uuesti. 450 00:19:51,539 --> 00:19:53,330 Ja mitte tüüp see nullist, 451 00:19:53,330 --> 00:19:55,330 Ma lähen edasi minna ja lihtsalt avada midagi 452 00:19:55,330 --> 00:19:58,350 tänapäeva kood nimetatakse ASCII null. 453 00:19:58,350 --> 00:20:01,210 >> Ja ASCII null näeb välja selline. 454 00:20:01,210 --> 00:20:02,710 Nii et olgem murrab meie mõtetes ümber selle. 455 00:20:02,710 --> 00:20:04,969 Nii et esimene, ma olen kommenteeris kood, mis on tore. 456 00:20:04,969 --> 00:20:07,010 Sest see on sõna otseses mõttes mulle, mida oodata, 457 00:20:07,010 --> 00:20:08,950 näidata kaardistamine suurtähti. 458 00:20:08,950 --> 00:20:13,690 Nüüd ma ei saa päris hästi aru, mida ma mõtled, niiet järeldada. 459 00:20:13,690 --> 00:20:16,870 >> Inglise, võibolla mõnevõrra Techie inglise, 460 00:20:16,870 --> 00:20:20,660 mida see rida 18 ilmub et teeme meie? 461 00:20:20,660 --> 00:20:21,500 Just rida 18. 462 00:20:21,500 --> 00:20:22,430 Mida see indutseerivate? 463 00:20:22,430 --> 00:20:25,192 Mis läheb avalöögi siin? 464 00:20:25,192 --> 00:20:26,100 >> Sihtrühm: silmus. 465 00:20:26,100 --> 00:20:26,630 >> DAVID J. Humala: silmus. 466 00:20:26,630 --> 00:20:28,463 Ja mitu korda on et läheb itereerima? 467 00:20:28,463 --> 00:20:31,562 468 00:20:31,562 --> 00:20:33,270 Sihtrühm: [astudes VOICES] kuus korda. 469 00:20:33,270 --> 00:20:34,830 DAVID J. Humala: Mitte kuus korda. 470 00:20:34,830 --> 00:20:35,840 Sihtrühm: 26 korda. 471 00:20:35,840 --> 00:20:36,560 DAVID J. Humala: 26 korda. 472 00:20:36,560 --> 00:20:37,060 Jah, vabandust. 473 00:20:37,060 --> 00:20:37,960 26 korda. 474 00:20:37,960 --> 00:20:38,460 Miks? 475 00:20:38,460 --> 00:20:41,590 Noh, see on natuke imelik, kuid Olen hakanud lugedes 65. 476 00:20:41,590 --> 00:20:43,300 Mis on imelik, aga mitte vale. 477 00:20:43,300 --> 00:20:44,610 See ei ole halb kohta öelda. 478 00:20:44,610 --> 00:20:46,980 Ja ma teen, et ainult sest selle näiteks 479 00:20:46,980 --> 00:20:50,455 Ma olen selline prognoosimine et kapital oli 65. 480 00:20:50,455 --> 00:20:53,330 Nüüd ei ole see kõige elegantsem kuidas seda teha, et selline raske koodi 481 00:20:53,330 --> 00:20:56,130 esoteeriliste väärtuste, et keegi on kunagi oodata mäleta. 482 00:20:56,130 --> 00:21:00,155 >> Aga nüüd, teate, et ma olen seda teed üles läbi 65 pluss 26. 483 00:21:00,155 --> 00:21:03,030 Sest ilmselt ma isegi ei taha arvutama minu peas. 484 00:21:03,030 --> 00:21:04,440 Nii et ma lasen koostaja teha. 485 00:21:04,440 --> 00:21:08,600 Aga siis iga silmus, iga iteratsiooni silmus, ma incrementing i. 486 00:21:08,600 --> 00:21:10,196 >> Nüüd tundub see veidi segasena. 487 00:21:10,196 --> 00:21:13,320 Aga meil peaks olema põhilised ehitusplokid plokid, mille abil mõista seda. 488 00:21:13,320 --> 00:21:15,510 % C on lihtsalt kohatäide char. 489 00:21:15,510 --> 00:21:19,010 % I on kohatäide int. 490 00:21:19,010 --> 00:21:23,310 Ja selgub, et kasutades seda uus süntaks, see Sulgudes, nii 491 00:21:23,310 --> 00:21:26,100 rääkida, et andmete tüüp sees sulgudes, 492 00:21:26,100 --> 00:21:32,270 Ma ei saa sundida koostaja raviks i ole täisarv, kuid char. 493 00:21:32,270 --> 00:21:35,520 >> Seejuures näitab mulle märgi samaväärne selle number. 494 00:21:35,520 --> 00:21:37,986 Nüüd siin see kood on päris palju identne. 495 00:21:37,986 --> 00:21:39,860 Tahtsin teha super selge fakt 496 00:21:39,860 --> 00:21:42,095 et ma hakkan kell 97, mis on väiketähed. 497 00:21:42,095 --> 00:21:44,080 On üles läbi veel 26 tähte. 498 00:21:44,080 --> 00:21:46,970 Ja ma doing-- jälle casting i, nii rääkida. 499 00:21:46,970 --> 00:21:49,160 Või tüüpi casting i, nii rääkida. 500 00:21:49,160 --> 00:21:51,420 >> Alates int et char. 501 00:21:51,420 --> 00:21:55,760 Nii et lõpptulemus saab olema, ausalt öeldes teavet me juba teame. 502 00:21:55,760 --> 00:21:59,411 Ma lähen tegema ASCII-0 dot-- mitte dot c. 503 00:21:59,411 --> 00:22:02,160 Teate, te ilmselt näha, et viga, mis ma just tegin kogemata. 504 00:22:02,160 --> 00:22:03,820 Tee ASCII-0. 505 00:22:03,820 --> 00:22:06,090 Nüüd ma lähen tegema ./ascii-0. 506 00:22:06,090 --> 00:22:09,050 Ma suumida ja kahjuks see saab kerida ekraanilt. 507 00:22:09,050 --> 00:22:15,060 Aga me näeme kogu diagrammi, kus kaarte kuni 97, b kaarte kuni 98, 508 00:22:15,060 --> 00:22:18,931 ja kui me liikuge üles veelgi Loomulikult kaarte kuni 65. 509 00:22:18,931 --> 00:22:21,180 Nii et see on ainult öelda, et mida me oleme jutlustab, 510 00:22:21,180 --> 00:22:25,310 on selle samaväärsust, on Tegelikult puhul tegelikult. 511 00:22:25,310 --> 00:22:28,000 Nii kiire muutmise selles. 512 00:22:28,000 --> 00:22:31,220 Lubage mul avada ASCII-1.c. 513 00:22:31,220 --> 00:22:38,070 Ja teate see tark, omamoodi kohta, selgituse selle kohta. 514 00:22:38,070 --> 00:22:41,770 See on ASCII-1.c ja teate see hull asi. 515 00:22:41,770 --> 00:22:45,120 >> Ja see tõesti läheb südamesse mida arvutid teevad. 516 00:22:45,120 --> 00:22:48,150 Kuigi me inimestel oleks ei lähe nii Kirjad-- 517 00:22:48,150 --> 00:22:50,380 Ma ei hakata mõtlema, Olgu siis b, 518 00:22:50,380 --> 00:22:52,590 ja kasutada neid lugema füüsilised objektid. 519 00:22:52,590 --> 00:22:58,680 Te saate kindlasti öelda, et ma tahan initsialiseerida mõned muutuja nimega c-- 520 00:22:58,680 --> 00:23:03,220 aga ma oleks seda nimetanud midagi-- nii c käivitub kapitalile A. 521 00:23:03,220 --> 00:23:07,560 >> Sest lõpus päeval, arvuti ei huvita, mida sa ladustamiseks, 522 00:23:07,560 --> 00:23:10,170 see ainult hoolib, kuidas soovite kuni selle teabe. 523 00:23:10,170 --> 00:23:13,560 Kuidas te soovite, et arvuti tõlgendada, et muster bitti? 524 00:23:13,560 --> 00:23:16,320 Nii et see ei ole midagi, mida ma oleks üldiselt soovitaks seda. 525 00:23:16,320 --> 00:23:19,500 See on tõesti lihtsalt eeskujuks edasi, et saate täiesti 526 00:23:19,500 --> 00:23:22,049 initsialiseerida täisarv char. 527 00:23:22,049 --> 00:23:24,090 Sest alla kapuuts char muidugi 528 00:23:24,090 --> 00:23:26,170 on lihtsalt number 0-255. 529 00:23:26,170 --> 00:23:28,540 >> Nii saate kindlasti pane see sees int. 530 00:23:28,540 --> 00:23:30,890 Ja mis see ka näitab, et me 531 00:23:30,890 --> 00:23:34,040 saab teisendada ühest kirjuta teise, siin, 532 00:23:34,040 --> 00:23:36,780 lõpuks trükkimine sama asi. 533 00:23:36,780 --> 00:23:44,760 Ja tegelikult, seda ma määrab online-- pidi ütlema seda jälle siin. 534 00:23:44,760 --> 00:23:48,610 Las ma puhastan selle üles online, ja me näed poes ülevaadet, kui vaja, 535 00:23:48,610 --> 00:23:50,280 mis oli mõeldud seal. 536 00:23:50,280 --> 00:23:50,960 >> OK. 537 00:23:50,960 --> 00:23:53,892 Nii et viimane näide nüüd kaasates ja B ja siis me 538 00:23:53,892 --> 00:23:54,850 võtta asju pügala. 539 00:23:54,850 --> 00:23:58,330 Nii ja B ning c on kapitalisatsiooni 540 00:23:58,330 --> 00:24:01,560 ja nende samaväärsuse, olgem vaatleme seda näiteks siit. 541 00:24:01,560 --> 00:24:02,752 Teine koodi näide. 542 00:24:02,752 --> 00:24:04,460 Me avame üks, mis on juba tehtud, nii et me 543 00:24:04,460 --> 00:24:06,440 ei pea seda kõik välja nullist. 544 00:24:06,440 --> 00:24:09,420 >> Ja teate ootuses me kasutame mitme kaudu 545 00:24:09,420 --> 00:24:13,240 faili, mille hulgas on Meie uus sõber, string. 546 00:24:13,240 --> 00:24:15,597 Nüüd tundub, esimesel pilgul, veidi segasena. 547 00:24:15,597 --> 00:24:18,180 Aga vaatame, kas me ei ole põhjust kaudu, mis toimub siin. 548 00:24:18,180 --> 00:24:21,150 Esiteks ma saan stringi kasutaja, ja panin seda stringi muutuja 549 00:24:21,150 --> 00:24:22,286 nimetatakse s. 550 00:24:22,286 --> 00:24:24,090 Kopeeri kleebi varem. 551 00:24:24,090 --> 00:24:27,250 Vastavalt 22, ma olen ilmselt teeb täpselt seda, mida 552 00:24:27,250 --> 00:24:30,760 Tegin hetk tagasi, ma iterating üle tähemärki s. 553 00:24:30,760 --> 00:24:34,780 >> Ja uusi trikke siin kasutate string pikkusega, alaealise optimeerimine 554 00:24:34,780 --> 00:24:37,930 ladustamiseks string pikkusega n, pigem kui helistaja strlen jälle 555 00:24:37,930 --> 00:24:38,850 ja uuesti ja uuesti. 556 00:24:38,850 --> 00:24:41,120 Ja lihtsalt kontrollida, et i on väiksem kui n. 557 00:24:41,120 --> 00:24:43,330 Nüüd aga, kui asjad natuke huvitav. 558 00:24:43,330 --> 00:24:45,980 Aga see on lihtsalt rakendus sellesama uue idee. 559 00:24:45,980 --> 00:24:48,470 Mis inglise teeb s sulg i esindama? 560 00:24:48,470 --> 00:24:51,772 561 00:24:51,772 --> 00:24:54,260 >> Sihtrühm: Counting iga iseloomu [kuuldamatu]. 562 00:24:54,260 --> 00:24:55,926 >> DAVID J. Humala: Counting iga märk. 563 00:24:55,926 --> 00:24:58,680 Ja veelgi lühidalt s sulg ma esindan, mis? 564 00:24:58,680 --> 00:25:00,950 Sa ütleksid. 565 00:25:00,950 --> 00:25:04,084 Mitte panna teid kohapeal siin. 566 00:25:04,084 --> 00:25:06,375 >> Sihtrühm: Nojah 567 00:25:06,375 --> 00:25:09,500 DAVID J. Humala: Nii et kui sõna on-- kui string on Zamyla, mis starts-- 568 00:25:09,500 --> 00:25:12,380 Sihtrühm: --you tegelema tegelased separately-- 569 00:25:12,380 --> 00:25:13,690 DAVID J. Humala: Hea. 570 00:25:13,690 --> 00:25:14,190 Täpselt. 571 00:25:14,190 --> 00:25:17,940 Nurksulg märke saate pääseda iga märgi ükshaaval 572 00:25:17,940 --> 00:25:21,120 nii s sulg 0 saab olema esimene märk string. 573 00:25:21,120 --> 00:25:24,110 s sulg 1 saab olema Teine, ja nii edasi. 574 00:25:24,110 --> 00:25:28,050 Seega on küsimus ma küsin, siin, see tingimus on see, mida? 575 00:25:28,050 --> 00:25:33,984 Kas i-nda iseloomu s suurem võrdne või väiketähtedes? 576 00:25:33,984 --> 00:25:36,400 Ja mida see tähendab, siin, topeltpõhja ja-märgid? 577 00:25:36,400 --> 00:25:36,800 Kuulajaskond (koos): Ja. 578 00:25:36,800 --> 00:25:37,210 DAVID J. Humala: Ja. 579 00:25:37,210 --> 00:25:38,418 See on lihtsalt samaväärsed käesoleva. 580 00:25:38,418 --> 00:25:42,310 Ja ei ole märksõna C, pead kasutamine, tüütult, ampersand ampersand. 581 00:25:42,310 --> 00:25:47,520 Ja see, vastupidi, küsib on s on i-nda iseloomu väiksem või võrdne 582 00:25:47,520 --> 00:25:49,030 väiketähtedeks z? 583 00:25:49,030 --> 00:25:52,440 Ja jälle siin, kus mõista aluseks 584 00:25:52,440 --> 00:25:54,550 rakendamine arvuti mõtet. 585 00:25:54,550 --> 00:25:57,330 Pange tähele, et kuigi mul on dot dot dot seal, 586 00:25:57,330 --> 00:26:04,410 näeb välja nagu läbi z väiketähtedega on kõik lainelised väärtused kuni 97 üles. 587 00:26:04,410 --> 00:26:07,820 >> Ja sama suure algustähega algusega kell 65. 588 00:26:07,820 --> 00:26:10,410 Nii Buffee, siis on see, et inglise keeles, 589 00:26:10,410 --> 00:26:12,760 Kuidas te kirjeldaksite mida joon 24 teed? 590 00:26:12,760 --> 00:26:15,736 591 00:26:15,736 --> 00:26:16,728 Jah? 592 00:26:16,728 --> 00:26:21,575 >> Sihtrühm: 24. see kontrollimist, kas iga märk on väiketähed. 593 00:26:21,575 --> 00:26:24,700 DAVID J. Humala: See on kontrollida, kas iga märk on väiketäht. 594 00:26:24,700 --> 00:26:28,590 Nii et isegi rohkem tabavalt, on i-nda iseloomu s väiketähed? 595 00:26:28,590 --> 00:26:30,690 See on kõik, mida me oleme väljendades siit loogiliselt, 596 00:26:30,690 --> 00:26:33,750 veidi salapäraselt, kuid lõpuks päris arusaadav. 597 00:26:33,750 --> 00:26:36,480 Kas s on i-nda iseloomu väiketähed? 598 00:26:36,480 --> 00:26:40,130 >> Kui see on nii, ja siin on, kus asjad natuke meeles painutamine 599 00:26:40,130 --> 00:26:44,760 hetkeks, kui jah, siis edasi ja välja printida iseloomu. 600 00:26:44,760 --> 00:26:47,360 Nii et see on lihtsalt kohatäide, aga mis laadi? 601 00:26:47,360 --> 00:26:53,710 Miks ma teen s sulg i miinus see väljend siin? 602 00:26:53,710 --> 00:26:55,110 >> Noh teate muster siin. 603 00:26:55,110 --> 00:26:57,380 Tegelik arv ei loe nii palju. 604 00:26:57,380 --> 00:27:02,700 Aga teate, et 97 on Kuidas kaugel 65? 605 00:27:02,700 --> 00:27:03,560 >> Sihtrühm: 32. 606 00:27:03,560 --> 00:27:04,480 >> DAVID J. Humala: 32. 607 00:27:04,480 --> 00:27:06,890 Kui kaugel on 98 66? 608 00:27:06,890 --> 00:27:07,740 >> Sihtrühm: 32. 609 00:27:07,740 --> 00:27:09,890 >> DAVID J. Humala: Little c suurte C? 610 00:27:09,890 --> 00:27:10,420 32. 611 00:27:10,420 --> 00:27:14,550 Nii et seal on 32 humala üks täht teise. 612 00:27:14,550 --> 00:27:17,790 Nii et ausalt öeldes, võiks lihtsustada selle. 613 00:27:17,790 --> 00:27:20,400 Aga siis ma olen selline kõva kodeerimine madala taseme mõistmist 614 00:27:20,400 --> 00:27:21,740 et lugeja on kunagi kavatse aru. 615 00:27:21,740 --> 00:27:25,080 Ma lähen üldistada seda, ma tean väiketähti suuremad. 616 00:27:25,080 --> 00:27:28,400 Tean suurtähtedega on väiksemad väärtused, irooniliselt. 617 00:27:28,400 --> 00:27:33,216 >> Aga see on samaväärne öeldes lahutama 32 alates s sulg i. 618 00:27:33,216 --> 00:27:35,430 Nii Seoses nende kirjad, kui kirja 619 00:27:35,430 --> 00:27:38,950 juhtub olema, väiketähed ja ma lahutan 32, 620 00:27:38,950 --> 00:27:43,442 Milline mõju, mis on, matemaatiliselt, on väiketähed? 621 00:27:43,442 --> 00:27:44,400 Sihtrühm: Capitalizes-- 622 00:27:44,400 --> 00:27:45,691 DAVID J. Humala: suurtäheks seda. 623 00:27:45,691 --> 00:27:48,440 Ja tõepoolest, see on põhjus, miks meie Programm on kutsutud ära null. 624 00:27:48,440 --> 00:27:51,590 See programm kas suurtäheks kirja, 625 00:27:51,590 --> 00:27:54,580 pärast kontrollimist, kui see on tõepoolest väiketäht. 626 00:27:54,580 --> 00:27:59,810 Muidu vastavalt 30, mida ma pean tegema, kui see ei ole väike täht, et ma olen 627 00:27:59,810 --> 00:28:02,852 vaadates ühe konkreetse iteratsiooni silmus. 628 00:28:02,852 --> 00:28:03,890 Lihtsalt printida. 629 00:28:03,890 --> 00:28:07,010 >> Seega ei muuda asju see pole isegi väiketähed. 630 00:28:07,010 --> 00:28:10,790 Piirata ennast vähe läbi vähe z. 631 00:28:10,790 --> 00:28:12,730 Nüüd on see üsna kauge. 632 00:28:12,730 --> 00:28:15,230 Aga lõpuks päev, see on see, kuidas me kunagi ammu, 633 00:28:15,230 --> 00:28:16,460 pidi rakendama asju. 634 00:28:16,460 --> 00:28:19,780 Kui ma selle asemel open ära üks, oh jumal tänatud. 635 00:28:19,780 --> 00:28:22,320 Seal on funktsioon hüüdis ülemine, mida saab 636 00:28:22,320 --> 00:28:25,410 teha kõike tegime küllaltki madalal tasemel. 637 00:28:25,410 --> 00:28:28,752 >> Nüüd ülemine on huvitav sest see on deklareeritud faili 638 00:28:28,752 --> 00:28:31,210 ja sa tead ainult seda kontrollides dokumentatsioon, 639 00:28:31,210 --> 00:28:35,730 või öeldakse, ütleme, klass, kus see on olemas, faili nimega ctype.h. 640 00:28:35,730 --> 00:28:37,630 Nii et see on veel üks uus sõber meie. 641 00:28:37,630 --> 00:28:40,750 Ja ülemine ei täpselt mida nimigi ütleb. 642 00:28:40,750 --> 00:28:44,860 >> Võite liigu, nagu argument, vahel need sulgudesse, mõned iseloomu. 643 00:28:44,860 --> 00:28:48,390 Ma lähen liigu -nda iseloomu s, kasutades meie väljamõeldud uus märke 644 00:28:48,390 --> 00:28:49,870 kaasates nurksulgudes. 645 00:28:49,870 --> 00:28:53,391 Ja võta oletus, mis on tulu väärtuse ülemise ilmselt läheb 646 00:28:53,391 --> 00:28:53,890 olema? 647 00:28:53,890 --> 00:28:56,460 648 00:28:56,460 --> 00:28:57,770 Suurtähega. 649 00:28:57,770 --> 00:28:58,620 Suurtähega. 650 00:28:58,620 --> 00:29:02,330 >> Nii et kui ma edasi väiketähtedega, loodetavasti määratluse kohta, et ülemine, 651 00:29:02,330 --> 00:29:05,600 see läheb tagasi suurtäheks A. Vastasel juhul 652 00:29:05,600 --> 00:29:08,590 kui see ei ole väike täht Esiteks, ma lihtsalt printida. 653 00:29:08,590 --> 00:29:10,800 Ja tõepoolest, teate Teine sõber siin. 654 00:29:10,800 --> 00:29:13,840 Mitte ainult, et ülemine olemas, kuid on madalam, mis 655 00:29:13,840 --> 00:29:16,200 tegelikult vastab sellele küsimusele minu jaoks. 656 00:29:16,200 --> 00:29:19,730 >> Nüüd kes kirjutas need asjad, 10s aastat tagasi, sa tead, mida? 657 00:29:19,730 --> 00:29:23,840 Rakendatud ülemise ja vähendada kasutades koodi niimoodi. 658 00:29:23,840 --> 00:29:27,270 Kuid jällegi, kooskõlas Selle idee refereerimine ära 659 00:29:27,270 --> 00:29:29,190 omamoodi, madalamal tasemel rakendamise üksikasju. 660 00:29:29,190 --> 00:29:32,600 Ja seistes õlgadele inimesed kes olid enne meid, kasutades funktsioone 661 00:29:32,600 --> 00:29:36,300 nagu ülemiste ja madalam, mis imeliselt piisavalt kenasti 662 00:29:36,300 --> 00:29:40,190 nime öelda, mida nad teevad, on imeline paradigmas võtta. 663 00:29:40,190 --> 00:29:44,040 >> Nüüd tuleb välja, et kui ma loen man-leheküljelt, ütleme, et ülemises, 664 00:29:44,040 --> 00:29:45,010 Ma õppida midagi muud. 665 00:29:45,010 --> 00:29:46,890 Nii mees toUpper. 666 00:29:46,890 --> 00:29:48,050 See on veidi suur. 667 00:29:48,050 --> 00:29:51,110 Aga teate, siin on, et mainitud header fail, et ma peaks kasutama. 668 00:29:51,110 --> 00:29:54,460 Nagu kõrvale, sest see on eksitav, funktsioon 669 00:29:54,460 --> 00:29:59,070 kasutab ints asemel tähemärki põhjustel vigade kontrolli. 670 00:29:59,070 --> 00:30:01,260 Aga me võib-olla tulevad tagasi, et tulevikus. 671 00:30:01,260 --> 00:30:05,910 >> Aga teate, siin, et ülemine teisendab C-täht suurtäheks kui võimalik. 672 00:30:05,910 --> 00:30:07,674 Nii et see on üsna lihtne. 673 00:30:07,674 --> 00:30:09,340 Ja nüüd olgem veidi täpsemad. 674 00:30:09,340 --> 00:30:12,750 Vaatame osa mees lehelt tagastatav väärtus. 675 00:30:12,750 --> 00:30:15,420 Raha tagasi, et konverteeritud kirja. 676 00:30:15,420 --> 00:30:18,690 Või c, kui muundamise polnud võimalik 677 00:30:18,690 --> 00:30:20,250 kus c on originaal sisend. 678 00:30:20,250 --> 00:30:24,140 Mis ma tean siit alates argument, et ülemine. 679 00:30:24,140 --> 00:30:25,780 >> Mis on Buffee seda? 680 00:30:25,780 --> 00:30:28,060 Raha tagasi, et konverteeritud kirja, 681 00:30:28,060 --> 00:30:32,110 või c algse kirja, kui konversiooni ei olnud võimalik. 682 00:30:32,110 --> 00:30:36,460 Mida saab teha aga ma seetõttu tegema oma koodi disaini? 683 00:30:36,460 --> 00:30:37,146 Jah? 684 00:30:37,146 --> 00:30:38,810 >> Sihtrühm: Saate eemaldada mujal. 685 00:30:38,810 --> 00:30:40,810 DAVID J. Humala: suudan eemaldage muud avalduses, 686 00:30:40,810 --> 00:30:42,510 ja mitte ainult muu avalduse. 687 00:30:42,510 --> 00:30:44,150 >> Sihtrühm: Saate eemaldada [kuuldamatu]. 688 00:30:44,150 --> 00:30:46,310 >> DAVID J. Humala: suudan eemaldage kogu kahvel 689 00:30:46,310 --> 00:30:48,209 maantee, kui teine ​​hoopis. 690 00:30:48,209 --> 00:30:50,250 Nii et tõepoolest, lubage mul avada lõplik versioon sellest, 691 00:30:50,250 --> 00:30:55,540 ära-2 ja teate, kuidas, kui siis, seksikas, kood on nüüd saada, 692 00:30:55,540 --> 00:31:00,040 aastal, et ma olen vähendanud mõnest seitse või nii ridade vaid neli, 693 00:31:00,040 --> 00:31:03,850 funktsioone, mis ma ette lihtsalt helistasin, et ülemine, 694 00:31:03,850 --> 00:31:09,410 möödaminnes s sulg i ja trükkimine välja, mille kohatäitja% c, 695 00:31:09,410 --> 00:31:11,090 et erilist iseloomu. 696 00:31:11,090 --> 00:31:14,560 >> Nüüd väidetavalt on viga, või vähemalt risk viga, 697 00:31:14,560 --> 00:31:15,350 selles programmis. 698 00:31:15,350 --> 00:31:18,200 Nii lihtsalt tagasi tulla varasema Buffee, 699 00:31:18,200 --> 00:31:21,820 mida ma peaksin ilmselt ka teha Selle programmi, et muuta see tugevam, 700 00:31:21,820 --> 00:31:24,974 nii et ei ole nii, see ei crash, isegi harvadel juhtudel? 701 00:31:24,974 --> 00:31:26,390 Sihtrühm: Veenduge, et see ei ole null. 702 00:31:26,390 --> 00:31:28,056 DAVID J. Humala: Veenduge, et see ei ole null. 703 00:31:28,056 --> 00:31:31,030 Nii et tõesti, et muuta see super õige, ma peaks tegema midagi sellist, 704 00:31:31,030 --> 00:31:35,300 Kui te ei ole NULL, siis minna ja täita 705 00:31:35,300 --> 00:31:38,470 Nende rida koodi, mis Ma ei siis taane niimoodi, 706 00:31:38,470 --> 00:31:39,870 ja siis pane minu lähedal traksidega. 707 00:31:39,870 --> 00:31:41,550 Nii hea sidumine koos ideid. 708 00:31:41,550 --> 00:31:42,429 Jah? 709 00:31:42,429 --> 00:31:44,470 Sihtrühm: Kas te kasutate teha samas loop asemel? 710 00:31:44,470 --> 00:31:47,270 DAVID J. Humala: kas Ma do samas loop? 711 00:31:47,270 --> 00:31:50,020 Sihtrühm: --you soovite veenduda et sa tegelikult [kuuldamatu]. 712 00:31:50,020 --> 00:31:51,728 DAVID J. Humala: kas kasutate do ajal? 713 00:31:51,728 --> 00:31:52,450 Lühike vastus ei. 714 00:31:52,450 --> 00:31:54,700 Sest sa oled umbes kasutusele teise nurga puhul. 715 00:31:54,700 --> 00:31:56,660 Kui string on null pikkusega. 716 00:31:56,660 --> 00:31:59,600 Kui näiteks, ma lihtsalt tabanud Sisesta ilma kunagi kirjutades Zamyla. 717 00:31:59,600 --> 00:32:02,490 Ma anna sulle tagasi tegelik string, kui me lõpuks näha, 718 00:32:02,490 --> 00:32:03,780 mis on null tähemärki. 719 00:32:03,780 --> 00:32:05,630 See on ikka string, see on lihtsalt super lühike. 720 00:32:05,630 --> 00:32:07,960 Aga kui te kasutate do samas, sa lähed pimesi 721 00:32:07,960 --> 00:32:10,050 üritan teha midagi suhtes, et string, 722 00:32:10,050 --> 00:32:12,537 ja midagi ei kavatse olla seal. 723 00:32:12,537 --> 00:32:18,607 >> Sihtrühm: Noh, kui sa ei teha [kuuldamatu] samas s-- 724 00:32:18,607 --> 00:32:21,190 DAVID J. Humala: Oh ma näen, hoida saada string kasutaja. 725 00:32:21,190 --> 00:32:23,525 Nii lühike vastus, siis võiks, ja hoida pestering 726 00:32:23,525 --> 00:32:26,150 neid teile string, mis on piisavalt lühike, et mahtuda mälu. 727 00:32:26,150 --> 00:32:26,700 Absoluutselt. 728 00:32:26,700 --> 00:32:27,630 Ma lihtsalt ei tahtnud. 729 00:32:27,630 --> 00:32:30,505 Kui nad ei anna mulle string I tahad, ma lahkun, ma loobunud. 730 00:32:30,505 --> 00:32:33,260 Aga absoluutselt, selleks, võid absoluutselt teha. 731 00:32:33,260 --> 00:32:37,500 >> Nii teegi kaudu faile me oleme nüüd tuttavad on need siin. 732 00:32:37,500 --> 00:32:41,550 Standard I / O, CS50.h, string, ctype.h, ja seal on tõepoolest teised. 733 00:32:41,550 --> 00:32:44,460 Mõned teist on avastanud matemaatika raamatukogu math.h. 734 00:32:44,460 --> 00:32:48,200 Aga lubage mul tutvustada teile nüüd, et seda ressurssi, et CS50 personal Davin, 735 00:32:48,200 --> 00:32:50,630 ja Rob ja Gabe eriti on kokku pandud. 736 00:32:50,630 --> 00:32:52,630 Et varsti lingi Muidugi kodulehel. 737 00:32:52,630 --> 00:32:54,870 Seda nimetatakse CS50 viidet. 738 00:32:54,870 --> 00:32:58,230 >> Mis lihtsalt annab sulle kiire maitse seda, toimib järgmiselt. 739 00:32:58,230 --> 00:33:00,740 Lubage mul minna reference.cs50.net. 740 00:33:00,740 --> 00:33:02,990 Näete vasakul küljele valdav nimekirja 741 00:33:02,990 --> 00:33:04,595 funktsioone, mis tulevad koos c. 742 00:33:04,595 --> 00:33:07,790 Aga kui ma hoolin, hetkel, midagi nagu strlen, 743 00:33:07,790 --> 00:33:08,746 Ma ei kirjuta seda seal. 744 00:33:08,746 --> 00:33:10,870 See filtreerib alla nimekiri et just see, mida ma hoolin. 745 00:33:10,870 --> 00:33:11,940 Ma vajutan seda. 746 00:33:11,940 --> 00:33:14,740 Ja nüüd vasakul, näed, mida me loodame, 747 00:33:14,740 --> 00:33:18,290 on kõige lihtsam inimene sõbralik selgitus, kuidas 748 00:33:18,290 --> 00:33:19,170 See funktsioon toimib. 749 00:33:19,170 --> 00:33:20,600 >> Annab pikkus string. 750 00:33:20,600 --> 00:33:24,060 Siin on ülevaade, siin on, kuidas sa seda kasutada nii header faili 751 00:33:24,060 --> 00:33:27,430 ja selles osas, milline funktsioon Tundub nii oma argumendid. 752 00:33:27,430 --> 00:33:30,250 Ja siis siin, naaseb pikkusega stringi. 753 00:33:30,250 --> 00:33:34,280 Aga neile, mugavamaks, tegelikult võite klõpsata hubane, 754 00:33:34,280 --> 00:33:37,070 ja sisuga lehele, nüüd muutub 755 00:33:37,070 --> 00:33:41,660 olema vaikimisi väärtused, mida saad abil inimene leheküljel. 756 00:33:41,660 --> 00:33:44,100 >> Teisisõnu CS50 Viitamise lihtsustamiseks 757 00:33:44,100 --> 00:33:46,220 mees pages töötajate poolt, üliõpilastele. 758 00:33:46,220 --> 00:33:49,320 Eriti need, vähem mugav ja vahel, nii et sa 759 00:33:49,320 --> 00:33:51,660 ei pea püüdma mähkida meelt ümber, öeldes, 760 00:33:51,660 --> 00:33:55,030 mõned üsna segasena süntaks ja dokumentatsioon millalgi. 761 00:33:55,030 --> 00:33:57,650 >> Nii et hoidke seda silmas pidades päevil tulla. 762 00:33:57,650 --> 00:33:59,560 Nii et siin jälle on Zamyla. 763 00:33:59,560 --> 00:34:03,255 Olgem nüüd küsida, mis on veidi inimlikumaks kättesaadav. 764 00:34:03,255 --> 00:34:05,380 Tänu Chang, kes on olnud printimise rohkem elevanti 765 00:34:05,380 --> 00:34:07,090 nonstop viimase paari päeva jooksul. 766 00:34:07,090 --> 00:34:09,730 Meil on võimalus anda vähemalt üks neist eemale. 767 00:34:09,730 --> 00:34:13,239 Kui me võiksime saada vaid ühe vabatahtliku tulla kuni juhtida ekraanil. 768 00:34:13,239 --> 00:34:14,530 Kuidas siin? 769 00:34:14,530 --> 00:34:15,340 >> Tule. 770 00:34:15,340 --> 00:34:16,720 Mis su nimi on? 771 00:34:16,720 --> 00:34:17,219 ALEX: Alex. 772 00:34:17,219 --> 00:34:17,760 DAVID J. Humala: Alex. 773 00:34:17,760 --> 00:34:18,259 Olgu. 774 00:34:18,259 --> 00:34:19,388 Alex, tule üles. 775 00:34:19,388 --> 00:34:21,679 Oleme umbes, et näha oma käekirja ekraanil siin. 776 00:34:21,679 --> 00:34:24,325 777 00:34:24,325 --> 00:34:25,570 Olgu, tore kohtuda. 778 00:34:25,570 --> 00:34:26,429 >> ALEX: Nice te kohtuda. 779 00:34:26,429 --> 00:34:27,512 >> DAVID J. Humala: Olgu. 780 00:34:27,512 --> 00:34:28,969 Niisiis, super lihtne kasutada. 781 00:34:28,969 --> 00:34:31,440 Baar ei ole suur, saada elevant täna. 782 00:34:31,440 --> 00:34:33,439 Sa mängid rolli getString. 783 00:34:33,439 --> 00:34:35,980 Ja ma lihtsalt öelda, string, et olete saanud. 784 00:34:35,980 --> 00:34:38,080 Ja arvan, et sa, getString, on nn. 785 00:34:38,080 --> 00:34:42,480 Ja inimene, nagu mina, on tipitud Zamyla, Z-A-M-Y-L-. 786 00:34:42,480 --> 00:34:45,650 Lihtsalt minna ja kirjutada Zamyla kohta ekraanil nagu sa oleks saanud seda 787 00:34:45,650 --> 00:34:47,250 ja hoitakse seda kuskil mälus. 788 00:34:47,250 --> 00:34:52,370 789 00:34:52,370 --> 00:34:55,570 >> Jättes ruumi, mida saab mitu teiste words-- et on OK, edasi. 790 00:34:55,570 --> 00:34:59,620 >> [Naer] 791 00:34:59,620 --> 00:35:00,800 >> Nii Zamyla, Suurepärane. 792 00:35:00,800 --> 00:35:04,880 Nüüd oletame, et sa, getString, kutsutakse uuesti. 793 00:35:04,880 --> 00:35:09,350 Ja seetõttu, ma teile, on klaviatuur, teise nimega Belinda. 794 00:35:09,350 --> 00:35:17,560 795 00:35:17,560 --> 00:35:18,060 Olgu. 796 00:35:18,060 --> 00:35:22,380 Ja nüüd järgmine kord getString on nimetatakse, ma kirjuta midagi Gabe, 797 00:35:22,380 --> 00:35:27,560 G--B-E. Sa oled tõesti võttes südamesse muutmälu. 798 00:35:27,560 --> 00:35:29,631 Mis joonistab kõik täiesti juhuslikult. 799 00:35:29,631 --> 00:35:30,130 OK. 800 00:35:30,130 --> 00:35:31,104 >> [Naer] 801 00:35:31,104 --> 00:35:32,520 ALEX: Vabandust mu käekiri on halb. 802 00:35:32,520 --> 00:35:33,770 DAVID J. Humala: Ei, see on OK. 803 00:35:33,770 --> 00:35:40,480 Ja kuidas Rob, R-O-B. OK. 804 00:35:40,480 --> 00:35:41,020 Väga hea. 805 00:35:41,020 --> 00:35:43,853 Nii et ma ei osanud oodata soovid liiki panna asjad niimoodi. 806 00:35:43,853 --> 00:35:45,020 Aga me ei saa teha seda tööd. 807 00:35:45,020 --> 00:35:48,810 Niisiis, kuidas sa minna kohta, millega välja need sümbolid mälu? 808 00:35:48,810 --> 00:35:51,310 Teisisõnu, kui me mõtleme see ristkülikukujuline must ekraan 809 00:35:51,310 --> 00:35:53,550 esindab arvuti RAM või mälu. 810 00:35:53,550 --> 00:35:55,850 >> Ja meenutada, et RAM on lihtsalt terve hulk baite 811 00:35:55,850 --> 00:35:57,480 ja baidid on terve hunnik bitte. 812 00:35:57,480 --> 00:35:59,350 Ja bitti on kuidagi rakendatud, üldiselt 813 00:35:59,350 --> 00:36:01,119 mingid elektri riistvara. 814 00:36:01,119 --> 00:36:03,160 Nii et see on omamoodi kihilisus me rääkisime 815 00:36:03,160 --> 00:36:04,510 ja nüüd peame enesestmõistetavaks. 816 00:36:04,510 --> 00:36:07,020 Kuidas sa minna Otsustades, kus kirjutada 817 00:36:07,020 --> 00:36:11,634 Rob versus Gabe versus Belinda versus Zamyla? 818 00:36:11,634 --> 00:36:14,020 >> ALEX: ma tegin seda et te mulle. 819 00:36:14,020 --> 00:36:15,650 >> DAVID J. Humala: Ja see on tõsi. 820 00:36:15,650 --> 00:36:20,100 Aga mis reguleerib, kui paned Belinda nimi ja Gabe nimi? 821 00:36:20,100 --> 00:36:20,764 >> ALEX: Midagi? 822 00:36:20,764 --> 00:36:22,930 DAVID J. Humala: [naerab] Nii, et töötab, see on hea. 823 00:36:22,930 --> 00:36:25,290 Nii et arvutid on vähe korrastatum kui see. 824 00:36:25,290 --> 00:36:29,000 Ja kui me implement-- seal vaid moment-- kui me tegelikult 825 00:36:29,000 --> 00:36:31,470 rakendada midagi getString arvutis, 826 00:36:31,470 --> 00:36:34,480 Zamyla võib olla sätestatud päris palju nagu sa tegid ekraanile seal. 827 00:36:34,480 --> 00:36:36,660 >> Ja mis on väga oluline märgata siin, mida Alex tegi, 828 00:36:36,660 --> 00:36:40,260 on olemas selline piiritlemine hulgas iga sõna, eks? 829 00:36:40,260 --> 00:36:46,580 Sa ei kirjuta Z-M-Y-L--B-E-L-I-N-D--G--B-- 830 00:36:46,580 --> 00:36:49,740 Teisisõnu, seal on mingi piiritlemis- mis näib olevat, 831 00:36:49,740 --> 00:36:52,370 omamoodi, juhuslik vahe nende eri sõnu. 832 00:36:52,370 --> 00:36:54,120 Aga see on hea, sest meie, inimesed saavad nüüd 833 00:36:54,120 --> 00:36:56,470 visualiseerida, et need on neli erinevat keelt. 834 00:36:56,470 --> 00:36:59,540 See ei ole lihtsalt üks jada partiidest tähemärki. 835 00:36:59,540 --> 00:37:04,190 Nii arvuti, siis vahepeal võib võtta string nagu Zamyla, 836 00:37:04,190 --> 00:37:07,220 panna kõik need tähed sees bait mälu. 837 00:37:07,220 --> 00:37:10,400 Aga see arv on palju suurem, muidugi, kui kuus tähemärki. 838 00:37:10,400 --> 00:37:11,690 >> Seal on terve hunnik RAM. 839 00:37:11,690 --> 00:37:15,330 Ja nii edaspidi, seda ruudustik karbid läheb 840 00:37:15,330 --> 00:37:17,560 esindama mida Alex lihtsalt tegin siin ekraanil. 841 00:37:17,560 --> 00:37:20,937 Ja nüüd, Alex, pakume sinine või oranž elevant Chang. 842 00:37:20,937 --> 00:37:22,270 ALEX: Ma võtan sinine elevant. 843 00:37:22,270 --> 00:37:23,120 DAVID J. Humala: sinine elevant. 844 00:37:23,120 --> 00:37:25,580 Nii suur aplaus, Kui me suudaksime, Alex siin. 845 00:37:25,580 --> 00:37:26,100 >> [APPLAUSE] 846 00:37:26,100 --> 00:37:26,766 >> ALEX: Aitäh. 847 00:37:26,766 --> 00:37:28,820 DAVID J. Humala: Aitäh. 848 00:37:28,820 --> 00:37:36,230 Nii Buffee on see, et kuigi muster omamoodi aja jooksul muutunud, siin 849 00:37:36,230 --> 00:37:40,430 laual oli see piiritlemine erinevate stringid 850 00:37:40,430 --> 00:37:42,610 et Alex sai meile. 851 00:37:42,610 --> 00:37:45,230 Nüüd arvutid, öeldes, võiks teha sama asi. 852 00:37:45,230 --> 00:37:48,210 Nad võiksid sellist sulpsti stringid kõikjal RAM. 853 00:37:48,210 --> 00:37:50,710 Siin, siin, siia alla, siia alla. 854 00:37:50,710 --> 00:37:52,020 >> Nad võiksid teha just nii. 855 00:37:52,020 --> 00:37:54,280 Kuid muidugi, et see ilmselt ei ole parim planeerimine. 856 00:37:54,280 --> 00:37:54,780 Eks ole? 857 00:37:54,780 --> 00:37:57,340 Kui ma küsinud, et Alex saada nimed, ilmselt ta tahaks 858 00:37:57,340 --> 00:38:01,370 pane veel siia, äkki üles siin, siin, siin, lõpuks 859 00:38:01,370 --> 00:38:02,211 siia. 860 00:38:02,211 --> 00:38:05,460 Aga natuke rohkem planeerimist, kindlasti, me võiks panna asjad puhtamalt. 861 00:38:05,460 --> 00:38:07,350 Ja tõepoolest, see on, mida arvuti teeb. 862 00:38:07,350 --> 00:38:10,720 >> Aga saak on see, et Kui järgmine string saan 863 00:38:10,720 --> 00:38:14,050 pärast Zamyla on midagi nagu Belinda, 864 00:38:14,050 --> 00:38:17,929 ettepaneku, kus me võiks kirjutada punkt b seoses selle võrku? 865 00:38:17,929 --> 00:38:18,720 Kuhu soovite minna? 866 00:38:18,720 --> 00:38:21,480 Paremal, Allpool z, alla? 867 00:38:21,480 --> 00:38:23,204 Milline oleks teie esimene instinkt olla? 868 00:38:23,204 --> 00:38:24,120 Sihtrühm: Allpool z. 869 00:38:24,120 --> 00:38:25,100 DAVID J. Humala: Nii allapoole z. 870 00:38:25,100 --> 00:38:26,530 Ja see on päris lihtne, eks? 871 00:38:26,530 --> 00:38:29,321 See on selline puhas, see on mida me teeme klaviatuuril kui me Enter, 872 00:38:29,321 --> 00:38:31,770 või e-posti tegemisel täpploendit asju. 873 00:38:31,770 --> 00:38:34,310 Kuid reaalsus on see, et arvutid püüan olla tõhusam, 874 00:38:34,310 --> 00:38:37,170 ja tuupima kindlasti sama andmete RAM võimalikult 875 00:38:37,170 --> 00:38:38,890 nii et sa ei raiska baiti. 876 00:38:38,890 --> 00:38:41,545 Nii et te ei raiska iga ekraani kinnisvara. 877 00:38:41,545 --> 00:38:44,170 Ja probleem, kuigi see, et kui me sõna otseses mõttes panna kirja 878 00:38:44,170 --> 00:38:49,940 b pärast, kuidas me saame tea, kus Zamyla nimi lõpeb 879 00:38:49,940 --> 00:38:51,840 ja Belinda nimi algab? 880 00:38:51,840 --> 00:38:55,270 Nii et teie, inimesed lihtsalt ettepaneku, noh, vajuta Enter klahvi, sisuliselt. 881 00:38:55,270 --> 00:38:56,410 Pane see allapoole. 882 00:38:56,410 --> 00:38:59,750 Või isegi kui Alex tegi, lihtsalt alustada kirjalikult Järgmise nime all eelmine, 883 00:38:59,750 --> 00:39:01,583 ja allapoole, et üks ja siis alla selle. 884 00:39:01,583 --> 00:39:02,510 See on visuaalne kii. 885 00:39:02,510 --> 00:39:05,960 >> Arvutid on teine ​​visuaalne kii aga see on veidi lühemalt. 886 00:39:05,960 --> 00:39:07,840 See on see funky iseloomu. 887 00:39:07,840 --> 00:39:11,890 Kurakaldkriips 0, mis on võib-olla meenutab tagurpidi kaldkriipsuga n, 888 00:39:11,890 --> 00:39:12,640 ja nii edasi, nüüd. 889 00:39:12,640 --> 00:39:14,120 Eriline põgeneda järjestusi. 890 00:39:14,120 --> 00:39:19,120 Kurakaldkriips 0 on viis esindavad kaheksa null bitti reas. 891 00:39:19,120 --> 00:39:22,000 0000 0000. 892 00:39:22,000 --> 00:39:26,130 >> Väljendusviisi, mida ei tabas number null klaviatuuril, 893 00:39:26,130 --> 00:39:28,140 sest tegelikult see on ASCII tähemärk. 894 00:39:28,140 --> 00:39:30,990 Tundub, et number, kuid on tegelikult koma number 895 00:39:30,990 --> 00:39:35,910 mis moodustab ümmarguse tähemärkide, ümmarguse kirjatüüp. 896 00:39:35,910 --> 00:39:38,410 Vahepeal längkriipsu null tähendab sõna-sõnalt 897 00:39:38,410 --> 00:39:40,700 pane kaheksa null baiti siin minu jaoks. 898 00:39:40,700 --> 00:39:42,136 >> Nii et see on mõnevõrra meelevaldne. 899 00:39:42,136 --> 00:39:44,260 Me oleksime kasutanud muster bittide, kuid maailma 900 00:39:44,260 --> 00:39:46,610 otsustasid mõned aastad tagasi, et esindada 901 00:39:46,610 --> 00:39:49,710 lõpus stringi mälu lihtsalt panna terve hunnik nulle. 902 00:39:49,710 --> 00:39:51,000 Kuna me ei tuvasta seda. 903 00:39:51,000 --> 00:39:54,790 Nüüd see tähendab, et ei ole kirjas tähestik saab esitada nullidega. 904 00:39:54,790 --> 00:39:58,480 >> Aga see on OK, me oleme juba näinud, et me kasutame 65 kohta kuni 97 üles. 905 00:39:58,480 --> 00:40:00,290 Me ei kuhugi Sulge kõik nullid. 906 00:40:00,290 --> 00:40:03,040 907 00:40:03,040 --> 00:40:06,540 Nii Belinda sisse arvuti mällu tegelikult lähen siin. 908 00:40:06,540 --> 00:40:09,764 Olen juhtinud selle kollasega lihtsalt juhtida meie tähelepanu. 909 00:40:09,764 --> 00:40:11,680 Ja teate ka seda on täiesti meelevaldne. 910 00:40:11,680 --> 00:40:12,680 Olen juhtinud seda võrku. 911 00:40:12,680 --> 00:40:14,460 Like, RAM on vaid mõned füüsiline objekt. 912 00:40:14,460 --> 00:40:17,300 See ei pea tingimata Ridade ja veergude per se. 913 00:40:17,300 --> 00:40:20,490 See on just kogu kamp baiti rakendatakse riistvara kuidagi. 914 00:40:20,490 --> 00:40:22,817 Aga kui pärast Belinda I tipitud Gabe nimi, 915 00:40:22,817 --> 00:40:25,650 ta läheb lõpuks siin mälu ja kui ma kirjutada Daven nimi, 916 00:40:25,650 --> 00:40:27,316 Näiteks, ta läheb lõpuks siin. 917 00:40:27,316 --> 00:40:29,310 Ja ma ei saa jätkata kirjuta veelgi nimed. 918 00:40:29,310 --> 00:40:32,100 >> Kahjuks, kui ma püüan kirjuta super pikk nimi, 919 00:40:32,100 --> 00:40:33,730 Ma võib lõpuks otsa mälu. 920 00:40:33,730 --> 00:40:37,810 Millisel juhul, getString on läheb tagasi NULL, nagu me ütlesime. 921 00:40:37,810 --> 00:40:41,720 Aga õnneks, vähemalt selles visuaalne Siin me ei saa päris nii kaugele. 922 00:40:41,720 --> 00:40:45,860 >> Nüüd sellest, mis on tore on see, et üldine idee ravivad asjad 923 00:40:45,860 --> 00:40:49,720 olevaks kastid on esindaja tunnuseks C 924 00:40:49,720 --> 00:40:52,690 ja palju keeli, tuntakse massiivi. 925 00:40:52,690 --> 00:40:55,490 Massiiv on teist tüüpi andmed. 926 00:40:55,490 --> 00:40:57,380 See on andmestruktuur, kui soovite. 927 00:40:57,380 --> 00:41:01,160 Struktuuri mõttes tõesti, liiki, mis näeb välja nagu kast, vähemalt 928 00:41:01,160 --> 00:41:02,320 oma vaimusilmas. 929 00:41:02,320 --> 00:41:09,680 Massiiv on külgnevas jada identsed andmetüüpe 930 00:41:09,680 --> 00:41:11,330 seljad et seljad. 931 00:41:11,330 --> 00:41:14,720 >> Nii et string, teistes sõnad on massiivi tähemärki. 932 00:41:14,720 --> 00:41:16,120 Array tähemärki. 933 00:41:16,120 --> 00:41:19,070 Aga selgub, sul võib olla massiivid kobarad asju. 934 00:41:19,070 --> 00:41:21,870 Tegelikult saame panna isegi numbrite massiivi. 935 00:41:21,870 --> 00:41:23,920 Niisiis, millisel kujul me ei kavatse hakata 936 00:41:23,920 --> 00:41:26,590 kuulutanud andmed struktuur, mida nimetatakse massiivi 937 00:41:26,590 --> 00:41:28,250 Samuti ei kavatse kasutada nurksulgudes. 938 00:41:28,250 --> 00:41:31,500 Aga need nurksulud ei kavatse on erinev tähendus selles kontekstis. 939 00:41:31,500 --> 00:41:33,450 >> Ja vaatame seda järgmiselt. 940 00:41:33,450 --> 00:41:36,780 Oletame, et ma avasin üles uus fail siit. 941 00:41:36,780 --> 00:41:38,535 Ja ma hoian seda ages.c. 942 00:41:38,535 --> 00:41:41,280 943 00:41:41,280 --> 00:41:43,470 Ja ma jätan selle minu kausta siin. 944 00:41:43,470 --> 00:41:46,130 Ja nüüd ma lähen edasi minna ja hakake kirjutama midagi 945 00:41:46,130 --> 00:41:53,940 nagu hulka CS50.h sisaldama stdio.h, int main void. 946 00:41:53,940 --> 00:41:57,370 Ja siis sees siin, ma tahan kõigepealt on int nimetatakse vanusest. 947 00:41:57,370 --> 00:42:01,371 >> Ja ma lähen kasutada, et saada int kasutaja jaoks tema vanust. 948 00:42:01,371 --> 00:42:04,620 Aga see programm on mõeldud kasutada mitu inimest, ükskõik mis kontekstis. 949 00:42:04,620 --> 00:42:05,490 Mul on rida inimesi. 950 00:42:05,490 --> 00:42:08,281 Kõik nad on sisestada oma vanuse-olla mõned, ma ei tea, 951 00:42:08,281 --> 00:42:10,530 konkurentsi, või juhul et nad on saabunud. 952 00:42:10,530 --> 00:42:13,030 Nii et järgmine inimene, ma pead teise muutuja. 953 00:42:13,030 --> 00:42:15,790 >> Sest kui ma lihtsalt ei vanus muutub getInt, mis on 954 00:42:15,790 --> 00:42:18,500 läheb Tellida või kirjutada Eelmise isiku vanust. 955 00:42:18,500 --> 00:42:19,760 Nii et see ei ole hea. 956 00:42:19,760 --> 00:42:21,790 Nii et minu esimene instinkt võib olla, oh, eks, 957 00:42:21,790 --> 00:42:26,260 kui ma tahan saada mitme inimese ages-- olgem nimetame seda age1, 958 00:42:26,260 --> 00:42:31,280 int east2 saab int, int east3 saab getInt. 959 00:42:31,280 --> 00:42:35,340 Ja nüüd ma lähen kasutada mõned pseudokoodi koodi siin. 960 00:42:35,340 --> 00:42:37,679 >> Kas midagi need numbrid. 961 00:42:37,679 --> 00:42:40,470 Me lahkume teisele päevale, mida me teeme seal, sest me ainult 962 00:42:40,470 --> 00:42:44,200 hoolitseda hetk umbes age1, east2, east3. 963 00:42:44,200 --> 00:42:46,450 Kahjuks, kui ma koostab selle programmi 964 00:42:46,450 --> 00:42:51,140 ja pane see ees tegelikke kasutajaid, mis on põhimõtteliselt halb disain 965 00:42:51,140 --> 00:42:53,890 Otsuse Mulle tundub, et on teinud? 966 00:42:53,890 --> 00:42:54,624 Jah? 967 00:42:54,624 --> 00:42:55,499 Sihtrühm: [kuuldamatu] 968 00:42:55,499 --> 00:42:58,071 969 00:42:58,071 --> 00:42:59,820 DAVID J. Humala: Jah, Ma ei ole isegi proovinud 970 00:42:59,820 --> 00:43:02,028 aru saada, kui palju igas vanuses ma tegelikult hoolin? 971 00:43:02,028 --> 00:43:05,380 Kui mul on vähem kui kolm inimest siin, ja seega vähem kui kolme aegade 972 00:43:05,380 --> 00:43:07,260 Ma olen ikka pimesi oodanud kolm. 973 00:43:07,260 --> 00:43:08,720 Jumal hoidku neli inimest näha. 974 00:43:08,720 --> 00:43:10,990 Minu programm lihtsalt isegi ei toeta neid. 975 00:43:10,990 --> 00:43:13,280 >> Ja nii see pikk lugu Lühidalt, ei ole hea harjumus. 976 00:43:13,280 --> 00:43:13,780 Eks ole? 977 00:43:13,780 --> 00:43:16,530 Olin sisuliselt kopeerides ja kleepides kood ja lihtsalt tutistamine 978 00:43:16,530 --> 00:43:17,430 muutujate nimed. 979 00:43:17,430 --> 00:43:22,410 Ja jumal, kui sa olid, mitte kolm vanuses, kuid 10 või 100 või isegi 6500 980 00:43:22,410 --> 00:43:23,820 üliõpilastele, näiteks. 981 00:43:23,820 --> 00:43:26,950 See ei saa olema eriti elegantne koodi või jätkusuutlik. 982 00:43:26,950 --> 00:43:29,200 Sa lähed pea kirjutada programm iga kord 983 00:43:29,200 --> 00:43:30,760 Sinu inimeste arv muutub. 984 00:43:30,760 --> 00:43:35,090 >> Nii et õnneks meie tegelik ages.c faili täna 985 00:43:35,090 --> 00:43:36,970 meil on rohkem nutikas lahendus. 986 00:43:36,970 --> 00:43:39,800 Esiteks, ma laenata ehitada oleme kasutanud paar korda, 987 00:43:39,800 --> 00:43:43,744 seda teha, samas silmus, et saada inimeste arvu ruumis. 988 00:43:43,744 --> 00:43:46,910 Ma lihtsalt vaevama kasutaja, uuesti ja uuesti, kuni ta annab mulle 989 00:43:46,910 --> 00:43:49,260 n väärtus, mis on positiivne täisarv. 990 00:43:49,260 --> 00:43:51,590 >> Ma oleks võinud kasutada, viimane aeg on saada positiivne int. 991 00:43:51,590 --> 00:43:53,720 Kuid me ei ole seda reaalne, et ma läksin edasi 992 00:43:53,720 --> 00:43:55,660 ja uuesti rakendada seda ideed. 993 00:43:55,660 --> 00:43:58,410 Nüüd siin, see on uus trikk. 994 00:43:58,410 --> 00:44:02,260 Vastavalt 27, kui kommentaarid vastavalt 26 ütleb, 995 00:44:02,260 --> 00:44:05,180 kuulutada array, kus talletada kõik vanusest. 996 00:44:05,180 --> 00:44:09,320 >> Nii et kui sa tahad saada, mitte üks keskmine, mitte kaks ints, kuid terve hulk ints. 997 00:44:09,320 --> 00:44:13,800 Täpsemalt n täisarvu, olid n võiks kolm, võib olla 100, võib olla 1000. 998 00:44:13,800 --> 00:44:17,570 Süntaks, lihtsalt, on ütleme, millised andmed tüüpi sa tahad? 999 00:44:17,570 --> 00:44:19,620 Mida sa tahad, et helistada et patakas mälu? 1000 00:44:19,620 --> 00:44:23,530 Mida sa tahad, et helistada võre mis näeb välja nagu see piltlikult? 1001 00:44:23,530 --> 00:44:27,700 >> Ja sulgudes siin, te ütlete kui suur sa tahad massiivi olla. 1002 00:44:27,700 --> 00:44:30,450 Ja nii varem, kui ma ütlesin, süntaks on veidi erinev siin, 1003 00:44:30,450 --> 00:44:33,614 oleme endiselt kasutades nurksulgudesse aga kui ma kuulutatakse massiiv, 1004 00:44:33,614 --> 00:44:35,530 arvu sees Nurksulgudes vahendid 1005 00:44:35,530 --> 00:44:37,610 kui suur sa tahad massiivi olla. 1006 00:44:37,610 --> 00:44:42,490 >> Seevastu kui olime kasutades s sulg i hetk tagasi, s, string, 1007 00:44:42,490 --> 00:44:46,820 on tõepoolest massiivi tähemärki, kuid kui sa ei ole kuulutab muutuja, 1008 00:44:46,820 --> 00:44:49,760 kui selle märksõna siin, sa lihtsalt saada 1009 00:44:49,760 --> 00:44:54,280 konkreetsed indeks, konkreetse element selle massiivi. 1010 00:44:54,280 --> 00:44:57,090 Kui me teame, et ülejäänud see on lihtne. 1011 00:44:57,090 --> 00:45:00,765 Kui uus ma kõigepealt läheb välja trükkida Mis vanusest isikunumbrist i. 1012 00:45:00,765 --> 00:45:03,890 Kui ma ütlen isik number üks, isiku number kaks, inimene number kolm. 1013 00:45:03,890 --> 00:45:06,306 >> Ja ma teen ainult aritmeetika, et nagu normaalsed inimesed, 1014 00:45:06,306 --> 00:45:09,030 me loota ühest selle programmi, mitte nullist. 1015 00:45:09,030 --> 00:45:13,620 Siis ma kutsun getint, kuid ma hoida vastus vanuses ümbritsevad i. 1016 00:45:13,620 --> 00:45:16,610 Milline on i-nda vanus massiivi. 1017 00:45:16,610 --> 00:45:21,640 Nii et arvestades viimase aja olime ravivad neid karpe nagu tähemärki eest Zamyla nimi, 1018 00:45:21,640 --> 00:45:22,490 ja teised. 1019 00:45:22,490 --> 00:45:26,530 Nüüd on need kastid esindama 32 bitti või neli baiti 1020 00:45:26,530 --> 00:45:29,510 kus saame salvestada int, int, int. 1021 00:45:29,510 --> 00:45:31,890 Kõik, mis jällegi on sama andmetüüp. 1022 00:45:31,890 --> 00:45:33,890 >> Nüüd ma midagi rumal, nagu aja kulgedes, vaid 1023 00:45:33,890 --> 00:45:35,510 õigustada kirjutamise programm. 1024 00:45:35,510 --> 00:45:40,050 Ja siis siin ma taas kinnitada, üle hulga öelda aasta pärast, 1025 00:45:40,050 --> 00:45:43,090 isik number üks on midagi-aastane. 1026 00:45:43,090 --> 00:45:45,010 Ja aru saada, et math-- Ma mõtlen, et see 1027 00:45:45,010 --> 00:45:49,260 ei ole väga keeruline arithmetic-- Ma lihtsalt lisada üks nende vanusest. 1028 00:45:49,260 --> 00:45:51,240 Lihtsalt, et näidata, jälle see. 1029 00:45:51,240 --> 00:45:57,910 >> Just nagu ma ei indeks string, s, nii ma saan index massiivi vanuses, 1030 00:45:57,910 --> 00:45:59,950 niimoodi on. 1031 00:45:59,950 --> 00:46:03,340 Nii et kui see läheb tuleb meid? 1032 00:46:03,340 --> 00:46:07,070 Nii me näeme lõpuks mõned asjad päeva ees. 1033 00:46:07,070 --> 00:46:09,510 Üks, kõik see aeg, mil kirjalikult oma programme, 1034 00:46:09,510 --> 00:46:11,239 nagu Mario, ahne, krediidi. 1035 00:46:11,239 --> 00:46:13,780 Sa oled kirjutades nime programmi ja lööb Enter. 1036 00:46:13,780 --> 00:46:15,610 Ja siis saada kasutaja sisend. 1037 00:46:15,610 --> 00:46:18,137 >> Mis getString, getInt, getLongLong või sarnased. 1038 00:46:18,137 --> 00:46:20,720 Aga selgub, et C toed midagi, mida nimetatakse käsurida 1039 00:46:20,720 --> 00:46:25,740 argumendid, mis läheb meile tegelikult saada on sõnad, mis sa kirjutad, 1040 00:46:25,740 --> 00:46:28,570 juures vilgub kiiresti, pärast teie programmi nime. 1041 00:46:28,570 --> 00:46:31,430 >> Nii et päeva tulema, siis võib kirjuta midagi nagu Caesar, 1042 00:46:31,430 --> 00:46:34,950 või ./caesar number 13, pärast seda. 1043 00:46:34,950 --> 00:46:36,070 Me näeme, kuidas see toimib. 1044 00:46:36,070 --> 00:46:37,550 Sest tõepoolest sisse probleem seatud kaks, me oleme 1045 00:46:37,550 --> 00:46:39,383 läheb teile tutvustada et natuke midagi 1046 00:46:39,383 --> 00:46:42,360 meenutab Ralphie on vaidlustada varasema kartograafia. 1047 00:46:42,360 --> 00:46:43,970 Art skrambleerimisbittide teavet. 1048 00:46:43,970 --> 00:46:46,660 See, et tegelikult on väga meenutab, mida Ralphie tegi. 1049 00:46:46,660 --> 00:46:51,380 >> See on näide krüpteerimist algoritmi nimetatakse ROT13, R-O-T 13. 1050 00:46:51,380 --> 00:46:54,910 Mis tähendab lihtsalt seda, pöörake tähed tähestikus 13 kohtades. 1051 00:46:54,910 --> 00:46:58,309 Ja kui sa seda teed, näete nüüd mis on võib-olla tuttav lause. 1052 00:46:58,309 --> 00:47:01,100 Aga kuidas me ei kavatse kasutada Selle lõpuks on üldisemalt. 1053 00:47:01,100 --> 00:47:04,390 >> P määrata kaheks, Standard Edition, saate rakendada paar ciphers 1054 00:47:04,390 --> 00:47:06,720 ühe nimega Caesar, üks nn Vigenere. 1055 00:47:06,720 --> 00:47:10,090 Mõlemad on vahelduva salakirjad, et kuidagi sa 1056 00:47:10,090 --> 00:47:11,826 omakorda üks täht arvesse erinevaid kirja. 1057 00:47:11,826 --> 00:47:12,950 Ja Caesar on super lihtne. 1058 00:47:12,950 --> 00:47:16,220 Sa lisage esimene kommentaar, kui lisate 13 või mingi arvu kuni 26. 1059 00:47:16,220 --> 00:47:19,570 Vigenere kas see on tähe kohta eraldi. 1060 00:47:19,570 --> 00:47:22,140 Nii Vigenere, kui näete aastal spec, on turvalisem. 1061 00:47:22,140 --> 00:47:24,973 >> Aga lõpus päeval, mis saate rakendamise ja P panevad kaks, 1062 00:47:24,973 --> 00:47:29,050 on see, et võti, mida kasutada nii kodeerimiseks ja dekodeerimiseks. 1063 00:47:29,050 --> 00:47:32,160 Viidates protsess keerates lihttekstina mõned algse sõnumi, 1064 00:47:32,160 --> 00:47:34,490 arvesse salakiri teksti, mis on midagi, krüpteeritud. 1065 00:47:34,490 --> 00:47:36,220 Ja siis dekrüpteerimiseks uuesti. 1066 00:47:36,220 --> 00:47:38,119 >> Kui häkker väljaanne, Vahepeal, saate 1067 00:47:38,119 --> 00:47:40,660 kelle ülesanne on midagi sarnast vaimus, kus me anname teile 1068 00:47:40,660 --> 00:47:44,610 fail, alates tüüpiline Linux või Mac või Unix arvuti nimega Etsy 1069 00:47:44,610 --> 00:47:47,800 parooli, mis sisaldab kogu hunnik kasutajanimed ja paroolid. 1070 00:47:47,800 --> 00:47:50,932 Ja need paroolid on kõik krüptitud või räsitud, 1071 00:47:50,932 --> 00:47:53,140 niiöelda enam korralikult nagu näete, on spec. 1072 00:47:53,140 --> 00:47:57,090 >> Ja häkker väljaanne väljakutse Teile võttes sisend niimoodi, 1073 00:47:57,090 --> 00:47:58,800 ja lõhenemist parooli. 1074 00:47:58,800 --> 00:48:02,590 See tähendab, et välja selgitada, millised Inimese salasõna tegelikult oli. 1075 00:48:02,590 --> 00:48:05,570 Sest tõepoolest, paroolid on üldiselt ei säilitata selge, 1076 00:48:05,570 --> 00:48:08,260 ja üldiselt paroolid peaks olema raske ära arvata. 1077 00:48:08,260 --> 00:48:09,610 See ei ole sageli juhtunud. 1078 00:48:09,610 --> 00:48:12,110 >> Ja ma arvasin, et me tahaks teha, on sõlmida paar minutit 1079 00:48:12,110 --> 00:48:15,160 Pilk eriti halb valik paroolid 1080 00:48:15,160 --> 00:48:17,260 alates film võite meenutada hellalt. 1081 00:48:17,260 --> 00:48:18,915 Ja kui ei ole, siis tuleb rentida. 1082 00:48:18,915 --> 00:48:20,070 >> [VIDEO PLAYBACK] 1083 00:48:20,070 --> 00:48:22,320 >> -Helmet, Sa paharet, mis toimub? 1084 00:48:22,320 --> 00:48:24,240 Mida sa teed, et mu tütar? 1085 00:48:24,240 --> 00:48:28,010 >> -Permit Mul tutvustada geniaalne noor plastikakirurg, 1086 00:48:28,010 --> 00:48:30,010 Doctor Phillip Schlotkin. 1087 00:48:30,010 --> 00:48:35,020 Suurim nina mees Kogu universum ja Beverly Hills. 1088 00:48:35,020 --> 00:48:36,140 >> Su kõrgeausus. 1089 00:48:36,140 --> 00:48:36,820 >> -Nose Tööd? 1090 00:48:36,820 --> 00:48:37,700 Ma ei saa aru. 1091 00:48:37,700 --> 00:48:39,070 Ta on juba oma nina. 1092 00:48:39,070 --> 00:48:40,800 See oli tema magusa 16. kohal. 1093 00:48:40,800 --> 00:48:42,590 >> Ei, see pole see, mida sa arvad. 1094 00:48:42,590 --> 00:48:44,490 See on palju, palju hullem. 1095 00:48:44,490 --> 00:48:48,160 Kui sa ei anna mulle kombinatsioon õhku kilp, 1096 00:48:48,160 --> 00:48:52,748 Arst Schlotkin annab oma tütart tagasi oma vana nina. 1097 00:48:52,748 --> 00:48:53,748 - [Gasps] Nooooooooooooo. 1098 00:48:53,748 --> 00:48:57,684 1099 00:48:57,684 --> 00:48:59,652 Kust sa selle said? 1100 00:48:59,652 --> 00:49:00,640 >> Olgu. 1101 00:49:00,640 --> 00:49:02,506 Ma ütlen, ma ütlen. 1102 00:49:02,506 --> 00:49:03,498 >> Ei, issi, no. 1103 00:49:03,498 --> 00:49:04,490 Te ei tohi. 1104 00:49:04,490 --> 00:49:06,090 >> Sa oled õige mu kallis. 1105 00:49:06,090 --> 00:49:07,390 Ma igatsen endale nina. 1106 00:49:07,390 --> 00:49:10,990 Aga ma ei ütle neile, kombinatsiooni ükskõik mida. 1107 00:49:10,990 --> 00:49:12,450 >> Väga hästi. 1108 00:49:12,450 --> 00:49:14,830 Doctor Schlotkin tehke oma halvim. 1109 00:49:14,830 --> 00:49:15,744 >> Mu rõõm. 1110 00:49:15,744 --> 00:49:19,860 1111 00:49:19,860 --> 00:49:20,800 >> Ei! 1112 00:49:20,800 --> 00:49:22,780 Oota, oota. 1113 00:49:22,780 --> 00:49:24,000 Ma ütlen. 1114 00:49:24,000 --> 00:49:25,830 Ma ütlen. 1115 00:49:25,830 --> 00:49:28,270 >> Ma teadsin, et see töötab. 1116 00:49:28,270 --> 00:49:31,390 Olgu, anna see mulle. 1117 00:49:31,390 --> 00:49:36,220 >> -The Kombinatsioon on üks. 1118 00:49:36,220 --> 00:49:36,740 >> Oon. 1119 00:49:36,740 --> 00:49:37,473 >> Oon. 1120 00:49:37,473 --> 00:49:37,972 Kaks. 1121 00:49:37,972 --> 00:49:38,471 Kaks. 1122 00:49:38,471 --> 00:49:39,800 Kaks. 1123 00:49:39,800 --> 00:49:40,300 -Kolm. 1124 00:49:40,300 --> 00:49:40,800 -Kolm. 1125 00:49:40,800 --> 00:49:41,800 -Kolm. 1126 00:49:41,800 --> 00:49:42,300 Neli. 1127 00:49:42,300 --> 00:49:42,800 Neli. 1128 00:49:42,800 --> 00:49:44,707 Neli. 1129 00:49:44,707 --> 00:49:45,521 Viis. 1130 00:49:45,521 --> 00:49:46,430 Viis. 1131 00:49:46,430 --> 00:49:47,930 Viis. 1132 00:49:47,930 --> 00:49:53,480 -Nii Kombinatsioon on üks, kaks, kolm, neli, viis. 1133 00:49:53,480 --> 00:49:56,140 See on kõige lollim kombinatsioon Ma kunagi kuulnud olen. 1134 00:49:56,140 --> 00:49:58,640 See on selline asi, idioot oleks oma pagasi. 1135 00:49:58,640 --> 00:50:00,000 >> Tänan teid, Teie Kõrgeausus. 1136 00:50:00,000 --> 00:50:01,340 >> [REMOTE CLICKS] 1137 00:50:01,340 --> 00:50:02,450 >> Mida sa tegid? 1138 00:50:02,450 --> 00:50:03,800 >> Ma välja lülitatud seina. 1139 00:50:03,800 --> 00:50:05,010 >> Ei, sa ei ole, sa välja lülitatud kogu filmi. 1140 00:50:05,010 --> 00:50:06,220 >> Ma vist vajutanud vale nuppu. 1141 00:50:06,220 --> 00:50:07,064 >> Noh, pane see tagasi! 1142 00:50:07,064 --> 00:50:07,910 Pane filmi tagasi! 1143 00:50:07,910 --> 00:50:08,300 >> Jah, söör! 1144 00:50:08,300 --> 00:50:08,799 Jah, sir. 1145 00:50:08,799 --> 00:50:09,660 Lähme, Arnold. 1146 00:50:09,660 --> 00:50:10,450 Tule, Gretchen. 1147 00:50:10,450 --> 00:50:12,533 Muidugi tean, et ma pean teile arve selle eest. 1148 00:50:12,533 --> 00:50:16,720 1149 00:50:16,720 --> 00:50:17,220 Noh? 1150 00:50:17,220 --> 00:50:17,802 Kas see toimib? 1151 00:50:17,802 --> 00:50:18,510 Kus on kuningas? 1152 00:50:18,510 --> 00:50:20,218 >> -See Töötanud, sir, me on kombinatsioon. 1153 00:50:20,218 --> 00:50:20,740 Tore. 1154 00:50:20,740 --> 00:50:24,810 Nüüd saame võtta iga viimase hinge värske õhk planeedi Druidia. 1155 00:50:24,810 --> 00:50:25,890 Mis kombinatsioon? 1156 00:50:25,890 --> 00:50:28,155 >> Ooni, kaks, kolm, neli, viis. 1157 00:50:28,155 --> 00:50:29,890 >> Ooni, kaks, kolm, neli, viis? 1158 00:50:29,890 --> 00:50:30,390 Jah. 1159 00:50:30,390 --> 00:50:31,110 -See Hämmastav. 1160 00:50:31,110 --> 00:50:34,550 Mul on sama kombinatsioon minu pagas. 1161 00:50:34,550 --> 00:50:37,160 Valmistage Spaceball 1 viivitamatut lahkumist. 1162 00:50:37,160 --> 00:50:38,160 >> Jah, söör. 1163 00:50:38,160 --> 00:50:40,745 >> Ja muuta kombinatsioon minu pagas. 1164 00:50:40,745 --> 00:50:41,578 [Uste sulgemine SOUND] 1165 00:50:41,578 --> 00:50:42,064 [CLINK Väravad tabamine KIIVER] 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. Humala: Ongi CS50, me näeme järgmisel nädalal. 1169 00:50:46,700 --> 00:50:49,883 Jutustaja: Ja nüüd, Deep Mõtted, mida Daven Farnham. 1170 00:50:49,883 --> 00:50:53,160 1171 00:50:53,160 --> 00:50:55,860 >> Daven FARNHAM: kodeerimist C on nii palju raskem kui nullist. 1172 00:50:55,860 --> 00:50:57,320 printf, Scratch, oli vale. 1173 00:50:57,320 --> 00:50:59,930 1174 00:50:59,930 --> 00:51:01,430 >> [Naer soundbite] 1175 00:51:01,430 --> 00:51:02,486