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 David J. малая: Добра. 5 00:00:12,230 --> 00:00:16,440 Гэта CS50, і гэта гэта канец тыдня 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 Але мы таксама зірнем на Пару прадметна-арыентаванага problems-- 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 >> Гэта на самай справе вельмі прымітыўная форма і для дзяцей форма cryptopgraphy 15 00:00:46,490 --> 00:00:50,590 прычым гэта кольца мае два disks-- адзін ўнутры і адзін звонку. 16 00:00:50,590 --> 00:00:54,740 І, круцячы адзін з тых, вы можаце істотна выстройваюцца лісты як 17 00:00:54,740 --> 00:00:59,520 праз Z з іншымі літарамі як B праз А. Іншымі словамі, 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 літары, у выніку чаго, калі вы маеце на ўвазе сказаць "А", вы замест сказаць "B" 22 00:01:15,370 --> 00:01:17,280 Вы хочаце сказаць, "B" Вы замест сказаць "C" - 23 00:01:17,280 --> 00:01:20,240 ці нешта больш разумнае чым that-- а затым, нарэшце, 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 Ralphie PARKER: "Так будзе вядома ўсім ў рэзюмэ 30 00:01:37,210 --> 00:01:41,000 што Ральф Паркер сапраўдным прызначаецца членам сіротка Эні Secret 31 00:01:41,000 --> 00:01:44,860 Круг і мае права на ўсе ўшанаванні і перавагі якія адбываюцца ў гэтай ". 32 00:01:44,860 --> 00:01:47,410 >> Ralphie PARKER (якая апавядае): Подпіс сіротка Эні. 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 >> [RADIO балбатня] 38 00:02:00,470 --> 00:02:01,470 Ralphie PARKER: Давай. 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 з The Black пірацкі карабель. 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 Памятаеце Дзеці, толькі членаў з Эні Secret Circle 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 Усталюйце сцяжкі для B-2. 49 00:02:30,060 --> 00:02:34,004 Вось message-- 12, 11, 2-- 50 00:02:34,004 --> 00:02:36,503 Ralphie PARKER (якая апавядае): Я знаходжуся ў сваёй першай таямніцай сустрэчы. 51 00:02:36,503 --> 00:02:40,041 Дыктар: --25, 14, 11, 18, 16-- 52 00:02:40,041 --> 00:02:42,790 Ralphie PARKER (якая апавядае): О, П'ер быў у выдатнай галасавой сёння. 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 Ralphie PARKER (якая апавядае): Дзевяноста секунд праз, я 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 >> Ralphie PARKER (якая апавядае): Я пайшоў да іншага. 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 >> Рэндзі PARKER: Ды добра, Ralphie. 72 00:03:18,157 --> 00:03:19,606 Я павінен ісці! 73 00:03:19,606 --> 00:03:21,538 >> Ralphie PARKER: я зараз спушчуся, Ма. 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 МАЦІ: Ralphie, Рэндзі павінен сысці. 79 00:03:35,522 --> 00:03:36,735 Не маглі б вы выйсці? 80 00:03:36,735 --> 00:03:38,190 >> Ralphie PARKER: Добра, мама! 81 00:03:38,190 --> 00:03:39,787 Я зараз выйду! 82 00:03:39,787 --> 00:03:41,995 Ralphie PARKER (якая апавядае): Я быў усё бліжэй цяпер. 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 >> МАЦІ: Ralphie, Рэндзі павінен ісці! 87 00:03:50,518 --> 00:03:53,635 >> Ralphie PARKER: Я буду з, з розуму сысці! 88 00:03:53,635 --> 00:03:55,343 Ralphie PARKER (Апавядаецца): Амаль там! 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 >> Ralphie PARKER: "Будзьце ўпэўненыя, піць свой Ovaltine ". 98 00:04:10,250 --> 00:04:10,750 Ovaltine? 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 >> Ralphie PARKER: Сукін сын. 103 00:04:21,724 --> 00:04:23,460 >> [Смяецца] 104 00:04:23,460 --> 00:04:27,070 >> David J. малая: Дык што ж тады пробліск на якім крыптаграфіі 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 б далучыцца да нас для CS50 абед, скіравацца ў гэтым URL тут. 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 У нас ёсць Zamyla-- якіх Вы зараз сустрэліся, хутчэй за ўсё, 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 выкарыстоўваючы нешта накшталт GetString. 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 таму strings-- проста ў рэальным world-- 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 Так нагадаем, што "сімвал" - з-ч-а-r-- з'яўляецца адзін з ўбудаваных тыпаў дадзеных у C. 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 Я збіраюся ісці наперад і ствараць файл з імем "stringzero.c," 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 што пустэча тут, чаму гэта Int побач з асноўным, і гэтак далей. 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 І я збіраюся вярнуцца з GetString незалежна ад тыпу карыстальніка ст. 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 А ўнутры майго для цыклу я будзе мець INT I атрымлівае нуль. 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 Я збіраюся зрабіць я менш than-- добра Імя Zamyla з'яўляецца доўгі шэсць літар. 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 А цяпер ўнутры іх кучаравыя брекеты я збіраюся зрабіць Printf, 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 Іншымі словамі, я хачу, каб раздрукаваць i-га характар ​​с. 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 сінтаксічна ў C проста паказаўшы, Я хачу, каб раздрукаваць S: i-га характару. 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 >> АЎДЫТОРЫЯ: Вам трэба Стандарт I / O [неразборліва] 185 00:08:01,580 --> 00:08:02,663 >> David J. малая: Выдатна. 186 00:08:02,663 --> 00:08:06,060 Таму мне трэба стандартны ўвод / выснова. Для чаго Мэта я хачу стандартны ўвод / выснова? 187 00:08:06,060 --> 00:08:06,670 Для Printf. 188 00:08:06,670 --> 00:08:09,220 Так ўключаюць stdio.h. 189 00:08:09,220 --> 00:08:13,490 І вы таксама прапанаваць, каб я ўключыў Бібліятэка CS50 па якой прычыне? 190 00:08:13,490 --> 00:08:14,650 Каб мець радка. 191 00:08:14,650 --> 00:08:17,780 Такім чынам, мы будзем бачыць, што Бібліятэка CS50 у робіць 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 Так ./string0 дазвольце мне павялічыць таму мы можам см больш цесна, што адбываецца. 199 00:08:32,799 --> 00:08:33,850 Enter. 200 00:08:33,850 --> 00:08:37,789 Z-А-М-Y-L-уваходу. 201 00:08:37,789 --> 00:08:39,440 І мы раздрукавалі на імя Zamyla ст. 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 і ўвядзіце з поўнае імя Daven ст. 205 00:08:45,659 --> 00:08:46,450 Сюрпрыз, сюрпрыз. 206 00:08:46,450 --> 00:08:48,021 Enter. 207 00:08:48,021 --> 00:08:48,520 Хм. 208 00:08:48,520 --> 00:08:51,750 Мы не друкуецца Daven сайт поўны імя правільна. 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 Цяпер я зрабіў гэта толькі таму, што Я ведаў, што імя Zamyla ў 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 патэлефанаваўшы функцыю з імем StrLen. 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 Ускосна абвясціўшы бібліятэчную функцыю STRLEN з тыпам знака Int const-- 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.c. 229 00:09:40,500 --> 00:09:43,580 Ускосна абвясціўшы Бібліятэчная функцыя STRLEN. 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 Што можа быць рашэнне яшчэ калі вы ніколі не выкарыстоўвалі StrLen сябе? 234 00:09:56,880 --> 00:09:58,907 >> АЎДЫТОРЫЯ: Частка іншую бібліятэку? 235 00:09:58,907 --> 00:10:00,740 David J. малая: Частка з іншай бібліятэкі. 236 00:10:00,740 --> 00:10:02,400 Так ён абвешчаны, так бы мовіць. 237 00:10:02,400 --> 00:10:07,510 Пра гэта гаворыцца ў некаторым файле акрамя stdio.h і CS50.h. 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 ці вы Google гэта і высветліць. 241 00:10:13,640 --> 00:10:18,150 Ці гэта вы ведаеце, я адкрыў у CS50 абсталяванне, для тэрмінальнай праграмы, якія 242 00:10:18,150 --> 00:10:22,200 проста вялікі, поўны экран версія што ў ніжняй частцы акна GEdit ст. 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 у тым, што загаловак файла функцыю як StrLen вызначаецца. 254 00:10:51,590 --> 00:10:54,170 Так што я збіраюся вярнуцца цяпер да Gedit. 255 00:10:54,170 --> 00:10:59,070 І я збіраюся ісці наперад і дадаць у тут #include 256 00:10:59,070 --> 00:11:00,480 і захавайце файл. 257 00:11:00,480 --> 00:11:04,300 >> Я збіраюся ачысціць экран з Кантроль L Калі Вам не цікава. 258 00:11:04,300 --> 00:11:08,210 І я збіраюся паўторна запусціць марку string.0, кампілюе гэты раз. 259 00:11:08,210 --> 00:11:11,790 ./string.0 Zamyla. 260 00:11:11,790 --> 00:11:15,020 Гэта, здавалася, працавала Адпусці мяне наперад і перагрузілі яго з Дэвенпорт. 261 00:11:15,020 --> 00:11:15,860 Enter. 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 І я буду называць гэты файл string1.c проста 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 як належнае той факт, што мой ноўтбук, і, у сваю чаргу, CS50 прылада 272 00:11:42,600 --> 00:11:47,450 ёсць шмат памяці, шмат RAM, шмат байт прасторы 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 Многае, як Int можа толькі Колькасць так высока, у тэорыі, 279 00:12:03,050 --> 00:12:06,600 Вы можаце ўціснуць толькі так шмат сімвалаў ў АЗП або Random кампутара 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 быў прызначаны вяртаецца значэння некаторыя іншыя функцыі, як GetString, 291 00:12:36,790 --> 00:12:40,200 Я хачу пераканацца, што што яго значэнне з'яўляецца сапраўдным. 292 00:12:40,200 --> 00:12:44,280 Так што я ведаю толькі з прачытаўшы Дакументацыя CS50 для GetString, 293 00:12:44,280 --> 00:12:49,020 што ў канчатковым выніку мы пакажу вам на, што GetString вяртае спецыяльны сімвал 294 00:12:49,020 --> 00:12:53,610 называецца NULL, N-U-L-L ва ўсіх шапкі, калі што не так. 295 00:12:53,610 --> 00:12:55,650 >> Так звычайна, гэта вяртае радок. 296 00:12:55,650 --> 00:12:59,700 Але у адваротным выпадку, калі яна вяртае N-U-L-L-- мы ў рэшце рэшт паглядзець, што на самой справе 297 00:12:59,700 --> 00:13:01,790 азначае: гэта проста азначае, то дрэннае здарылася. 298 00:13:01,790 --> 00:13:05,560 Зараз гэта азначае, гэтак жа, як у пустым, Я магу праверыць стан тут у C, 299 00:13:05,560 --> 00:13:08,830 калі з не роўна NULL. 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 Такім чынам, калі з не роўна NULL, толькі тады 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 пастойце, гэта ы вызначана не роўным гэтаму асаблівага значэння, NULL? 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 І файл з імем string2.c. 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 Цяпер рэальнасць такая, што разумныя кампілятары як Clang можа выправіць гэта для нас 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 >> АЎДЫТОРЫЯ: Инкрементирование I. 332 00:14:37,900 --> 00:14:39,191 >> David J. малая: Инкрементирование я. 333 00:14:39,191 --> 00:14:41,890 Так на кожнай ітэрацыі праз гэты цыкл, кожны цыкл, 334 00:14:41,890 --> 00:14:43,570 Вы павялічваючы I на адзінку. 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 Вы бачылі і ў пакрокавыя ў P набору. 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 David J. малая: Даўжыня радка. 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 David J. малая: Добры пытанне. 376 00:16:27,010 --> 00:16:30,690 Дык чаму ж мы паставіць ++ на канцы я замест пачаткам I? 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 >> Для тых, хто незнаёмы, ёсць яшчэ адзін заявы, у якой вы маглі б зрабіць ++ I. 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 >> David J. малая: справа? 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 >> АЎДЫТОРЫЯ: Вы павінны сказаць Int N? 400 00:17:32,146 --> 00:17:34,020 David J. малая: Вы робіце ня трэба казаць Int N. 401 00:17:34,020 --> 00:17:37,670 Так, таму што мы ўжо казалі, Int, Вам не трэба, каб сказаць гэта зноў. 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 David J. малая: Абсалютна. 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 i-й сімвал, так бы мовіць. 413 00:18:06,050 --> 00:18:10,590 >> І я ўвесь час кажу i-й сімвал таму што на кожнай ітэрацыі гэтага цыклу 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 Тады S Кранштэйн 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 Паколькі радкі, першы знак, г у Zamyla і да лепшага ці да горшага 422 00:18:35,130 --> 00:18:40,490 будзе жыць у кропцы нумар нуль. 423 00:18:40,490 --> 00:18:48,210 >> Добра, так што дазвольце мне прывесці нам сюды, каб Zamyla 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 магчыма для хакера выданне P ўсталяваць адзін. 428 00:18:55,970 --> 00:19:00,320 Але прывядзенне тыпаў толькі ставіцца да здольнасць у C і некаторых іншых мовах 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 А кантэкст, успомніць, з як і тыдзень таму, ASCII. 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 >> Так праз M тут, кропка кропка кропка, лініі с, нагадаем, 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 Так што я збіраюся перайсці да Gedit зноў. 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 ад сённяшняга кода, які завецца ASCII нулявы. 453 00:19:58,350 --> 00:20:01,210 >> І ASCII нуля выглядае наступным чынам. 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 >> David J. малая: пятля. 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 David J. малая: Ня шэсць разоў. 470 00:20:34,830 --> 00:20:35,840 АЎДЫТОРЫЯ: 26 разоў. 471 00:20:35,840 --> 00:20:36,560 David J. малая: 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 Але тады на кожным цыкле, кожная ітэрацыя завесы, я павялічваючы I. 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 І я doing-- зноў, кастынг я, так бы мовіць. 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 Я збіраюся зрабіць ASCII-0 ня dot-- кропка ў. 503 00:21:59,411 --> 00:22:02,160 Звярніце ўвагу, вы, верагодна, зрабіў, што памылкай, паколькі я толькі што зрабіў выпадкова. 504 00:22:02,160 --> 00:22:03,820 Зрабіць ASCII-0. 505 00:22:03,820 --> 00:22:06,090 Цяпер я збіраюся зрабіць ./ascii-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 Дазвольце мне адкрыць ASCII-1.c. 513 00:22:31,220 --> 00:22:38,070 І заўважце, гэтая разумная, накшталт з, растлумачэнне гэтага. 514 00:22:38,070 --> 00:22:41,770 Гэта ASCII-1.c, і заўважыць гэтую вар'ятку рэч. 515 00:22:41,770 --> 00:22:45,120 >> І гэта сапраўды дабіраецца да сэрца аб тым, што кампутары робяць. 516 00:22:45,120 --> 00:22:48,150 Нават пры тым, што мы, людзі б Не разлічвайце па letters-- 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 Можна, вядома, сказаць, што я хачу ініцыялізацыі некаторых зменную c-- 520 00:22:58,680 --> 00:23:03,220 але я мог бы назваць гэта anything-- так з ініцыялізуецца капіталу А. 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 І на самай справе, гэта я выпраўлю online-- павінен быў сказаць гэта, зноў жа, тут. 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 Так з і Б і C гадоў у капіталізацыі 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 Файлы, сярод якіх наш новы сябар, string.h. 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 захоўваць даўжыню радка ў п, замест выкліку STRLEN зноў, 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 >> David J. малая: Падлік кожнага знака. 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 David J. малая: Так што, калі слова is-- калі радок Zamyla, якія starts-- 568 00:25:09,500 --> 00:25:12,380 АЎДЫТОРЫЯ: --вы справу з персанажы separately-- 569 00:25:12,380 --> 00:25:13,690 David J. малая: Добра. 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 Ці з'яўляецца i-га характар ​​ов Вялікага або роўна ніжні рэгістр? 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 David J. малая: А. 579 00:25:37,210 --> 00:25:38,418 Гэта проста эквівалентна гэта. 580 00:25:38,418 --> 00:25:42,310 І не з'яўляецца ключавым словам у C, вы павінны выкарыстанне, раздражняльна, Ампэрсанд Ампэрсанд. 581 00:25:42,310 --> 00:25:47,520 І гэта, наадварот, просіць ёсць S: i-га сімвала меншым ці роўным 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 David J. малая: Гэта праверкі, ці з'яўляецца кожны персанаж з'яўляецца малая лiтара. 594 00:26:24,700 --> 00:26:28,590 Такім чынам, нават больш коратка, з'яўляецца i-й сімвал ов ніжні рэгістр? 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 З'яўляецца S: i-га знака ў ніжнім рэгістры? 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 Чаму я гэта раблю з кранштэйна I мінус гэты выраз тут? 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 >> David J. малая: 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 >> David J. малая: Маленькая з ад вялікі C? 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 з ов кранштэйна I. 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 АЎДЫТОРЫЯ: Capitalizes-- 622 00:27:44,400 --> 00:27:45,691 David J. малая: загалоўным яго. 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 пасля праверкі, калі гэта сапраўды малая лiтара. 626 00:27:54,580 --> 00:27:59,810 У адваротным выпадку, у радку 30, што мне рабіць, калі гэта не малая лiтара, што я 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 ці кажуць, скажам, у класе, дзе яна існуе, у файле з імем ctype.h. 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 Я збіраюся прайсці ў i-й сімвал з S з дапамогай нашага фантазіі новыя абазначэнні 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 >> Цяпер той, хто пісаў гэтыя рэчы, 10s гадоў назад, вы ведаеце, што? 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 Так чалавек TOUPPER. 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 David J. малая: я магу выдаліць яшчэ о, 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 >> David J. малая: я магу выдаліць усю відэлец 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 праходзячы ў ы кранштэйна I, і друку з, з запаўняльнікам% С, 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 АЎДЫТОРЫЯ: Пераканайцеся, што гэта не NULL. 702 00:31:26,390 --> 00:31:28,056 David J. малая: Пераканайцеся, што гэта не NULL. 703 00:31:28,056 --> 00:31:31,030 Так на самай справе, каб зрабіць гэты супер уласна, я павінен зрабіць нешта падобнае, 704 00:31:31,030 --> 00:31:35,300 калі з не NULL, то ісці наперад і выканаць 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 David J. малая: Мог Я раблю рабіць падчас цыкла? 711 00:31:47,270 --> 00:31:50,020 АЎДЫТОРЫЯ: --вы хочаце, каб пераканацца, што вы на самай справе [неразборліва]. 712 00:31:50,020 --> 00:31:51,728 David J. малая: Мог Вы карыстаецеся рабіць падчас? 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 Калі, напрыклад, я проста ўдарыў Калі ласка, увядзіце, ніколі не набраўшы Zamyla. 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 >> АЎДЫТОРЫЯ: Ну, калі вы зрабілі зрабіць [неразборліва], а s-- 724 00:32:18,607 --> 00:32:21,190 David J. малая: О, я бачу, трымаеце атрымліваю радок ад карыстальніка. 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 Стандартны ўвод / выснова, CS50.h, string.h, ctype.h, і ёсць, на самай справе, іншыя. 733 00:32:41,550 --> 00:32:44,460 Некаторыя з вас выявілі Матэматычная бібліятэка math.h, 734 00:32:44,460 --> 00:32:48,200 Але дазвольце мне прадставіць вам, зараз, каб гэта рэсурс, які персанал CS50, Дэвин, 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 Яна называецца CS50 спасылка. 738 00:32:54,870 --> 00:32:58,230 >> Які проста каб даць вам хуткі Смак гэтага, працуе наступным чынам. 739 00:32:58,230 --> 00:33:00,740 Пусціце мяне да reference.cs50.net. 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 Але калі я ўсё роўна, на дадзены момант, пра што-то накшталт STRLEN, 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 >> Іншымі словамі, CS50 спасылка спрашчэнне 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 Дык вось, зноў жа, з'яўляецца Zamyla. 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 ALEX: Алекс. 772 00:34:17,219 --> 00:34:17,760 David J. малая: Алекс. 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 >> ALEX: Добры вы сустрэцца з вамі. 779 00:34:26,429 --> 00:34:27,512 >> David J. малая: Добра. 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 Вы граеце ролю GetString. 783 00:34:33,439 --> 00:34:35,980 І я збіраюся проста сказаць вам, радок, калі вы атрымалі. 784 00:34:35,980 --> 00:34:38,080 І выкажам здагадку, што вас, GetString, былі названыя. 785 00:34:38,080 --> 00:34:42,480 І чалавек, як і я, мае ўвялі ў Zamyla, Z-A-Y-M-L-A. 786 00:34:42,480 --> 00:34:45,650 Проста ісці наперад і напісаць Zamyla на Экран, як быццам вы атрымалі яго 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 >> Пакідаючы месца для таго, што будзе некалькі іншы words-- гэта нармальна, працягвайце ісці. 790 00:34:55,570 --> 00:34:59,620 >> [Смех] 791 00:34:59,620 --> 00:35:00,800 >> Так Zamyla, Выдатна. 792 00:35:00,800 --> 00:35:04,880 Так цяпер, што вам, GetString, называюцца зноў. 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 І цяпер у наступны раз GetString з'яўляецца называецца, я друкую ў нешта накшталт Гейба, 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 ALEX: На жаль мой почырк дрэнна. 802 00:35:32,520 --> 00:35:33,770 David J. малая: Не, гэта нармальна. 803 00:35:33,770 --> 00:35:40,480 А як наконт Роба, R-O-B. Добра. 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 як прадстаўляюць кампутара RAM, або памяці. 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 Роб супраць Гейб супраць Белинда супраць Zamyla? 818 00:36:11,634 --> 00:36:14,020 >> ALEX: Я толькі што зрабіў гэта ў замовіць, што вы сказалі мне. 819 00:36:14,020 --> 00:36:15,650 >> David J. малая: І то дакладна. 820 00:36:15,650 --> 00:36:20,100 Але тое, што рэгулюецца, дзе вы паклалі Імя Белинды і імя Гейба? 821 00:36:20,100 --> 00:36:20,764 >> ALEX: Нічога? 822 00:36:20,764 --> 00:36:22,930 David J. малая: [Смяецца] Так што працуе, гэта нармальна. 823 00:36:22,930 --> 00:36:25,290 Так кампутары трохі больш спарадкаваны, чым гэта. 824 00:36:25,290 --> 00:36:29,000 І таму, калі мы implement-- застацца там на працягу толькі moment-- калі мы на самай справе 825 00:36:29,000 --> 00:36:31,470 ажыццявіць нешта падобнае GetString ў кампутары, 826 00:36:31,470 --> 00:36:34,480 Zamyla можа быць выкладзены ў значнай ступені як вы рабілі на экране, ёсць. 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 Вы не пісаў Z-А-М-Y-L-А-В-Е-Д-І-Н-Д-А-Г-А-В- 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 Такім чынам, кампутар, то, між тым, можа заняць радок як Zamyla, 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 ALEX: Я вазьму сіні слон. 843 00:37:22,270 --> 00:37:23,120 David J. малая: сіні слон. 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 >> ALEX: Дзякуй. 847 00:37:26,766 --> 00:37:28,820 David J. малая: Дзякуй. 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 пасля Zamyla нешта як Белинда, 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 Для справа ад A, ніжэй г, ніжэй а? 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 David J. малая: Так ніжэй г. 870 00:38:25,100 --> 00:38:26,530 І гэта ў значнай проста, ці не так? 871 00:38:26,530 --> 00:38:29,321 Гэта збольшага ахайна, гэта тое, што мы робім на клавіятуры, калі мы трапілі Enter, 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 б пасля, як мы збіраемся ведаць, дзе сканчаецца імя Zamyla ў 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 таму што ў тым, што ўяўляе сабой ASCII-сімвал. 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 Але калі пасля Belinda I набраў у імя Гейба, 915 00:40:22,817 --> 00:40:25,650 ён будзе ў канчатковым выніку тут, у памяці, і калі я набраў у імя Daven ў, 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 У гэтым выпадку, GetString з'яўляецца збіраецца вярнуць NULL, як мы ўжо казалі. 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 як у скрынках з'яўляецца Прадстаўнік асаблівасць C 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 І я захаваць гэта як ages.c. 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 як уключыць CS50.h, ўключаюць stdio.h, тап_п пустэчу. 946 00:41:53,940 --> 00:41:57,370 А потым ўнутры тут, я хачу спачатку мець Int званы ўзрост. 947 00:41:57,370 --> 00:42:01,371 >> І я збіраюся выкарыстоўваць гэта, каб атрымаць Int ад карыстальніка для яго ўзросту. 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 >> Таму што, калі я проста раблю ўзрост атрымлівае GetInt, гэта 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 калі я хачу, каб атрымаць некалькі народных ages-- давайце назавем гэты age1, 958 00:42:26,260 --> 00:42:31,280 Int age2 атрымлівае Int, Int Age3 атрымлівае GetInt. 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 сыход на дадзены момант аб age1, age2, Age3. 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 David J. малая: Так, Я нават не спрабаваў 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, ці нават 6500 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 >> Так, на шчасце, у наш фактычнае ages.c файл на сёння, 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 >> Я мог бы выкарыстаць, у мінулым Час пяройдзем станоўчы Int. 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 >> Так што калі вы хочаце атрымаць, не адзін Int, ня два цэлых, але цэлая куча цэлымі. 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 >> Наадварот, калі мы выкарыстоўвалі S Кранштэйны я хвіліну назад, з, радок, 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 Калі новая я першы буду раздрукаваць што ўзрост чалавекі колькасці I. 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 Тады я называю GetInt, але я захоўваю адказ ва ўзросце дужкі I. 1016 00:45:13,620 --> 00:45:16,610 Які i-га ўзрост у масіве. 1017 00:45:16,610 --> 00:45:21,640 Так у той час як апошні раз мы былі лячэнні гэтыя скрынкі як сімвалаў для назвы Zamyla ў, 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 , У якім мы можам захоўваць Int, Int, Int. 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 І высветліць, што math-- Я маю на ўвазе, гэта 1027 00:45:45,010 --> 00:45:49,260 не вельмі складана arithmetic-- Я проста дадаць адзін з іх узростам. 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 Ты ўводзіць імя праграма і ўдару Enter. 1036 00:46:13,780 --> 00:46:15,610 І тады становіцца ўвод карыстальніка. 1037 00:46:15,610 --> 00:46:18,137 >> З GetString, GetInt, getLongLong, ці таму падобнае. 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 або ./caesar лік 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 Гэта, па сутнасці, з'яўляецца вельмі нагадвае, што зрабіў Ralphie. 1049 00:46:46,660 --> 00:46:51,380 >> Гэта прыклад шыфравання Алгарытм называецца rot13, R-O-T 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 >> У P ўсталяваць два, у стандартнай версіі, вы рэалізуеце некалькі шыфраў, 1054 00:47:04,390 --> 00:47:06,720 адна называецца Цэзар, адзін называецца Vigenere. 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 Vigenere робіць, што на за лістом асновай. 1060 00:47:19,570 --> 00:47:22,140 Так Vigenere, як вы ўбачыце у спецыфікацыі, з'яўляецца больш бяспечным. 1061 00:47:22,140 --> 00:47:24,973 >> Але ў канцы дня, што Вы будзеце рэалізацыі і P ўсталяваць два, 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 файла, ад тыповага Linux ці Mac або Unix кампутар называецца Etsy 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 >> -Helmet, Вы злыдзень, што адбываецца? 1084 00:48:22,320 --> 00:48:24,240 Што ты робіш з маёй дачкой? 1085 00:48:24,240 --> 00:48:28,010 >> -Permit Мне прадставіць бліскучы малады пластычны хірург, 1086 00:48:28,010 --> 00:48:30,010 Доктар Філіп Schlotkin. 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 >> -Nose Праца? 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 Лекар Schlotkin дасць свой дачка назад свой стары нос. 1097 00:48:52,748 --> 00:48:53,748 - [Уздыхае] Nooooooooooooo. 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 Доктар Schlotkin, справа ваша. 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 >> -NO! 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 >> -I Ведаў, што гэта будзе працаваць. 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 >> [ДК CLICKS] 1137 00:50:01,340 --> 00:50:02,450 >> -што Ты зрабіў? 1138 00:50:02,450 --> 00:50:03,800 >> -I Выключыў сцяну. 1139 00:50:03,800 --> 00:50:05,010 >> Не, вы гэтага не зрабілі, вы выключаны ўвесь фільм. 1140 00:50:05,010 --> 00:50:06,220 >> -I Павінна быць, націснуў не тую кнопку. 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 >> -It Працаваў, сэр, мы маюць камбінацыю. 1153 00:50:20,218 --> 00:50:20,740 -Великолепная. 1154 00:50:20,740 --> 00:50:24,810 Цяпер мы можам выкарыстоўваць любую апошні ўздых свежага паветра з планеты Druidia. 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 Падрыхтуйце SpaceBall 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 [Закрыцця дзверцы SOUND] 1165 00:50:41,578 --> 00:50:42,064 [CLINK ДЗВЯРЭЙ ПАРАЗЫ шлем] 1166 00:50:42,064 --> 00:50:42,550 -Ahh. 1167 00:50:42,550 --> 00:50:43,383 [END ВИДЕОВОСПРОИЗВЕДЕНИЕ] 1168 00:50:43,383 --> 00:50:46,700 David J. малая: Вось менавіта для CS50, ўбачымся на наступным тыдні. 1169 00:50:46,700 --> 00:50:49,883 Апавядальнік: І зараз, Deep Думкі, па Daven Фарнэме. 1170 00:50:49,883 --> 00:50:53,160 1171 00:50:53,160 --> 00:50:55,860 >> Daven FARNHAM: Кадаванне ў C з'яўляецца так значна цяжэй, чым нуль. 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 >> [Смех SOUNDBITE] 1175 00:51:01,430 --> 00:51:02,486