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