1 00:00:00,000 --> 00:00:03,944 >> [Muusika mängib] 2 00:00:03,944 --> 00:00:10,732 3 00:00:10,732 --> 00:00:11,690 DAVID Humala: Okei. 4 00:00:11,690 --> 00:00:14,674 See on CS50 ja see on nädala lõpuks 2. 5 00:00:14,674 --> 00:00:16,840 Mul on nii kahju ma ei saa seal sinuga kõik täna 6 00:00:16,840 --> 00:00:18,300 aga sa oled väga heades kätes. 7 00:00:18,300 --> 00:00:21,710 Lubage mul tutvustada CS50 enda Rob Bowden. 8 00:00:21,710 --> 00:00:29,106 9 00:00:29,106 --> 00:00:31,730 ROB BOWDEN: Ja muidugi, siis meil nalja asjaolu 10 00:00:31,730 --> 00:00:36,820 et ta saatis meile vertikaalne video ja näidata. 11 00:00:36,820 --> 00:00:38,320 >> [Video taasesitus] 12 00:00:38,320 --> 00:00:39,820 >> [Muusika mängib] 13 00:00:39,820 --> 00:00:42,350 >> [Jälgedes] 14 00:00:42,350 --> 00:00:44,730 >> -See Video ei pead vaatama nii. 15 00:00:44,730 --> 00:00:46,570 See oleks saanud ära hoida. 16 00:00:46,570 --> 00:00:49,070 Ütle ei vertikaalse videos. 17 00:00:49,070 --> 00:00:53,310 >> -Vertical Videod juhtuda siis, kui Hoidke kaamerat valesti. 18 00:00:53,310 --> 00:00:55,880 Teie video lõpeb otsin nagu jama. 19 00:00:55,880 --> 00:00:57,650 >> - [Grunt] 20 00:00:57,650 --> 00:01:02,240 >> Eksisteerivad üha rohkem inimesi sõltuvuses muuta vertikaalne videod iga päev. 21 00:01:02,240 --> 00:01:06,240 See ei pragune ega midagi, kuid see on ikka tõesti halb. 22 00:01:06,240 --> 00:01:10,410 On kaks erinevat liiki inimesed, kes põevad VVS. 23 00:01:10,410 --> 00:01:14,160 Esimene rühm kohtleb videos nad tulistada, nagu pildid. 24 00:01:14,160 --> 00:01:15,850 Nad ei tähenda midagi halba. 25 00:01:15,850 --> 00:01:19,180 Nad lihtsalt ei saa aru, et samas võid pildi, 26 00:01:19,180 --> 00:01:20,880 te ei saa tõesti omakorda video. 27 00:01:20,880 --> 00:01:21,880 >> [CRASH] 28 00:01:21,880 --> 00:01:23,460 >> - [Ahv SOUNDS] 29 00:01:23,460 --> 00:01:27,540 >> -The Teine grupp on inimesed kes ei anna [piipar]. 30 00:01:27,540 --> 00:01:31,090 >> -Vertical Video sündroom on ohtlik. 31 00:01:31,090 --> 00:01:34,120 Resolutsiooni pildid on alati horisontaalselt. 32 00:01:34,120 --> 00:01:35,990 Telerid on horisontaalne. 33 00:01:35,990 --> 00:01:38,380 Arvutiekraani on horisontaalne. 34 00:01:38,380 --> 00:01:41,580 Inimeste silmad on horisontaalne. 35 00:01:41,580 --> 00:01:45,170 Me ei ehitatud vaata vertikaalne videos. 36 00:01:45,170 --> 00:01:47,600 >> -Ma Armastan vertikaalne videos. 37 00:01:47,600 --> 00:01:50,410 >> -Nobody Hoolib sinust. 38 00:01:50,410 --> 00:01:53,340 >> -Kui See probleem on jätta märkimata, siis ka 39 00:01:53,340 --> 00:01:57,650 algab näitab neli videod korraga lihtsalt säästa ribalaiust. 40 00:01:57,650 --> 00:02:02,400 >> -Letterboxed Vertikaalne videos oleks olla suurus postmark. 41 00:02:02,400 --> 00:02:04,920 >> -Ja See levib kõikjal. 42 00:02:04,920 --> 00:02:07,670 Kinolinal on alati horisontaalselt. 43 00:02:07,670 --> 00:02:11,200 Kui vertikaalne videos saada aktsepteeritud, kinos 44 00:02:11,200 --> 00:02:13,930 peab olema pikk ja kõhn. 45 00:02:13,930 --> 00:02:17,710 >> -Ja Kõik kinod oleks on katki läinud ja uuesti üles ehitatud. 46 00:02:17,710 --> 00:02:22,090 Ja selleks ajaks, kui nad olid ümberehitatud, Mila Kunis oleks vana ja kole. 47 00:02:22,090 --> 00:02:24,342 >> -Birds Krahhi neisse ja surevad. 48 00:02:24,342 --> 00:02:26,530 >> -Me Oleme kõik saavad jäik kaela alates soojaks. 49 00:02:26,530 --> 00:02:29,800 >> -Ja Keegi ei istu esireas kunagi. 50 00:02:29,800 --> 00:02:37,170 >> -George Lucas uuesti vabastamise Star Sõjad again-- kõhn väljaanne. 51 00:02:37,170 --> 00:02:41,860 >> -Ma Olin kunagi võimalik öelda lugu, mida ma tahtsin öelda. 52 00:02:41,860 --> 00:02:46,030 See oli suurepärane võimalus, et ma katsetada uut tehnoloogiat. 53 00:02:46,030 --> 00:02:48,150 >> -Sa Oled jobu. 54 00:02:48,150 --> 00:02:54,430 >> -Iga Aega mobiilseadme kasutatakse videosalvestus, kiusatus on olemas. 55 00:02:54,430 --> 00:02:56,370 Lihtsalt ei öelda. 56 00:02:56,370 --> 00:03:00,116 Ütle ei George Lucas. 57 00:03:00,116 --> 00:03:04,062 Ütle ei vana Mila Kunis. 58 00:03:04,062 --> 00:03:06,600 Ütle ei vertikaalse videos. 59 00:03:06,600 --> 00:03:12,511 >> -Ja Kui näed kedagi, tehes seda öelda, "sa ei ole tulistamist, et õige näiv!" 60 00:03:12,511 --> 00:03:15,433 >> [Muusika mängib] 61 00:03:15,433 --> 00:03:18,842 62 00:03:18,842 --> 00:03:19,830 >> [Taasesituse lõpetamiseks] 63 00:03:19,830 --> 00:03:23,702 >> [APPLAUSE] 64 00:03:23,702 --> 00:03:27,598 >> [AUDIO OUT] 65 00:03:27,598 --> 00:03:44,041 66 00:03:44,041 --> 00:03:45,790 ROB BOWDEN: --simple kujul krüptograafia, 67 00:03:45,790 --> 00:03:49,500 mis on põhimõtteliselt krüpteerimist ja dekodeerimiseks salajasi sõnumeid. 68 00:03:49,500 --> 00:03:52,590 Nii et siin on meil väga lihtne mänguasi. 69 00:03:52,590 --> 00:03:56,900 Ja idee on välimine ring pöörab ümber sisemise ringi. 70 00:03:56,900 --> 00:04:01,610 Ja näed, võibolla kui ma suurendamiseks aastal, selle-- on raske näha. 71 00:04:01,610 --> 00:04:05,090 Aga, nagu arv 1-- hästi, et liigutada. 72 00:04:05,090 --> 00:04:09,120 >> Number 1 kaardistab kirja X, number 2 kaartide kirja 73 00:04:09,120 --> 00:04:11,630 J. uskumatult raske ei jäta edasi. 74 00:04:11,630 --> 00:04:16,100 Kiri 2 kaardistatud J. Number 3 kaardistatud D. Nii 75 00:04:16,100 --> 00:04:20,140 Selle ring saab anda keegi sõnumi 1, 2, 3. 76 00:04:20,140 --> 00:04:22,624 Mingil põhjusel sa tahad öelda neile XJD. 77 00:04:22,624 --> 00:04:24,540 Aga sa võid anda neile mõned sõnum numbrid, 78 00:04:24,540 --> 00:04:28,460 ja niikaua kui neil kõnealune ring, nad saab lahti, mida sa tahad öelda. 79 00:04:28,460 --> 00:04:32,510 >> Nii olete näinud seda eriti näiteks krüptograafia 80 00:04:32,510 --> 00:04:36,640 enne kui ümber jõulud vaatasite A Christmas Story. 81 00:04:36,640 --> 00:04:38,520 Kui olete kunagi näinud enne, siis lihtsalt 82 00:04:38,520 --> 00:04:41,060 lülita TBS on sõna otseses mõttes igal ajal jõululaupäeval, 83 00:04:41,060 --> 00:04:44,510 sest nad lihtsalt näidata seda seljad tagasi üles seljad terve päeva. 84 00:04:44,510 --> 00:04:46,744 Ja asjakohase video on see. 85 00:04:46,744 --> 00:04:47,410 [Video taasesitus] 86 00:04:47,410 --> 00:04:50,020 -Ole Ta teada, et igaüht et Ralph Parker Käesolevaga 87 00:04:50,020 --> 00:04:52,850 määratud liige Little Harva Annie Secret Circle 88 00:04:52,850 --> 00:04:56,490 ja õigus kõigi auavaldustega ja kasu esinevad nendega. 89 00:04:56,490 --> 00:04:59,010 Allkirjastatud Little harva Annie. 90 00:04:59,010 --> 00:05:03,120 Allkirjaga Pierre Andre tindiga! 91 00:05:03,120 --> 00:05:07,460 Tunnustus kasu juba üheksa-aastaselt! 92 00:05:07,460 --> 00:05:12,530 >> [Karjuma Radio] 93 00:05:12,530 --> 00:05:13,030 -Ole nüüd. 94 00:05:13,030 --> 00:05:14,000 Lähme edasi. 95 00:05:14,000 --> 00:05:18,274 Ma ei pea kõik, mis jazz umbes salakaubavedajate ja piraadid. 96 00:05:18,274 --> 00:05:20,440 Saate kuulata homme õhtul kokkuvõtvad seiklus 97 00:05:20,440 --> 00:05:22,540 Musta Pirate Ship. 98 00:05:22,540 --> 00:05:25,460 Nüüd on aeg Annie salajane sõnum 99 00:05:25,460 --> 00:05:28,620 Teile liikmete Secret Circle. 100 00:05:28,620 --> 00:05:32,370 Pea meeles, lapsed, vaid liikmed Annie Secret Circle 101 00:05:32,370 --> 00:05:34,880 saab dekodeerida Annie salajane sõnum. 102 00:05:34,880 --> 00:05:39,100 Pea meeles, Annie on sõltuvalt teile. 103 00:05:39,100 --> 00:05:41,660 Määra oma sõrmed B2. 104 00:05:41,660 --> 00:05:43,960 Siin on sõnum. 105 00:05:43,960 --> 00:05:44,680 12. 106 00:05:44,680 --> 00:05:45,180 11. 107 00:05:45,180 --> 00:05:45,679 2. 108 00:05:45,679 --> 00:05:48,110 -Ma Olen oma esimese salajase kohtumise. 109 00:05:48,110 --> 00:05:49,030 >> -25. 110 00:05:49,030 --> 00:05:49,834 14. 111 00:05:49,834 --> 00:05:51,040 11. 112 00:05:51,040 --> 00:05:51,854 18. 113 00:05:51,854 --> 00:05:52,670 16. 114 00:05:52,670 --> 00:05:54,570 >> Oh, Pierre on suur hääl täna. 115 00:05:54,570 --> 00:05:57,490 Ma võiksin öelda, et tänase sõnum oli väga oluline. 116 00:05:57,490 --> 00:05:57,990 -3. 117 00:05:57,990 --> 00:06:00,080 25. 118 00:06:00,080 --> 00:06:01,580 See on sõnum Annie ise. 119 00:06:01,580 --> 00:06:02,880 Pea meeles, et ei ütle kellelegi. 120 00:06:02,880 --> 00:06:07,840 121 00:06:07,840 --> 00:06:11,130 >> -Viis Sekundit hiljem, ma olen ainus tuba majast, kus poiss üheksa 122 00:06:11,130 --> 00:06:15,830 võiks istuda privaatsust ja dekodeerida. 123 00:06:15,830 --> 00:06:16,620 Ahaa! 124 00:06:16,620 --> 00:06:17,340 B! 125 00:06:17,340 --> 00:06:20,210 Läksin järgmine. 126 00:06:20,210 --> 00:06:23,300 E. esimene sõna on "olla." 127 00:06:23,300 --> 00:06:25,880 S. See oli tulemas lihtsam nüüd. 128 00:06:25,880 --> 00:06:28,400 U. 25. 129 00:06:28,400 --> 00:06:30,528 See on R. 130 00:06:30,528 --> 00:06:31,278 -Tule, Ralphie! 131 00:06:31,278 --> 00:06:31,861 Olen pean minema! 132 00:06:31,861 --> 00:06:33,182 -Ma Kohe maha, Ma! 133 00:06:33,182 --> 00:06:36,038 Gee viuhti. 134 00:06:36,038 --> 00:06:42,840 T. O. "Kindlasti" - kindlasti see, mida? 135 00:06:42,840 --> 00:06:44,770 Mis oli Little harva Annie üritab öelda? 136 00:06:44,770 --> 00:06:46,381 Kindlasti mida? 137 00:06:46,381 --> 00:06:47,825 >> -Randy On minema! 138 00:06:47,825 --> 00:06:48,866 Kas sa siis tulla? 139 00:06:48,866 --> 00:06:49,783 >> -Heaküll, Ema! 140 00:06:49,783 --> 00:06:51,786 Ma tulen kohe välja! 141 00:06:51,786 --> 00:06:53,606 Olin läheneme. 142 00:06:53,606 --> 00:06:55,550 Pinge oli kohutav. 143 00:06:55,550 --> 00:06:57,050 Mis see oli? 144 00:06:57,050 --> 00:06:59,905 Saatus planeedi võib vaekausil! 145 00:06:59,905 --> 00:07:01,736 >> -Ralphie, Randy minema! 146 00:07:01,736 --> 00:07:05,680 >> -Ma Oleks kohe, nutt valjusti! 147 00:07:05,680 --> 00:07:07,170 Peaaegu kohal! 148 00:07:07,170 --> 00:07:08,150 Minu sõrmed lendas. 149 00:07:08,150 --> 00:07:09,980 Minu meelest oli terase lõksu. 150 00:07:09,980 --> 00:07:11,496 Iga pooride vibreerima. 151 00:07:11,496 --> 00:07:13,268 See oli peaaegu selge! 152 00:07:13,268 --> 00:07:13,767 Jah. 153 00:07:13,767 --> 00:07:14,609 Jah. 154 00:07:14,609 --> 00:07:15,108 Jah. 155 00:07:15,108 --> 00:07:16,449 Jah. 156 00:07:16,449 --> 00:07:20,240 Kindlasti juua oma Ovaltine. 157 00:07:20,240 --> 00:07:20,740 Ovaltine? 158 00:07:20,740 --> 00:07:26,687 159 00:07:26,687 --> 00:07:27,520 Trullakas kaubandusliku? 160 00:07:27,520 --> 00:07:32,040 161 00:07:32,040 --> 00:07:34,920 Litsipurikas. 162 00:07:34,920 --> 00:07:35,890 >> [Taasesituse lõpetamiseks] 163 00:07:35,890 --> 00:07:39,650 >> ROB BOWDEN: Nii see on, kuidas Ovaltine seotud krüptoeelistused. 164 00:07:39,650 --> 00:07:42,290 Põhimõtteliselt CS50 lihtsalt reklaamitakse Ovaltine, et me saaksime 165 00:07:42,290 --> 00:07:44,400 olla vastik kaubik eest Ovaltine. 166 00:07:44,400 --> 00:07:44,900 Hästi. 167 00:07:44,900 --> 00:07:47,120 Nüüd tegelik arvutiteadus. 168 00:07:47,120 --> 00:07:50,670 Mäleta esmaspäeval pooleli jäime sukeldumine sügavamale stringid. 169 00:07:50,670 --> 00:07:52,820 Nii me tegelesime string "Zamyla." 170 00:07:52,820 --> 00:07:55,130 Ja me olime tunnistades asjaolu, et saame ravida 171 00:07:55,130 --> 00:07:57,510 "Zamyla" jadana tähemärki. 172 00:07:57,510 --> 00:07:59,740 Ja pidage meeles, et me õppisime sulg märke. 173 00:07:59,740 --> 00:08:01,995 Nii et kui see hoiti string "s", siis 174 00:08:01,995 --> 00:08:05,860 Kui me ütlesime s sulg 0, mis näitab kirja kapitali Z. 175 00:08:05,860 --> 00:08:09,790 Ja kui me ütlesime s sulg 1, et viitaks esimese väiketähed a, 176 00:08:09,790 --> 00:08:14,220 ja nii edasi kuni s klambri 5, mis näitavad viimase a. 177 00:08:14,220 --> 00:08:17,090 >> Nüüd pidage meeles, et pikkus string 6, 178 00:08:17,090 --> 00:08:23,220 kuid indeksid string on 0 kuni 5, Z kuni see kestab. 179 00:08:23,220 --> 00:08:28,650 Nii et see nüüd mahub suurem pilt arvuti mällu oma RAM. 180 00:08:28,650 --> 00:08:32,020 Nii kusagil programmi, mis näed arvuti 181 00:08:32,020 --> 00:08:34,780 peab meeles pidama, Zamyla kusagil mälu. 182 00:08:34,780 --> 00:08:36,029 Nii võib mul vabatahtlikuna? 183 00:08:36,029 --> 00:08:38,840 184 00:08:38,840 --> 00:08:40,181 Jah palun. 185 00:08:40,181 --> 00:08:50,120 186 00:08:50,120 --> 00:08:51,500 Ja milline on teie nimi? 187 00:08:51,500 --> 00:08:52,410 >> DEAN: Dean. 188 00:08:52,410 --> 00:08:53,550 >> ROB BOWDEN: Dean? 189 00:08:53,550 --> 00:08:54,910 Nice to meet you, Dean. 190 00:08:54,910 --> 00:08:58,240 Nii et tulge siia, ja me lähed on teil juhtida 191 00:08:58,240 --> 00:09:00,740 meie tore vahva kujundus mälu. 192 00:09:00,740 --> 00:09:05,950 Nüüd Mulle meeldib mõelda mälu nagu üks pikk riba baiti, 193 00:09:05,950 --> 00:09:11,090 aga lihtsalt kuvamise eesmärgil jagame lihtsalt ei vasakult paremale, ülevalt alla. 194 00:09:11,090 --> 00:09:11,590 OKEI? 195 00:09:11,590 --> 00:09:22,030 >> Nii et ma lähen näitama program-- Getstrings.c. 196 00:09:22,030 --> 00:09:25,760 Ja nii kõik see programm on teeme taotleb neli stringid 197 00:09:25,760 --> 00:09:28,830 alates kasutajale GetString ning seejärel printimise 198 00:09:28,830 --> 00:09:30,950 mida iganes, et esimene string sisestatakse oli. 199 00:09:30,950 --> 00:09:32,840 Me ignoreerides kaks kuni neli. 200 00:09:32,840 --> 00:09:33,610 OKEI. 201 00:09:33,610 --> 00:09:38,210 Nii siin now-- kui Ma esimesel nõudmisel s1. 202 00:09:38,210 --> 00:09:39,740 Nii olete arvuti. 203 00:09:39,740 --> 00:09:41,680 Ja sa rakendavad getString. 204 00:09:41,680 --> 00:09:46,710 Nii et sa küsida stringi mulle, ja ma ütlen, OK, Dean. 205 00:09:46,710 --> 00:09:47,900 Andke string "Dean." 206 00:09:47,900 --> 00:09:50,300 >> Nii kusagil mälust tuleb meeles pidada, "Dean." 207 00:09:50,300 --> 00:09:52,160 Nii kirjutada mällu kusagil. 208 00:09:52,160 --> 00:09:58,270 209 00:09:58,270 --> 00:09:59,210 Perfect. 210 00:09:59,210 --> 00:09:59,880 OKEI. 211 00:09:59,880 --> 00:10:01,740 Nüüd oleme S2. 212 00:10:01,740 --> 00:10:03,869 Ja s2 saab olema taotluse getString. 213 00:10:03,869 --> 00:10:05,160 Nii et ma lähen sisestada stringi. 214 00:10:05,160 --> 00:10:08,720 Ma lähen sisestage "Hannah." 215 00:10:08,720 --> 00:10:10,586 Nii kirjutab "Hannah" kusagil mällu. 216 00:10:10,586 --> 00:10:18,860 217 00:10:18,860 --> 00:10:19,360 Jah. 218 00:10:19,360 --> 00:10:23,000 A-H. 219 00:10:23,000 --> 00:10:25,550 >> OK, nii et nüüd s3. 220 00:10:25,550 --> 00:10:28,380 Ja see saab olema teise nõuda getString. 221 00:10:28,380 --> 00:10:37,020 Ja nii nüüd sisestada "Maria". 222 00:10:37,020 --> 00:10:37,520 Hästi. 223 00:10:37,520 --> 00:10:40,980 Ja siis on üks viimase Taotluse getString, s4. 224 00:10:40,980 --> 00:10:42,580 Niisiis, ma ei tea. 225 00:10:42,580 --> 00:10:45,640 Kuidas me läheme antidisestablishmentarianism. 226 00:10:45,640 --> 00:10:49,460 Nii sisestada, et mällu. 227 00:10:49,460 --> 00:10:50,400 Jah. 228 00:10:50,400 --> 00:10:53,970 Nii lihtsalt ei "Rob". 229 00:10:53,970 --> 00:10:54,560 >> OKEI. 230 00:10:54,560 --> 00:10:58,410 Nüüd explain-- miks tegid jätad need ruumid? 231 00:10:58,410 --> 00:11:01,340 Miks sa pead selle tühjaks ruumi siin, siin ja siin? 232 00:11:01,340 --> 00:11:05,170 233 00:11:05,170 --> 00:11:05,670 Jah. 234 00:11:05,670 --> 00:11:09,450 Nii märkate, kui ma lähen prindi s1-- nii et kui me 235 00:11:09,450 --> 00:11:11,890 oli "Hannah" töötab õigus kuni kõrval "Dean," 236 00:11:11,890 --> 00:11:14,360 kuidas me teame, kui string "Dean" lõpeb? 237 00:11:14,360 --> 00:11:19,470 Nii printida string s1 võib olla lihtsalt trükitud "DeanHannahMariaRob" 238 00:11:19,470 --> 00:11:22,720 kui see ei ole aimugi ja kui "Dean" tegelikult lõpeb. 239 00:11:22,720 --> 00:11:23,240 >> Hästi. 240 00:11:23,240 --> 00:11:27,650 Nii mälus, kuidas me tegelikult esindavad Selleks string 241 00:11:27,650 --> 00:11:29,940 on koos kurakriips null. 242 00:11:29,940 --> 00:11:32,620 Nii et see ruum on täpselt see, mida me tahtsime. 243 00:11:32,620 --> 00:11:34,040 See peaks olema längkriipsuga null. 244 00:11:34,040 --> 00:11:37,690 See on längkriipsuga null, ja see on längkriipsuga null. 245 00:11:37,690 --> 00:11:41,585 Ja sul võib olla vapustav auhinna jaoks on täiuslik vabatahtlikuna. 246 00:11:41,585 --> 00:11:44,910 247 00:11:44,910 --> 00:11:45,860 Võtke stressi pall! 248 00:11:45,860 --> 00:11:49,040 249 00:11:49,040 --> 00:11:49,700 >> OKEI. 250 00:11:49,700 --> 00:11:54,420 Nii et see tegelane kurakriips null on kuidas näidata lõpus stringi. 251 00:11:54,420 --> 00:11:57,120 See, kuidas, kui iga konkreetse programmi tahab printida string, 252 00:11:57,120 --> 00:11:59,760 see how-- Jäta õppisime strlen funktsiooni eelmisel nädalal? 253 00:11:59,760 --> 00:12:00,940 String pikkusega? 254 00:12:00,940 --> 00:12:03,770 See, kuidas string pikkusega suudab määrata, kui kaua string on. 255 00:12:03,770 --> 00:12:05,810 See lihtsalt hoiab iterating üle tähemärki 256 00:12:05,810 --> 00:12:08,217 kuni leiab kurakriips null iseloomu. 257 00:12:08,217 --> 00:12:11,050 Nii tähtsam realiseerida umbes längkriipsu null iseloomu 258 00:12:11,050 --> 00:12:14,950 on see esindatud kõik nullid bitti. 259 00:12:14,950 --> 00:12:18,980 Nii märkate, et see on selge nullist iseloomu. 260 00:12:18,980 --> 00:12:23,010 Nii null iseloomu, kui sa mäletad näitel, et ta andis lõpus 261 00:12:23,010 --> 00:12:27,360 loeng, kus tegelased map mina-- nagu kapitali Mapsi 65. 262 00:12:27,360 --> 00:12:29,130 Väiketähed Mapsi 97. 263 00:12:29,130 --> 00:12:30,890 Väiketähed b oleks 98. 264 00:12:30,890 --> 00:12:35,220 Nii et number 0 kaardid mina-- ma ei tean maha mu peas. 265 00:12:35,220 --> 00:12:36,400 44 või 45. 266 00:12:36,400 --> 00:12:37,890 Kusagil selles piirkonnas. 267 00:12:37,890 --> 00:12:40,850 >> Nii iseloomu 0 on tegelik number. 268 00:12:40,850 --> 00:12:44,350 Aga kurakriips null Kaardid kõigile nullbitid. 269 00:12:44,350 --> 00:12:46,380 Nii et vahet vahel kurakriips null, 270 00:12:46,380 --> 00:12:48,450 mis me nimetame null terminaator. 271 00:12:48,450 --> 00:12:53,210 Seal on vahet kurakriips null ja iseloomu null. 272 00:12:53,210 --> 00:12:54,350 >> Hästi. 273 00:12:54,350 --> 00:12:57,520 Nii räägib natuke rohkem stringe. 274 00:12:57,520 --> 00:13:01,470 Siis näeme siin see on, kuidas oleks sätestatud mälu. 275 00:13:01,470 --> 00:13:07,940 Nii et see idee stringid jadana of characters-- nii ametlikuks arvuti 276 00:13:07,940 --> 00:13:10,750 sciency tähtaeg jada on massiiv. 277 00:13:10,750 --> 00:13:13,790 Nii et me kutsuksime string array tähemärki. 278 00:13:13,790 --> 00:13:17,770 Ja seal on tegelikult muud andmed tüübid, mida me saame teha massiivid välja. 279 00:13:17,770 --> 00:13:19,975 >> Nii et motiveerida seda, vaata näiteks. 280 00:13:19,975 --> 00:13:22,810 281 00:13:22,810 --> 00:13:29,812 Me nimetame seda ages0.c ma tulen kopeeri ja kleebi meie malli. 282 00:13:29,812 --> 00:13:32,470 283 00:13:32,470 --> 00:13:33,410 OKEI. 284 00:13:33,410 --> 00:13:39,378 Nii see programm, mida me tahame teha, on haarata vanuses 285 00:13:39,378 --> 00:13:45,160 Kolme õpilased käigus. 286 00:13:45,160 --> 00:13:49,240 Saame teada, et int age-- ja nüüd ma lähen ütlen 0. 287 00:13:49,240 --> 00:13:53,140 Nii võiksite öelda age1, kuid eesmärkidel me näeme varsti, 288 00:13:53,140 --> 00:13:57,187 Ma ütlen, int age0 võrdub GetInt. 289 00:13:57,187 --> 00:13:59,270 Nii sama kõne GetInt et me oleme kasutanud ma 290 00:13:59,270 --> 00:14:01,561 ei juhtu olema ajendades öeldes: "Anna mulle eas." 291 00:14:01,561 --> 00:14:03,120 Aga seda nõuab. 292 00:14:03,120 --> 00:14:06,510 >> Ja age1 võrdub GetInt. 293 00:14:06,510 --> 00:14:09,600 Ja int east2 võrdub GetInt. 294 00:14:09,600 --> 00:14:14,070 Niisiis, jälle kolm üliõpilastele, kuid lõpuks muutuja indeksid 295 00:14:14,070 --> 00:14:16,890 on age0 läbi east2. 296 00:14:16,890 --> 00:14:17,550 OKEI. 297 00:14:17,550 --> 00:14:23,960 Nii et see programm teha mida iganes tahame koos age0, age1 ja east2, 298 00:14:23,960 --> 00:14:27,670 kuid see programm lõpuks töötab kolm üliõpilast. 299 00:14:27,670 --> 00:14:28,380 >> OKEI. 300 00:14:28,380 --> 00:14:32,110 Nüüd kui ma tahan nelja õpilased? 301 00:14:32,110 --> 00:14:36,000 Noh, ma lähen minema tagasi minu koodi muuta kommentaar, 302 00:14:36,000 --> 00:14:39,840 ja nüüd on meil int east3 võrdub GetInt. 303 00:14:39,840 --> 00:14:40,610 OKEI. 304 00:14:40,610 --> 00:14:43,660 Seega, kes näeb siin probleem? 305 00:14:43,660 --> 00:14:47,310 Milles on probleem Selle omamoodi setup? 306 00:14:47,310 --> 00:14:47,810 Jah. 307 00:14:47,810 --> 00:14:53,110 308 00:14:53,110 --> 00:14:53,610 Jah. 309 00:14:53,610 --> 00:14:56,360 Nii me luua muutuja igale õpilasele. 310 00:14:56,360 --> 00:15:00,140 Nüüd töötab, kuid lõpuks kui ma nüüd 311 00:15:00,140 --> 00:15:06,500 öelda: "Ma tahan haarata aastaselt Kaheksa õpilased või 16 õpilast 312 00:15:06,500 --> 00:15:11,340 või aga paljud üliõpilased sadu õpilasi CS50 313 00:15:11,340 --> 00:15:16,750 või tuhanded tudengid loengusse või miljardeid inimesi maailmas? 314 00:15:16,750 --> 00:15:19,130 Nii lõppkokkuvõttes see ei ole jätkusuutlik. 315 00:15:19,130 --> 00:15:21,990 Iga kord, kui näed ennast kopeerida ja kleepimine kood, nagu see, 316 00:15:21,990 --> 00:15:25,050 sa peaksid üldiselt tunda et seal on parem. 317 00:15:25,050 --> 00:15:31,290 >> Nii et see on koht, kus tutvustame massiivi deklaratsiooni. 318 00:15:31,290 --> 00:15:34,564 Nii et kui teil kuulutada massiivi, see on see, mida üldiselt formaadis 319 00:15:34,564 --> 00:15:35,480 läheb nägema. 320 00:15:35,480 --> 00:15:36,664 Me läheme öelda tüübist. 321 00:15:36,664 --> 00:15:38,830 ja siis me läheme anda nime, mis massiivi, 322 00:15:38,830 --> 00:15:41,150 nagu me defineerime tahes muutuja. 323 00:15:41,150 --> 00:15:43,980 Ja siis lõpuks me kasutame see sulg märke uuesti 324 00:15:43,980 --> 00:15:47,480 kuid mis erinevad oluliselt kuidas me seda kasutada varem. 325 00:15:47,480 --> 00:15:51,860 >> Nii et siin see näeb välja nagu tavaline muutuja deklaratsiooni, et me oleme näinud. 326 00:15:51,860 --> 00:15:54,890 Nii oleme näinud int x semikoolon enne. 327 00:15:54,890 --> 00:16:00,020 Noh nüüd me võime näha midagi nagu int x sulgudes 5. 328 00:16:00,020 --> 00:16:04,020 Ja paneb seda ideed GetInt programm, mis me have-- 329 00:16:04,020 --> 00:16:08,850 et saaksime rakendada Selle samamoodi. 330 00:16:08,850 --> 00:16:13,630 >> Oletame, et CS kaldume kasutama n, kui mitu midagi. 331 00:16:13,630 --> 00:16:16,150 Nii et siin me läheme salvestada neli õpilastele. 332 00:16:16,150 --> 00:16:25,960 Ja nüüd saame öelda, int vanus sulg n-- ole päris saada seda yet-- 333 00:16:25,960 --> 00:16:32,210 kuulutada massiivi neli õpilastele. 334 00:16:32,210 --> 00:16:38,050 Niisiis, kuidas see välja näeb Mälu on sarnane sellele. 335 00:16:38,050 --> 00:16:39,570 Selge see. 336 00:16:39,570 --> 00:16:46,606 Ja me ei kavatse olla kuskil in memory-- panen sinna üles. 337 00:16:46,606 --> 00:16:52,690 338 00:16:52,690 --> 00:16:53,808 >> Nii kusagil mälu. 339 00:16:53,808 --> 00:16:58,760 340 00:16:58,760 --> 00:16:59,727 Üks kaks kolm neli. 341 00:16:59,727 --> 00:17:03,383 342 00:17:03,383 --> 00:17:09,849 Meil on neli täisarvud järjest selle massiivi neli täisarvud. 343 00:17:09,849 --> 00:17:13,820 Nii, praegu, milline on suurus üks neist lahtrid? 344 00:17:13,820 --> 00:17:17,190 345 00:17:17,190 --> 00:17:17,690 Jah. 346 00:17:17,690 --> 00:17:18,390 See on neli baiti. 347 00:17:18,390 --> 00:17:19,690 See on 32 bitti. 348 00:17:19,690 --> 00:17:22,310 Nüüd on see erinev massiivist, et me 349 00:17:22,310 --> 00:17:24,020 nägime, massiivi tähemärki. 350 00:17:24,020 --> 00:17:28,540 String iga kast oli ainult üks bait, sest iseloom on ainult üks bait. 351 00:17:28,540 --> 00:17:32,170 Aga array täisarvud, iga kast peab olema neli baiti, et 352 00:17:32,170 --> 00:17:34,060 sobib kogu täisarv. 353 00:17:34,060 --> 00:17:37,197 Nii et see on see, mida massiivi Nelja ints näeks. 354 00:17:37,197 --> 00:17:40,510 355 00:17:40,510 --> 00:17:43,870 >> Ja siis jälle koodi. 356 00:17:43,870 --> 00:17:47,460 Nüüd tahame tegelikult poest täisarvud arvesse, et massiivi. 357 00:17:47,460 --> 00:17:53,470 Nüüd on see väga, väga, väga ühine joon, mis mingil hetkel 358 00:17:53,470 --> 00:17:54,680 saada lihaste mälu. 359 00:17:54,680 --> 00:17:56,710 Nii int i võrdub 0. 360 00:17:56,710 --> 00:17:57,940 i vähem kui n. 361 00:17:57,940 --> 00:18:01,850 i pluss pluss. 362 00:18:01,850 --> 00:18:05,790 Vanuseklassi i võrdub GetInt. 363 00:18:05,790 --> 00:18:15,100 >> Nii et see silmus, sellisel kujul, Sa peaksid saama väga harjunud. 364 00:18:15,100 --> 00:18:20,010 Nii et see on üldiselt kuidas me Käi peaaegu iga massiivi. 365 00:18:20,010 --> 00:18:23,690 Nüüd märkate sellist selgitab, miks algusest 366 00:18:23,690 --> 00:18:29,870 meil ei olnud, silmad lähen int i võrdub 1, i on väiksem või võrdne 10. 367 00:18:29,870 --> 00:18:34,200 Põhjus on selles, et alates null teeb seda tööd hästi massiivid. 368 00:18:34,200 --> 00:18:36,270 Nii massiivid on null indekseeritud. 369 00:18:36,270 --> 00:18:40,360 Kui see massiiv on pikkusega 4, indeksid on 0 kuni 3. 370 00:18:40,360 --> 00:18:42,880 >> Nii läbi esimese iteratsiooni see silmus 371 00:18:42,880 --> 00:18:49,930 me ei kavatse olla milles vanuses sulg 0 võrdne kõne GetInt. 372 00:18:49,930 --> 00:18:52,440 Mida iganes ma juhtunud sisestada klaviatuuri. 373 00:18:52,440 --> 00:18:56,970 Teises pass, me oleme milles age1 võrdne GetInt. 374 00:18:56,970 --> 00:18:58,230 Kolmas pass, east2. 375 00:18:58,230 --> 00:18:59,880 Lõplik pass east3. 376 00:18:59,880 --> 00:19:05,750 Nii et kui esimeses pass silmuse Ma sisestage number 4 klaviatuuri, 377 00:19:05,750 --> 00:19:07,740 siis me lisada 4 siin. 378 00:19:07,740 --> 00:19:11,470 Kui teisel pass ma sisestan 50, me paneme 50 siin. 379 00:19:11,470 --> 00:19:15,180 Kolmandal pass võin sisestage negatiivne 1, negatiivne 1, 380 00:19:15,180 --> 00:19:21,810 ja siis lõpuks, kui ma sisestan 0-- ja Nüüd pidage meeles, et see oli indeks kolm. 381 00:19:21,810 --> 00:19:25,350 >> Pärast me loop tagasi, i läheb suurendatakse kuni 4. 382 00:19:25,350 --> 00:19:27,770 i ei ole enam alla n, mis on 4. 383 00:19:27,770 --> 00:19:29,840 Ja me murda läbi silmuse. 384 00:19:29,840 --> 00:19:32,578 Mis siis oleks viga on? 385 00:19:32,578 --> 00:19:38,140 386 00:19:38,140 --> 00:19:38,729 [Kuuldamatu]? 387 00:19:38,729 --> 00:19:39,604 Sihtrühm: [kuuldamatu] 388 00:19:39,604 --> 00:19:45,880 389 00:19:45,880 --> 00:19:46,400 >> Jah. 390 00:19:46,400 --> 00:19:51,550 Nii massiivi ainult neljas kohas mis tähendab näitajatena 0 kuni 3. 391 00:19:51,550 --> 00:19:55,630 Nii et kui see nii oleks, oleksin võtma väärtus 4 mingil hetkel. 392 00:19:55,630 --> 00:20:00,910 vanuseklassi 4 hakatakse milles mis iganes juhtub olema siin 393 00:20:00,910 --> 00:20:02,920 mida ma pean ütlema, sisestage 6. 394 00:20:02,920 --> 00:20:05,010 See oleks selle määramine kuni 6. 395 00:20:05,010 --> 00:20:06,560 >> Aga me ei tea, mis on siin. 396 00:20:06,560 --> 00:20:08,836 See ei ole mälu et meil oli juurdepääs. 397 00:20:08,836 --> 00:20:10,710 Nii et kui sa mäletad Eelmise loengu 398 00:20:10,710 --> 00:20:14,350 ta prindib väärtused Zamyla ja mingil hetkel ta tabas killustatuse 399 00:20:14,350 --> 00:20:17,990 süü. Nii siis ilmselt näeme palju killustatust vigu kui 400 00:20:17,990 --> 00:20:20,530 rakendada mõningaid probleemi komplekti. 401 00:20:20,530 --> 00:20:24,950 Aga see on üks viise, kuidas Võid sattuda segmenteerimine 402 00:20:24,950 --> 00:20:28,540 süü, kui hakkate juurdepääsu mälu võimalusi, mida ei tohiks olla. 403 00:20:28,540 --> 00:20:34,117 Nii et me ei ole juurdepääsu Selle asukoht ja see on viga. 404 00:20:34,117 --> 00:20:37,760 405 00:20:37,760 --> 00:20:40,190 >> Nii et see on parem. 406 00:20:40,190 --> 00:20:45,820 Nüüd on veel väike küsimus selle koodiga. 407 00:20:45,820 --> 00:20:50,720 Ja see on põhimõtteliselt, et me oleme ikka ummikus neli õpilastele. 408 00:20:50,720 --> 00:20:52,940 Nüüd, kui ma tahan kasutada kaheksa üliõpilased, OK. 409 00:20:52,940 --> 00:20:54,350 See ei ole nii suur asi. 410 00:20:54,350 --> 00:20:58,120 Ma ei lähe, muuta kommentaarid, muuta n. 411 00:20:58,120 --> 00:20:59,760 Nüüd töötab kaheksa õpilastele. 412 00:20:59,760 --> 00:21:02,190 Kui ma koostada selle ja joosta see, et see näitab mind-- 413 00:21:02,190 --> 00:21:07,870 ta palub täisarvud kaheksa õpilased ja siis lihtsalt tööd. 414 00:21:07,870 --> 00:21:11,850 Aga see on vähem kui ideaalne vaja kompileerida programmi iga kord 415 00:21:11,850 --> 00:21:15,960 Ma tahan, et muuta õpilaste arv et ma tahan siseneda vanuses. 416 00:21:15,960 --> 00:21:22,990 >> Nii et lõplik paranemine see, kui me näeme siin-- me oleme 417 00:21:22,990 --> 00:21:26,177 läheb taotleda inimeste arv. 418 00:21:26,177 --> 00:21:28,010 Siin on mitmeid inimesi tuba 419 00:21:28,010 --> 00:21:29,880 või vanuses inimesi ruumis. 420 00:21:29,880 --> 00:21:33,300 Aga me ei kavatse taotleda number inimesed ruumis kasutaja. 421 00:21:33,300 --> 00:21:36,171 Nii et see on täpselt sama do-ajal loop, et me oleme näinud. 422 00:21:36,171 --> 00:21:37,920 See on täpselt sama do-samas silmus, et sa 423 00:21:37,920 --> 00:21:40,050 võib rakendada probleemi komplekti. 424 00:21:40,050 --> 00:21:43,102 Nii niikaua nad sisestamisest n väiksem kui 1, 425 00:21:43,102 --> 00:21:45,310 nii et ju olema Vähemalt üks inimene toas. 426 00:21:45,310 --> 00:21:47,407 Niikaua kui nad on sisestamisest n väiksem kui 1, 427 00:21:47,407 --> 00:21:48,990 siis me ei kavatse hoida küsib uuesti. 428 00:21:48,990 --> 00:21:50,906 Palun sisestage number inimesed ruumis. 429 00:21:50,906 --> 00:21:53,550 Nüüd, kui meil on mitmeid inimesi room-- 430 00:21:53,550 --> 00:21:58,020 nii et ma võiks sisestage et on 200 inimest selles ruumis. 431 00:21:58,020 --> 00:22:05,480 Siis siin me läheme tulla ja kuulutada massiivi suurus 200. 432 00:22:05,480 --> 00:22:10,220 Me kuulutatakse massiiv, mis on piisavalt suur, et hoidke 200 vanuses. 433 00:22:10,220 --> 00:22:15,370 Tulevad alla, see on silmus et sa saad väga harjunud. 434 00:22:15,370 --> 00:22:19,490 Nii iterating üle selle massiiv, määrates igas kohas 435 00:22:19,490 --> 00:22:23,020 et massiivi täisarv, ja siis lõpuks siin me oleme 436 00:22:23,020 --> 00:22:28,340 lihtsalt saada näide iterating üle, mis rida, ei määrata väärtused, 437 00:22:28,340 --> 00:22:30,150 kuid juurdepääsu väärtusi. 438 00:22:30,150 --> 00:22:33,810 >> Nii siin me näeme, et me ütlevad, aasta pärast, 439 00:22:33,810 --> 00:22:40,470 isik% i on% i-aastane, kus esimene% i on i pluss 1. 440 00:22:40,470 --> 00:22:43,010 Nii et ma see indeks muutuja. 441 00:22:43,010 --> 00:22:49,420 Ja teine% i läheb olla salvestatud väärtuse vanuses massiivi pluss 1. 442 00:22:49,420 --> 00:22:54,217 Nii et see pluss 1 on lihtsalt sellepärast, et me oleme saying-- see pluss 1, vanuses i pluss 1. 443 00:22:54,217 --> 00:22:57,050 See pluss 1 on lihtsalt sellepärast, et me oleme öeldes, aasta pärast isiku 444 00:22:57,050 --> 00:22:58,280 on see vana. 445 00:22:58,280 --> 00:23:01,080 >> Miks see i pluss 1? 446 00:23:01,080 --> 00:23:04,064 Miks meil on pluss 1 on? 447 00:23:04,064 --> 00:23:04,564 Jah. 448 00:23:04,564 --> 00:23:07,410 449 00:23:07,410 --> 00:23:07,930 Jah. 450 00:23:07,930 --> 00:23:10,510 Seega pidage meeles massiivid on null indekseeritud. 451 00:23:10,510 --> 00:23:14,840 Nii et kui me trükkimiseks välja keegi lihtsalt lugeda väljund, 452 00:23:14,840 --> 00:23:19,380 siis ilmselt nad tahavad näha midagi nagu inimese üks, isik number üks, 453 00:23:19,380 --> 00:23:21,160 on 20 aastat vana. 454 00:23:21,160 --> 00:23:23,570 Isik number kaks on 15 aastat vana. 455 00:23:23,570 --> 00:23:27,420 Nad ei soovi näha inimene number null on 15 aastat vana. 456 00:23:27,420 --> 00:23:36,460 >> Nii koostades ja lihtsalt vaadata mida tundub like-- Loo ruumi. 457 00:23:36,460 --> 00:23:43,560 Tee vanuses koostab. 458 00:23:43,560 --> 00:23:45,080 Jooks vanuses. 459 00:23:45,080 --> 00:23:46,580 Me näeme inimeste arv toas. 460 00:23:46,580 --> 00:23:48,850 Nii et ma ütlen on kolm inimest toas. 461 00:23:48,850 --> 00:23:54,000 Age of isik number üks, oletame 15, 20, 25. 462 00:23:54,000 --> 00:23:59,680 Ja nüüd ma ütlen aastas alates nüüd nad on 16, 21, 26. 463 00:23:59,680 --> 00:24:02,900 Vaatame, mis see töötab n, mis ei ole võrdne 3. 464 00:24:02,900 --> 00:24:07,940 Nii et kui ma ütlen inimeste arv on 5, üks, kaks, kolm, kaks, üks, aasta pärast 465 00:24:07,940 --> 00:24:11,170 nad olla kaks, kolm, nelja, kolme, kahe aasta vanused. 466 00:24:11,170 --> 00:24:16,500 Nii et ma võiks sama lihtsalt on n 10000. 467 00:24:16,500 --> 00:24:21,270 Nüüd ma siis istun siin üsna Mõne aja sisestamise vanuses, kuid see toimib. 468 00:24:21,270 --> 00:24:26,000 >> Nüüd mälu kusagil me on massiivi suurus 10000, 469 00:24:26,000 --> 00:24:28,830 nii lõpuks 40000 baiti, sest seal on 470 00:24:28,830 --> 00:24:31,222 neljabaidilist neis täisarvud. 471 00:24:31,222 --> 00:24:33,180 Nii et massiivi suurus 10000 kus saame 472 00:24:33,180 --> 00:24:36,201 talletada vanuses need 10.000 inimest. 473 00:24:36,201 --> 00:24:36,700 Hästi. 474 00:24:36,700 --> 00:24:40,070 Küsimused kõik see? 475 00:24:40,070 --> 00:24:41,892 Jah. 476 00:24:41,892 --> 00:24:43,350 Mis siis, kui sa andsid negatiivse numbriga? 477 00:24:43,350 --> 00:24:44,870 Vaatame, mis juhtub. 478 00:24:44,870 --> 00:24:49,320 Nii selles case-- number inimeste toas, negatiivne. 479 00:24:49,320 --> 00:24:52,580 See jättis, sest siin me juhtuda 480 00:24:52,580 --> 00:24:57,180 tuleb käitlemise asjaolu, et kui n on vähem kui üks läheme küsita. 481 00:24:57,180 --> 00:25:01,780 Kui püüad tunnistada massiivi negatiivne suurus, 482 00:25:01,780 --> 00:25:03,950 see tavaliselt ei tööta. 483 00:25:03,950 --> 00:25:05,570 >> Nii proovime. 484 00:25:05,570 --> 00:25:08,000 Ignoreerime iganes väärtust nad sisend n 485 00:25:08,000 --> 00:25:10,571 ja just öelda, int vanuses negatiivne. 486 00:25:10,571 --> 00:25:12,410 Vaatame, kas ta ka koostab. 487 00:25:12,410 --> 00:25:14,100 Ma pole kindel. 488 00:25:14,100 --> 00:25:14,920 Ei. 489 00:25:14,920 --> 00:25:18,280 Nii vanuses on deklareeritud kui massiivi negatiivne suurus. 490 00:25:18,280 --> 00:25:22,540 Nii algul ta tunnistab massiivi ei saa olla negatiivne suurus ja lükkab selle tagasi. 491 00:25:22,540 --> 00:25:26,840 Nüüd, kui me ei saa hakkama Selle do-samas silmus õigesti, 492 00:25:26,840 --> 00:25:28,810 kui me ei kontrolliks kui n on väiksem kui 1-- 493 00:25:28,810 --> 00:25:32,690 oletame me lihtsalt ei ole see üldse 494 00:25:32,690 --> 00:25:35,940 ja selle asemel, me lihtsalt haarata täisarv. 495 00:25:35,940 --> 00:25:40,710 Ükskõik, milline see täisarv on, Me kinnitame massiivi, mis suurus. 496 00:25:40,710 --> 00:25:44,250 >> Nii koostaja ei saa võimalik kurdavad nüüd. 497 00:25:44,250 --> 00:25:48,780 Kui ma koostada see-- nii et see ei saa kurta, 498 00:25:48,780 --> 00:25:51,480 sest see ei tea, et ma olen läheb sisestage negatiivne arv, 499 00:25:51,480 --> 00:25:52,550 mis võib olla vigane. 500 00:25:52,550 --> 00:25:54,633 Sest kõik see teab, ma võin sisestage positiivne number, 501 00:25:54,633 --> 00:25:56,000 mis on täiesti kehtiv. 502 00:25:56,000 --> 00:26:01,090 Nii et ma kujutan ette, kui ma sisestan negatiivne 1 inimesed toas, segmenteerimine süü. 503 00:26:01,090 --> 00:26:06,040 >> Nii, OK. 504 00:26:06,040 --> 00:26:13,160 Lisame selle taga lihtsalt hoida seda, mida ta algselt oli. 505 00:26:13,160 --> 00:26:15,640 Nii et aegade. 506 00:26:15,640 --> 00:26:18,120 Nüüd, kui ma tahan proovida negatiivne age-- nii et vaatame 507 00:26:18,120 --> 00:26:19,710 öelda on viis inimest toas. 508 00:26:19,710 --> 00:26:23,180 Age of isik number üks on negatiivne 4 inimesele kolm 509 00:26:23,180 --> 00:26:26,500 on null, inimene three-- OK. 510 00:26:26,500 --> 00:26:29,850 Nii et siin, aasta pärast, isik number üks on negatiivne 3 aastat vana. 511 00:26:29,850 --> 00:26:32,830 Nii ilmselt ei ole mõtet. 512 00:26:32,830 --> 00:26:37,220 Aga see on lihtsalt sellepärast, et otsin kell kood kõik me teeme 513 00:26:37,220 --> 00:26:40,260 taotleb GetInt. 514 00:26:40,260 --> 00:26:44,110 >> Nüüd, kui meil oleks olnud GetPositiveInt funktsiooni 515 00:26:44,110 --> 00:26:49,690 või olime lihtsalt lihtsalt seda teinud omamoodi sama samas silmus sinna, 516 00:26:49,690 --> 00:26:52,340 siis see töötaks täiesti korras. 517 00:26:52,340 --> 00:26:54,200 Aga sellel konkreetsel Juhul, me lihtsalt ei ole 518 00:26:54,200 --> 00:26:57,772 juhtub olema käitlemise negatiivseid väärtusi. 519 00:26:57,772 --> 00:26:59,147 Muid küsimusi massiivid? 520 00:26:59,147 --> 00:27:02,290 521 00:27:02,290 --> 00:27:03,250 OKEI. 522 00:27:03,250 --> 00:27:09,380 >> Nii et me oleme nüüd näinud massiivid. 523 00:27:09,380 --> 00:27:12,500 Ja me ei kavatse vaja kasutada seda käsurea argumente. 524 00:27:12,500 --> 00:27:14,680 Nii probleem seatud two-- Ma tean, et paljud teist 525 00:27:14,680 --> 00:27:18,040 võiks siiski töötab probleem komplekt üks, kuid probleem seatud kaks on tulemas. 526 00:27:18,040 --> 00:27:22,260 In probleem seatud kaks, sa lähed tuleb tegemist stringid, massiivid, 527 00:27:22,260 --> 00:27:23,950 ja käsurea argumente. 528 00:27:23,950 --> 00:27:26,270 >> Millised on käsurea argumente? 529 00:27:26,270 --> 00:27:29,570 Nüüd näete maha siin väike teaser, millised täpselt on 530 00:27:29,570 --> 00:27:30,950 saab olema juhtub. 531 00:27:30,950 --> 00:27:32,950 Me näeme int main, inc Argc, string argv sulgudes. 532 00:27:32,950 --> 00:27:34,560 533 00:27:34,560 --> 00:27:38,130 Nii et kõigepealt proovime tõlgendada mida see üritab öelda. 534 00:27:38,130 --> 00:27:40,800 Nüüd OK. 535 00:27:40,800 --> 00:27:44,637 >> Nii käsurea siis peaks olema harjuda mõned neist käskudest 536 00:27:44,637 --> 00:27:48,580 nüüd, ja sa oled ilmselt joosta cd terminali ees. 537 00:27:48,580 --> 00:27:52,100 Nii et kui me ütleme, cd pset1, sa tead, et see peaks 538 00:27:52,100 --> 00:27:55,050 olla muutuvas arvesse pset1 kataloogi. 539 00:27:55,050 --> 00:27:59,120 >> Nüüd märkate, et olete kunagi kirjutatud programmi nagu see varem. 540 00:27:59,120 --> 00:28:03,120 Iga programm, et olete kirjutanud, sa läheks, ütleme, dot kaldkriips Mario, 541 00:28:03,120 --> 00:28:06,779 dot kaldkriips ahne, ja siis võib teilt sisendit. 542 00:28:06,779 --> 00:28:08,570 Nüüd, see pole see, mida muutus kataloog teeb. 543 00:28:08,570 --> 00:28:12,770 Kui sa jooksed cd, see ei ole siis öelda, mis kataloog sa tahad cd? 544 00:28:12,770 --> 00:28:17,200 Selle asemel, sa lihtsalt öelda, cd pset1 ja see lihtsalt läheb pset1 kataloogi. 545 00:28:17,200 --> 00:28:20,430 >> Nii sarnaselt meil on ka teisi näiteid. 546 00:28:20,430 --> 00:28:21,540 teha tere. 547 00:28:21,540 --> 00:28:25,760 Kui sa jooksed teha, see ei ole siis öelda, mis programmi sa tahaksid teha? 548 00:28:25,760 --> 00:28:29,620 Sa lihtsalt öelda, on käsurea teha tere. 549 00:28:29,620 --> 00:28:31,060 >> Move on teine ​​näide. 550 00:28:31,060 --> 00:28:34,840 See üks me liigutades mario.c esitada kuni ühe kataloogi. 551 00:28:34,840 --> 00:28:38,060 Nüüd me teame seda näiteks me tõesti kulgeb kaks argumenti. 552 00:28:38,060 --> 00:28:42,090 Seal mario.c esimese argumendina, ja dot dot on teine ​​argument. 553 00:28:42,090 --> 00:28:46,140 Ja siis, kui sa jooksed teha, siis näha, et tõesti pikk käsk LINE 554 00:28:46,140 --> 00:28:50,580 et tõesti pikk käsk trükitud käsurea. 555 00:28:50,580 --> 00:28:53,590 Nii et pikka command-- seda on vaid lühikese osa sellest, 556 00:28:53,590 --> 00:28:56,090 kuid nüüd on meil kolm käsurea argumente. 557 00:28:56,090 --> 00:28:59,750 Dot kriips null, hello, ja hello.c. 558 00:28:59,750 --> 00:29:03,497 >> Nii et need on käsurea argumente, argumendid 559 00:29:03,497 --> 00:29:05,580 et sa möödaminnes juures käsurida, nii et see 560 00:29:05,580 --> 00:29:08,680 ei pea küsitakse kui sa käivitada programmi. 561 00:29:08,680 --> 00:29:13,090 Oleks masendav, kui siis, kui sa jooksid kolisevad ta ütles: "OK, 562 00:29:13,090 --> 00:29:15,630 mis program-- mis file sa koostamisel? 563 00:29:15,630 --> 00:29:17,010 Hello.c. 564 00:29:17,010 --> 00:29:19,440 Mis lipud eks nagu siseneda? kriips o. 565 00:29:19,440 --> 00:29:21,190 Mida sa tahaksid fail, mida nimetatakse? 566 00:29:21,190 --> 00:29:21,690 tere. 567 00:29:21,690 --> 00:29:25,290 Ei, sa lihtsalt kulgema rõkkama kriips o hello hello.c. 568 00:29:25,290 --> 00:29:28,820 >> Nii tagasi vaadates seda. 569 00:29:28,820 --> 00:29:32,920 Nüüd argc-- Argc on argument loeb. 570 00:29:32,920 --> 00:29:36,620 See arv käsurea argumendid sisestatud käsurea. 571 00:29:36,620 --> 00:29:39,720 Noh, argv-- tehniliselt V tähistab vektor, 572 00:29:39,720 --> 00:29:41,460 mis sisuliselt tähendab massiivi. 573 00:29:41,460 --> 00:29:42,680 Aga sa võid ignoreerida seda. 574 00:29:42,680 --> 00:29:47,540 Argv-- meil string argv, nii string argv sulgudes. 575 00:29:47,540 --> 00:29:50,150 Nii et see on teises vormis Sulgudes sa ei ole näinud. 576 00:29:50,150 --> 00:29:52,300 Nii oleme näinud sulg märke, kui me oleme öelnud, 577 00:29:52,300 --> 00:29:53,970 nagu, string s võrdub Zamyla. 578 00:29:53,970 --> 00:29:56,910 s sulg 0 pöördub iseloomu Z. 579 00:29:56,910 --> 00:30:00,720 >> Me oleme näinud ka sulgudes, kui me ütlesime int vanuses ümbritsevad 5. 580 00:30:00,720 --> 00:30:03,160 See kuulutati massiivi suurus 5. 581 00:30:03,160 --> 00:30:06,280 Nii et siin on versioon Sulgudes me ei ole näinud. 582 00:30:06,280 --> 00:30:09,630 Nii selline string argv et Oleks täiesti tuttav 583 00:30:09,630 --> 00:30:12,050 et see oleks lihtsalt string. 584 00:30:12,050 --> 00:30:14,520 Nüüd sulgudes näitavad et see on maatriks. 585 00:30:14,520 --> 00:30:19,920 Nii string argv sulgudes vahendid et argv on massiivi stringe. 586 00:30:19,920 --> 00:30:22,540 Nüüd tehniliselt string On hulgaliselt tähemärke. 587 00:30:22,540 --> 00:30:26,400 Nii et see on nüüd massiivi massiivi tähemärki. 588 00:30:26,400 --> 00:30:31,490 Aga see on palju lihtsam mõelda see lihtsalt massiivi stringe. 589 00:30:31,490 --> 00:30:34,900 >> Miks võiks sulgudes olla tühi? 590 00:30:34,900 --> 00:30:38,170 Nagu, miks ei saa me öelda, sulg 5, sulg n? 591 00:30:38,170 --> 00:30:40,700 592 00:30:40,700 --> 00:30:41,200 Jah. 593 00:30:41,200 --> 00:30:43,731 594 00:30:43,731 --> 00:30:44,230 Jah. 595 00:30:44,230 --> 00:30:46,396 Me ei tea, kui palju sisendite seal ei kavatse olla. 596 00:30:46,396 --> 00:30:53,560 Nii et kui me vaatame rõkkama näiteks Me ütleme kolisevad kriips o hello hello.c. 597 00:30:53,560 --> 00:30:56,710 Sel juhul ei juhtu olema kolm käsurea argumente. 598 00:30:56,710 --> 00:31:00,522 Ja nii brackets-- me näeme teises ei oleks kolm. 599 00:31:00,522 --> 00:31:01,730 See on tehniliselt oleks neli. 600 00:31:01,730 --> 00:31:04,030 Aga sulgudes, oleksime ütleme, on kolm. 601 00:31:04,030 --> 00:31:08,220 Aga nüüd, kui me vaatasime liikuda mario.c dot dot, sulgudes 602 00:31:08,220 --> 00:31:09,760 me tahaks panna kaks neist. 603 00:31:09,760 --> 00:31:12,884 >> Ja seal on palju käske, on muutuv arv käsurea 604 00:31:12,884 --> 00:31:13,620 argumente. 605 00:31:13,620 --> 00:31:17,430 Mida see versiooni sulg tähistus näitab, 606 00:31:17,430 --> 00:31:20,820 on see, et argv on massiivi stringe. 607 00:31:20,820 --> 00:31:24,360 Aga me ei tea, kui palju stringid on selles massiivi. 608 00:31:24,360 --> 00:31:27,090 Ja kuidas me siis teame, kuidas palju string on massiiv? 609 00:31:27,090 --> 00:31:28,870 See mõte Argc. 610 00:31:28,870 --> 00:31:32,300 Argc ütleb meile, kui kaua argv on. 611 00:31:32,300 --> 00:31:36,500 >> Nii et viimane asi, mida meeles pidada, et tehniliselt 612 00:31:36,500 --> 00:31:40,820 käsk ise moodustab ühe on käsurea argumente. 613 00:31:40,820 --> 00:31:45,330 Nii cd pset1 on kaks käsurea argumente. 614 00:31:45,330 --> 00:31:50,260 Programm iseenesest, cd, ja seejärel tegelik argument osa sellest, pset1. 615 00:31:50,260 --> 00:31:54,490 Iga programm, mis olete kirjutanud seni on olnud üks käsurea argument-- dot 616 00:31:54,490 --> 00:31:55,320 kaldkriips Mario. 617 00:31:55,320 --> 00:31:57,350 See on ainus käsurea argument. 618 00:31:57,350 --> 00:32:00,900 >> Nüüd vaadates rõkkama kriips o hello hello.c. 619 00:32:00,900 --> 00:32:01,905 Mis on Argc? 620 00:32:01,905 --> 00:32:05,260 621 00:32:05,260 --> 00:32:06,080 4. 622 00:32:06,080 --> 00:32:08,140 Nii Argc on 4. 623 00:32:08,140 --> 00:32:12,140 Rõkkama, et argv sulg 0 on rõkkama. 624 00:32:12,140 --> 00:32:15,630 argv sulg 1 on kriips 0. 625 00:32:15,630 --> 00:32:21,870 argv sulg 2 on hello, ja argv sulg 3 on hello.c. 626 00:32:21,870 --> 00:32:26,813 OK, nii et küsimustele selle, ja siis me mõningaid programmilisi näiteid. 627 00:32:26,813 --> 00:32:29,460 628 00:32:29,460 --> 00:32:30,480 >> OKEI. 629 00:32:30,480 --> 00:32:36,260 Nii et me võtame pilk hello3.c. 630 00:32:36,260 --> 00:32:41,890 Nii et see peaks olema tuttav üks esimesi c näited 631 00:32:41,890 --> 00:32:45,800 meil oli, kus me lihtsalt öelda, hello maailma, kuid nüüd on see üldisem. 632 00:32:45,800 --> 00:32:52,300 Nii et siin me öelda tere % s kurakriips n argv sulg 1. 633 00:32:52,300 --> 00:32:57,440 Notice-- nii Siiamaani on see mida mu template faili paistis. 634 00:32:57,440 --> 00:33:01,800 Mul oli int main (void), ja siis ma midagi põhiülesanne. 635 00:33:01,800 --> 00:33:05,100 Nüüd selle asemel, kui hakkame tegelevad koos käsurea argumente, 636 00:33:05,100 --> 00:33:07,890 vajame täpsustada tagatud erinevat vormi peamine. 637 00:33:07,890 --> 00:33:11,930 >> Nii vaadates hello3 Jällegi läheb 638 00:33:11,930 --> 00:33:15,990 võtma kaks argumenti now-- int Argc, arvu käsurea argumente, 639 00:33:15,990 --> 00:33:20,970 ja string argv sulgudes tegeliku stringe kanda käsurea. 640 00:33:20,970 --> 00:33:26,560 Nii et ma lähen muuta, et malli, et kajastada asjaolu. 641 00:33:26,560 --> 00:33:29,060 Nüüd, kui sa kirjutad programm, kui sa seda ei tee 642 00:33:29,060 --> 00:33:33,720 vaja võtta käsurea argumente, siis lihtsalt kasutada int main (void). 643 00:33:33,720 --> 00:33:37,070 Aga nüüd, kui olete kirjalikult käsurea argument programme, mis 644 00:33:37,070 --> 00:33:40,350 sa lähed tegema probleemide määrata two-- Nüüd, et sa kasutad 645 00:33:40,350 --> 00:33:42,630 programme, mis on vaja võtta käsurea argumente, 646 00:33:42,630 --> 00:33:45,250 sa pead olema peamine seda vormi. 647 00:33:45,250 --> 00:33:51,290 >> Nii siin-- see on suur kasutamine on käsurea argument. 648 00:33:51,290 --> 00:33:54,100 Nii printimisel argv 1. 649 00:33:54,100 --> 00:33:59,180 OK, nii olgem koostada ja programmi käivitada. 650 00:33:59,180 --> 00:34:02,440 Tee hello3. 651 00:34:02,440 --> 00:34:03,570 Koostab. 652 00:34:03,570 --> 00:34:06,870 Dot kaldkriips hello3. 653 00:34:06,870 --> 00:34:08,920 Ja oletame, "Rob". 654 00:34:08,920 --> 00:34:10,760 Tere Rob. 655 00:34:10,760 --> 00:34:14,940 Kui ma ütlen, "Tere Maria," tere Maria. 656 00:34:14,940 --> 00:34:15,719 Tere Maria. 657 00:34:15,719 --> 00:34:18,639 Hannah ikka ütleb, "tere Maria, "sest ma ei ole 658 00:34:18,639 --> 00:34:21,340 tee midagi meie argv 2. 659 00:34:21,340 --> 00:34:22,590 Argv 2 nüüd oleks "Hannah." 660 00:34:22,590 --> 00:34:25,030 Argc oleks 3. 661 00:34:25,030 --> 00:34:27,735 Mis siis, kui ma tegin seda? 662 00:34:27,735 --> 00:34:31,980 663 00:34:31,980 --> 00:34:34,679 Nii tere null. 664 00:34:34,679 --> 00:34:38,760 >> Ta lühidalt käsitlenud asjaolu et tehniliselt getString 665 00:34:38,760 --> 00:34:42,429 võib naasta null, kuid me saada palju sellest, mida null tegelikult on. 666 00:34:42,429 --> 00:34:47,449 Aga tehke seda asja Asjaolu, et ükski on üldiselt halb. 667 00:34:47,449 --> 00:34:50,179 Me tegime midagi valesti, kui see trükkimiseks "hello null." 668 00:34:50,179 --> 00:34:52,179 Ja põhjus, miks me tegime midagi valesti on-- hästi, 669 00:34:52,179 --> 00:34:56,179 kui ma jooksin dot kaldkriipsuga hello3, Argc oli 1. 670 00:34:56,179 --> 00:34:59,680 Nii et see tähendab pikkuse argv oli 1. 671 00:34:59,680 --> 00:35:05,110 Kui massiiv on pikkusega 1, ainus kehtiv indeks on null. 672 00:35:05,110 --> 00:35:08,550 Ja nii siin argv 1 on väljaspool vahemikus selle massiivi. 673 00:35:08,550 --> 00:35:13,410 See oli sarnane enne kui ma proovisin salvestada 6 väljaspool lõpuks massiiv. 674 00:35:13,410 --> 00:35:18,100 Nii et ma üritan juurde midagi väljaspool argv loeb, 675 00:35:18,100 --> 00:35:21,340 ja me lähme null. 676 00:35:21,340 --> 00:35:24,360 >> Nii parem versioon Selle paranemist, 677 00:35:24,360 --> 00:35:27,010 selgesõnaliselt kontrollida Argc. 678 00:35:27,010 --> 00:35:33,580 Nii et kui Argc võrdub 2, see tähendab, et meil vedas midagi dot kaldkriipsuga hello3 Rob. 679 00:35:33,580 --> 00:35:36,840 Ja see print "tere Rob." 680 00:35:36,840 --> 00:35:39,850 Kui Argc ei võrdu 2, siis on see lihtsalt läheb 681 00:35:39,850 --> 00:35:42,560 ignoreerida iganes sa panna kell käsurea argument 682 00:35:42,560 --> 00:35:43,960 käsurea argumente. 683 00:35:43,960 --> 00:35:47,168 Või kui te ei pane üldse, et see on lihtsalt läheb eirama ja lihtsalt öelda, 684 00:35:47,168 --> 00:35:47,960 "tere teile." 685 00:35:47,960 --> 00:35:51,490 >> Nii koostamiseni. 686 00:35:51,490 --> 00:35:54,500 Tee hello4. 687 00:35:54,500 --> 00:35:56,790 Ja töötab hello4. 688 00:35:56,790 --> 00:36:00,010 Jooks seda nii, mida tuleks trükkida? 689 00:36:00,010 --> 00:36:01,330 "Tere teile." 690 00:36:01,330 --> 00:36:02,810 Tere teile. 691 00:36:02,810 --> 00:36:05,870 Aga hello4 Rob? 692 00:36:05,870 --> 00:36:06,950 "Tere Rob." 693 00:36:06,950 --> 00:36:10,580 Ja lõpuks, hello Rob Maria on lihtsalt "tere You" uuesti, 694 00:36:10,580 --> 00:36:13,677 sest sa tegelikult ei sisesta midagi, mis seda oodata. 695 00:36:13,677 --> 00:36:15,510 Sa sisestasid rohkem nimed kui see võiks käsitleda, 696 00:36:15,510 --> 00:36:19,500 nii see lihtsalt täitmata kuni tere teile käitumist. 697 00:36:19,500 --> 00:36:23,040 Nii küsimustele on? 698 00:36:23,040 --> 00:36:26,290 Või käsurea argumente? 699 00:36:26,290 --> 00:36:28,690 >> OK, nii võttes pilk veel paar näidet kasutades 700 00:36:28,690 --> 00:36:34,230 käsurea arguments-- esimene oleme argv kriips 1 dot c. 701 00:36:34,230 --> 00:36:38,510 Nii kommentaarid kinkida, mida Selle programmi peaks tegema. 702 00:36:38,510 --> 00:36:42,460 Aga märkate now-- see silmus, see sobib täpselt muster 703 00:36:42,460 --> 00:36:43,390 Ütlesin enne. 704 00:36:43,390 --> 00:36:46,240 Me lihtsalt juhtub olema kasutades Argc asemel n. 705 00:36:46,240 --> 00:36:48,880 Nüüd Argc on tõesti n. 706 00:36:48,880 --> 00:36:51,260 See on pikkuse argv massiivi. 707 00:36:51,260 --> 00:36:59,600 Nii on iterating üle argv massiivi printf-se iga argv väärtus. 708 00:36:59,600 --> 00:37:04,730 >> Nii et kui ma teen seda. 709 00:37:04,730 --> 00:37:08,232 Tee argv 1. 710 00:37:08,232 --> 00:37:09,940 See koostab. 711 00:37:09,940 --> 00:37:11,620 Dot kaldkriips argv 1. 712 00:37:11,620 --> 00:37:15,530 Just töötab see, et pildid dot kaldkriipsuga argv 1 713 00:37:15,530 --> 00:37:18,500 kuna see oli ainus käsurea argument-- programmi nimi. 714 00:37:18,500 --> 00:37:22,080 Alati on juures least-- Argc ei saa olla väiksem kui üks, 715 00:37:22,080 --> 00:37:25,910 sest alati leidub vähemalt olla programmi nimi joosta. 716 00:37:25,910 --> 00:37:32,040 Nii argv 1 Rob prinditakse argv 1 ja siis uus liin "Rob". 717 00:37:32,040 --> 00:37:36,350 >> Nii esimese iteratsiooni Selle loop, i on 0. 718 00:37:36,350 --> 00:37:39,090 Argv 0 on programmi nimi. 719 00:37:39,090 --> 00:37:40,010 Dot kaldkriips argv 1. 720 00:37:40,010 --> 00:37:43,770 Ja siis argv 1 on minu esimene käsurea argument, mis on Rob. 721 00:37:43,770 --> 00:37:45,920 Sel hetkel, me oleme võrdsed Argc. 722 00:37:45,920 --> 00:37:48,210 Me murda läbi silmuse ja ongi kõik. 723 00:37:48,210 --> 00:37:53,940 Nii et see töötab suvalise arvu käsurea argumente. 724 00:37:53,940 --> 00:37:58,550 Pange tähele, ta prindib argv 0, argv 1 argv 2, argv 3, argv 4. 725 00:37:58,550 --> 00:38:00,150 Ja ei ole argv 5. 726 00:38:00,150 --> 00:38:01,460 Argc on võrdne 5. 727 00:38:01,460 --> 00:38:06,960 Nii et argc-- kell i võrdub 5, murrame läbi silmuse. 728 00:38:06,960 --> 00:38:07,950 OKEI. 729 00:38:07,950 --> 00:38:11,315 Nii küsimustele, et enne kui me vaata keerulisem näiteks? 730 00:38:11,315 --> 00:38:14,190 731 00:38:14,190 --> 00:38:16,860 >> Nii argv 2. 732 00:38:16,860 --> 00:38:17,830 Hästi. 733 00:38:17,830 --> 00:38:20,610 Nii et me ikka trükkimine käsurea argumente. 734 00:38:20,610 --> 00:38:23,170 Aga nüüd märkate meil nested silmus. 735 00:38:23,170 --> 00:38:24,670 Mis on selle teinud? 736 00:38:24,670 --> 00:38:28,430 Nii et esimene silmus teeb täpselt, mida ta tegi enne. 737 00:38:28,430 --> 00:38:30,950 Me veel silmukoiminen üle iga käsurea argument, 738 00:38:30,950 --> 00:38:34,260 aga nüüd see teine ​​loop-- me oleme Samuti näinud midagi sellist varem. 739 00:38:34,260 --> 00:38:38,600 Kui ta oli iterating üle Zamyla väljatrükk Z-A-M-Y-L-A. 740 00:38:38,600 --> 00:38:44,816 Nii et see teine ​​ahel int j võrdub 0, n on võrdne strlen of argv sulg i. 741 00:38:44,816 --> 00:38:49,170 >> Nii et esimene arvan the-- Läbigem. 742 00:38:49,170 --> 00:38:53,560 Mõtleme, mida arvuti oleks kui ma jooksin seda programmi ainult dot 743 00:38:53,560 --> 00:38:56,030 kaldkriips argv kriips 2. 744 00:38:56,030 --> 00:39:03,590 Nii et kui ma jooksin seda koodi, siis Argc saab olema võrdne 1. 745 00:39:03,590 --> 00:39:07,050 Ja string argv-- seal on ainult saab olema üks indeks argv, 746 00:39:07,050 --> 00:39:12,370 ja mis saab olema võrdne dot kaldkriips argv 2-- programmi nimi. 747 00:39:12,370 --> 00:39:19,170 >> OK, nii et nüüd ma võrdub 0, i alla 1, i pluss pluss int j võrdub 0, 748 00:39:19,170 --> 00:39:23,880 n võrdub strlen of argv sulg 0, nii et mille esimene iteratsioon see ahel. argv 749 00:39:23,880 --> 00:39:27,250 sulg 0 on dot kaldkriipsuga argv 2. 750 00:39:27,250 --> 00:39:29,320 Mis on pikkus, et string? 751 00:39:29,320 --> 00:39:32,480 Noh, dot kaldkriips A-R-G-V kriips 2. 752 00:39:32,480 --> 00:39:35,020 Nii strlen kohta, mis on 8. 753 00:39:35,020 --> 00:39:37,500 Nii j võrdub 0, n võrdub 8. 754 00:39:37,500 --> 00:39:39,530 Niikaua kui j on väiksem kui 8, j ++. 755 00:39:39,530 --> 00:39:44,080 Ja et me ei kavatse olla printimist ühe märgi, mis 756 00:39:44,080 --> 00:39:47,350 on argv sulg i sulg j. 757 00:39:47,350 --> 00:39:49,826 >> Nii et ainus i on null. 758 00:39:49,826 --> 00:39:51,700 Meil on ikka ainult üks käsurea argument. 759 00:39:51,700 --> 00:39:53,890 Selles esimene esitus on silmus, me oleme 760 00:39:53,890 --> 00:39:56,950 läheb trükkimine argv sulg 0 sulg 0. 761 00:39:56,950 --> 00:39:58,325 Ja siis j läheb juurdekasvu. 762 00:39:58,325 --> 00:40:01,650 Ja me ei kavatse trükkimine argv sulg 0 sulg 1. 763 00:40:01,650 --> 00:40:04,150 Ja siis argv sulg 0 sulg 2. 764 00:40:04,150 --> 00:40:09,030 >> Nii et see on meie esimene kohtumine mitmemõõtmeline massiivid. 765 00:40:09,030 --> 00:40:12,770 Mäleta varem, et ma ütlesin et argv on tehniliselt 766 00:40:12,770 --> 00:40:15,950 massiivi massiive tähemärki. 767 00:40:15,950 --> 00:40:24,360 Nii et siin, kui ma ütlesin midagi string s võrdub argv sulg i, 768 00:40:24,360 --> 00:40:29,590 ja siis ma ütlesin, s sulg j, seda oleks Täites sama asi. 769 00:40:29,590 --> 00:40:31,960 Nüüd, kui olete näinud s sulg j varem. 770 00:40:31,960 --> 00:40:36,680 See on lihtsalt pääseda j-nda iseloomu see string. 771 00:40:36,680 --> 00:40:48,010 Nii see meil ei saada j-nda iseloomu i-nda argv. 772 00:40:48,010 --> 00:40:51,450 >> Mida see peaks lõppkokkuvõttes väljund? 773 00:40:51,450 --> 00:40:53,210 Tee argv 2. 774 00:40:53,210 --> 00:40:54,730 See koostab. 775 00:40:54,730 --> 00:40:56,340 Dot kaldkriips argv 2. 776 00:40:56,340 --> 00:41:03,790 "Rob Maria Hannah," ja anna meile tuba. 777 00:41:03,790 --> 00:41:07,050 Nii näeme, et see on väljastamist dot oma rida ja kaldkriips 778 00:41:07,050 --> 00:41:08,920 oma rida ja oma rida. 779 00:41:08,920 --> 00:41:11,260 See prindib iga eripärasuse 780 00:41:11,260 --> 00:41:12,950 iga käsurea argument. 781 00:41:12,950 --> 00:41:15,960 Ja siis nende vahel, kuna selle uue liini 782 00:41:15,960 --> 00:41:19,380 me trükkimiseks alla siin, nende vahel siis saad printida uus liin. 783 00:41:19,380 --> 00:41:24,540 >> Nii et see on sarnane eelneva argv kriips 1 784 00:41:24,540 --> 00:41:26,459 mis trükitakse iga käsurea argument, 785 00:41:26,459 --> 00:41:28,500 kuid nüüd oleme trükkimine käsurea argumendid 786 00:41:28,500 --> 00:41:31,950 ja siis iterating läbi iga märgi iga käsurea argument 787 00:41:31,950 --> 00:41:35,400 saada see väljund. 788 00:41:35,400 --> 00:41:36,870 OKEI? 789 00:41:36,870 --> 00:41:40,570 Nii küsimustele on? 790 00:41:40,570 --> 00:41:45,130 >> Üks asi on tähele panna, et käsurea arguments-- 791 00:41:45,130 --> 00:41:49,990 et nad on eraldatud ruumid siis oleks muidugi ootame neilt. 792 00:41:49,990 --> 00:41:53,050 Nii string võib olla tühikuid. 793 00:41:53,050 --> 00:41:57,380 See ei ole super oluline, aga kui ma tahtsin kolmanda käsurea argument 794 00:41:57,380 --> 00:42:01,226 olema ruumi, siis ma Võiks öelda midagi sellist. 795 00:42:01,226 --> 00:42:04,470 796 00:42:04,470 --> 00:42:05,550 OKEI? 797 00:42:05,550 --> 00:42:12,190 Nii et see nüüd ikka vaid kolm käsurea arguments-- ka 4. 798 00:42:12,190 --> 00:42:17,620 Dot kaldkriips argv kriips 2, Rob, Maria ja Hannah Bloomberg. 799 00:42:17,620 --> 00:42:18,320 OKEI. 800 00:42:18,320 --> 00:42:19,310 Küsimused seda? 801 00:42:19,310 --> 00:42:22,700 802 00:42:22,700 --> 00:42:24,894 >> Ei ole midagi erilist umbes tühik. 803 00:42:24,894 --> 00:42:27,810 See lihtsalt juhtub olema, et käsurea kohtleb tühik 804 00:42:27,810 --> 00:42:29,226 kuidas sa eraldi iga argument. 805 00:42:29,226 --> 00:42:32,048 806 00:42:32,048 --> 00:42:33,000 Hästi. 807 00:42:33,000 --> 00:42:39,950 Siis Ülesanded two-- sa lähed olema 808 00:42:39,950 --> 00:42:43,240 Vaadates salajase võtme krüptograafia. 809 00:42:43,240 --> 00:42:47,700 Niisiis, mis on sarnane näiteks nägime A Christmas Story, 810 00:42:47,700 --> 00:42:52,840 sa lähed tuleb rakendada mõned algoritme, et antud teade, 811 00:42:52,840 --> 00:42:55,560 sa lähed, et oleks võimalik krüptida, et sõnum 812 00:42:55,560 --> 00:42:58,730 et ainult keegi, et saladus võti, selle dekooder ring, 813 00:42:58,730 --> 00:43:01,090 peaks suutma dekrüpteerida. 814 00:43:01,090 --> 00:43:04,839 >> Nii et on standard edition. 815 00:43:04,839 --> 00:43:07,130 Sa lähed tuleb rakendada kahes erinevas versioonis. 816 00:43:07,130 --> 00:43:09,620 Kui juhtub, et heita kell häkker Edition nüüd, 817 00:43:09,620 --> 00:43:12,600 me ei kavatse anda Teile string niimoodi, 818 00:43:12,600 --> 00:43:15,240 mis kujutab endast krüpteeritud parool. 819 00:43:15,240 --> 00:43:19,990 Nii et teie eesmärk on välja selgitada, mida dekrüpteeritakse salasõna on. 820 00:43:19,990 --> 00:43:26,950 Nüüd on see tegelikult, kuidas paroole talletatakse palju arvuteid, 821 00:43:26,950 --> 00:43:31,290 ja see lihtsalt talletab selle juhuslik tähekombinatsioon. 822 00:43:31,290 --> 00:43:34,440 Sa pead mõtlema, kuidas saada Sellest juhuslik tähekombinatsioon 823 00:43:34,440 --> 00:43:36,140 mida algne parool oli. 824 00:43:36,140 --> 00:43:39,060 825 00:43:39,060 --> 00:43:43,290 >> Ja lõpuks, pärast seda Ülesanded, sa peaksid 826 00:43:43,290 --> 00:43:46,100 saaks aru, mida see tähendab. 827 00:43:46,100 --> 00:43:51,650 Nii õpid kuidas lahti selline juhuslik jada. 828 00:43:51,650 --> 00:43:56,390 Samamoodi, kui sa mäletad nädal 0, siis oleks näinud seda URL. 829 00:43:56,390 --> 00:44:00,210 Ja siis peaks olema võimalik dekrüpteerida seda lõpuks. 830 00:44:00,210 --> 00:44:04,810 Sa ei pruugi olla õnnelik, kui sa dekrüpteerida ja vajuta linki. 831 00:44:04,810 --> 00:44:05,700 Hästi. 832 00:44:05,700 --> 00:44:06,591 Ongi täna. 833 00:44:06,591 --> 00:44:12,095 Nii näeme järgmisel nädalal! 834 00:44:12,095 --> 00:44:18,315 >> [ELECTRONIC muusika mängib] 835 00:44:18,315 --> 00:47:15,619