1 00:00:00,000 --> 00:00:03,944 >> [Muzikos grojimo] 2 00:00:03,944 --> 00:00:10,732 3 00:00:10,732 --> 00:00:11,690 DAVID Malan: Visos dešinę. 4 00:00:11,690 --> 00:00:14,674 Tai yra CS50, ir tai yra 2 savaitės pabaigoje. 5 00:00:14,674 --> 00:00:16,840 Aš atsiprašau Aš negalėjo būti ten su jumis šiandien 6 00:00:16,840 --> 00:00:18,300 bet esate labai geras rankas. 7 00:00:18,300 --> 00:00:21,710 Leiskite man pristatyti CS50 savo Robas Bowden. 8 00:00:21,710 --> 00:00:29,106 9 00:00:29,106 --> 00:00:31,730 ROB BOWDEN: Ir, žinoma, tada turime pasijuokti iš to, 10 00:00:31,730 --> 00:00:36,820 kad jis atsiuntė mums vertikalus Vaizdo ir parodyti tai. 11 00:00:36,820 --> 00:00:38,320 >> [Vaizdo įrašų atkūrimas] 12 00:00:38,320 --> 00:00:39,820 >> [Muzikos grojimo] 13 00:00:39,820 --> 00:00:42,350 >> [Pėdomis] 14 00:00:42,350 --> 00:00:44,730 >> -Šis Vaizdo nebuvo turi atrodyti šitaip. 15 00:00:44,730 --> 00:00:46,570 Tai galėjo būti užkirstas kelias. 16 00:00:46,570 --> 00:00:49,070 Pasakykite "ne vertikalių vaizdo įrašus. 17 00:00:49,070 --> 00:00:53,310 >> -Vertical Video atsitikti, kai jūs palaikykite jūsų kamera neteisingą kelią. 18 00:00:53,310 --> 00:00:55,880 Jūsų vaizdo baigsis iki atrodo kaip šūdas. 19 00:00:55,880 --> 00:00:57,650 >> - [GRUNT] 20 00:00:57,650 --> 00:01:02,240 >> -Yra Vis daugiau ir daugiau žmonių priklausomi priimant vertikalias video kasdien. 21 00:01:02,240 --> 00:01:06,240 Tai ne crack arba nieko, bet tai dar tikrai neblogai. 22 00:01:06,240 --> 00:01:10,410 Yra du skirtingų rūšių žmonių, kurie kenčia su VVS. 23 00:01:10,410 --> 00:01:14,160 Pirmoji grupė traktuoja video jie šaudyti kaip nuotraukose. 24 00:01:14,160 --> 00:01:15,850 Jie nereiškia jokios žalos. 25 00:01:15,850 --> 00:01:19,180 Jie tiesiog nesupranta, kad o jūs galite paversti vaizdą, 26 00:01:19,180 --> 00:01:20,880 Jūs tikrai negali pasukti vaizdo. 27 00:01:20,880 --> 00:01:21,880 >> [CRASH] 28 00:01:21,880 --> 00:01:23,460 >> - [MONKEY SOUNDS] 29 00:01:23,460 --> 00:01:27,540 >> -The Kita grupė yra žmonės kurie neturi duoti [Bleep]. 30 00:01:27,540 --> 00:01:31,090 >> -Vertical Vaizdo sindromas yra pavojingas. 31 00:01:31,090 --> 00:01:34,120 Filmuota medžiaga turi visada buvo horizontaliai. 32 00:01:34,120 --> 00:01:35,990 Televizoriai yra horizontali. 33 00:01:35,990 --> 00:01:38,380 Kompiuterių ekranai yra horizontali. 34 00:01:38,380 --> 00:01:41,580 Žmonių akyse horizontaliai. 35 00:01:41,580 --> 00:01:45,170 Mes ne pastatytas žiūrėti vertikalias vaizdo įrašus. 36 00:01:45,170 --> 00:01:47,600 >> -Aš Myliu vertikalias vaizdo įrašus. 37 00:01:47,600 --> 00:01:50,410 >> -Nobody Rūpinasi jumis. 38 00:01:50,410 --> 00:01:53,340 >> -Jei Ši problema s liks neišspręstos, jūs taip pat 39 00:01:53,340 --> 00:01:57,650 pradės rodyti keturias vaizdo vienu metu tik sutaupyti pralaidumą. 40 00:01:57,650 --> 00:02:02,400 >> -Letterboxed Vertikalios video būtų būti pašto ženklo dydžio. 41 00:02:02,400 --> 00:02:04,920 >> -O Ji išplito visur. 42 00:02:04,920 --> 00:02:07,670 Kino ekranai turi visada buvo horizontaliai. 43 00:02:07,670 --> 00:02:11,200 Jei vertikalieji video tapti Priimta, kino teatrai 44 00:02:11,200 --> 00:02:13,930 turės būti aukštas ir liesas. 45 00:02:13,930 --> 00:02:17,710 >> -O Visi kino teatrai būtų turi gauti nugriauta ir perstatyta. 46 00:02:17,710 --> 00:02:22,090 Ir iki to laiko jie buvo atstatytas, Mila Kunis būtų sena ir negraži. 47 00:02:22,090 --> 00:02:24,342 >> -Birds Bus katastrofos į juos ir mirti. 48 00:02:24,342 --> 00:02:26,530 >> -We'll Visi gauti kieta kakleliai iš looking up. 49 00:02:26,530 --> 00:02:29,800 >> -O Niekas sėdės eilėje dar kartą. 50 00:02:29,800 --> 00:02:37,170 >> -George Lucas vėl atpalaidavimo žvaigždutėmis Karai again-- liesas leidimas. 51 00:02:37,170 --> 00:02:41,860 >> -Aš Niekada nebuvo tikrai galėtų pasakyti istorija, kad aš norėjau pasakyti. 52 00:02:41,860 --> 00:02:46,030 Tai buvo puiki proga man eksperimentuoti su nauja technologija. 53 00:02:46,030 --> 00:02:48,150 >> -You're Trūkčioti. 54 00:02:48,150 --> 00:02:54,430 >> -Every Kartą, kai mobilusis įrenginys yra naudojamas įrašyti vaizdo, pagunda yra. 55 00:02:54,430 --> 00:02:56,370 Tiesiog pasakyti "ne". 56 00:02:56,370 --> 00:03:00,116 Pasakykite "ne" George Lucas. 57 00:03:00,116 --> 00:03:04,062 Pasakykite "ne" senas Mila Kunis. 58 00:03:04,062 --> 00:03:06,600 Pasakykite "ne vertikalių vaizdo įrašus. 59 00:03:06,600 --> 00:03:12,511 >> -O Jei matote ką nors daro, sako, "Jūs neprisijungęs šaudymo Ši teisė manekenu!" 60 00:03:12,511 --> 00:03:15,433 >> [Muzikos grojimo] 61 00:03:15,433 --> 00:03:18,842 62 00:03:18,842 --> 00:03:19,830 >> [PABAIGA PLAYBACK] 63 00:03:19,830 --> 00:03:23,702 >> [Plojimai] 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 forma kriptografija, 67 00:03:45,790 --> 00:03:49,500 kuris iš esmės yra šifravimas ir iššifravimui slaptų pranešimų. 68 00:03:49,500 --> 00:03:52,590 Taigi čia mes turime labai paprastą žaislą. 69 00:03:52,590 --> 00:03:56,900 Ir idėja yra išorinis žiedas sukasi aplink vidinio žiedo. 70 00:03:56,900 --> 00:04:01,610 Ir jūs galite pamatyti, gal jei aš padidinti į, that-- sunku pamatyti. 71 00:04:01,610 --> 00:04:05,090 Bet, kaip ir šis skaičius 1-- gerai, kad persikėlė. 72 00:04:05,090 --> 00:04:09,120 >> Skaičius 1 žemėlapiai į laišką X, numeris 2 žemėlapiai į laišką 73 00:04:09,120 --> 00:04:11,630 J. neįtikėtinai sunku ne praleisti į priekį. 74 00:04:11,630 --> 00:04:16,100 Laiškas 2 žemėlapiai J. Numeris 3 žemėlapių D Taigi 75 00:04:16,100 --> 00:04:20,140 su šiuo žiedu galite duoti kažkas žinutė 1, 2, 3. 76 00:04:20,140 --> 00:04:22,624 Dėl kažkokių priežasčių jūs noriu pasakyti jiems XJD. 77 00:04:22,624 --> 00:04:24,540 Bet jūs galite suteikti jiems kai numerius pranešimą, 78 00:04:24,540 --> 00:04:28,460 ir tol, kol jie turi šią žiedą, jie gali iššifruoti, ką jūs bandote pasakyti. 79 00:04:28,460 --> 00:04:32,510 >> Taigi jums gali matėme tai Konkretus pavyzdys kriptografija 80 00:04:32,510 --> 00:04:36,640 Prieš jeigu aplink Kalėdų sezoną jūs stebėjo Kalėdų istorija. 81 00:04:36,640 --> 00:04:38,520 Jei Jūs niekada matė tai anksčiau, tada tiesiog 82 00:04:38,520 --> 00:04:41,060 įjungti TBS ne pažodžiui bet kuriuo metu per Kūčias, 83 00:04:41,060 --> 00:04:44,510 nes jie tiesiog parodyti jį atgal atgal atgal į atgal atgal visą dieną. 84 00:04:44,510 --> 00:04:46,744 Ir atitinkama vaizdo tai. 85 00:04:46,744 --> 00:04:47,410 [Vaizdo įrašų atkūrimas] 86 00:04:47,410 --> 00:04:50,020 -Be Tai žinoma visiems ir kiekvienas kad Ralph Parkeris yra iš dalies 87 00:04:50,020 --> 00:04:52,850 paskirtas Little narys Našlaitė Annie paslaptis Draugų 88 00:04:52,850 --> 00:04:56,490 ir ji turi teisę į visų pagyrimu ir nauda pasireiškia tuo. 89 00:04:56,490 --> 00:04:59,010 Pasirašyta Mažasis Našlaitė Annie. 90 00:04:59,010 --> 00:05:03,120 Parašu Pierre Andre rašalu! 91 00:05:03,120 --> 00:05:07,460 Garbės ir nauda jau devynerių! 92 00:05:07,460 --> 00:05:12,530 >> [Šaukiantį nuo radijo] 93 00:05:12,530 --> 00:05:13,030 -Nagi. 94 00:05:13,030 --> 00:05:14,000 Leiskite gauti su juo. 95 00:05:14,000 --> 00:05:18,274 Man nereikia visą tą džiazą apie kontrabandininkus ir piratai. 96 00:05:18,274 --> 00:05:20,440 -Listen Rytoj vakare su baigiamasis nuotykių 97 00:05:20,440 --> 00:05:22,540 Juodosios piratų laivas. 98 00:05:22,540 --> 00:05:25,460 Dabar atėjo laikas Annie paslaptis žinutė 99 00:05:25,460 --> 00:05:28,620 Jums nariai Secret Circle. 100 00:05:28,620 --> 00:05:32,370 Įsiminti vaikams, tik nariai Annie Secret Circle 101 00:05:32,370 --> 00:05:34,880 gali dekoduoti Annie slaptą žinutę. 102 00:05:34,880 --> 00:05:39,100 Atminkite, Annie priklauso nuo jūsų. 103 00:05:39,100 --> 00:05:41,660 Nustatykite savo smeigtukai B2. 104 00:05:41,660 --> 00:05:43,960 Čia yra žinia. 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 -Aš Esu savo pirmąją slaptą susitikimą. 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 yra labai balso vakarą. 115 00:05:54,570 --> 00:05:57,490 Galėčiau pasakyti, kad vakaro žinutė buvo tikrai svarbus. 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 Kad tai iš Annie pati žinutė. 119 00:06:01,580 --> 00:06:02,880 Atminkite, kad nereikia niekam. 120 00:06:02,880 --> 00:06:07,840 121 00:06:07,840 --> 00:06:11,130 >> Vėliau -Five sekundžių, aš tik kambarys namuose, kur iš devynių berniukas 122 00:06:11,130 --> 00:06:15,830 gali sėdėti privatumo ir atkoduoti. 123 00:06:15,830 --> 00:06:16,620 Aha! 124 00:06:16,620 --> 00:06:17,340 B! 125 00:06:17,340 --> 00:06:20,210 Nuėjau į kitą. 126 00:06:20,210 --> 00:06:23,300 E. pirmas žodis yra "būti". 127 00:06:23,300 --> 00:06:25,880 S. Tai artėjo lengviau dabar. 128 00:06:25,880 --> 00:06:28,400 U. 25. 129 00:06:28,400 --> 00:06:30,528 Štai R. 130 00:06:30,528 --> 00:06:31,278 -Come Įjungtas, Ralphie! 131 00:06:31,278 --> 00:06:31,861 Aš turiu eiti! 132 00:06:31,861 --> 00:06:33,182 -I'll Būti nustatančio teisę Ma! 133 00:06:33,182 --> 00:06:36,038 Gee nusišvilpti. 134 00:06:36,038 --> 00:06:42,840 T. O. "Būtinai", - būtinai ką? 135 00:06:42,840 --> 00:06:44,770 Kas buvo mažai Retųjų Annie bando pasakyti? 136 00:06:44,770 --> 00:06:46,381 Būtinai ką? 137 00:06:46,381 --> 00:06:47,825 >> -Randy Gavo eiti! 138 00:06:47,825 --> 00:06:48,866 Ar galite išeiti? 139 00:06:48,866 --> 00:06:49,783 >> -Visos Teisus, mama! 140 00:06:49,783 --> 00:06:51,786 Aš būsiu teisus ne! 141 00:06:51,786 --> 00:06:53,606 Man buvo vis arčiau dabar. 142 00:06:53,606 --> 00:06:55,550 Įtampa buvo baisi. 143 00:06:55,550 --> 00:06:57,050 Kas tai buvo? 144 00:06:57,050 --> 00:06:59,905 Iš planetos likimas gali pakabinti ant plauko! 145 00:06:59,905 --> 00:07:01,736 >> -Ralphie, Randy gavo eiti! 146 00:07:01,736 --> 00:07:05,680 >> -I'll Būti tiesiai iš, šaukė garsiai! 147 00:07:05,680 --> 00:07:07,170 Beveik čia! 148 00:07:07,170 --> 00:07:08,150 Mano pirštai skrido. 149 00:07:08,150 --> 00:07:09,980 Mano protas buvo plieno spąstus. 150 00:07:09,980 --> 00:07:11,496 Kiekvienas porų vibruoja. 151 00:07:11,496 --> 00:07:13,268 Tai buvo beveik aišku! 152 00:07:13,268 --> 00:07:13,767 Taip. 153 00:07:13,767 --> 00:07:14,609 Taip. 154 00:07:14,609 --> 00:07:15,108 Taip. 155 00:07:15,108 --> 00:07:16,449 Taip. 156 00:07:16,449 --> 00:07:20,240 Būtinai gerti savo 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 Prastas komercinis? 160 00:07:27,520 --> 00:07:32,040 161 00:07:32,040 --> 00:07:34,920 Šunsnukis. 162 00:07:34,920 --> 00:07:35,890 >> [PABAIGA PLAYBACK] 163 00:07:35,890 --> 00:07:39,650 >> ROB BOWDEN: Štai kaip Ovaltine susijęs su kriptografijos. 164 00:07:39,650 --> 00:07:42,290 Iš esmės CS50 tik reklamuojami Ovaltine kad galėtume 165 00:07:42,290 --> 00:07:44,400 būti prastas komercinis už Ovaltine. 166 00:07:44,400 --> 00:07:44,900 Gerai. 167 00:07:44,900 --> 00:07:47,120 Taigi dabar tikrasis kompiuterių mokslas. 168 00:07:47,120 --> 00:07:50,670 Įsiminti pirmadienį mes baigėte Nardymas giliau į eilutes. 169 00:07:50,670 --> 00:07:52,820 Taigi mes susiduriame su eilutė "Zamyla". 170 00:07:52,820 --> 00:07:55,130 Ir mes buvome pripažinti tai, kad mes galime gydyti 171 00:07:55,130 --> 00:07:57,510 "Zamyla", kaip simbolių seka. 172 00:07:57,510 --> 00:07:59,740 Ir atminkite, kad mes sužinojome laikiklis notacija. 173 00:07:59,740 --> 00:08:01,995 Taigi, jei tai buvo saugomi string'e "S", tada 174 00:08:01,995 --> 00:08:05,860 jei mes sakėme -ai laikiklis 0, kad būtų rodo raidė kapitalo Z. 175 00:08:05,860 --> 00:08:09,790 Ir jei mes sakėme -ai laikiklis 1, kad rodytų pirmą mažosiomis raidėmis A, 176 00:08:09,790 --> 00:08:14,220 ir taip toliau iki -ų kronšteino 5, o tai rodo, kad paskutinis. 177 00:08:14,220 --> 00:08:17,090 >> Dabar prisiminti, kad ilgis šio eilutę yra 6, 178 00:08:17,090 --> 00:08:23,220 bet į eilutę indeksai 0 iki 5, Z per tą trukti. 179 00:08:23,220 --> 00:08:28,650 Taigi tai dabar telpa į bendresnį vaizdą jūsų kompiuterio atmintyje, jūsų RAM. 180 00:08:28,650 --> 00:08:32,020 Taigi kažkur programa, kuri vykdote savo kompiuterį 181 00:08:32,020 --> 00:08:34,780 reikia prisiminti Zamyla kur nors atmintyje. 182 00:08:34,780 --> 00:08:36,029 Taigi aš galiu turėti savanoriu? 183 00:08:36,029 --> 00:08:38,840 184 00:08:38,840 --> 00:08:40,181 Taip Prašau. 185 00:08:40,181 --> 00:08:50,120 186 00:08:50,120 --> 00:08:51,500 Ir koks tavo vardas? 187 00:08:51,500 --> 00:08:52,410 >> DEAN: dekanas. 188 00:08:52,410 --> 00:08:53,550 >> ROB BOWDEN: Dekanas? 189 00:08:53,550 --> 00:08:54,910 Nice to meet you, dekanas. 190 00:08:54,910 --> 00:08:58,240 Taigi atėjo per čia, ir mes ketiname turėti piešiama 191 00:08:58,240 --> 00:09:00,740 Mūsų gražus madingas išdėstymą atmintyje. 192 00:09:00,740 --> 00:09:05,950 Dabar man patinka galvoti atminties kaip vieną ilgą juostelės baitų, 193 00:09:05,950 --> 00:09:11,090 bet tik ekrane tikslais mes tiesiog iš kairės į dešinę, iš viršaus į apačią. 194 00:09:11,090 --> 00:09:11,590 GERAI? 195 00:09:11,590 --> 00:09:22,030 >> Taigi, aš ruošiuosi parodyti program-- Getstrings.c. 196 00:09:22,030 --> 00:09:25,760 Ir taip visa tai programa daro prašo keturias stygas 197 00:09:25,760 --> 00:09:28,830 nuo naudotojo su GetString ir tada spausdinimas 198 00:09:28,830 --> 00:09:30,950 kokia ta pirmoji eilutė įrašyta buvo. 199 00:09:30,950 --> 00:09:32,840 Mes ignoruojant du per keturis. 200 00:09:32,840 --> 00:09:33,610 GERAI. 201 00:09:33,610 --> 00:09:38,210 Taigi per čia now-- kai Aš pirmasis prašymas S1. 202 00:09:38,210 --> 00:09:39,740 Taigi jūs esate kompiuteris. 203 00:09:39,740 --> 00:09:41,680 Ir jūs įgyvendinant GetString. 204 00:09:41,680 --> 00:09:46,710 Taigi jūs prašote iš eilutę man, ir aš sakau, gerai, dekanas. 205 00:09:46,710 --> 00:09:47,900 Padovanoti eilutę "Dean". 206 00:09:47,900 --> 00:09:50,300 >> Taigi kažkur atmintyje galite reikia prisiminti "Dean". 207 00:09:50,300 --> 00:09:52,160 Taigi rašyti į atmintį kažkur. 208 00:09:52,160 --> 00:09:58,270 209 00:09:58,270 --> 00:09:59,210 Tobula. 210 00:09:59,210 --> 00:09:59,880 GERAI. 211 00:09:59,880 --> 00:10:01,740 Taigi dabar mes turime S2. 212 00:10:01,740 --> 00:10:03,869 Ir S2 bus prašymas GetString. 213 00:10:03,869 --> 00:10:05,160 Taigi, aš ruošiuosi įvesti eilutę. 214 00:10:05,160 --> 00:10:08,720 Aš ruošiuosi įvesti "Hannah". 215 00:10:08,720 --> 00:10:10,586 Taigi įvesti "Hannah" kažkur į atmintį. 216 00:10:10,586 --> 00:10:18,860 217 00:10:18,860 --> 00:10:19,360 Taip. 218 00:10:19,360 --> 00:10:23,000 A-H. 219 00:10:23,000 --> 00:10:25,550 >> Gerai, kad dabar S3. 220 00:10:25,550 --> 00:10:28,380 Ir tai bus dar vienas prašyti GetString. 221 00:10:28,380 --> 00:10:37,020 Ir todėl dabar įvesti "Maria". 222 00:10:37,020 --> 00:10:37,520 Gerai. 223 00:10:37,520 --> 00:10:40,980 Ir tada ten paskutinis prašymas GetString, S4. 224 00:10:40,980 --> 00:10:42,580 Taigi, aš nežinau. 225 00:10:42,580 --> 00:10:45,640 Kaip apie einame su antidisestablishmentarianism. 226 00:10:45,640 --> 00:10:49,460 Taigi įvesti kad į atmintį. 227 00:10:49,460 --> 00:10:50,400 Taip. 228 00:10:50,400 --> 00:10:53,970 Taigi tiesiog daryti "Rob". 229 00:10:53,970 --> 00:10:54,560 >> GERAI. 230 00:10:54,560 --> 00:10:58,410 Taigi dabar explain-- kodėl padarė jūs paliekate šias erdves? 231 00:10:58,410 --> 00:11:01,340 Kodėl jūs turite šį lauką tuščią erdvė čia čia ir čia? 232 00:11:01,340 --> 00:11:05,170 233 00:11:05,170 --> 00:11:05,670 Taip. 234 00:11:05,670 --> 00:11:09,450 Taigi pastebėti, kai aš einu spausdinti s1-- todėl, jei mes 235 00:11:09,450 --> 00:11:11,890 turėjo "Ona" Running teisę iki šalia "Dean" 236 00:11:11,890 --> 00:11:14,360 kaip mes žinome, kai eilutė "Dean" baigiasi? 237 00:11:14,360 --> 00:11:19,470 Taigi spausdinant string s1 gali turėti tik spausdintas "DeanHannahMariaRob" 238 00:11:19,470 --> 00:11:22,720 jei jis neturi clue kada "Dean" faktiškai baigiasi. 239 00:11:22,720 --> 00:11:23,240 >> Gerai. 240 00:11:23,240 --> 00:11:27,650 Taigi atmintyje kaip mes iš tikrųjų atstovauti šią eilutę pabaigą 241 00:11:27,650 --> 00:11:29,940 yra su backslash nulio. 242 00:11:29,940 --> 00:11:32,620 Taigi ši erdvė yra būtent tai, ko mes norėjome. 243 00:11:32,620 --> 00:11:34,040 Ji turėtų būti Backslash nulis. 244 00:11:34,040 --> 00:11:37,690 Tai bus Backslash nulis, ir tai bus Backslash nulis. 245 00:11:37,690 --> 00:11:41,585 Ir jūs galite turėti nuostabų prizą už tai, kad puikiai savanoris. 246 00:11:41,585 --> 00:11:44,910 247 00:11:44,910 --> 00:11:45,860 Paimkite streso kamuolys! 248 00:11:45,860 --> 00:11:49,040 249 00:11:49,040 --> 00:11:49,700 >> GERAI. 250 00:11:49,700 --> 00:11:54,420 Taigi, šis personažas Backslash nulis kaip mes rodo eilutę pabaigą. 251 00:11:54,420 --> 00:11:57,120 Tai kaip tada, kai konkrečioje programoje nori spausdinti eilutę, 252 00:11:57,120 --> 00:11:59,760 tai how-- prisiminti mes sužinojome strlen funkcija praėjusią savaitę? 253 00:11:59,760 --> 00:12:00,940 Styginių ilgis? 254 00:12:00,940 --> 00:12:03,770 Tai kaip eilutės ilgis gali nustatyti, kiek laiko eilutė yra. 255 00:12:03,770 --> 00:12:05,810 Jis tiesiog išlaiko Iteracja per simbolius 256 00:12:05,810 --> 00:12:08,217 kol jis randa backslash nulinį simbolį. 257 00:12:08,217 --> 00:12:11,050 Taigi svarbiausia suvokti, apie Backslash nulio charakterio 258 00:12:11,050 --> 00:12:14,950 yra tai atstovavo visų bitais nuliais. 259 00:12:14,950 --> 00:12:18,980 Taigi, pastebėti, kad tai yra atskira nuo nulinio pobūdžio. 260 00:12:18,980 --> 00:12:23,010 Taigi nulinis simbolis, jei žinote pavyzdyje, kad jis davė pabaigoje 261 00:12:23,010 --> 00:12:27,360 paskaitų, kur map simbolių to-- kaip kapitalas A žemėlapius iki 65. 262 00:12:27,360 --> 00:12:29,130 Raides į žemėlapius iki 97. 263 00:12:29,130 --> 00:12:30,890 Mažosios raidės b būtų 98. 264 00:12:30,890 --> 00:12:35,220 Taigi skaičius 0 žemėlapiai to-- aš ne žinau, nuo mano galvos viršaus. 265 00:12:35,220 --> 00:12:36,400 44 arba 45. 266 00:12:36,400 --> 00:12:37,890 Kažkur tame regione. 267 00:12:37,890 --> 00:12:40,850 >> Taigi simbolis 0 yra tikrasis skaičius. 268 00:12:40,850 --> 00:12:44,350 Bet Backslash nulis žemėlapiai į visus nulinės bitai. 269 00:12:44,350 --> 00:12:46,380 Taigi ten skirtumo tarp backslash nulis, 270 00:12:46,380 --> 00:12:48,450 kuri mes vadiname null terminatorius. 271 00:12:48,450 --> 00:12:53,210 Yra skirtumas tarp Backslash nulis ir simbolis lygus nuliui. 272 00:12:53,210 --> 00:12:54,350 >> Gerai. 273 00:12:54,350 --> 00:12:57,520 Taigi kalbėti šiek tiek daugiau apie stygos. 274 00:12:57,520 --> 00:13:01,470 Taigi čia matome tai kaip ji būtų išdėstyti atmintyje. 275 00:13:01,470 --> 00:13:07,940 Taigi šis stygos kaip seka idėja iš characters-- todėl oficialus kompiuteris 276 00:13:07,940 --> 00:13:10,750 sciency terminas seka yra masyvas. 277 00:13:10,750 --> 00:13:13,790 Taigi, mes vadinčiau eilutę AN simbolių masyvas. 278 00:13:13,790 --> 00:13:17,770 Ir ten iš tikrųjų yra kiti duomenys tipai, mes galime padaryti masyvus iš. 279 00:13:17,770 --> 00:13:19,975 >> Taigi, norint motyvuoti tai, pažvelgti pavyzdys. 280 00:13:19,975 --> 00:13:22,810 281 00:13:22,810 --> 00:13:29,812 Mes jį vadiname ages0.c aš nukopijuokite ir įklijuokite mūsų šabloną. 282 00:13:29,812 --> 00:13:32,470 283 00:13:32,470 --> 00:13:33,410 GERAI. 284 00:13:33,410 --> 00:13:39,378 Taigi šioje programoje, ką mes noriu padaryti, tai paimti amžius 285 00:13:39,378 --> 00:13:45,160 trys studentai į paskaitas. 286 00:13:45,160 --> 00:13:49,240 Taigi mes žinome, INT age-- ir dabar aš ruošiuosi pasakyti 0. 287 00:13:49,240 --> 00:13:53,140 Taigi jūs galbūt norėsite pasakyti age1, bet tikslais matysime netrukus, 288 00:13:53,140 --> 00:13:57,187 Pasakysiu int age0 lygus GetInt. 289 00:13:57,187 --> 00:13:59,270 Taigi tuo pačiu kvietimas GetInt kad mes jau naudojate I 290 00:13:59,270 --> 00:14:01,561 tai neįvyks būti raginimo sakydamas: "duok man amžių." 291 00:14:01,561 --> 00:14:03,120 Bet tik prašo ją. 292 00:14:03,120 --> 00:14:06,510 >> Ir age1 lygus GetInt. 293 00:14:06,510 --> 00:14:09,600 Ir int age2 lygus GetInt. 294 00:14:09,600 --> 00:14:14,070 Taigi, vėl trys studentai, bet galiausiai kintamos indeksai 295 00:14:14,070 --> 00:14:16,890 yra age0 per age2. 296 00:14:16,890 --> 00:14:17,550 GERAI. 297 00:14:17,550 --> 00:14:23,960 Taigi ši programa darys viską norime su age0, age1 ir age2, 298 00:14:23,960 --> 00:14:27,670 bet ši programa galiausiai dirba trys studentai. 299 00:14:27,670 --> 00:14:28,380 >> GERAI. 300 00:14:28,380 --> 00:14:32,110 Taigi, ką daryti, jei noriu keturi studentai? 301 00:14:32,110 --> 00:14:36,000 Na, aš ruošiuosi grįžti į mano kodas, pakeisti komentarą, 302 00:14:36,000 --> 00:14:39,840 ir dabar mes turime int age3 lygus GetInt. 303 00:14:39,840 --> 00:14:40,610 GERAI. 304 00:14:40,610 --> 00:14:43,660 Taigi, kas mato problemą čia? 305 00:14:43,660 --> 00:14:47,310 Kokia problema su šia konfigūracija rūšiuoti? 306 00:14:47,310 --> 00:14:47,810 Taip. 307 00:14:47,810 --> 00:14:53,110 308 00:14:53,110 --> 00:14:53,610 Taip. 309 00:14:53,610 --> 00:14:56,360 Taigi mes kuriant kintamasis kiekvienam studentui. 310 00:14:56,360 --> 00:15:00,140 Dabar, kad veikia, bet galiausiai Ką daryti, jei dabar 311 00:15:00,140 --> 00:15:06,500 pasakyti: "Aš noriu patraukti amžius aštuoni studentai ar mokiniai 16 312 00:15:06,500 --> 00:15:11,340 arba Tačiau daugelis studentų iš kad studentų šimtams CS50 313 00:15:11,340 --> 00:15:16,750 arba studentų miesteliu tūkstančiai arba milijardams žmonių pasaulyje? 314 00:15:16,750 --> 00:15:19,130 Taigi galiausiai tai nėra tvarus. 315 00:15:19,130 --> 00:15:21,990 Bet kuriuo metu jūs matote save kopijavimo ir klijavimas kodas, kaip šis, 316 00:15:21,990 --> 00:15:25,050 Jūs paprastai turėtų jaustis kad yra geresnis būdas. 317 00:15:25,050 --> 00:15:31,290 >> Taigi, tai yra ten, kur mes pristatome masyvas deklaracija. 318 00:15:31,290 --> 00:15:34,564 Taigi, kai jūs deklaruoti masyvą, Tai yra tai, ką apskritai formatas 319 00:15:34,564 --> 00:15:35,480 ketina atrodyti. 320 00:15:35,480 --> 00:15:36,664 Mes ketiname pasakyti tipą. 321 00:15:36,664 --> 00:15:38,830 ir tada mes ketiname suteikti pavadinimą tos masyvas, 322 00:15:38,830 --> 00:15:41,150 kaip mes apibrėžiame kurią nors konkrečią kintamąjį. 323 00:15:41,150 --> 00:15:43,980 Ir galiausiai mes naudojame Šis laikiklis žymėjimas vėl 324 00:15:43,980 --> 00:15:47,480 bet kitame kontekste iš kaip mes jį naudoti anksčiau. 325 00:15:47,480 --> 00:15:51,860 >> Taigi čia tai atrodo normalus kintamasis pareiškimas, kad mes matėme. 326 00:15:51,860 --> 00:15:54,890 Taigi mes matėme int x kabliataškį anksčiau. 327 00:15:54,890 --> 00:16:00,020 Na, dabar mes galime pamatyti kažką kaip int x skliaustuose 5. 328 00:16:00,020 --> 00:16:04,020 Ir išleisti šią idėją į GetInt programa, kad mes have-- 329 00:16:04,020 --> 00:16:08,850 todėl mes galime įgyvendinti tai tuo pačiu būdu. 330 00:16:08,850 --> 00:16:13,630 >> Leiskite pasakyti CS mes linkę naudoti n, kaip kažką numeriu. 331 00:16:13,630 --> 00:16:16,150 Taigi čia mes ketiname laikyti keturis studentus. 332 00:16:16,150 --> 00:16:25,960 Ir dabar mes galime pasakyti, int amžius laikiklis n-- ne visai jį gauti yet-- 333 00:16:25,960 --> 00:16:32,210 deklaruoti savo keturių studentų masyvo. 334 00:16:32,210 --> 00:16:38,050 Taigi, kaip tai atrodys atminties bus panašus į tai. 335 00:16:38,050 --> 00:16:39,570 Išvalyti tai. 336 00:16:39,570 --> 00:16:46,606 Ir mes ketiname turėti kažkur į memory-- aš įdėti šią ten. 337 00:16:46,606 --> 00:16:52,690 338 00:16:52,690 --> 00:16:53,808 >> Taigi, kur nors atmintyje. 339 00:16:53,808 --> 00:16:58,760 340 00:16:58,760 --> 00:16:59,727 Vienas du trys Keturi. 341 00:16:59,727 --> 00:17:03,383 342 00:17:03,383 --> 00:17:09,849 Turime keturis sveikuosius skaičius iš eilės Šio keturių skaičių masyvą. 343 00:17:09,849 --> 00:17:13,820 Taigi, šiuo metu, kas yra dydis vienos iš šių dėžės? 344 00:17:13,820 --> 00:17:17,190 345 00:17:17,190 --> 00:17:17,690 Taip. 346 00:17:17,690 --> 00:17:18,390 Tai keturių baitų. 347 00:17:18,390 --> 00:17:19,690 Tai 32 bitų. 348 00:17:19,690 --> 00:17:22,310 Taigi, dabar tai skiriasi iš masyvo, kad mes 349 00:17:22,310 --> 00:17:24,020 mačiau anksčiau, simbolių masyvas. 350 00:17:24,020 --> 00:17:28,540 Į eilutę kiekvienoje dėžėje buvo tik vienas baitas, nes charakteris yra tik vienas baitas. 351 00:17:28,540 --> 00:17:32,170 Bet su skaičiais masyvo, kiekvienas dėžutė turi būti keturių baitų, siekiant 352 00:17:32,170 --> 00:17:34,060 kad tilptų visą sveikasis skaičius. 353 00:17:34,060 --> 00:17:37,197 Taigi tai, kas yra iš masyvo keturi ints atrodys. 354 00:17:37,197 --> 00:17:40,510 355 00:17:40,510 --> 00:17:43,870 >> Ir tada atgal į kodą. 356 00:17:43,870 --> 00:17:47,460 Dabar mes norime iš tikrųjų parduotuvė sveikieji į tą masyvą. 357 00:17:47,460 --> 00:17:53,470 Taigi, dabar tai yra labai, labai, labai bendra tendencija, kad tam tikru metu 358 00:17:53,470 --> 00:17:54,680 tapti raumenų atmintis. 359 00:17:54,680 --> 00:17:56,710 Taigi int i lygus 0. 360 00:17:56,710 --> 00:17:57,940 Aš mažiau nei n. 361 00:17:57,940 --> 00:18:01,850 Aš plius pliusas. 362 00:18:01,850 --> 00:18:05,790 Amžiaus grupėje I lygus GetInt. 363 00:18:05,790 --> 00:18:15,100 >> Taigi tai už kilpos, šis formatas, Jūs turėtumėte gauti labai naudojamas. 364 00:18:15,100 --> 00:18:20,010 Taigi tai paprastai, kaip mes pakartoti per beveik bet masyvo. 365 00:18:20,010 --> 00:18:23,690 Dabar pastebėsite šį rūšiuoti paaiškina, kodėl nuo pat pradžių 366 00:18:23,690 --> 00:18:29,870 mes neturėjome už kilpos vyksta int i yra lygus 1, i yra mažesnis arba lygus 10. 367 00:18:29,870 --> 00:18:34,200 Priežastis yra ta, kad nuo nulis daro šį darbą gerai su matricomis. 368 00:18:34,200 --> 00:18:36,270 Taigi matricos yra nulis indeksuojami. 369 00:18:36,270 --> 00:18:40,360 Jei tai masyvas yra Ilgio 4 indeksai yra 0 iki 3. 370 00:18:40,360 --> 00:18:42,880 >> Taigi, per pirmas iteracijos tai už kilpos 371 00:18:42,880 --> 00:18:49,930 mes ketiname būti nustatyti amžių laikiklis 0 lygus skambučio į GetInt. 372 00:18:49,930 --> 00:18:52,440 Taigi ką aš atsitiko įvesti į klaviatūrą. 373 00:18:52,440 --> 00:18:56,970 Antroje perdavimą, mes nustatant age1 lygus GetInt. 374 00:18:56,970 --> 00:18:58,230 Trečia perdavimą, age2. 375 00:18:58,230 --> 00:18:59,880 Galutinis smūgis age3. 376 00:18:59,880 --> 00:19:05,750 Taigi, jei pirmoje perdavimo linijos Aš įveskite numeris 4 į klaviatūrą, 377 00:19:05,750 --> 00:19:07,740 tada mes įterpti 4 čia. 378 00:19:07,740 --> 00:19:11,470 Jei antrą perdavimą įvesti 50, mes įdėti 50 čia. 379 00:19:11,470 --> 00:19:15,180 Trečią perdavimo galėčiau įvesti neigiamus 1, neigiama 1, 380 00:19:15,180 --> 00:19:21,810 ir galiausiai, jei aš įvesti 0-- ir dabar prisimenu, kad tai buvo trys indeksas. 381 00:19:21,810 --> 00:19:25,350 >> Kai mes kilpa atgal, i bus didinamas iki 4. 382 00:19:25,350 --> 00:19:27,770 i yra ne ilgiau mažiau nei N, kuris yra 4. 383 00:19:27,770 --> 00:19:29,840 Ir mes išeiti iš kilpos. 384 00:19:29,840 --> 00:19:32,578 Taigi, ką būtų negerai su tai? 385 00:19:32,578 --> 00:19:38,140 386 00:19:38,140 --> 00:19:38,729 [Nesigirdi]? 387 00:19:38,729 --> 00:19:39,604 Auditorija: [nesigirdi] 388 00:19:39,604 --> 00:19:45,880 389 00:19:45,880 --> 00:19:46,400 >> Taip. 390 00:19:46,400 --> 00:19:51,550 Taigi masyvas turi tik keturias vietas, o tai reiškia, kaip indeksai 0 iki 3. 391 00:19:51,550 --> 00:19:55,630 Taigi jei tai buvo atvejis, aš norėčiau imtis vertės 4 tikru momentu. 392 00:19:55,630 --> 00:20:00,910 amžiaus grupė 4 bus nustatyti kas beatsitiktų, kad daugiau nei čia 393 00:20:00,910 --> 00:20:02,920 ką aš turiu pasakyti, įveskite 6 d. 394 00:20:02,920 --> 00:20:05,010 Tai bus nustatyti tai 6. 395 00:20:05,010 --> 00:20:06,560 >> Bet mes nežinome, kas yra čia. 396 00:20:06,560 --> 00:20:08,836 Tai nėra atminties kad mes turėjome prieigą prie. 397 00:20:08,836 --> 00:20:10,710 Taigi, jei jūs prisimenate iš ankstesnis paskaita, 398 00:20:10,710 --> 00:20:14,350 jis buvo spausdinti vertybes Zamyla ir tam tikru momentu jis pasiektų šią segmentaciją 399 00:20:14,350 --> 00:20:17,990 kaltės. Taigi jums tikriausiai bus matyti daug segmentavimo gedimai, kaip jūs 400 00:20:17,990 --> 00:20:20,530 įgyvendinti kai kuriuos probleminius rinkinių. 401 00:20:20,530 --> 00:20:24,950 Tačiau tai yra vienas iš būdų, kuris galite susidurti segmentaciją 402 00:20:24,950 --> 00:20:28,540 kaltė, kai pradėsite gauti atminties būdų, kad jums neturėtų būti. 403 00:20:28,540 --> 00:20:34,117 Taigi mes ne turėti prieigą prie Ši vieta ir tai yra klaida. 404 00:20:34,117 --> 00:20:37,760 405 00:20:37,760 --> 00:20:40,190 >> Taigi tai yra geriau. 406 00:20:40,190 --> 00:20:45,820 Dabar vis dar yra maža problema su šiuo kodu. 407 00:20:45,820 --> 00:20:50,720 Ir tai iš esmės, kad mes vis dar įstrigo keturių studentų. 408 00:20:50,720 --> 00:20:52,940 Dabar, jei aš noriu naudoti aštuonių studentų, Gerai. 409 00:20:52,940 --> 00:20:54,350 Tai nereiškia, kad didelis spręsti. 410 00:20:54,350 --> 00:20:58,120 Galiu eiti, keisti Komentuoti ir keisti n. 411 00:20:58,120 --> 00:20:59,760 Dabar tai bus dirbti su aštuonių studentų. 412 00:20:59,760 --> 00:21:02,190 Jei aš surinkti tai ir paleisti tai, parodys me-- 413 00:21:02,190 --> 00:21:07,870 ji prašys sveikieji aštuoniems studentai ir jis bus tiesiog dirbti. 414 00:21:07,870 --> 00:21:11,850 Bet tai mažiau nei idealus reikia perkompiliuoti programos kiekvieną kartą 415 00:21:11,850 --> 00:21:15,960 Noriu pakeisti studentų skaičių kad aš noriu įvesti amžiaus cenzą. 416 00:21:15,960 --> 00:21:22,990 >> Taigi galutinis patobulinimas tai, kaip matysime here-- mes 417 00:21:22,990 --> 00:21:26,177 ketina prašyti žmonių skaičių. 418 00:21:26,177 --> 00:21:28,010 Čia mes turime skaičių Žmonių kambariuose 419 00:21:28,010 --> 00:21:29,880 arba bet kokį žmonių į kambarį amžiaus. 420 00:21:29,880 --> 00:21:33,300 Tačiau mes ketiname prašyti skaičių žmonių kambario iš vartotojo. 421 00:21:33,300 --> 00:21:36,171 Taigi, tai yra tą patį do-o kilpa, kad mes matėme anksčiau. 422 00:21:36,171 --> 00:21:37,920 Tai lygiai toks pats do-while cikle, kad jūs 423 00:21:37,920 --> 00:21:40,050 gali būti įgyvendinti dėl problemų rinkinys. 424 00:21:40,050 --> 00:21:43,102 Taigi tol, kol jie surinkdamas n mažiau negu 1, 425 00:21:43,102 --> 00:21:45,310 todėl turiu būti ne bent vienas asmuo kambaryje. 426 00:21:45,310 --> 00:21:47,407 Tol, kol jie surinkdamas n mažiau negu 1, 427 00:21:47,407 --> 00:21:48,990 tada mes ketiname nuolat klausia vėl. 428 00:21:48,990 --> 00:21:50,906 Prašome įvesti numerį žmonių kambarį. 429 00:21:50,906 --> 00:21:53,550 Dabar, kai mes turime skaičių žmonių į room-- 430 00:21:53,550 --> 00:21:58,020 todėl aš gali įvesti, kad Yra 200 žmonių šiame kambaryje. 431 00:21:58,020 --> 00:22:05,480 Tada žemyn čia mes ketiname ateiti ir paskelbti apie dydžio 200 masyvo. 432 00:22:05,480 --> 00:22:10,220 Mes deklaruojant masyvo, kad yra pakankamai didelis, kad turėti 200 amžių. 433 00:22:10,220 --> 00:22:15,370 Coming Down, tai už kilpos kad gausite labai naudojamas. 434 00:22:15,370 --> 00:22:19,490 Taigi Iteracja per šį masyvą, priskiriant kiekvienai vietovei 435 00:22:19,490 --> 00:22:23,020 toje masyvo sveikasis skaičius, ir Tada galiausiai čia mes 436 00:22:23,020 --> 00:22:28,340 tiesiog gauti žinutę iš Iteracja pavyzdį per tą masyvą, o ne priskirti vertybes, 437 00:22:28,340 --> 00:22:30,150 bet patekti į vertybes. 438 00:22:30,150 --> 00:22:33,810 >> Taigi per čia matome, kad mes sako, per metus nuo dabar, 439 00:22:33,810 --> 00:22:40,470 Asmuo% būsiu% i metai, kur pirmasis% i yra i plius 1. 440 00:22:40,470 --> 00:22:43,010 Taigi aš tai indekso kintamasis. 441 00:22:43,010 --> 00:22:49,420 Ir antra% i ketina būti vertė saugomi amžius masyvo plius 1 d. 442 00:22:49,420 --> 00:22:54,217 Taigi, tai plius 1 yra tik todėl, kad mes saying-- šį plius 1, amžių i plius 1. 443 00:22:54,217 --> 00:22:57,050 Tai plius 1 yra tik todėl, kad mes sakydamas, per metus nuo dabar asmeniui 444 00:22:57,050 --> 00:22:58,280 bus tai senas. 445 00:22:58,280 --> 00:23:01,080 >> Taigi kodėl tai man plius 1? 446 00:23:01,080 --> 00:23:04,064 Kodėl mes turime ir 1 ten? 447 00:23:04,064 --> 00:23:04,564 Taip. 448 00:23:04,564 --> 00:23:07,410 449 00:23:07,410 --> 00:23:07,930 Taip. 450 00:23:07,930 --> 00:23:10,510 Taigi nepamirškite matricos yra nulis indeksuojami. 451 00:23:10,510 --> 00:23:14,840 Taigi, jei mes spausdinate tai dėmesį kažkas tiesiog skaityti produkcija, 452 00:23:14,840 --> 00:23:19,380 tada tikriausiai jie nori pamatyti kažką kaip asmuo viename, asmens numeris vienas, 453 00:23:19,380 --> 00:23:21,160 bus 20 metai. 454 00:23:21,160 --> 00:23:23,570 Asmuo numeris du bus 15 metai. 455 00:23:23,570 --> 00:23:27,420 Jie mieliau nematote asmenį skaičius nulis yra 15 metai. 456 00:23:27,420 --> 00:23:36,460 >> Taigi rengiant šį ir tik pamatyti, ką atrodo like-- Sukurti šiek tiek erdvės. 457 00:23:36,460 --> 00:23:43,560 Padaryti kurių amžius kaupia. 458 00:23:43,560 --> 00:23:45,080 Veikia amžių. 459 00:23:45,080 --> 00:23:46,580 Mes matome skaičių žmonių į kambarį. 460 00:23:46,580 --> 00:23:48,850 Taigi aš sakau yra trys žmonės kambaryje. 461 00:23:48,850 --> 00:23:54,000 Amžius asmuo numeris vienas, tarkim 15, 20, 25. 462 00:23:54,000 --> 00:23:59,680 O dabar pasakysiu per metus nuo dabar jie bus 16, 21, 26. 463 00:23:59,680 --> 00:24:02,900 Leiskite pamatyti, kad tai dirba su N, kad yra ne lygus 3. 464 00:24:02,900 --> 00:24:07,940 Taigi, jei aš sakau, žmonių skaičius yra 5, viena, du, tris, du, vienas, per metus nuo dabar 465 00:24:07,940 --> 00:24:11,170 jie bus du, trys, keturi, trys, du metai. 466 00:24:11,170 --> 00:24:16,500 Taigi galėjau tik kaip lengvai jau n būti 10.000. 467 00:24:16,500 --> 00:24:21,270 Dabar aš būsiu sėdi čia gana kartu, įvesdami amžių, bet tai veikia. 468 00:24:21,270 --> 00:24:26,000 >> Taigi dabar atmintyje kažkur mes turėti tai, dydis 10,000 masyvą, 469 00:24:26,000 --> 00:24:28,830 taip galiausiai 40000 baitų, nes yra 470 00:24:28,830 --> 00:24:31,222 keturių baitų kiekvienam iš šių skaičių. 471 00:24:31,222 --> 00:24:33,180 Taigi ten yra iš masyvo dydis 10,000 kur mes galime 472 00:24:33,180 --> 00:24:36,201 saugoti tų 10000 žmonių amžių. 473 00:24:36,201 --> 00:24:36,700 Gerai. 474 00:24:36,700 --> 00:24:40,070 Turite klausimų apie bet apie tai? 475 00:24:40,070 --> 00:24:41,892 Taip. 476 00:24:41,892 --> 00:24:43,350 Ką daryti, jei jums davė neigiamą skaičių? 477 00:24:43,350 --> 00:24:44,870 Pažiūrėkime, kas atsitiks. 478 00:24:44,870 --> 00:24:49,320 Taigi, šio konkretaus case-- skaičius žmonių į kambarį, neigiamas. 479 00:24:49,320 --> 00:24:52,580 Jis atmetė, kad nes čia mes atsitikti 480 00:24:52,580 --> 00:24:57,180 būti kėlimo į tai, kad, jei n yra mažiau nei vieną mes ketiname vėl paklausti. 481 00:24:57,180 --> 00:25:01,780 Jei bandysite paskelbti masyvas neigiamas dydis, 482 00:25:01,780 --> 00:25:03,950 jis paprastai neveikia. 483 00:25:03,950 --> 00:25:05,570 >> Taigi pabandykime. 484 00:25:05,570 --> 00:25:08,000 Leiskite ignoruoti kokia vertę, kurią jos indėlis n 485 00:25:08,000 --> 00:25:10,571 ir tiesiog pasakyti, int amžiai neigiama. 486 00:25:10,571 --> 00:25:12,410 Leiskite pamatyti, jei ji net kaupia. 487 00:25:12,410 --> 00:25:14,100 Aš nesu tikras. 488 00:25:14,100 --> 00:25:14,920 Ne. 489 00:25:14,920 --> 00:25:18,280 Taigi amžius yra paskelbta kaip masyvas su neigiamu dydžiu. 490 00:25:18,280 --> 00:25:22,540 Taigi iš anksto ji pripažįsta masyvas negali būti neigiamas dydis ir jį atmeta. 491 00:25:22,540 --> 00:25:26,840 Dabar, jei mes ne rankena tai do-while cikle teisingai, 492 00:25:26,840 --> 00:25:28,810 Jei nebūtume tikrinti jei n yra mažiau nei 1-- 493 00:25:28,810 --> 00:25:32,690 tarkim mes tiesiog neturėjo tai ne visi 494 00:25:32,690 --> 00:25:35,940 ir vietoj to mes tiesiog patraukti sveikasis skaičius. 495 00:25:35,940 --> 00:25:40,710 Nesvarbu, kas tai sveikas yra, mes paskelbti apie šio dydžio masyvo. 496 00:25:40,710 --> 00:25:44,250 >> Taigi sudarytojas negali galbūt skundžiasi dabar. 497 00:25:44,250 --> 00:25:48,780 Jei aš kaupia this-- todėl negaliu skųstis, 498 00:25:48,780 --> 00:25:51,480 nes jis negali žinoti, kad aš ketina įvesti neigiamą skaičių, 499 00:25:51,480 --> 00:25:52,550 kuris gali būti neteisingas. 500 00:25:52,550 --> 00:25:54,633 Nes visi žino, galėčiau įvesti teigiamą skaičių, 501 00:25:54,633 --> 00:25:56,000 kuris yra visiškai neteisingas. 502 00:25:56,000 --> 00:26:01,090 Taigi aš įsivaizduoju, jei aš įvesti neigiamus 1 žmonių kambaryje, segmentavimas gedimą. 503 00:26:01,090 --> 00:26:06,040 >> Taigi, Gerai. 504 00:26:06,040 --> 00:26:13,160 Taigi leiskite pridėti atgal tik laikyti jį, ką jis iš pradžių buvo. 505 00:26:13,160 --> 00:26:15,640 Todėl įsitikinkite, amžių. 506 00:26:15,640 --> 00:26:18,120 Dabar, jei aš noriu pabandyti neigiamas age-- tad 507 00:26:18,120 --> 00:26:19,710 sako, kad yra penki žmonės į kambarį. 508 00:26:19,710 --> 00:26:23,180 Amžius asmuo numeris vienas yra neigiamas 4, žmogus tris 509 00:26:23,180 --> 00:26:26,500 yra lygus nuliui, asmuo three-- Gerai. 510 00:26:26,500 --> 00:26:29,850 Taigi čia, per metus nuo dabar, asmens numeris vienas bus neigiamas 3 metai. 511 00:26:29,850 --> 00:26:32,830 Taigi tikriausiai nėra prasmės. 512 00:26:32,830 --> 00:26:37,220 Bet tai tik todėl, kad ieško tuo kodu visi mes darome 513 00:26:37,220 --> 00:26:40,260 prašo GetInt. 514 00:26:40,260 --> 00:26:44,110 >> Dabar, jei mes būtume turėjo GetPositiveInt funkcija 515 00:26:44,110 --> 00:26:49,690 arba mes tiesiog padarė Rūšiuoti to paties, o kilpa ten, 516 00:26:49,690 --> 00:26:52,340 tada tai veiks puikiai baudą. 517 00:26:52,340 --> 00:26:54,200 Bet šiuo konkrečiu atveju, mes tiesiog ne 518 00:26:54,200 --> 00:26:57,772 atsitiktų būti tvarkyti neigiamas reikšmes. 519 00:26:57,772 --> 00:26:59,147 Visi kiti klausimai apie matricas? 520 00:26:59,147 --> 00:27:02,290 521 00:27:02,290 --> 00:27:03,250 GERAI. 522 00:27:03,250 --> 00:27:09,380 >> Taigi dabar mes matėme masyvus. 523 00:27:09,380 --> 00:27:12,500 Ir mes ketiname reikia naudoti Šis komandų eilutės argumentus. 524 00:27:12,500 --> 00:27:14,680 Taigi problema nustatyti two-- Aš žinau, kad daugelis iš jūsų 525 00:27:14,680 --> 00:27:18,040 vis dar gali būti darbo problemą, rinkinį vienas, bet problema nustatyti du artėja. 526 00:27:18,040 --> 00:27:22,260 Be problema nustatyti du, jūs ketinate reikia bendraujant su stygos, matricos, 527 00:27:22,260 --> 00:27:23,950 ir komandinės eilutės argumentai. 528 00:27:23,950 --> 00:27:26,270 >> Taigi, kas yra komandinės eilutės argumentai? 529 00:27:26,270 --> 00:27:29,570 Dabar, jūs galite pamatyti žemyn Čia mažai kibinimas už ką yra 530 00:27:29,570 --> 00:27:30,950 bus vyksta. 531 00:27:30,950 --> 00:27:32,950 Matome int main, INC argc, styginių argv skliausteliuose. 532 00:27:32,950 --> 00:27:34,560 533 00:27:34,560 --> 00:27:38,130 Taigi, pirmiausia pabandykime suprasti ką tai bando pasakyti. 534 00:27:38,130 --> 00:27:40,800 Dabar Gerai. 535 00:27:40,800 --> 00:27:44,637 >> Taigi komandų eilutėje jums turėtų būti priprasti prie kai kurių iš šių komandų 536 00:27:44,637 --> 00:27:48,580 dabar, ir jūs tikriausiai paleisti CD terminale anksčiau. 537 00:27:48,580 --> 00:27:52,100 Taigi, jei mes sakome, cd pset1, jūs žinote, kad turėtų 538 00:27:52,100 --> 00:27:55,050 būti pakeisti į pset1 kataloge. 539 00:27:55,050 --> 00:27:59,120 >> Dabar pastebėsite, kad jūs niekada parašyta kaip ši programa iki šiol. 540 00:27:59,120 --> 00:28:03,120 Kiekviena programa, kad jūs parašiau, Jums būtų paleisti, tarkim, dot velniop Mario, 541 00:28:03,120 --> 00:28:06,779 dot velniop gobšus, ir tada ją gali paskatinti jus įėjimo. 542 00:28:06,779 --> 00:28:08,570 Dabar, tai ne tai, ką Pakeisti katalogas daro. 543 00:28:08,570 --> 00:28:12,770 Paleidus cd, ji neturi sakykite, kuri katalogas norite cd į? 544 00:28:12,770 --> 00:28:17,200 Vietoj to, jūs tiesiog pasakyti, CD pset1 ir jis tiesiog eina į pset1 kataloge. 545 00:28:17,200 --> 00:28:20,430 >> Taigi panašiai mes turime kitų pavyzdžių. 546 00:28:20,430 --> 00:28:21,540 padaryti labas. 547 00:28:21,540 --> 00:28:25,760 Paleidus padaryti, ji neturi sakykite, kuri programa norėtumėte padaryti? 548 00:28:25,760 --> 00:28:29,620 Jūs tiesiog pasakyti, ne komandinės eilutės padaryti labas. 549 00:28:29,620 --> 00:28:31,060 >> Perkelti yra dar vienas pavyzdys. 550 00:28:31,060 --> 00:28:34,840 Tai vienas mes perstumiant mario.c failą sudaro vieną katalogą. 551 00:28:34,840 --> 00:28:38,060 Taigi, dabar mes žinome, su šiame pavyzdyje mes tikrai artimųjų du argumentus. 552 00:28:38,060 --> 00:28:42,090 Yra mario.c kaip pirmojo argumento, ir taškas taškas yra antras argumentas. 553 00:28:42,090 --> 00:28:46,140 Ir tada, kai paleidžiate padaryti, jums matyti, kad tikrai ilgai komandą line-- 554 00:28:46,140 --> 00:28:50,580 kad tikrai ilgai komandą spausdinamos komandų eilutę. 555 00:28:50,580 --> 00:28:53,590 Taigi, kad ilgai tai command-- yra tik trumpas jo dalis, 556 00:28:53,590 --> 00:28:56,090 bet dabar mes turime tris komandų eilutės argumentai. 557 00:28:56,090 --> 00:28:59,750 Dot Dash nulis, labas, ir hello.c. 558 00:28:59,750 --> 00:29:03,497 >> Taigi tai yra komandų eilutės argumentus, argumentai 559 00:29:03,497 --> 00:29:05,580 kad jūs artimųjų ne komandinės eilutės taip, kad jis 560 00:29:05,580 --> 00:29:08,680 nebūtinai turi būti užklausia kai paleidžiate programą. 561 00:29:08,680 --> 00:29:13,090 Būtų varginantis, jei kai jūs paleidote klingsėti jis sakė: "Gerai, 562 00:29:13,090 --> 00:29:15,630 kuri program-- kuris failo jūs sudarymo? 563 00:29:15,630 --> 00:29:17,010 Hello.c. 564 00:29:17,010 --> 00:29:19,440 Kas vėliavos prašau patinka įvesti? brūkšnys o. 565 00:29:19,440 --> 00:29:21,190 Ką norėtumėte failas turi būti vadinama? 566 00:29:21,190 --> 00:29:21,690 Labas. 567 00:29:21,690 --> 00:29:25,290 Ne, jūs tiesiog paleisti klingsėti brūkšnys O sveikinasi hello.c. 568 00:29:25,290 --> 00:29:28,820 >> Taigi Prisiminus tai. 569 00:29:28,820 --> 00:29:32,920 Dabar argc-- argc yra argumentas skaičius. 570 00:29:32,920 --> 00:29:36,620 Tai iš komandų eilutės numeris argumentai įvesta į komandų eilutę. 571 00:29:36,620 --> 00:29:39,720 Na, argv-- techniškai V reiškia vektorių, 572 00:29:39,720 --> 00:29:41,460 kuris iš esmės reiškia masyvo. 573 00:29:41,460 --> 00:29:42,680 Bet jūs galite ignoruoti tai. 574 00:29:42,680 --> 00:29:47,540 Argv-- turime string argv, todėl eilutė argv skliausteliuose. 575 00:29:47,540 --> 00:29:50,150 Taigi, tai yra dar vienas forma skliausteliuose jūs dar nematėte anksčiau. 576 00:29:50,150 --> 00:29:52,300 Taigi mes matėme laikiklis žymėjimas, kai mes jau sakiau, 577 00:29:52,300 --> 00:29:53,970 kaip, styginių -ai lygus Zamyla. 578 00:29:53,970 --> 00:29:56,910 ai laikiklis 0 pasiekia simbolių Z. 579 00:29:56,910 --> 00:30:00,720 >> Mes taip pat matėme skliaustų sakėme int amžiaus laikiklis 5. 580 00:30:00,720 --> 00:30:03,160 Tai paskelbė apie dydis 5 masyvo. 581 00:30:03,160 --> 00:30:06,280 Taigi čia yra versija skliausteliuose mes nematėme anksčiau. 582 00:30:06,280 --> 00:30:09,630 Taigi šis styginių argv rūšiuoti, kad būtų visiškai susipažinę 583 00:30:09,630 --> 00:30:12,050 kad ji būtų tiesiog eilutė. 584 00:30:12,050 --> 00:30:14,520 Dabar skliausteliai rodo , kad tai yra matrica. 585 00:30:14,520 --> 00:30:19,920 Taigi styginių argv laikikliai priemonės kad argv yra eilučių masyvas. 586 00:30:19,920 --> 00:30:22,540 Dabar techniškai eilutė yra simbolių masyvas. 587 00:30:22,540 --> 00:30:26,400 Taigi tai dabar masyvas kurio simbolių masyvo. 588 00:30:26,400 --> 00:30:31,490 Bet tai daug lengviau galvoti apie tai kaip tik eilučių masyvas. 589 00:30:31,490 --> 00:30:34,900 >> Tad kodėl gali skliausteliuose būti tuščias? 590 00:30:34,900 --> 00:30:38,170 Kaip, kodėl gi ne mes galime pasakyti, laikiklis 5, laikiklis n? 591 00:30:38,170 --> 00:30:40,700 592 00:30:40,700 --> 00:30:41,200 Taip. 593 00:30:41,200 --> 00:30:43,731 594 00:30:43,731 --> 00:30:44,230 Taip. 595 00:30:44,230 --> 00:30:46,396 Mes nežinome, kiek ten įėjimai bus. 596 00:30:46,396 --> 00:30:53,560 Taigi, jei pažvelgsime į klingsėti pavyzdžiui, tarkim klingsėti brūkšnys O Hello hello.c. 597 00:30:53,560 --> 00:30:56,710 Šiuo konkrečiu atveju, yra atsitikti būti trys komandinės eilutės argumentai. 598 00:30:56,710 --> 00:31:00,522 Ir taip brackets-- matysime per sekundę nebūtų trys. 599 00:31:00,522 --> 00:31:01,730 Tai techniškai būtų keturi. 600 00:31:01,730 --> 00:31:04,030 Bet skliausteliuose, mes norėtume tarkim, yra trys. 601 00:31:04,030 --> 00:31:08,220 Bet dabar, jei mes pažvelgė kelyje mario.c dot dot, laikikliai 602 00:31:08,220 --> 00:31:09,760 mes norime įdėti du jų. 603 00:31:09,760 --> 00:31:12,884 >> Ir yra daug komandų daug, kad turėti kintamąjį skaičių komandų eilutės 604 00:31:12,884 --> 00:31:13,620 argumentus. 605 00:31:13,620 --> 00:31:17,430 Taigi, ką tai versija laikiklis notacija rodo 606 00:31:17,430 --> 00:31:20,820 yra tai, kad argv yra eilučių masyvas. 607 00:31:20,820 --> 00:31:24,360 Bet mes nežinome, kiek įsipareigojimų yra toje masyvo. 608 00:31:24,360 --> 00:31:27,090 Ir kaip mes tada žinote, kaip daug įsipareigojimų yra masyve? 609 00:31:27,090 --> 00:31:28,870 Štai visa esmė argc. 610 00:31:28,870 --> 00:31:32,300 argc pasakoja mums, kaip ilgai argv yra. 611 00:31:32,300 --> 00:31:36,500 >> Taigi paskutinis dalykas, išlaikyti omenyje tai, kad techniškai, 612 00:31:36,500 --> 00:31:40,820 pati komanda skaičiuoja kaip vieną iš komandinės eilutės argumentai. 613 00:31:40,820 --> 00:31:45,330 Taigi cd pset1, yra du komandų eilutės argumentai. 614 00:31:45,330 --> 00:31:50,260 Pats programa, CD, tada faktinis argumentas dalis, pset1. 615 00:31:50,260 --> 00:31:54,490 Bet programa, kuri jums parašiau šiol turėjo vieną komandinės eilutės argument-- tašką 616 00:31:54,490 --> 00:31:55,320 slash Mario. 617 00:31:55,320 --> 00:31:57,350 Tai yra vienintelis komandinės eilutės argumentas. 618 00:31:57,350 --> 00:32:00,900 >> Taigi dabar žiūri klingsėti brūkšnys O sveikinasi hello.c. 619 00:32:00,900 --> 00:32:01,905 Taigi, kas yra 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 Taigi argc yra 4. 623 00:32:08,140 --> 00:32:12,140 Klingsėti, todėl argv laikiklis 0 yra žvangėjimas. 624 00:32:12,140 --> 00:32:15,630 argv laikiklis 1 yra brūkšnys 0. 625 00:32:15,630 --> 00:32:21,870 argv laikiklis 2 yra labas, ir argv laikiklis 3 yra hello.c. 626 00:32:21,870 --> 00:32:26,813 Gerai, kad klausimai dėl šio, tada mes pažvelgti į kai programin pavyzdžių. 627 00:32:26,813 --> 00:32:29,460 628 00:32:29,460 --> 00:32:30,480 >> GERAI. 629 00:32:30,480 --> 00:32:36,260 Taigi, mes priimsime hello3.c išvaizdą. 630 00:32:36,260 --> 00:32:41,890 Taigi tai turėtų būti susipažinę nuo vienas iš pirmųjų c pavyzdžių 631 00:32:41,890 --> 00:32:45,800 mes turėjome kur mes tiesiog pasakyti, labas pasaulis, bet dabar tai yra bendresnio pobūdžio. 632 00:32:45,800 --> 00:32:52,300 Taigi čia mes saying hello % s Backslash N argv laikiklis 1. 633 00:32:52,300 --> 00:32:57,440 Notice-- todėl Iki šio taško, tai yra ką mano šablonas failas atrodė. 634 00:32:57,440 --> 00:33:01,800 Turėjau int main (void), ir tada aš padaryti kažką pagrindinės funkcijos. 635 00:33:01,800 --> 00:33:05,100 Dabar vietoj to, kai mes pradėsime spręsti su komandų eilutės argumentus, 636 00:33:05,100 --> 00:33:07,890 turime narė A skirtingos formos pagrindinis. 637 00:33:07,890 --> 00:33:11,930 >> Taigi žiūri hello3 Vėlgi, pagrindinis vyksta 638 00:33:11,930 --> 00:33:15,990 imtis du argumentus now-- int argc, iš komandinės eilutės argumentai numeris 639 00:33:15,990 --> 00:33:20,970 ir styginių argv skliausteliuose, faktinis įsipareigojimų įvesta į komandų eilutę. 640 00:33:20,970 --> 00:33:26,560 Taigi, aš ruošiuosi pakeisti, kad Šablonas atspindėti šį faktą. 641 00:33:26,560 --> 00:33:29,060 Dabar, kai rašote programa, jei jūs neturite 642 00:33:29,060 --> 00:33:33,720 reikia imtis kokių nors komandų eilutės argumentai, tada tiesiog naudokite int main (void). 643 00:33:33,720 --> 00:33:37,070 Bet dabar, kai rašote komandų eilutės argumentas programas, kurios 644 00:33:37,070 --> 00:33:40,350 jūs ketinate daryti dėl problemos nustatyti two-- Taigi dabar, kad jūs naudojate 645 00:33:40,350 --> 00:33:42,630 programos, kad reikia imtis komandų eilutės argumentai, 646 00:33:42,630 --> 00:33:45,250 Jums reikia turėti Pagrindinis šios formos. 647 00:33:45,250 --> 00:33:51,290 >> Taigi here-- tai yra didelis naudojimas iš komandinės eilutės argumentas. 648 00:33:51,290 --> 00:33:54,100 Taigi spausdinant argv 1. 649 00:33:54,100 --> 00:33:59,180 Gerai, kad tegul kaupia ir paleisti šią programą. 650 00:33:59,180 --> 00:34:02,440 Padaryti hello3. 651 00:34:02,440 --> 00:34:03,570 Kaupia. 652 00:34:03,570 --> 00:34:06,870 Dot velniop hello3. 653 00:34:06,870 --> 00:34:08,920 Ir tarkim, "Rob". 654 00:34:08,920 --> 00:34:10,760 Sveiki Robas. 655 00:34:10,760 --> 00:34:14,940 Jei aš sakau, "Labas Maria," Labas Maria. 656 00:34:14,940 --> 00:34:15,719 Sveiki Marija. 657 00:34:15,719 --> 00:34:18,639 Hannah vis sako: "labas Marija ", nes aš nesu 658 00:34:18,639 --> 00:34:21,340 ką nors su mūsų argv 2. 659 00:34:21,340 --> 00:34:22,590 Argv 2 dabar būtų "Ona". 660 00:34:22,590 --> 00:34:25,030 Argc būtų 3. 661 00:34:25,030 --> 00:34:27,735 Ką daryti, jei aš tai padariau? 662 00:34:27,735 --> 00:34:31,980 663 00:34:31,980 --> 00:34:34,679 Taigi Sveiki null. 664 00:34:34,679 --> 00:34:38,760 >> Jis trumpai užsiminė apie tai, kad techniškai, GetString 665 00:34:38,760 --> 00:34:42,429 gali grįžti niekinis, bet mes gauti daug daugiau į tai, kas null iš tikrųjų yra. 666 00:34:42,429 --> 00:34:47,449 Bet jį kaip materijos Tai, kad paprastai yra blogai. 667 00:34:47,449 --> 00:34:50,179 Mes padarėme kažką blogo, jei tai spausdinant "labas null." 668 00:34:50,179 --> 00:34:52,179 Ir priežastis, kodėl mes padarėme kažkas negerai is-- gerai, 669 00:34:52,179 --> 00:34:56,179 kai išbėgau dot velniop hello3, argc buvo 1. 670 00:34:56,179 --> 00:34:59,680 Taigi tai reiškia, kad iš argv ilgis buvo 1. 671 00:34:59,680 --> 00:35:05,110 Jei masyvas yra Ilgio 1 vienintelis galioja indeksas yra lygus nuliui. 672 00:35:05,110 --> 00:35:08,550 Ir todėl čia argv 1 yra už šio masyvo asortimentas. 673 00:35:08,550 --> 00:35:13,410 Jis buvo panašus į anksčiau, kai aš bandžiau saugoti 6 ribų masyvo pabaigos. 674 00:35:13,410 --> 00:35:18,100 Taigi aš bandau pasiekti kažką ne iš argv skaičiaus, 675 00:35:18,100 --> 00:35:21,340 ir mes vis niekinis. 676 00:35:21,340 --> 00:35:24,360 >> Taigi geriau versija tai, pagerėjimas, 677 00:35:24,360 --> 00:35:27,010 aiškiai tikrinti argc. 678 00:35:27,010 --> 00:35:33,580 Taigi, jei argc lygus 2, tai reiškia, kad mes bėgo kažkas panašaus taškų velniop hello3 Rob. 679 00:35:33,580 --> 00:35:36,840 Ir tai bus print "Sveikas Rob". 680 00:35:36,840 --> 00:35:39,850 Jei argc nėra lygi 2, tada ji tiesiog vyksta 681 00:35:39,850 --> 00:35:42,560 ignoruoti, ką jūs įtraukėte komandinės eilutės argumentas 682 00:35:42,560 --> 00:35:43,960 kaip komandų eilutės argumentus. 683 00:35:43,960 --> 00:35:47,168 Arba, jei tu negali įdėti bet ne visi, tai tik ketina ignoruoti, kad ir tiesiog pasakyti, 684 00:35:47,168 --> 00:35:47,960 "Labas." 685 00:35:47,960 --> 00:35:51,490 >> Taigi sudarant tai. 686 00:35:51,490 --> 00:35:54,500 Padaryti hello4. 687 00:35:54,500 --> 00:35:56,790 Ir veikia hello4. 688 00:35:56,790 --> 00:36:00,010 Veikia jis tokiu būdu, Ką reikia atspausdinti? 689 00:36:00,010 --> 00:36:01,330 "Labas." 690 00:36:01,330 --> 00:36:02,810 Labas. 691 00:36:02,810 --> 00:36:05,870 Ką apie hello4 Rob? 692 00:36:05,870 --> 00:36:06,950 "Labas Rob". 693 00:36:06,950 --> 00:36:10,580 Ir, pagaliau, Hello Robas Marija yra tik "labas Jūs" vėl 694 00:36:10,580 --> 00:36:13,677 nes tu tikrai ne įvesti kažkas, kad jis buvo tikėtasi. 695 00:36:13,677 --> 00:36:15,510 Jūs įvedėte daugiau pavadinimų nei jis galėtų dirbti, 696 00:36:15,510 --> 00:36:19,500 todėl tiesiog nenurodžius Hello jums elgesį. 697 00:36:19,500 --> 00:36:23,040 Taigi klausimų apie tai? 698 00:36:23,040 --> 00:36:26,290 Arba komandų eilutės argumentai? 699 00:36:26,290 --> 00:36:28,690 >> Gerai, kad atsižvelgiant ne išvaizdą pora daugiau pavyzdžių, naudojant 700 00:36:28,690 --> 00:36:34,230 komandų eilutės arguments-- pirmas mes argv brūkšnys 1 dot C. 701 00:36:34,230 --> 00:36:38,510 Taigi komentarai atiduoti tai, ką Ši programa turėtų daryti. 702 00:36:38,510 --> 00:36:42,460 Tačiau pastebėti now-- tai už kilpos, ši tiksliai atitinka modelį 703 00:36:42,460 --> 00:36:43,390 Sakiau anksčiau. 704 00:36:43,390 --> 00:36:46,240 Mes tiesiog atsitikti, kad naudojant argc vietoj n. 705 00:36:46,240 --> 00:36:48,880 Dabar argc yra tikrai n. 706 00:36:48,880 --> 00:36:51,260 Tai iš argv masyvo ilgį. 707 00:36:51,260 --> 00:36:59,600 Taigi yra Iteracja per argv masyvas printf-mas kiekvieną argv vertę. 708 00:36:59,600 --> 00:37:04,730 >> Taigi, jei aš padaryti tai. 709 00:37:04,730 --> 00:37:08,232 Padaryti argv 1. 710 00:37:08,232 --> 00:37:09,940 Jis kaupia. 711 00:37:09,940 --> 00:37:11,620 Dot velniop argv 1. 712 00:37:11,620 --> 00:37:15,530 Tiesiog veikia tai, spausdina dot velniop argv 1 713 00:37:15,530 --> 00:37:18,500 nes tai buvo vienintelis komandų eilutės argument-- programos pavadinimą. 714 00:37:18,500 --> 00:37:22,080 Visada bus least-- argc negali būti mažesnis už vieną, 715 00:37:22,080 --> 00:37:25,910 nes visada bus bent būti programos pavadinimas paleisti. 716 00:37:25,910 --> 00:37:32,040 Taigi argv 1 Robas bus atspausdinti argv 1 ir tada ant naujos linijos "Rob". 717 00:37:32,040 --> 00:37:36,350 >> Taigi, pirmoje iteracijos Šios kilpos, i 0. 718 00:37:36,350 --> 00:37:39,090 Argv 0 yra programos pavadinimas. 719 00:37:39,090 --> 00:37:40,010 Dot velniop argv 1. 720 00:37:40,010 --> 00:37:43,770 Ir tada argv 1 yra mano pirmasis komandinės eilutės argumentas, kuris yra Robas. 721 00:37:43,770 --> 00:37:45,920 Šiuo metu, mes lygus argc. 722 00:37:45,920 --> 00:37:48,210 Mes išeiti iš kilpos ir baigsime. 723 00:37:48,210 --> 00:37:53,940 Taigi tai bus dirbti savavališkai skaičius komandų eilutės argumentus. 724 00:37:53,940 --> 00:37:58,550 Atkreipkite dėmesį, jis spausdina argv 0, argv 1, argv 2, argv 3, argv 4. 725 00:37:58,550 --> 00:38:00,150 Ir nėra argv 5. 726 00:38:00,150 --> 00:38:01,460 argc yra lygus 5. 727 00:38:01,460 --> 00:38:06,960 Tad argc-- ne i lygus 5, laužome iš kilpos. 728 00:38:06,960 --> 00:38:07,950 GERAI. 729 00:38:07,950 --> 00:38:11,315 Taigi klausimus, kad kol mes ieškoti sudėtingesnio pavyzdžiui? 730 00:38:11,315 --> 00:38:14,190 731 00:38:14,190 --> 00:38:16,860 >> Taigi argv 2. 732 00:38:16,860 --> 00:38:17,830 Gerai. 733 00:38:17,830 --> 00:38:20,610 Taigi mes vis dar spausdinti komandų eilutės argumentai. 734 00:38:20,610 --> 00:38:23,170 Bet dabar mes turime pastebėti, įdėtos į kilpą. 735 00:38:23,170 --> 00:38:24,670 Taigi, kas tai daro? 736 00:38:24,670 --> 00:38:28,430 Taigi pirmas kilpa daro ką ji darė anksčiau. 737 00:38:28,430 --> 00:38:30,950 Mes vis dar kilpų per kiekviena komandų eilutės argumentas, 738 00:38:30,950 --> 00:38:34,260 bet dabar šis antrasis loop-- mes Taip pat matė kažką panašaus anksčiau. 739 00:38:34,260 --> 00:38:38,600 Kai jis buvo Iteracja per Zamyla spausdinti Z-A-M-Y-L-A. 740 00:38:38,600 --> 00:38:44,816 Taigi, tai antroji kilpa int j lygi 0, n lygus strlen iš argv laikiklio i. 741 00:38:44,816 --> 00:38:49,170 >> Tad pirmasis galvoti the-- tegul pasivaikščioti. 742 00:38:49,170 --> 00:38:53,560 Pagalvokime, ką kompiuteris būtų daryti, jei išbėgau šią programą, kaip tik dot 743 00:38:53,560 --> 00:38:56,030 slash argv Dash 2. 744 00:38:56,030 --> 00:39:03,590 Taigi, jei išbėgau šį kodą, tada argc bus lygus 1. 745 00:39:03,590 --> 00:39:07,050 Ir styginių argv-- yra tik bus vienas indeksas argv, 746 00:39:07,050 --> 00:39:12,370 ir tai bus lygus dot slash argv 2-- programos pavadinimą. 747 00:39:12,370 --> 00:39:19,170 >> Gerai, kad dabar aš lygus 0, I mažiau nei 1, i plius plius int j lygus 0, 748 00:39:19,170 --> 00:39:23,880 n yra lygus strlen iš argv laikiklio 0, todėl pirmasis iteracijos šio kilpa. argv 749 00:39:23,880 --> 00:39:27,250 laikiklis 0 yra taškas velniop argv 2. 750 00:39:27,250 --> 00:39:29,320 Taigi, kas yra tos eilutės ilgis? 751 00:39:29,320 --> 00:39:32,480 Na, dot velniop A-R-G-V Dash 2. 752 00:39:32,480 --> 00:39:35,020 Taigi strlen to bus 8. 753 00:39:35,020 --> 00:39:37,500 Taigi j lygus 0, n lygus 8. 754 00:39:37,500 --> 00:39:39,530 Tol, kol j yra mažiau nei 8, J ++. 755 00:39:39,530 --> 00:39:44,080 Ir kad mes ketiname būti spausdinti vieną simbolį, kuris 756 00:39:44,080 --> 00:39:47,350 yra argv laikiklis i laikiklis j. 757 00:39:47,350 --> 00:39:49,826 >> Taigi vienintelis i yra lygus nuliui. 758 00:39:49,826 --> 00:39:51,700 Mes vis dar turime tik vieną komandinės eilutės argumentas. 759 00:39:51,700 --> 00:39:53,890 Tokiu pirmajam iteracijos iš už kilpos, mes 760 00:39:53,890 --> 00:39:56,950 bus spausdinimas argv laikiklis 0 laikiklis 0. 761 00:39:56,950 --> 00:39:58,325 Ir tada j ketina prieaugio. 762 00:39:58,325 --> 00:40:01,650 Ir mes ketiname spausdinti argv laikiklis 0 laikiklis 1. 763 00:40:01,650 --> 00:40:04,150 Ir tada argv laikiklis 0 laikiklio 2. 764 00:40:04,150 --> 00:40:09,030 >> Taigi tai yra mūsų pirmasis susitikimas multi-dimensional matricos. 765 00:40:09,030 --> 00:40:12,770 Prisiminti anksčiau, kad pasakiau kad argv yra techniškai 766 00:40:12,770 --> 00:40:15,950 AN masyvų simbolių masyvas. 767 00:40:15,950 --> 00:40:24,360 Taigi čia, jei aš sakė kažkas panašaus styginių -ai lygus argv kronšteiną i, 768 00:40:24,360 --> 00:40:29,590 ir tada aš pasakiau, S laikiklis j, tai būtų įvykdyti tą patį. 769 00:40:29,590 --> 00:40:31,960 Dabar, jūs matęs -ai laikiklis j. 770 00:40:31,960 --> 00:40:36,680 Tai tiesiog prisijungti prie j-osios šio pobūdžio eilutę. 771 00:40:36,680 --> 00:40:48,010 Taigi su tuo, mes gaunate j-osios pobūdis i-ojo argv. 772 00:40:48,010 --> 00:40:51,450 >> Taigi, kas turėtų tai galiausiai produkcijos? 773 00:40:51,450 --> 00:40:53,210 Padaryti argv 2. 774 00:40:53,210 --> 00:40:54,730 Jis kaupia. 775 00:40:54,730 --> 00:40:56,340 Dot velniop argv 2. 776 00:40:56,340 --> 00:41:03,790 "Robas Marija Ona", ir duoti mums šiek tiek kambarį. 777 00:41:03,790 --> 00:41:07,050 Taigi matome, kad tai išvedė dot savo linijos ir velniop 778 00:41:07,050 --> 00:41:08,920 savo linijos ir ant savo linija. 779 00:41:08,920 --> 00:41:11,260 Tai spausdinti kiekvieną individualių savybių 780 00:41:11,260 --> 00:41:12,950 Kiekvieno komandinės eilutės argumentas. 781 00:41:12,950 --> 00:41:15,960 Ir tada tarp jų, dėl šios naujos linijos 782 00:41:15,960 --> 00:41:19,380 mes spausdinti žemyn čia, tarp jų jis bus išspausdinti naują eilutę. 783 00:41:19,380 --> 00:41:24,540 >> Taigi, šis yra panašus į išankstinis argv brūkšnys 1, 784 00:41:24,540 --> 00:41:26,459 kuris spausdinamas kiekvieno komandinės eilutės argumentas, 785 00:41:26,459 --> 00:41:28,500 bet dabar mes spausdinti komandų eilutės argumentai 786 00:41:28,500 --> 00:41:31,950 ir tada Iteracja per kiekvieną charakteris kiekvieno komandinės eilutės argumentas 787 00:41:31,950 --> 00:41:35,400 gauti šią produkciją. 788 00:41:35,400 --> 00:41:36,870 GERAI? 789 00:41:36,870 --> 00:41:40,570 Taigi klausimų apie tai? 790 00:41:40,570 --> 00:41:45,130 >> Vienas dalykas, reikia pažymėti, kad komandų eilutės arguments-- 791 00:41:45,130 --> 00:41:49,990 todėl jie yra atskirti tarpais, kaip Jums natūraliai tikėtis, kad jie būtų. 792 00:41:49,990 --> 00:41:53,050 Taigi eilutė gali turėti tarpų. 793 00:41:53,050 --> 00:41:57,380 Tai nėra itin svarbus, bet jei aš norėjau trečiąją komandinės eilutės argumentas 794 00:41:57,380 --> 00:42:01,226 turėti erdvę į jį, tada aš Galima sakyti kažką panašaus į tai. 795 00:42:01,226 --> 00:42:04,470 796 00:42:04,470 --> 00:42:05,550 GERAI? 797 00:42:05,550 --> 00:42:12,190 Taigi, tai dabar dar tik trys komandų eilutės arguments-- gerai 4. 798 00:42:12,190 --> 00:42:17,620 Dot velniop argv Dash 2, Robas, Marija ir Ona "Bloomberg". 799 00:42:17,620 --> 00:42:18,320 GERAI. 800 00:42:18,320 --> 00:42:19,310 Klausimai apie tai? 801 00:42:19,310 --> 00:42:22,700 802 00:42:22,700 --> 00:42:24,894 >> Nėra nieko ypatinga apie kosmoso pobūdžio. 803 00:42:24,894 --> 00:42:27,810 Tai tik atsitinka būti, kad komandų eilutės gydo tarpo simbolį 804 00:42:27,810 --> 00:42:29,226 kaip, kaip jūs atskirkite argumentą. 805 00:42:29,226 --> 00:42:32,048 806 00:42:32,048 --> 00:42:33,000 Gerai. 807 00:42:33,000 --> 00:42:39,950 Taigi, problemą, two-- jūs ketinate būti 808 00:42:39,950 --> 00:42:43,240 žiūri paslaptis rakto kriptografija. 809 00:42:43,240 --> 00:42:47,700 Taigi, panašus į tą, pavyzdžiui mes matėme nuo A Christmas Story, 810 00:42:47,700 --> 00:42:52,840 jūs ketinate būti įgyvendinti kai kuriuos algoritmai, kad atsižvelgiant pranešimą, 811 00:42:52,840 --> 00:42:55,560 jūs ketinate būti suteikta galimybė šifruoti tą pranešimą 812 00:42:55,560 --> 00:42:58,730 kad tik kas nors su tuo paslaptimi raktas, su tuo dekoderio žiedas, 813 00:42:58,730 --> 00:43:01,090 turėtų būti suteikta galimybė iššifruoti. 814 00:43:01,090 --> 00:43:04,839 >> Taip, kad yra standartinis leidimas. 815 00:43:04,839 --> 00:43:07,130 Jūs ketinate būti įgyvendinti dvi skirtingos versijos. 816 00:43:07,130 --> 00:43:09,620 Jei atsitiktų, kad pažvelgti ne hakeris "versija dabar 817 00:43:09,620 --> 00:43:12,600 mes ketiname suteikti esi kaip tai eilutė, 818 00:43:12,600 --> 00:43:15,240 kuri atstovauja šifruotą slaptažodį. 819 00:43:15,240 --> 00:43:19,990 Taigi jūsų tikslas yra išsiaiškinti kas iššifruojama slaptažodis. 820 00:43:19,990 --> 00:43:26,950 Dabar tai yra iš tikrųjų how slaptažodžiai yra saugomi kompiuterių daug, 821 00:43:26,950 --> 00:43:31,290 ir tai tik parduotuvėse šį Atsitiktinės eilutė simbolių. 822 00:43:31,290 --> 00:43:34,440 Jūs turite išsiaiškinti, kaip gauti iš šio atsitiktinių eilutę simbolių 823 00:43:34,440 --> 00:43:36,140 ką originalus slaptažodis. 824 00:43:36,140 --> 00:43:39,060 825 00:43:39,060 --> 00:43:43,290 >> Ir, galiausiai, po to, kai šis Problema rinkinys, jūs turėtumėte 826 00:43:43,290 --> 00:43:46,100 galėtų suprasti, ką tai reiškia. 827 00:43:46,100 --> 00:43:51,650 Taigi jūs išmoksite kaip iššifruoti šis atsitiktinių eilutę rūšiuoti. 828 00:43:51,650 --> 00:43:56,390 Panašiai, jei jūs prisimenate iš savaitę 0, galbūt mačiau šį URL. 829 00:43:56,390 --> 00:44:00,210 Ir jums turėtų būti suteikta galimybė iššifruoti tai, galų gale. 830 00:44:00,210 --> 00:44:04,810 Jums gali būti nepatenkintas, kai jūs iššifruoti jį ir paspauskite ant nuorodos. 831 00:44:04,810 --> 00:44:05,700 Gerai. 832 00:44:05,700 --> 00:44:06,591 Štai jį šiandien. 833 00:44:06,591 --> 00:44:12,095 Taigi jus pamatyti kitą savaitę! 834 00:44:12,095 --> 00:44:18,315 >> [Elektroninės muzikos žaisti] 835 00:44:18,315 --> 00:47:15,619