1 00:00:00,000 --> 00:00:00,980 2 00:00:00,980 --> 00:00:04,410 >> [Мусиц плаиинг] 3 00:00:04,410 --> 00:00:11,147 4 00:00:11,147 --> 00:00:12,230 Давид Ј. Малан: У реду. 5 00:00:12,230 --> 00:00:16,440 То је ЦС50, и ово је крај недеље 2. 6 00:00:16,440 --> 00:00:18,480 Дакле, данас, идемо да наставимо изглед 7 00:00:18,480 --> 00:00:21,150 како ми представљају ствари испод хоод-- удаљава 8 00:00:21,150 --> 00:00:23,520 од бројева попут целих и покретном зарезу 9 00:00:23,520 --> 00:00:26,810 и фокусирајући се на жице и на крају још занимљивих програма. 10 00:00:26,810 --> 00:00:30,140 Али ми такође ћемо да погледамо неколико домена специфичне проблемс-- 11 00:00:30,140 --> 00:00:33,620 првог који ће бити укључујући криптографије, 12 00:00:33,620 --> 00:00:36,570 уметност пењања информација, у којој изнад видети овде 13 00:00:36,570 --> 00:00:41,480 је слика радио Орпхан Анние тајна Децодер прстен од прошла. 14 00:00:41,480 --> 00:00:46,490 >> То је заправо врло примитиван облик и дете-пријатељски облик цриптопграпхи 15 00:00:46,490 --> 00:00:50,590 при чему овај прстен има два дискс-- један унутар и један споља. 16 00:00:50,590 --> 00:00:54,740 И окретањем један од оних, можете да у суштини се построје писма као 17 00:00:54,740 --> 00:00:59,520 до З са другим словима као Б до А. Другим речима, 18 00:00:59,520 --> 00:01:03,730 можете буквално да ротирате абецеду, чиме долази са мапирањем из 19 00:01:03,730 --> 00:01:07,820 писма писма, тако да, ако се хтео да пошаље тајну поруку 20 00:01:07,820 --> 00:01:11,820 некоме као Ени, можете да пишете доле своју поруку, а затим окрените 21 00:01:11,820 --> 00:01:15,370 слова, при чему, ако мислите да каже "А," ви кажете уместо тога "Б" 22 00:01:15,370 --> 00:01:17,280 Хоћете да кажете "Б" ви кажете уместо тога "Ц" - 23 00:01:17,280 --> 00:01:20,240 или нешто мало више паметнији него да-- а онда, на крају, 24 00:01:20,240 --> 00:01:24,630 докле год има тај Ени декодер прстен, она може да декодира поруку. 25 00:01:24,630 --> 00:01:28,540 Сада, ви се сећате, у ствари, да је ово је коришћен у веома познат филм који 26 00:01:28,540 --> 00:01:31,140 игра ад наусеум током Божић сезоне. 27 00:01:31,140 --> 00:01:32,650 Хајде да погледамо овде. 28 00:01:32,650 --> 00:01:35,294 29 00:01:35,294 --> 00:01:37,210 Ралпхие ПАРКЕР: "То Бе Познато је да све у свему 30 00:01:37,210 --> 00:01:41,000 да се именује Ралпх Паркер члан Литтле Орпхан Анние Сецрет 31 00:01:41,000 --> 00:01:44,860 Круг и има право на све почасти и бенефиције јавља њу. " 32 00:01:44,860 --> 00:01:47,410 >> Ралпхие ПАРКЕР (приповедања): Потписан Литтле Орпхан Анние. 33 00:01:47,410 --> 00:01:50,070 Потпише, Пјер Андре! 34 00:01:50,070 --> 00:01:51,490 Мастилом. 35 00:01:51,490 --> 00:01:55,494 Почасти и бенефиције, Већ у узрасту од девет. 36 00:01:55,494 --> 00:01:57,402 >> [Мусиц плаиинг] 37 00:01:57,402 --> 00:02:00,470 >> [РАДИО ЦХАТТЕР] 38 00:02:00,470 --> 00:02:01,470 Ралпхие ПАРКЕР: Хајде. 39 00:02:01,470 --> 00:02:02,344 Хајде да завршимо са тим. 40 00:02:02,344 --> 00:02:06,029 Не треба Алл Тхат Јазз О шверцерима и пиратима. 41 00:02:06,029 --> 00:02:08,820 Радио Анноунцер: Слушај сутра ноћ за закључном авантуру 42 00:02:08,820 --> 00:02:11,060 црног гусарског брода. 43 00:02:11,060 --> 00:02:14,740 Сада је време за Анние Тајна порука за вас чланове 44 00:02:14,740 --> 00:02:17,110 Тајне круга. 45 00:02:17,110 --> 00:02:20,700 Запамтите децо, само чланови Анние Сецрет Цирцле 46 00:02:20,700 --> 00:02:23,270 може да декодира Анние је тајну поруку. 47 00:02:23,270 --> 00:02:27,270 >> Запамтите, Анние зависи од вас. 48 00:02:27,270 --> 00:02:30,060 Подесите ваше пинове да Б-2. 49 00:02:30,060 --> 00:02:34,004 Ево Мессаге-- 12, 11, 2-- 50 00:02:34,004 --> 00:02:36,503 Ралпхие ПАРКЕР (приповедања): И сам у свом првом тајном састанку. 51 00:02:36,503 --> 00:02:40,041 Радио Анноунцер: --25, 14, 11, 18, 16-- 52 00:02:40,041 --> 00:02:42,790 Ралпхие ПАРКЕР (приповедања): Ох, Пјер је био у великој гласовном вечерас. 53 00:02:42,790 --> 00:02:46,110 Могао бих рећи да вечерас порука је заиста важно. 54 00:02:46,110 --> 00:02:47,930 >> Радио Анноунцер: --3, 25. 55 00:02:47,930 --> 00:02:49,940 То је порука од Анние лично. 56 00:02:49,940 --> 00:02:52,182 Запамтите, никоме не говори. 57 00:02:52,182 --> 00:02:55,077 >> [Задихан] 58 00:02:55,077 --> 00:02:57,285 Ралпхие ПАРКЕР (приповедања): Деведесет секунди касније, ја сам 59 00:02:57,285 --> 00:03:00,090 у јединој соби у Кућа у којој дечак од девет 60 00:03:00,090 --> 00:03:04,380 могао да седи у приватност и декодирати. 61 00:03:04,380 --> 00:03:04,990 Ах. 62 00:03:04,990 --> 00:03:05,680 "Б" 63 00:03:05,680 --> 00:03:06,524 >> [Смех] 64 00:03:06,524 --> 00:03:08,684 >> Ралпхие ПАРКЕР (приповедања): Отишао сам у другу. 65 00:03:08,684 --> 00:03:09,610 "Е." 66 00:03:09,610 --> 00:03:11,641 Прва реч је "бити". 67 00:03:11,641 --> 00:03:12,140 Да! 68 00:03:12,140 --> 00:03:14,293 Долазило је лакше сада. 69 00:03:14,293 --> 00:03:15,259 "У." 70 00:03:15,259 --> 00:03:16,225 >> [Смех] 71 00:03:16,225 --> 00:03:18,157 >> РАНДИ ПАРКЕР: Ма, хајде, Ралпхие. 72 00:03:18,157 --> 00:03:19,606 Морам да идем! 73 00:03:19,606 --> 00:03:21,538 >> Ралпхие ПАРКЕР: Бићу доле, мама. 74 00:03:21,538 --> 00:03:22,504 Бого мој. 75 00:03:22,504 --> 00:03:25,402 76 00:03:25,402 --> 00:03:31,220 "Т." "О." "Будите сигурни у. "" Будите сигурни да "шта? 77 00:03:31,220 --> 00:03:33,981 Каква је била Литтле Орпхан Анние покушава да каже? "Будите сигурни да" шта? 78 00:03:33,981 --> 00:03:35,522 МАЈКА: Ралпхие, Ранди мора да оде. 79 00:03:35,522 --> 00:03:36,735 Хоћеш ли молим те изаћи? 80 00:03:36,735 --> 00:03:38,190 >> Ралпхие ПАРКЕР: У реду, мама! 81 00:03:38,190 --> 00:03:39,787 Одмах напоље! 82 00:03:39,787 --> 00:03:41,995 Ралпхие ПАРКЕР (приповедања): Ја сам се сад ближе. 83 00:03:41,995 --> 00:03:43,370 Тензија је била страшна. 84 00:03:43,370 --> 00:03:44,794 Шта је то било? 85 00:03:44,794 --> 00:03:47,656 Судбина планете може виси у равнотежи. 86 00:03:47,656 --> 00:03:50,518 >> МАЈКА: Ралпхие, Ранди мора да иде! 87 00:03:50,518 --> 00:03:53,635 >> Ралпхие ПАРКЕР: Ја ћу бити у праву се, забога! 88 00:03:53,635 --> 00:03:55,343 Ралпхие ПАРКЕР (Приповедања): Скоро тамо! 89 00:03:55,343 --> 00:03:56,520 Моји прсти летео! 90 00:03:56,520 --> 00:03:58,500 Мој ум је био челика замка. 91 00:03:58,500 --> 00:03:59,850 Свака пора вибрира. 92 00:03:59,850 --> 00:04:01,806 Је било скоро јасно! 93 00:04:01,806 --> 00:04:02,773 Да! 94 00:04:02,773 --> 00:04:03,273 Да! 95 00:04:03,273 --> 00:04:03,773 Да! 96 00:04:03,773 --> 00:04:04,740 Да! 97 00:04:04,740 --> 00:04:10,250 >> Ралпхие ПАРКЕР: "Будите сигурни да пије своју Овалтине. " 98 00:04:10,250 --> 00:04:10,750 Овалтине? 99 00:04:10,750 --> 00:04:14,864 100 00:04:14,864 --> 00:04:17,539 Бедан Цоммерциал? 101 00:04:17,539 --> 00:04:19,439 >> [Мусиц плаиинг] 102 00:04:19,439 --> 00:04:21,724 >> Ралпхие ПАРКЕР: Курвин син. 103 00:04:21,724 --> 00:04:23,460 >> [Лаугхинг] 104 00:04:23,460 --> 00:04:27,070 >> Давид Ј. Малан: То је, дакле, Осврт на којој криптографије 105 00:04:27,070 --> 00:04:29,880 може бити за ово-А пију из прошла. 106 00:04:29,880 --> 00:04:30,900 Тако брзо најава. 107 00:04:30,900 --> 00:04:33,410 Ако сте слободни ово Петак у 1:15 ПМ и би 108 00:04:33,410 --> 00:04:36,610 воле да нам се придруже на ЦС50 ручак, иду у ову УРЛ адресу овде. 109 00:04:36,610 --> 00:04:38,080 Први дошао, први служе као и обично. 110 00:04:38,080 --> 00:04:41,840 Али током времена, ми ћемо бити сигурни да већина свако ко би желео да учествује 111 00:04:41,840 --> 00:04:43,640 може заказати-мудар. 112 00:04:43,640 --> 00:04:45,170 >> Со Стрингс. 113 00:04:45,170 --> 00:04:47,940 Имамо Замила-- кога сада сте вероватно срео 114 00:04:47,940 --> 00:04:50,750 у проблему Сет 1-- чији име је тако написано. 115 00:04:50,750 --> 00:04:53,570 А претпостављам да сте укуцали њено име у компјутерском програму који је 116 00:04:53,570 --> 00:04:55,710 користите нешто као гетСтринг. 117 00:04:55,710 --> 00:04:57,890 Да би се преузели Те куцање на тастатури, како 118 00:04:57,890 --> 00:05:01,620 идемо о представља стринг, реч, став, 119 00:05:01,620 --> 00:05:03,960 или више слова попут ових овде? 120 00:05:03,960 --> 00:05:06,790 >> Разговарали смо последњи пут Абоут целих бројева и проблеми 121 00:05:06,790 --> 00:05:09,960 који настају са целим преливом и покретном зарезу 122 00:05:09,960 --> 00:05:12,190 и проблеми који настају унутар прецизности. 123 00:05:12,190 --> 00:05:16,080 Са стрингс, ми смо барем имају мало више флексибилности 124 00:05:16,080 --> 00:05:17,970 јер управо стрингс-- у стварном ворлд-- 125 00:05:17,970 --> 00:05:19,790 може бити прилично произвољне дужине. 126 00:05:19,790 --> 00:05:21,055 Прилично кратко, прилично дуго. 127 00:05:21,055 --> 00:05:23,680 Али чак и тада, идемо на да пронађу рачунари могу понекад 128 00:05:23,680 --> 00:05:27,200 понестане меморије и ни меморисање довољно велики низ. 129 00:05:27,200 --> 00:05:30,840 >> Али за сада, почнимо да замислите стринг као нешто у овим кутијама 130 00:05:30,840 --> 00:05:31,340 овде. 131 00:05:31,340 --> 00:05:36,410 Тако шест овакве кутије, од којих сваки представља знак или "Пост." 132 00:05:36,410 --> 00:05:40,646 Тако подсетити да је "знак" - Ц-Х--р-- је један од уграђених типова података у Ц. 133 00:05:40,646 --> 00:05:43,520 И оно што је лепо је да можете да користите такве као грађевински блок, 134 00:05:43,520 --> 00:05:47,880 Слагалица комад, ако хоћете, да се формира већи врста података које ћемо наставити 135 00:05:47,880 --> 00:05:49,410 да распише "стринг". 136 00:05:49,410 --> 00:05:53,650 >> Сада, шта је корисно о размишљању о стварима као што је жице на овај начин? 137 00:05:53,650 --> 00:05:57,720 Па, испада да можемо заправо искористи ову структуру 138 00:05:57,720 --> 00:06:01,420 да стварно приступ појединачних карактера на прилично директан начин. 139 00:06:01,420 --> 00:06:04,099 Идем да иде напред и створити фајл који се зове "стрингзеро.ц," 140 00:06:04,099 --> 00:06:05,765 али га можете назвати како год желите. 141 00:06:05,765 --> 00:06:08,500 И на сајту курса је већ овај пример унапред, 142 00:06:08,500 --> 00:06:10,430 тако да не морате да типа све напоље. 143 00:06:10,430 --> 00:06:13,820 >> И ја ћу ићи напред и први уради маин празнину. 144 00:06:13,820 --> 00:06:15,980 И у року од неколико дана, ћемо почети да задиркује Апарт 145 00:06:15,980 --> 00:06:19,070 оно што је овде празнина, зашто је то инт поред маин, и тако даље. 146 00:06:19,070 --> 00:06:21,180 Али за сада, хајде да наставимо да копирате налепите то. 147 00:06:21,180 --> 00:06:23,455 >> Идем да прогласи стринг зове с. 148 00:06:23,455 --> 00:06:26,920 И ја ћу да се вратим из ГетСтринг без обзира на типове корисник у. 149 00:06:26,920 --> 00:06:29,170 Ово ће бити једноставан Програм, никаква упутства, 150 00:06:29,170 --> 00:06:31,336 Ја ћу само да слепо Очекујем да корисник зна 151 00:06:31,336 --> 00:06:32,600 шта да урадите да то буде једноставно. 152 00:06:32,600 --> 00:06:34,220 >> А сада ћу имати за петљу. 153 00:06:34,220 --> 00:06:37,450 И у мом за петље сам ће имати инт и добија нула. 154 00:06:37,450 --> 00:06:40,660 И ја је, опет, само конвенција, индекс променљива за бројање, 155 00:06:40,660 --> 00:06:42,350 али сам могао да зовем како год хоћу. 156 00:06:42,350 --> 00:06:46,275 Ја ћу да урадим да је мање тхан-- добро Име Замила је дугачак шест слова. 157 00:06:46,275 --> 00:06:48,150 Па ћу напорно код да има за сада. 158 00:06:48,150 --> 00:06:49,730 >> А онда сам ++. 159 00:06:49,730 --> 00:06:53,190 И сада у ових Цурли протеза Ја ћу да урадим принтф, 160 00:06:53,190 --> 00:06:55,460 и желим да одштампате једну лик у исто време. 161 00:06:55,460 --> 00:06:58,227 Па ћу користити% Ц за можда први пут. 162 00:06:58,227 --> 00:07:00,560 А онда желим да одштампате сваки лик на сопственој линији. 163 00:07:00,560 --> 00:07:02,550 Па ћу да ставим Мало бацксласх н тамо. 164 00:07:02,550 --> 00:07:03,640 Цлосе цитат. 165 00:07:03,640 --> 00:07:06,250 >> А сада желим да урадим нешто овде. 166 00:07:06,250 --> 00:07:10,610 Желим да одштампате одређеним словом у низу, 167 00:07:10,610 --> 00:07:13,670 е, као што сам итератинг од нуле на до шест. 168 00:07:13,670 --> 00:07:17,150 Другим речима, желим да одштампате и'тх карактер с. 169 00:07:17,150 --> 00:07:18,420 Сада како да урадим ово? 170 00:07:18,420 --> 00:07:21,550 >> Па налик кутијама у Ова репрезентација овдје, 171 00:07:21,550 --> 00:07:25,560 некако, дочаравају појам бокс слова, можете да урадите да на сличан начин 172 00:07:25,560 --> 00:07:32,630 синтаксички ин Ц једноставно наводећи, Желим да одштампате С: и'тх карактера. 173 00:07:32,630 --> 00:07:35,640 Користећи квадратних заграде на тастатури рачунара 174 00:07:35,640 --> 00:07:38,910 да на САД тастатури су уопштено изнад тастера повратка. 175 00:07:38,910 --> 00:07:42,630 >> Дакле, то није сасвим у реду Ипак, као што сте можда приметили. 176 00:07:42,630 --> 00:07:44,780 Али ја ћу се врсти слепо полако напредују овде. 177 00:07:44,780 --> 00:07:47,020 И ја ћу да урадим да стринг 0. 178 00:07:47,020 --> 00:07:50,860 Али пре него што ово радим, хајде да видимо да ли можемо не може да предвиди неке уобичајене грешке. 179 00:07:50,860 --> 00:07:52,844 Ће ово да састави? 180 00:07:52,844 --> 00:07:54,510 Не, ја недостаје гомилу ствари. 181 00:07:54,510 --> 00:07:55,280 Библиотеке сам чуо. 182 00:07:55,280 --> 00:07:58,480 >> Дакле, који хеадер филес Можда Желим да додам овде? 183 00:07:58,480 --> 00:07:59,205 Да. 184 00:07:59,205 --> 00:08:01,580 >> ПУБЛИКА: Треба ти Стандардни И / О [неразумљиво] 185 00:08:01,580 --> 00:08:02,663 >> Давид Ј. Малан: Одлично. 186 00:08:02,663 --> 00:08:06,060 Тако да је потребно Стандардни И / О. За шта Сврха желим Стандардни И / О? 187 00:08:06,060 --> 00:08:06,670 За принтф. 188 00:08:06,670 --> 00:08:09,220 Тако укључују стдио.х. 189 00:08:09,220 --> 00:08:13,490 И такође предлажу да укључују ЦС50 библиотека из ког разлога? 190 00:08:13,490 --> 00:08:14,650 Да има конце. 191 00:08:14,650 --> 00:08:17,780 Па ћемо видети шта Библиотека ЦС50 је ради 192 00:08:17,780 --> 00:08:19,260 да створи овај појам стринга. 193 00:08:19,260 --> 00:08:21,930 Али за сада, само могу да замислим о томе као стварне тип података. 194 00:08:21,930 --> 00:08:23,596 >> Тако да се чини да се мало очисти. 195 00:08:23,596 --> 00:08:27,060 А сада ћу ићи напред и заиста праве стринг 0. 196 00:08:27,060 --> 00:08:27,700 Саставио. 197 00:08:27,700 --> 00:08:28,370 Дакле, то је добро. 198 00:08:28,370 --> 00:08:32,799 Па ./стринг0 дозволите ми увећате тако да можемо види ближе шта се дешава. 199 00:08:32,799 --> 00:08:33,850 Ентер. 200 00:08:33,850 --> 00:08:37,789 З-А-М-И-Л-уђе. 201 00:08:37,789 --> 00:08:39,440 А ми смо одштампан имену Замила екипе. 202 00:08:39,440 --> 00:08:40,409 >> Дакле, то је прилично добро. 203 00:08:40,409 --> 00:08:43,220 Тако да сада идемо напред и покренете овај програм поново, 204 00:08:43,220 --> 00:08:45,659 и откуцати Давен Име и презиме. 205 00:08:45,659 --> 00:08:46,450 Изненађење, изненађење. 206 00:08:46,450 --> 00:08:48,021 Ентер. 207 00:08:48,021 --> 00:08:48,520 Хмм. 208 00:08:48,520 --> 00:08:51,750 Нисмо штампане Давен је Пун име исправно. 209 00:08:51,750 --> 00:08:54,250 Сада то треба да буде очигледно у Ретроспецт због чега, 210 00:08:54,250 --> 00:08:57,010 врста, глупо дизајн одлука? 211 00:08:57,010 --> 00:08:59,590 >> Да, фиксирана шест у мом за петље. 212 00:08:59,590 --> 00:09:01,610 Сад сам то само зато Знао сам име Замила а 213 00:09:01,610 --> 00:09:02,776 је требало да буде шест слова. 214 00:09:02,776 --> 00:09:04,720 Али сигурно то није Опште решење. 215 00:09:04,720 --> 00:09:07,720 Тако испада да динамички можемо схватим дужину стринга 216 00:09:07,720 --> 00:09:10,440 позивањем функцију зове стрлен. 217 00:09:10,440 --> 00:09:12,840 >> Опет, намерно језгровито имену само 218 00:09:12,840 --> 00:09:14,450 да би се лакше да куцате. 219 00:09:14,450 --> 00:09:17,170 Али то је синоним за добијање дужину стринга. 220 00:09:17,170 --> 00:09:23,190 Идем да се вратим у моју терминал прозор и поново покрените компајлер. 221 00:09:23,190 --> 00:09:24,170 Али то је да виче на мене. 222 00:09:24,170 --> 00:09:29,130 Имплицитно изјављујући библиотека функција стрлен са типом инт цонст-- 223 00:09:29,130 --> 00:09:29,780 Изгубио сам се. 224 00:09:29,780 --> 00:09:30,590 Потпуно. 225 00:09:30,590 --> 00:09:32,940 >> Дакле, посебно зато што ваш очи почињу да преврћу 226 00:09:32,940 --> 00:09:36,000 са порукама о грешкама као што је овај, фокус Искрено на првих неколико речи. 227 00:09:36,000 --> 00:09:38,590 Ми знамо да је проблем у линија 8, као што је наведено овде. 228 00:09:38,590 --> 00:09:40,500 И то је у Стринг-0.ц. 229 00:09:40,500 --> 00:09:43,580 Имплицитно изјављујући Библиотека функција стрлен. 230 00:09:43,580 --> 00:09:47,000 Тако да се генерално ће бити образац поруке о грешци. 231 00:09:47,000 --> 00:09:49,190 Имплицитно изјављујући нешто. 232 00:09:49,190 --> 00:09:53,250 >> Дакле укратко, шта сам се чинило да су урадили у односу на ред 8, овде. 233 00:09:53,250 --> 00:09:56,880 Шта би могло да буде решење бити још ако никада нисте користили стрлен себи? 234 00:09:56,880 --> 00:09:58,907 >> ПУБЛИКА: Део другачијег библиотеке? 235 00:09:58,907 --> 00:10:00,740 Давид Ј. Малан: Парт другачијег библиотеке. 236 00:10:00,740 --> 00:10:02,400 Тако да је проглашена, да тако кажем. 237 00:10:02,400 --> 00:10:07,510 Помиње се у неки фајл осим стдио.х и ЦС50.х. 238 00:10:07,510 --> 00:10:09,179 А где је то дефинисано? 239 00:10:09,179 --> 00:10:12,220 Да будем искрен, морате или да само Знам да са врха главе, 240 00:10:12,220 --> 00:10:13,640 или вам Гоогле ово и сазнати. 241 00:10:13,640 --> 00:10:18,150 Или знате, ја сам отворио у ЦС50 Примена терминала програм, који 242 00:10:18,150 --> 00:10:22,200 је само велики, преко целог екрана верзија оно што је у дну прозора гедит екипе. 243 00:10:22,200 --> 00:10:24,970 >> И испоставило се да постоји Слично језгровит команда, под називом 244 00:10:24,970 --> 00:10:29,280 човек за употребу, где ако откуцате име функције и притисните Ентер, 245 00:10:29,280 --> 00:10:32,240 ћете се вратити прилично волшебни документација. 246 00:10:32,240 --> 00:10:35,299 То је само текст који се углавном изгледа нешто овако. 247 00:10:35,299 --> 00:10:37,090 То је мало неодољив на први поглед. 248 00:10:37,090 --> 00:10:39,048 Али искрено ћу нека моје преврћу очима 249 00:10:39,048 --> 00:10:41,930 и само се фокусирају на делу Стало за тренутак. 250 00:10:41,930 --> 00:10:42,780 >> Што је ово. 251 00:10:42,780 --> 00:10:45,470 Који изгледа као структурално нешто што сам упознат са. 252 00:10:45,470 --> 00:10:48,080 Заиста човек страница, тако да да говори, ће вам рећи 253 00:10:48,080 --> 00:10:51,590 у ономе што заглавље датотеке функције као стрлен је дефинисан. 254 00:10:51,590 --> 00:10:54,170 Тако да ћу да се вратим сада гедит. 255 00:10:54,170 --> 00:10:59,070 И ја ћу да иде напред и додати овде #инцлуде 256 00:10:59,070 --> 00:11:00,480 и сачувајте датотеку. 257 00:11:00,480 --> 00:11:04,300 >> Идем да обришете екран Контрола • Ако сте питате. 258 00:11:04,300 --> 00:11:08,210 И ја ћу да поново покретање маке стринг.0, саставља овај пут. 259 00:11:08,210 --> 00:11:11,790 ./стринг.0 Замила. 260 00:11:11,790 --> 00:11:15,020 Је изгледало да раде Пусти ме напред и то реприза са Давенпорт. 261 00:11:15,020 --> 00:11:15,860 Ентер. 262 00:11:15,860 --> 00:11:17,730 И да је, такође, изгледа да ради. 263 00:11:17,730 --> 00:11:21,220 >> Тако да можемо да урадимо нешто боље од овога, ипак, можемо да почнемо да се среде ствари 264 00:11:21,220 --> 00:11:23,257 до само мало. 265 00:11:23,257 --> 00:11:25,590 И ја ћу да се заиста увести сада једна ствар. 266 00:11:25,590 --> 00:11:28,930 Идем да иде напред и сачувати ово у другу датотеку. 267 00:11:28,930 --> 00:11:31,770 И ја ћу да позовем овај фајл стринг1.ц само 268 00:11:31,770 --> 00:11:34,620 да буде у складу са Кодексом ћете моћи да нађете на мрежи. 269 00:11:34,620 --> 00:11:37,050 >> И хајде да се фокусирамо на исто код. 270 00:11:37,050 --> 00:11:39,000 Испоставило се да имам била врста узимања 271 00:11:39,000 --> 00:11:42,600 здраво за готово чињеницу да мој лаптоп, и заузврат, ЦС50 апарат 272 00:11:42,600 --> 00:11:47,450 има много меморије, много РАМ, доста бајтова простора 273 00:11:47,450 --> 00:11:48,920 у којој могу чувати конце. 274 00:11:48,920 --> 00:11:53,560 >> Али реалност ако ја откуцао дуго довољно и довољно тастера, 275 00:11:53,560 --> 00:11:56,170 Могао бих у типу теорији у више знакова 276 00:11:56,170 --> 00:11:58,830 него мом компјутеру физички има меморију за. 277 00:11:58,830 --> 00:11:59,830 И ово је проблематично. 278 00:11:59,830 --> 00:12:03,050 Слично као инт могу само цоунт тако висока, у теорији, 279 00:12:03,050 --> 00:12:06,600 можете само стрпати толико ликова у РАМ рачунара или случајни 280 00:12:06,600 --> 00:12:07,920 Приступ меморији. 281 00:12:07,920 --> 00:12:11,140 >> Дакле, имао сам боље да предвиде чак и овај проблем, 282 00:12:11,140 --> 00:12:13,660 иако то може бити редак Цорнер случај, да тако кажем. 283 00:12:13,660 --> 00:12:15,670 Не дешава тако често, може да се деси. 284 00:12:15,670 --> 00:12:18,815 А ако се то деси, а ја не предвиди и програм за њу, 285 00:12:18,815 --> 00:12:20,300 мој програм може да уради ко зна шта. 286 00:12:20,300 --> 00:12:22,220 Замрзавање, виси, рестарт, како год. 287 00:12:22,220 --> 00:12:24,490 Нешто предвидео може да се деси. 288 00:12:24,490 --> 00:12:27,120 >> Дакле, шта ћу да радим сада, убудуће заиста, 289 00:12:27,120 --> 00:12:31,630 је пре него што сам слепо користите променљиву слично с да 290 00:12:31,630 --> 00:12:36,790 је додељена повратну вредност неку другу функцију као гетстринг, 291 00:12:36,790 --> 00:12:40,200 Идем да се уверите да је њена вредност је важећа. 292 00:12:40,200 --> 00:12:44,280 Тако да знам само из прочитавши ЦС50 је документација за гетстринг, 293 00:12:44,280 --> 00:12:49,020 што је на крају ћемо вам указати на, који гетстринг враћа посебан симбол 294 00:12:49,020 --> 00:12:53,610 зове НУЛЛ, Н-У-Л-Л у свим цапс, ако нешто крене наопако. 295 00:12:53,610 --> 00:12:55,650 >> Тако нормално, враћа стринг. 296 00:12:55,650 --> 00:12:59,700 Али иначе, ако врати Н-У-Л-Ја-- ћемо на крају ћемо видети шта је заиста 297 00:12:59,700 --> 00:13:01,790 меанс-- То само значи нешто лоше десило. 298 00:13:01,790 --> 00:13:05,560 Сада то значи, слично као у Огреби, Ја могу да проверим стање овде у Ц, 299 00:13:05,560 --> 00:13:08,830 ако с не деси једнак НУЛЛ. 300 00:13:08,830 --> 00:13:11,930 Дакле, ако нисте видели раније, То само значи не једнако. 301 00:13:11,930 --> 00:13:15,290 >> Тако да је супротно од једнаке једнаки, који, подсетимо, 302 00:13:15,290 --> 00:13:18,940 се разликује од сингле једнако, што је задатак. 303 00:13:18,940 --> 00:13:23,030 Дакле, ако ова не једнако НУЛЛ, тек онда 304 00:13:23,030 --> 00:13:25,980 Желим да изврши ове линије кода. 305 00:13:25,980 --> 00:13:28,080 Другим речима, пре него што сам зароните у слепо 306 00:13:28,080 --> 00:13:30,919 и старт итератинг преко с, и третирањем 307 00:13:30,919 --> 00:13:33,710 јер иако је низ ликови, ја ћу прво да проверим, 308 00:13:33,710 --> 00:13:37,900 чекај мало, није дефинитивно није једнака овој посебне вредности, НУЛЛ? 309 00:13:37,900 --> 00:13:40,030 >> Јер ако је, лоше ствари могу десити. 310 00:13:40,030 --> 00:13:43,080 А за сада, претпостављам да лоше ствари дешава значи свој програм црасхес, 311 00:13:43,080 --> 00:13:45,070 а ви не можете да се опорави нужно. 312 00:13:45,070 --> 00:13:46,800 Тако искрено, изгледа ружније. 313 00:13:46,800 --> 00:13:48,660 То је врста збуњујуће сада поглед на. 314 00:13:48,660 --> 00:13:50,780 Али ово ће постати познато пре дуго. 315 00:13:50,780 --> 00:13:52,920 >> Али ја ћу да предложим Сада једна друга побољшања. 316 00:13:52,920 --> 00:13:54,660 То је побољшање у исправност. 317 00:13:54,660 --> 00:13:58,800 Мој програм је сада више тачно, јер у ретким случају да није довољно меморије 318 00:13:58,800 --> 00:14:01,180 постоји, ја ћу то средити, а ја ћу учинити ништа. 319 00:14:01,180 --> 00:14:02,680 Ја се бар неће срушити. 320 00:14:02,680 --> 00:14:05,000 >> Али хајде да урадимо коначну верзију овде. 321 00:14:05,000 --> 00:14:07,690 И датотеку стринг2.ц. 322 00:14:07,690 --> 00:14:10,190 Идем да налепите да Исто код за тренутак, 323 00:14:10,190 --> 00:14:14,210 а ја ћу да истакнем ово линије, 11, овде на тренутак. 324 00:14:14,210 --> 00:14:18,179 Сада реалност је да паметне Цомпилерс Као Цланг могло поправити за нас 325 00:14:18,179 --> 00:14:19,970 иза кулиса а наше никад не зна. 326 00:14:19,970 --> 00:14:24,670 Али хајде да размислимо о овоме фундаментално као проблематична дизајн. 327 00:14:24,670 --> 00:14:29,010 >> Ова линија кода је, наравно, говорећи, покрените неку променљиву сам 0. 328 00:14:29,010 --> 00:14:30,260 То је прилично једноставан. 329 00:14:30,260 --> 00:14:34,691 И шта је то опет изјаву, овде, ја ++, ради? 330 00:14:34,691 --> 00:14:37,066 Ми смо то видели, али смо није баш причам о томе. 331 00:14:37,066 --> 00:14:37,900 >> Публика: увецава И. 332 00:14:37,900 --> 00:14:39,191 >> Давид Ј. Малан: увецава сам. 333 00:14:39,191 --> 00:14:41,890 Тако на свакој итерацији путем Ова петља, сваки циклус, 334 00:14:41,890 --> 00:14:43,570 ви ја се увецава за један. 335 00:14:43,570 --> 00:14:45,740 Тако да постаје већа, и већи, и већи док петља завршава. 336 00:14:45,740 --> 00:14:46,810 Како то прекине? 337 00:14:46,810 --> 00:14:49,430 Па ту је овај средњи услов који смо раније користили. 338 00:14:49,430 --> 00:14:52,500 Ви сте видели и на валктхроугхс у П сету. 339 00:14:52,500 --> 00:14:53,880 >> Али шта је то изрека? 340 00:14:53,880 --> 00:14:58,352 Урадите следеће петљу тако Док сам је мање од чега? 341 00:14:58,352 --> 00:14:59,810 ПУБЛИКА: дужина низа. 342 00:14:59,810 --> 00:15:01,518 Давид Ј. Малан: дужина низа. 343 00:15:01,518 --> 00:15:04,300 Тако да преводи прилично чисто на енглеском језику у том смислу. 344 00:15:04,300 --> 00:15:08,810 Сада проблем је што сваки пут кад Посматрајте кроз ову петљу у теорији, 345 00:15:08,810 --> 00:15:10,000 Питам ово питање. 346 00:15:10,000 --> 00:15:12,250 Је да мање од дужине низа с? 347 00:15:12,250 --> 00:15:14,500 Је да мање од дужине низа с? 348 00:15:14,500 --> 00:15:18,380 >> Сада се сам мења на сваке итерације? 349 00:15:18,380 --> 00:15:18,880 То је. 350 00:15:18,880 --> 00:15:19,629 Због ++. 351 00:15:19,629 --> 00:15:21,700 Тако да сваки итерација да је све већи. 352 00:15:21,700 --> 00:15:25,411 Али је с све већи, или мањи, или промена уопште? 353 00:15:25,411 --> 00:15:25,910 Бр 354 00:15:25,910 --> 00:15:30,240 Дакле, у погледу дизајна, једне од оса дуж којих покушавамо да се процени код 355 00:15:30,240 --> 00:15:32,610 у класи, ово изгледа глупо. 356 00:15:32,610 --> 00:15:34,690 >> Као што си ти буквално, на свакој итерацији 357 00:15:34,690 --> 00:15:37,110 ове петље пита Опет исто питање Проклетство, 358 00:15:37,110 --> 00:15:40,770 и опет, и опет, и буквално никада се неће променити. 359 00:15:40,770 --> 00:15:44,220 Барем ако ја не додирује с и покушава да промени садржај с. 360 00:15:44,220 --> 00:15:46,610 Тако да могу да урадим нешто боље од овога. 361 00:15:46,610 --> 00:15:49,530 >> И шта ћу да урадим није изјавити само један променљива и, 362 00:15:49,530 --> 00:15:53,330 али друга променљива и произвољно ћу, али је конвенционално, га зову н. 363 00:15:53,330 --> 00:15:55,940 Додели н једнако Дужина низ с. 364 00:15:55,940 --> 00:15:59,090 А онда овде, ја ћу урадите паметан мало оптимизацију, тако да 365 00:15:59,090 --> 00:16:03,460 да говоре, да се на крају дана више није тачно или не мање тачна 366 00:16:03,460 --> 00:16:04,260 него раније. 367 00:16:04,260 --> 00:16:05,500 Али је боље дизајна. 368 00:16:05,500 --> 00:16:09,480 У чињеници да ја користим мање времена, мање ЦПУ циклуса, тако да 369 00:16:09,480 --> 00:16:14,040 да говори, да одговорим исто питање, али само једном. 370 00:16:14,040 --> 00:16:17,870 >> Сва питања о том општем принцип да се побољша, 371 00:16:17,870 --> 00:16:21,294 кажу, ефикасност програму је? 372 00:16:21,294 --> 00:16:21,991 Да? 373 00:16:21,991 --> 00:16:23,699 ПУБЛИКА: Зашто и ти користите [неразумљиво]? 374 00:16:23,699 --> 00:16:25,760 375 00:16:25,760 --> 00:16:27,010 Давид Ј. Малан: Добро питање. 376 00:16:27,010 --> 00:16:30,690 Па зашто смо ставили ++ на крају И уместо да почетак И? 377 00:16:30,690 --> 00:16:33,070 У овом случају, има Не функционална утицаја. 378 00:16:33,070 --> 00:16:36,670 И уопште, имам тенденцију да користите оператор Постфик 379 00:16:36,670 --> 00:16:41,750 тако да је мало јасније, као када операција се дешава. 380 00:16:41,750 --> 00:16:46,670 >> За оне који нису упознати, постоји још једна изјаве где можете да урадите ++ сам. 381 00:16:46,670 --> 00:16:48,747 То су функционално еквивалент у овом случају 382 00:16:48,747 --> 00:16:51,080 јер не постоји ништа друго око тог Инкрементација. 383 00:16:51,080 --> 00:16:54,435 Али можете доћи до случајева и линија кода 384 00:16:54,435 --> 00:16:55,810 у којој који чини разлику. 385 00:16:55,810 --> 00:16:57,810 Дакле генерално, ми не чак и говорити о овој. 386 00:16:57,810 --> 00:17:00,690 Јер искрено, што чини ваш код секси, и некако Слицкер, 387 00:17:00,690 --> 00:17:01,776 и мање знакова. 388 00:17:01,776 --> 00:17:04,859 Али реалност је да је много теже, Мислим да је, чак и за мене да заврши свој ум 389 00:17:04,859 --> 00:17:07,319 око ње Понекад, редослед операција. 390 00:17:07,319 --> 00:17:09,750 Дакле, као страну, ако заиста не свиђа ми се ово, 391 00:17:09,750 --> 00:17:14,650 иако је ово врста секси лоокинг, можете да урадите и + = 1, 392 00:17:14,650 --> 00:17:18,880 која је ружнији верзија иста идеја за Постфик Инкрементација. 393 00:17:18,880 --> 00:17:22,250 >> Кажем ово и вас треба да забаве, 394 00:17:22,250 --> 00:17:25,140 али ћете доћи да виде код као нешто лепо пре дуго. 395 00:17:25,140 --> 00:17:27,160 >> [СМЕХ] 396 00:17:27,160 --> 00:17:28,410 >> Давид Ј. Малан: Зар не? 397 00:17:28,410 --> 00:17:29,360 Да. 398 00:17:29,360 --> 00:17:30,480 Питање у средини. 399 00:17:30,480 --> 00:17:32,146 >> Публика: Да ли је потребно да кажете инт н? 400 00:17:32,146 --> 00:17:34,020 Давид Ј. Малан: Уради Не треба да кажем инт н. 401 00:17:34,020 --> 00:17:37,670 Зато што смо већ рекли инт, не морате да га поново рећи. 402 00:17:37,670 --> 00:17:41,820 Цака је у томе да се н има бити исти тип података као и. 403 00:17:41,820 --> 00:17:43,310 Дакле, то је само погодност овде. 404 00:17:43,310 --> 00:17:44,058 Да. 405 00:17:44,058 --> 00:17:47,806 >> ПУБЛИКА: Можеш ли прећи носач да штампам знакова опет? 406 00:17:47,806 --> 00:17:48,930 Давид Ј. Малан: Апсолутно. 407 00:17:48,930 --> 00:17:52,110 Дакле% Ц, сећам из прошле време, је само чувар места. 408 00:17:52,110 --> 00:17:53,930 То значи стави цхар овде. 409 00:17:53,930 --> 00:17:56,780 бацксласх н, наравно, само средства ставио овде ред. 410 00:17:56,780 --> 00:17:59,540 Тако да је само оставља, сад, Овај комад нове синтаксе. 411 00:17:59,540 --> 00:18:03,730 И то је буквално рекао, граб стринг зове С и одемо његово 412 00:18:03,730 --> 00:18:06,050 и'тх карактер, да тако кажем. 413 00:18:06,050 --> 00:18:10,590 >> И ја стално говорим и'тх карактер јер на свакој итерацији ове петље 414 00:18:10,590 --> 00:18:14,540 то је као да смо се штампају , прво ова конзола 0, 415 00:18:14,540 --> 00:18:15,780 као програмер би се рећи. 416 00:18:15,780 --> 00:18:18,680 Затим с носач 1, а затим с носач 2, онда 3, затим 4. 417 00:18:18,680 --> 00:18:21,610 Али наравно то је променљива, па сам га изразим са И. 418 00:18:21,610 --> 00:18:23,900 >> Кључ је, међутим, да схвате, поготово ако не си 419 00:18:23,900 --> 00:18:26,358 био аццлиматинг на овом свету програмирања, где смо све 420 00:18:26,358 --> 00:18:28,950 изгледа да рачунају од нуле, морам почети да броји од нуле сад. 421 00:18:28,950 --> 00:18:35,130 Јер Стрингс, први карактер, З у Замила је за добру иу злу 422 00:18:35,130 --> 00:18:40,490 ће живети на локацији број нула. 423 00:18:40,490 --> 00:18:48,210 >> У реду, па да ми донесе САД овде да Замила 424 00:18:48,210 --> 00:18:50,746 и види шта се стварно дешава на испод хаубе. 425 00:18:50,746 --> 00:18:52,370 Тако да је тај појам типа ливења. 426 00:18:52,370 --> 00:18:53,800 Можда ћете морати стварно играо са овим већ, 427 00:18:53,800 --> 00:18:55,970 Можда за хакера издање П сет један. 428 00:18:55,970 --> 00:19:00,320 Али тип ливење само односи способност у Ц и неке друге језике 429 00:19:00,320 --> 00:19:03,170 да конвертујете један тип података у другу. 430 00:19:03,170 --> 00:19:05,450 >> Дакле, како бисмо могли видети лепа искрено? 431 00:19:05,450 --> 00:19:08,530 Тако да је ово, Подсетимо, почетак енглеског алфабета. 432 00:19:08,530 --> 00:19:11,265 И контекст, подсетимо, од као и пре недељу дана је АСЦИИ. 433 00:19:11,265 --> 00:19:13,790 Америцан Стандард Цоде за размену информација. 434 00:19:13,790 --> 00:19:17,080 Што је само веома дуг пут каже мапирање из писама 435 00:19:17,080 --> 00:19:19,370 бројевима, и од бројева до слова. 436 00:19:19,370 --> 00:19:22,940 >> Па кроз сам овде, Дот Дот дот, линије са, подсетимо, 437 00:19:22,940 --> 00:19:25,582 децимални број 65 горе. 438 00:19:25,582 --> 00:19:27,290 А нисмо разговарали о томе експлицитно, 439 00:19:27,290 --> 00:19:29,850 али сигурно постоји слична бројеви за мала слова. 440 00:19:29,850 --> 00:19:30,820 И заиста, постоје. 441 00:19:30,820 --> 00:19:33,730 Свет је одлучио неколико година Пре тај мали, мала слова, 442 00:19:33,730 --> 00:19:35,020 ће бити 97. 443 00:19:35,020 --> 00:19:38,010 И мало Б иде да буде 98, и тако даље. 444 00:19:38,010 --> 00:19:40,200 >> И за било коју другу кључа тастатура, ту је 445 00:19:40,200 --> 00:19:42,190 ће бити сличан образац бита. 446 00:19:42,190 --> 00:19:44,540 Или еквивалентно, децимални број. 447 00:19:44,540 --> 00:19:47,110 Дакле, питање при руци, онда, како можемо 448 00:19:47,110 --> 00:19:49,400 заправо видимо испод хаубе? 449 00:19:49,400 --> 00:19:51,539 Тако да ћу да одем у гедит поново. 450 00:19:51,539 --> 00:19:53,330 И уместо типа ово од нуле, 451 00:19:53,330 --> 00:19:55,330 Идем да иде напред и само отвори нешто 452 00:19:55,330 --> 00:19:58,350 из данашње кода зове АСЦИИ нула. 453 00:19:58,350 --> 00:20:01,210 >> И АСЦИИ нула изгледа овако. 454 00:20:01,210 --> 00:20:02,710 Па хајде да преломити умове око овога. 455 00:20:02,710 --> 00:20:04,969 Дакле, прво, ја сам прокоментарисао код, што је лепо. 456 00:20:04,969 --> 00:20:07,010 Зато што је то буквално ми говориш шта да очекујем, 457 00:20:07,010 --> 00:20:08,950 приказати мапирање за великим словима. 458 00:20:08,950 --> 00:20:13,690 Сада не баш знају шта тиме хтели да кажете, па хајде да закључимо. 459 00:20:13,690 --> 00:20:16,870 >> На енглеском, можда донекле Тецхие Енглески, 460 00:20:16,870 --> 00:20:20,660 шта линија 18 појављује да радим за нас? 461 00:20:20,660 --> 00:20:21,500 Само ред 18. 462 00:20:21,500 --> 00:20:22,430 Шта је то изазивање? 463 00:20:22,430 --> 00:20:25,192 Шта ће то кицк офф овде? 464 00:20:25,192 --> 00:20:26,100 >> Публика: петља. 465 00:20:26,100 --> 00:20:26,630 >> Давид Ј. Малан: петља. 466 00:20:26,630 --> 00:20:28,463 И колико пута је који ће се поновити? 467 00:20:28,463 --> 00:20:31,562 468 00:20:31,562 --> 00:20:33,270 ПУБЛИКА: [ставим ВОИЦЕС] шест пута. 469 00:20:33,270 --> 00:20:34,830 Давид Ј. Малан: Не шест пута. 470 00:20:34,830 --> 00:20:35,840 Публика: 26 пута. 471 00:20:35,840 --> 00:20:36,560 Давид Ј. Малан: 26 пута. 472 00:20:36,560 --> 00:20:37,060 Да, извини. 473 00:20:37,060 --> 00:20:37,960 26 пута. 474 00:20:37,960 --> 00:20:38,460 Зашто? 475 00:20:38,460 --> 00:20:41,590 Па, то је мало чудно, али је Ја сам почео да броји од 65 година. 476 00:20:41,590 --> 00:20:43,300 Што је чудно, али не и погрешно. 477 00:20:43,300 --> 00:20:44,610 Није лоше по Саи. 478 00:20:44,610 --> 00:20:46,980 И ја радим је само јер је, за овај пример, 479 00:20:46,980 --> 00:20:50,455 Ја сам некако очекујући да је капитал је био 65. 480 00:20:50,455 --> 00:20:53,330 Сада то није најелегантнији начин да се то уради, врсти хард кода 481 00:20:53,330 --> 00:20:56,130 езотеричне вредности које нико не се није очекивало да се сетим. 482 00:20:56,130 --> 00:21:00,155 >> Али за сада, приметити да сам овај начин се кроз 65 плус 26. 483 00:21:00,155 --> 00:21:03,030 Јер очигледно ја не желим да уради аритметичку у мојој глави. 484 00:21:03,030 --> 00:21:04,440 Па ћу дозволити компајлер то уради. 485 00:21:04,440 --> 00:21:08,600 Али онда на свакој петљи, сваке итерације петље, ја се увецава и. 486 00:21:08,600 --> 00:21:10,196 >> Тако да сада ово изгледа помало загонетан. 487 00:21:10,196 --> 00:21:13,320 Али ми треба да имају основне зграду блокови са којима се разумеју. 488 00:21:13,320 --> 00:21:15,510 % Ц је само чувар места за цхар. 489 00:21:15,510 --> 00:21:19,010 % И је чувар места за Инт. 490 00:21:19,010 --> 00:21:23,310 И испоставило се да коришћењем овог Нова синтакса, то у загради, тако 491 00:21:23,310 --> 00:21:26,100 да говори, тако да врсте података унутар заграда, 492 00:21:26,100 --> 00:21:32,270 Ја могу да натерају компајлер за лечење и није цео број, али као цхар. 493 00:21:32,270 --> 00:21:35,520 >> Чиме ми показује карактер еквивалент од тог броја. 494 00:21:35,520 --> 00:21:37,986 Сада овде, овај код је прилично идентичан. 495 00:21:37,986 --> 00:21:39,860 Само сам хтео да Супер експлицитно чињеница 496 00:21:39,860 --> 00:21:42,095 да сам са почетком у 97, која је мала слова. 497 00:21:42,095 --> 00:21:44,080 Он се кроз море 26 слова. 498 00:21:44,080 --> 00:21:46,970 И ја опет доинг--, ливење И, да тако кажем. 499 00:21:46,970 --> 00:21:49,160 Или типа ливење сам, да тако кажем. 500 00:21:49,160 --> 00:21:51,420 >> Од инт до цхар. 501 00:21:51,420 --> 00:21:55,760 Тако да крајњи резултат ће бити, Искрено, информације већ знамо. 502 00:21:55,760 --> 00:21:59,411 Идем да АСЦИИ-0 не дот-- дот ц. 503 00:21:59,411 --> 00:22:02,160 Обавештење, вероватно одлука да грешка као што сам управо учинио случајно. 504 00:22:02,160 --> 00:22:03,820 Направите асции-0. 505 00:22:03,820 --> 00:22:06,090 Сада ћу да урадим ./асции-0. 506 00:22:06,090 --> 00:22:09,050 Ја ћу зумирате, и нажалост то ће дођите ван екрана. 507 00:22:09,050 --> 00:22:15,060 Али ми видимо целу табелу где мапе до 97, Б мапе до 98, 508 00:22:15,060 --> 00:22:18,931 а ако се крећите се горе даље Наравно, мапе на 65. 509 00:22:18,931 --> 00:22:21,180 Тако да је ово само да кажем да Шта смо проповеда, 510 00:22:21,180 --> 00:22:25,310 постоји та еквиваленција, се у ствари, случај у стварности. 511 00:22:25,310 --> 00:22:28,000 Тако брзо модификација овога. 512 00:22:28,000 --> 00:22:31,220 Дозволите ми да отворим асции-1.Ц. 513 00:22:31,220 --> 00:22:38,070 И приметите Ова паметна, врста о, разјашњење овога. 514 00:22:38,070 --> 00:22:41,770 То је АСЦИИ-1.ц, и приметили ову луду ствар. 515 00:22:41,770 --> 00:22:45,120 >> И то стварно стигне до срца шта компјутери раде. 516 00:22:45,120 --> 00:22:48,150 Иако смо људи би не рачунају у смислу леттерс-- 517 00:22:48,150 --> 00:22:50,380 Ја не почну да размишљају, У реду онда Б, 518 00:22:50,380 --> 00:22:52,590 и користе оне рачунају физичке објекте. 519 00:22:52,590 --> 00:22:58,680 Ви свакако могу рећи да желим да инитиализе неку променљиву названу ц-- 520 00:22:58,680 --> 00:23:03,220 али сам могао да се зове ово све-- Дакле, Ц је иницијализован на капитала А. 521 00:23:03,220 --> 00:23:07,560 >> Јер на крају дана, рачунара није брига шта складиштење, 522 00:23:07,560 --> 00:23:10,170 само брине како желите да представи ту информацију. 523 00:23:10,170 --> 00:23:13,560 Како желиш рачунар на тумачи да је образац бита? 524 00:23:13,560 --> 00:23:16,320 Дакле, то није нешто што бих препоручио генерално раде. 525 00:23:16,320 --> 00:23:19,500 То је заиста само један пример да преносе да апсолутно могу 526 00:23:19,500 --> 00:23:22,049 инитиализе цео број ка цхар. 527 00:23:22,049 --> 00:23:24,090 Јер испод Поклопац од цхар, наравно, 528 00:23:24,090 --> 00:23:26,170 је само број од 0 до 255. 529 00:23:26,170 --> 00:23:28,540 >> Тако да сигурно можете стави га у једног Инт. 530 00:23:28,540 --> 00:23:30,890 А шта је ово, такође показује је да смо 531 00:23:30,890 --> 00:23:34,040 да конвертујете из једне у други тип, овдје, 532 00:23:34,040 --> 00:23:36,780 коначно штампање исту ствар. 533 00:23:36,780 --> 00:23:44,760 А у ствари, то ћу поправити онлине-- је требало да кажем ово, опет, овде. 534 00:23:44,760 --> 00:23:48,610 Дозволите ми да очисти ово мрежи, а ми ћемо види у онлине описом по потреби, 535 00:23:48,610 --> 00:23:50,280 шта се тамо намеравао. 536 00:23:50,280 --> 00:23:50,960 >> У реду. 537 00:23:50,960 --> 00:23:53,892 Па последњи пример сада укључује А и Б, а затим ћемо 538 00:23:53,892 --> 00:23:54,850 узети ствари у зарез. 539 00:23:54,850 --> 00:23:58,330 Дакле, са А и Б и ц је у капитализације 540 00:23:58,330 --> 00:24:01,560 а еквиваленције истог, хајдемо погледај овај пример, овде. 541 00:24:01,560 --> 00:24:02,752 Још један пример код. 542 00:24:02,752 --> 00:24:04,460 Ми ћемо отворити ону која је већ направили, тако да смо 543 00:24:04,460 --> 00:24:06,440 не морају то да куцате све из почетка. 544 00:24:06,440 --> 00:24:09,420 >> И приметити у очекивању ми користимо вишеструко заглавље 545 00:24:09,420 --> 00:24:13,240 фајлова, међу којима је и Наш нови пријатељ, стринг.х. 546 00:24:13,240 --> 00:24:15,597 Сад ово изгледа, на први поглед поглед, мало загонетан. 547 00:24:15,597 --> 00:24:18,180 Али, хајде да видимо да ли можемо да расуђује кроз оно што се овде дешава. 548 00:24:18,180 --> 00:24:21,150 Први пут сам се низ од корисника, и ставио сам ту серију у променљивој 549 00:24:21,150 --> 00:24:22,286 зову с. 550 00:24:22,286 --> 00:24:24,090 Цопи Пасте од раније. 551 00:24:24,090 --> 00:24:27,250 У реду 22., ја сам очигледно ради управо оно што 552 00:24:27,250 --> 00:24:30,760 Сам малопре, ја итератинг над ликова с. 553 00:24:30,760 --> 00:24:34,780 >> И нове трикове користе дужина стринг, малолетник оптимизација 554 00:24:34,780 --> 00:24:37,930 чувања дужину стринг у Н, уместо Цаллинг опет стрлен, 555 00:24:37,930 --> 00:24:38,850 и опет, и опет. 556 00:24:38,850 --> 00:24:41,120 И само проверавам да сам је мање од н. 557 00:24:41,120 --> 00:24:43,330 Сада овде, ствари се мало занимљив. 558 00:24:43,330 --> 00:24:45,980 Али то је само апликација те истог новој идеји. 559 00:24:45,980 --> 00:24:48,470 Оно што на енглеском ради с носач Ја представљам? 560 00:24:48,470 --> 00:24:51,772 561 00:24:51,772 --> 00:24:54,260 >> ПУБЛИКА: Бројање Еацх карактер [неразумљиво]. 562 00:24:54,260 --> 00:24:55,926 >> Давид Ј. Малан: Бројање сваки карактер. 563 00:24:55,926 --> 00:24:58,680 И још више језгровито, с носач Ја представљам шта? 564 00:24:58,680 --> 00:25:00,950 Да ли бисте рекли. 565 00:25:00,950 --> 00:25:04,084 Да те не стави на лицу места овде. 566 00:25:04,084 --> 00:25:06,375 >> ПУБЛИКА: Па-- 567 00:25:06,375 --> 00:25:09,500 Давид Ј. Малан: Дакле, ако је реч је-- ако стринг Замила, која стартс-- 568 00:25:09,500 --> 00:25:12,380 ПУБЛИКА: --иоу бавити ликови сепаратели-- 569 00:25:12,380 --> 00:25:13,690 Давид Ј. Малан: Добро. 570 00:25:13,690 --> 00:25:14,190 Тачно. 571 00:25:14,190 --> 00:25:17,940 Скуаре заграда Ознака вам омогућава да приступите сваки карактер појединачно, 572 00:25:17,940 --> 00:25:21,120 па ова носач 0 ће бити Први карактер у низу. 573 00:25:21,120 --> 00:25:24,110 а носач 1 ће бити други, и тако даље. 574 00:25:24,110 --> 00:25:28,050 Дакле, питање питам, Овде, у овом стању је шта? 575 00:25:28,050 --> 00:25:33,984 Је и'тх карактер с већа од или једнака мала слова? 576 00:25:33,984 --> 00:25:36,400 И шта то значи, овде, са дуплим амперсандс? 577 00:25:36,400 --> 00:25:36,800 Публика (заједно): И. 578 00:25:36,800 --> 00:25:37,210 Давид Ј. Малан: И. 579 00:25:37,210 --> 00:25:38,418 То је само еквивалент за ово. 580 00:25:38,418 --> 00:25:42,310 И није кључна реч у Ц, морате употреба, досадно, амперсанд амперсанд. 581 00:25:42,310 --> 00:25:47,520 И то је, насупрот томе, тражи се С: и'тх карактер мања или једнака 582 00:25:47,520 --> 00:25:49,030 у мала слова З? 583 00:25:49,030 --> 00:25:52,440 И опет, ту где разумевање основни 584 00:25:52,440 --> 00:25:54,550 примена компјутер има смисла. 585 00:25:54,550 --> 00:25:57,330 Приметити да, иако имам Дот Дот Дот тамо, 586 00:25:57,330 --> 00:26:04,410 изгледа до З малим словима се Све суседне вредности се из 97 горе. 587 00:26:04,410 --> 00:26:07,820 >> И исти за велика слова, са почетком у 65. 588 00:26:07,820 --> 00:26:10,410 Дакле Такеаваи, онда, је да је на енглеском, 589 00:26:10,410 --> 00:26:12,760 како бисте описали Која линија 24 ради? 590 00:26:12,760 --> 00:26:15,736 591 00:26:15,736 --> 00:26:16,728 Да? 592 00:26:16,728 --> 00:26:21,575 >> Публика: 24. то проверава да види да ли је сваки лик је малим словима. 593 00:26:21,575 --> 00:26:24,700 Давид Ј. Малан: То је провера да ли Сваки лик је мало слово. 594 00:26:24,700 --> 00:26:28,590 Па чак и више језгровито, јесте и'тх карактер с мала слова? 595 00:26:28,590 --> 00:26:30,690 То је све што смо изражавајући овде логично, 596 00:26:30,690 --> 00:26:33,750 мало загонетно, али на крају прилично искрено. 597 00:26:33,750 --> 00:26:36,480 Је С је и'тх карактера мала слова? 598 00:26:36,480 --> 00:26:40,130 >> Ако је тако, а ево где ствари добити мало ум савијање 599 00:26:40,130 --> 00:26:44,760 само на тренутак, ако је тако, иди напред и одштампате карактер. 600 00:26:44,760 --> 00:26:47,360 Дакле, ово је само чувар места, Али шта лик? 601 00:26:47,360 --> 00:26:53,710 Зашто ја радим с брацкет И минус Овај израз овде? 602 00:26:53,710 --> 00:26:55,110 >> Добро приметити образац. 603 00:26:55,110 --> 00:26:57,380 Стварни бројеви не битно толико. 604 00:26:57,380 --> 00:27:02,700 Не приметим да је 97 колико далеко од 65? 605 00:27:02,700 --> 00:27:03,560 >> Публика: 32. 606 00:27:03,560 --> 00:27:04,480 >> Давид Ј. Малан: 32. 607 00:27:04,480 --> 00:27:06,890 Колико далеко је 98 од 66? 608 00:27:06,890 --> 00:27:07,740 >> Публика: 32. 609 00:27:07,740 --> 00:27:09,890 >> Давид Ј. Малан: Мали Ц из Биг Ц? 610 00:27:09,890 --> 00:27:10,420 32. 611 00:27:10,420 --> 00:27:14,550 Тако да је 32 хмеља из једно писмо другу. 612 00:27:14,550 --> 00:27:17,790 Па искрено, могао поједноставити то то. 613 00:27:17,790 --> 00:27:20,400 Али онда сам некако тешко кодирања Овај низак ниво разумевања 614 00:27:20,400 --> 00:27:21,740 да ниједан читалац никада ће да разуме. 615 00:27:21,740 --> 00:27:25,080 Па ћу то генерализовати као ја знају да мала слова су веће. 616 00:27:25,080 --> 00:27:28,400 Знам да су велика слова су мање вредности, иронично. 617 00:27:28,400 --> 00:27:33,216 >> Али ово је ефективно еквивалентно рекавши одузмите 32 од држача а И. 618 00:27:33,216 --> 00:27:35,430 Дакле, у контексту ових слова, ако је у писму 619 00:27:35,430 --> 00:27:38,950 се дешава да се, мала слова , а ја одузети 32, 620 00:27:38,950 --> 00:27:43,442 Какав утицај то има, математички, на мала слова? 621 00:27:43,442 --> 00:27:44,400 ПУБЛИКА: Цапитализес-- 622 00:27:44,400 --> 00:27:45,691 Давид Ј. Малан: га искористи. 623 00:27:45,691 --> 00:27:48,440 И заиста, то је наш Програм се зове искористи нула. 624 00:27:48,440 --> 00:27:51,590 Било Овај програм капитализује писмо, 625 00:27:51,590 --> 00:27:54,580 после провере ако је заиста мало слово. 626 00:27:54,580 --> 00:27:59,810 У супротном, у реду 30, шта да радим ако то није мало слово да сам 627 00:27:59,810 --> 00:28:02,852 гледа на одређеној итерација у петљи. 628 00:28:02,852 --> 00:28:03,890 Само га одштампате. 629 00:28:03,890 --> 00:28:07,010 >> Тако да не мењају ствари то није ни мала слова. 630 00:28:07,010 --> 00:28:10,790 Ограничавају себе да мало кроз мало з. 631 00:28:10,790 --> 00:28:12,730 Сада је то прилично волшебни. 632 00:28:12,730 --> 00:28:15,230 Али на крају дана, ова Тако смо, некада давно, 633 00:28:15,230 --> 00:28:16,460 је морао да спроведе ствари. 634 00:28:16,460 --> 00:28:19,780 Ако сам уместо тога отварају капитализује један, ох хвала Богу. 635 00:28:19,780 --> 00:28:22,320 Постоји функција позван да горњи које могу 636 00:28:22,320 --> 00:28:25,410 учинити све што смо управо урадили на прилично ниском нивоу. 637 00:28:25,410 --> 00:28:28,752 >> Сада да горњи је занимљиво јер је декларисана у датотеци, 638 00:28:28,752 --> 00:28:31,210 а само да знате провером документације, 639 00:28:31,210 --> 00:28:35,730 или речено, рецимо, у класи, где је постоји, у фајл под називом цтипе.х. 640 00:28:35,730 --> 00:28:37,630 Дакле, ово је још једна нова наш пријатељ. 641 00:28:37,630 --> 00:28:40,750 И да горњи ради управо како његово име сугерише. 642 00:28:40,750 --> 00:28:44,860 >> Можете да прође, као аргумент, између ови заграде, неки лик. 643 00:28:44,860 --> 00:28:48,390 Идем да прође у и'тх карактера од с користећи наш фенси нови запис 644 00:28:48,390 --> 00:28:49,870 укључујући угласте заграде. 645 00:28:49,870 --> 00:28:53,391 И да претпоставка, шта је повратак вредност на Уппер очигледно иде 646 00:28:53,391 --> 00:28:53,890 да буде? 647 00:28:53,890 --> 00:28:56,460 648 00:28:56,460 --> 00:28:57,770 Великим словом. 649 00:28:57,770 --> 00:28:58,620 Великим словом. 650 00:28:58,620 --> 00:29:02,330 >> Дакле, ако сам проћи малим словима А, надамо се, по дефиницији у горњи, 651 00:29:02,330 --> 00:29:05,600 то ће да се врате велика слова А. У супротном, 652 00:29:05,600 --> 00:29:08,590 Ако то није слово прво место, само сам га одштампате. 653 00:29:08,590 --> 00:29:10,800 И заиста, приметити Други пријатељ. 654 00:29:10,800 --> 00:29:13,840 Не само да постоји горњи, али је нижа, што 655 00:29:13,840 --> 00:29:16,200 заправо одговара да питање за мене. 656 00:29:16,200 --> 00:29:19,730 >> Сада свако ко је написао ове ствари, 10с од пре неколико година, знаш шта? 657 00:29:19,730 --> 00:29:23,840 Спроводе на горњи и смањи коришћење код овако. 658 00:29:23,840 --> 00:29:27,270 Али опет, у складу са Ова идеја апстраховањем далеко, 659 00:29:27,270 --> 00:29:29,190 врста, доњи ниво Детаљи имплементације. 660 00:29:29,190 --> 00:29:32,600 И стоји на раменима људи који су дошли пре нас, користећи функције 661 00:29:32,600 --> 00:29:36,300 изгледа горњи и доњи, која дивно довољно су лепо 662 00:29:36,300 --> 00:29:40,190 именован да кажу оно што они раде, јесте дивно парадигма за усвајање. 663 00:29:40,190 --> 00:29:44,040 >> Сада испада да ако ја прочитам ман странице за, рецимо, да се горњи, 664 00:29:44,040 --> 00:29:45,010 Учим нешто друго. 665 00:29:45,010 --> 00:29:46,890 Тако човек тоУппер. 666 00:29:46,890 --> 00:29:48,050 То је мало неодољив. 667 00:29:48,050 --> 00:29:51,110 Али обавештење, овде је то помињање хеадер фајл који би требало да користим. 668 00:29:51,110 --> 00:29:54,460 Као страну, јер је то је погрешан, функција 669 00:29:54,460 --> 00:29:59,070 користи Интс уместо знакова због проверу грешке. 670 00:29:59,070 --> 00:30:01,260 Али, можда ћемо доћи Назад на то у будућности. 671 00:30:01,260 --> 00:30:05,910 >> Али приметите, овде, на горњим преобраћеника слово Ц у велика слова, ако је могуће. 672 00:30:05,910 --> 00:30:07,674 Дакле, то је прилично једноставно. 673 00:30:07,674 --> 00:30:09,340 А сада будимо мало прецизнији. 674 00:30:09,340 --> 00:30:12,750 Погледајмо делу ман страница под повратну вредност. 675 00:30:12,750 --> 00:30:15,420 Вриједност враћена је да о промењеним писма. 676 00:30:15,420 --> 00:30:18,690 Или Ц, уколико конверзија није било могуће, 677 00:30:18,690 --> 00:30:20,250 где је Ц је оригинални улаз. 678 00:30:20,250 --> 00:30:24,140 Што ја знам одавде, из аргумент да да горњи. 679 00:30:24,140 --> 00:30:25,780 >> Дакле, шта је понети ово? 680 00:30:25,780 --> 00:30:28,060 Вриједност враћена је да о промењеним писма, 681 00:30:28,060 --> 00:30:32,110 или ц, оригинално писмо, ако конверзија није било могуће. 682 00:30:32,110 --> 00:30:36,460 Шта побољшање Зато могу направи дизајн мој код је? 683 00:30:36,460 --> 00:30:37,146 Да? 684 00:30:37,146 --> 00:30:38,810 >> Публика: Можете да уклоните друго. 685 00:30:38,810 --> 00:30:40,810 Давид Ј. Малан: Могу уклоните изјаву другог, 686 00:30:40,810 --> 00:30:42,510 а не само друго саопштењу. 687 00:30:42,510 --> 00:30:44,150 >> Публика: Можете уклонити [неразумљиво]. 688 00:30:44,150 --> 00:30:46,310 >> Давид Ј. Малан: Могу уклоните цео виљушку 689 00:30:46,310 --> 00:30:48,209 на путу, ако је друго потпуно. 690 00:30:48,209 --> 00:30:50,250 Дакле заиста, дозволите ми да отворим Финална верзија ове, 691 00:30:50,250 --> 00:30:55,540 капитализује-2 и приметите колико, ако ћете, секси, код сада све, 692 00:30:55,540 --> 00:31:00,040 у томе сам смањио са неких седам или тако линија само четири, 693 00:31:00,040 --> 00:31:03,850 функционалност коју сам намеравао једноставно позивање на горњи, 694 00:31:03,850 --> 00:31:09,410 пролази у С конзолу И, а штампање се, уз плејсхолдер% Ц, 695 00:31:09,410 --> 00:31:11,090 то специфичан карактер. 696 00:31:11,090 --> 00:31:14,560 >> Сада вероватно, постоји буг, или барем ризик од грешке, 697 00:31:14,560 --> 00:31:15,350 у овом програму. 698 00:31:15,350 --> 00:31:18,200 Па само да се врати са ранијом понети, 699 00:31:18,200 --> 00:31:21,820 Шта треба да вероватно учинити у Овај програм да би га више робустан, 700 00:31:21,820 --> 00:31:24,974 тако да нема шансе да може црасх, чак иу ретким случајевима? 701 00:31:24,974 --> 00:31:26,390 ПУБЛИКА: Уверите није НУЛЛ. 702 00:31:26,390 --> 00:31:28,056 Давид Ј. Малан: Уверите није НУЛЛ. 703 00:31:28,056 --> 00:31:31,030 Дакле стварно, да би ова супер Правилна, да треба да урадим нешто слично, 704 00:31:31,030 --> 00:31:35,300 Ако с није НУЛЛ, онда само напред и извршавање 705 00:31:35,300 --> 00:31:38,470 ове линије кода, који Ја онда могу алинеја тако, 706 00:31:38,470 --> 00:31:39,870 а затим ставити у мојој непосредној браце. 707 00:31:39,870 --> 00:31:41,550 Тако добро повезивањем две идеје. 708 00:31:41,550 --> 00:31:42,429 Да? 709 00:31:42,429 --> 00:31:44,470 Публика: Да ли користите уради док петља, уместо тога? 710 00:31:44,470 --> 00:31:47,270 Давид Ј. Малан: Цоулд Радим радим док петље? 711 00:31:47,270 --> 00:31:50,020 ПУБЛИКА: --иоу желите да се уверите да заправо [неразумљиво]. 712 00:31:50,020 --> 00:31:51,728 Давид Ј. Малан: Цоулд користите радите док? 713 00:31:51,728 --> 00:31:52,450 Кратак одговор, не. 714 00:31:52,450 --> 00:31:54,700 Јер си о томе да увести још један корнер случај. 715 00:31:54,700 --> 00:31:56,660 Уколико стринг нулте дужине. 716 00:31:56,660 --> 00:31:59,600 Ако се, на пример, управо сам ударио Ентер, а да никада куцање Замила. 717 00:31:59,600 --> 00:32:02,490 Ја ћу те вратити стварни стринг, као што ћемо видети на крају, 718 00:32:02,490 --> 00:32:03,780 који има нула знакове. 719 00:32:03,780 --> 00:32:05,630 То је још увек ниска, то је само супер кратка. 720 00:32:05,630 --> 00:32:07,960 Али ако користите радите док, ћеш да слепо 721 00:32:07,960 --> 00:32:10,050 покушати да уради нешто са вези с тим стринг, 722 00:32:10,050 --> 00:32:12,537 и ништа ће бити тамо. 723 00:32:12,537 --> 00:32:18,607 >> Публика: Па, ако јеси до [неразумљиво] док ка-- 724 00:32:18,607 --> 00:32:21,190 Давид Ј. Малан: Схватам, стално добијања стринг од корисника. 725 00:32:21,190 --> 00:32:23,525 Тако кратак одговор, ви могао, и држе гњавим 726 00:32:23,525 --> 00:32:26,150 им да вам дају ниску која је довољно кратак да стане у меморију. 727 00:32:26,150 --> 00:32:26,700 Апсолутно. 728 00:32:26,700 --> 00:32:27,630 Само је одлучио да не. 729 00:32:27,630 --> 00:32:30,505 Ако они не ми дају стринг И Желим, одустајем, ја одустајем. 730 00:32:30,505 --> 00:32:33,260 Али апсолутно, у ту сврху, апсолутно могу да урадим. 731 00:32:33,260 --> 00:32:37,500 >> Тако је библиотеке заглавље датотеке које сада смо упознати са овим се, овде. 732 00:32:37,500 --> 00:32:41,550 Стандард И / О, ЦС50.х, стринг.х, цтипе.х, а ту су, заиста, остали. 733 00:32:41,550 --> 00:32:44,460 Неки од вас су открили математике библиотека у матх.х. 734 00:32:44,460 --> 00:32:48,200 Али дозволите ми да вам представим, сада, да овај ресурс који ЦС50 особље, Давин, 735 00:32:48,200 --> 00:32:50,630 и Роб, и Гејб посебно су саставили. 736 00:32:50,630 --> 00:32:52,630 То ће ускоро повезати на Курс поруку. 737 00:32:52,630 --> 00:32:54,870 То се зове ЦС50 референца. 738 00:32:54,870 --> 00:32:58,230 >> Који је само да вам дам брз укус тога, ради на следећи начин. 739 00:32:58,230 --> 00:33:00,740 Пусти ме да идем у референце.цс50.нет. 740 00:33:00,740 --> 00:33:02,990 Видећете на левој руци страни неодољиву листу 741 00:33:02,990 --> 00:33:04,595 функција које долазе са Ц. 742 00:33:04,595 --> 00:33:07,790 Али ако ми је стало, за сада, нешто попут стрлен, 743 00:33:07,790 --> 00:33:08,746 Могу да га типа тамо. 744 00:33:08,746 --> 00:33:10,870 То изфилтрира листу само оно што ми је стало. 745 00:33:10,870 --> 00:33:11,940 Ја ћу да га кликнете. 746 00:33:11,940 --> 00:33:14,740 И сада са леве стране, ћете видети шта се надамо 747 00:33:14,740 --> 00:33:18,290 је јаснија, људски пријатељски објашњење како 748 00:33:18,290 --> 00:33:19,170 Ова функција ради. 749 00:33:19,170 --> 00:33:20,600 >> Враћа дужину стринга. 750 00:33:20,600 --> 00:33:24,060 Ево синопсис, ево како можете користите га у смислу тај фајл, 751 00:33:24,060 --> 00:33:27,430 и у погледу онога што функције изгледа у смислу његових аргумената. 752 00:33:27,430 --> 00:33:30,250 А онда овде, враћа дужина низа. 753 00:33:30,250 --> 00:33:34,280 Али за оне од вас удобније, ви у ствари можете да кликнете више удобан, 754 00:33:34,280 --> 00:33:37,070 и садржај овог Страница, сада, ће се променити 755 00:33:37,070 --> 00:33:41,660 да су подразумеване вредности онога добијате коришћењем ман страницу. 756 00:33:41,660 --> 00:33:44,100 >> Другим речима, ЦС50 референца је поједностављење 757 00:33:44,100 --> 00:33:46,220 од ман странице од стране особља, за студенте. 758 00:33:46,220 --> 00:33:49,320 Нарочито, они мање удобна и између, тако да 759 00:33:49,320 --> 00:33:51,660 не морају да покушају да оконча Твој ум око, искрено, 760 00:33:51,660 --> 00:33:55,030 неке прилично Цриптиц синтакса и документација понекад. 761 00:33:55,030 --> 00:33:57,650 >> Па имајте то на уму у данима који долазе. 762 00:33:57,650 --> 00:33:59,560 И ево, опет, је Замила. 763 00:33:59,560 --> 00:34:03,255 Хајде сада поставим питање које је мало људско приступачан. 764 00:34:03,255 --> 00:34:05,380 Захваљујући Цханг, ко је био штампање више слонове 765 00:34:05,380 --> 00:34:07,090 нонстоп у последњих неколико дана. 766 00:34:07,090 --> 00:34:09,730 Имамо прилику да најмање један од њих далеко. 767 00:34:09,730 --> 00:34:13,239 Ако бисмо могли да добијемо само једну волонтера да дођу горе да скрене на екрану. 768 00:34:13,239 --> 00:34:14,530 А овде? 769 00:34:14,530 --> 00:34:15,340 >> Дођи горе. 770 00:34:15,340 --> 00:34:16,720 Како се зовеш? 771 00:34:16,720 --> 00:34:17,219 Алекс: Алекс. 772 00:34:17,219 --> 00:34:17,760 Давид Ј. Малан: Алекс. 773 00:34:17,760 --> 00:34:18,259 У реду. 774 00:34:18,259 --> 00:34:19,388 Алек, хајде горе. 775 00:34:19,388 --> 00:34:21,679 Ми смо о томе да видимо ваше рукопис на екрану овде. 776 00:34:21,679 --> 00:34:24,325 777 00:34:24,325 --> 00:34:25,570 У реду, драго ми је да смо се упознали. 778 00:34:25,570 --> 00:34:26,429 >> Алекс: Драго ти да смо се упознали. 779 00:34:26,429 --> 00:34:27,512 >> Давид Ј. Малан: У реду. 780 00:34:27,512 --> 00:34:28,969 Дакле, Супер једноставна вежба. 781 00:34:28,969 --> 00:34:31,440 Бар није висока за добити слона данас. 782 00:34:31,440 --> 00:34:33,439 Играте улогу гетстринг. 783 00:34:33,439 --> 00:34:35,980 И ја ћу да вам само рећи Стринг који сте стечен. 784 00:34:35,980 --> 00:34:38,080 И претпоставимо да вас, гетстринг, позвани. 785 00:34:38,080 --> 00:34:42,480 И људски, као и ја, има откуцан Замила, Ж-А-М-И-Л-А. 786 00:34:42,480 --> 00:34:45,650 Само напред и пишу на Замила екран као да сте га добили 787 00:34:45,650 --> 00:34:47,250 и да га чувају негде у меморији. 788 00:34:47,250 --> 00:34:52,370 789 00:34:52,370 --> 00:34:55,570 >> Остављајући простор за шта ће бити неколико Други вордс-- то је у реду, наставите. 790 00:34:55,570 --> 00:34:59,620 >> [СМЕХ] 791 00:34:59,620 --> 00:35:00,800 >> Дакле Замила, одлично. 792 00:35:00,800 --> 00:35:04,880 Дакле, сада претпоставимо да, гетстринг, поново звао. 793 00:35:04,880 --> 00:35:09,350 И због тога, ја дати вам, у тастатура, са другим именом, Белинда. 794 00:35:09,350 --> 00:35:17,560 795 00:35:17,560 --> 00:35:18,060 У реду. 796 00:35:18,060 --> 00:35:22,380 И сада следећи пут гетстринг ис звао, куцам у нечему, као Габе, 797 00:35:22,380 --> 00:35:27,560 Г-А-Б-Е. Ти стварно узимаш срца радне меморије. 798 00:35:27,560 --> 00:35:29,631 Што је цртање све потпуно насумично. 799 00:35:29,631 --> 00:35:30,130 У реду. 800 00:35:30,130 --> 00:35:31,104 >> [СМЕХ] 801 00:35:31,104 --> 00:35:32,520 Алекс: Жао ми је мој рукопис је лоше. 802 00:35:32,520 --> 00:35:33,770 Давид Ј. Малан: Не, то је у реду. 803 00:35:33,770 --> 00:35:40,480 А како би било да Роб, Р-О-Б. У реду. 804 00:35:40,480 --> 00:35:41,020 Добро. 805 00:35:41,020 --> 00:35:43,853 Па нисам очекујете да врста лежи ствари на овај начин. 806 00:35:43,853 --> 00:35:45,020 Али можемо направити овај посао. 807 00:35:45,020 --> 00:35:48,810 Па како идете о полагању ових карактера у меморији? 808 00:35:48,810 --> 00:35:51,310 Другим речима, ако мислимо на Овај правоугаони црни екран 809 00:35:51,310 --> 00:35:53,550 као да представљају рачунара РАМ или меморија. 810 00:35:53,550 --> 00:35:55,850 >> И сећам се да је само РАМ гомила бајтова, 811 00:35:55,850 --> 00:35:57,480 и бајтова гомилу битова. 812 00:35:57,480 --> 00:35:59,350 А бита су некако спроводи, углавном 813 00:35:59,350 --> 00:36:01,119 са неком врстом Струја у хардверу. 814 00:36:01,119 --> 00:36:03,160 Дакле, то је нека врста Раслојавање смо причали о 815 00:36:03,160 --> 00:36:04,510 и сада може узети здраво за готово. 816 00:36:04,510 --> 00:36:07,020 Како сте то одлучују где да пишу 817 00:36:07,020 --> 00:36:11,634 Роб против Габе против Белинда против Замила? 818 00:36:11,634 --> 00:36:14,020 >> Алекс: Управо сам то урадио у нареди да си ми рекао. 819 00:36:14,020 --> 00:36:15,650 >> Давид Ј. Малан: И то је истина. 820 00:36:15,650 --> 00:36:20,100 Али оно управља, где сте ставили Име Белинда је и име Габе се? 821 00:36:20,100 --> 00:36:20,764 >> Алекс: Ништа? 822 00:36:20,764 --> 00:36:22,930 Давид Ј. Малан: [Смех] Тако то ради, то је у реду. 823 00:36:22,930 --> 00:36:25,290 Дакле, компјутери су мало више уредно од тога. 824 00:36:25,290 --> 00:36:29,000 Па кад смо имплемент-- останемо тамо за само тренутак-- када смо заправо 825 00:36:29,000 --> 00:36:31,470 спроведе нешто слично гетстринг у рачунару, 826 00:36:31,470 --> 00:36:34,480 Замила можда изнео прилично као што сте радили на екрану, тамо. 827 00:36:34,480 --> 00:36:36,660 >> И шта је кључ приметити овде, шта је Алек урадио, 828 00:36:36,660 --> 00:36:40,260 је да постоји нека врста разграничења међу свака од ових речи, зар не? 829 00:36:40,260 --> 00:36:46,580 Нисте написали З-А-М-И-Л-А-Б-Е-Л-И-Н-Д-А-Г-А-Б-- 830 00:36:46,580 --> 00:36:49,740 другим речима, постоји нека врста разграничења која изгледа као да се, 831 00:36:49,740 --> 00:36:52,370 врста, Рандом размак између ових различитих речи. 832 00:36:52,370 --> 00:36:54,120 Али то је добро, јер ми људи могу сада 833 00:36:54,120 --> 00:36:56,470 визуализују да су четири различита Стрингс. 834 00:36:56,470 --> 00:36:59,540 То није само једна секвенца од много карактера. 835 00:36:59,540 --> 00:37:04,190 Дакле рачунар, а затим, у међувремену, може потрајати стринг као што Замила, 836 00:37:04,190 --> 00:37:07,220 стави сваки од тих писама унутар бајт меморије. 837 00:37:07,220 --> 00:37:10,400 Али тај број је много већи, наравно, од шест знакова. 838 00:37:10,400 --> 00:37:11,690 >> Постоји читава гомила РАМ. 839 00:37:11,690 --> 00:37:15,330 Па одсада, ово Грид кутија иде 840 00:37:15,330 --> 00:37:17,560 да представља оно што Алекс управо учинио овде на екрану. 841 00:37:17,560 --> 00:37:20,937 А сада, Алекс, можемо да вам је понудити плаве или наранџасте слон из Цханг. 842 00:37:20,937 --> 00:37:22,270 Алекс: Ја ћу узети Блуе Елепхант. 843 00:37:22,270 --> 00:37:23,120 Давид Ј. Малан: Блуе Елепхант. 844 00:37:23,120 --> 00:37:25,580 Тако велики аплауз, Ако будемо могли, за Алек овде. 845 00:37:25,580 --> 00:37:26,100 >> [АППЛАУСЕ] 846 00:37:26,100 --> 00:37:26,766 >> Алекс: Хвала. 847 00:37:26,766 --> 00:37:28,820 Давид Ј. Малан: Хвала. 848 00:37:28,820 --> 00:37:36,230 Па Такеаваи је да, иако Паттерн врста променила током времена, овде 849 00:37:36,230 --> 00:37:40,430 на табли, било је то демаркација између различитих жице 850 00:37:40,430 --> 00:37:42,610 да Алекс добио за нас. 851 00:37:42,610 --> 00:37:45,230 Сада компјутери, искрено, могао да уради исту ствар. 852 00:37:45,230 --> 00:37:48,210 Они су могли да некако плоп Стрингс било где у РАМ. 853 00:37:48,210 --> 00:37:50,710 Овамо, овамо, овде, овде. 854 00:37:50,710 --> 00:37:52,020 >> Они су могли да ураде управо то. 855 00:37:52,020 --> 00:37:54,280 Али, наравно, то је вероватно није најбоља планирање. 856 00:37:54,280 --> 00:37:54,780 Зар не? 857 00:37:54,780 --> 00:37:57,340 Ако ја стално питао да Алек добити имена, вероватно бих му 858 00:37:57,340 --> 00:38:01,370 стави још овде, можда горе овде, овамо, овамо, на крају 859 00:38:01,370 --> 00:38:02,211 овамо. 860 00:38:02,211 --> 00:38:05,460 Али са мало више планирања, свакако, могли бисмо да постави ствари више чисто. 861 00:38:05,460 --> 00:38:07,350 И заиста, то је оно што компјутер ради. 862 00:38:07,350 --> 00:38:10,720 >> Али цака је у томе Ако је следеће стринг сам се 863 00:38:10,720 --> 00:38:14,050 после Замила је нешто као Белинда, 864 00:38:14,050 --> 00:38:17,929 предложи где смо могли писати слово Б у вези са овим мрежу? 865 00:38:17,929 --> 00:38:18,720 Где би ти? 866 00:38:18,720 --> 00:38:21,480 Са десне стране А, испод З, испод А? 867 00:38:21,480 --> 00:38:23,204 Шта би твој први инстинкт бити? 868 00:38:23,204 --> 00:38:24,120 ПУБЛИКА: Испод З. 869 00:38:24,120 --> 00:38:25,100 Давид Ј. Малан: Па испод З. 870 00:38:25,100 --> 00:38:26,530 И то је прилично једноставно, зар не? 871 00:38:26,530 --> 00:38:29,321 То је врста уредан, то је оно што ми радимо на тастатури, када смо погодили Ентер, 872 00:38:29,321 --> 00:38:31,770 или е-маил приликом набрајања списак ствари. 873 00:38:31,770 --> 00:38:34,310 Али реалност је да компјутери покушавају да буду ефикаснији, 874 00:38:34,310 --> 00:38:37,170 и уклопе свакако толико Подаци у РАМ је то могуће, 875 00:38:37,170 --> 00:38:38,890 тако да не губите бајтова. 876 00:38:38,890 --> 00:38:41,545 Тако да не губите било ком екрану некретнина. 877 00:38:41,545 --> 00:38:44,170 А проблем, међутим, јесте да ако се буквално ставили писмо 878 00:38:44,170 --> 00:38:49,940 Б после, како ћемо знам где име Замила завршава 879 00:38:49,940 --> 00:38:51,840 и име Белинда почиње? 880 00:38:51,840 --> 00:38:55,270 Тако да само људи предложио, па, хит Ентер, у суштини. 881 00:38:55,270 --> 00:38:56,410 Спусти га доле. 882 00:38:56,410 --> 00:38:59,750 Или чак као Алекс учинио, само почетак писање Следеће име испод претходног, 883 00:38:59,750 --> 00:39:01,583 и испод оног, и онда испод оног. 884 00:39:01,583 --> 00:39:02,510 То је визуелни знак. 885 00:39:02,510 --> 00:39:05,960 >> Рачунари још један визуални траг, али је мало више сажето. 886 00:39:05,960 --> 00:39:07,840 То је тај лик фанки. 887 00:39:07,840 --> 00:39:11,890 Бацксласх 0, што је можда подсећа на знак обрнуте косе Н, 888 00:39:11,890 --> 00:39:12,640 и тако даље, сад. 889 00:39:12,640 --> 00:39:14,120 Посебне Есцапе секвенце. 890 00:39:14,120 --> 00:39:19,120 Бацксласх 0 је начин представља осам нула битова у реду. 891 00:39:19,120 --> 00:39:22,000 0000 0000. 892 00:39:22,000 --> 00:39:26,130 >> Начин на који изражавају то не погодио број нула на тастатури, 893 00:39:26,130 --> 00:39:28,140 јер је у чињеници да је АСЦИИ знак. 894 00:39:28,140 --> 00:39:30,990 Изгледа као број, али је заправо децимални број 895 00:39:30,990 --> 00:39:35,910 који представља кружног глиф, кружни фонт. 896 00:39:35,910 --> 00:39:38,410 У међувремену, бацксласх нула значи, буквално 897 00:39:38,410 --> 00:39:40,700 ставио осам нула бајтова овде због мене. 898 00:39:40,700 --> 00:39:42,136 >> Дакле, ово је донекле произвољна. 899 00:39:42,136 --> 00:39:44,260 Могли смо користили сваку образац битова, али свет 900 00:39:44,260 --> 00:39:46,610 одлучио неколико година Пре, то представља 901 00:39:46,610 --> 00:39:49,710 крај низа у меморији, само стави гомилу нула. 902 00:39:49,710 --> 00:39:51,000 Зато можемо открити то. 903 00:39:51,000 --> 00:39:54,790 Сада то значи да нема писмо писмо може бити представљена са нула. 904 00:39:54,790 --> 00:39:58,480 >> Али то је у реду, ми смо већ видели да смо са 65 на горе у 97 на горе. 905 00:39:58,480 --> 00:40:00,290 Нисмо добили нигде близу нуле све. 906 00:40:00,290 --> 00:40:03,040 907 00:40:03,040 --> 00:40:06,540 Дакле, Белинда у меморији рачунара заправо ће ићи овде. 908 00:40:06,540 --> 00:40:09,764 Ја сам га извући само у жутом да скрене пажњу на то. 909 00:40:09,764 --> 00:40:11,680 И обавештење, такође, ово је потпуно произвољна. 910 00:40:11,680 --> 00:40:12,680 Ја сам га нацртана као матрице. 911 00:40:12,680 --> 00:40:14,460 Као, РАМ-а је само нека физички објекат. 912 00:40:14,460 --> 00:40:17,300 То не мора нужно редове и колоне, по себи. 913 00:40:17,300 --> 00:40:20,490 То је само има гомилу бајтова имплементиран у хардверу некако. 914 00:40:20,490 --> 00:40:22,817 Али, ако после Белинда И откуцан у име Габе-а, 915 00:40:22,817 --> 00:40:25,650 он ће се завршити овде у меморији, и ако сам откуцао у име Давен-а, 916 00:40:25,650 --> 00:40:27,316 На пример, он ће завршити овде. 917 00:40:27,316 --> 00:40:29,310 И ја могу да наставе да пишу још више имена. 918 00:40:29,310 --> 00:40:32,100 >> Нажалост, ако покушам да написати супер дуго име, 919 00:40:32,100 --> 00:40:33,730 Можда сам на крају понестало меморије. 920 00:40:33,730 --> 00:40:37,810 У ком случају, гетстринг је ће да се врати НУЛЛ, као што смо рекли. 921 00:40:37,810 --> 00:40:41,720 Али на срећу, бар у овом визуелном овде, нисмо добили баш тако далеко. 922 00:40:41,720 --> 00:40:45,860 >> Оно што је лепо време је да ова Генерална идеја третирања ствари 923 00:40:45,860 --> 00:40:49,720 као у кутијама представник карактеристика Ц 924 00:40:49,720 --> 00:40:52,690 и много језика, познат као низ. 925 00:40:52,690 --> 00:40:55,490 Низ је још један тип података. 926 00:40:55,490 --> 00:40:57,380 То је структура података, ако хоћете. 927 00:40:57,380 --> 00:41:01,160 Структура у смислу заиста, некако, изгледа као кутија, барем 928 00:41:01,160 --> 00:41:02,320 у својој глави. 929 00:41:02,320 --> 00:41:09,680 Низ је суседни редослед истих врста података, 930 00:41:09,680 --> 00:41:11,330 бацк то бацк у леђа уз леђа. 931 00:41:11,330 --> 00:41:14,720 >> Дакле стринг, у другим речи, је низ карактера. 932 00:41:14,720 --> 00:41:16,120 Низ знакова. 933 00:41:16,120 --> 00:41:19,070 Али испоставило се да можете имати Низови гомиле ствари. 934 00:41:19,070 --> 00:41:21,870 У ствари, можемо чак ставити Бројеви у низу. 935 00:41:21,870 --> 00:41:23,920 Тако форми у којој ћемо почети 936 00:41:23,920 --> 00:41:26,590 изјављујући ове податке Структура познат као низ 937 00:41:26,590 --> 00:41:28,250 такође ће користити угласте заграде. 938 00:41:28,250 --> 00:41:31,500 Али ови квадратних заграде ће имају другачије значење у овом контексту. 939 00:41:31,500 --> 00:41:33,450 >> Па да видимо како следи. 940 00:41:33,450 --> 00:41:36,780 Претпоставимо да сам отворио нову фајл овде. 941 00:41:36,780 --> 00:41:38,535 И ја Сачувај као агес.ц. 942 00:41:38,535 --> 00:41:41,280 943 00:41:41,280 --> 00:41:43,470 А ја ћу спасити у мојој фасцикли овде. 944 00:41:43,470 --> 00:41:46,130 А сада ћу ићи напред и почните да куцате нешто 945 00:41:46,130 --> 00:41:53,940 као и укључују ЦС50.х, укључују стдио.х, маин празнину. 946 00:41:53,940 --> 00:41:57,370 И онда унутар овде, желим прво имати Инт зове старост. 947 00:41:57,370 --> 00:42:01,371 >> И ја ћу да користим да би добио инт од корисника за свој узраст. 948 00:42:01,371 --> 00:42:04,620 Али овај програм има за циљ да се користи од стране више људи, за било ког контекста. 949 00:42:04,620 --> 00:42:05,490 Имам линију људи. 950 00:42:05,490 --> 00:42:08,281 Сви они треба да куцате њихове старосна граница за можда неки, не знам, 951 00:42:08,281 --> 00:42:10,530 конкуренција, или догађај да су они стигли на. 952 00:42:10,530 --> 00:42:13,030 Дакле, следећи човек, ја потребан још један променљиву. 953 00:42:13,030 --> 00:42:15,790 >> Јер ако сам радим старост добија Тоноване, то је 954 00:42:15,790 --> 00:42:18,500 ће разбије, или преписати старост претходне особе. 955 00:42:18,500 --> 00:42:19,760 Тако да није добро. 956 00:42:19,760 --> 00:42:21,790 Дакле, мој први инстинкт може бити, Ох, у реду, 957 00:42:21,790 --> 00:42:26,260 ако желим да се више народној агес-- Назовимо овај аге1, 958 00:42:26,260 --> 00:42:31,280 инт аге2 добија инт, инт Аге3 добија Тоноване. 959 00:42:31,280 --> 00:42:35,340 А сада ћу користити неки Псеудокод код овде. 960 00:42:35,340 --> 00:42:37,679 >> Уради нешто са тим бројевима. 961 00:42:37,679 --> 00:42:40,470 Ми ћемо оставити за неки други дан оно ми радимо тамо, јер ми само 962 00:42:40,470 --> 00:42:44,200 брига за тренутак О аге1, аге2, Аге3. 963 00:42:44,200 --> 00:42:46,450 На жалост, када сам саставити овај програм 964 00:42:46,450 --> 00:42:51,140 и ставио га испред стварних корисника, шта је у основи лошег дизајна 965 00:42:51,140 --> 00:42:53,890 Одлука Изгледа да сам направио? 966 00:42:53,890 --> 00:42:54,624 Да? 967 00:42:54,624 --> 00:42:55,499 ПУБЛИКА: [неразумљиво] 968 00:42:55,499 --> 00:42:58,071 969 00:42:58,071 --> 00:42:59,820 Давид Ј. Малан: Да, Нисам ни покушао 970 00:42:59,820 --> 00:43:02,028 да схватите како многи старости ја стварно стало? 971 00:43:02,028 --> 00:43:05,380 Ако имам мање од троје људи овде, а самим тим мање од три века, 972 00:43:05,380 --> 00:43:07,260 Ја сам и даље слепо очекујем три. 973 00:43:07,260 --> 00:43:08,720 Боже сачувај четворо људи појавили. 974 00:43:08,720 --> 00:43:10,990 Мој програм једноставно неће ни да их подржати. 975 00:43:10,990 --> 00:43:13,280 >> И тако то, дуга прича Укратко, није добра навика. 976 00:43:13,280 --> 00:43:13,780 Зар не? 977 00:43:13,780 --> 00:43:16,530 Био сам у суштини копирање и налепите код и само прилагођавати 978 00:43:16,530 --> 00:43:17,430 имена променљивих. 979 00:43:17,430 --> 00:43:22,410 И, мој Боже, ако сте имали, а не три годинама, али 10 или 100, или чак 6.500 980 00:43:22,410 --> 00:43:23,820 студенти, на пример. 981 00:43:23,820 --> 00:43:26,950 Ово неће бити нарочито елегантан кода или одрживо. 982 00:43:26,950 --> 00:43:29,200 Идеш морати да Препишете програма сваког пут 983 00:43:29,200 --> 00:43:30,760 Ваш број људи промене. 984 00:43:30,760 --> 00:43:35,090 >> Тако на срећу, у нашој стварна агес.ц фајл за данас, 985 00:43:35,090 --> 00:43:36,970 имамо паметнија решења. 986 00:43:36,970 --> 00:43:39,800 Прво, ја ћу да позајмим изградити смо користили неколико пута, 987 00:43:39,800 --> 00:43:43,744 ово урадили док петље, како би се број људи у соби. 988 00:43:43,744 --> 00:43:46,910 Ја ћу само да малтретира корисника, поново и опет, све док он или она ми даје 989 00:43:46,910 --> 00:43:49,260 вредност н то позитиван цео број. 990 00:43:49,260 --> 00:43:51,590 >> Могао сам користио, последњи Време је да позитивно инт. 991 00:43:51,590 --> 00:43:53,720 Али ми немамо то стварно, па сам отишао напред 992 00:43:53,720 --> 00:43:55,660 и поново реализује ову идеју. 993 00:43:55,660 --> 00:43:58,410 Сада овде доле, то је нови трик. 994 00:43:58,410 --> 00:44:02,260 У складу 27, као и коментаре у ред 26 сугерише, 995 00:44:02,260 --> 00:44:05,180 прогласити низ у коме за чување свачији узраст. 996 00:44:05,180 --> 00:44:09,320 >> Дакле, ако желите да добијете, а не један ИНТ, не два интс, али цела гомила интс. 997 00:44:09,320 --> 00:44:13,800 Конкретно н целих бројева, н су можда бити три, можда 100, можда 1000. 998 00:44:13,800 --> 00:44:17,570 Синтакса, једноставно, да се рецимо, који тип података хоћеш? 999 00:44:17,570 --> 00:44:19,620 Шта желите да позовете да комад меморије? 1000 00:44:19,620 --> 00:44:23,530 Шта желите да позовете мрежу да изгледа овако сликовито? 1001 00:44:23,530 --> 00:44:27,700 >> И у загради овде, ви кажете колики желите да низ да буде. 1002 00:44:27,700 --> 00:44:30,450 И тако раније, када сам рекао синтакса је мало другачија овде, 1003 00:44:30,450 --> 00:44:33,614 ми и даље користимо угластим заградама, али када сам декларисање низ, 1004 00:44:33,614 --> 00:44:35,530 број унутрашњост угластим заградама средства 1005 00:44:35,530 --> 00:44:37,610 колики желиш низ да буде. 1006 00:44:37,610 --> 00:44:42,490 >> Насупрот томе, када смо користили с носач сам малопре, с, стринг, 1007 00:44:42,490 --> 00:44:46,820 је заиста низ карактера, али кад не декларисање променљиву, 1008 00:44:46,820 --> 00:44:49,760 као и овде ову кључну реч, једноставно добијате 1009 00:44:49,760 --> 00:44:54,280 специфичан индекс, специфична елеменат из тог низа. 1010 00:44:54,280 --> 00:44:57,090 Једном када знамо да, остало ово је једноставан. 1011 00:44:57,090 --> 00:45:00,765 Ако нови сам први пут ћу да одштампате шта је старост особа број И. 1012 00:45:00,765 --> 00:45:03,890 Где сам само да кажем човек број један, Лице број два, човек број три. 1013 00:45:03,890 --> 00:45:06,306 >> А ја само радим аритметику, па да као нормални људи, 1014 00:45:06,306 --> 00:45:09,030 рачунамо од један за ово програма, а не од нуле. 1015 00:45:09,030 --> 00:45:13,620 Онда зовем Тонированние, али ја чувати одговор у векове заграде и. 1016 00:45:13,620 --> 00:45:16,610 Што је и'тх старост у низу. 1017 00:45:16,610 --> 00:45:21,640 Па док смо задњи пут били лечењу ове кутије као карактера за име Замила а, 1018 00:45:21,640 --> 00:45:22,490 и други. 1019 00:45:22,490 --> 00:45:26,530 Сада, ови кутије представљају 32 бита, или четири бајта 1020 00:45:26,530 --> 00:45:29,510 у којем можемо да ускладишти инт, инт, инт. 1021 00:45:29,510 --> 00:45:31,890 Сви који, опет, су иста врста података. 1022 00:45:31,890 --> 00:45:33,890 >> Сад урадим нешто глупо, Као време пролази, само 1023 00:45:33,890 --> 00:45:35,510 да оправда писања овог програма. 1024 00:45:35,510 --> 00:45:40,050 А онда овде, опет поновити преко низа говорећи годину дана од сада, 1025 00:45:40,050 --> 00:45:43,090 Лице број један воља бити нешто година. 1026 00:45:43,090 --> 00:45:45,010 И да схватим да матх-- Мислим, ово 1027 00:45:45,010 --> 00:45:49,260 није веома компликована аритхметиц-- Ја само додајте једну њиховом узрасту. 1028 00:45:49,260 --> 00:45:51,240 Само да покажу, опет, ово. 1029 00:45:51,240 --> 00:45:57,910 >> Баш као што могу индекса у стринг, с, Могу ли индекса у матрици векова, 1030 00:45:57,910 --> 00:45:59,950 као да постоји. 1031 00:45:59,950 --> 00:46:03,340 Па где ће то да нас воде? 1032 00:46:03,340 --> 00:46:07,070 Тако да ћемо видети, на крају, Неколико ствари у данима који долазе. 1033 00:46:07,070 --> 00:46:09,510 Један, све ово време, када је писања своје програме, 1034 00:46:09,510 --> 00:46:11,239 као Марио, похлепан, кредит. 1035 00:46:11,239 --> 00:46:13,780 Сте куцате име Програм и ударају Ентер. 1036 00:46:13,780 --> 00:46:15,610 А онда постаје улаз корисника. 1037 00:46:15,610 --> 00:46:18,137 >> Са гетСтринг, Тонированние, гетЛонгЛонг, или слично. 1038 00:46:18,137 --> 00:46:20,720 Али испоставило се да је Ц носача нешто што се зове командна линија 1039 00:46:20,720 --> 00:46:25,740 аргументи, који ће нас пустити заправо добити на речи које куцате, 1040 00:46:25,740 --> 00:46:28,570 На линији трепери, после име вашег програма. 1041 00:46:28,570 --> 00:46:31,430 >> Дакле, у наредним данима, те Можда откуцате нешто попут Цезара, 1042 00:46:31,430 --> 00:46:34,950 или ./цаесар број 13, након тога. 1043 00:46:34,950 --> 00:46:36,070 Видећемо како се то ради. 1044 00:46:36,070 --> 00:46:37,550 Јер је заиста, у Проблем поставили две, ми смо 1045 00:46:37,550 --> 00:46:39,383 ће да вас упознам на мало нечега 1046 00:46:39,383 --> 00:46:42,360 подсећа на Ралпхие је изазов раније картографије. 1047 00:46:42,360 --> 00:46:43,970 Уметност кодирање информација. 1048 00:46:43,970 --> 00:46:46,660 Ово, у ствари, је веома подсећа шта Ралпхие урадио. 1049 00:46:46,660 --> 00:46:51,380 >> Ово је пример шифровања алгоритам се зове РОТ13, Р-О-Т 13. 1050 00:46:51,380 --> 00:46:54,910 Што једноставно значи окрените слова у алфабету 13 места. 1051 00:46:54,910 --> 00:46:58,309 И ако то урадите, видећете сад оно што је, можда, позната фраза. 1052 00:46:58,309 --> 00:47:01,100 Али начин на који ћемо користити То, на крају, више уопште. 1053 00:47:01,100 --> 00:47:04,390 >> У П подесити два, у стандардној издању, ћете спровести неколико шифрама, 1054 00:47:04,390 --> 00:47:06,720 једна се зове Цезар, једна се зове Вигенере. 1055 00:47:06,720 --> 00:47:10,090 Обојица су ротациона шифре, у то некако 1056 00:47:10,090 --> 00:47:11,826 претворити једно слово у различитом писму. 1057 00:47:11,826 --> 00:47:12,950 И Цезар је супер једноставна. 1058 00:47:12,950 --> 00:47:16,220 Сте додали један, додати 13, или неки број до 26. 1059 00:47:16,220 --> 00:47:19,570 Вигенере то ради на по писму основа. 1060 00:47:19,570 --> 00:47:22,140 Дакле Вигенере, као што ћете видети у спец, је много сигурније. 1061 00:47:22,140 --> 00:47:24,973 >> Али на крају дана што ћете бити спровођење и П подесити два, 1062 00:47:24,973 --> 00:47:29,050 је то кључ који сте оба користе за шифровање и дешифровање. 1063 00:47:29,050 --> 00:47:32,160 Позивајући се на процес окретања обичан текст, неки Оригинал Мессаге, 1064 00:47:32,160 --> 00:47:34,490 у ципхер текст, који је нешто шифроване. 1065 00:47:34,490 --> 00:47:36,220 А затим га поново дешифровања. 1066 00:47:36,220 --> 00:47:38,119 >> У хакерске издању, У међувремену, бићете 1067 00:47:38,119 --> 00:47:40,660 задатак са нечим сличним у духу, где ћемо вам дати 1068 00:47:40,660 --> 00:47:44,610 Филе, из типичног Линук, или Мац, или УНИКС зове Етси 1069 00:47:44,610 --> 00:47:47,800 лозинка, која садржи читав гомила корисничких имена и лозинки. 1070 00:47:47,800 --> 00:47:50,932 И те лозинке имати све били шифровани или хасх, 1071 00:47:50,932 --> 00:47:53,140 да тако кажем, више правилно као што ћете видети у спец. 1072 00:47:53,140 --> 00:47:57,090 >> А хакер издање ће изазов ти са узимајући улаз овако, 1073 00:47:57,090 --> 00:47:58,800 и пуцање лозинку. 1074 00:47:58,800 --> 00:48:02,590 То је, фигуринг шта Пассворд људске заправо била. 1075 00:48:02,590 --> 00:48:05,570 Јер, заиста, лозинке генерално нису сачуване у јасан, 1076 00:48:05,570 --> 00:48:08,260 и генерално лозинке би требало да буде тешко погодити. 1077 00:48:08,260 --> 00:48:09,610 То није чест случај. 1078 00:48:09,610 --> 00:48:12,110 >> И оно Мислио сам да урадимо је закључи са пар минута 1079 00:48:12,110 --> 00:48:15,160 поглед на посебно лош избор лозинки 1080 00:48:15,160 --> 00:48:17,260 из филма можда сећате нежно. 1081 00:48:17,260 --> 00:48:18,915 А ако не, треба да изнајмите. 1082 00:48:18,915 --> 00:48:20,070 >> [ВИДЕО РЕПРОДУКЦИЈА] 1083 00:48:20,070 --> 00:48:22,320 >> -Хелмет, Ви Фиенд, шта се дешава? 1084 00:48:22,320 --> 00:48:24,240 Шта то радиш са мојом ћерком? 1085 00:48:24,240 --> 00:48:28,010 >> -Пермит Ми да представим сјајне младе пластични хирург, 1086 00:48:28,010 --> 00:48:30,010 Доктор Филип Сцхлоткин. 1087 00:48:30,010 --> 00:48:35,020 Највећи човек посао нос Цео универзум и Беверли Хилс. 1088 00:48:35,020 --> 00:48:36,140 >> Твоја Височанство. 1089 00:48:36,140 --> 00:48:36,820 >> -Носе Посао? 1090 00:48:36,820 --> 00:48:37,700 Не разумем. 1091 00:48:37,700 --> 00:48:39,070 Она је већ је имао нос. 1092 00:48:39,070 --> 00:48:40,800 То је била њена Свеет 16 присутна. 1093 00:48:40,800 --> 00:48:42,590 >> Не, то није оно што мислите. 1094 00:48:42,590 --> 00:48:44,490 То је много, много горе. 1095 00:48:44,490 --> 00:48:48,160 Ако ми не дају комбинација ваздуха штиту, 1096 00:48:48,160 --> 00:48:52,748 Лекар Сцхлоткин ће дати свој ћерку њен стари нос. 1097 00:48:52,748 --> 00:48:53,748 - [Гаспс] Нооооооооооооо. 1098 00:48:53,748 --> 00:48:57,684 1099 00:48:57,684 --> 00:48:59,652 Одакле ти то? 1100 00:48:59,652 --> 00:49:00,640 >> У реду. 1101 00:49:00,640 --> 00:49:02,506 Рећи ћу, ја ћу рећи. 1102 00:49:02,506 --> 00:49:03,498 >> Не, тата, не. 1103 00:49:03,498 --> 00:49:04,490 Не смете. 1104 00:49:04,490 --> 00:49:06,090 >> У праву си драга моја. 1105 00:49:06,090 --> 00:49:07,390 Ја ћу пропустити свој нови нос. 1106 00:49:07,390 --> 00:49:10,990 Али нећу их рећи Комбинација Без обзира на све. 1107 00:49:10,990 --> 00:49:12,450 >> Врло добро. 1108 00:49:12,450 --> 00:49:14,830 Лекар Сцхлоткин, радите свој најгоре. 1109 00:49:14,830 --> 00:49:15,744 >> Мој задовољство. 1110 00:49:15,744 --> 00:49:19,860 1111 00:49:19,860 --> 00:49:20,800 >> Не! 1112 00:49:20,800 --> 00:49:22,780 Чекај, чекај. 1113 00:49:22,780 --> 00:49:24,000 Рећи ћу. 1114 00:49:24,000 --> 00:49:25,830 Рећи ћу. 1115 00:49:25,830 --> 00:49:28,270 >> -Ја Знао да ће радити. 1116 00:49:28,270 --> 00:49:31,390 У реду, дај ми. 1117 00:49:31,390 --> 00:49:36,220 >> -тхе Комбинација је један. 1118 00:49:36,220 --> 00:49:36,740 >> Један. 1119 00:49:36,740 --> 00:49:37,473 >> Један. 1120 00:49:37,473 --> 00:49:37,972 Два. 1121 00:49:37,972 --> 00:49:38,471 Два. 1122 00:49:38,471 --> 00:49:39,800 Два. 1123 00:49:39,800 --> 00:49:40,300 Три. 1124 00:49:40,300 --> 00:49:40,800 Три. 1125 00:49:40,800 --> 00:49:41,800 Три. 1126 00:49:41,800 --> 00:49:42,300 -Четири. 1127 00:49:42,300 --> 00:49:42,800 -Четири. 1128 00:49:42,800 --> 00:49:44,707 -Четири. 1129 00:49:44,707 --> 00:49:45,521 Пет. 1130 00:49:45,521 --> 00:49:46,430 Пет. 1131 00:49:46,430 --> 00:49:47,930 Пет. 1132 00:49:47,930 --> 00:49:53,480 Па Комбинација је једна, два, три, четири, пет. 1133 00:49:53,480 --> 00:49:56,140 То је најглупља комбинација Сам икада чуо у животу. 1134 00:49:56,140 --> 00:49:58,640 То је врста ствар коју идиот ће имати на свом пртљагу. 1135 00:49:58,640 --> 00:50:00,000 >> Хвала, Ваше Височанство. 1136 00:50:00,000 --> 00:50:01,340 >> [РЕМОТЕ мишем] 1137 00:50:01,340 --> 00:50:02,450 >> Шта сте ви урадили? 1138 00:50:02,450 --> 00:50:03,800 >> -Ја Искључен зида. 1139 00:50:03,800 --> 00:50:05,010 >> Не, ниси, ти искључен цео филм. 1140 00:50:05,010 --> 00:50:06,220 >> -Ја Мора притиснуо погрешно дугме. 1141 00:50:06,220 --> 00:50:07,064 >> Па, га врати се! 1142 00:50:07,064 --> 00:50:07,910 Ставите филм поново! 1143 00:50:07,910 --> 00:50:08,300 >> Да, господине! 1144 00:50:08,300 --> 00:50:08,799 Да, господине. 1145 00:50:08,799 --> 00:50:09,660 Идемо, Арнолд. 1146 00:50:09,660 --> 00:50:10,450 Дођи, Гретцхен. 1147 00:50:10,450 --> 00:50:12,533 Наравно да знам да ћу да ти рачун за ово. 1148 00:50:12,533 --> 00:50:16,720 1149 00:50:16,720 --> 00:50:17,220 Па? 1150 00:50:17,220 --> 00:50:17,802 Да ли то ради? 1151 00:50:17,802 --> 00:50:18,510 Где је краљ? 1152 00:50:18,510 --> 00:50:20,218 >> -То Радили, господине, ми смо имају комбинацију. 1153 00:50:20,218 --> 00:50:20,740 Одлично. 1154 00:50:20,740 --> 00:50:24,810 Сада можемо узети све последњи дах свежег ваздуха од планете Друидиа. 1155 00:50:24,810 --> 00:50:25,890 Која је комбинација? 1156 00:50:25,890 --> 00:50:28,155 >> Један, два, три, четири, пет. 1157 00:50:28,155 --> 00:50:29,890 >> Један, два, три, четири, пет? 1158 00:50:29,890 --> 00:50:30,390 Да. 1159 00:50:30,390 --> 00:50:31,110 То је невероватно. 1160 00:50:31,110 --> 00:50:34,550 Имам исти Комбинација на мом пртљагу. 1161 00:50:34,550 --> 00:50:37,160 Припремите Спацебалл 1 за Непосредни одлазак. 1162 00:50:37,160 --> 00:50:38,160 >> Да, господине. 1163 00:50:38,160 --> 00:50:40,745 >> -И Промените Комбинација на мом пртљагу. 1164 00:50:40,745 --> 00:50:41,578 [ВРАТА ЗАТВАРАЊЕ СОУНД] 1165 00:50:41,578 --> 00:50:42,064 [Цлинк врата удара шлем] 1166 00:50:42,064 --> 00:50:42,550 Ах. 1167 00:50:42,550 --> 00:50:43,383 [ЕНД ВИДЕО РЕПРОДУКЦИЈА] 1168 00:50:43,383 --> 00:50:46,700 Давид Ј. Малан: То је то за ЦС50, видимо се следеће недеље. 1169 00:50:46,700 --> 00:50:49,883 НАРАТОР: А сада, Дееп Мисли, према Давен Фарнхам. 1170 00:50:49,883 --> 00:50:53,160 1171 00:50:53,160 --> 00:50:55,860 >> Давен ФАРНХАМ: Цодинг ин Ц је много теже него нуле. 1172 00:50:55,860 --> 00:50:57,320 принтф, Огреби је лаж. 1173 00:50:57,320 --> 00:50:59,930 1174 00:50:59,930 --> 00:51:01,430 >> [СМЕХ СОУНДБИТЕ] 1175 00:51:01,430 --> 00:51:02,486