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 Дејвид MALAN: Во ред. 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 ROB BOWDEN: И, се разбира, тогаш ние треба да се направи забава на фактот 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 >> [НЕСРЕЌА] 28 00:01:21,880 --> 00:01:23,460 >> - [Мајмун ЗВУЦИ] 29 00:01:23,460 --> 00:01:27,540 >> -на Друга група се луѓе кои не даваат [bleep]. 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 >> -Nobody Се грижи за вас. 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 >> -We'll Сите се вкочанети вратови од гледање горе. 49 00:02:26,530 --> 00:02:29,800 >> -И Никој нема да седат во предниот ред некогаш повторно. 50 00:02:29,800 --> 00:02:37,170 >> -George Лукас ќе се ре-издание на ѕвездите Војни 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 >> -You're Непредвидлива. 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 >> [END репродукција] 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 ROB BOWDEN: --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 мапи на букви Х, број 2 мапи на писмото 73 00:04:09,120 --> 00:04:11,630 Ј неверојатно тешко да не го прескокнете напред. 74 00:04:11,630 --> 00:04:16,100 Писмо 2 карти на J. Број 3 мапи Д. Значи 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 вклучете ТБС во буквално секое време на Бадник, 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 -Listen Утревечер со заклучните авантура 97 00:05:20,440 --> 00:05:22,540 на Црното пиратски брод на. 98 00:05:22,540 --> 00:05:25,460 Сега, тоа е време за Тајна порака на Annie 99 00:05:25,460 --> 00:05:28,620 за вас членовите на Тајната круг. 100 00:05:28,620 --> 00:05:32,370 Се сеќавам деца, само членови Тајната на Кругот на Annie 101 00:05:32,370 --> 00:05:34,880 може да го декодира тајна порака на Annie. 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 >> -OH, Пјер е во силен глас вечерва. 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 Б! 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 S. Тоа доаѓа полесно сега. 128 00:06:25,880 --> 00:06:28,400 U. 25. 129 00:06:28,400 --> 00:06:30,528 Тоа е за Р. 130 00:06:30,528 --> 00:06:31,278 -Come Натаму, Ralphie! 131 00:06:31,278 --> 00:06:31,861 Јас сум Мора да се оди! 132 00:06:31,861 --> 00:06:33,182 -I'll Бидат во право надолу, ма! 133 00:06:33,182 --> 00:06:36,038 Gee факир. 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 >> -I'll Бидат во право надвор, за плачење гласно! 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 >> [END репродукција] 163 00:07:35,890 --> 00:07:39,650 >> ROB BOWDEN: Значи тоа е како 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 Затоа, ако тоа се чуваат во серијата "ОК", а потоа 174 00:08:01,995 --> 00:08:05,860 ако се рече на заградата 0, тоа би укажуваат на капитал З. писмото 175 00:08:05,860 --> 00:08:09,790 И ако се рече на заградата 1, дека ќе укажуваат на првите мали букви а, 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, Ш, преку кои ќе траат. 179 00:08:23,220 --> 00:08:28,650 Па ова сега се вклопува во поголема слика на меморијата на вашиот компјутер, вашата RAM меморија. 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 >> ROB BOWDEN: Дин? 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 A-H. 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 на предавања каде што ликовите на сајтот to-- како капитал А карти до 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 мапи to-- јас не знам од врвот на мојата глава. 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 дека ние сме биле користење јас 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 x точка-запирка пред. 327 00:15:54,890 --> 00:16:00,020 Па сега ние може да се види нешто како int x 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 ние се стремиме да се користи n како што бројот на нешто. 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 Значи ова е она низа четири ints ќе изгледа. 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 i изнесува 0. 360 00:17:56,710 --> 00:17:57,940 Јас помалку од n. 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 Значи ова е генерално како ќе ги iterate во текот на речиси секој низа. 365 00:18:20,010 --> 00:18:23,690 Сега се забележи овој вид на објаснува зошто од самиот почеток 366 00:18:23,690 --> 00:18:29,870 немавме за петелки случува за int i е еднакво на 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 >> Откако ќе јамка назад, i е ќе треба да се зголемува до 4. 382 00:19:25,350 --> 00:19:27,770 i веќе не е помал од n, што е 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 Јас може да оди во, промена на коментира, и промена на n. 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 Така што додека тие се внесување на n помалку од 1, 425 00:21:43,102 --> 00:21:45,310 па има мора да биде во Најмалку едно лице во соба. 426 00:21:45,310 --> 00:21:47,407 Како додека тие се внесување на n помалку од 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 години, каде што првиот% i е i плус 1. 440 00:22:40,470 --> 00:22:43,010 Па јас овој индекс е променлива. 441 00:22:43,010 --> 00:22:49,420 А вториот% i се случува да се биде вредност се чуваат во вековите низа плус 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 Ајде да видиме дека ова работи со еден n дека не е еднакво на 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 Па можев да се само како лесно да се н биде 10,000. 467 00:24:16,500 --> 00:24:21,270 Јас сега ќе се наоѓа овде за доста време влегуваат возрасти, но тоа функционира. 468 00:24:21,270 --> 00:24:26,000 >> Па сега во меморијата некаде ние имаат низа на големината 10.000, 469 00:24:26,000 --> 00:24:28,830 па на крајот 40,000 бајти, бидејќи постојат 470 00:24:28,830 --> 00:24:31,222 четири бајти за секоја од тие цели броеви. 471 00:24:31,222 --> 00:24:33,180 Значи има низа на Големина на 10.000 каде што можеме 472 00:24:33,180 --> 00:24:36,201 чување на возраст меѓу овие 10.000 луѓе. 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 што треба да се ракување со фактот дека ако n е помалку од еден ние ќе треба да побара повторно. 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 ако ние не ги проверувала ако n е помалку од 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 Па ако се каже CD 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, тоа не потоа се каже, која папка сакате да се 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 Dot цртичка нула, здраво, а 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 пристапи на З. карактер 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, држач n? 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 CD pset1 така, постојат две аргументите на командната линија. 614 00:31:45,330 --> 00:31:50,260 Програмата во себе, ЦД, а потоа вистинските аргументи дел од неа, 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 Па ова треба да биде запознаен од еден од првите c примери 631 00:32:41,890 --> 00:32:45,800 имавме каде што само би рекол, здраво светот, но сега тоа е повеќе воопшто. 632 00:32:45,800 --> 00:32:52,300 Па еве сме велејќи здраво % s обратна коса црта n 1 argv заградата. 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 да се земе два аргументи now-- int 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 OK, па ајде да ги собере и да ја извршите оваа програма. 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 Dot црта 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 И тоа ќе печати "hello Роб." 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 "hello вас." 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 И, конечно, здраво Роб Марија е само "hello тебе" повторно, 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 па тоа само да се defaulted Здраво сте однесување. 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 точка в. 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 наместо на n. 705 00:36:46,240 --> 00:36:48,880 Сега argc е навистина n. 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 Dot црта argv 1. 712 00:37:11,620 --> 00:37:15,530 Само трчање ова, отпечатоци dot коса црта argv 1 713 00:37:15,530 --> 00:37:18,500 бидејќи тоа беше само за командната линија argument-- името на програмата. 714 00:37:18,500 --> 00:37:22,080 Секогаш ќе има во least-- 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 >> Така што во првата итерација на овој циклус, i е 0. 718 00:37:36,350 --> 00:37:39,090 Argv 0 е името на програмата. 719 00:37:39,090 --> 00:37:40,010 Dot црта 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, argv 2, argv 3, argv 4. 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 Ние сме се уште во текот looping секој аргумент за командната линија, 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, n е еднакво на strlen argv заградата јас. 741 00:38:44,816 --> 00:38:49,170 >> Па ајде прво се размислува за the-- ајде да одиме преку. 742 00:38:49,170 --> 00:38:53,560 Ајде да размислиме што компјутерот ќе направите ако налетав на оваа програма, како само dot 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 и кој ќе биде еднаков на dot црта 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 n е еднакво на 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 Добро, точка црта А-Р-О-В цртичка 2. 752 00:39:32,480 --> 00:39:35,020 Па strlen на која ќе биде 8. 753 00:39:35,020 --> 00:39:37,500 Па ј е еднакво на 0, n е еднакво на 8. 754 00:39:37,500 --> 00:39:39,530 Се додека j е помалку од 8, ѕ ++. 755 00:39:39,530 --> 00:39:44,080 А со тоа и ние ќе треба да биде печатење на еден лик, кој 756 00:39:44,080 --> 00:39:47,350 е argv заградата јас заградата ѕ. 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 А потоа ѕ ќе прираст. 762 00:39:58,325 --> 00:40:01,650 И ние ќе се печат argv заградата 0 заградата 1. 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 заградата јас, 768 00:40:24,360 --> 00:40:29,590 и тогаш реков, на заградата ѕ, овој ќе биде остварување на истото. 769 00:40:29,590 --> 00:40:31,960 Сега, што сум го видел на заградата ѕ порано. 770 00:40:31,960 --> 00:40:36,680 Тоа е само да пристапите на J-ти карактер на овој стринг. 771 00:40:36,680 --> 00:40:48,010 Значи со ова, ние сме добивање на J-ти карактерот на i-тиот 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 Dot црта 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 Dot црта argv алинеја 2, Роб, Марија, и Хана Блумберг. 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