1 00:00:00,000 --> 00:00:03,944 >> [Mūzikas atskaņošanai] 2 00:00:03,944 --> 00:00:10,732 3 00:00:10,732 --> 00:00:11,690 DAVID Malan: Labi. 4 00:00:11,690 --> 00:00:14,674 Tas ir CS50, un šis ir beigu 2. nedēļā. 5 00:00:14,674 --> 00:00:16,840 Es esmu tik žēl es nevarēju būt tur ar jums visiem šodien, 6 00:00:16,840 --> 00:00:18,300 bet tu esi ļoti labās rokās. 7 00:00:18,300 --> 00:00:21,710 Atļaujiet man iepazīstināt CS50 pašas Rob Bowden. 8 00:00:21,710 --> 00:00:29,106 9 00:00:29,106 --> 00:00:31,730 ROB Bowden: Un, protams, tad mums ir pasmieties par to, 10 00:00:31,730 --> 00:00:36,820 ka viņš mums atsūtīja vertikāla video un parādīt citiem. 11 00:00:36,820 --> 00:00:38,320 >> [Video atskaņošana] 12 00:00:38,320 --> 00:00:39,820 >> [Mūzikas atskaņošanai] 13 00:00:39,820 --> 00:00:42,350 >> [TREPJU PAKĀPIENI] 14 00:00:42,350 --> 00:00:44,730 >> -Šo Video nebija ir jāskatās šādā veidā. 15 00:00:44,730 --> 00:00:46,570 Tas būtu bijis iespējams novērst. 16 00:00:46,570 --> 00:00:49,070 Say Nē, lai vertikālās video. 17 00:00:49,070 --> 00:00:53,310 >> -Vertical Video notikt, ja jūs Turiet kamera nepareizi. 18 00:00:53,310 --> 00:00:55,880 Jūsu video beigsies izskatīties crap. 19 00:00:55,880 --> 00:00:57,650 >> - [GRUNT] 20 00:00:57,650 --> 00:01:02,240 >> -Ir Vairāk un vairāk cilvēku atkarīgi padarīt vertikālās video katru dienu. 21 00:01:02,240 --> 00:01:06,240 Tas nav kreka vai neko, bet tas joprojām ir ļoti slikti. 22 00:01:06,240 --> 00:01:10,410 Ir divi dažādi cilvēki, kas ir nomocīts ar VVS. 23 00:01:10,410 --> 00:01:14,160 Pirmā grupa izturas gan pret video viņi šaut kā bildes. 24 00:01:14,160 --> 00:01:15,850 Tie nenozīmē nekādu kaitējumu. 25 00:01:15,850 --> 00:01:19,180 Viņi vienkārši nesaprot, ka kamēr jūs varat vērsties attēlu, 26 00:01:19,180 --> 00:01:20,880 Jūs nevarat īsti pārvērst video. 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 Cita grupa ir cilvēki kas nedod [Bleep]. 30 00:01:27,540 --> 00:01:31,090 >> -Vertical Video sindroms ir bīstama. 31 00:01:31,090 --> 00:01:34,120 Kinofilma ir vienmēr ir bijis horizontāli. 32 00:01:34,120 --> 00:01:35,990 Televizori ir horizontāli. 33 00:01:35,990 --> 00:01:38,380 Datoru ekrāni ir horizontāli. 34 00:01:38,380 --> 00:01:41,580 Tautas acis ir horizontāli. 35 00:01:41,580 --> 00:01:45,170 Mums nav būvēts, lai skatīties vertikālos video. 36 00:01:45,170 --> 00:01:47,600 >> -Es Mīlu vertikālos video. 37 00:01:47,600 --> 00:01:50,410 >> -Nobody Rūpējas par jums. 38 00:01:50,410 --> 00:01:53,340 >> -Ja Šī problēma ir Netiekot, jūs pārāk 39 00:01:53,340 --> 00:01:57,650 sāks rādīt četrus videoklipus uzreiz tikai, lai saglabātu joslas platumu. 40 00:01:57,650 --> 00:02:02,400 >> -Letterboxed Vertikālie video būtu būt lielumu pastmarka. 41 00:02:02,400 --> 00:02:04,920 >> -Un Tas izplatīsies visur. 42 00:02:04,920 --> 00:02:07,670 Filma ekrāni ir vienmēr ir bijis horizontāli. 43 00:02:07,670 --> 00:02:11,200 Ja vertikālās video kļūt pieņemts, kinoteātriem 44 00:02:11,200 --> 00:02:13,930 būs garš un izdilis. 45 00:02:13,930 --> 00:02:17,710 >> -Un Visiem kinoteātriem būtu ir, lai saņemtu nojaukta un pārbūvēta. 46 00:02:17,710 --> 00:02:22,090 Un, kad tie tika pārbūvēta, Mila Kunis būtu vecs un neglīts. 47 00:02:22,090 --> 00:02:24,342 >> -Birds Būs crash uz tiem un mirst. 48 00:02:24,342 --> 00:02:26,530 >> -We'll Visi iegūt stīvs kakliņi no looking up. 49 00:02:26,530 --> 00:02:29,800 >> -Un Neviens sēdēt priekšējā rindā kādreiz atkal. 50 00:02:29,800 --> 00:02:37,170 >> -George Lucas atkārtoti atbrīvošanas Star Wars again-- izdilis izdevums. 51 00:02:37,170 --> 00:02:41,860 >> -Es Nekad īsti varētu pateikt stāsts, ka es gribēju pateikt. 52 00:02:41,860 --> 00:02:46,030 Tas bija lieliska iespēja man eksperimentēt ar jaunu tehnoloģiju. 53 00:02:46,030 --> 00:02:48,150 >> -You're Paraut. 54 00:02:48,150 --> 00:02:54,430 >> -Every Laiks mobilā ierīce tiek lietota, lai ierakstīt video, kārdinājums ir tur. 55 00:02:54,430 --> 00:02:56,370 Vienkārši pateikt nē. 56 00:02:56,370 --> 00:03:00,116 Pateikt nē George Lucas. 57 00:03:00,116 --> 00:03:04,062 Say Nē, lai veco Mila Kunis. 58 00:03:04,062 --> 00:03:06,600 Say Nē, lai vertikālās video. 59 00:03:06,600 --> 00:03:12,511 >> -Un Ja jūs redzēt kāds to dara, teiksim, "jūs neesat šaušana šīs tiesības lelli!" 60 00:03:12,511 --> 00:03:15,433 >> [Mūzikas atskaņošanai] 61 00:03:15,433 --> 00:03:18,842 62 00:03:18,842 --> 00:03:19,830 >> [Beigtu atskaņošanu] 63 00:03:19,830 --> 00:03:23,702 >> [Aplausi] 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 kriptogrāfiju, 67 00:03:45,790 --> 00:03:49,500 kas būtībā ir šifrēšana un atšifrēšana slepeno ziņu. 68 00:03:49,500 --> 00:03:52,590 Tātad šeit mums ir ļoti vienkāršs rotaļlietu. 69 00:03:52,590 --> 00:03:56,900 Un ideja ir ārējais gredzens rotē ap iekšējo gredzenu. 70 00:03:56,900 --> 00:04:01,610 Un jūs varat redzēt, varbūt, ja es tuvinātu in, that-- tas ir grūti redzēt. 71 00:04:01,610 --> 00:04:05,090 Bet, piemēram, skaits 1-- labi, ka pārvietots. 72 00:04:05,090 --> 00:04:09,120 >> Skaitlis 1 kartes vēstuli X, skaits 2 kartes uz burta 73 00:04:09,120 --> 00:04:11,630 J. Neticami grūti ne izlaist uz priekšu. 74 00:04:11,630 --> 00:04:16,100 Vēstule 2 kartes uz J. Number 3 kartes līdz D So 75 00:04:16,100 --> 00:04:20,140 ar šo gredzenu jūs varat dot kāds ziņojums 1, 2, 3. 76 00:04:20,140 --> 00:04:22,624 Kādu iemeslu dēļ jūs gribu pateikt viņiem XJD. 77 00:04:22,624 --> 00:04:24,540 Bet jūs varat dot viņiem daži ziņu par skaitļiem, 78 00:04:24,540 --> 00:04:28,460 un tik ilgi, kamēr tie ir šo gredzenu, tie var atšifrēt, ko jūs cenšaties pateikt. 79 00:04:28,460 --> 00:04:32,510 >> Tātad jums var būt redzējis šo Konkrēts piemērs kriptogrāfiju 80 00:04:32,510 --> 00:04:36,640 Pirms ja ap Ziemassvētkiem Jūs esat noskatījos Ziemassvētku stāsts. 81 00:04:36,640 --> 00:04:38,520 Ja jūs nekad neesmu redzējis tas agrāk, tad vienkārši 82 00:04:38,520 --> 00:04:41,060 ieslēgt TBS at burtiski jebkurā laikā Ziemassvētku vakarā, 83 00:04:41,060 --> 00:04:44,510 jo viņi vienkārši parādīt to atpakaļ atpakaļ atpakaļ atpakaļ atpakaļ visu dienu. 84 00:04:44,510 --> 00:04:46,744 Un attiecīgais video tas ir. 85 00:04:46,744 --> 00:04:47,410 [Video atskaņošana] 86 00:04:47,410 --> 00:04:50,020 -Be Tas zināms visiem un dažādi ka Ralfs Parker ir šo 87 00:04:50,020 --> 00:04:52,850 iecelts Little Orphan Annie Secret Circle 88 00:04:52,850 --> 00:04:56,490 un ir tiesības uz visiem apbalvojumus un ieguvumus, kas rodas tiem. 89 00:04:56,490 --> 00:04:59,010 Parakstīts Little Orphan Annie. 90 00:04:59,010 --> 00:05:03,120 Parakstu Pierre Andre ar tinti! 91 00:05:03,120 --> 00:05:07,460 Apbalvojumus un ieguvumi jau deviņu gadu vecumā! 92 00:05:07,460 --> 00:05:12,530 >> [Kliegt no radio] 93 00:05:12,530 --> 00:05:13,030 -Nāc šurp. 94 00:05:13,030 --> 00:05:14,000 Pieņemsim galā ar to. 95 00:05:14,000 --> 00:05:18,274 Man nevajag visu, kas jazz par kontrabandistu un pirātiem. 96 00:05:18,274 --> 00:05:20,440 -Listen Rīt naktī ar Secinājumu piedzīvojums 97 00:05:20,440 --> 00:05:22,540 Melnās pirāts kuģa. 98 00:05:22,540 --> 00:05:25,460 Tagad ir pienācis laiks Annie slepenā ziņa 99 00:05:25,460 --> 00:05:28,620 Jo jūs locekļi Secret Circle. 100 00:05:28,620 --> 00:05:32,370 Atcerieties, bērni, tikai dalībnieki Annijas Secret Circle 101 00:05:32,370 --> 00:05:34,880 var atšifrēt Annie slepeno ziņu. 102 00:05:34,880 --> 00:05:39,100 Atcerieties, Annie ir atkarīgs no jums. 103 00:05:39,100 --> 00:05:41,660 Iestatiet savu pins uz B2. 104 00:05:41,660 --> 00:05:43,960 Šeit ir vēstījums. 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 -Es Esmu manā pirmajā slepenā sanāksmē. 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 ir liels balss šovakar. 115 00:05:54,570 --> 00:05:57,490 Es varētu pateikt, ka šovakar vēstījums bija ļoti svarīgi. 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 Tas ir vēstījums no Annie pati. 119 00:06:01,580 --> 00:06:02,880 Atcerieties, ka nav pateikt kāds. 120 00:06:02,880 --> 00:06:07,840 121 00:06:07,840 --> 00:06:11,130 >> -Five Sekundes vēlāk, es esmu vienīgais istabu mājā, kur zēns no deviņiem 122 00:06:11,130 --> 00:06:15,830 varētu sēdēt privātumu un atšifrēt. 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 Es devos uz nākamo. 126 00:06:20,210 --> 00:06:23,300 E. Pirmais vārds ir "būt." 127 00:06:23,300 --> 00:06:25,880 S. Tā nāca vieglāk. 128 00:06:25,880 --> 00:06:28,400 U. 25. 129 00:06:28,400 --> 00:06:30,528 Tas ir R. 130 00:06:30,528 --> 00:06:31,278 -Nāc, Ralphie! 131 00:06:31,278 --> 00:06:31,861 Es esmu gotta go! 132 00:06:31,861 --> 00:06:33,182 -I'll Būt tiesības uz leju, Ma! 133 00:06:33,182 --> 00:06:36,038 Gee sīkšana. 134 00:06:36,038 --> 00:06:42,840 T. O. "Noteikti" - pārliecinieties, lai ko? 135 00:06:42,840 --> 00:06:44,770 Kas bija Little Orphan Annie cenšas pateikt? 136 00:06:44,770 --> 00:06:46,381 Noteikti ko? 137 00:06:46,381 --> 00:06:47,825 >> -Randy Ir ieguvuši iet! 138 00:06:47,825 --> 00:06:48,866 Vai jūs, lūdzu, nāk ārā? 139 00:06:48,866 --> 00:06:49,783 >> -Visas Tiesības, mamma! 140 00:06:49,783 --> 00:06:51,786 Es būšu taisnība out! 141 00:06:51,786 --> 00:06:53,606 Man bija tuvojas tagad. 142 00:06:53,606 --> 00:06:55,550 Spriedze bija briesmīga. 143 00:06:55,550 --> 00:06:57,050 Kas tas bija? 144 00:06:57,050 --> 00:06:59,905 No planētas liktenis var pakārt līdzsvarā! 145 00:06:59,905 --> 00:07:01,736 >> -Ralphie, Randy got iet! 146 00:07:01,736 --> 00:07:05,680 >> -I'll Būt taisnība ārā, lai kliedz skaļi! 147 00:07:05,680 --> 00:07:07,170 Gandrīz klāt! 148 00:07:07,170 --> 00:07:08,150 Mani pirksti lidoja. 149 00:07:08,150 --> 00:07:09,980 Mans prāts bija tērauda lamatas. 150 00:07:09,980 --> 00:07:11,496 Katru poru vibrāciju. 151 00:07:11,496 --> 00:07:13,268 Tas bija gandrīz skaidrs! 152 00:07:13,268 --> 00:07:13,767 Jā. 153 00:07:13,767 --> 00:07:14,609 Jā. 154 00:07:14,609 --> 00:07:15,108 Jā. 155 00:07:15,108 --> 00:07:16,449 Jā. 156 00:07:16,449 --> 00:07:20,240 Noteikti dzert savu 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 Apaļīgs komerciāla? 160 00:07:27,520 --> 00:07:32,040 161 00:07:32,040 --> 00:07:34,920 Dēls kuce. 162 00:07:34,920 --> 00:07:35,890 >> [Beigtu atskaņošanu] 163 00:07:35,890 --> 00:07:39,650 >> ROB Bowden: Tātad tas ir, kā Ovaltine saistīts ar kriptogrāfiju. 164 00:07:39,650 --> 00:07:42,290 Būtībā CS50 tikai reklamē Ovaltine, lai mēs varētu 165 00:07:42,290 --> 00:07:44,400 būt apaļīgs komerciāls par Ovaltine. 166 00:07:44,400 --> 00:07:44,900 Viss kārtībā. 167 00:07:44,900 --> 00:07:47,120 Tāpēc tagad aktuālā datorzinātnes. 168 00:07:47,120 --> 00:07:50,670 Atcerieties, pirmdien mēs left off niršana dziļāk stīgām. 169 00:07:50,670 --> 00:07:52,820 Tātad mums bija darīšana ar virkne "Zamyla." 170 00:07:52,820 --> 00:07:55,130 Un mums bija atzīstot tas, ka mēs varam ārstēt 171 00:07:55,130 --> 00:07:57,510 "Zamyla" kā rakstzīmju secību. 172 00:07:57,510 --> 00:07:59,740 Un atcerieties, ka mēs uzzinājām kronšteins notācija. 173 00:07:59,740 --> 00:08:01,995 Tātad, ja tas tika uzglabāti virknē "s", tad 174 00:08:01,995 --> 00:08:05,860 ja mēs teicām s kronšteins 0, kas norāda burtu kapitāla Z. 175 00:08:05,860 --> 00:08:09,790 Un, ja mēs teicām s kronšteins 1, kas varētu norādīt pirmo mazo burtu A, 176 00:08:09,790 --> 00:08:14,220 un tā tālāk līdz -iem grupā 5, kas norāda pēdējā. 177 00:08:14,220 --> 00:08:17,090 >> Tagad atceros, ka garums no šī virkne ir 6, 178 00:08:17,090 --> 00:08:23,220 bet indeksi uz virknes ir 0 līdz 5, Z caur ka ilgt. 179 00:08:23,220 --> 00:08:28,650 Tātad tagad tas iekļaujas lielāku attēlu no jūsu datora atmiņā, jūsu RAM. 180 00:08:28,650 --> 00:08:32,020 Tātad kaut kur programma, kas jūs rādīt jūsu datoru 181 00:08:32,020 --> 00:08:34,780 vajag atcerēties Zamyla kaut kur atmiņā. 182 00:08:34,780 --> 00:08:36,029 Tātad es varu būt brīvprātīgais? 183 00:08:36,029 --> 00:08:38,840 184 00:08:38,840 --> 00:08:40,181 Jā paldies. 185 00:08:40,181 --> 00:08:50,120 186 00:08:50,120 --> 00:08:51,500 Un kāds ir tavs vārds? 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, dekāns. 190 00:08:54,910 --> 00:08:58,240 Lai nāk pār šeit, un mēs esam nāksies zīmējot 191 00:08:58,240 --> 00:09:00,740 mūsu jaukā švītīgs izkārtojumu atmiņas. 192 00:09:00,740 --> 00:09:05,950 Tagad es vēlētos domāt par atmiņas kā vienu garu strēmeli baitu, 193 00:09:05,950 --> 00:09:11,090 bet tikai displeja nolūkos mēs vienkārši no kreisās uz labo, augšas uz leju. 194 00:09:11,090 --> 00:09:11,590 LABI? 195 00:09:11,590 --> 00:09:22,030 >> Tāpēc es esmu gatavojas parādīt program-- Getstrings.c. 196 00:09:22,030 --> 00:09:25,760 Un tā tas viss programma darot pieprasa četras stīgas 197 00:09:25,760 --> 00:09:28,830 no lietotāja ar GetString un tad drukāšana 198 00:09:28,830 --> 00:09:30,950 neatkarīgi ka pirmā rinda ievadīta bija. 199 00:09:30,950 --> 00:09:32,840 Mēs ignorējot divi caur četriem. 200 00:09:32,840 --> 00:09:33,610 LABI. 201 00:09:33,610 --> 00:09:38,210 Tātad vairāk nekā šeit now-- kad Es pirmo reizi pieprasījums s1. 202 00:09:38,210 --> 00:09:39,740 Tātad jums ir dators. 203 00:09:39,740 --> 00:09:41,680 Un jūs īsteno GetString. 204 00:09:41,680 --> 00:09:46,710 Tātad jūs pieprasīt virknes no mani, un es saku, OK, dekāns. 205 00:09:46,710 --> 00:09:47,900 Dodiet virkni "Dean". 206 00:09:47,900 --> 00:09:50,300 >> Tātad kaut kur atmiņā vajag atcerēties "Dean". 207 00:09:50,300 --> 00:09:52,160 Tātad uzrakstiet to atmiņā kaut kur. 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 LABI. 211 00:09:59,880 --> 00:10:01,740 Tāpēc tagad mēs esam S2. 212 00:10:01,740 --> 00:10:03,869 Un s2 būs lūgums GetString. 213 00:10:03,869 --> 00:10:05,160 Tāpēc es esmu gatavojas ienākt virkni. 214 00:10:05,160 --> 00:10:08,720 Es esmu gatavojas ienākt "Hannah." 215 00:10:08,720 --> 00:10:10,586 Tātad ievadiet "Hannah" kaut kur atmiņā. 216 00:10:10,586 --> 00:10:18,860 217 00:10:18,860 --> 00:10:19,360 Jā. 218 00:10:19,360 --> 00:10:23,000 A-H. 219 00:10:23,000 --> 00:10:25,550 >> Labi, tāpēc tagad s3. 220 00:10:25,550 --> 00:10:28,380 Un tas būs vēl viens pieprasīt GetString. 221 00:10:28,380 --> 00:10:37,020 Un tāpēc tagad ieiet "Maria". 222 00:10:37,020 --> 00:10:37,520 Viss kārtībā. 223 00:10:37,520 --> 00:10:40,980 Un tad tur ir viens pēdējais lūgums GetString, S4. 224 00:10:40,980 --> 00:10:42,580 Tātad, es nezinu. 225 00:10:42,580 --> 00:10:45,640 Kā par mums iet ar antidisestablishmentarianism. 226 00:10:45,640 --> 00:10:49,460 Tātad ievadiet ka atmiņā. 227 00:10:49,460 --> 00:10:50,400 Jā. 228 00:10:50,400 --> 00:10:53,970 Tik vienkārši darīt "Rob." 229 00:10:53,970 --> 00:10:54,560 >> LABI. 230 00:10:54,560 --> 00:10:58,410 Tāpēc tagad explain-- kāpēc darīja jūs atstāt šo telpu? 231 00:10:58,410 --> 00:11:01,340 Kāpēc jums ir tukšu kosmosa šeit, šeit un šeit? 232 00:11:01,340 --> 00:11:05,170 233 00:11:05,170 --> 00:11:05,670 Jā. 234 00:11:05,670 --> 00:11:09,450 Tāpēc ievērosiet, kad es iet drukāt s1-- tāpēc, ja mēs 235 00:11:09,450 --> 00:11:11,890 bija "Hannah" running līdz pat blakus "Dean" 236 00:11:11,890 --> 00:11:14,360 kā mēs zinām, kad string "Dean" beidzas? 237 00:11:14,360 --> 00:11:19,470 Tātad drukāšanas virknes s1, var būt tikko iespiests "DeanHannahMariaRob" 238 00:11:19,470 --> 00:11:22,720 ja tas nav nekādas jausmas no tā, kad "Dean" faktiski beidzas. 239 00:11:22,720 --> 00:11:23,240 >> Viss kārtībā. 240 00:11:23,240 --> 00:11:27,650 Tātad atmiņā kā mēs faktiski pārstāvēt šo galu string 241 00:11:27,650 --> 00:11:29,940 ir ar slīpsvītru nulles. 242 00:11:29,940 --> 00:11:32,620 Tātad šī telpa ir tieši tas, ko mēs vēlējāmies. 243 00:11:32,620 --> 00:11:34,040 Tas būtu slīpsvītru nulle. 244 00:11:34,040 --> 00:11:37,690 Tas būs slīpsvītru nulle, un šī būs slīpsvītru nulle. 245 00:11:37,690 --> 00:11:41,585 Un jūs varat būt pasakains balvu par to, ka ideāls brīvprātīgais. 246 00:11:41,585 --> 00:11:44,910 247 00:11:44,910 --> 00:11:45,860 Veikt stresa bumbu! 248 00:11:45,860 --> 00:11:49,040 249 00:11:49,040 --> 00:11:49,700 >> LABI. 250 00:11:49,700 --> 00:11:54,420 Tātad šis raksturs slīpsvītra nulle ir kā mēs norāda beigas virkne. 251 00:11:54,420 --> 00:11:57,120 Tas ir kā tad, kad kāds dota programma vēlas izdrukāt virkni, 252 00:11:57,120 --> 00:11:59,760 tas how-- Atcerieties, mēs uzzinājām strlen funkciju pagājušajā nedēļā? 253 00:11:59,760 --> 00:12:00,940 String garums? 254 00:12:00,940 --> 00:12:03,770 Tas ir, kā virknes garums ir spējīgs noteikt, cik ilgi virkne ir. 255 00:12:03,770 --> 00:12:05,810 Tas tikai tur atkārtojot pa burtiem 256 00:12:05,810 --> 00:12:08,217 līdz tas atrod slīpsvītru nulles raksturs. 257 00:12:08,217 --> 00:12:11,050 Tātad svarīga lieta, lai realizētu par slīpsvītru nulles raksturs 258 00:12:11,050 --> 00:12:14,950 tas ir pārstāvēta visu nullēm bitos. 259 00:12:14,950 --> 00:12:18,980 Tā paziņo, ka tas ir atšķirīgs no nulles raksturs. 260 00:12:18,980 --> 00:12:23,010 Tātad nulle raksturs, ja jūs atceraties piemērā, ka viņš deva beigās 261 00:12:23,010 --> 00:12:27,360 Lekciju kur varoņi karti kuri paredzēti, piemēram, kapitāla A kartēs 65. 262 00:12:27,360 --> 00:12:29,130 Mazie burti uz kartes līdz 97. 263 00:12:29,130 --> 00:12:30,890 Mazie b būtu 98. 264 00:12:30,890 --> 00:12:35,220 Tātad skaits 0 kartes kuri paredzēti, man nav zināt off augšpusē manu galvu. 265 00:12:35,220 --> 00:12:36,400 44 vai 45. 266 00:12:36,400 --> 00:12:37,890 Kaut kur šajā reģionā. 267 00:12:37,890 --> 00:12:40,850 >> Tātad raksturs 0 ir faktiskais skaits. 268 00:12:40,850 --> 00:12:44,350 Bet reversā slīpsvītra nulle kartes uz visiem nulles bitiem. 269 00:12:44,350 --> 00:12:46,380 Tātad tur ir atšķirība starp slīpsvītru nulles, 270 00:12:46,380 --> 00:12:48,450 ko mēs saucam par null terminators. 271 00:12:48,450 --> 00:12:53,210 Tur ir atšķirība starp slīpsvītru nulle un raksturs nulle. 272 00:12:53,210 --> 00:12:54,350 >> Viss kārtībā. 273 00:12:54,350 --> 00:12:57,520 Tātad runā mazliet vairāk par stīgām. 274 00:12:57,520 --> 00:13:01,470 Tātad mēs redzam šeit tas ir, kā tas būtu izklāstīts atmiņā. 275 00:13:01,470 --> 00:13:07,940 Tātad šī ideja stīgām kā secību no characters-- tā oficiālā dators 276 00:13:07,940 --> 00:13:10,750 sciency termins secība ir masīvs. 277 00:13:10,750 --> 00:13:13,790 Tātad mēs to sauktu virkni masīvs rakstzīmes. 278 00:13:13,790 --> 00:13:17,770 Un tur ir tiešām citi dati veidi, ka mēs varam veikt masīvus no. 279 00:13:17,770 --> 00:13:19,975 >> Tātad, lai motivētu šo, apskatīt piemēru. 280 00:13:19,975 --> 00:13:22,810 281 00:13:22,810 --> 00:13:29,812 Mēs to saucam ages0.c es ņemšu kopēt un ielīmēt mūsu veidni. 282 00:13:29,812 --> 00:13:32,470 283 00:13:32,470 --> 00:13:33,410 LABI. 284 00:13:33,410 --> 00:13:39,378 Tātad šajā programmā, ko mēs gribu darīt, ir greifers vecumu 285 00:13:39,378 --> 00:13:45,160 Trīs studentu kursa. 286 00:13:45,160 --> 00:13:49,240 Tātad mēs zinām, int age-- un tagad es esmu gatavojas teikt 0. 287 00:13:49,240 --> 00:13:53,140 Lai jūs varētu vēlēties, lai teikt age1, bet mērķiem mēs redzēsim ļoti drīz, 288 00:13:53,140 --> 00:13:57,187 Es saku int age0 vienāds GetInt. 289 00:13:57,187 --> 00:13:59,270 Tātad pašā aicinājumu uz GetInt ka mēs esam, izmantojot I 290 00:13:59,270 --> 00:14:01,561 nav gadās būt pamudinot sakot, "dod man gadu vecumu." 291 00:14:01,561 --> 00:14:03,120 Bet tikai to pieprasa. 292 00:14:03,120 --> 00:14:06,510 >> Un age1 vienāds GetInt. 293 00:14:06,510 --> 00:14:09,600 Un int age2 vienāds GetInt. 294 00:14:09,600 --> 00:14:14,070 Tātad, atkal trīs studenti, bet Galu galā mainīgās indeksi 295 00:14:14,070 --> 00:14:16,890 Ir age0 caur age2. 296 00:14:16,890 --> 00:14:17,550 LABI. 297 00:14:17,550 --> 00:14:23,960 Tātad šī programma darīs visu, mēs gribam ar age0, age1 un age2, 298 00:14:23,960 --> 00:14:27,670 bet šī programma galu galā darbojas trīs studenti. 299 00:14:27,670 --> 00:14:28,380 >> LABI. 300 00:14:28,380 --> 00:14:32,110 Tāpēc tagad notiks, ja es gribu četri skolēni? 301 00:14:32,110 --> 00:14:36,000 Nu, es esmu nāksies doties atpakaļ manā kodu, mainīt komentāru, 302 00:14:36,000 --> 00:14:39,840 un tagad mums ir int age3 vienāds GetInt. 303 00:14:39,840 --> 00:14:40,610 LABI. 304 00:14:40,610 --> 00:14:43,660 Tātad, kas redz problēmu šeit? 305 00:14:43,660 --> 00:14:47,310 Kāda ir problēma ar šāda veida setup? 306 00:14:47,310 --> 00:14:47,810 Jā. 307 00:14:47,810 --> 00:14:53,110 308 00:14:53,110 --> 00:14:53,610 Jā. 309 00:14:53,610 --> 00:14:56,360 Tātad mēs esam radot mainīgs katram studentam. 310 00:14:56,360 --> 00:15:00,140 Tagad tas darbojas, bet galu galā, ko tad, ja es tagad 311 00:15:00,140 --> 00:15:06,500 saka: "Es gribu, lai greifers vecumu astoņi studenti vai 16 studenti 312 00:15:06,500 --> 00:15:11,340 vai tomēr daudzi studenti simtiem studentu pilsētā CS50 313 00:15:11,340 --> 00:15:16,750 vai tūkstošiem studentiem par universitātes pilsētiņā vai miljardiem cilvēku pasaulē? 314 00:15:16,750 --> 00:15:19,130 Tātad galu galā tas nav ilgtspējīgs. 315 00:15:19,130 --> 00:15:21,990 Jebkurā laikā jūs redzat sevi kopēšana un ielīmējot kods, piemēram, tas, 316 00:15:21,990 --> 00:15:25,050 Jums vajadzētu vispār justies ka ir labāks veids. 317 00:15:25,050 --> 00:15:31,290 >> Tātad, tas ir, ja mēs ieviest masīvs deklarācija. 318 00:15:31,290 --> 00:15:34,564 Tātad, kad jūs deklarēt masīvu, tas ir tas, ko vispārējā formāts 319 00:15:34,564 --> 00:15:35,480 gatavojas izskatās. 320 00:15:35,480 --> 00:15:36,664 Mēs ejam, lai teikt veidu. 321 00:15:36,664 --> 00:15:38,830 un tad mēs ejam uz dot nosaukumu šī masīva, 322 00:15:38,830 --> 00:15:41,150 tāpat kā mēs definējam kādu konkrētu mainīgo. 323 00:15:41,150 --> 00:15:43,980 Un tad beidzot mēs izmantojam Tas kronšteins notācija vēlreiz 324 00:15:43,980 --> 00:15:47,480 bet citā kontekstā no kā mēs to izmantot agrāk. 325 00:15:47,480 --> 00:15:51,860 >> Tātad šeit tas izskatās normāls mainīgais atzīt, ka mēs esam redzējuši. 326 00:15:51,860 --> 00:15:54,890 Tāpēc mēs esam redzējuši int x semikolu pirms. 327 00:15:54,890 --> 00:16:00,020 Nu tagad mēs varētu redzēt kaut ko piemēram, int x iekavās 5. 328 00:16:00,020 --> 00:16:04,020 Un liekot šo ideju pārvērta GetInt programma, ka mēs have-- 329 00:16:04,020 --> 00:16:08,850 lai mēs varētu īstenot šis tādā pašā veidā. 330 00:16:08,850 --> 00:16:13,630 >> Teiksim CS mums ir tendence izmantot n kā skaita kaut ko. 331 00:16:13,630 --> 00:16:16,150 Tātad šeit mēs ejam uzglabāt četrus skolēnus. 332 00:16:16,150 --> 00:16:25,960 Un tagad mēs varam teikt int vecums kronšteins N- nav gluži iegūt yet-- 333 00:16:25,960 --> 00:16:32,210 deklarēt masīvu četriem studentiem. 334 00:16:32,210 --> 00:16:38,050 Tātad, kā tas izskatīsies atmiņa būs līdzīgs šim. 335 00:16:38,050 --> 00:16:39,570 Notīrīt šo. 336 00:16:39,570 --> 00:16:46,606 Un mēs esam nāksies kaut kur in memory-- es nolikšu tas tur augšā. 337 00:16:46,606 --> 00:16:52,690 338 00:16:52,690 --> 00:16:53,808 >> Tātad kaut kur atmiņā. 339 00:16:53,808 --> 00:16:58,760 340 00:16:58,760 --> 00:16:59,727 Viens divi trīs Četri. 341 00:16:59,727 --> 00:17:03,383 342 00:17:03,383 --> 00:17:09,849 Mums ir četri veseli skaitļi pēc kārtas Šim masīva četru veselu skaitļu. 343 00:17:09,849 --> 00:17:13,820 Tātad, šobrīd, kāda ir izmērs no viena no šiem kastes? 344 00:17:13,820 --> 00:17:17,190 345 00:17:17,190 --> 00:17:17,690 Jā. 346 00:17:17,690 --> 00:17:18,390 Tas ir četri baiti. 347 00:17:18,390 --> 00:17:19,690 Tas ir 32 biti. 348 00:17:19,690 --> 00:17:22,310 Tāpēc tagad tas ir atšķirīgs no masīva, kas mums 349 00:17:22,310 --> 00:17:24,020 redzēja Agrāk, masīvs rakstzīmes. 350 00:17:24,020 --> 00:17:28,540 Ar virkni katrā kastē bija tikai viens baits, jo raksturs ir tikai viens baits. 351 00:17:28,540 --> 00:17:32,170 Bet ar masīvu veselus skaitļus, katrs kaste ir četri baiti, lai 352 00:17:32,170 --> 00:17:34,060 lai ietilptu visu skaitli. 353 00:17:34,060 --> 00:17:37,197 Tātad, tas ir tas, ko masīvs četri Ints izskatās. 354 00:17:37,197 --> 00:17:40,510 355 00:17:40,510 --> 00:17:43,870 >> Un tad atpakaļ uz kodu. 356 00:17:43,870 --> 00:17:47,460 Tagad mēs vēlamies, lai faktiski veikals skaitļu uz šī masīva. 357 00:17:47,460 --> 00:17:53,470 Tāpēc tagad tas ir ļoti, ļoti, ļoti kopējs modelis, kas būs kādā brīdī 358 00:17:53,470 --> 00:17:54,680 kļūt muskuļu atmiņu. 359 00:17:54,680 --> 00:17:56,710 Tātad int i ir vienāds ar 0. 360 00:17:56,710 --> 00:17:57,940 i mazāk nekā n. 361 00:17:57,940 --> 00:18:01,850 i plus plus. 362 00:18:01,850 --> 00:18:05,790 Vecuma grupā i vienāds GetInt. 363 00:18:05,790 --> 00:18:15,100 >> Tātad šis cilpas, šis formāts, Jums vajadzētu saņemt ļoti pieraduši. 364 00:18:15,100 --> 00:18:20,010 Tātad tas parasti ir, kā mēs atkārtot pār gandrīz jebkuru masīvs. 365 00:18:20,010 --> 00:18:23,690 Tagad paziņojums šāda veida izskaidro, kāpēc no sākuma 366 00:18:23,690 --> 00:18:29,870 mums nebija par cilpas iet par int i ir vienāds ar 1, i ir mazāks par vai vienāds ar 10. 367 00:18:29,870 --> 00:18:34,200 Iemesls ir tas, ka, sākot no nulle padara šo darbu arī ar masīviem. 368 00:18:34,200 --> 00:18:36,270 Tātad masīvi ir nulle indeksētas. 369 00:18:36,270 --> 00:18:40,360 Ja šis masīvs ir garums 4, indeksi ir no 0 līdz 3. 370 00:18:40,360 --> 00:18:42,880 >> Tātad ar pirmo atkārtojuma šīs cilpas 371 00:18:42,880 --> 00:18:49,930 mēs spēsim tikt nosakot vecuma kronšteins 0 vienāds ar aicinājumu uz GetInt. 372 00:18:49,930 --> 00:18:52,440 Tātad, neatkarīgi Man gadījās ienākt pie klaviatūras. 373 00:18:52,440 --> 00:18:56,970 Otrajā pass, mēs esam nosakot age1 vienāds ar GetInt. 374 00:18:56,970 --> 00:18:58,230 Treškārt pass, age2. 375 00:18:58,230 --> 00:18:59,880 Final pass age3. 376 00:18:59,880 --> 00:19:05,750 Tātad, ja pirmajā pass no cilpas Es ievadiet numuru 4 pie klaviatūras, 377 00:19:05,750 --> 00:19:07,740 tad mēs ievietotu 4 šeit. 378 00:19:07,740 --> 00:19:11,470 Ja otrajā pass es ievadu 50, mēs likts 50 šeit. 379 00:19:11,470 --> 00:19:15,180 Trešajā caurlaide es varētu ievadiet negatīvs 1, negatīvs 1, 380 00:19:15,180 --> 00:19:21,810 un tad beidzot, ja es ieiet 0-- un tagad atceros, ka tas bija rādītājs trīs. 381 00:19:21,810 --> 00:19:25,350 >> Kad mēs cilpa muguras, i ir tiks palielināts līdz 4. 382 00:19:25,350 --> 00:19:27,770 i ir vairs nav mazāks par N, kas ir 4. 383 00:19:27,770 --> 00:19:29,840 Un mēs izkļūt no cilpas. 384 00:19:29,840 --> 00:19:32,578 Tātad, ko varētu būt nepareizi ar šo? 385 00:19:32,578 --> 00:19:38,140 386 00:19:38,140 --> 00:19:38,729 [Dzirdams]? 387 00:19:38,729 --> 00:19:39,604 Mērķauditorija: [dzirdams] 388 00:19:39,604 --> 00:19:45,880 389 00:19:45,880 --> 00:19:46,400 >> Jā. 390 00:19:46,400 --> 00:19:51,550 Tātad masīvs ir tikai četras vietas, kas nozīmē, kā indeksiem no 0 līdz 3. 391 00:19:51,550 --> 00:19:55,630 Tātad, ja tas tā būtu, es būtu uzņemties vērtību 4. kādā brīdī. 392 00:19:55,630 --> 00:20:00,910 vecuma grupā 4 tiks nosakot neatkarīgi notiek, ir vairāk nekā šeit 393 00:20:00,910 --> 00:20:02,920 ar to, kas man jāsaka, ievadiet 6. 394 00:20:02,920 --> 00:20:05,010 Ka būšu nosakot to 6. 395 00:20:05,010 --> 00:20:06,560 >> Bet mēs nezinām, kas ir vairāk nekā šeit. 396 00:20:06,560 --> 00:20:08,836 Tas nav atmiņa ka mums bija piekļuve. 397 00:20:08,836 --> 00:20:10,710 Tātad, ja jūs atceraties no iepriekšējā lekcija, 398 00:20:10,710 --> 00:20:14,350 viņš izdrukāšana vērtības Zamyla un kādā brīdī viņš skāra šo segmentāciju 399 00:20:14,350 --> 00:20:17,990 vaina. Tātad jums būs iespējams redzēt daudzi segmentācijas kļūdas, kā jūs 400 00:20:17,990 --> 00:20:20,530 īstenotu dažus no problēmu kopu. 401 00:20:20,530 --> 00:20:24,950 Bet tas ir viens no veidiem, kā Jūs varat saskarties ar segmentāciju 402 00:20:24,950 --> 00:20:28,540 vaina, kad jūs sākat piekļūstot atmiņa tādā veidā, ka jums nevajadzētu būt. 403 00:20:28,540 --> 00:20:34,117 Tāpēc mums nebija pieejami Šī vieta un tas ir bug. 404 00:20:34,117 --> 00:20:37,760 405 00:20:37,760 --> 00:20:40,190 >> Tātad šis ir labāks. 406 00:20:40,190 --> 00:20:45,820 Tagad vēl ir mazs problēma ar šo kodu. 407 00:20:45,820 --> 00:20:50,720 Un tas būtībā, ka mēs esam joprojām iestrēdzis pie četriem skolēniem. 408 00:20:50,720 --> 00:20:52,940 Tagad, ja es vēlos izmantot astoņus studentus, OK. 409 00:20:52,940 --> 00:20:54,350 Tas nav tik liels darījumu. 410 00:20:54,350 --> 00:20:58,120 Es varu iet, mainīt komentēt, un mainīt n. 411 00:20:58,120 --> 00:20:59,760 Tagad tas darbosies ar astoņiem skolēniem. 412 00:20:59,760 --> 00:21:02,190 Ja es sastādīt šo un palaist Tas, tas parādīs me-- 413 00:21:02,190 --> 00:21:07,870 tas lūgs veselus skaitļus par astoņiem studenti un tas būs tikai darbs. 414 00:21:07,870 --> 00:21:11,850 Bet tas ir mazāk nekā ideāls, lai nepieciešams recompile programmai katru reizi 415 00:21:11,850 --> 00:21:15,960 Es vēlos mainīt studentu skaitu ka es gribu, lai ievadītu vecums. 416 00:21:15,960 --> 00:21:22,990 >> Tātad gala uzlabojums Tas, kā mēs redzēsim here-- mēs esam 417 00:21:22,990 --> 00:21:26,177 gatavojas lūgt cilvēku skaitu. 418 00:21:26,177 --> 00:21:28,010 Šeit mums ir vairākas cilvēku istabām 419 00:21:28,010 --> 00:21:29,880 vai jebkuri vecumu cilvēkiem istabā. 420 00:21:29,880 --> 00:21:33,300 Bet mēs ejam, lai pieprasītu numuru cilvēku telpā no lietotāja. 421 00:21:33,300 --> 00:21:36,171 Tātad šī ir tieši tā pati do-kamēr cilpa, kas mēs esam redzējuši iepriekš. 422 00:21:36,171 --> 00:21:37,920 Tas ir tieši tas pats do-kamēr cilpa, kas jums 423 00:21:37,920 --> 00:21:40,050 var īstenošanas problēmu kopumu. 424 00:21:40,050 --> 00:21:43,102 Tik ilgi, kamēr viņi ievadīšana n ir mazāks par 1, 425 00:21:43,102 --> 00:21:45,310 Tātad tur ir nokļuvis būt vismaz viens cilvēks telpā. 426 00:21:45,310 --> 00:21:47,407 Tik ilgi, kamēr viņi ievadīšana n ir mazāks par 1, 427 00:21:47,407 --> 00:21:48,990 tad mēs spēsim saglabāt jautā vēlreiz. 428 00:21:48,990 --> 00:21:50,906 Ievadiet numuru cilvēku telpā. 429 00:21:50,906 --> 00:21:53,550 Tagad, kad mums ir numurs no cilvēkiem room-- 430 00:21:53,550 --> 00:21:58,020 tāpēc es varētu ienākt, ka tur ir 200 cilvēki šajā telpā. 431 00:21:58,020 --> 00:22:05,480 Tad noteikti šeit mēs esam gatavojas nākt un deklarēt masīvu izmēru 200. 432 00:22:05,480 --> 00:22:10,220 Mēs esam paziņojot, masīva, kas ir pietiekami liela, lai noturētu 200 vecumu. 433 00:22:10,220 --> 00:22:15,370 Braucot uz leju, tas ir cilpa ka jūs saņemsiet ļoti pieraduši. 434 00:22:15,370 --> 00:22:19,490 Tātad atkārtojot pār šo masīvu, piešķirot katrai vietai 435 00:22:19,490 --> 00:22:23,020 šajā masīvā vesels skaitlis, un tad galu galā šeit mēs esam 436 00:22:23,020 --> 00:22:28,340 vienkārši kļūst piemēru atkārtojot pār šo masīvu, nevis piešķirt vērtības, 437 00:22:28,340 --> 00:22:30,150 bet, lai piekļūtu vērtības. 438 00:22:30,150 --> 00:22:33,810 >> Tātad, nekā šeit mēs redzam, ka mums saka, gadu no tagad, 439 00:22:33,810 --> 00:22:40,470 persona% i būs% i gadi, kur pirmais% i ir i plus 1. 440 00:22:40,470 --> 00:22:43,010 Tāpēc es ir šis rādītājs mainīgs. 441 00:22:43,010 --> 00:22:49,420 Un otrais% i būs būt vērtība glabājas vecumu masīvā plus 1. 442 00:22:49,420 --> 00:22:54,217 Tātad šis plus 1 ir tikai tāpēc, ka mēs esam saying-- šo plus 1, vecumu i plus 1. 443 00:22:54,217 --> 00:22:57,050 Šis plus 1 ir tikai tāpēc, ka mēs esam sakot, gadu no tagad personas 444 00:22:57,050 --> 00:22:58,280 būs šis vecs. 445 00:22:58,280 --> 00:23:01,080 >> Tātad, kāpēc tas i plus 1? 446 00:23:01,080 --> 00:23:04,064 Kāpēc mums ir plus 1 tur? 447 00:23:04,064 --> 00:23:04,564 Jā. 448 00:23:04,564 --> 00:23:07,410 449 00:23:07,410 --> 00:23:07,930 Jā. 450 00:23:07,930 --> 00:23:10,510 Tāpēc atcerieties bloki ir nulle indeksēti. 451 00:23:10,510 --> 00:23:14,840 Tātad, ja mēs drukājat šo out kāds vienkārši lasīt produkciju, 452 00:23:14,840 --> 00:23:19,380 tad droši vien viņi vēlas redzēt kaut ko piemēram, personai vienā, persona numur viens, 453 00:23:19,380 --> 00:23:21,160 būs 20 gadus vecs. 454 00:23:21,160 --> 00:23:23,570 Persona numur divi būs 15 gadus vecs. 455 00:23:23,570 --> 00:23:27,420 Viņi labprātāk neredz personu skaitlis nulle ir 15 gadus vecs. 456 00:23:27,420 --> 00:23:36,460 >> Tātad apkopojot šo un tikai redzēt to, ko tas izskatās like-- Izveidot dažas vietas. 457 00:23:36,460 --> 00:23:43,560 Padarīt AGES apkopo. 458 00:23:43,560 --> 00:23:45,080 Running vecumu. 459 00:23:45,080 --> 00:23:46,580 Mēs redzam cilvēku skaits telpā. 460 00:23:46,580 --> 00:23:48,850 Tāpēc es saku ka ir trīs cilvēki istabā. 461 00:23:48,850 --> 00:23:54,000 Vecums persona numur viens, teiksim 15, 20, 25. 462 00:23:54,000 --> 00:23:59,680 Un tagad es jums saku gadā no tagad tie būs 16, 21, 26. 463 00:23:59,680 --> 00:24:02,900 Let 's redzēt, ka tas strādā ar N, kas nav vienāds ar 3. 464 00:24:02,900 --> 00:24:07,940 Tātad, ja es saku cilvēku skaits ir 5, viens, divi, trīs, divi, viens, pēc gada 465 00:24:07,940 --> 00:24:11,170 tie būs divi, trīs, Četri, trīs, divus gadus vecs. 466 00:24:11,170 --> 00:24:16,500 Tāpēc es varētu tikpat viegli ir n ir 10,000. 467 00:24:16,500 --> 00:24:21,270 Tagad es būs sēž šeit diezgan kamēr ievadot vecumu, bet tas darbojas. 468 00:24:21,270 --> 00:24:26,000 >> Tāpēc tagad atmiņā kaut kur mēs ir masīvs izmēru 10000, 469 00:24:26,000 --> 00:24:28,830 tā galu galā 40000 baiti, jo ir 470 00:24:28,830 --> 00:24:31,222 četri baiti katram no šiem veseli skaitļi. 471 00:24:31,222 --> 00:24:33,180 Tātad tur ir masīvs izmērs 10,000 kur mēs varam 472 00:24:33,180 --> 00:24:36,201 uzglabāt vecumu tiem 10000 cilvēku. 473 00:24:36,201 --> 00:24:36,700 Viss kārtībā. 474 00:24:36,700 --> 00:24:40,070 Jautājumi par kādu no šo? 475 00:24:40,070 --> 00:24:41,892 Jā. 476 00:24:41,892 --> 00:24:43,350 Ko darīt, ja jums deva negatīvu skaitli? 477 00:24:43,350 --> 00:24:44,870 Let 's redzēt, kas notiek. 478 00:24:44,870 --> 00:24:49,320 Tātad šajā konkrētajā case-- numuru cilvēku telpā, negatīvas. 479 00:24:49,320 --> 00:24:52,580 Tā noraidīja, ka, jo šeit mēs notikt 480 00:24:52,580 --> 00:24:57,180 lai apstrādes faktu, ka, ja n ir mazāk nekā vienu mēs ejam lūgt vēlreiz. 481 00:24:57,180 --> 00:25:01,780 Ja jūs mēģināt deklarēt masīvs negatīvu lielumu, 482 00:25:01,780 --> 00:25:03,950 tas parasti nedarbojas. 483 00:25:03,950 --> 00:25:05,570 >> Tātad pamēģināsim. 484 00:25:05,570 --> 00:25:08,000 Pieņemsim ignorēt neatkarīgi vērtība tie ieeja n 485 00:25:08,000 --> 00:25:10,571 un tikai teikt int vecumā no negatīvas. 486 00:25:10,571 --> 00:25:12,410 Let 's redzēt, ja tas vēl apkopo. 487 00:25:12,410 --> 00:25:14,100 Es neesmu pārliecināts. 488 00:25:14,100 --> 00:25:14,920 Nē. 489 00:25:14,920 --> 00:25:18,280 Tātad vecumu tiek deklarēta kā masīvs ar negatīvu lielumu. 490 00:25:18,280 --> 00:25:22,540 Tātad sākumā tā atzīst masīvs nevar būt negatīvās lieluma un to noraida. 491 00:25:22,540 --> 00:25:26,840 Tagad, ja mēs neesam galā šis do-kamēr cilpa pareizi, 492 00:25:26,840 --> 00:25:28,810 ja mēs nebijām pārbaude ja n ir mazāks nekā 1-- 493 00:25:28,810 --> 00:25:32,690 teiksim mēs vienkārši nebija tas vispār 494 00:25:32,690 --> 00:25:35,940 un tā vietā mēs vienkārši paķert vesels skaitlis. 495 00:25:35,940 --> 00:25:40,710 Nav svarīgi, kas tas ir skaitlis, mēs deklarēt masīvu šo lielumu. 496 00:25:40,710 --> 00:25:44,250 >> Tātad kompilators nevar iespējams sūdzēties tagad. 497 00:25:44,250 --> 00:25:48,780 Ja es sastādīt this-- tāpēc tas nevar sūdzēties, 498 00:25:48,780 --> 00:25:51,480 jo nevar zināt, ka es esmu gatavojas ienākt negatīvu skaitli, 499 00:25:51,480 --> 00:25:52,550 kas varētu būt par spēkā neesošu. 500 00:25:52,550 --> 00:25:54,633 Attiecībā uz visiem tā zina, ka es varētu ievadiet pozitīvu skaitli, 501 00:25:54,633 --> 00:25:56,000 kas ir ļoti lietderīga. 502 00:25:56,000 --> 00:26:01,090 Tāpēc es iedomāties, ja es ievadu negatīvs 1 cilvēki istabā, segmentāciju vaina. 503 00:26:01,090 --> 00:26:06,040 >> Tā ok. 504 00:26:06,040 --> 00:26:13,160 Tātad pieņemsim pievienot šo atpakaļ tikai saglabāt to, kas tas bija sākotnēji. 505 00:26:13,160 --> 00:26:15,640 Tātad, lai vecumu. 506 00:26:15,640 --> 00:26:18,120 Tagad, ja es gribu izmēģināt negatīvs age-- tāpēc pieņemsim 507 00:26:18,120 --> 00:26:19,710 teikt, ka ir pieci cilvēki istabā. 508 00:26:19,710 --> 00:26:23,180 Vecums persona numur viens ir negatīvs 4, persona triju 509 00:26:23,180 --> 00:26:26,500 ir nulle, cilvēks three-- OK. 510 00:26:26,500 --> 00:26:29,850 Tātad šeit, gadu no tagad, persona skaits viens būs negatīvs 3 gadi. 511 00:26:29,850 --> 00:26:32,830 Tātad, iespējams, nav jēgas. 512 00:26:32,830 --> 00:26:37,220 Bet tas ir tikai tāpēc, ka meklē pēc koda viss, ko mēs darām 513 00:26:37,220 --> 00:26:40,260 pieprasa GetInt. 514 00:26:40,260 --> 00:26:44,110 >> Tagad, ja mēs būtu bijusi GetPositiveInt funkcija 515 00:26:44,110 --> 00:26:49,690 vai mums bija vienkārši darījis kārtot pats, bet cilpa tur lejā, 516 00:26:49,690 --> 00:26:52,340 tad tas strādā perfekti labi. 517 00:26:52,340 --> 00:26:54,200 Bet šajā konkrētajā gadījumā, mēs vienkārši nav 518 00:26:54,200 --> 00:26:57,772 gadās būt apstrādes negatīvas vērtības. 519 00:26:57,772 --> 00:26:59,147 Jebkādi citi jautājumi par masīvu? 520 00:26:59,147 --> 00:27:02,290 521 00:27:02,290 --> 00:27:03,250 LABI. 522 00:27:03,250 --> 00:27:09,380 >> Tāpēc mēs esam tagad redzējuši bloki. 523 00:27:09,380 --> 00:27:12,500 Un mēs spēsim nepieciešams izmantot šis komandrindas argumentus. 524 00:27:12,500 --> 00:27:14,680 Tātad problēma ir noteikts two-- Es zinu, ka daudzi no jums 525 00:27:14,680 --> 00:27:18,040 vēl varētu strādāt uz problēmu kopumu viens, bet problēma noteikti divi nāk uz augšu. 526 00:27:18,040 --> 00:27:22,260 Jo problēma noteikti divi, jūs gatavojas nepieciešams nodarbojas ar virknes, masīvi, 527 00:27:22,260 --> 00:27:23,950 un komandrindas argumentus. 528 00:27:23,950 --> 00:27:26,270 >> Tātad, kādi ir komandrindas argumentus? 529 00:27:26,270 --> 00:27:29,570 Tagad jūs varat redzēt uz leju šeit maz teaser tieši to, ko ir 530 00:27:29,570 --> 00:27:30,950 būs realitāte. 531 00:27:30,950 --> 00:27:32,950 Mēs redzam int galvenais, INC argc, stīgu argv iekavās. 532 00:27:32,950 --> 00:27:34,560 533 00:27:34,560 --> 00:27:38,130 Tātad vispirms pamēģināsim interpretēt ko tas cenšas pateikt. 534 00:27:38,130 --> 00:27:40,800 Tagad, OK. 535 00:27:40,800 --> 00:27:44,637 >> Tātad pie komandrindas jums vajadzētu būt kļūst izmantoti, lai dažas no šīm komandām 536 00:27:44,637 --> 00:27:48,580 tagad, un jūs, iespējams palaist cd terminālī pirms. 537 00:27:48,580 --> 00:27:52,100 Tātad, ja mēs sakām cd pset1, jūs zināt, ka tas būtu 538 00:27:52,100 --> 00:27:55,050 mainās uz pset1 direktorijā. 539 00:27:55,050 --> 00:27:59,120 >> Tagad ievēroju, ka jūs nekad uzrakstījis programmu, piemēram, pirms tam. 540 00:27:59,120 --> 00:28:03,120 Katra programma, ka jūs esat rakstiski, jūs varētu palaist, teiksim, dot slīpsvītra Mario, 541 00:28:03,120 --> 00:28:06,779 dot slīpsvītra mantkārīgs, un pēc tam to varētu parādīs ievadi. 542 00:28:06,779 --> 00:28:08,570 Tagad, tas nav tas, ko mainīt direktoriju dara. 543 00:28:08,570 --> 00:28:12,770 Palaižot cd, tas nav, tad saka, kas gadagrāmatas jūs vēlaties, lai cd vērā? 544 00:28:12,770 --> 00:28:17,200 Tā vietā, jūs vienkārši pateikt, cd pset1, un tas tikai iet uz pset1 direktorijā. 545 00:28:17,200 --> 00:28:20,430 >> Tātad tāpat mums ir citi piemēri. 546 00:28:20,430 --> 00:28:21,540 padarīt sveiki. 547 00:28:21,540 --> 00:28:25,760 Palaižot darīt, tā nav, tad saka, kura programma jūs vēlētos darīt? 548 00:28:25,760 --> 00:28:29,620 Jūs vienkārši teikt, pie komandrindas padarīt Sveiki. 549 00:28:29,620 --> 00:28:31,060 >> Move ir vēl viens piemērs. 550 00:28:31,060 --> 00:28:34,840 Tas viens mēs esam pārvietojot mario.c failu veido vienu direktoriju. 551 00:28:34,840 --> 00:28:38,060 Tātad tagad mēs zinām, ar šo piemēru mēs tiešām iet divus argumentus. 552 00:28:38,060 --> 00:28:42,090 Tur mario.c kā pirmo argumentu, un dot dot ir otrais arguments. 553 00:28:42,090 --> 00:28:46,140 Un tad, kad jūs darbināt darīt, jums redzēt, ka tiešām ilgi komandu line-- 554 00:28:46,140 --> 00:28:50,580 ka tiešām ilgi komanda izdrukāts komandrindas. 555 00:28:50,580 --> 00:28:53,590 Tā, ka ilgi command-- šis ir tikai īss daļa no tā, 556 00:28:53,590 --> 00:28:56,090 bet tagad mums ir trīs komandrindas argumentus. 557 00:28:56,090 --> 00:28:59,750 Dot domuzīme nulle, hello, un hello.c. 558 00:28:59,750 --> 00:29:03,497 >> Tātad šie ir komandrindas argumenti, argumenti 559 00:29:03,497 --> 00:29:05,580 ka jūs iet pie komandrindas tā, ka tas 560 00:29:05,580 --> 00:29:08,680 nav piedāvāts palaižot programmu. 561 00:29:08,680 --> 00:29:13,090 Būtu nomākta, ja tad, kad jūs ilga šķindēt tā teica, "Labi, 562 00:29:13,090 --> 00:29:15,630 kas program-- kas fails jūs apkopojot? 563 00:29:15,630 --> 00:29:17,010 Hello.c. 564 00:29:17,010 --> 00:29:19,440 Ko karogi would you vēlētos ienākt? domuzīme o. 565 00:29:19,440 --> 00:29:21,190 Ko tu gribētu fails, kas sauc? 566 00:29:21,190 --> 00:29:21,690 sveiki. 567 00:29:21,690 --> 00:29:25,290 Nē, jūs vienkārši palaist šķindēt domuzīme o sveiks hello.c. 568 00:29:25,290 --> 00:29:28,820 >> Tātad atskatoties šo. 569 00:29:28,820 --> 00:29:32,920 Tagad argc-- argc ir arguments skaitu. 570 00:29:32,920 --> 00:29:36,620 Tas ir skaits, komandrindas argumenti ievadīta pie komandrindas. 571 00:29:36,620 --> 00:29:39,720 Nu, argv-- tehniski V apzīmē vektors, 572 00:29:39,720 --> 00:29:41,460 kas būtībā nozīmē, masīvs. 573 00:29:41,460 --> 00:29:42,680 Bet jūs varat ignorēt to. 574 00:29:42,680 --> 00:29:47,540 Argv-- mums ir string argv, tāpēc string argv iekavās. 575 00:29:47,540 --> 00:29:50,150 Tātad šī ir cita veida konsoles neesat redzējis. 576 00:29:50,150 --> 00:29:52,300 Tāpēc mēs esam redzējuši kronšteins notācija kad mēs esam teica, 577 00:29:52,300 --> 00:29:53,970 piemēram, stīgu s vienāds Zamyla. 578 00:29:53,970 --> 00:29:56,910 s kronšteins 0 piekļūst rakstzīmju Z. 579 00:29:56,910 --> 00:30:00,720 >> Mēs esam arī redzējuši kronšteini, kad tie mēs teicām int vecumu stiprinājuma 5. 580 00:30:00,720 --> 00:30:03,160 Kas deklarēta masīvs izmēru 5. 581 00:30:03,160 --> 00:30:06,280 Tātad, šeit ir versija kronšteini mēs neesam redzējuši. 582 00:30:06,280 --> 00:30:09,630 Tātad šāda veida stīgu argv ka būtu pilnīgi pazīstams 583 00:30:09,630 --> 00:30:12,050 ka tas būtu vienkārši virkne. 584 00:30:12,050 --> 00:30:14,520 Tagad iekavās norādīt ka tas ir masīvs. 585 00:30:14,520 --> 00:30:19,920 Tātad stīgu argv kronšteini līdzekļi ka argv ir masīvs stīgas. 586 00:30:19,920 --> 00:30:22,540 Tagad tehniski virkne ir masīvs rakstzīmes. 587 00:30:22,540 --> 00:30:26,400 Tāpēc tagad tas ir masīvs no masīva rakstzīmes. 588 00:30:26,400 --> 00:30:31,490 Bet tas ir daudz vieglāk domāt par Tas, kā tikai masīvs stīgas. 589 00:30:31,490 --> 00:30:34,900 >> Tātad, kāpēc varētu iekavas būt tukša? 590 00:30:34,900 --> 00:30:38,170 Tāpat, kāpēc mēs nevaram teikt, kronšteins 5, bracket n? 591 00:30:38,170 --> 00:30:40,700 592 00:30:40,700 --> 00:30:41,200 Jā. 593 00:30:41,200 --> 00:30:43,731 594 00:30:43,731 --> 00:30:44,230 Jā. 595 00:30:44,230 --> 00:30:46,396 Mēs nezinām, cik daudz ieejas tur gribam būt. 596 00:30:46,396 --> 00:30:53,560 Tātad, ja mēs skatāmies uz šķindēt piemēram, mēs sakām šķindēt domuzīme o sveiki hello.c. 597 00:30:53,560 --> 00:30:56,710 Šajā konkrētajā gadījumā, tur gadās būt trīs komandrindas argumentus. 598 00:30:56,710 --> 00:31:00,522 Un tā brackets-- mēs redzēsim Kā otru nebūtu trīs. 599 00:31:00,522 --> 00:31:01,730 Tas tehniski būtu četri. 600 00:31:01,730 --> 00:31:04,030 Bet kronšteini, mēs būtu teiksim, ir trīs. 601 00:31:04,030 --> 00:31:08,220 Bet tagad, ja mēs paskatījās kustībā mario.c dot dot, tad kronšteini 602 00:31:08,220 --> 00:31:09,760 mēs vēlamies likt divus tiem. 603 00:31:09,760 --> 00:31:12,884 >> Un tur ir daudz komandu, kas ir mainīgu skaitu komandrindas 604 00:31:12,884 --> 00:31:13,620 argumenti. 605 00:31:13,620 --> 00:31:17,430 Tātad, kas šajā versijā kronšteins notācija norāda 606 00:31:17,430 --> 00:31:20,820 ir tas, ka argv ir masīvs stīgas. 607 00:31:20,820 --> 00:31:24,360 Bet mēs nezinām, cik daudz stīgas ir šajā masīvā. 608 00:31:24,360 --> 00:31:27,090 Un kā mēs zinām, tad kā daudzas stīgas ir masīva? 609 00:31:27,090 --> 00:31:28,870 Tas ir viss punkts argc. 610 00:31:28,870 --> 00:31:32,300 argc stāsta, cik ilgi argv ir. 611 00:31:32,300 --> 00:31:36,500 >> Tātad pēdējā lieta, kas jāpatur prāts ir tas, ka, tehniski, 612 00:31:36,500 --> 00:31:40,820 komanda pati skaitās kā viens no komandrindas argumentus. 613 00:31:40,820 --> 00:31:45,330 Tātad cd pset1, ir divi komandrindas argumentus. 614 00:31:45,330 --> 00:31:50,260 Programma pati par sevi, cd, un pēc tam faktiskais arguments daļa no tā, pset1. 615 00:31:50,260 --> 00:31:54,490 Jebkura programma, kas jūs esat rakstiski līdz šim ir bijusi viena komandrindas argument-- dot 616 00:31:54,490 --> 00:31:55,320 slash Mario. 617 00:31:55,320 --> 00:31:57,350 Tas ir vienīgais komandrindas arguments. 618 00:31:57,350 --> 00:32:00,900 >> Tāpēc tagad meklē šķindēt domuzīme o sveiks hello.c. 619 00:32:00,900 --> 00:32:01,905 Tātad, kas ir 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 Tātad argc ir 4. 623 00:32:08,140 --> 00:32:12,140 Šķindēt, tāpēc argv kronšteins 0 ir šķindēt. 624 00:32:12,140 --> 00:32:15,630 argv kronšteins 1 ir domuzīme 0. 625 00:32:15,630 --> 00:32:21,870 argv kronšteins 2 ir sveiki, un argv kronšteins 3 ir hello.c. 626 00:32:21,870 --> 00:32:26,813 Ok, tāpēc jautājumi par šo, un tad mēs apskatīt dažus programmatiski piemērus. 627 00:32:26,813 --> 00:32:29,460 628 00:32:29,460 --> 00:32:30,480 >> LABI. 629 00:32:30,480 --> 00:32:36,260 Tātad mēs ņemšu apskatīt hello3.c. 630 00:32:36,260 --> 00:32:41,890 Tātad tas būtu jāzina no viens no pirmajiem c piemēriem 631 00:32:41,890 --> 00:32:45,800 mums bija, kur mēs vēlētos teikt, sveiki pasaule, bet tagad tas ir vispārīgāks. 632 00:32:45,800 --> 00:32:52,300 Tātad šeit mēs sakām sveiki % s slīpsvītru n argv kronšteins 1. 633 00:32:52,300 --> 00:32:57,440 Notice-- tik up līdz šim punktam, tas ir kāds ir mans veidnes fails izskatījās. 634 00:32:57,440 --> 00:33:01,800 Man bija int galvenais (spēkā neesošs), un tad es darīt kaut ko galvenā funkcija. 635 00:33:01,800 --> 00:33:05,100 Tagad tā vietā, kad mēs sākam darīšana ar komandrindas argumentus, 636 00:33:05,100 --> 00:33:07,890 mums ir nepieciešams, lai valstī A atšķirīga forma galvenais. 637 00:33:07,890 --> 00:33:11,930 >> Tātad apskatot hello3 atkal, galvenais ir iet 638 00:33:11,930 --> 00:33:15,990 ņemt divus argumentus now-- int argc, No komandrindas argumentus numurs, 639 00:33:15,990 --> 00:33:20,970 un stīgu argv iekavās, faktiskais virknes ievadīta pie komandrindas. 640 00:33:20,970 --> 00:33:26,560 Tāpēc es esmu gatavojas mainīt, ka veidni, lai atspoguļotu šo faktu. 641 00:33:26,560 --> 00:33:29,060 Tagad, kad jūs rakstīt programma, ja jums nav 642 00:33:29,060 --> 00:33:33,720 jāveic nekādas komandrindas argumenti, tad tikai izmantot int galvenais (spēkā neesošs). 643 00:33:33,720 --> 00:33:37,070 Bet tagad, kad jūs esat rakstiski komandrindas arguments programmas, kas 644 00:33:37,070 --> 00:33:40,350 jūs gatavojas darīt, lai problēmu noteikt two-- Tāpēc tagad, ka jūs strādājat 645 00:33:40,350 --> 00:33:42,630 programmas, kas ir nepieciešams, lai ņemtu komandrindas argumentus, 646 00:33:42,630 --> 00:33:45,250 jums ir galvenais šīs veidlapas. 647 00:33:45,250 --> 00:33:51,290 >> Tātad here-- tas ir liels izmantošana no komandrindas argumentu. 648 00:33:51,290 --> 00:33:54,100 Tātad drukāšanas argv 1. 649 00:33:54,100 --> 00:33:59,180 Labi, tāpēc pieņemsim sastādīt un palaist šo programmu. 650 00:33:59,180 --> 00:34:02,440 Padarīt hello3. 651 00:34:02,440 --> 00:34:03,570 Apkopo. 652 00:34:03,570 --> 00:34:06,870 Dot slash hello3. 653 00:34:06,870 --> 00:34:08,920 Un teiksim, "Rob." 654 00:34:08,920 --> 00:34:10,760 Sveiki Rob. 655 00:34:10,760 --> 00:34:14,940 Ja es saku, "Sveiki Maria" Hello Maria. 656 00:34:14,940 --> 00:34:15,719 Sveiki Maria. 657 00:34:15,719 --> 00:34:18,639 Hannah joprojām saka "hello Maria ", jo es neesmu 658 00:34:18,639 --> 00:34:21,340 darīt kaut ko ar mūsu argv 2. 659 00:34:21,340 --> 00:34:22,590 Argv 2 tagad būtu "Hannah." 660 00:34:22,590 --> 00:34:25,030 Argc būtu 3. 661 00:34:25,030 --> 00:34:27,735 Ko darīt, ja es tomēr šo? 662 00:34:27,735 --> 00:34:31,980 663 00:34:31,980 --> 00:34:34,679 Tātad sveiki null. 664 00:34:34,679 --> 00:34:38,760 >> Viņš īsi pieskārās faktu ka, tehniski, GetString 665 00:34:38,760 --> 00:34:42,429 varētu atgriezties null, bet mēs iegūtu vairāk par to, ko null partija patiesībā ir. 666 00:34:42,429 --> 00:34:47,449 Bet ņemt to kā jautājums Fakts, ka neviens parasti slikti. 667 00:34:47,449 --> 00:34:50,179 Mēs kaut ko nepareizi, ja tas ir drukāšanas "hello null." 668 00:34:50,179 --> 00:34:52,179 Un iemesls, mēs darījām kaut kas nepareizi is-- labi, 669 00:34:52,179 --> 00:34:56,179 kad es skrēja dot slash hello3, argc bija 1. 670 00:34:56,179 --> 00:34:59,680 Tātad tas nozīmē, garums argv bija 1. 671 00:34:59,680 --> 00:35:05,110 Ja masīvs ir garuma 1, vienīgais derīgs indekss ir nulle. 672 00:35:05,110 --> 00:35:08,550 Un tāpēc šeit argv 1 ir ārpus diapazons šī masīva. 673 00:35:08,550 --> 00:35:13,410 Tas bija līdzīgs pirms, kad es mēģināju uzglabāt 6 ārpus beigām masīva. 674 00:35:13,410 --> 00:35:18,100 Tāpēc es cenšos piekļūt kaut ko Ārpus argv skaitu, 675 00:35:18,100 --> 00:35:21,340 un mēs esam nonākuši null. 676 00:35:21,340 --> 00:35:24,360 >> Tāpēc labāks variants Tas, uzlabojums, 677 00:35:24,360 --> 00:35:27,010 nepārprotami pārbaudot argc. 678 00:35:27,010 --> 00:35:33,580 Tātad, ja argc vienāds ar 2, tas nozīmē, ka mums bija kaut kas līdzīgs dot slash hello3 Rob. 679 00:35:33,580 --> 00:35:36,840 Un tas būs drukāt "hello Rob." 680 00:35:36,840 --> 00:35:39,850 Ja argc nav vienāds 2, tad tas ir tikai gatavojas 681 00:35:39,850 --> 00:35:42,560 ignorēt ko jūs likts pie komandrindas arguments 682 00:35:42,560 --> 00:35:43,960 kā komandrindas argumentus. 683 00:35:43,960 --> 00:35:47,168 Vai, ja jums nav likts kāds vispār, tas ir tikai gatavojas ignorēt to un tikai teikt, 684 00:35:47,168 --> 00:35:47,960 "Sveiks tu." 685 00:35:47,960 --> 00:35:51,490 >> Tātad, apkopojot šo. 686 00:35:51,490 --> 00:35:54,500 Padarīt hello4. 687 00:35:54,500 --> 00:35:56,790 Un darbojas hello4. 688 00:35:56,790 --> 00:36:00,010 Running to šādā veidā, Ko būtu jādrukā? 689 00:36:00,010 --> 00:36:01,330 "Sveiks tu." 690 00:36:01,330 --> 00:36:02,810 Sveiks tu. 691 00:36:02,810 --> 00:36:05,870 Kas par hello4 Rob? 692 00:36:05,870 --> 00:36:06,950 "Hello Rob." 693 00:36:06,950 --> 00:36:10,580 Un visbeidzot, sveiki Rob Maria ir tikai "sveiki You" atkal, 694 00:36:10,580 --> 00:36:13,677 jo jums nav īsti ieiet kaut ka tas gaidāms. 695 00:36:13,677 --> 00:36:15,510 Jums ievadīts vairāk vārdu nekā tā varētu rīkoties, 696 00:36:15,510 --> 00:36:19,500 tāpēc tas tikai neizpilde uz Hello jums uzvedība. 697 00:36:19,500 --> 00:36:23,040 Tātad jautājumiem par šo? 698 00:36:23,040 --> 00:36:26,290 Vai komandrindas argumentus? 699 00:36:26,290 --> 00:36:28,690 >> Labi, tāpēc ņemot apskatīt pāris vairāk piemēru, izmantojot 700 00:36:28,690 --> 00:36:34,230 komandrindas arguments-- pirmais mēs esam argv domuzīme 1 dot c. 701 00:36:34,230 --> 00:36:38,510 Tātad komentāri atdot to, ko Šī programma būtu jādara. 702 00:36:38,510 --> 00:36:42,460 Bet paziņojums now-- šis cilpa, tas atbilst precīzu modeli 703 00:36:42,460 --> 00:36:43,390 Es jau teicu iepriekš. 704 00:36:43,390 --> 00:36:46,240 Mēs vienkārši gadās būt izmantojot argc nevis n. 705 00:36:46,240 --> 00:36:48,880 Tagad argc ir patiešām n. 706 00:36:48,880 --> 00:36:51,260 Tā garums argv masīva. 707 00:36:51,260 --> 00:36:59,600 Tātad tiek atkārtojot pār argv masīvs printf-ing katru argv vērtību. 708 00:36:59,600 --> 00:37:04,730 >> Tātad, ja es drīkstu to. 709 00:37:04,730 --> 00:37:08,232 Padarīt argv 1. 710 00:37:08,232 --> 00:37:09,940 Tas apkopo. 711 00:37:09,940 --> 00:37:11,620 Dot slash argv 1. 712 00:37:11,620 --> 00:37:15,530 Tikai rādīt šo, to izdrukas dot slash argv 1 713 00:37:15,530 --> 00:37:18,500 jo tas bija vienīgais komandrindas argument-- programmas nosaukums. 714 00:37:18,500 --> 00:37:22,080 Tur vienmēr būs least-- argc nevar būt mazāks par vienu, 715 00:37:22,080 --> 00:37:25,910 jo tur būs vienmēr vismaz būt programmas nosaukums, lai palaistu. 716 00:37:25,910 --> 00:37:32,040 Tātad argv 1 Rob izdrukās argv 1 un tad par jaunu līniju "Rob." 717 00:37:32,040 --> 00:37:36,350 >> Tātad pirmajā atkārtojuma šīs cilpas, i ir 0. 718 00:37:36,350 --> 00:37:39,090 Argv 0 ir programmas nosaukums. 719 00:37:39,090 --> 00:37:40,010 Dot slash argv 1. 720 00:37:40,010 --> 00:37:43,770 Un tad argv 1 ir mans pirmais komandrindas arguments, kas ir Rob. 721 00:37:43,770 --> 00:37:45,920 Šajā brīdī, mēs esam vienādi ar argc. 722 00:37:45,920 --> 00:37:48,210 Mēs izkļūt no cilpas, un mēs esam darījuši. 723 00:37:48,210 --> 00:37:53,940 Tātad tas strādās patvaļīgs skaits komandrindas argumentus. 724 00:37:53,940 --> 00:37:58,550 Ievērojiet, tas drukā argv 0, argv 1, argv 2, argv 3, argv 4. 725 00:37:58,550 --> 00:38:00,150 Un nav argv 5. 726 00:38:00,150 --> 00:38:01,460 argc ir vienāds ar 5. 727 00:38:01,460 --> 00:38:06,960 Tātad argc-- pie i vienāds 5, mēs izkļūt no cilpas. 728 00:38:06,960 --> 00:38:07,950 LABI. 729 00:38:07,950 --> 00:38:11,315 Tāpēc jautājumiem par ka, pirms mēs apskatīt sarežģītāku piemēru? 730 00:38:11,315 --> 00:38:14,190 731 00:38:14,190 --> 00:38:16,860 >> Tātad argv 2. 732 00:38:16,860 --> 00:38:17,830 Viss kārtībā. 733 00:38:17,830 --> 00:38:20,610 Tātad mēs joprojām drukāšanas komandrindas argumentus. 734 00:38:20,610 --> 00:38:23,170 Bet tagad paziņojums mums Nested cilpas. 735 00:38:23,170 --> 00:38:24,670 Tātad, kas ir tas dara? 736 00:38:24,670 --> 00:38:28,430 Tātad pirmais cilpa dara ko tieši tas bija agrāk. 737 00:38:28,430 --> 00:38:30,950 Mēs joprojām looping vairāk katrs komandrindas arguments, 738 00:38:30,950 --> 00:38:34,260 bet tagad šis otrais loop-- mēs esam arī redzējis kaut kas līdzīgs šim agrāk. 739 00:38:34,260 --> 00:38:38,600 Kad viņš bija atkārtojot vairāk Zamyla izdrukāšanu Z-A-M-Y-L-A. 740 00:38:38,600 --> 00:38:44,816 Tātad šis otrais cilpa int j vienāds 0, n ir vienāds strlen par argv kronšteinu i. 741 00:38:44,816 --> 00:38:49,170 >> Tātad pieņemsim vispirms domāt par the-- pieņemsim iet cauri. 742 00:38:49,170 --> 00:38:53,560 Padomāsim, ko dators būtu darīt, ja es skrēja šo programmu, kā tikai dot 743 00:38:53,560 --> 00:38:56,030 slash argv Dash 2. 744 00:38:56,030 --> 00:39:03,590 Tātad, ja es skrēja šo kodu, tad argc būs vienāds ar 1. 745 00:39:03,590 --> 00:39:07,050 Un stīgu argv-- tur ir tikai būs viens indekss argv, 746 00:39:07,050 --> 00:39:12,370 un tas būs vienāds ar dot slash argv 2-- programmas nosaukums. 747 00:39:12,370 --> 00:39:19,170 >> Labi, tāpēc tagad man ir 0, i mazāk nekā 1, i plus plus int j ir vienāds ar 0, 748 00:39:19,170 --> 00:39:23,880 n ir vienāds strlen par argv kronšteinu 0, tāpēc pirmā atkārtojuma šīs cilpas. argv 749 00:39:23,880 --> 00:39:27,250 kronšteins 0 ir dot slīpsvītra argv 2. 750 00:39:27,250 --> 00:39:29,320 Tātad, kas ir garums šī string? 751 00:39:29,320 --> 00:39:32,480 Nu, dot slash A-R-G-v Dash 2. 752 00:39:32,480 --> 00:39:35,020 Tātad strlen no tā būs 8. 753 00:39:35,020 --> 00:39:37,500 Tātad j ir vienāds ar 0, n ir vienāds ar 8. 754 00:39:37,500 --> 00:39:39,530 Tik ilgi, kamēr j ir mazāks nekā 8, j ++. 755 00:39:39,530 --> 00:39:44,080 Un ar to mēs ejam, lai būtu drukājot vienu rakstzīmi, kas 756 00:39:44,080 --> 00:39:47,350 ir argv kronšteins i stiprinājuma j. 757 00:39:47,350 --> 00:39:49,826 >> Tātad vienīgais i ir nulle. 758 00:39:49,826 --> 00:39:51,700 Mums joprojām ir tikai viens komandrindas arguments. 759 00:39:51,700 --> 00:39:53,890 Šajā pirmajā iterācijā no cilpas, mēs esam 760 00:39:53,890 --> 00:39:56,950 būs drukāšanas argv kronšteins 0 kronšteins 0. 761 00:39:56,950 --> 00:39:58,325 Un tad j gatavojas pieauguma. 762 00:39:58,325 --> 00:40:01,650 Un mēs ejam, lai drukāšanu argv kronšteins 0 kronšteins 1. 763 00:40:01,650 --> 00:40:04,150 Un tad argv kronšteins 0 grupā 2. 764 00:40:04,150 --> 00:40:09,030 >> Tātad šī ir mūsu pirmā tikšanās multi-dimensiju masīvu. 765 00:40:09,030 --> 00:40:12,770 Atcerieties, agrāk, ka es teicu ka argv ir tehniski 766 00:40:12,770 --> 00:40:15,950 masīvs bloki rakstzīmes. 767 00:40:15,950 --> 00:40:24,360 Tātad šeit, ja es teicu kaut ko līdzīgu string s vienāds argv kronšteinu i, 768 00:40:24,360 --> 00:40:29,590 un tad es teicu, s kronšteins j, tas būtu Veicot to pašu. 769 00:40:29,590 --> 00:40:31,960 Tagad, kad esat redzējuši s stiprinājuma j pirms. 770 00:40:31,960 --> 00:40:36,680 Tas ir vienkārši piekļūt j- varonis šajā virkni. 771 00:40:36,680 --> 00:40:48,010 Tātad ar šo, mēs saņemat j-tais raksturs i-argv. 772 00:40:48,010 --> 00:40:51,450 >> Tātad, kas būtu tas galu galā izeja? 773 00:40:51,450 --> 00:40:53,210 Padarīt argv 2. 774 00:40:53,210 --> 00:40:54,730 Tas apkopo. 775 00:40:54,730 --> 00:40:56,340 Dot slash argv 2. 776 00:40:56,340 --> 00:41:03,790 "Rob Maria Hannah," un dod mums dažas vietas. 777 00:41:03,790 --> 00:41:07,050 Tātad mēs redzam, ka tas ir outputting dot savā rindā un slīpsvītra 778 00:41:07,050 --> 00:41:08,920 savā līniju un savā rindā. 779 00:41:08,920 --> 00:41:11,260 Tas izdrukāšana katrs individuāls raksturs 780 00:41:11,260 --> 00:41:12,950 Katras komandrindas argumentu. 781 00:41:12,950 --> 00:41:15,960 Un pēc tam starp tiem, jo šīs jaunās līnijas 782 00:41:15,960 --> 00:41:19,380 mēs esam drukāšanas leju šeit, starp viņiem tas būs drukāt jaunu līniju. 783 00:41:19,380 --> 00:41:24,540 >> Tāpēc tas ir līdzīgs iepriekšēja argv domuzīme 1, 784 00:41:24,540 --> 00:41:26,459 kas drukāts katrs komandrindas arguments, 785 00:41:26,459 --> 00:41:28,500 bet tagad mēs esam drukāšanas komandrindas argumentus 786 00:41:28,500 --> 00:41:31,950 un pēc tam atkārtojot caur katru raksturu katra komandrindas arguments 787 00:41:31,950 --> 00:41:35,400 lai iegūtu šo produkciju. 788 00:41:35,400 --> 00:41:36,870 LABI? 789 00:41:36,870 --> 00:41:40,570 Tātad jautājumiem par šo? 790 00:41:40,570 --> 00:41:45,130 >> Viena lieta ir tas, ka komandrindas arguments-- 791 00:41:45,130 --> 00:41:49,990 tāpēc tie ir atdalīti ar atstarpēm, kā Jūs, protams, sagaidīt tos. 792 00:41:49,990 --> 00:41:53,050 Tātad virkne var būt atstarpes tajā. 793 00:41:53,050 --> 00:41:57,380 Tas nav svarīgi, super, bet, ja es gribēja trešo komandrindas argumentu 794 00:41:57,380 --> 00:42:01,226 lai būtu telpas tā, tad es Varētu teikt kaut kas līdzīgs šim. 795 00:42:01,226 --> 00:42:04,470 796 00:42:04,470 --> 00:42:05,550 LABI? 797 00:42:05,550 --> 00:42:12,190 Tātad tagad tas joprojām ir tikai trīs komandrindas arguments-- labi 4. 798 00:42:12,190 --> 00:42:17,620 Dot slash argv domuzīme 2, Rob, Maria un Hannah Bloomberg. 799 00:42:17,620 --> 00:42:18,320 LABI. 800 00:42:18,320 --> 00:42:19,310 Jautājumi par šo? 801 00:42:19,310 --> 00:42:22,700 802 00:42:22,700 --> 00:42:24,894 >> Nav nekas īpašs par tukšumsimbolu. 803 00:42:24,894 --> 00:42:27,810 Tā vienkārši notiek, ir, ka komandrindas izturas atstarpes rakstzīmi 804 00:42:27,810 --> 00:42:29,226 cik jūs atdaliet argumentu. 805 00:42:29,226 --> 00:42:32,048 806 00:42:32,048 --> 00:42:33,000 Viss kārtībā. 807 00:42:33,000 --> 00:42:39,950 Tātad Problēma komplekts two-- jūs esat būs 808 00:42:39,950 --> 00:42:43,240 Aplūkojot noslēpums atslēgas kriptogrāfiju. 809 00:42:43,240 --> 00:42:47,700 Tātad, līdzīgi kā šajā piemērā mēs redzējām no Ziemassvētku stāsts, 810 00:42:47,700 --> 00:42:52,840 jūs esat būs īstenot dažus algoritmi, ka, ņemot vērā ziņu, 811 00:42:52,840 --> 00:42:55,560 jūs gatavojas, lai varētu šifrēt šo ziņu 812 00:42:55,560 --> 00:42:58,730 ka tikai kāds ar šo noslēpumu Galvenais, ar šo dekodera gredzenu, 813 00:42:58,730 --> 00:43:01,090 jāspēj atšifrēt. 814 00:43:01,090 --> 00:43:04,839 >> Tā, ka ir standarta izdevums. 815 00:43:04,839 --> 00:43:07,130 Jūs esat būs īstenošanai divas dažādas versijas. 816 00:43:07,130 --> 00:43:09,620 Ja tev gadās to apskatīt at hakeris Edition tagad, 817 00:43:09,620 --> 00:43:12,600 mēs spēsim dot Jums virkne, piemēram, tas, 818 00:43:12,600 --> 00:43:15,240 kas veido šifrētu paroli. 819 00:43:15,240 --> 00:43:19,990 Tātad jūsu mērķis ir, lai noskaidrotu ko atšifrēti parole. 820 00:43:19,990 --> 00:43:26,950 Tagad tas ir patiesībā, cik paroles tiek saglabāti daudz datoriem, 821 00:43:26,950 --> 00:43:31,290 un tas tikai saglabā šo izlases rakstzīmju virkne. 822 00:43:31,290 --> 00:43:34,440 Jums ir izdomāt, kā nokļūt no šīs izlases rakstzīmju virkne 823 00:43:34,440 --> 00:43:36,140 uz ko sākotnējā parole. 824 00:43:36,140 --> 00:43:39,060 825 00:43:39,060 --> 00:43:43,290 >> Un, visbeidzot, pēc tam problēma, kas, jums vajadzētu 826 00:43:43,290 --> 00:43:46,100 varētu saprast, ko tas nozīmē. 827 00:43:46,100 --> 00:43:51,650 Tātad jūs uzzināsiet, kā atšifrēt šāda veida izlases virkni. 828 00:43:51,650 --> 00:43:56,390 Tāpat, ja jūs atceraties no nedēļas 0, jūs varētu būt redzējis šo URL. 829 00:43:56,390 --> 00:44:00,210 Un jums būtu jāspēj atšifrēt tas galu galā. 830 00:44:00,210 --> 00:44:04,810 Jums varētu būt laimīgs, ja jums atšifrēt to un noklikšķiniet uz saites. 831 00:44:04,810 --> 00:44:05,700 Viss kārtībā. 832 00:44:05,700 --> 00:44:06,591 Tas ir tas uz šodienu. 833 00:44:06,591 --> 00:44:12,095 Tātad redzēt jūs nākamajā nedēļā! 834 00:44:12,095 --> 00:44:18,315 >> [ELECTRONIC mūzikas atskaņošanai] 835 00:44:18,315 --> 00:47:15,619