1 00:00:00,000 --> 00:00:03,944 >> [Гуляе музыка] 2 00:00:03,944 --> 00:00:10,732 3 00:00:10,732 --> 00:00:11,690 Дэвід малая: Добра. 4 00:00:11,690 --> 00:00:14,674 Гэта CS50, і гэта канец тыдня 2. 5 00:00:14,674 --> 00:00:16,840 Мне так шкада, я не мог быць там з вамі ўсе сёння, 6 00:00:16,840 --> 00:00:18,300 але вы ў вельмі добрых руках. 7 00:00:18,300 --> 00:00:21,710 Дазвольце мне прадставіць CS50 уласнай Роб Боуден. 8 00:00:21,710 --> 00:00:29,106 9 00:00:29,106 --> 00:00:31,730 БОР Боуден: І, вядома, тое мы павінны зрабіць задавальненне той факт, 10 00:00:31,730 --> 00:00:36,820 што ён паслаў нам па вертыкалі відэа і паказаць гэта. 11 00:00:36,820 --> 00:00:38,320 >> [Прайграванне відэа] 12 00:00:38,320 --> 00:00:39,820 >> [Гуляе музыка] 13 00:00:39,820 --> 00:00:42,350 >> [Наступная] 14 00:00:42,350 --> 00:00:44,730 >> -Гэта Відэа не зрабіў прыйдзецца шукаць гэты шлях. 15 00:00:44,730 --> 00:00:46,570 Гэта можна было б прадухіліць. 16 00:00:46,570 --> 00:00:49,070 Скажыце няма вертыкальных відэа. 17 00:00:49,070 --> 00:00:53,310 >> -Vertical Відэа адбыцца, калі вы Трымаеце камеру ў той бок. 18 00:00:53,310 --> 00:00:55,880 Ваша відэа будзе ў канчатковым гледзячы, як дзярмо. 19 00:00:55,880 --> 00:00:57,650 >> - [Грунт] 20 00:00:57,650 --> 00:01:02,240 >> -Ёсць Усё больш і больш людзей, заахвоціўся каб зрабіць вертыкальныя відэа кожны дзень. 21 00:01:02,240 --> 00:01:06,240 Гэта ніколі не трэснуць ці нічога, але гэта ўсё яшчэ вельмі дрэнна. 22 00:01:06,240 --> 00:01:10,410 Ёсць два розных відаў людзі, якія пакутуюць з ВПС. 23 00:01:10,410 --> 00:01:14,160 Першая група лечыць відэа яны страляюць, як фатаграфіі. 24 00:01:14,160 --> 00:01:15,850 Яны не азначаюць, ніякай шкоды. 25 00:01:15,850 --> 00:01:19,180 Яны проста не разумеюць, што у той час як вы можаце ператварыць карціну, 26 00:01:19,180 --> 00:01:20,880 Вы не можаце сапраўды павярнуць відэа. 27 00:01:20,880 --> 00:01:21,880 >> [CRASH] 28 00:01:21,880 --> 00:01:23,460 >> - [Малпа ГУК] 29 00:01:23,460 --> 00:01:27,540 >> -The Іншая група гэта людзі, якія не даюць [БІП]. 30 00:01:27,540 --> 00:01:31,090 >> -Vertical Відэа сіндром небяспечны. 31 00:01:31,090 --> 00:01:34,120 Кінафільмы ёсць заўсёды гарызантальна. 32 00:01:34,120 --> 00:01:35,990 Прапануюцца гарызантальныя. 33 00:01:35,990 --> 00:01:38,380 Кампутарныя экраны гарызанталі. 34 00:01:38,380 --> 00:01:41,580 Народныя вочы гарызантальна. 35 00:01:41,580 --> 00:01:45,170 Мы не пабудаваны, каб глядзець відэа вертыкальныя. 36 00:01:45,170 --> 00:01:47,600 >> Я люблю вертыкальныя відэа. 37 00:01:47,600 --> 00:01:50,410 >> -Ніхто Клапоціцца пра вас. 38 00:01:50,410 --> 00:01:53,340 >> -калі Гэта праблема-х спыніць, вы таксама 39 00:01:53,340 --> 00:01:57,650 пачне паказваць чатыры відэа адразу, каб зэканоміць паласу прапускання. 40 00:01:57,650 --> 00:02:02,400 >> -Letterboxed Вертыкальныя відэа будзе быць памерам з паштовую марку. 41 00:02:02,400 --> 00:02:04,920 >> -А Ён будзе распаўсюджвацца ва ўсім свеце. 42 00:02:04,920 --> 00:02:07,670 Кінаэкранах ёсць заўсёды гарызантальна. 43 00:02:07,670 --> 00:02:11,200 Калі вертыкальныя відэа стала прынята, кінатэатры 44 00:02:11,200 --> 00:02:13,930 павінны быць высокі і худы. 45 00:02:13,930 --> 00:02:17,710 >> -А Усе кінатэатры, павінны знесены і перабудаваны. 46 00:02:17,710 --> 00:02:22,090 І да таго часу, яны былі адноўлены, Міла Куніс будзе старой і выродлівай. 47 00:02:22,090 --> 00:02:24,342 >> -Birds Будзе ўрэзацца ў іх і памерці. 48 00:02:24,342 --> 00:02:26,530 >> -Мы Усе атрымліваюць жорсткай шыі ад, гледзячы ўверх. 49 00:02:26,530 --> 00:02:29,800 >> -А Ніхто не будзе сядзець у пярэдні шэраг калі-небудзь зноў. 50 00:02:29,800 --> 00:02:37,170 >> -Джордж Лукас перавыданне зоркі Вайны again-- худы выданне. 51 00:02:37,170 --> 00:02:41,860 >> -Я Ніколі не быў у стане сказаць, гісторыя, што я хацеў сказаць. 52 00:02:41,860 --> 00:02:46,030 Гэта быў выдатны шанец для мяне, каб эксперыментаваць з новай тэхналогіяй. 53 00:02:46,030 --> 00:02:48,150 >> -Ты Рывок. 54 00:02:48,150 --> 00:02:54,430 >> -кожны Раз, калі мабільнае прылада выкарыстоўваецца для запіс відэа, спакуса ёсць. 55 00:02:54,430 --> 00:02:56,370 Проста сказаць няма. 56 00:02:56,370 --> 00:03:00,116 Скажы не Джорджа Лукаса. 57 00:03:00,116 --> 00:03:04,062 Скажы няма старога Міла Куніс. 58 00:03:04,062 --> 00:03:06,600 Скажыце няма вертыкальных відэа. 59 00:03:06,600 --> 00:03:12,511 >> -А Калі вы бачыце хто-то робіць гэта, скажам, "Вы не страляюць, што правільны манекен!" 60 00:03:12,511 --> 00:03:15,433 >> [Гуляе музыка] 61 00:03:15,433 --> 00:03:18,842 62 00:03:18,842 --> 00:03:19,830 >> [КАНЕЦ ПРАГЛЯДУ] 63 00:03:19,830 --> 00:03:23,702 >> [Апладысменты] 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 БОР Боуден: --simple форма крыптаграфіі, 67 00:03:45,790 --> 00:03:49,500 які з'яўляецца ў асноўным шыфраванне і дэшыфраванне сакрэтных паведамленняў. 68 00:03:49,500 --> 00:03:52,590 Так вось у нас ёсць вельмі просты цацкай. 69 00:03:52,590 --> 00:03:56,900 А ідэя вонкавае кальцо круціцца вакол ўнутранага кальца. 70 00:03:56,900 --> 00:04:01,610 І вы можаце бачыць, можа быць, калі я павялічыць у, that-- цяжка ўбачыць. 71 00:04:01,610 --> 00:04:05,090 Але, як і колькасць 1-- добра, што пераехаў. 72 00:04:05,090 --> 00:04:09,120 >> 1 нумар карты да ліста X, № 2 карты ў лісце 73 00:04:09,120 --> 00:04:11,630 Дж Неверагодна складана не прапускаць наперад. 74 00:04:11,630 --> 00:04:16,100 Ліст 2 карты ў J. Нумар 3 адлюстроўвае да D. Так 75 00:04:16,100 --> 00:04:20,140 з гэтым кальцом вы можаце даць хтосьці паведамленне 1, 2, 3. 76 00:04:20,140 --> 00:04:22,624 Для нейкай прычыне хачу сказаць ім XJD. 77 00:04:22,624 --> 00:04:24,540 Але вы можаце даць ім некаторыя паведамленне лікаў, 78 00:04:24,540 --> 00:04:28,460 і, калі яны ёсць гэты пярсцёнак, яны можа расшыфраваць тое, што вы спрабуеце сказаць. 79 00:04:28,460 --> 00:04:32,510 >> Такім чынам, вы, магчыма, бачылі гэта Канкрэтным прыкладам крыптаграфіі 80 00:04:32,510 --> 00:04:36,640 раней, калі вакол Каляднага сезона вы глядзелі Калядная гісторыя. 81 00:04:36,640 --> 00:04:38,520 Калі вы ніколі не бачылі гэта, то проста 82 00:04:38,520 --> 00:04:41,060 ўключыць TBS ў літаральным сэнсе у любы час у напярэдадні Калядаў, 83 00:04:41,060 --> 00:04:44,510 таму што яны проста паказаць яго спіна да спіны каб вярнуцца да спіна да спіны ўвесь дзень. 84 00:04:44,510 --> 00:04:46,744 І стаўленне гэта відэа. 85 00:04:46,744 --> 00:04:47,410 [Прайграванне відэа] 86 00:04:47,410 --> 00:04:50,020 -Будьте Вядома ўсім і кожнаму, што Ральф Паркер сапраўдным 87 00:04:50,020 --> 00:04:52,850 прызначаны членам Маленькая Сірата Эні Таемны круг 88 00:04:52,850 --> 00:04:56,490 і мае права на усёй пашанай і выгады адбываецца з ім. 89 00:04:56,490 --> 00:04:59,010 Падпісана сіротка Эні. 90 00:04:59,010 --> 00:05:03,120 Контрассигнуют П'ер Андрэ чарніламі! 91 00:05:03,120 --> 00:05:07,460 Ўзнагароды і перавагі ўжо ва ўзросце дзевяці гадоў! 92 00:05:07,460 --> 00:05:12,530 >> [Крычаць ад радыё] 93 00:05:12,530 --> 00:05:13,030 -Давай. 94 00:05:13,030 --> 00:05:14,000 Давайце скончым з гэтым. 95 00:05:14,000 --> 00:05:18,274 Мне не трэба ўсё, што джаз аб кантрабандыстаў і піратаў. 96 00:05:18,274 --> 00:05:20,440 Слухай, заўтра ўвечары з заключная прыгоды 97 00:05:20,440 --> 00:05:22,540 Чорнага пірацкі карабель. 98 00:05:22,540 --> 00:05:25,460 Цяпер, прыйшоў час для Сакрэтнае паведамленне Эні 99 00:05:25,460 --> 00:05:28,620 для вас члены тайнага Круга. 100 00:05:28,620 --> 00:05:32,370 Памятаеце Дзеці, толькі сябры Эні сакрэтнай Круга 101 00:05:32,370 --> 00:05:34,880 можа дэкадаваць сакрэтнае паведамленне Эні. 102 00:05:34,880 --> 00:05:39,100 Памятаеце, Эні у залежнасці ад вас. 103 00:05:39,100 --> 00:05:41,660 Усталюйце штыфты В2. 104 00:05:41,660 --> 00:05:43,960 Вось паведамленне. 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 -Я У маім першым сакрэтным нарадзе. 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 >> -ай, П'ер знаходзіцца ў вялікай галасавой сёння. 115 00:05:54,570 --> 00:05:57,490 Я мог бы сказаць, што сёння ўвечары Паведамленне было сапраўды важна. 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 Гэта паведамленне ад самой Эні. 119 00:06:01,580 --> 00:06:02,880 Памятаеце, не кажаце нікому. 120 00:06:02,880 --> 00:06:07,840 121 00:06:07,840 --> 00:06:11,130 >> -Пять Секунд праз, я ў толькі пакой у доме, дзе хлопчык дзевяці 122 00:06:11,130 --> 00:06:15,830 мог сядзець у адзіноце і дэкадавання. 123 00:06:15,830 --> 00:06:16,620 Ага! 124 00:06:16,620 --> 00:06:17,340 B! 125 00:06:17,340 --> 00:06:20,210 Я пайшоў да іншага. 126 00:06:20,210 --> 00:06:23,300 Е. Першае слова "быць". 127 00:06:23,300 --> 00:06:25,880 С. Ён даносіўся прасцей. 128 00:06:25,880 --> 00:06:28,400 У. 25. 129 00:06:28,400 --> 00:06:30,528 Гэта R. 130 00:06:30,528 --> 00:06:31,278 -Давай, Ральф! 131 00:06:31,278 --> 00:06:31,861 Я павінен ісці! 132 00:06:31,861 --> 00:06:33,182 -Я Б прама, Ма! 133 00:06:33,182 --> 00:06:36,038 Вось выдатна. 134 00:06:36,038 --> 00:06:42,840 Т. О. "Будзьце ўпэўненыя, што" - будзьце ўпэўненыя, да чаго? 135 00:06:42,840 --> 00:06:44,770 Што сіротка Эні спрабуе сказаць? 136 00:06:44,770 --> 00:06:46,381 Будзьце ўпэўненыя, што да чаго? 137 00:06:46,381 --> 00:06:47,825 >> -Randy Павінен сысьці! 138 00:06:47,825 --> 00:06:48,866 Ці будзеце вы калі ласка выйсці? 139 00:06:48,866 --> 00:06:49,783 >> -Добра, Мама! 140 00:06:49,783 --> 00:06:51,786 Я буду прама! 141 00:06:51,786 --> 00:06:53,606 Я атрымліваю бліжэй ,. 142 00:06:53,606 --> 00:06:55,550 Напружанне было жудасна. 143 00:06:55,550 --> 00:06:57,050 Што гэта было? 144 00:06:57,050 --> 00:06:59,905 Лёс планеты можа вісець на валаску! 145 00:06:59,905 --> 00:07:01,736 >> -Ralphie, Рэндзі павінен ісці! 146 00:07:01,736 --> 00:07:05,680 >> -Я Зараз выйду, з розуму сысці! 147 00:07:05,680 --> 00:07:07,170 Амаль там! 148 00:07:07,170 --> 00:07:08,150 Мае пальцы лёталі. 149 00:07:08,150 --> 00:07:09,980 Мой розум быў сталёвы пастку. 150 00:07:09,980 --> 00:07:11,496 Кожны часу вібруе. 151 00:07:11,496 --> 00:07:13,268 Гэта было амаль ясна! 152 00:07:13,268 --> 00:07:13,767 Так. 153 00:07:13,767 --> 00:07:14,609 Так. 154 00:07:14,609 --> 00:07:15,108 Так. 155 00:07:15,108 --> 00:07:16,449 Так. 156 00:07:16,449 --> 00:07:20,240 Будзьце ўпэўненыя, каб піць 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 Вашывага камерцыйны? 160 00:07:27,520 --> 00:07:32,040 161 00:07:32,040 --> 00:07:34,920 Сукін сын. 162 00:07:34,920 --> 00:07:35,890 >> [КАНЕЦ ПРАГЛЯДУ] 163 00:07:35,890 --> 00:07:39,650 >> БОР Боуден: Дык вось, як Ovaltine ставіцца да крыптаграфіі. 164 00:07:39,650 --> 00:07:42,290 У асноўным CS50 толькі рэкламуецца Ovaltine, такім чынам, мы маглі 165 00:07:42,290 --> 00:07:44,400 быць вашывай камерцыйных Ovaltine. 166 00:07:44,400 --> 00:07:44,900 Добра. 167 00:07:44,900 --> 00:07:47,120 Так што цяпер бягучая інфарматыка. 168 00:07:47,120 --> 00:07:50,670 Запомніць мяне на панядзелак мы спыніліся дайвінг глыбей радкоў. 169 00:07:50,670 --> 00:07:52,820 Такім чынам, мы маем справу з радок "Zamyla." 170 00:07:52,820 --> 00:07:55,130 І мы былі прызнання той факт, што мы можам разглядаць 171 00:07:55,130 --> 00:07:57,510 "Zamyla" у выглядзе паслядоўнасці знакаў. 172 00:07:57,510 --> 00:07:59,740 І памятайце, што мы даведаліся, абазначэнне кранштэйна. 173 00:07:59,740 --> 00:08:01,995 Так, калі гэта захоўваліся у радку "s", затым 174 00:08:01,995 --> 00:08:05,860 калі б мы сказалі ёй кранштэйн 0, што б пакажыце капіталу Z. ліст 175 00:08:05,860 --> 00:08:09,790 І калі б мы сказалі ёй кранштэйн 1, што будзе паказваць на першы ніжні рэгістр A, 176 00:08:09,790 --> 00:08:14,220 і гэтак далей да ов кранштэйна 5, які будзе паказваць на апошнюю а. 177 00:08:14,220 --> 00:08:17,090 >> Цяпер успомніце, што Даўжыня гэтага радка 6, 178 00:08:17,090 --> 00:08:23,220 але індэксы ў радку з'яўляюцца Ад 0 да 5, Z праз якія доўжацца. 179 00:08:23,220 --> 00:08:28,650 Так гэта цяпер ўпісваецца ў агульную карціну памяці кампутара, аператыўнай памяці. 180 00:08:28,650 --> 00:08:32,020 Дык дзе-то праграма, якая вы працуеце кампутар 181 00:08:32,020 --> 00:08:34,780 трэба памятаць, Zamyla дзесьці ў памяці. 182 00:08:34,780 --> 00:08:36,029 Так я магу быць добраахвотнікам? 183 00:08:36,029 --> 00:08:38,840 184 00:08:38,840 --> 00:08:40,181 Так, калі ласка. 185 00:08:40,181 --> 00:08:50,120 186 00:08:50,120 --> 00:08:51,500 І тое, што ваша імя? 187 00:08:51,500 --> 00:08:52,410 >> ДВП: Дын. 188 00:08:52,410 --> 00:08:53,550 >> БОР Боуден: Дын? 189 00:08:53,550 --> 00:08:54,910 Прыемна пазнаёміцца, Дын. 190 00:08:54,910 --> 00:08:58,240 Так што прыязджай сюды і мы збіраемся, каб вы маляваць 191 00:08:58,240 --> 00:09:00,740 на нашым добры выдатны макет памяці. 192 00:09:00,740 --> 00:09:05,950 Цяпер я хацеў бы думаць аб памяці адной доўгай паласы байтаў, 193 00:09:05,950 --> 00:09:11,090 але толькі для мэт адлюстравання мы будзем проста злева направа, зверху ўніз. 194 00:09:11,090 --> 00:09:11,590 ДОБРА? 195 00:09:11,590 --> 00:09:22,030 >> Так што я збіраюся паказаць program-- Getstrings.c. 196 00:09:22,030 --> 00:09:25,760 І так усё гэта праграма рабіць просіць чатыры струны 197 00:09:25,760 --> 00:09:28,830 ад карыстальніка з GetString, а затым друк 198 00:09:28,830 --> 00:09:30,950 усё, што першая радок увайшоў было. 199 00:09:30,950 --> 00:09:32,840 Мы ігнаруючы два праз чатыры. 200 00:09:32,840 --> 00:09:33,610 ДОБРА. 201 00:09:33,610 --> 00:09:38,210 Так тут now--, калі Я першы запыт S1. 202 00:09:38,210 --> 00:09:39,740 Такім чынам, вы кампутар. 203 00:09:39,740 --> 00:09:41,680 І вы рэалізуеце GetString. 204 00:09:41,680 --> 00:09:46,710 Такім чынам, вы запытаць радок з мне, і я кажу, ОК, Дын. 205 00:09:46,710 --> 00:09:47,900 Дайце радок "Дын". 206 00:09:47,900 --> 00:09:50,300 >> Так дзесьці ў памяці ў вас трэба памятаць "Дзіна". 207 00:09:50,300 --> 00:09:52,160 Так што пішыце яго ў памяці недзе. 208 00:09:52,160 --> 00:09:58,270 209 00:09:58,270 --> 00:09:59,210 Ідэальны. 210 00:09:59,210 --> 00:09:59,880 ДОБРА. 211 00:09:59,880 --> 00:10:01,740 Так што цяпер мы s2. 212 00:10:01,740 --> 00:10:03,869 І S2 будзе запыт на GetString. 213 00:10:03,869 --> 00:10:05,160 Так што я збіраюся ўвесці радок. 214 00:10:05,160 --> 00:10:08,720 Я збіраюся ўвесці "Хана". 215 00:10:08,720 --> 00:10:10,586 Так ўвесці "Хана" дзесьці ў памяці. 216 00:10:10,586 --> 00:10:18,860 217 00:10:18,860 --> 00:10:19,360 Так. 218 00:10:19,360 --> 00:10:23,000 А-М. 219 00:10:23,000 --> 00:10:25,550 >> ОК, так што зараз S3. 220 00:10:25,550 --> 00:10:28,380 І гэта будзе яшчэ адзін прашу GetString. 221 00:10:28,380 --> 00:10:37,020 І вось зараз ўвесці "Марыя". 222 00:10:37,020 --> 00:10:37,520 Добра. 223 00:10:37,520 --> 00:10:40,980 А тут яшчэ адна апошняя Запыт на GetString, S4. 224 00:10:40,980 --> 00:10:42,580 Такім чынам, я не ведаю. 225 00:10:42,580 --> 00:10:45,640 Як наконт мы ідзём з antidisestablishmentarianism. 226 00:10:45,640 --> 00:10:49,460 Так што увядзіце ў памяць. 227 00:10:49,460 --> 00:10:50,400 Так. 228 00:10:50,400 --> 00:10:53,970 Так проста рабіць "Боб". 229 00:10:53,970 --> 00:10:54,560 >> ДОБРА. 230 00:10:54,560 --> 00:10:58,410 Так што цяпер explain-- чаму пакінуць гэтыя прабелы? 231 00:10:58,410 --> 00:11:01,340 Чаму ў вас гэта поле пустым прастора тут, тут, і тут? 232 00:11:01,340 --> 00:11:05,170 233 00:11:05,170 --> 00:11:05,670 Так. 234 00:11:05,670 --> 00:11:09,450 Так заўважыць, калі я іду друкаваць s1-- таму, калі мы 235 00:11:09,450 --> 00:11:11,890 быў бег "Хана" Права побач з "Дын", 236 00:11:11,890 --> 00:11:14,360 як мы ведаем, калі радок "Дын" заканчваецца? 237 00:11:14,360 --> 00:11:19,470 Так друку радкі s1 можа мець проста надрукаваныя "DeanHannahMariaRob" 238 00:11:19,470 --> 00:11:22,720 калі ён не мае ніякага паняцця , Калі "Дын" на самай справе сканчаецца. 239 00:11:22,720 --> 00:11:23,240 >> Добра. 240 00:11:23,240 --> 00:11:27,650 Такім чынам, у памяці тое, як мы на самай справе ўяўляюць гэты канец радка 241 00:11:27,650 --> 00:11:29,940 гэта з касымі нулявы. 242 00:11:29,940 --> 00:11:32,620 Так гэта прастора менавіта тое, што мы хацелі. 243 00:11:32,620 --> 00:11:34,040 Яна павінна быць зваротная касая рыса нуля. 244 00:11:34,040 --> 00:11:37,690 Гэта будзе зваротны слеш нуль, і гэта будзе зваротны слеш нуля. 245 00:11:37,690 --> 00:11:41,585 І вы можаце мець казачныя прыз за тое, што ідэальны валанцёр. 246 00:11:41,585 --> 00:11:44,910 247 00:11:44,910 --> 00:11:45,860 Вазьміце стрэс мяч! 248 00:11:45,860 --> 00:11:49,040 249 00:11:49,040 --> 00:11:49,700 >> ДОБРА. 250 00:11:49,700 --> 00:11:54,420 Так гэты сімвал зваротнай касой рысы нуля як мы, паказваючы на ​​заканчэнне радка. 251 00:11:54,420 --> 00:11:57,120 Гэта тое, як, калі любы Дадзеная праграма хоча надрукаваць радок, 252 00:11:57,120 --> 00:11:59,760 гэта how-- памятаю мы даведаліся, функцыя StrLen на мінулым тыдні? 253 00:11:59,760 --> 00:12:00,940 Даўжыня радкі? 254 00:12:00,940 --> 00:12:03,770 Гэта тое, як даўжыня радка можа вызначыць, як доўга радок. 255 00:12:03,770 --> 00:12:05,810 Ён проста трымае ітэрацыі над знакамі 256 00:12:05,810 --> 00:12:08,217 да таго часу, пакуль знаходзіць Зваротная касая рыса сімвала нуля. 257 00:12:08,217 --> 00:12:11,050 Такім чынам, важна зразумець аб зваротная касая рыса характару нулявы 258 00:12:11,050 --> 00:12:14,950 у гэта ўяўляецца усімі нулямі ў бітах. 259 00:12:14,950 --> 00:12:18,980 Так заўважыць, што гэта адрозніваецца ад нулявога знака. 260 00:12:18,980 --> 00:12:23,010 Такім чынам, сімвал нуля, калі вы памятаеце, у прыкладзе, што ён даў у канцы 261 00:12:23,010 --> 00:12:27,360 лекцыі, дзе персанажы карту , Мэтай якіх, як капітал Карт да 65. 262 00:12:27,360 --> 00:12:29,130 Ніжнім рэгістра ў карты да 97. 263 00:12:29,130 --> 00:12:30,890 Малыя б будзе 98. 264 00:12:30,890 --> 00:12:35,220 Такім чынам, лік 0 адлюстроўваецца, мэтай якіх я не ведаю, у верхняй частцы маёй галавы. 265 00:12:35,220 --> 00:12:36,400 44 або 45. 266 00:12:36,400 --> 00:12:37,890 Дзе-то ў гэтым рэгіёне. 267 00:12:37,890 --> 00:12:40,850 >> Такім чынам, характар ​​0 з'яўляецца фактычная колькасць. 268 00:12:40,850 --> 00:12:44,350 Але зваротны слеш нуль карты для ўсіх нулявых бітаў. 269 00:12:44,350 --> 00:12:46,380 Так што адрозненне паміж зваротнай касой рысы нулявы, 270 00:12:46,380 --> 00:12:48,450 якія мы будзем называць нулявы тэрмінатар. 271 00:12:48,450 --> 00:12:53,210 Там гэта адрозненне паміж Зваротная касая рыса нуля, а знак нуля. 272 00:12:53,210 --> 00:12:54,350 >> Добра. 273 00:12:54,350 --> 00:12:57,520 Таму казаць крыху больш пра радках. 274 00:12:57,520 --> 00:13:01,470 Такім чынам, мы бачым тут, як гэта ён будзе закладзены ў памяці. 275 00:13:01,470 --> 00:13:07,940 Так гэтая ідэя радкоў у выглядзе паслядоўнасці з characters-- так афіцыйным кампутар 276 00:13:07,940 --> 00:13:10,750 sciency тэрмін для паслядоўнасці з'яўляецца масівам. 277 00:13:10,750 --> 00:13:13,790 Такім чынам, мы маглі б назваць радок масіў знакаў. 278 00:13:13,790 --> 00:13:17,770 І ёсць на самой справе іншыя дадзеныя тыпы, якія мы можам зрабіць з масіваў. 279 00:13:17,770 --> 00:13:19,975 >> Такім чынам, каб матываваць гэта, разгледзім на прыкладзе. 280 00:13:19,975 --> 00:13:22,810 281 00:13:22,810 --> 00:13:29,812 Мы будзем называць яго ages0.c я буду скапіруйце і ўстаўце наш шаблон. 282 00:13:29,812 --> 00:13:32,470 283 00:13:32,470 --> 00:13:33,410 ДОБРА. 284 00:13:33,410 --> 00:13:39,378 Такім чынам, у гэтай праграме тое, што мы хачу зрабіць, гэта ўзяць ўзрост 285 00:13:39,378 --> 00:13:45,160 з трох студэнтаў у працэсе. 286 00:13:45,160 --> 00:13:49,240 Такім чынам, мы ведаем, што INT age-- і цяпер я збіраюся сказаць, 0. 287 00:13:49,240 --> 00:13:53,140 Такім чынам, вы, магчыма, захочаце, каб сказаць age1, але для мэтаў, мы ўбачым вельмі хутка, 288 00:13:53,140 --> 00:13:57,187 Я скажу INT age0 роўная GetInt. 289 00:13:57,187 --> 00:13:59,270 Гэтак жа заклік да GetInt што мы выкарыстоўвалі I 290 00:13:59,270 --> 00:14:01,561 не бывае, каб быць падахвочваючы кажучы, "дайце мне ўзрост." 291 00:14:01,561 --> 00:14:03,120 Але толькі просіць яго. 292 00:14:03,120 --> 00:14:06,510 >> І age1 роўная GetInt. 293 00:14:06,510 --> 00:14:09,600 І INT age2 роўная GetInt. 294 00:14:09,600 --> 00:14:14,070 Так, зноў жа, тры студэнты, але у канчатковым рахунку пераменная індэксы 295 00:14:14,070 --> 00:14:16,890 з'яўляюцца age0 праз age2. 296 00:14:16,890 --> 00:14:17,550 ДОБРА. 297 00:14:17,550 --> 00:14:23,960 Так гэтая праграма будзе рабіць усё, што мы хочам з age0, age1 і age2, 298 00:14:23,960 --> 00:14:27,670 але гэтая праграма ў канчатковым рахунку, працуе на працягу трох студэнтаў. 299 00:14:27,670 --> 00:14:28,380 >> ДОБРА. 300 00:14:28,380 --> 00:14:32,110 Так што цяпер, калі я хачу чацвёра студэнтаў? 301 00:14:32,110 --> 00:14:36,000 Ну, я збіраюся мець, каб вярнуцца у маім кодзе, зменіце каментар, 302 00:14:36,000 --> 00:14:39,840 і цяпер у нас ёсць Int Age3 роўная GetInt. 303 00:14:39,840 --> 00:14:40,610 ДОБРА. 304 00:14:40,610 --> 00:14:43,660 Дык хто бачыць тут праблемы? 305 00:14:43,660 --> 00:14:47,310 У чым праблема з такога роду ўстаноўкі? 306 00:14:47,310 --> 00:14:47,810 Так. 307 00:14:47,810 --> 00:14:53,110 308 00:14:53,110 --> 00:14:53,610 Так. 309 00:14:53,610 --> 00:14:56,360 Так мы ствараем зменная для кожнага студэнта. 310 00:14:56,360 --> 00:15:00,140 Цяпер, працуе, але у канчатковым рахунку, што, калі я цяпер 311 00:15:00,140 --> 00:15:06,500 сказаць: "Я хачу, каб захапіць ўзрост восем студэнтаў або 16 студэнтаў 312 00:15:06,500 --> 00:15:11,340 або ў менш многія студэнты сотні студэнтаў у CS50 313 00:15:11,340 --> 00:15:16,750 ці тысячы студэнтаў на тэрыторыі кампуса або мільярды людзей у свеце? 314 00:15:16,750 --> 00:15:19,130 Так у канчатковым рахунку гэта не з'яўляецца устойлівым. 315 00:15:19,130 --> 00:15:21,990 Кожны раз, калі вы бачыце сябе капіраванне і ўстаўкі кода, як гэта, 316 00:15:21,990 --> 00:15:25,050 Вы павінны адчуваць сябе, як правіла што ёсць лепшы шлях. 317 00:15:25,050 --> 00:15:31,290 >> Так што гэта, дзе мы ўводзім дэкларацыя масіва. 318 00:15:31,290 --> 00:15:34,564 Таму, калі вы аб'яўляеце масіў, гэта тое, што агульны фармат 319 00:15:34,564 --> 00:15:35,480 будзе выглядаць. 320 00:15:35,480 --> 00:15:36,664 Мы збіраемся сказаць тыпу. 321 00:15:36,664 --> 00:15:38,830 а затым мы збіраемся даць імя гэтага масіва, 322 00:15:38,830 --> 00:15:41,150 як мы вызначаем зменную любога зададзенага. 323 00:15:41,150 --> 00:15:43,980 І, нарэшце, мы выкарыстоўваем Гэты кранштэйн абазначэння зноў 324 00:15:43,980 --> 00:15:47,480 але ў іншым кантэксце з як мы выкарыстоўвалі яго раней. 325 00:15:47,480 --> 00:15:51,860 >> Дык вось як гэта выглядае нармальным Аб'яву зменнай, што мы бачылі. 326 00:15:51,860 --> 00:15:54,890 Такім чынам, мы бачылі Int х коскі раней. 327 00:15:54,890 --> 00:16:00,020 Ну мы маглі б убачыць нешта як INT х дужках 5. 328 00:16:00,020 --> 00:16:04,020 І пакласці гэтую ідэю ў Праграма GetInt, што мы have-- 329 00:16:04,020 --> 00:16:08,850 такім чынам, мы можам рэалізаваць Гэты такім жа чынам. 330 00:16:08,850 --> 00:16:13,630 >> Скажам, у CS мы схільныя выкарыстоўваць п як лік чагосьці. 331 00:16:13,630 --> 00:16:16,150 Дык вось мы збіраемся захоўваць чатырох студэнтаў. 332 00:16:16,150 --> 00:16:25,960 І зараз мы можам сказаць, INT ўзросту Кранштэйны ня N-- зусім разумею yet-- 333 00:16:25,960 --> 00:16:32,210 абвясціць масіў з чатырох студэнтаў. 334 00:16:32,210 --> 00:16:38,050 Так, як гэта будзе выглядаць у памяці будзе падобны на гэты. 335 00:16:38,050 --> 00:16:39,570 Здыміце гэты. 336 00:16:39,570 --> 00:16:46,606 І мы будзем мець дзесьці у memory-- я пакладу гэта там. 337 00:16:46,606 --> 00:16:52,690 338 00:16:52,690 --> 00:16:53,808 >> Так дзесьці ў памяці. 339 00:16:53,808 --> 00:16:58,760 340 00:16:58,760 --> 00:16:59,727 Адзін, два, тры, чатыры. 341 00:16:59,727 --> 00:17:03,383 342 00:17:03,383 --> 00:17:09,849 У нас ёсць чатыры цэлых чысла ў радку для гэтага масіва з чатырох лікаў. 343 00:17:09,849 --> 00:17:13,820 Так, у цяперашні час, што з'яўляецца Памер аднаго з гэтых скрынь? 344 00:17:13,820 --> 00:17:17,190 345 00:17:17,190 --> 00:17:17,690 Так. 346 00:17:17,690 --> 00:17:18,390 Гэта чатыры байта. 347 00:17:18,390 --> 00:17:19,690 Гэта 32 біт. 348 00:17:19,690 --> 00:17:22,310 Так што цяпер гэта адрозніваецца з масіва, якія мы 349 00:17:22,310 --> 00:17:24,020 бачылі раней, масіў знакаў. 350 00:17:24,020 --> 00:17:28,540 У радку кожная скрынка была толькі адзін байт, паколькі характар ​​толькі адзін байт. 351 00:17:28,540 --> 00:17:32,170 Але з масівам цэлых лікаў, кожнае Скрынка мае ў чатыры байта таго 352 00:17:32,170 --> 00:17:34,060 каб адпавядаць ўвесь цэлае. 353 00:17:34,060 --> 00:17:37,197 Так што гэта тое, што масіў чатыры Інтс будзе выглядаць. 354 00:17:37,197 --> 00:17:40,510 355 00:17:40,510 --> 00:17:43,870 >> А потым назад у код. 356 00:17:43,870 --> 00:17:47,460 Цяпер мы хочам на самой справе крама цэлыя у гэтым масіве. 357 00:17:47,460 --> 00:17:53,470 Так што цяпер гэта вельмі, вельмі, вельмі агульны прынцып, які ў нейкі момант 358 00:17:53,470 --> 00:17:54,680 стаць цягліцавая памяць. 359 00:17:54,680 --> 00:17:56,710 Так Int я роўная 0. 360 00:17:56,710 --> 00:17:57,940 я менш, чым п. 361 00:17:57,940 --> 00:18:01,850 я плюс плюс. 362 00:18:01,850 --> 00:18:05,790 Узрост кранштэйн я роўная GetInt. 363 00:18:05,790 --> 00:18:15,100 >> Такім чынам, гэта цыкл, гэты фармат, Вы павінны атрымаць вельмі прывыклі. 364 00:18:15,100 --> 00:18:20,010 Так што гэта, як правіла, як мы будзем перабору амаль любы масіў. 365 00:18:20,010 --> 00:18:23,690 Зараз звернеце ўвагу такога роду тлумачыць, чаму з самага пачатку 366 00:18:23,690 --> 00:18:29,870 у нас не было для завесы збіраецца на Int Я роўны 1, I менш або роўна 10. 367 00:18:29,870 --> 00:18:34,200 Прычына ў тым, што, пачынаючы з нулявы робіць гэтую працу добра з масівамі. 368 00:18:34,200 --> 00:18:36,270 Так масівы роўныя нулю індэксуюцца. 369 00:18:36,270 --> 00:18:40,360 Калі гэты масіў мае даўжыню 4, індэксы роўныя 0 да 3. 370 00:18:40,360 --> 00:18:42,880 >> Так праз першы ітэрацыі гэтага цыкла для 371 00:18:42,880 --> 00:18:49,930 мы збіраемся быць ўстаноўка ўзрост Кранштэйны 0 роўную выкліку GetInt. 372 00:18:49,930 --> 00:18:52,440 Так здарылася, што я ўвесці з клавіятуры. 373 00:18:52,440 --> 00:18:56,970 На другім праходзе, мы ўстаноўка age1 роўна GetInt. 374 00:18:56,970 --> 00:18:58,230 Па-трэцяе праход, age2. 375 00:18:58,230 --> 00:18:59,880 Заключны праход Age3. 376 00:18:59,880 --> 00:19:05,750 Такім чынам, калі ў першым праходзе цыклу Я ўваходжу ў лік 4 на клавіятуры, 377 00:19:05,750 --> 00:19:07,740 Затым мы уставім 4 тут. 378 00:19:07,740 --> 00:19:11,470 Калі на другім праходзе я ўваходжу 50, мы паставім 50 тут. 379 00:19:11,470 --> 00:19:15,180 На трэцім праходзе я мог увядзіце адмоўны 1, адмоўны 1, 380 00:19:15,180 --> 00:19:21,810 і, нарэшце, калі я ўваходжу 0-- і Цяпер памятаеце, што гэта было тры азначніка. 381 00:19:21,810 --> 00:19:25,350 >> Пасля таго як мы завесы спіне, я гэта будзе павялічвацца да 4. 382 00:19:25,350 --> 00:19:27,770 ня я больш не менш, чым п, які 4. 383 00:19:27,770 --> 00:19:29,840 І мы вырвацца з пятлі. 384 00:19:29,840 --> 00:19:32,578 Так што было б няправільна з гэтым? 385 00:19:32,578 --> 00:19:38,140 386 00:19:38,140 --> 00:19:38,729 [Неразборліва]? 387 00:19:38,729 --> 00:19:39,604 АЎДЫТОРЫЯ: [неразборліва] 388 00:19:39,604 --> 00:19:45,880 389 00:19:45,880 --> 00:19:46,400 >> Так. 390 00:19:46,400 --> 00:19:51,550 Такім чынам, масіў мае толькі чатыры месцы, што азначае, як індэксы ад 0 да 3. 391 00:19:51,550 --> 00:19:55,630 Так што, калі б гэта было так, я б прымаць значэнне 4 у нейкі момант. 392 00:19:55,630 --> 00:20:00,910 ўзроставая група 4 будзе ўстаноўка ўсё, што адбываецца, каб быць тут 393 00:20:00,910 --> 00:20:02,920 тое, што я павінен сказаць, увядзіце 6. 394 00:20:02,920 --> 00:20:05,010 Гэта будзе ўстаноўка гэтага да 6. 395 00:20:05,010 --> 00:20:06,560 >> Але мы не ведаем, што тут. 396 00:20:06,560 --> 00:20:08,836 Гэта не памяць што ў нас доступ. 397 00:20:08,836 --> 00:20:10,710 Так што, калі вы памятаеце з папярэдняя лекцыя, 398 00:20:10,710 --> 00:20:14,350 ён быў раздрукоўкі значэння Zamyla і у нейкі момант ён ударыў гэты сегментацыі 399 00:20:14,350 --> 00:20:17,990 віна. Такім чынам, вы, верагодна, будзе бачыць многія памылкі сегментацыі, як вы 400 00:20:17,990 --> 00:20:20,530 ажыццявіць некаторыя з праблемных мностваў. 401 00:20:20,530 --> 00:20:24,950 Але гэта адзін са спосабаў, у якіх Вы можаце сутыкнуцца з сегментацыю 402 00:20:24,950 --> 00:20:28,540 віна, калі вы пачынаеце доступу памяць такім чынам, што вы не павінны быць. 403 00:20:28,540 --> 00:20:34,117 Такім чынам, мы не мелі доступу да гэта месца, і гэта памылка. 404 00:20:34,117 --> 00:20:37,760 405 00:20:37,760 --> 00:20:40,190 >> Так што гэта лепш. 406 00:20:40,190 --> 00:20:45,820 Зараз ёсць яшчэ невялікі праблема з гэтым кодам. 407 00:20:45,820 --> 00:20:50,720 І гэта ў асноўным, што мы затрымаўся на чатырох студэнтаў. 408 00:20:50,720 --> 00:20:52,940 Цяпер, калі я хачу выкарыстоўваць восем студэнтаў, ОК. 409 00:20:52,940 --> 00:20:54,350 Гэта не так ужо страшна. 410 00:20:54,350 --> 00:20:58,120 Я магу пайсці ў, змяніць каментары, а таксама змяніць п. 411 00:20:58,120 --> 00:20:59,760 Цяпер гэта будзе працаваць з васьмі студэнтаў. 412 00:20:59,760 --> 00:21:02,190 Калі я скампіляваць і запусціць гэта, пакажа me-- 413 00:21:02,190 --> 00:21:07,870 ён будзе прасіць лікаў на працягу васьмі студэнты і ён будзе проста працаваць. 414 00:21:07,870 --> 00:21:11,850 Але гэта менш, чым ідэальна падыходзіць для трэба перакампіляваць праграму кожны раз, 415 00:21:11,850 --> 00:21:15,960 Я хачу, каб змяніць колькасць студэнтаў што я хачу, каб увесці ўзрост для. 416 00:21:15,960 --> 00:21:22,990 >> Такім чынам, канчатковы паляпшэнне па гэта, як мы ўбачым, мы here-- 417 00:21:22,990 --> 00:21:26,177 збіраецца прасіць колькасць людзей. 418 00:21:26,177 --> 00:21:28,010 Тут мы маем шэраг людзей у нумарах 419 00:21:28,010 --> 00:21:29,880 або якія-небудзь ўзрост людзей у пакоі. 420 00:21:29,880 --> 00:21:33,300 Але мы збіраемся прасіць нумар людзей у нумары ад карыстальніка. 421 00:21:33,300 --> 00:21:36,171 Так што гэта сапраўды такі ж зрабі, а цыкл, які мы бачылі раней. 422 00:21:36,171 --> 00:21:37,920 Гэта сапраўды такі ж зрабіць-той час цыкл, які вы 423 00:21:37,920 --> 00:21:40,050 можа быць рэалізацыі на мностве праблем. 424 00:21:40,050 --> 00:21:43,102 Так што, пакуль яны ўвод п менш, чым 1, 425 00:21:43,102 --> 00:21:45,310 дык там павінен быць хоць бы адзін чалавек у пакоі. 426 00:21:45,310 --> 00:21:47,407 Пакуль яны ўвод п менш, чым 1, 427 00:21:47,407 --> 00:21:48,990 тады мы ідзем працягваць задаваць зноў. 428 00:21:48,990 --> 00:21:50,906 Калі ласка, увядзіце нумар людзей у пакоі. 429 00:21:50,906 --> 00:21:53,550 Цяпер, калі ў нас ёсць лік людзей у room-- 430 00:21:53,550 --> 00:21:58,020 так што я мог увайсці, што 200 чалавек у гэтым пакоі. 431 00:21:58,020 --> 00:22:05,480 Тады тут мы прыйдзе і абвясціць масіў памерам 200. 432 00:22:05,480 --> 00:22:10,220 Мы абвясціўшы, што гэта масіў досыць вялікі, каб трымаць 200 узростаў. 433 00:22:10,220 --> 00:22:15,370 Спускаючыся, гэта цыкл што вы атрымаеце вельмі прывыклі. 434 00:22:15,370 --> 00:22:19,490 Так перабору масіва, прысваенне кожнаму месцазнаходжанні 435 00:22:19,490 --> 00:22:23,020 у гэтым масіве цэлае, і то ў канчатковым рахунку, тут мы 436 00:22:23,020 --> 00:22:28,340 проста атрымаць прыклад ітэрацыі на працягу гэтага масіва, а не прысвойваць значэння, 437 00:22:28,340 --> 00:22:30,150 але доступ да значэнняў. 438 00:22:30,150 --> 00:22:33,810 >> Так тут мы бачым, што кажуць, праз год, 439 00:22:33,810 --> 00:22:40,470 чалавек% я будзе% I гадоў, дзе першы% я гэта я плюс 1. 440 00:22:40,470 --> 00:22:43,010 Так я гэта індэксная пераменная. 441 00:22:43,010 --> 00:22:49,420 І другі% я маю намер быць значэнне захоўваецца ў масіве узростаў плюс 1. 442 00:22:49,420 --> 00:22:54,217 Такім чынам, гэта плюс 1 толькі таму, што мы saying-- гэта плюс 1, узрост I плюс 1. 443 00:22:54,217 --> 00:22:57,050 Гэта плюс 1 толькі таму, што мы кажучы, праз год чалавека 444 00:22:57,050 --> 00:22:58,280 будзе гэты стары. 445 00:22:58,280 --> 00:23:01,080 >> Такім чынам, чаму гэта я плюс 1? 446 00:23:01,080 --> 00:23:04,064 Чаму ў нас ёсць плюс 1 ёсць? 447 00:23:04,064 --> 00:23:04,564 Так. 448 00:23:04,564 --> 00:23:07,410 449 00:23:07,410 --> 00:23:07,930 Так. 450 00:23:07,930 --> 00:23:10,510 Так што памятаеце, масівы роўныя нулю індэксуюцца. 451 00:23:10,510 --> 00:23:14,840 Так што, калі мы друкуем гэта для хтосьці проста чытаць выснову, 452 00:23:14,840 --> 00:23:19,380 то, напэўна, яны хочуць убачыць нешта як чалавека аднаго, чалавек нумар адзін, 453 00:23:19,380 --> 00:23:21,160 будзе 20 гадоў. 454 00:23:21,160 --> 00:23:23,570 Чалавек нумар два будзе 15 гадоў. 455 00:23:23,570 --> 00:23:27,420 Яны б не бачыць твар нумар нуль 15 гадоў. 456 00:23:27,420 --> 00:23:36,460 >> Так кампіляцыі гэта і проста паглядзець, што гэта выглядае like-- Стварыць некаторы прастору. 457 00:23:36,460 --> 00:23:43,560 Зрабіць ўзросце ад кампілюе. 458 00:23:43,560 --> 00:23:45,080 Запуск узростаў. 459 00:23:45,080 --> 00:23:46,580 Мы бачым, колькасць людзей у пакоі. 460 00:23:46,580 --> 00:23:48,850 Так што я буду казаць ёсць тры чалавекі ў пакоі. 461 00:23:48,850 --> 00:23:54,000 Узрост чалавека нумар адзін, скажам 15, 20, 25. 462 00:23:54,000 --> 00:23:59,680 А цяпер я скажу праз год Цяпер яны будуць 16, 21, 26. 463 00:23:59,680 --> 00:24:02,900 Давайце паглядзім, што гэта працуе з п, што не роўна 3. 464 00:24:02,900 --> 00:24:07,940 Так што, калі я кажу, колькасць людзей 5, адзін, два, тры, два, адзін, праз год 465 00:24:07,940 --> 00:24:11,170 яны будуць два, тры, чатыры, тры, два гады. 466 00:24:11,170 --> 00:24:16,500 Так што я мог так жа, як лёгка п 10000. 467 00:24:16,500 --> 00:24:21,270 Цяпер я буду сядзець тут дастаткова Пры ўваходзе ва ўзросце, але гэта працуе. 468 00:24:21,270 --> 00:24:26,000 >> Так што цяпер у памяці дзесьці мы ёсць масіў памерам 10000, 469 00:24:26,000 --> 00:24:28,830 так, у канчатковым рахунку 40000 байт, таму што ёсць 470 00:24:28,830 --> 00:24:31,222 чатыры байта для кожнага з гэтых лікаў. 471 00:24:31,222 --> 00:24:33,180 Так што масіў Памер 10000, дзе мы можам 472 00:24:33,180 --> 00:24:36,201 захоўваць ўзрост тых 10000 чалавек. 473 00:24:36,201 --> 00:24:36,700 Добра. 474 00:24:36,700 --> 00:24:40,070 Пытанні аб любым з гэтага? 475 00:24:40,070 --> 00:24:41,892 Так. 476 00:24:41,892 --> 00:24:43,350 Што рабіць, калі вы далі адмоўны лік? 477 00:24:43,350 --> 00:24:44,870 Давайце паглядзім, што адбудзецца. 478 00:24:44,870 --> 00:24:49,320 Такім чынам, у дадзеным канкрэтным колькасці case-- людзей у пакоі, адмоўны. 479 00:24:49,320 --> 00:24:52,580 Ён адхіліў, што таму што тут мы, здараецца, 480 00:24:52,580 --> 00:24:57,180 каб быць апрацоўкі той факт, што калі п менш, чым той, які мы збіраемся яшчэ раз спытаць. 481 00:24:57,180 --> 00:25:01,780 Калі вы паспрабуеце абвясціць масіў адмоўнага памеру, 482 00:25:01,780 --> 00:25:03,950 гэта наогул не працуе. 483 00:25:03,950 --> 00:25:05,570 >> Так давайце паспрабуем. 484 00:25:05,570 --> 00:25:08,000 Давайце ігнараваць усе значэнне яны уваход для п 485 00:25:08,000 --> 00:25:10,571 і проста сказаць Int ўзросце ад адмоўнага. 486 00:25:10,571 --> 00:25:12,410 Давайце паглядзім, калі гэта яшчэ кампілюе. 487 00:25:12,410 --> 00:25:14,100 Я не ўпэўнены. 488 00:25:14,100 --> 00:25:14,920 Няма. 489 00:25:14,920 --> 00:25:18,280 Так, узрост абвешчаны як масіў з адмоўным памерам. 490 00:25:18,280 --> 00:25:22,540 Так авансам яна прызнае масіў не можа быць адмоўнай памеру і адхіляе яго. 491 00:25:22,540 --> 00:25:26,840 Цяпер, калі мы не справіцца гэта рабеце-той час цыкл правільна, 492 00:25:26,840 --> 00:25:28,810 калі мы не правяралі калі п менш, чым 1-- 493 00:25:28,810 --> 00:25:32,690 Скажам, мы проста гэтага не было наогул 494 00:25:32,690 --> 00:25:35,940 і замест гэтага мы проста захапіць цэлае. 495 00:25:35,940 --> 00:25:40,710 Незалежна ад таго, што лік з'яўляецца, мы аб'яўляем масіў памеру. 496 00:25:40,710 --> 00:25:44,250 >> Такім чынам, кампілятар не можа магчыма, у цяперашні час скардзяцца. 497 00:25:44,250 --> 00:25:48,780 Калі я скампіляваць this-- так што не магу скардзіцца, 498 00:25:48,780 --> 00:25:51,480 таму што ён не можа ведаць, што я збіраецца ўвесці адмоўны лік, 499 00:25:51,480 --> 00:25:52,550 якія маглі б быць несапраўднымі. 500 00:25:52,550 --> 00:25:54,633 Для ўсіх ён ведае, я мог бы ўвесці станоўчае лік, 501 00:25:54,633 --> 00:25:56,000 якая выдатна дзейнічае. 502 00:25:56,000 --> 00:26:01,090 Так я ўяўляю сабе, калі я ўваходжу адмоўны 1 людзі ў пакоі, памылкі сегментацыі. 503 00:26:01,090 --> 00:26:06,040 >> Так, добра. 504 00:26:06,040 --> 00:26:13,160 Так давайце дадамо гэта назад толькі трымаць яго, што ён першапачаткова быў. 505 00:26:13,160 --> 00:26:15,640 Так што ўзрост. 506 00:26:15,640 --> 00:26:18,120 Цяпер, калі я хачу, каб паспрабаваць адмоўнае age-- так што давайце 507 00:26:18,120 --> 00:26:19,710 кажуць, што пяць чалавек у пакоі. 508 00:26:19,710 --> 00:26:23,180 Узрост чалавека нумар адзін адмоўны 4, чалавек тры 509 00:26:23,180 --> 00:26:26,500 роўная нуля, чалавек three-- ОК. 510 00:26:26,500 --> 00:26:29,850 Дык вось, праз год, чалавек лік можна будзе адмоўным 3 гадоў. 511 00:26:29,850 --> 00:26:32,830 Так, верагодна, не мае сэнсу. 512 00:26:32,830 --> 00:26:37,220 Але гэта толькі таму, што, гледзячы на код усё, што мы робім 513 00:26:37,220 --> 00:26:40,260 просіць GetInt. 514 00:26:40,260 --> 00:26:44,110 >> Цяпер, калі мы меў Функцыя GetPositiveInt 515 00:26:44,110 --> 00:26:49,690 ці мы проста зрабілі гэта быццам жа час цыклу там, 516 00:26:49,690 --> 00:26:52,340 то гэта будзе працаваць выдатна. 517 00:26:52,340 --> 00:26:54,200 Але ў дадзеным так, мы проста не 518 00:26:54,200 --> 00:26:57,772 здараецца, апрацоўкі адмоўныя значэння. 519 00:26:57,772 --> 00:26:59,147 Любыя іншыя пытанні аб масівах? 520 00:26:59,147 --> 00:27:02,290 521 00:27:02,290 --> 00:27:03,250 ДОБРА. 522 00:27:03,250 --> 00:27:09,380 >> Такім чынам, мы ў цяперашні час разглядаецца масівы. 523 00:27:09,380 --> 00:27:12,500 І мы збіраемся трэба выкарыстоўваць гэта для аргументаў каманднага радка. 524 00:27:12,500 --> 00:27:14,680 Такім чынам, у праблеме ўсталяваць two-- Я ведаю, многія з вас 525 00:27:14,680 --> 00:27:18,040 можа яшчэ працаваць на праблемы набору адзін, а праблема ўсталяваць два ідзе ўверх. 526 00:27:18,040 --> 00:27:22,260 У праблематыка два, вы збіраецеся трэба мець справу з радкамі, масівамі, 527 00:27:22,260 --> 00:27:23,950 і аргументы каманднага радка. 528 00:27:23,950 --> 00:27:26,270 >> Так што аргументы каманднага радка? 529 00:27:26,270 --> 00:27:29,570 Зараз, вы можаце ўбачыць ўніз тут трохі тізер менавіта тое, што 530 00:27:29,570 --> 00:27:30,950 будзе адбываецца. 531 00:27:30,950 --> 00:27:32,950 Мы бачым, INT асноўны, Inc ARGC, Радок ARGV дужкі. 532 00:27:32,950 --> 00:27:34,560 533 00:27:34,560 --> 00:27:38,130 Такім чынам, спачатку давайце паспрабуем інтэрпрэтаваць што гэта спрабуе сказаць. 534 00:27:38,130 --> 00:27:40,800 Цяпер, ОК. 535 00:27:40,800 --> 00:27:44,637 >> Такім чынам, у камандным радку вы павінны быць прывыкнуць да некаторых з гэтых каманд 536 00:27:44,637 --> 00:27:48,580 зараз, і вы, верагодна, працаваць CD у тэрмінале перад. 537 00:27:48,580 --> 00:27:52,100 Так што, калі мы гаворым кд pset1, Вы ведаеце, што гэта павінна 538 00:27:52,100 --> 00:27:55,050 быць змены ў каталог pset1. 539 00:27:55,050 --> 00:27:59,120 >> Зараз звернеце ўвагу, што вы ніколі не напісаў праграму, як гэта раней. 540 00:27:59,120 --> 00:28:03,120 Кожная праграма, што вы напісалі, Вы будзе працаваць, скажам, кропка слэш Марыё, 541 00:28:03,120 --> 00:28:06,779 кропка слэш прагны, а затым яго можа запытаць у вас ўваход. 542 00:28:06,779 --> 00:28:08,570 Дык вось, гэта не тое, што змяніць каталог робіць. 543 00:28:08,570 --> 00:28:12,770 Пры запуску кампакт-дыск, ён не тое сказаць, якой каталог вы хочаце, каб CD у? 544 00:28:12,770 --> 00:28:17,200 Замест гэтага, вы проста кажаце, CD pset1, і ён проста ідзе ў каталог pset1. 545 00:28:17,200 --> 00:28:20,430 >> Такім чынам, падобным чынам у нас ёсць і іншыя прыклады. 546 00:28:20,430 --> 00:28:21,540 зрабіць прывітанне. 547 00:28:21,540 --> 00:28:25,760 Пры запуску зрабіць, гэта не тое сказаць, якая праграма вам хацелася б зрабіць? 548 00:28:25,760 --> 00:28:29,620 Вы проста кажаце, на каманднага радка зрабіць прывітанне. 549 00:28:29,620 --> 00:28:31,060 >> Перасоўванне з'яўляецца яшчэ адным прыкладам. 550 00:28:31,060 --> 00:28:34,840 Гэта той, які мы перасоўванне mario.c файл на адзін каталог. 551 00:28:34,840 --> 00:28:38,060 Так што цяпер мы ведаем, у гэтым прыкладзе мы сапраўды праходзіць два аргументу. 552 00:28:38,060 --> 00:28:42,090 Там гэта mario.c ў якасці першага аргументу, і кропка кропка з'яўляецца другім аргументам. 553 00:28:42,090 --> 00:28:46,140 А потым, калі вы запускаеце зрабіць, вам бачыць, што на самой справе доўгую каманду line-- 554 00:28:46,140 --> 00:28:50,580 што вельмі доўга каманды друкуецца ў камандным радку. 555 00:28:50,580 --> 00:28:53,590 Так што доўга гэта command-- знаходзіцца ў некалькіх хвілінах яго частка, 556 00:28:53,590 --> 00:28:56,090 але цяпер у нас ёсць тры Аргументы каманднага радка. 557 00:28:56,090 --> 00:28:59,750 Штрихпунктир нуля, прывітанне, і hello.c. 558 00:28:59,750 --> 00:29:03,497 >> Такім чынам, гэтыя каманднага радка аргументы, аргументы 559 00:29:03,497 --> 00:29:05,580 што вы перадаеце на каманднага радка так, каб ён 560 00:29:05,580 --> 00:29:08,680 не павінен быць прапанавана калі вы запусціце праграму. 561 00:29:08,680 --> 00:29:13,090 Гэта будзе расчараванне, калі пры Вы беглі ляск сказаў ён, "ОК, 562 00:29:13,090 --> 00:29:15,630 якія program-- якія Файл вы кампіляцыі? 563 00:29:15,630 --> 00:29:17,010 Hello.c. 564 00:29:17,010 --> 00:29:19,440 Што б Вы сцягі хацеў ўвесці? працяжнік высновы. 565 00:29:19,440 --> 00:29:21,190 Што б вы хацелі файл будзе называцца? 566 00:29:21,190 --> 00:29:21,690 добры дзень. 567 00:29:21,690 --> 00:29:25,290 Не, вы проста запусціце ляск працяжнік аб прывітанне hello.c. 568 00:29:25,290 --> 00:29:28,820 >> Так, аглядаючыся назад на гэта. 569 00:29:28,820 --> 00:29:32,920 Цяпер argc-- ARGC з'яўляецца разлічвае аргумент. 570 00:29:32,920 --> 00:29:36,620 Гэты лік каманднага радка Аргументы ўступіла ў камандным радку. 571 00:29:36,620 --> 00:29:39,720 Ну, тэхнічна argv-- Клінава выступае за вектарам, 572 00:29:39,720 --> 00:29:41,460 які ў асноўным азначае масіў. 573 00:29:41,460 --> 00:29:42,680 Але вы можаце ігнараваць гэта. 574 00:29:42,680 --> 00:29:47,540 Argv-- ў нас ёсць радок ARGV, так радок ARGV дужкі. 575 00:29:47,540 --> 00:29:50,150 Так што гэта яшчэ адна форма дужкі вы яшчэ не бачылі раней. 576 00:29:50,150 --> 00:29:52,300 Такім чынам, мы бачылі кранштэйны абазначэння, калі мы сказалі, 577 00:29:52,300 --> 00:29:53,970 як, радок з роўная Zamyla. 578 00:29:53,970 --> 00:29:56,910 з кранштэйнам 0 доступ да Z. сімвалаў 579 00:29:56,910 --> 00:30:00,720 >> Мы таксама бачылі, калі дужкі мы сказалі INT ўзрост дужкі 5. 580 00:30:00,720 --> 00:30:03,160 Гэта абвешчаны масіў памерам 5. 581 00:30:03,160 --> 00:30:06,280 Дык вось версія Кранштэйны мы раней не бачылі. 582 00:30:06,280 --> 00:30:09,630 Так што гэта свайго роду радкі ARGV, што будзе цалкам знаёмыя 583 00:30:09,630 --> 00:30:12,050 што было б проста радок. 584 00:30:12,050 --> 00:30:14,520 Цяпер дужкі паказваюць што гэта масіў. 585 00:30:14,520 --> 00:30:19,920 Так радок ARGV дужкі сродкі што ARGV масіў радкоў. 586 00:30:19,920 --> 00:30:22,540 Цяпер тэхнічна радок гэта масіў знакаў. 587 00:30:22,540 --> 00:30:26,400 Так гэта цяпер масіў з масіва знакаў. 588 00:30:26,400 --> 00:30:31,490 Але гэта значна лягчэй думаць аб гэта як проста масіў радкоў. 589 00:30:31,490 --> 00:30:34,900 >> Дык чаму можа дужкі быць пустым? 590 00:30:34,900 --> 00:30:38,170 Як, чаму мы не можам казаць, Кранштэйны 5, кранштэйн н? 591 00:30:38,170 --> 00:30:40,700 592 00:30:40,700 --> 00:30:41,200 Так. 593 00:30:41,200 --> 00:30:43,731 594 00:30:43,731 --> 00:30:44,230 Так. 595 00:30:44,230 --> 00:30:46,396 Мы не ведаем, колькі Ўваходы Ёсць збіраецца быць. 596 00:30:46,396 --> 00:30:53,560 Так што, калі мы паглядзім на ляск напрыклад, мы гаворым пра ляск працяжнік прывітанне hello.c. 597 00:30:53,560 --> 00:30:56,710 У дадзеным канкрэтным выпадку, адбудзецца у тры аргументы каманднага радка. 598 00:30:56,710 --> 00:31:00,522 І так brackets-- мы ўбачым у секунду гэта не будзе тры. 599 00:31:00,522 --> 00:31:01,730 Гэта тэхнічна было б чатыры. 600 00:31:01,730 --> 00:31:04,030 Але кранштэйны, мы б скажам, ёсць тры. 601 00:31:04,030 --> 00:31:08,220 Але цяпер, калі мы глядзелі на хаду mario.c кропка кропка, дужкі 602 00:31:08,220 --> 00:31:09,760 мы хацелі б паставіць два ў іх. 603 00:31:09,760 --> 00:31:12,884 >> І ёсць шмат каманд, якія мець пераменны лік каманднага радка 604 00:31:12,884 --> 00:31:13,620 аргументы. 605 00:31:13,620 --> 00:31:17,430 Так што гэтая версія Кранштэйны пазначэнне паказвае 606 00:31:17,430 --> 00:31:20,820 што ARGV масіў радкоў. 607 00:31:20,820 --> 00:31:24,360 Але мы не ведаем, колькі радкі ў гэтым масіве. 608 00:31:24,360 --> 00:31:27,090 І, як мы ведаем, як тое шмат радкоў у масіве? 609 00:31:27,090 --> 00:31:28,870 Вось ўвесь сэнс ARGC. 610 00:31:28,870 --> 00:31:32,300 ARGC распавядае нам, як доўга ARGV ёсць. 611 00:31:32,300 --> 00:31:36,500 >> Такім чынам, апошняя рэч, каб трымаць у розум, што, тэхнічна, 612 00:31:36,500 --> 00:31:40,820 сама каманда лічыцца адным з аргументаў каманднага радка. 613 00:31:40,820 --> 00:31:45,330 Так кд pset1, ёсць два Аргументы каманднага радка. 614 00:31:45,330 --> 00:31:50,260 Праграма сама па сабе, CD, а затым фактычны аргумент яго частка, pset1. 615 00:31:50,260 --> 00:31:54,490 Любая праграма, што вы напісалі да гэтага часу была адной каманднага радка argument-- кропка 616 00:31:54,490 --> 00:31:55,320 слэш Марыё. 617 00:31:55,320 --> 00:31:57,350 Гэта адзіны аргумент каманднага радка. 618 00:31:57,350 --> 00:32:00,900 >> Так што цяпер, гледзячы на ​​ляскам працяжнік аб прывітанне hello.c. 619 00:32:00,900 --> 00:32:01,905 Так што 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 Так ARGC 4. 623 00:32:08,140 --> 00:32:12,140 Ляск, так ARGV кранштэйн 0 ляск. 624 00:32:12,140 --> 00:32:15,630 ARGV кранштэйн 1 працяжнік 0. 625 00:32:15,630 --> 00:32:21,870 ARGV кранштэйн 2 прывітанне, і ARGV кранштэйны 3 hello.c. 626 00:32:21,870 --> 00:32:26,813 Такім чынам, пытанні па гэтым, і тады мы паглядзець на некаторых праграмных прыкладаў. 627 00:32:26,813 --> 00:32:29,460 628 00:32:29,460 --> 00:32:30,480 >> ДОБРА. 629 00:32:30,480 --> 00:32:36,260 Такім чынам, мы будзем глядзець на hello3.c. 630 00:32:36,260 --> 00:32:41,890 Такім чынам, гэта павінна быць знаёма з адзін з першых прыкладаў гр 631 00:32:41,890 --> 00:32:45,800 мы былі, дзе мы б проста сказаць, прывітанне свету, але цяпер гэта з'яўляецца больш агульным. 632 00:32:45,800 --> 00:32:52,300 Дык вось, мы гаворым прывітанне % S зваротны слеш н ARGV кранштэйн 1. 633 00:32:52,300 --> 00:32:57,440 Notice-- так да гэтага часу гэта з'яўляецца што мой шаблон файла выглядае. 634 00:32:57,440 --> 00:33:01,800 Я быў Int асноўны (пустэчу), і то я б зрабіць што-то ў галоўнай функцыі. 635 00:33:01,800 --> 00:33:05,100 Цяпер замест гэтага, як толькі мы пачынаем справу з аргументамі каманднага радка, 636 00:33:05,100 --> 00:33:07,890 мы павінны канстатаваць іншая форма асноўнай. 637 00:33:07,890 --> 00:33:11,930 >> Так, гледзячы на ​​hello3 зноў, галоўным будзе 638 00:33:11,930 --> 00:33:15,990 ўзяць два аргументу Int now-- ARGC, колькасць аргументаў каманднага радка, 639 00:33:15,990 --> 00:33:20,970 і радок ARGV дужках, фактычнае струны ўступілі ў камандным радку. 640 00:33:20,970 --> 00:33:26,560 Так што я збіраюся змяніць, што шаблон адлюстраваць гэты факт. 641 00:33:26,560 --> 00:33:29,060 Зараз, калі вы пішаце праграма, калі вы не 642 00:33:29,060 --> 00:33:33,720 трэба прадпрымаць ніякіх каманднага радка Аргументы, а затым проста выкарыстоўваць Int асноўны (пустэчу). 643 00:33:33,720 --> 00:33:37,070 Але цяпер, калі вы пішаце Праграмы аргумент каманднага радка, якія 644 00:33:37,070 --> 00:33:40,350 Вы збіраецеся рабіць для задачы ўсталяваць two-- так што зараз, што вы працуеце 645 00:33:40,350 --> 00:33:42,630 праграмы, якія трэба прыняць Аргументы каманднага радка, 646 00:33:42,630 --> 00:33:45,250 Вы павінны мець асноўныя з гэтай формы. 647 00:33:45,250 --> 00:33:51,290 >> Так here-- гэта вялікі выкарыстанне аргументу каманднага радка. 648 00:33:51,290 --> 00:33:54,100 Так друку ARGV 1. 649 00:33:54,100 --> 00:33:59,180 ОК так што давайце скампіляваць і запусціць гэтую праграму. 650 00:33:59,180 --> 00:34:02,440 Зрабіць hello3. 651 00:34:02,440 --> 00:34:03,570 Кампіляцыя. 652 00:34:03,570 --> 00:34:06,870 Кропка слэш hello3. 653 00:34:06,870 --> 00:34:08,920 І скажам, "Боб". 654 00:34:08,920 --> 00:34:10,760 Прывітанне Роб. 655 00:34:10,760 --> 00:34:14,940 Калі я кажу "прывітанне" Марыя, Марыя прывітанне. 656 00:34:14,940 --> 00:34:15,719 Прывітанне Марыя. 657 00:34:15,719 --> 00:34:18,639 Ханна да гэтага часу гаворыць, "прывітанне Марыя, "таму што я не 658 00:34:18,639 --> 00:34:21,340 рабіць што-небудзь з нашай ARGV 2. 659 00:34:21,340 --> 00:34:22,590 ARGV 2 зараз будзе "Хана". 660 00:34:22,590 --> 00:34:25,030 ARGC б 3. 661 00:34:25,030 --> 00:34:27,735 Што рабіць, калі я гэта зрабіў? 662 00:34:27,735 --> 00:34:31,980 663 00:34:31,980 --> 00:34:34,679 Так прывітанне нуль. 664 00:34:34,679 --> 00:34:38,760 >> Ён коратка закрануў тым, што, тэхнічна, GetString 665 00:34:38,760 --> 00:34:42,429 можа вярнуцца NULL, але мы атрымліваем нашмат больш у тое, што нуль ёсць на самай справе. 666 00:34:42,429 --> 00:34:47,449 Але прыняць яго ў якасці пытання Тое, што, як правіла, не дрэнна. 667 00:34:47,449 --> 00:34:50,179 Мы зрабілі нешта няправільна, калі гэта друк "прывітанне нуля." 668 00:34:50,179 --> 00:34:52,179 І па гэтай прычыне мы зрабілі нешта не так is-- добра, 669 00:34:52,179 --> 00:34:56,179 калі я бег кропка слэш hello3, ARGC быў 1. 670 00:34:56,179 --> 00:34:59,680 Значыць, даўжыня ARGV было 1. 671 00:34:59,680 --> 00:35:05,110 Калі масіў мае даўжыню 1, сапраўдныя толькі індэкс роўны нулю. 672 00:35:05,110 --> 00:35:08,550 І вось ARGV 1 знаходзіцца за межамі дыяпазон гэтага масіва. 673 00:35:08,550 --> 00:35:13,410 Гэта было падобна на раней, калі я паспрабаваў для захоўвання 6 за межамі канца масіва. 674 00:35:13,410 --> 00:35:18,100 Так што я спрабую атрымаць доступ да сёе- за межамі пунктах ARGV, 675 00:35:18,100 --> 00:35:21,340 і мы атрымліваем нуль. 676 00:35:21,340 --> 00:35:24,360 >> Такім чынам, лепшая версія гэта, паляпшэнне, 677 00:35:24,360 --> 00:35:27,010 відавочна праверкі ARGC. 678 00:35:27,010 --> 00:35:33,580 Так што, калі ARGC роўны 2, гэта азначае, што мы беглі нешта накшталт кропка слэш hello3 Адзежа. 679 00:35:33,580 --> 00:35:36,840 І ён будзе друкаваць "прывітанне Роб." 680 00:35:36,840 --> 00:35:39,850 Калі ARGC ня роўна 2, то гэта проста будзе 681 00:35:39,850 --> 00:35:42,560 ігнараваць усё, што вы паклалі у аргуменце каманднага радка 682 00:35:42,560 --> 00:35:43,960 у якасці аргументаў каманднага радка. 683 00:35:43,960 --> 00:35:47,168 Ці, калі вы не кладзі на ўсіх, гэта проста хачу, каб ігнараваць і проста сказаць, 684 00:35:47,168 --> 00:35:47,960 "прывітанне вам." 685 00:35:47,960 --> 00:35:51,490 >> Так складанні гэтага. 686 00:35:51,490 --> 00:35:54,500 Зрабіць hello4. 687 00:35:54,500 --> 00:35:56,790 І працуе hello4. 688 00:35:56,790 --> 00:36:00,010 Запуск гэта так, што павінна быць надрукавана? 689 00:36:00,010 --> 00:36:01,330 "Прывітанне табе." 690 00:36:01,330 --> 00:36:02,810 Прывітанне вам. 691 00:36:02,810 --> 00:36:05,870 Што пра hello4 Адзежа? 692 00:36:05,870 --> 00:36:06,950 "Прывітанне Роб." 693 00:36:06,950 --> 00:36:10,580 І, нарэшце, прывітанне Роб Марыя проста "прывітанне Вы" зноў, 694 00:36:10,580 --> 00:36:13,677 таму што вы сапраўды не ўвайсці тое, што ён чакаў. 695 00:36:13,677 --> 00:36:15,510 Вы ўвялі некалькі імёнаў чым гэта магло звяртацца, 696 00:36:15,510 --> 00:36:19,500 так што проста дэфолт прывітання вы паводзіны. 697 00:36:19,500 --> 00:36:23,040 Так пытанні па гэтай нагоды? 698 00:36:23,040 --> 00:36:26,290 Або аргументы каманднага радка? 699 00:36:26,290 --> 00:36:28,690 >> Такім чынам, прымаючы паглядзім на яшчэ пара прыкладаў выкарыстання 700 00:36:28,690 --> 00:36:34,230 каманднага радка arguments-- у першую чаргу мы ARGV працяжнік 1 кропка C. 701 00:36:34,230 --> 00:36:38,510 Таму каментары аддаць тое, што гэтая праграма павінна рабіць. 702 00:36:38,510 --> 00:36:42,460 Але звярніце ўвагу, гэта now-- цыкл, гэта сапраўды адпавядае шаблоне 703 00:36:42,460 --> 00:36:43,390 Я казаў раней. 704 00:36:43,390 --> 00:36:46,240 Мы проста апынуліся выкарыстоўваючы ARGC замест п. 705 00:36:46,240 --> 00:36:48,880 Цяпер ARGC сапраўды п. 706 00:36:48,880 --> 00:36:51,260 Гэта даўжыня масіва ARGV. 707 00:36:51,260 --> 00:36:59,600 Так будуць ітэрацыі па ARGV Масіў Printf-кі кожнага значэння ARGV. 708 00:36:59,600 --> 00:37:04,730 >> Так што, калі я магу зрабіць гэта. 709 00:37:04,730 --> 00:37:08,232 Зрабіць ARGV 1. 710 00:37:08,232 --> 00:37:09,940 Гэта складае. 711 00:37:09,940 --> 00:37:11,620 Кропка слэш ARGV 1. 712 00:37:11,620 --> 00:37:15,530 Проста працуе гэта, друк кропка слэш ARGV 1 713 00:37:15,530 --> 00:37:18,500 так што гэта быў адзіны каманднага радка argument-- назва праграмы. 714 00:37:18,500 --> 00:37:22,080 Там заўсёды будзе меры: ARGC не можа быць менш, чым адзін, 715 00:37:22,080 --> 00:37:25,910 так як заўсёды будзе, па меншай меры быць імя праграмы для запуску. 716 00:37:25,910 --> 00:37:32,040 Так ARGV 1 Роб будзе друкаваць ARGV 1 а затым на новай лініі "Боб". 717 00:37:32,040 --> 00:37:36,350 >> Такім чынам, у першай ітэрацыі з гэтага цыклу, я гэта 0. 718 00:37:36,350 --> 00:37:39,090 ARGV 0 назва праграмы. 719 00:37:39,090 --> 00:37:40,010 Кропка слэш ARGV 1. 720 00:37:40,010 --> 00:37:43,770 А потым ARGV 1 мая першая Аргумент каманднага радка, якая Роб. 721 00:37:43,770 --> 00:37:45,920 На дадзены момант, мы роўныя ARGC. 722 00:37:45,920 --> 00:37:48,210 Мы вырвацца з пятлі, і мы зрабілі. 723 00:37:48,210 --> 00:37:53,940 Так што гэта будзе працаваць для любога Колькасць аргументаў каманднага радка. 724 00:37:53,940 --> 00:37:58,550 Звярніце ўвагу, што друкуе ARGV 0, ARGV 1, 2 ARGV, ARGV 3, 4 ARGV. 725 00:37:58,550 --> 00:38:00,150 І няма ARGV 5. 726 00:38:00,150 --> 00:38:01,460 ARGC роўная 5. 727 00:38:01,460 --> 00:38:06,960 Такім чынам, у argc-- на я роўная 5, мы вырвацца з пятлі. 728 00:38:06,960 --> 00:38:07,950 ДОБРА. 729 00:38:07,950 --> 00:38:11,315 Так што пытанні аб перш чым мы разгледзім больш складаны прыклад? 730 00:38:11,315 --> 00:38:14,190 731 00:38:14,190 --> 00:38:16,860 >> Так ARGV 2. 732 00:38:16,860 --> 00:38:17,830 Добра. 733 00:38:17,830 --> 00:38:20,610 Такім чынам, мы па-ранейшаму друку аргументы каманднага радка. 734 00:38:20,610 --> 00:38:23,170 Але цяпер у нас ёсць заўважыце укладзены цыкл. 735 00:38:23,170 --> 00:38:24,670 Так што гэта робяць? 736 00:38:24,670 --> 00:38:28,430 Такім чынам, першы цыкл робіць менавіта тое, што ён рабіў раней. 737 00:38:28,430 --> 00:38:30,950 Мы па-ранейшаму цыкл па кожны аргумент каманднага радка, 738 00:38:30,950 --> 00:38:34,260 але цяпер гэта другое loop-- мы ў Таксама бачыў нешта падобнае раней. 739 00:38:34,260 --> 00:38:38,600 Калі ён быў перабор Zamyla раздрукоўкі Z-A-M-Y-L-A. 740 00:38:38,600 --> 00:38:44,816 Такім чынам, гэта другі контур для Int J роўная 0, п роўная STRLEN з ARGV кранштэйна I. 741 00:38:44,816 --> 00:38:49,170 >> Так давайце спачатку думаць the-- давайце ісці праз. 742 00:38:49,170 --> 00:38:53,560 Давайце падумаем, што кампутар будзе рабіць, калі я пабег гэтую праграму, як толькі кропка 743 00:38:53,560 --> 00:38:56,030 скараціць ARGV працяжнік 2. 744 00:38:56,030 --> 00:39:03,590 Так што, калі я пабег гэты код, а затым ARGC будзе роўны 1. 745 00:39:03,590 --> 00:39:07,050 І радок argv-- ёсць толькі будзе адзін індэкс ў ARGV, 746 00:39:07,050 --> 00:39:12,370 і што будзе роўная кропка скараціць ARGV 2-- назва праграмы. 747 00:39:12,370 --> 00:39:19,170 >> ОК, так што зараз я роўная 0, я менш, чым 1, я плюс плюс для INT J роўная 0, 748 00:39:19,170 --> 00:39:23,880 п роўная STRLEN з ARGV кранштэйна 0, так што ў першая ітэрацыя гэтага цыклу. ARGV 749 00:39:23,880 --> 00:39:27,250 Кранштэйны 0 кропка слэш ARGV 2. 750 00:39:27,250 --> 00:39:29,320 Так што даўжыня гэтага радка? 751 00:39:29,320 --> 00:39:32,480 Ну, падсечна кропка A-R-G-V працяжнік 2. 752 00:39:32,480 --> 00:39:35,020 Так StrLen таго, што будзе 8. 753 00:39:35,020 --> 00:39:37,500 Так J роўная 0, п роўная 8. 754 00:39:37,500 --> 00:39:39,530 Пакуль J менш 8, J ++. 755 00:39:39,530 --> 00:39:44,080 І з гэтым мы ідзем, каб быць друк адзін знак, які 756 00:39:44,080 --> 00:39:47,350 з'яўляецца ARGV кранштэйны кранштэйны я J. 757 00:39:47,350 --> 00:39:49,826 >> Такім чынам, толькі я нуль. 758 00:39:49,826 --> 00:39:51,700 Мы па-ранейшаму ёсць толькі адзін аргумент каманднага радка. 759 00:39:51,700 --> 00:39:53,890 У гэтым першай ітэрацыі з цыкл, мы 760 00:39:53,890 --> 00:39:56,950 будзе друк ARGV кранштэйны кранштэйны 0 0. 761 00:39:56,950 --> 00:39:58,325 І тады J будзе павялічвацца. 762 00:39:58,325 --> 00:40:01,650 І мы збіраемся друку ARGV кранштэйны кранштэйны 1 0. 763 00:40:01,650 --> 00:40:04,150 А потым ARGV кранштэйны кранштэйны 0 2. 764 00:40:04,150 --> 00:40:09,030 >> Так што гэта наша першая сустрэча шматмерных масіваў. 765 00:40:09,030 --> 00:40:12,770 Памятаеце раней, што я сказаў, што ARGV тэхнічна 766 00:40:12,770 --> 00:40:15,950 масіў масіваў знакаў. 767 00:40:15,950 --> 00:40:24,360 Дык вось, калі я сказаў нешта накшталт Радок з роўная ARGV кранштэйн I, 768 00:40:24,360 --> 00:40:29,590 і тады я сказаў, з кранштэйн J, гэта будзе дасягнення тое ж самае. 769 00:40:29,590 --> 00:40:31,960 Зараз, вы раней не бачыў з кранштэйна J. 770 00:40:31,960 --> 00:40:36,680 Вось толькі атрымаць доступ да J-й Характар ​​гэтага радка. 771 00:40:36,680 --> 00:40:48,010 Так з гэтым, мы атрыманне J-й характар ​​я-я ARGV. 772 00:40:48,010 --> 00:40:51,450 >> Так што, у канчатковым рахунку гэта павінна выхад? 773 00:40:51,450 --> 00:40:53,210 Зрабіць ARGV 2. 774 00:40:53,210 --> 00:40:54,730 Гэта складае. 775 00:40:54,730 --> 00:40:56,340 Кропка слэш ARGV 2. 776 00:40:56,340 --> 00:41:03,790 "Роб Марыя Хана", і даць нам нумар. 777 00:41:03,790 --> 00:41:07,050 Такім чынам, мы бачым, што гэта выснова кропка на сваёй уласнай лініі і слэш 778 00:41:07,050 --> 00:41:08,920 па ўласнай лініяй і на сваёй уласнай лініі. 779 00:41:08,920 --> 00:41:11,260 Гэта раздрукоўкі сябар індывідуальны характар 780 00:41:11,260 --> 00:41:12,950 кожнага аргументу каманднага радка. 781 00:41:12,950 --> 00:41:15,960 І тады паміж імі, з гэтай новай лініі 782 00:41:15,960 --> 00:41:19,380 Мы друкуем тут, у паміж імі будзе друкаваць новы радок. 783 00:41:19,380 --> 00:41:24,540 >> Так што гэта падобна на папярэдні ARGV працяжнік 1, 784 00:41:24,540 --> 00:41:26,459 якія друкуюцца кожны Аргумент каманднага радка, 785 00:41:26,459 --> 00:41:28,500 але зараз мы друку аргументы каманднага радка 786 00:41:28,500 --> 00:41:31,950 а затым ітэрацыі праз кожны характар ​​кожнага аргументу каманднага радка 787 00:41:31,950 --> 00:41:35,400 каб атрымаць гэтую выснову. 788 00:41:35,400 --> 00:41:36,870 ДОБРА? 789 00:41:36,870 --> 00:41:40,570 Так пытанні па гэтай нагоды? 790 00:41:40,570 --> 00:41:45,130 >> Адна рэч, каб адзначыць, што каманднага радка arguments-- 791 00:41:45,130 --> 00:41:49,990 такім чынам, яны падзяляюцца прабеламі, як вы, натуральна, чакаць, каб яны. 792 00:41:49,990 --> 00:41:53,050 Такім чынам, радок можа ўтрымліваць прабелы ў ім. 793 00:41:53,050 --> 00:41:57,380 Гэта не супер важна, але калі я хацеў аргумент трэці каманднага радка 794 00:41:57,380 --> 00:42:01,226 мець месца ў гэтым, то я Можна сказаць, што нешта накшталт гэтага. 795 00:42:01,226 --> 00:42:04,470 796 00:42:04,470 --> 00:42:05,550 ДОБРА? 797 00:42:05,550 --> 00:42:12,190 Так што гэта яшчэ толькі ў цяперашні час мае тры каманднага радка arguments-- таксама 4. 798 00:42:12,190 --> 00:42:17,620 Кропка слэш ARGV працяжнік 2, Роб, Марыя, і Ханна агенцтва Bloomberg. 799 00:42:17,620 --> 00:42:18,320 ДОБРА. 800 00:42:18,320 --> 00:42:19,310 Пытанні па гэтай нагоды? 801 00:42:19,310 --> 00:42:22,700 802 00:42:22,700 --> 00:42:24,894 >> Там няма нічога асаблівага аб прабел. 803 00:42:24,894 --> 00:42:27,810 Гэта проста здараецца, што каманднага радка ставіцца сімвал прабела 804 00:42:27,810 --> 00:42:29,226 пра тое, як вы падзеліце кожны аргумент. 805 00:42:29,226 --> 00:42:32,048 806 00:42:32,048 --> 00:42:33,000 Добра. 807 00:42:33,000 --> 00:42:39,950 Такім чынам Праблема набор two-- вы збіраецеся быць 808 00:42:39,950 --> 00:42:43,240 гледзячы на ​​шыфраванне з сакрэтным ключом. 809 00:42:43,240 --> 00:42:47,700 Так, аналагічнай той, што, напрыклад мы бачылі з Калядная гісторыя, 810 00:42:47,700 --> 00:42:52,840 Вы будзеце ажыццяўленні некаторых алгарытмы, якія, улічваючы паведамленне, 811 00:42:52,840 --> 00:42:55,560 Вы збіраецеся быць у стане для шыфравання, што паведамленне 812 00:42:55,560 --> 00:42:58,730 што толькі хто-то з гэтай таямніцы Ключ, з той дэкодэра кольцы, 813 00:42:58,730 --> 00:43:01,090 павінны быць у стане расшыфраваць. 814 00:43:01,090 --> 00:43:04,839 >> Так што гэта стандартнае выданне. 815 00:43:04,839 --> 00:43:07,130 Вы будзеце рэалізацыі дзве розныя версіі. 816 00:43:07,130 --> 00:43:09,620 Калі вам здарыцца, каб зірнуць у хакер edition-- зараз, 817 00:43:09,620 --> 00:43:12,600 мы збіраемся, каб даць Вы радок, як гэта, 818 00:43:12,600 --> 00:43:15,240 які ўяўляе сабой зашыфраваны пароль. 819 00:43:15,240 --> 00:43:19,990 Так ваша мэта, каб высветліць, што расшыфраваны пароль. 820 00:43:19,990 --> 00:43:26,950 Зараз гэта сапраўды хаў паролі захоўваюцца ў многіх кампутарах, 821 00:43:26,950 --> 00:43:31,290 і ён проста захоўвае гэта выпадковая паслядоўнасць знакаў. 822 00:43:31,290 --> 00:43:34,440 Вы павінны высветліць, як атрымаць ад гэтай выпадковай радка знакаў 823 00:43:34,440 --> 00:43:36,140 да таго, што зыходны пароль быў. 824 00:43:36,140 --> 00:43:39,060 825 00:43:39,060 --> 00:43:43,290 >> І, нарэшце, пасля гэтага Праблема набор, вы павінны 826 00:43:43,290 --> 00:43:46,100 быць у стане зразумець, што гэта значыць. 827 00:43:46,100 --> 00:43:51,650 Такім чынам, вы даведаецеся, як расшыфраваць гэта свайго роду выпадковай радка. 828 00:43:51,650 --> 00:43:56,390 Сапраўды гэтак жа, калі вы памятаеце, ад тыдня 0, вы, магчыма, бачылі гэта URL-адрас. 829 00:43:56,390 --> 00:44:00,210 І вы павінны быць у стане расшыфраваць гэта ў канчатковым выніку. 830 00:44:00,210 --> 00:44:04,810 Вы не маглі б быць шчаслівыя, калі вам расшыфраваць яе і націсніце на спасылку. 831 00:44:04,810 --> 00:44:05,700 Добра. 832 00:44:05,700 --> 00:44:06,591 Вось і ўсё на сёння. 833 00:44:06,591 --> 00:44:12,095 Так бачыць вас на наступным тыдні! 834 00:44:12,095 --> 00:44:18,315 >> [Электронны прайгравання музыкі] 835 00:44:18,315 --> 00:47:15,619