1 00:00:00,000 --> 00:00:03,944 >> [TÓNLIST spila] 2 00:00:03,944 --> 00:00:10,732 3 00:00:10,732 --> 00:00:11,690 DAVID Malan: Allt í lagi. 4 00:00:11,690 --> 00:00:14,674 Þetta er CS50, og þetta er lok viku 2. 5 00:00:14,674 --> 00:00:16,840 Ég er svo leitt að ég gæti ekki verið það með þér allt í dag, 6 00:00:16,840 --> 00:00:18,300 en þú ert í mjög góðum höndum. 7 00:00:18,300 --> 00:00:21,710 Leyfa mér að kynna Eigin CS50 er Rob Bowden. 8 00:00:21,710 --> 00:00:29,106 9 00:00:29,106 --> 00:00:31,730 ROB BOWDEN: Og auðvitað, þá við verðum að gera grín af því 10 00:00:31,730 --> 00:00:36,820 að hann sendi okkur lóðrétt vídeó og sýna þetta. 11 00:00:36,820 --> 00:00:38,320 >> [Vídeó spilun] 12 00:00:38,320 --> 00:00:39,820 >> [TÓNLIST spila] 13 00:00:39,820 --> 00:00:42,350 >> [Fótspor] 14 00:00:42,350 --> 00:00:44,730 >> Video -Þessi ekki að líta á þennan hátt. 15 00:00:44,730 --> 00:00:46,570 Það gæti hafa verið í veg fyrir. 16 00:00:46,570 --> 00:00:49,070 Segja nei við lóðrétta myndbönd. 17 00:00:49,070 --> 00:00:53,310 >> -Vertical Myndbönd gerast þegar þú halda myndavélinni á rangan hátt. 18 00:00:53,310 --> 00:00:55,880 Video mun enda upp útlit eins vitleysa. 19 00:00:55,880 --> 00:00:57,650 >> - [Grunt] 20 00:00:57,650 --> 00:01:02,240 >> -Það Eru fleiri og fleiri fólk háður að gera lóðrétta myndbönd á hverjum degi. 21 00:01:02,240 --> 00:01:06,240 Það er ekki sprunga eða ekkert, en það er samt mjög slæmt. 22 00:01:06,240 --> 00:01:10,410 Það eru tvær mismunandi tegundir af fólk sem er bæklaður með VVS. 23 00:01:10,410 --> 00:01:14,160 Fyrsti hópurinn skemmtun myndbönd sem þeir skjóta eins og myndir. 24 00:01:14,160 --> 00:01:15,850 Þeir gera það ekki skaða. 25 00:01:15,850 --> 00:01:19,180 Þeir bara skilja ekki að á meðan þú getur snúið mynd, 26 00:01:19,180 --> 00:01:20,880 þú getur í raun ekki snúa vídeó. 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 Hinn hópurinn er fólk sem gefa ekki [Bleep]. 30 00:01:27,540 --> 00:01:31,090 >> -Vertical Video Syndrome er hættulegt. 31 00:01:31,090 --> 00:01:34,120 Kvikmyndir hafa alltaf verið lárétt. 32 00:01:34,120 --> 00:01:35,990 Sjónvörp eru lárétt. 33 00:01:35,990 --> 00:01:38,380 Tölvuskjáir eru lárétt. 34 00:01:38,380 --> 00:01:41,580 Augu fólks eru lárétt. 35 00:01:41,580 --> 00:01:45,170 Við erum ekki byggð til að horfa lóðrétt myndbönd. 36 00:01:45,170 --> 00:01:47,600 >> -Ég Elska lóðrétt myndbönd. 37 00:01:47,600 --> 00:01:50,410 >> -Nobody Annt um þig. 38 00:01:50,410 --> 00:01:53,340 >> -Ef Þetta vandamál er vinstri óskráðan, þú líka 39 00:01:53,340 --> 00:01:57,650 mun byrja að sýna fjórar myndbönd í einu bara til að spara bandbreidd. 40 00:01:57,650 --> 00:02:02,400 >> -Letterboxed Lóðrétt myndbönd myndi að vera á stærð við frímerki. 41 00:02:02,400 --> 00:02:04,920 >> -Og Það mun dreifa alls staðar. 42 00:02:04,920 --> 00:02:07,670 Bíómynd skjár hafa alltaf verið lárétt. 43 00:02:07,670 --> 00:02:11,200 Ef lóðrétt myndbönd verða Samþykkt, kvikmyndahúsum 44 00:02:11,200 --> 00:02:13,930 verður að vera hár og horaður. 45 00:02:13,930 --> 00:02:17,710 >> -Og Allar kvikmyndahúsum myndi að fá rifið niður og endurbyggð. 46 00:02:17,710 --> 00:02:22,090 Og með þeim tíma sem þeir voru endurbyggð, Mila Kunis væri gamall og ljótur. 47 00:02:22,090 --> 00:02:24,342 >> -Birds Mun hrun í þeim og deyja. 48 00:02:24,342 --> 00:02:26,530 >> -We'll Allir fá stífur háls að horfa upp. 49 00:02:26,530 --> 00:02:29,800 >> -Og Enginn mun sitja í fremstu röð alltaf aftur. 50 00:02:29,800 --> 00:02:37,170 >> -George Lucas mun aftur út Star Stríð again-- horaður útgáfa. 51 00:02:37,170 --> 00:02:41,860 >> -Ég Var aldrei hægt að segja sagan sem ég vildi segja. 52 00:02:41,860 --> 00:02:46,030 Þetta var frábært tækifæri fyrir mig til að tilraunir með nýja tækni. 53 00:02:46,030 --> 00:02:48,150 >> -Þú Ert skíthæll. 54 00:02:48,150 --> 00:02:54,430 >> -Every Tími hreyfanlegur tæki er notað til að taka upp myndskeið, þá freistingu er þar. 55 00:02:54,430 --> 00:02:56,370 Bara segja nei. 56 00:02:56,370 --> 00:03:00,116 Segja nei við George Lucas. 57 00:03:00,116 --> 00:03:04,062 Segja nei við gamla Mila Kunis. 58 00:03:04,062 --> 00:03:06,600 Segja nei við lóðrétta myndbönd. 59 00:03:06,600 --> 00:03:12,511 >> -Og Ef þú sérð einhver að gera það, segja, "þú ert ekki að skjóta það rétt Dummy!" 60 00:03:12,511 --> 00:03:15,433 >> [TÓNLIST spila] 61 00:03:15,433 --> 00:03:18,842 62 00:03:18,842 --> 00:03:19,830 >> [END spilun] 63 00:03:19,830 --> 00:03:23,702 >> [Applause] 64 00:03:23,702 --> 00:03:27,598 >> [AUDIO OUT] 65 00:03:27,598 --> 00:03:44,041 66 00:03:44,041 --> 00:03:45,790 ROB BOWDEN: --simple mynd af dulmál, 67 00:03:45,790 --> 00:03:49,500 sem er í grundvallaratriðum the brengla og decryption leyndarmál skilaboð. 68 00:03:49,500 --> 00:03:52,590 Svo hér erum við með mjög einfalt leikfang. 69 00:03:52,590 --> 00:03:56,900 Og hugmyndin er ytri hringur snýst í kringum innri hring. 70 00:03:56,900 --> 00:04:01,610 Og þú geta sjá, kannski ef ég stækka í, that-- það er erfitt að sjá. 71 00:04:01,610 --> 00:04:05,090 En, eins og fjöldi 1-- vel, sem flutti. 72 00:04:05,090 --> 00:04:09,120 >> Númer 1 kort til bréf X, númer 2 kort til bréfi 73 00:04:09,120 --> 00:04:11,630 J. Ótrúlega erfitt að sleppa fram. 74 00:04:11,630 --> 00:04:16,100 Letter 2 kort til J. Númer 3 kort til D. Svo 75 00:04:16,100 --> 00:04:20,140 með þessum hring er hægt að gefa einhver skilaboð 1, 2, 3. 76 00:04:20,140 --> 00:04:22,624 Fyrir sumir ástæða þú langar að segja þeim XJD. 77 00:04:22,624 --> 00:04:24,540 En þú getur gefið þeim sumir skilaboð af tölum, 78 00:04:24,540 --> 00:04:28,460 og svo lengi sem þeir hafa þessi hringur, þeir getur hallmæla hvað þú ert að reyna að segja. 79 00:04:28,460 --> 00:04:32,510 >> Svo þú gætir hafa séð þetta einkum dæmi um dulmál 80 00:04:32,510 --> 00:04:36,640 áður ef um jólahátíðinni þú hefur fylgst með A Christmas Story. 81 00:04:36,640 --> 00:04:38,520 Ef þú hefur aldrei séð það áður, þá bara 82 00:04:38,520 --> 00:04:41,060 kveikja á TBS á bókstaflega hvenær á aðfangadagskvöld, 83 00:04:41,060 --> 00:04:44,510 vegna þess að þeir sýna bara það aftur til baka til baka til baka til baka allan daginn. 84 00:04:44,510 --> 00:04:46,744 Og viðeigandi vídeó er þetta. 85 00:04:46,744 --> 00:04:47,410 [Vídeó spilun] 86 00:04:47,410 --> 00:04:50,020 -Farðu Það kunnugt öllum og ýmis sem Ralph Parker er hér með 87 00:04:50,020 --> 00:04:52,850 skipaður meðlimur Little Orphan Annie Secret Circle 88 00:04:52,850 --> 00:04:56,490 og er rétt að öllum láði og bætur koma við hana. 89 00:04:56,490 --> 00:04:59,010 Undirritað Little Orphan Annie. 90 00:04:59,010 --> 00:05:03,120 Eftirlitsskýrslu Pierre Andre í bleki! 91 00:05:03,120 --> 00:05:07,460 Heiður og ávinningur þegar á aldrinum níu! 92 00:05:07,460 --> 00:05:12,530 >> [GARGA frá útvarpi] 93 00:05:12,530 --> 00:05:13,030 -Láttu ekki svona. 94 00:05:13,030 --> 00:05:14,000 Við skulum fá á við það. 95 00:05:14,000 --> 00:05:18,274 Ég þarf ekki allt sem djass um smyglara og sjóræningja. 96 00:05:18,274 --> 00:05:20,440 -Listen Morgun með heimasíðunni niðurstöður ævintýri 97 00:05:20,440 --> 00:05:22,540 af Black Pirate Ship. 98 00:05:22,540 --> 00:05:25,460 Nú er kominn tími fyrir Leynileg skilaboð Annie 99 00:05:25,460 --> 00:05:28,620 að þér meðlimir Secret Circle. 100 00:05:28,620 --> 00:05:32,370 Mundu börnin, aðeins meðlimir Annie Secret Circle 101 00:05:32,370 --> 00:05:34,880 geta lesa leyndarmál skilaboð Annie. 102 00:05:34,880 --> 00:05:39,100 Mundu, Annie er eftir þig. 103 00:05:39,100 --> 00:05:41,660 Setja pinna til B2. 104 00:05:41,660 --> 00:05:43,960 Hér eru skilaboðin. 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 -Ég Er í fyrsta leyndarmál fundi mínum. 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 >> -Ég Pierre er í mikilli rödd kvöld. 115 00:05:54,570 --> 00:05:57,490 Ég gæti sagt að í kvöld er Skilaboðin var mjög mikilvægt. 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 Það er skilaboð frá Annie sjálf. 119 00:06:01,580 --> 00:06:02,880 Mundu, ekki segja neinum. 120 00:06:02,880 --> 00:06:07,840 121 00:06:07,840 --> 00:06:11,130 >> -Five Sekúndum síðar er ég í eina herbergi í húsinu þar sem drengurinn níu 122 00:06:11,130 --> 00:06:15,830 gæti setið í næði og lesa. 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 Ég fór til the næstur. 126 00:06:20,210 --> 00:06:23,300 E. Fyrsta orðið er "að vera." 127 00:06:23,300 --> 00:06:25,880 S. Það var að koma auðveldara núna. 128 00:06:25,880 --> 00:06:28,400 U. 25. 129 00:06:28,400 --> 00:06:30,528 Það er R. 130 00:06:30,528 --> 00:06:31,278 -Komdu Á, Ralphie! 131 00:06:31,278 --> 00:06:31,861 Ég hef gotta fara! 132 00:06:31,861 --> 00:06:33,182 -Ég Vera rétt niður, Ma! 133 00:06:33,182 --> 00:06:36,038 Gee whiz. 134 00:06:36,038 --> 00:06:42,840 T. O. "Vertu viss um að" - vera viss um að hvað? 135 00:06:42,840 --> 00:06:44,770 Hvað var Little Orphan Annie að reyna að segja? 136 00:06:44,770 --> 00:06:46,381 Vertu viss um að hvað? 137 00:06:46,381 --> 00:06:47,825 >> -Randy Hefur fengið að fara! 138 00:06:47,825 --> 00:06:48,866 Viltu koma út? 139 00:06:48,866 --> 00:06:49,783 >> -Allt Í lagi, mamma! 140 00:06:49,783 --> 00:06:51,786 Ég kem strax út! 141 00:06:51,786 --> 00:06:53,606 Ég var að fá nær nú. 142 00:06:53,606 --> 00:06:55,550 Spennan var hræðilegur. 143 00:06:55,550 --> 00:06:57,050 Hvað var það? 144 00:06:57,050 --> 00:06:59,905 Örlög jörðinni getur hanga í jafnvægi! 145 00:06:59,905 --> 00:07:01,736 >> -Ralphie, Randy fékk að fara! 146 00:07:01,736 --> 00:07:05,680 >> -Ég Sé rétt út, fyrir að gráta upphátt! 147 00:07:05,680 --> 00:07:07,170 Næstum þar! 148 00:07:07,170 --> 00:07:08,150 Fingur minn flaug. 149 00:07:08,150 --> 00:07:09,980 Hugur minn var stál gildru. 150 00:07:09,980 --> 00:07:11,496 Hverri svitaholu titrað. 151 00:07:11,496 --> 00:07:13,268 Það var næstum ljóst! 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 Vertu viss um að drekka Ovaltine þína. 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 A crummy auglýsing? 160 00:07:27,520 --> 00:07:32,040 161 00:07:32,040 --> 00:07:34,920 Fjandinn. 162 00:07:34,920 --> 00:07:35,890 >> [END spilun] 163 00:07:35,890 --> 00:07:39,650 >> ROB BOWDEN: Svo er það hvernig Ovaltine tengist dulmál. 164 00:07:39,650 --> 00:07:42,290 Í grundvallaratriðum CS50 auglýst bara Ovaltine, svo við gátum 165 00:07:42,290 --> 00:07:44,400 vera crummy auglýsing fyrir Ovaltine. 166 00:07:44,400 --> 00:07:44,900 Allt í lagi. 167 00:07:44,900 --> 00:07:47,120 Svo nú raunveruleg tölvunarfræði. 168 00:07:47,120 --> 00:07:50,670 Muna á mánudaginn sem við var horfið köfun dýpra inn strengi. 169 00:07:50,670 --> 00:07:52,820 Þannig að við vorum að fást við strengurinn "Zamyla." 170 00:07:52,820 --> 00:07:55,130 Og við vorum að viðurkenna sú staðreynd að við getum meðhöndla 171 00:07:55,130 --> 00:07:57,510 "Zamyla" sem röð af stöfum. 172 00:07:57,510 --> 00:07:59,740 Og muna að við lærðum krappi tákn. 173 00:07:59,740 --> 00:08:01,995 Þannig að ef þetta voru geymd í streng "s," þá 174 00:08:01,995 --> 00:08:05,860 ef við sögðum s krappi 0, sem myndi bókstaf höfuðborg Z. 175 00:08:05,860 --> 00:08:09,790 Og ef við sögðum s krappi 1, sem myndi gefa til kynna fyrsta lágstafir A, 176 00:08:09,790 --> 00:08:14,220 og svo á allt að s krappi 5, sem myndi gefa til kynna að endast. 177 00:08:14,220 --> 00:08:17,090 >> Nú muna að lengd Þessi strengur er 6, 178 00:08:17,090 --> 00:08:23,220 en vísitölur í streng eru 0 til 5, Z í gegnum það endast. 179 00:08:23,220 --> 00:08:28,650 Þannig að þetta passar nú í stærri mynd af minni tölvunnar, RAM. 180 00:08:28,650 --> 00:08:32,020 Svo einhvers staðar forrit sem þú ert að keyra tölvuna 181 00:08:32,020 --> 00:08:34,780 þarf að muna Zamyla einhvers staðar í minni. 182 00:08:34,780 --> 00:08:36,029 Svo get ég verið með sjálfboðaliða? 183 00:08:36,029 --> 00:08:38,840 184 00:08:38,840 --> 00:08:40,181 Já endilega. 185 00:08:40,181 --> 00:08:50,120 186 00:08:50,120 --> 00:08:51,500 Og hvað heitir þú? 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 Gaman að hitta þig, Dean. 190 00:08:54,910 --> 00:08:58,240 Svo koma hérna, og við erum að fara að hafa þú draga 191 00:08:58,240 --> 00:09:00,740 á fallegu nifty okkar skipulag minni. 192 00:09:00,740 --> 00:09:05,950 Nú er ég eins og til hugsa af minni eins og einn langur ræma bæti, 193 00:09:05,950 --> 00:09:11,090 en bara til birtingar við munum bara vinstri til hægri, efst til botn. 194 00:09:11,090 --> 00:09:11,590 OK? 195 00:09:11,590 --> 00:09:22,030 >> Þannig að ég ætla að sýna a program-- Getstrings.c. 196 00:09:22,030 --> 00:09:25,760 Og svo er allt þetta program að gera er að biðja fjóra strengi 197 00:09:25,760 --> 00:09:28,830 frá notanda með GetString og þá prentun 198 00:09:28,830 --> 00:09:30,950 hvað að fyrsta band inn var. 199 00:09:30,950 --> 00:09:32,840 Við erum að hunsa Tveir gegnum fjórum. 200 00:09:32,840 --> 00:09:33,610 OK. 201 00:09:33,610 --> 00:09:38,210 Svo hérna now-- þegar Ég fyrst beiðni s1. 202 00:09:38,210 --> 00:09:39,740 Svo þú ert í tölvunni. 203 00:09:39,740 --> 00:09:41,680 Og þú ert að innleiða GetString. 204 00:09:41,680 --> 00:09:46,710 Svo þú biður um band frá mér, og ég segi, OK, Dean. 205 00:09:46,710 --> 00:09:47,900 Gefðu strenginn "Dean." 206 00:09:47,900 --> 00:09:50,300 >> Svo einhversstaðar í minni þú þarf að muna "Dean." 207 00:09:50,300 --> 00:09:52,160 Svo skrifa það inn í minni einhvers staðar. 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 OK. 211 00:09:59,880 --> 00:10:01,740 Svo nú höfum við S2. 212 00:10:01,740 --> 00:10:03,869 Og s2 er að fara að vera beiðni um að GetString. 213 00:10:03,869 --> 00:10:05,160 Þannig að ég ætla að slá inn streng. 214 00:10:05,160 --> 00:10:08,720 Ég ætla að koma inn "Hönnu." 215 00:10:08,720 --> 00:10:10,586 Svo inn "Hönnu" einhvers staðar inn í minni. 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 >> OK, svo nú s3. 220 00:10:25,550 --> 00:10:28,380 Og það er að fara að vera annar óskað eftir að GetString. 221 00:10:28,380 --> 00:10:37,020 Og svo nú inn "Maria". 222 00:10:37,020 --> 00:10:37,520 Allt í lagi. 223 00:10:37,520 --> 00:10:40,980 Og þá er það eitt síðasta beiðni til GetString, s4. 224 00:10:40,980 --> 00:10:42,580 Svo, ég veit ekki. 225 00:10:42,580 --> 00:10:45,640 Hvernig væri að við að fara með antidisestablishmentarianism. 226 00:10:45,640 --> 00:10:49,460 Svo inn að í minni. 227 00:10:49,460 --> 00:10:50,400 Já. 228 00:10:50,400 --> 00:10:53,970 Svo bara gera "Rob." 229 00:10:53,970 --> 00:10:54,560 >> OK. 230 00:10:54,560 --> 00:10:58,410 Svo nú explain-- hverju gerði þú skilur þessi rými? 231 00:10:58,410 --> 00:11:01,340 Hvers vegna ertu með þetta auður pláss hér, hér, og hér? 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 Svo eftir þegar ég fer að prenta s1-- þannig að ef við 235 00:11:09,450 --> 00:11:11,890 hefði "Hannah" gangi rétt upp við hliðina á "Dean," 236 00:11:11,890 --> 00:11:14,360 hvernig vitum við hvenær strengurinn "Dean" endar? 237 00:11:14,360 --> 00:11:19,470 Svo prentun strenginn S1 getur haft bara prenta "DeanHannahMariaRob" 238 00:11:19,470 --> 00:11:22,720 ef það hefur ekki allir vísbending af þegar "Dean" endar í raun. 239 00:11:22,720 --> 00:11:23,240 >> Allt í lagi. 240 00:11:23,240 --> 00:11:27,650 Svo í minni þannig að við í raun tákna þetta enda streng 241 00:11:27,650 --> 00:11:29,940 er með sviga núll. 242 00:11:29,940 --> 00:11:32,620 Svo er þetta rúm einmitt það sem við vildum. 243 00:11:32,620 --> 00:11:34,040 Það ætti að vera skástrik núll. 244 00:11:34,040 --> 00:11:37,690 Þetta verður sviga núll, og þetta mun vera skástrik núll. 245 00:11:37,690 --> 00:11:41,585 Og þú getur haft stórkostlegur verðlaun fyrir að vera fullkomið sjálfboðaliði. 246 00:11:41,585 --> 00:11:44,910 247 00:11:44,910 --> 00:11:45,860 Taktu streitu boltanum! 248 00:11:45,860 --> 00:11:49,040 249 00:11:49,040 --> 00:11:49,700 >> OK. 250 00:11:49,700 --> 00:11:54,420 Svo er þetta eðli sviga núll hvernig við kynna enda streng. 251 00:11:54,420 --> 00:11:57,120 Það er að þegar einhver gefið program vill til að prenta streng, 252 00:11:57,120 --> 00:11:59,760 það er how-- man við lærðum sem strlen virka í síðustu viku? 253 00:11:59,760 --> 00:12:00,940 String lengd? 254 00:12:00,940 --> 00:12:03,770 Það er hvernig band lengd er hægt að ákvarða hversu lengi band er. 255 00:12:03,770 --> 00:12:05,810 Hún heldur bara iterating persónurnar 256 00:12:05,810 --> 00:12:08,217 þar til það finnur Sviga núll staf. 257 00:12:08,217 --> 00:12:11,050 Svo mikilvægt að átta sig á um sviga núll staf 258 00:12:11,050 --> 00:12:14,950 er það táknað af öllum núllum í bita. 259 00:12:14,950 --> 00:12:18,980 Svo eftir að þetta er greinilegur frá núll staf. 260 00:12:18,980 --> 00:12:23,010 Svo núll eðli, ef þú manst í dæminu að hann gaf í lok 261 00:12:23,010 --> 00:12:27,360 af fyrirlestri þar stafir kort to-- eins fjármagni kort til 65. 262 00:12:27,360 --> 00:12:29,130 Lágstafir í kort til 97. 263 00:12:29,130 --> 00:12:30,890 Lágstafir b væri 98. 264 00:12:30,890 --> 00:12:35,220 Svo tala 0 kortin to-- ég ekki veit burt the toppur af minn höfuð. 265 00:12:35,220 --> 00:12:36,400 44 eða 45. 266 00:12:36,400 --> 00:12:37,890 Einhvers staðar á því svæði. 267 00:12:37,890 --> 00:12:40,850 >> Svo er eðli 0 raunveruleg tala. 268 00:12:40,850 --> 00:12:44,350 En sviga núll kort til allra núll bita. 269 00:12:44,350 --> 00:12:46,380 Svo er það greinarmunur milli sviga núll, 270 00:12:46,380 --> 00:12:48,450 sem við munum kalla núll Ljúka. 271 00:12:48,450 --> 00:12:53,210 Það er munur á milli sviga núll og eðli núll. 272 00:12:53,210 --> 00:12:54,350 >> Allt í lagi. 273 00:12:54,350 --> 00:12:57,520 Svo tala svolítið meira um strengi. 274 00:12:57,520 --> 00:13:01,470 Svo þá sem við sjáum hér, þetta er hvernig það væri sett fram í minni. 275 00:13:01,470 --> 00:13:07,940 Svo þessi hugmynd um strengi sem röð af characters-- svo opinber tölva 276 00:13:07,940 --> 00:13:10,750 sciency orð fyrir röð er fylki. 277 00:13:10,750 --> 00:13:13,790 Svo við myndum kalla streng An array af stöfum. 278 00:13:13,790 --> 00:13:17,770 Og það eru í raun önnur gögn tegundir sem við getum gert fylki út af. 279 00:13:17,770 --> 00:13:19,975 >> Svo til að hvetja þetta, líta á dæmi. 280 00:13:19,975 --> 00:13:22,810 281 00:13:22,810 --> 00:13:29,812 Við munum kalla það ages0.c ég ætla afrita og líma sniðmát okkar. 282 00:13:29,812 --> 00:13:32,470 283 00:13:32,470 --> 00:13:33,410 OK. 284 00:13:33,410 --> 00:13:39,378 Svo í þessari áætlun hvað við langar að gera er að grípa aldri 285 00:13:39,378 --> 00:13:45,160 þriggja nemenda í námskeiðinu. 286 00:13:45,160 --> 00:13:49,240 Þannig að við vitum int age-- og nú ætla ég að segja 0. 287 00:13:49,240 --> 00:13:53,140 Svo þú might vilja til að segja age1, en vegna munum við sjá mjög fljótlega, 288 00:13:53,140 --> 00:13:57,187 Ég segi INT age0 jafngildir GetInt. 289 00:13:57,187 --> 00:13:59,270 Svo sama símtali til GetInt sem við höfum verið að nota I 290 00:13:59,270 --> 00:14:01,561 ekki skyldir vera vekur segja, "að gefa mér aldur." 291 00:14:01,561 --> 00:14:03,120 En bara óskar þess. 292 00:14:03,120 --> 00:14:06,510 >> Og age1 jafngildir GetInt. 293 00:14:06,510 --> 00:14:09,600 Og INT age2 jafngildir GetInt. 294 00:14:09,600 --> 00:14:14,070 Svo aftur, þrír nemendur, en Á endanum breytilegum vísitölur 295 00:14:14,070 --> 00:14:16,890 eru age0 gegnum age2. 296 00:14:16,890 --> 00:14:17,550 OK. 297 00:14:17,550 --> 00:14:23,960 Þannig að þetta forrit mun gera hvað sem við viljum með age0, age1 og age2, 298 00:14:23,960 --> 00:14:27,670 en þetta forrit á endanum virkar fyrir þremur nemendum. 299 00:14:27,670 --> 00:14:28,380 >> OK. 300 00:14:28,380 --> 00:14:32,110 Svo nú er það ef ég vil fjórir nemendur? 301 00:14:32,110 --> 00:14:36,000 Jæja, ég ætla að hafa til að fara aftur í númerið mitt, breyta athugasemd, 302 00:14:36,000 --> 00:14:39,840 og nú höfum við int age3 jafngildir GetInt. 303 00:14:39,840 --> 00:14:40,610 OK. 304 00:14:40,610 --> 00:14:43,660 Svo sem sér vandamál hér? 305 00:14:43,660 --> 00:14:47,310 Hvað er vandamálið við þessa tegund af uppsetningu? 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 Þannig að við erum að búa til breyta fyrir hvern nemanda. 310 00:14:56,360 --> 00:15:00,140 Nú sem virkar, en lokum hvað ef ég nú 311 00:15:00,140 --> 00:15:06,500 segja: "Ég vil að grípa aldri átta nemendur eða 16 nemendur 312 00:15:06,500 --> 00:15:11,340 eða að þó margir nemendur í hundruð nemenda í CS50 313 00:15:11,340 --> 00:15:16,750 eða þúsundir nemenda á háskólasvæðinu eða milljarða manna í heiminum? 314 00:15:16,750 --> 00:15:19,130 Svo að lokum er þetta ekki sjálfbær. 315 00:15:19,130 --> 00:15:21,990 Hvenær sem þú sérð sjálfur að afrita og líma númer svona, 316 00:15:21,990 --> 00:15:25,050 þú ættir almennt líða að það er betri leið. 317 00:15:25,050 --> 00:15:31,290 >> Svo er þetta þar sem við kynna fylki yfirlýsingu. 318 00:15:31,290 --> 00:15:34,564 Svo þegar þú lýsa fylki, þetta er það sem almennt snið 319 00:15:34,564 --> 00:15:35,480 er að fara að líta út. 320 00:15:35,480 --> 00:15:36,664 Við erum að fara að segja gerð. 321 00:15:36,664 --> 00:15:38,830 og þá erum við að fara að gefa nafn af því fylki, 322 00:15:38,830 --> 00:15:41,150 bara eins og við skilgreinum hverju breytu. 323 00:15:41,150 --> 00:15:43,980 Og svo að lokum að við erum að nota þetta krappi ritháttur aftur 324 00:15:43,980 --> 00:15:47,480 en í öðru samhengi frá hvernig við værum að nota þetta fyrr. 325 00:15:47,480 --> 00:15:51,860 >> Svo hér lítur þetta út eins og venjulegt breyta yfirlýsingu sem við höfum séð. 326 00:15:51,860 --> 00:15:54,890 Þannig að við höfum séð int x semikomma áður. 327 00:15:54,890 --> 00:16:00,020 Jæja nú erum við kannski að sjá eitthvað eins int x sviga 5. 328 00:16:00,020 --> 00:16:04,020 Og setja þessa hugmynd inn í GetInt forrit sem við have-- 329 00:16:04,020 --> 00:16:08,850 svo við getum innleiða þetta á sama hátt. 330 00:16:08,850 --> 00:16:13,630 >> Segjum að í CS við tilhneigingu til að nota n og fjöldi eitthvað. 331 00:16:13,630 --> 00:16:16,150 Svo hér erum við að fara að geyma fjórar nemendur. 332 00:16:16,150 --> 00:16:25,960 Og nú getum við sagt int aldri krappi n- ekki alveg það yet-- 333 00:16:25,960 --> 00:16:32,210 að lýsa fjölda fjórum nemendum. 334 00:16:32,210 --> 00:16:38,050 Svo hvernig þetta mun líta í minni verður svipað þessu. 335 00:16:38,050 --> 00:16:39,570 Hreinsa þetta. 336 00:16:39,570 --> 00:16:46,606 Og við erum að fara að hafa eitthvað í memory-- Ég setti þetta upp þar. 337 00:16:46,606 --> 00:16:52,690 338 00:16:52,690 --> 00:16:53,808 >> Svo einhvers staðar í minni. 339 00:16:53,808 --> 00:16:58,760 340 00:16:58,760 --> 00:16:59,727 Einn tveir þrír fjórir. 341 00:16:59,727 --> 00:17:03,383 342 00:17:03,383 --> 00:17:09,849 Við höfum fjórum heiltölur í röð fyrir þennan fjölda af fjórum heiltölur. 343 00:17:09,849 --> 00:17:13,820 Svo, nú, hvað er Stærð einn af þessum kassa? 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 Það er fjögur bæti. 347 00:17:18,390 --> 00:17:19,690 Það er 32 bita. 348 00:17:19,690 --> 00:17:22,310 Svo nú er þetta öðruvísi frá array sem við 349 00:17:22,310 --> 00:17:24,020 sá fyrri, array stafi. 350 00:17:24,020 --> 00:17:28,540 Í streng hver kassi var aðeins eitt bæti, vegna þess að eðli er aðeins eitt bæti. 351 00:17:28,540 --> 00:17:32,170 En með fjölda heiltalna, hver kassi þarf að vera fjögur bæti í röð 352 00:17:32,170 --> 00:17:34,060 að passa heilt heiltölu. 353 00:17:34,060 --> 00:17:37,197 Svo er þetta það fylki af fjögur ints myndi líta út. 354 00:17:37,197 --> 00:17:40,510 355 00:17:40,510 --> 00:17:43,870 >> Og svo aftur að kóða. 356 00:17:43,870 --> 00:17:47,460 Nú viljum við í raun geyma heiltölur í því fylki. 357 00:17:47,460 --> 00:17:53,470 Svo nú er þetta mjög, mjög, mjög algengt mynstur sem mun á einhverjum tímapunkti 358 00:17:53,470 --> 00:17:54,680 verða vöðva minni. 359 00:17:54,680 --> 00:17:56,710 Svo int i jafngildir 0. 360 00:17:56,710 --> 00:17:57,940 Ég minna en n. 361 00:17:57,940 --> 00:18:01,850 ég plús plús. 362 00:18:01,850 --> 00:18:05,790 Aldurshópi ég jafngildir GetInt. 363 00:18:05,790 --> 00:18:15,100 >> Svo þetta fyrir lykkju, þetta snið, þú ættir að fá mjög vön. 364 00:18:15,100 --> 00:18:20,010 Svo er þetta yfirleitt hvernig við munum iterate yfir nánast hvaða fylki. 365 00:18:20,010 --> 00:18:23,690 Nú taka svona útskýrir hvers vegna frá upphafi 366 00:18:23,690 --> 00:18:29,870 höfum við ekki fyrir lykkjur fara fyrir int Ég jafnt og 1, I minna en eða jafnt og 10. 367 00:18:29,870 --> 00:18:34,200 Ástæðan er sú að frá og núll gerir þetta verk vel með fylki. 368 00:18:34,200 --> 00:18:36,270 Svo fylki eru núll verðtryggð. 369 00:18:36,270 --> 00:18:40,360 Ef þetta array er lengd 4, Vísitölurnar eru 0 til 3. 370 00:18:40,360 --> 00:18:42,880 >> Svo í gegnum fyrsta endurtekning á þetta fyrir lykkju 371 00:18:42,880 --> 00:18:49,930 við erum að fara að vera að setja aldur krappi 0 jafnt símtali til GetInt. 372 00:18:49,930 --> 00:18:52,440 Svo hvað ég gerðist til að slá inn á lyklaborðið. 373 00:18:52,440 --> 00:18:56,970 Í seinni umferð, við erum setja age1 jafnt GetInt. 374 00:18:56,970 --> 00:18:58,230 Þriðja umferð, age2. 375 00:18:58,230 --> 00:18:59,880 Final framhjá age3. 376 00:18:59,880 --> 00:19:05,750 Svo ef í fyrstu umferð lykkju Ég inn í númer 4 á lyklaborðinu, 377 00:19:05,750 --> 00:19:07,740 þá munum við setja inn 4 hér. 378 00:19:07,740 --> 00:19:11,470 Ef á annarri umferð ég inn 50, munum við setja 50 hér. 379 00:19:11,470 --> 00:19:15,180 Á þriðja skarðið ég gæti inn neikvæð 1, neikvæð 1, 380 00:19:15,180 --> 00:19:21,810 og þá að lokum ef ég inn 0-- og nú man að þetta var vísitalan þriggja. 381 00:19:21,810 --> 00:19:25,350 >> Eftir að við lykkja til baka, ég er fara að hækkaður í 4. 382 00:19:25,350 --> 00:19:27,770 Ég er ekki lengur minna en n, sem er 4. 383 00:19:27,770 --> 00:19:29,840 Og við að brjótast út úr lykkja. 384 00:19:29,840 --> 00:19:32,578 Svo hvað væri rangt við þetta? 385 00:19:32,578 --> 00:19:38,140 386 00:19:38,140 --> 00:19:38,729 [Inaudible]? 387 00:19:38,729 --> 00:19:39,604 Áhorfendur: [inaudible] 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 Svo array hefur aðeins fjórum stöðum, sem þýðir í vísitölur 0 gegnum 3. 391 00:19:51,550 --> 00:19:55,630 Þannig að ef þetta væri raunin, myndi ég taka á gildi 4. á einhverjum tímapunkti. 392 00:19:55,630 --> 00:20:00,910 aldur krappi 4 verður að setja hvað verður um að vera hérna 393 00:20:00,910 --> 00:20:02,920 að það sem ég hef að segja, inn 6. 394 00:20:02,920 --> 00:20:05,010 Það verður að stilla þetta á 6. 395 00:20:05,010 --> 00:20:06,560 >> En við vitum ekki hvað er hérna. 396 00:20:06,560 --> 00:20:08,836 Þetta er ekki minni sem við höfðum aðgang að. 397 00:20:08,836 --> 00:20:10,710 Þannig að ef þú manst frá fyrri fyrirlestur, 398 00:20:10,710 --> 00:20:14,350 hann var að prenta út gildi Zamyla og á einhverjum tímapunkti hann ná þessu skiptingu 399 00:20:14,350 --> 00:20:17,990 kenna. Svo þú munt sennilega vera að sjá margir gallar skiptingu eins og þú 400 00:20:17,990 --> 00:20:20,530 framkvæma sumir af the vandamál setur. 401 00:20:20,530 --> 00:20:24,950 En þetta er ein af þeim leiðum sem þú getur lenda í skiptingu 402 00:20:24,950 --> 00:20:28,540 kenna, þegar þú byrjar að fá aðgang minni á þann hátt sem þú ættir ekki að vera. 403 00:20:28,540 --> 00:20:34,117 Svo höfum við ekki aðgang að Þessi staðsetning og þetta er padda. 404 00:20:34,117 --> 00:20:37,760 405 00:20:37,760 --> 00:20:40,190 >> Svo er þetta betra. 406 00:20:40,190 --> 00:20:45,820 Nú er það enn lítið málið með þessum kóða. 407 00:20:45,820 --> 00:20:50,720 Og það er í rauninni að við erum enn fastur á fjórum nemendum. 408 00:20:50,720 --> 00:20:52,940 Nú ef ég vil nota átta nemendur, OK. 409 00:20:52,940 --> 00:20:54,350 Það er ekki það stór samningur. 410 00:20:54,350 --> 00:20:58,120 Ég get farið í, breyta tjá, og breyta n. 411 00:20:58,120 --> 00:20:59,760 Nú er þetta vinna með átta nemendum. 412 00:20:59,760 --> 00:21:02,190 Ef ég safna saman þetta og hlaupa þetta, það mun sýna me-- 413 00:21:02,190 --> 00:21:07,870 það mun biðja heiltölur fyrir átta nemendur og það verður bara að vinna. 414 00:21:07,870 --> 00:21:11,850 En það er minna en hugsjón að þurfa að endurþýða program hvert einasta skipti 415 00:21:11,850 --> 00:21:15,960 Ég vil breyta fjölda nemenda að ég vil að slá inn aldur fyrir. 416 00:21:15,960 --> 00:21:22,990 >> Þannig að endanleg framför á þetta, eins og við munum sjá here-- við erum 417 00:21:22,990 --> 00:21:26,177 fara að biðja um fjölda fólks. 418 00:21:26,177 --> 00:21:28,010 Hér höfum við fjölda af fólki í herbergjunum 419 00:21:28,010 --> 00:21:29,880 eða einhverjar aldur af fólki í herberginu. 420 00:21:29,880 --> 00:21:33,300 En við erum að fara að biðja um númerið af fólki í herberginu frá notanda. 421 00:21:33,300 --> 00:21:36,171 Þannig að þetta er nákvæmlega sama do-en lykkja sem við höfum séð áður. 422 00:21:36,171 --> 00:21:37,920 Það er nákvæmlega sama gera-while lykkju sem þú 423 00:21:37,920 --> 00:21:40,050 má innleiða á vandamál setja. 424 00:21:40,050 --> 00:21:43,102 Svo lengi sem þeir eru farið er inn á n minna en 1, 425 00:21:43,102 --> 00:21:45,310 þannig að það er got að vera á kosti einn maður í herberginu. 426 00:21:45,310 --> 00:21:47,407 Svo lengi sem þeir eru farið er inn á n minna en 1, 427 00:21:47,407 --> 00:21:48,990 þá erum við að fara að halda að spyrja aftur. 428 00:21:48,990 --> 00:21:50,906 Vinsamlegast sláðu inn númerið af fólki í herberginu. 429 00:21:50,906 --> 00:21:53,550 Nú, þegar við höfum fjölda af fólki í room-- 430 00:21:53,550 --> 00:21:58,020 svo ég gæti slegið inn að það eru 200 manns í þessu herbergi. 431 00:21:58,020 --> 00:22:05,480 Þá hérna við erum að fara að koma og lýsa fjölda stærð 200. 432 00:22:05,480 --> 00:22:10,220 Við erum að lýsa array sem er nógu stór til að halda 200 aldri. 433 00:22:10,220 --> 00:22:15,370 Koma niður, er það til hliðar að þú munt fá mjög vön. 434 00:22:15,370 --> 00:22:19,490 Svo iterating yfir þessu fylki, framselja til hverjum stað 435 00:22:19,490 --> 00:22:23,020 í því fylki heiltala, og þá á endanum hér erum við 436 00:22:23,020 --> 00:22:28,340 bara að fá dæmi um iterating yfir þessi fylking, að úthluta gildi, 437 00:22:28,340 --> 00:22:30,150 en til að fá aðgang gildi. 438 00:22:30,150 --> 00:22:33,810 >> Svo hérna sjáum við að við eru að segja, að ári, 439 00:22:33,810 --> 00:22:40,470 Maður% i verði% i ára, þar sem fyrsti% i er ég auk 1. 440 00:22:40,470 --> 00:22:43,010 Svo er ég vísitalan breyta. 441 00:22:43,010 --> 00:22:49,420 Og seinni% i er að fara til vera the gildi geymd í alda array plús 1. 442 00:22:49,420 --> 00:22:54,217 Svo er þetta plús 1 bara vegna þess að við erum saying-- þetta plús 1, aldur i plus 1. 443 00:22:54,217 --> 00:22:57,050 Þetta plús 1 er bara vegna þess að við erum segja, á ári héðan í mann 444 00:22:57,050 --> 00:22:58,280 verður þetta gamla. 445 00:22:58,280 --> 00:23:01,080 >> Svo hvers vegna er þetta ég plús 1? 446 00:23:01,080 --> 00:23:04,064 Hvers vegna höfum við auk 1 þar? 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 Svo man fylki eru núll verðtryggð. 451 00:23:10,510 --> 00:23:14,840 Þannig að ef við erum að prenta þetta út fyrir einhver bara lesa framleiðsla, 452 00:23:14,840 --> 00:23:19,380 þá líklega þeir vilja sjá eitthvað eins mann einn, maður númer eitt, 453 00:23:19,380 --> 00:23:21,160 verður 20 ára gamall. 454 00:23:21,160 --> 00:23:23,570 Sá númer tvö verður 15 ára. 455 00:23:23,570 --> 00:23:27,420 Þeir myndu ekki sjá mann tala núll er 15 ára gamall. 456 00:23:27,420 --> 00:23:36,460 >> Svo samantekt þetta og bara sjá hvað það lítur like-- Búa pláss. 457 00:23:36,460 --> 00:23:43,560 Gera aldrinum safnar. 458 00:23:43,560 --> 00:23:45,080 Running aldri. 459 00:23:45,080 --> 00:23:46,580 Við sjáum fjölda fólks í herberginu. 460 00:23:46,580 --> 00:23:48,850 Svo ég ætla að segja að það eru þrír menn í herberginu. 461 00:23:48,850 --> 00:23:54,000 Aldur persónu númer eitt, við skulum segja 15, 20, 25. 462 00:23:54,000 --> 00:23:59,680 Og nú ætla ég að segja á ári frá Munu þeir nú vera 16, 21, 26. 463 00:23:59,680 --> 00:24:02,900 Við skulum sjá að þetta virkar með og N sem er ekki jafnt og 3. 464 00:24:02,900 --> 00:24:07,940 Þannig að ef ég segi fjöldi fólks er 5, einn, tveir, þrír, tveir, einn, á ári héðan 465 00:24:07,940 --> 00:24:11,170 þeir verða tveir, þrír, fjórir, þrír, og tveggja ára gamall. 466 00:24:11,170 --> 00:24:16,500 Svo ég gat bara eins auðveldlega getað n vera 10.000. 467 00:24:16,500 --> 00:24:21,270 Nú er ég mun sitja hér fyrir alveg a meðan að slá inn aldur, en þetta virkar. 468 00:24:21,270 --> 00:24:26,000 >> Svo nú í minni einhvers staðar við hafa fjölbreytta stærð 10.000, 469 00:24:26,000 --> 00:24:28,830 svo að lokum 40.000 bytes, því það eru 470 00:24:28,830 --> 00:24:31,222 fjögur bæti fyrir hvert þessara talna. 471 00:24:31,222 --> 00:24:33,180 Þannig að það er fylki af stærð 10.000 þar sem við getum 472 00:24:33,180 --> 00:24:36,201 geyma aldur þessara 10.000 manns. 473 00:24:36,201 --> 00:24:36,700 Allt í lagi. 474 00:24:36,700 --> 00:24:40,070 Spurningar um eitthvað af þessu? 475 00:24:40,070 --> 00:24:41,892 Já. 476 00:24:41,892 --> 00:24:43,350 Hvað ef þú gafst neikvæð tala? 477 00:24:43,350 --> 00:24:44,870 Við skulum sjá hvað gerist. 478 00:24:44,870 --> 00:24:49,320 Þannig að í þessu tiltekna case-- númer af fólki í herberginu, neikvæð einn. 479 00:24:49,320 --> 00:24:52,580 Því hafnað að, því hér við gerast 480 00:24:52,580 --> 00:24:57,180 að meðhöndlun þá staðreynd að ef n er minna en sá sem við erum að fara að spyrja aftur. 481 00:24:57,180 --> 00:25:01,780 Ef þú reynir að lýsa array af neikvæðum stærð, 482 00:25:01,780 --> 00:25:03,950 það yfirleitt virkar ekki. 483 00:25:03,950 --> 00:25:05,570 >> Svo skulum reyna. 484 00:25:05,570 --> 00:25:08,000 Skulum hunsa hvað gildi þeir inntak fyrir n 485 00:25:08,000 --> 00:25:10,571 og bara segja int aldri neikvæðu. 486 00:25:10,571 --> 00:25:12,410 Við skulum sjá hvort það safnar jafnvel. 487 00:25:12,410 --> 00:25:14,100 Ég er ekki viss. 488 00:25:14,100 --> 00:25:14,920 Nei 489 00:25:14,920 --> 00:25:18,280 Svo aldur er skilgreind sem að array með neikvæðum stærð. 490 00:25:18,280 --> 00:25:22,540 Svo upfront færir fylki getur ekki vera neikvæð stærð og hafnar. 491 00:25:22,540 --> 00:25:26,840 Nú, ef við ekki séð þetta do-while lykkju rétt, 492 00:25:26,840 --> 00:25:28,810 ef við værum ekki að haka ef n er minna en 1-- 493 00:25:28,810 --> 00:25:32,690 Segjum að við bara ekki hafa þetta á öllum 494 00:25:32,690 --> 00:25:35,940 og í staðinn við grípa bara heiltölu. 495 00:25:35,940 --> 00:25:40,710 Sama hvað það heiltala er, við lýsa fjölda af sömu stærðargráðu. 496 00:25:40,710 --> 00:25:44,250 >> Svo þýðandinn getur ekki hugsanlega kvarta núna. 497 00:25:44,250 --> 00:25:48,780 Ef ég safna saman this-- svo það er ekki hægt að kvarta, 498 00:25:48,780 --> 00:25:51,480 vegna þess að það er ekki hægt að vita að ég er fara að slá inn neikvæð tala, 499 00:25:51,480 --> 00:25:52,550 sem gæti verið ógilt. 500 00:25:52,550 --> 00:25:54,633 Fyrir allt það veit, ég gæti slá jákvæð tala, 501 00:25:54,633 --> 00:25:56,000 sem er fullkomlega gild. 502 00:25:56,000 --> 00:26:01,090 Svo ég ímynda mér ef ég inn neikvæð 1 fólk í herberginu, skiptingu kenna. 503 00:26:01,090 --> 00:26:06,040 >> Svo, OK. 504 00:26:06,040 --> 00:26:13,160 Svo skulum bæta þetta aftur bara halda það hvað það var upphaflega. 505 00:26:13,160 --> 00:26:15,640 Svo gera aldri. 506 00:26:15,640 --> 00:26:18,120 Nú ef ég vil reyna a neikvæð age-- þannig að við skulum 507 00:26:18,120 --> 00:26:19,710 segja að það eru fimm manns í herberginu. 508 00:26:19,710 --> 00:26:23,180 Aldur persónu númer eitt er neikvæð 4, maður þrír 509 00:26:23,180 --> 00:26:26,500 er núll, maður three-- OK. 510 00:26:26,500 --> 00:26:29,850 Svo hér, að ári, maður númer mun vera neikvæð 3 ára. 511 00:26:29,850 --> 00:26:32,830 Svo sennilega er ekki skynsamleg. 512 00:26:32,830 --> 00:26:37,220 En það er bara vegna þess að leita á kóða allt sem við erum að gera 513 00:26:37,220 --> 00:26:40,260 er að biðja GetInt. 514 00:26:40,260 --> 00:26:44,110 >> Nú, ef við hefðum haft á GetPositiveInt virka 515 00:26:44,110 --> 00:26:49,690 eða við höfðum bara einfaldlega gert þetta konar sama while lykkju þarna niðri, 516 00:26:49,690 --> 00:26:52,340 þá myndi þetta virka fullkomlega í lagi. 517 00:26:52,340 --> 00:26:54,200 En í þessu tiltekna skaltu gera við bara ekki 518 00:26:54,200 --> 00:26:57,772 verður að vera meðhöndlun neikvæð gildi. 519 00:26:57,772 --> 00:26:59,147 Aðrar spurningar um fylki? 520 00:26:59,147 --> 00:27:02,290 521 00:27:02,290 --> 00:27:03,250 OK. 522 00:27:03,250 --> 00:27:09,380 >> Þannig að við höfum nú séð fylki. 523 00:27:09,380 --> 00:27:12,500 Og við erum að fara að þurfa að nota þetta fyrir stjórn-lína rök. 524 00:27:12,500 --> 00:27:14,680 Svo í Heimadæmi two-- Ég veit að mörg ykkar 525 00:27:14,680 --> 00:27:18,040 gæti samt verið að vinna á Heimadæmi einn, en vandamál setja tvö er að koma upp. 526 00:27:18,040 --> 00:27:22,260 Í Heimadæmi tvö, þú ert að fara að þarf að takast á við strengi, fylki, 527 00:27:22,260 --> 00:27:23,950 og stjórn-lína rök. 528 00:27:23,950 --> 00:27:26,270 >> Svo það eru stjórn lína rifrildi? 529 00:27:26,270 --> 00:27:29,570 Nú getur þú séð niður hér smá beitu fyrir nákvæmlega hvað er 530 00:27:29,570 --> 00:27:30,950 að fara að gerast. 531 00:27:30,950 --> 00:27:32,950 Við sjáum int helstu aukið út argc, string argv sviga. 532 00:27:32,950 --> 00:27:34,560 533 00:27:34,560 --> 00:27:38,130 Svo fyrst skulum reyna að túlka hvað það er að reyna að segja. 534 00:27:38,130 --> 00:27:40,800 Nú, OK. 535 00:27:40,800 --> 00:27:44,637 >> Svo á the stjórn lína sem þú ættir að vera venjast að sumir af þessum skipunum 536 00:27:44,637 --> 00:27:48,580 nú, og þú hefur sennilega hlaupa cd í flugstöðinni áður. 537 00:27:48,580 --> 00:27:52,100 Þannig að ef við segjum CD pset1, þú veist að það ætti 538 00:27:52,100 --> 00:27:55,050 að breytast í pset1 skrá. 539 00:27:55,050 --> 00:27:59,120 >> Nú taka eftir því að þú hefur aldrei skrifað forrit eins og þetta áður. 540 00:27:59,120 --> 00:28:03,120 Hvert forrit sem þú hefur skrifað, þú myndi hlaupa, segjum, punktur rista Mario, 541 00:28:03,120 --> 00:28:06,779 punktur rista gráðugur, og þá er það gæti hvetja þig fyrir hjálpina. 542 00:28:06,779 --> 00:28:08,570 Nú, það er ekki það Breyta skrá gerir. 543 00:28:08,570 --> 00:28:12,770 Þegar þú keyrir cd, er það ekki þá að segja, sem skrá viltu cd inn? 544 00:28:12,770 --> 00:28:17,200 Þess í stað, þú segir bara, CD pset1 og það fer bara í pset1 skrá. 545 00:28:17,200 --> 00:28:20,430 >> Svo álíka við höfum fleiri dæmi. 546 00:28:20,430 --> 00:28:21,540 gera halló. 547 00:28:21,540 --> 00:28:25,760 Þegar þú keyrir að gera, er það ekki þá að segja, hvaða forrit viltu gera? 548 00:28:25,760 --> 00:28:29,620 Þú segir bara, að minnsta stjórn lína gera halló. 549 00:28:29,620 --> 00:28:31,060 >> Ferðinni er annað dæmi. 550 00:28:31,060 --> 00:28:34,840 Þetta eina sem við erum að flytja í mario.c skrá upp einn lista. 551 00:28:34,840 --> 00:28:38,060 Svo nú vitum við þetta dæmi við erum í raun liggur tvær breytur. 552 00:28:38,060 --> 00:28:42,090 Það er mario.c sem fyrsta rifrildi, og punktur punktur er annað rök. 553 00:28:42,090 --> 00:28:46,140 Og svo þegar þú keyrir að gera, þér sjá að í raun langur stjórn line-- 554 00:28:46,140 --> 00:28:50,580 sem raunverulega langur stjórn prentuð á the stjórn lína. 555 00:28:50,580 --> 00:28:53,590 Svo það lengi command-- þetta er bara stutt hluti af því, 556 00:28:53,590 --> 00:28:56,090 en nú höfum við þrjú stjórn-lína rök. 557 00:28:56,090 --> 00:28:59,750 Dot Dash núll, halló, og hello.c. 558 00:28:59,750 --> 00:29:03,497 >> Svo þetta eru stjórn-lína röksemdir, rök 559 00:29:03,497 --> 00:29:05,580 að þú ert liggur á að stjórn lína þannig að það 560 00:29:05,580 --> 00:29:08,680 þarf ekki að vera beðin þegar þú keyrir forritið. 561 00:29:08,680 --> 00:29:13,090 Það væri svekkjandi ef við þú hleypur clang sagt, "OK, 562 00:29:13,090 --> 00:29:15,630 sem program-- sem skrá ertu að setja saman? 563 00:29:15,630 --> 00:29:17,010 Hello.c. 564 00:29:17,010 --> 00:29:19,440 Hvað fánar myndir þú eins og að koma inn? þjóta o. 565 00:29:19,440 --> 00:29:21,190 Hvað myndir þú vilja skráin að vera kölluð? 566 00:29:21,190 --> 00:29:21,690 halló. 567 00:29:21,690 --> 00:29:25,290 Nei, þú keyrir bara clang þjóta eða halló hello.c. 568 00:29:25,290 --> 00:29:28,820 >> Svo horfa aftur á þetta. 569 00:29:28,820 --> 00:29:32,920 Nú er argc-- argc þau rök telja. 570 00:29:32,920 --> 00:29:36,620 Það er fjöldi stjórn-lína rök færð á the stjórn lína. 571 00:29:36,620 --> 00:29:39,720 Jæja, argv-- tæknilega V stendur fyrir vektor, 572 00:29:39,720 --> 00:29:41,460 sem í grundvallaratriðum þýðir fylkisins. 573 00:29:41,460 --> 00:29:42,680 En þú getur að hunsa það. 574 00:29:42,680 --> 00:29:47,540 Argv-- við höfum band argv, svo string argv sviga. 575 00:29:47,540 --> 00:29:50,150 Svo er þetta annars konar sviga þú hefur ekki séð áður. 576 00:29:50,150 --> 00:29:52,300 Þannig að við höfum séð krappi ritháttur þegar við höfum sagt, 577 00:29:52,300 --> 00:29:53,970 eins, string s jafngildir Zamyla. 578 00:29:53,970 --> 00:29:56,910 s krappi 0 aðgangur að há- Z. 579 00:29:56,910 --> 00:30:00,720 >> Við höfum einnig séð sviga þegar við sögðum int aldur krappi 5. 580 00:30:00,720 --> 00:30:03,160 Sem lýst fjölda stærð 5. 581 00:30:03,160 --> 00:30:06,280 Svo er hér útgáfa af sviga við höfum ekki séð áður. 582 00:30:06,280 --> 00:30:09,630 Þannig að þetta svona band argv sem væri alveg þekki 583 00:30:09,630 --> 00:30:12,050 að það myndi bara vera band. 584 00:30:12,050 --> 00:30:14,520 Nú sviga gefa til kynna að þetta er fylki. 585 00:30:14,520 --> 00:30:19,920 Svo string argv sviga þýðir sem argv er fylki af strengjum. 586 00:30:19,920 --> 00:30:22,540 Nú tæknilega band er fylki af stöfum. 587 00:30:22,540 --> 00:30:26,400 Svo er þetta nú fylki af fjölda stafi. 588 00:30:26,400 --> 00:30:31,490 En það er miklu auðveldara að hugsa um þetta sem bara array af strengjum. 589 00:30:31,490 --> 00:30:34,900 >> Svo hvers vegna gæti sviga verið tóm? 590 00:30:34,900 --> 00:30:38,170 Eins, hvers vegna getum við ekki sagt, krappi 5, krappi 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 Við vitum ekki hversu margir aðföng eru að fara að vera. 596 00:30:46,396 --> 00:30:53,560 Þannig að ef við lítum á clang dæmis við segjum clang sprettinn eða hello hello.c. 597 00:30:53,560 --> 00:30:56,710 Í þessu tiltekna tilviki, það gerist að vera þrír stjórn-lína rök. 598 00:30:56,710 --> 00:31:00,522 Og svo brackets-- við munum sjá í annað það væri ekki þrjú. 599 00:31:00,522 --> 00:31:01,730 Það tæknilega væri fjórir. 600 00:31:01,730 --> 00:31:04,030 En sviga, við gerðum segja, það eru þrír. 601 00:31:04,030 --> 00:31:08,220 En nú ef við skoðuðum færa mario.c punktur punktur, sviga 602 00:31:08,220 --> 00:31:09,760 við viljum að setja tvö í þeim. 603 00:31:09,760 --> 00:31:12,884 >> Og það eru fullt af skipunum sem hafa breytilegan fjölda skipanalínu 604 00:31:12,884 --> 00:31:13,620 rök. 605 00:31:13,620 --> 00:31:17,430 Svo er það þetta útgáfa af krappi tákn sýnir 606 00:31:17,430 --> 00:31:20,820 er að argv er fylki af strengjum. 607 00:31:20,820 --> 00:31:24,360 En við vitum ekki hversu margir strengir eru í því fylki. 608 00:31:24,360 --> 00:31:27,090 Og hvernig vitum við þá hvernig margir strengir eru í fylkinu? 609 00:31:27,090 --> 00:31:28,870 Það er allt lið argc. 610 00:31:28,870 --> 00:31:32,300 argc segir okkur hversu lengi argv er. 611 00:31:32,300 --> 00:31:36,500 >> Svo síðasta sem þarf að hafa í hugur er að tæknilega, 612 00:31:36,500 --> 00:31:40,820 stjórn sjálft telst einn af stjórn-lína rök. 613 00:31:40,820 --> 00:31:45,330 Svo cd pset1, það eru tveir stjórn-lína rök. 614 00:31:45,330 --> 00:31:50,260 The program í sjálfu sér, CD, og ​​þá í raun rök hluti af því, pset1. 615 00:31:50,260 --> 00:31:54,490 Hvaða forrit sem þú hefur skrifað svona langt hefur haft einn stjórn-lína argument-- punktur 616 00:31:54,490 --> 00:31:55,320 rista Mario. 617 00:31:55,320 --> 00:31:57,350 Það er eina stjórn-lína rök. 618 00:31:57,350 --> 00:32:00,900 >> Svo nú að horfa á clang þjóta eða halló hello.c. 619 00:32:00,900 --> 00:32:01,905 Svo er það 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 Svo er argc 4. 623 00:32:08,140 --> 00:32:12,140 Clang, svo argv krappi 0 er Clang. 624 00:32:12,140 --> 00:32:15,630 argv krappi 1 er þjóta 0. 625 00:32:15,630 --> 00:32:21,870 argv krappi 2 er halló, og argv krappi 3 er hello.c. 626 00:32:21,870 --> 00:32:26,813 OK, svo spurningar um þetta, og þá munum við líta á sumir forritanlegur dæmi. 627 00:32:26,813 --> 00:32:29,460 628 00:32:29,460 --> 00:32:30,480 >> OK. 629 00:32:30,480 --> 00:32:36,260 Þannig að við munum taka a líta á hello3.c. 630 00:32:36,260 --> 00:32:41,890 Þannig að þetta ætti að vera kunnugt frá eitt af fyrstu dæmum c 631 00:32:41,890 --> 00:32:45,800 við höfðum þar sem við myndum bara segja, halló heim, en nú er þetta meira almennt. 632 00:32:45,800 --> 00:32:52,300 Svo hér erum við að segja halló % s sviga n argv krappi 1. 633 00:32:52,300 --> 00:32:57,440 Notice-- svo upp til þessa liðar, þetta er hvað sniðmát skrá minn hefur litið út. 634 00:32:57,440 --> 00:33:01,800 Ég hafði int helstu (tóm), og þá myndi ég gera eitthvað í aðalæð virka. 635 00:33:01,800 --> 00:33:05,100 Nú í stað, þegar við byrjum að fást með stjórn-lína rifrildi, 636 00:33:05,100 --> 00:33:07,890 við þurfum að staðhæfa a mismunandi form af helstu. 637 00:33:07,890 --> 00:33:11,930 >> Svo að horfa á hello3 aftur, helstu er að fara 638 00:33:11,930 --> 00:33:15,990 að taka tvær breytur now-- int argc, fjöldi stjórn-lína rifrildi, 639 00:33:15,990 --> 00:33:20,970 og band argv sviga, í raun strengir inn á the stjórn lína. 640 00:33:20,970 --> 00:33:26,560 Þannig að ég ætla að breyta því sniðmát til að endurspegla þá staðreynd. 641 00:33:26,560 --> 00:33:29,060 Nú þegar þú skrifar a program, ef þú ert ekki 642 00:33:29,060 --> 00:33:33,720 þarf að grípa til neinna stjórn-lína rök, þá bara nota int helstu (tóm). 643 00:33:33,720 --> 00:33:37,070 En nú þegar þú ert að skrifa stjórn-lína rök forrit sem 644 00:33:37,070 --> 00:33:40,350 þú ert að fara að vera að gera fyrir vandamál setja two-- svo nú að þú ert að keyra 645 00:33:40,350 --> 00:33:42,630 forrit sem þarf að taka stjórn-lína rök, 646 00:33:42,630 --> 00:33:45,250 þú þarft að hafa main af þessu formi. 647 00:33:45,250 --> 00:33:51,290 >> Svo here-- er þetta stór notkun af stjórn-lína rök. 648 00:33:51,290 --> 00:33:54,100 Svo prentun argv 1. 649 00:33:54,100 --> 00:33:59,180 OK þannig að við skulum taka saman og keyra þetta forrit. 650 00:33:59,180 --> 00:34:02,440 Gera hello3. 651 00:34:02,440 --> 00:34:03,570 Safnar. 652 00:34:03,570 --> 00:34:06,870 Dot rista hello3. 653 00:34:06,870 --> 00:34:08,920 Og við skulum segja, "Rob." 654 00:34:08,920 --> 00:34:10,760 Halló Rob. 655 00:34:10,760 --> 00:34:14,940 Ef ég segi, "Halló Maria" halló Maria. 656 00:34:14,940 --> 00:34:15,719 Halló Maria. 657 00:34:15,719 --> 00:34:18,639 Hannah segir enn, "halló Maria, "vegna þess að ég er ekki 658 00:34:18,639 --> 00:34:21,340 gera neitt með argv okkar 2. 659 00:34:21,340 --> 00:34:22,590 Argv 2 nú væri "Hannah." 660 00:34:22,590 --> 00:34:25,030 Argc væri 3. 661 00:34:25,030 --> 00:34:27,735 Hvað ef ég gerði þetta? 662 00:34:27,735 --> 00:34:31,980 663 00:34:31,980 --> 00:34:34,679 Svo halló null. 664 00:34:34,679 --> 00:34:38,760 >> Hann snerti stuttlega á þá staðreynd að tæknilega, GetString 665 00:34:38,760 --> 00:34:42,429 gæti skilað null, en við munum fá miklu meira í það null raun er. 666 00:34:42,429 --> 00:34:47,449 En taka það sem málið staðreynd að ekki er almennt slæmt. 667 00:34:47,449 --> 00:34:50,179 Við gerðum eitthvað rangt ef það er prentun "halló null." 668 00:34:50,179 --> 00:34:52,179 Og ástæðan að við gerðum eitthvað rangt is-- vel, 669 00:34:52,179 --> 00:34:56,179 þegar ég hljóp punktur rista hello3, argc var 1. 670 00:34:56,179 --> 00:34:59,680 Svo þýðir lengd argv var 1. 671 00:34:59,680 --> 00:35:05,110 Ef array er lengd 1, aðeins gild vísitalan er núll. 672 00:35:05,110 --> 00:35:08,550 Og svo hér argv 1 er utan Umfang þessu fylki. 673 00:35:08,550 --> 00:35:13,410 Það var svipað og áður þegar ég reyndi að geyma 6 utan lok fylkisins. 674 00:35:13,410 --> 00:35:18,100 Þannig að ég er að reyna að opna eitthvað utan argv telja, 675 00:35:18,100 --> 00:35:21,340 og við erum að fá null. 676 00:35:21,340 --> 00:35:24,360 >> Svo betri útgáfa af þetta framför, 677 00:35:24,360 --> 00:35:27,010 er skýrt haka argc. 678 00:35:27,010 --> 00:35:33,580 Svo ef argc jafngildir 2, sem þýðir að við hljóp eitthvað eins og punktur rista hello3 Rob. 679 00:35:33,580 --> 00:35:36,840 Og það mun prenta "halló Rob." 680 00:35:36,840 --> 00:35:39,850 Ef argc ekki jafn 2, þá er það bara að fara 681 00:35:39,850 --> 00:35:42,560 að hunsa hvað sem þú setur á stjórn-lína rök 682 00:35:42,560 --> 00:35:43,960 sem stjórn-lína rök. 683 00:35:43,960 --> 00:35:47,168 Eða ef þú ekki setja eitthvað á öllum, það er bara að fara að hunsa það og bara segja, 684 00:35:47,168 --> 00:35:47,960 "halló þig." 685 00:35:47,960 --> 00:35:51,490 >> Svo samantekt þetta. 686 00:35:51,490 --> 00:35:54,500 Gera hello4. 687 00:35:54,500 --> 00:35:56,790 Og keyra hello4. 688 00:35:56,790 --> 00:36:00,010 Gangi það með þessum hætti, hvað ætti að prenta? 689 00:36:00,010 --> 00:36:01,330 "Hello þig." 690 00:36:01,330 --> 00:36:02,810 Halló þú. 691 00:36:02,810 --> 00:36:05,870 Hvað um hello4 Rob? 692 00:36:05,870 --> 00:36:06,950 "Hello Rob." 693 00:36:06,950 --> 00:36:10,580 Og að lokum, halló Rob Maria er bara "halló You" aftur, 694 00:36:10,580 --> 00:36:13,677 vegna þess að þú did ekki raunverulega inn eitthvað sem það ráð. 695 00:36:13,677 --> 00:36:15,510 Þú færð fleiri nöfnum en það gæti séð, 696 00:36:15,510 --> 00:36:19,500 svo það vanskil bara að Hello þú hegðun. 697 00:36:19,500 --> 00:36:23,040 Svo spurningum um þetta? 698 00:36:23,040 --> 00:36:26,290 Eða stjórn-lína rök? 699 00:36:26,290 --> 00:36:28,690 >> OK, svo að taka a líta á a par fleiri dæmi um notkun 700 00:36:28,690 --> 00:36:34,230 stjórn-lína arguments-- fyrst við höfum argv Dash 1 punktur c. 701 00:36:34,230 --> 00:36:38,510 Svo athugasemdir ljóstra því þetta forrit ætti að vera að gera. 702 00:36:38,510 --> 00:36:42,460 En taka now-- þetta fyrir lykkju, þetta passar nákvæmlega mynstur 703 00:36:42,460 --> 00:36:43,390 Ég var að segja áður. 704 00:36:43,390 --> 00:36:46,240 Við verður bara að vera nota argc stað n. 705 00:36:46,240 --> 00:36:48,880 Nú er argc raun n. 706 00:36:48,880 --> 00:36:51,260 Það er lengd argv fylkisins. 707 00:36:51,260 --> 00:36:59,600 Svo eru iterating yfir argv array printf-ing hvert argv gildi. 708 00:36:59,600 --> 00:37:04,730 >> Svo ef ég geri þetta. 709 00:37:04,730 --> 00:37:08,232 Gera argv 1. 710 00:37:08,232 --> 00:37:09,940 Það safnar. 711 00:37:09,940 --> 00:37:11,620 Dot rista argv 1. 712 00:37:11,620 --> 00:37:15,530 Bara að keyra þetta, það prentar punktur rista argv 1 713 00:37:15,530 --> 00:37:18,500 síðan það var eina stjórn-lína argument-- forritið nafn. 714 00:37:18,500 --> 00:37:22,080 Það verður alltaf að vera á least-- argc má ekki vera minna en einn, 715 00:37:22,080 --> 00:37:25,910 Þar mun alltaf að minnsta kosti vera program nafn að keyra. 716 00:37:25,910 --> 00:37:32,040 Svo argv 1 Rob mun prenta argv 1 og þá á nýja línu "Rob." 717 00:37:32,040 --> 00:37:36,350 >> Svo í fyrsta endurtekning þessa lykkju, ég er 0. 718 00:37:36,350 --> 00:37:39,090 Argv 0 er program nafn. 719 00:37:39,090 --> 00:37:40,010 Dot rista argv 1. 720 00:37:40,010 --> 00:37:43,770 Og þá argv 1 er mitt fyrsta Rök stjórn-lína, sem er Rob. 721 00:37:43,770 --> 00:37:45,920 Á þessum tímapunkti erum við jafn argc. 722 00:37:45,920 --> 00:37:48,210 Við brjótast út úr lykkja og við erum að gera. 723 00:37:48,210 --> 00:37:53,940 Þannig að þetta mun virka fyrir handahófskennt Fjöldi stjórn-lína rök. 724 00:37:53,940 --> 00:37:58,550 Takið það prentar argv 0, argv 1, argv 2, argv 3, argv 4. 725 00:37:58,550 --> 00:38:00,150 Og það er engin argv 5. 726 00:38:00,150 --> 00:38:01,460 argc er jafnt og 5. 727 00:38:01,460 --> 00:38:06,960 Svo á argc-- á ég er 5, við að brjótast út úr lykkja. 728 00:38:06,960 --> 00:38:07,950 OK. 729 00:38:07,950 --> 00:38:11,315 Svo spurningum um að áður en við líta á flóknari dæmi? 730 00:38:11,315 --> 00:38:14,190 731 00:38:14,190 --> 00:38:16,860 >> Svo argv 2. 732 00:38:16,860 --> 00:38:17,830 Allt í lagi. 733 00:38:17,830 --> 00:38:20,610 Þannig að við erum enn að prenta stjórn-lína rök. 734 00:38:20,610 --> 00:38:23,170 En nú taka við höfum a hreiður til hliðar. 735 00:38:23,170 --> 00:38:24,670 Svo hvað er þetta að gera? 736 00:38:24,670 --> 00:38:28,430 Svo fyrsta lykkja er að gera nákvæmlega það sem það gerði áður. 737 00:38:28,430 --> 00:38:30,950 Við erum enn að lykkja yfir hver stjórn-lína rök, 738 00:38:30,950 --> 00:38:34,260 en nú þetta annað loop-- við höfum einnig séð eitthvað svona áður. 739 00:38:34,260 --> 00:38:38,600 Þegar hann var iterating yfir Zamyla prentun út Ö-A-m-Y-L-A. 740 00:38:38,600 --> 00:38:44,816 Svo þetta annað lykkja fyrir int j jafngildir 0, n er jafnt og strlen af ​​argv krappi i. 741 00:38:44,816 --> 00:38:49,170 >> Svo skulum fyrst að hugsa um the-- skulum ganga í gegnum. 742 00:38:49,170 --> 00:38:53,560 Við skulum hugsa hvað tölva myndi gera ef ég hljóp þetta forrit sem bara punktur 743 00:38:53,560 --> 00:38:56,030 rista argv þjóta 2. 744 00:38:56,030 --> 00:39:03,590 Þannig að ef ég hljóp þennan kóða, þá argc er að fara að vera jöfn 1. 745 00:39:03,590 --> 00:39:07,050 Og band argv-- það er bara að fara að vera einn Vísitala argv, 746 00:39:07,050 --> 00:39:12,370 og það er að fara að vera jafn punktur rista argv 2-- forritið nafn. 747 00:39:12,370 --> 00:39:19,170 >> OK, svo nú er ég jafnt og 0, ég minna en 1, ég plús plús fyrir Int J jafngildir 0 748 00:39:19,170 --> 00:39:23,880 n jafngildir strlen af ​​argv krappi 0, svo í fyrsta endurtekning þessa lykkju. argv 749 00:39:23,880 --> 00:39:27,250 krappi 0 er punktur rista argv 2. 750 00:39:27,250 --> 00:39:29,320 Svo er það lengd strengsins? 751 00:39:29,320 --> 00:39:32,480 Jæja, punktur rista A-R-G-V þjóta 2. 752 00:39:32,480 --> 00:39:35,020 Svo strlen af ​​því verði 8. 753 00:39:35,020 --> 00:39:37,500 Svo, j er 0, n er jafnt og 8. 754 00:39:37,500 --> 00:39:39,530 Svo lengi sem j er minna en 8, j ++. 755 00:39:39,530 --> 00:39:44,080 Og með því að við erum að fara að vera prentun einn staf, sem 756 00:39:44,080 --> 00:39:47,350 er argv krappi ég krappi j. 757 00:39:47,350 --> 00:39:49,826 >> Þannig að eina sem ég er núll. 758 00:39:49,826 --> 00:39:51,700 Við samt aðeins hafa einn stjórn-lína rök. 759 00:39:51,700 --> 00:39:53,890 Í því fyrsta endurtekning af fyrir lykkju, við erum 760 00:39:53,890 --> 00:39:56,950 að fara að vera prentun argv krappi 0 krappi 0. 761 00:39:56,950 --> 00:39:58,325 Og þá, j er að fara að hækka. 762 00:39:58,325 --> 00:40:01,650 Og við erum að fara að prenta argv krappi 0 krappi 1. 763 00:40:01,650 --> 00:40:04,150 Og þá argv krappi 0 krappi 2. 764 00:40:04,150 --> 00:40:09,030 >> Svo er þetta fyrsti fundur okkar af multi-víddar fylki. 765 00:40:09,030 --> 00:40:12,770 Mundu áðan að ég sagði sem argv er tæknilega 766 00:40:12,770 --> 00:40:15,950 fjölbreytta fylki af stöfum. 767 00:40:15,950 --> 00:40:24,360 Svo hér ef ég sagði eitthvað eins og string s jafngildir argv krappi i, 768 00:40:24,360 --> 00:40:29,590 og þá sagði ég, s krappi, j, þetta væri inna sama. 769 00:40:29,590 --> 00:40:31,960 Nú, hefur þú séð s krappi j áður. 770 00:40:31,960 --> 00:40:36,680 Það er bara að opna j-ta eðli þessa streng. 771 00:40:36,680 --> 00:40:48,010 Svo með þetta, við erum að fá j ta eðli i-ta argv. 772 00:40:48,010 --> 00:40:51,450 >> Svo hvað ætti þetta að lokum framleiðsla? 773 00:40:51,450 --> 00:40:53,210 Gera argv 2. 774 00:40:53,210 --> 00:40:54,730 Það safnar. 775 00:40:54,730 --> 00:40:56,340 Dot rista argv 2. 776 00:40:56,340 --> 00:41:03,790 "Rob Maria Hannah," og gefa okkur smá pláss. 777 00:41:03,790 --> 00:41:07,050 Þannig að við sjáum að þetta er outputting punktur á eigin línu og rista 778 00:41:07,050 --> 00:41:08,920 í sinni línu og a á eigin línu. 779 00:41:08,920 --> 00:41:11,260 Það er prentun út hver sérstæð 780 00:41:11,260 --> 00:41:12,950 hvers stjórn-lína rök. 781 00:41:12,950 --> 00:41:15,960 Og þá á milli þeirra, vegna þessa nýja línu 782 00:41:15,960 --> 00:41:19,380 við erum prentun hérna, í milli þeirra og það mun prenta nýja línu. 783 00:41:19,380 --> 00:41:24,540 >> Svo er þetta svipað sem áður argv þjóta 1, 784 00:41:24,540 --> 00:41:26,459 sem prentuð hver Rök stjórn-lína, 785 00:41:26,459 --> 00:41:28,500 en nú erum við að prenta stjórn-lína rök 786 00:41:28,500 --> 00:41:31,950 og þá iterating gegnum hvert eðli hvers stjórn-lína rök 787 00:41:31,950 --> 00:41:35,400 að fá þessa útkomu. 788 00:41:35,400 --> 00:41:36,870 OK? 789 00:41:36,870 --> 00:41:40,570 Svo spurningum um þetta? 790 00:41:40,570 --> 00:41:45,130 >> Eitt sem þarf að hafa í huga er að stjórn-lína arguments-- 791 00:41:45,130 --> 00:41:49,990 svo þeir eru aðskilin með bilum sem þú vildi náttúrulega búast við þá til að vera. 792 00:41:49,990 --> 00:41:53,050 Svo band getur haft rými í það. 793 00:41:53,050 --> 00:41:57,380 Það er ekki frábær mikilvægt, en ef ég vildi rök þriðja stjórn-lína 794 00:41:57,380 --> 00:42:01,226 að hafa pláss í henni, þá er ég gæti sagt eitthvað eins og this. 795 00:42:01,226 --> 00:42:04,470 796 00:42:04,470 --> 00:42:05,550 OK? 797 00:42:05,550 --> 00:42:12,190 Svo þetta nú samt hefur aðeins þrjú stjórn-lína arguments-- vel 4. 798 00:42:12,190 --> 00:42:17,620 Dot rista argv þjóta 2, Rob, Maria, og Hannah Bloomberg. 799 00:42:17,620 --> 00:42:18,320 OK. 800 00:42:18,320 --> 00:42:19,310 Spurningar um þetta? 801 00:42:19,310 --> 00:42:22,700 802 00:42:22,700 --> 00:42:24,894 >> Það er ekkert sérstakt um rúm staf. 803 00:42:24,894 --> 00:42:27,810 Það gerist bara að vera að stjórn-lína skemmtun rúm staf 804 00:42:27,810 --> 00:42:29,226 eins og hvernig þú aðskilja hvert rifrildi. 805 00:42:29,226 --> 00:42:32,048 806 00:42:32,048 --> 00:42:33,000 Allt í lagi. 807 00:42:33,000 --> 00:42:39,950 Svo þá Heimadæmi two-- þú ert að fara að vera 808 00:42:39,950 --> 00:42:43,240 horfa á leyndarmál-lykill dulmál. 809 00:42:43,240 --> 00:42:47,700 Svo, svipað því dæmi við sáum frá A Christmas Story, 810 00:42:47,700 --> 00:42:52,840 þú ert að fara að innleiða nokkrar reiknirit sem, gefið skilaboð, 811 00:42:52,840 --> 00:42:55,560 þú ert að fara að vera fær um að dulkóða þessi skilaboð 812 00:42:55,560 --> 00:42:58,730 að aðeins einhver með þessi leyndarmál lykill, með því leyniletri hringinn, 813 00:42:58,730 --> 00:43:01,090 ætti að vera fær um að hallmæla. 814 00:43:01,090 --> 00:43:04,839 >> Svo er að Standard Edition. 815 00:43:04,839 --> 00:43:07,130 Þú ert að fara að vera framkvæmd tvær mismunandi útgáfur. 816 00:43:07,130 --> 00:43:09,620 Ef þú skyldir til að kíkja á spjallþráð edition-- nú, 817 00:43:09,620 --> 00:43:12,600 við erum að fara að gefa þú a band eins og þetta, 818 00:43:12,600 --> 00:43:15,240 sem táknar brengla lykilorð. 819 00:43:15,240 --> 00:43:19,990 Svo er markmið þitt að reikna út hvað afkóðað lykilorðið er. 820 00:43:19,990 --> 00:43:26,950 Nú er þetta í raun hvernig lykilorð eru geymdar í fullt af tölvum, 821 00:43:26,950 --> 00:43:31,290 og það geymir bara þetta handahófi band af stöfum. 822 00:43:31,290 --> 00:43:34,440 Þú þarft að reikna út hvernig á að fá frá þessari handahófi band af stöfum 823 00:43:34,440 --> 00:43:36,140 hvað upprunalega lykilorð var. 824 00:43:36,140 --> 00:43:39,060 825 00:43:39,060 --> 00:43:43,290 >> Og að lokum, eftir þetta Heimadæmi, þú ættir 826 00:43:43,290 --> 00:43:46,100 vera fær um að skilja hvað þetta þýðir. 827 00:43:46,100 --> 00:43:51,650 Svo þú verður að læra hvernig á að hallmæla Þessi tegund af handahófi band. 828 00:43:51,650 --> 00:43:56,390 Á sama hátt, ef þú manst frá viku 0, þú gætir hafa séð þessa vefslóð. 829 00:43:56,390 --> 00:44:00,210 Og þú ættir að vera fær um að hallmæla þetta á endanum. 830 00:44:00,210 --> 00:44:04,810 Þú might ekki vera hamingjusamur þegar þú hallmæla það og smella á tengilinn. 831 00:44:04,810 --> 00:44:05,700 Allt í lagi. 832 00:44:05,700 --> 00:44:06,591 Það er það í dag. 833 00:44:06,591 --> 00:44:12,095 Svo sjá þig í næstu viku! 834 00:44:12,095 --> 00:44:18,315 >> [Raftónlist spila] 835 00:44:18,315 --> 00:47:15,619