1 00:00:08,119 --> 00:00:11,630 [Powered by Google Translate] Давид Ј. Малан: Добро, ово је ЦС50, и то је 2 00:00:11,630 --> 00:00:14,790 Почетак недеље два. 3 00:00:14,790 --> 00:00:16,300 Хвала. 4 00:00:16,300 --> 00:00:19,000 Нека нас овде почињу са телефонским позивом. 5 00:00:19,000 --> 00:00:30,005 Ја сам о томе да позовете 617-буг-ЦС50. 6 00:00:30,005 --> 00:00:31,230 ЦС50: Ово је ЦС50. 7 00:00:31,230 --> 00:00:33,930 За Схуттле Бои, притисните 1. 8 00:00:33,930 --> 00:00:36,660 Да почнемо испочетка, притисните 9. 9 00:00:36,660 --> 00:00:38,180 Давид Ј. Малан: Значи, рекао је он за шатл Бои, притисните 1. 10 00:00:38,180 --> 00:00:41,560 Дакле, ми ћемо притиснути 1. 11 00:00:41,560 --> 00:00:43,230 ЦС50: Шта је ваш порекло? 12 00:00:43,230 --> 00:00:45,340 За куад, притисните 1. 13 00:00:45,340 --> 00:00:47,080 Матхер, притисните 2. 14 00:00:47,080 --> 00:00:49,240 Боилстон, притисните 3. 15 00:00:49,240 --> 00:00:51,280 Ламонт, притисните 4. 16 00:00:51,280 --> 00:00:53,210 Мем Хала, притисните 5. 17 00:00:53,210 --> 00:00:55,660 Да почнемо испочетка, притисните 0. 18 00:00:55,660 --> 00:00:59,590 Давид Ј. Малан: Ми ћемо притисните тастер 1 за четворку. 19 00:00:59,590 --> 00:01:03,610 ЦС50: Следећи шатл оставља ово веома минут 1:10 часова, а 20 00:01:03,610 --> 00:01:09,820 онда на 1:20 х, 1:30 ПМ 1:40 ПМ. 21 00:01:09,820 --> 00:01:12,030 Ово је ЦС50. 22 00:01:12,030 --> 00:01:15,570 >> Давид Ј. Малан: Дакле, ово је ЦС50 глас. 23 00:01:15,570 --> 00:01:18,030 И то је примјер врста завршних пројеката, за 24 00:01:18,030 --> 00:01:19,500 На пример, можете да одгризе према 25 00:01:19,500 --> 00:01:20,600 крај семестра. 26 00:01:20,600 --> 00:01:23,840 На пример, да схуттлебои.цс50.нет постоји - 27 00:01:23,840 --> 00:01:28,200 заправо пројекат који сам први пут написао након узимања ЦС51 28 00:01:28,200 --> 00:01:29,740 кад сам био студент. 29 00:01:29,740 --> 00:01:32,250 А инспирација је овде тада, све што су имали било 30 00:01:32,250 --> 00:01:34,320 штампани шатл бус распоред, а није било 31 00:01:34,320 --> 00:01:35,970 Појам гледа ствари на интернету. 32 00:01:35,970 --> 00:01:38,730 И тако сам некако голуба у једном викенду, сипати преко 33 00:01:38,730 --> 00:01:41,460 штампани распоред, па га користити на рачунарски програм. 34 00:01:41,460 --> 00:01:43,790 У то време, рачунарски програм се десило да буде написан 35 00:01:43,790 --> 00:01:47,110 у Ц А ти заправо побегао од куцањем шатл Бои на 36 00:01:47,110 --> 00:01:48,600 трепће затражити да смо радили до сада. 37 00:01:48,600 --> 00:01:50,450 Али током година, он је еволуирао у инстант 38 00:01:50,450 --> 00:01:51,390 порука бот. 39 00:01:51,390 --> 00:01:53,970 Она је еволуирала од недавно у овом сајту, у 40 00:01:53,970 --> 00:01:57,720 СМС-базиран алат, као иу овом глас заснованог алата. 41 00:01:57,720 --> 00:02:00,170 А то је да наговести на свакакве ствари које можете 42 00:02:00,170 --> 00:02:02,380 урадите за себе до краја семестар. 43 00:02:02,380 --> 00:02:05,490 >> На пример, тамо СМС верзија Схуттле Бои дешава 44 00:02:05,490 --> 00:02:06,510 да раде као што следи. 45 00:02:06,510 --> 00:02:10,880 Ако, на вашем мобилном телефону, можете послати текстуалну поруку на 41411 и 46 00:02:10,880 --> 00:02:14,300 затим пошаљите специјалне сбои симбол за Схуттле Бои, 47 00:02:14,300 --> 00:02:18,350 затим А и Б, где је порекло и Б је 48 00:02:18,350 --> 00:02:19,070 дестинација - 49 00:02:19,070 --> 00:02:21,030 На пример, Боилстон Спаце Куад - 50 00:02:21,030 --> 00:02:23,330 оно што би требало да се врати у року од неколико секунди је текст 51 00:02:23,330 --> 00:02:25,820 Порука од шатл Бои вам кажем тачно када 52 00:02:25,820 --> 00:02:28,990 Наредних неколико шатлови су, од тог момента ће се то 53 00:02:28,990 --> 00:02:29,640 тачка Б. 54 00:02:29,640 --> 00:02:32,510 А ово је општији пример онога што је познато као 55 00:02:32,510 --> 00:02:33,920 коришћењем АПИ. 56 00:02:33,920 --> 00:02:36,930 >> Тако, на пример, ово овде је само схуттлебои.цс50.нет је 57 00:02:36,930 --> 00:02:39,300 стварна веб-басед инкарнација ово. 58 00:02:39,300 --> 00:02:42,480 Али подаци који истиче ове и друге апликације које ЦС50 59 00:02:42,480 --> 00:02:45,560 развила су сви изложени свима овде у форми 60 00:02:45,560 --> 00:02:49,340 Апис, програмски интерфејс. 61 00:02:49,340 --> 00:02:52,220 А то је само фенси начин да се каже да су људи са којима смо као на 62 00:02:52,220 --> 00:02:56,010 Интернет и други су провели неко време стварања 63 00:02:56,010 --> 00:02:59,970 софтвер који можете користити да би се привукла податке од нас и 64 00:02:59,970 --> 00:03:02,510 затим изградити своје апликације на врху 65 00:03:02,510 --> 00:03:03,840 тог скупа података. 66 00:03:03,840 --> 00:03:06,610 Тако, на пример, ова услуга Дечак АПИ страницу овде, што 67 00:03:06,610 --> 00:03:09,390 се дешава да се у приручнику ЦС50, суштински документи 68 00:03:09,390 --> 00:03:13,080 како можете ићи око тражећи ЦС50 сервере за податке. 69 00:03:13,080 --> 00:03:16,240 На пример, ако сте упознати са ЦСВ фајлова, зарезе 70 00:03:16,240 --> 00:03:18,940 раздвојене вредности, ово су само нека од брз и прљав 71 00:03:18,940 --> 00:03:20,310 Екцел као датотеке. 72 00:03:20,310 --> 00:03:23,110 Тако можете питати децка превоза за све податке о свим од 73 00:03:23,110 --> 00:03:25,090 куће и њихови ГПС координате, и добићете 74 00:03:25,090 --> 00:03:27,300 назад, у суштини, табела таква да 75 00:03:27,300 --> 00:03:30,820 онда можете да прочитате у програм своје и онда 76 00:03:30,820 --> 00:03:33,250 генерисање резултата, као шатл Бои сама 77 00:03:33,250 --> 00:03:34,160 се дешава да се ради. 78 00:03:34,160 --> 00:03:37,030 За оне више познатих, више савремених података репрезентације 79 00:03:37,030 --> 00:03:39,420 укључују ЈСОН, ЈаваСцрипт Објецт нотацији. 80 00:03:39,420 --> 00:03:40,620 Нешто ће се вратити вама ка 81 00:03:40,620 --> 00:03:41,720 крај семестра. 82 00:03:41,720 --> 00:03:45,440 >> Али опет, ово је само један од неколико сопственог АПИ ЦС50 је. 83 00:03:45,440 --> 00:03:48,320 И узбудљива ствар је сада, ових дана, Фацебоок и 84 00:03:48,320 --> 00:03:51,110 Твиттер и Гоогле и скоро сваки популарни сајт од 85 00:03:51,110 --> 00:03:54,130 тамо има неки АПИ, што значи ако сте прочитали 86 00:03:54,130 --> 00:03:56,620 документацију на њиховом сајту, можете пријавити за 87 00:03:56,620 --> 00:03:59,980 налог, можете да почнете да пишете софтвер на врху 88 00:03:59,980 --> 00:04:03,680 год алата или података да компанија има пружа. 89 00:04:03,680 --> 00:04:06,210 И тако је један од наших другова наставних уназад пар година 90 00:04:06,210 --> 00:04:07,620 написао Мац верзију овога. 91 00:04:07,620 --> 00:04:10,990 Тако на линк под називом Мац овде у горњем левом углу, можете заправо 92 00:04:10,990 --> 00:04:13,940 преузели Мац ОС виџет који ради на свом Мац да учини 93 00:04:13,940 --> 00:04:15,040 исте врсте ствари. 94 00:04:15,040 --> 00:04:17,970 Дакле, то је све о изградњи на врху сетова података као што су ови. 95 00:04:17,970 --> 00:04:21,839 Али више о томе крајем семестра. 96 00:04:21,839 --> 00:04:25,780 >> Дакле, хајде да зароните у реалном брзо грешке, само да некако добије 97 00:04:25,780 --> 00:04:27,990 ствари загрејан данас, и мислим да врати неке од 98 00:04:27,990 --> 00:04:29,660 ствари које смо гледали прошле недеље. 99 00:04:29,660 --> 00:04:32,840 Конкретно, пусти ме напред и попните се, рецимо, 100 00:04:32,840 --> 00:04:34,080 овај пример овде. 101 00:04:34,080 --> 00:04:37,500 Бугги1.ц, ово је доступан на сајту наравно, ако сте бих 102 00:04:37,500 --> 00:04:40,250 желели да га преузмете и џаку око себе. 103 00:04:40,250 --> 00:04:43,520 Али хајде да увећате овде на овом прилично кратком програму, а само 104 00:04:43,520 --> 00:04:46,550 супер брза рекапитулација неких од основних блокова који 105 00:04:46,550 --> 00:04:48,880 ми стварно иду само да почну да узимају здраво за готово. 106 00:04:48,880 --> 00:04:51,860 >> Дакле плавом ствари, у редовима од 1 до 9, само су 107 00:04:51,860 --> 00:04:53,670 Софтбол питања. 108 00:04:53,670 --> 00:04:54,590 Дакле, ово су само коментари. 109 00:04:54,590 --> 00:04:56,230 Они немају функционалну значење. 110 00:04:56,230 --> 00:04:58,460 Али они су коментари у смислу да су они напомиње да 111 00:04:58,460 --> 00:05:02,010 Ја, људско, направио себи, тако да у предавању и после 112 00:05:02,010 --> 00:05:04,340 предавање, ја заиста могу да се сетим шта је тај програм 113 00:05:04,340 --> 00:05:07,120 ради без потребе да прочитате кроз њега ред по ред и 114 00:05:07,120 --> 00:05:08,990 рецреатинг историју у мом уму. 115 00:05:08,990 --> 00:05:11,000 Штавише, ако дам овај програм на неком другом као 116 00:05:11,000 --> 00:05:14,420 ти, много је јасније да вас због коментара као што је овај, 117 00:05:14,420 --> 00:05:16,680 шта је заправо програм ради, или бар оно 118 00:05:16,680 --> 00:05:18,210 Програм би требало да ради. 119 00:05:18,210 --> 00:05:20,760 Без обзира да ли је то тачно је друга ствар уопште. 120 00:05:20,760 --> 00:05:25,040 Сада, у Ц, са мулти-лајн коментарима, подсетити да је на линији 121 00:05:25,040 --> 00:05:27,880 овде је магија симбол / *. 122 00:05:27,880 --> 00:05:30,380 То овде значи долази почетак коментару. 123 00:05:30,380 --> 00:05:34,560 И ништа друго битно све док не дођете до краја Терминатор, 124 00:05:34,560 --> 00:05:36,700 што је * /, супротно. 125 00:05:36,700 --> 00:05:39,120 Дакле, чињеница да имам 80-неке чудне звезде овде из 126 00:05:39,120 --> 00:05:41,550 лева на десно је заиста само естетски детаљ. 127 00:05:41,550 --> 00:05:43,370 Она нема функционалну значење. 128 00:05:43,370 --> 00:05:44,490 >> Сада како о линији 11? 129 00:05:44,490 --> 00:05:46,940 Шта се то уради у смислу лаик? 130 00:05:51,560 --> 00:05:52,540 Шта је то? 131 00:05:52,540 --> 00:05:54,280 ПУБЛИКА: Укључује стандард. 132 00:05:54,280 --> 00:05:54,740 Давид Ј. Малан: Добро, добро. 133 00:05:54,740 --> 00:05:57,500 Дакле, она укључује стдио.х библиотеку. 134 00:05:57,500 --> 00:05:58,230 Дакле, шта то значи? 135 00:05:58,230 --> 00:06:01,570 Па, унутар тог фајла стдио.х су гомила 136 00:06:01,570 --> 00:06:03,320 Функција декларације - 137 00:06:03,320 --> 00:06:05,290 то је код који је неко други написао. 138 00:06:05,290 --> 00:06:08,160 А савршен пример функције која је проглашена у 139 00:06:08,160 --> 00:06:10,250 стдио.х је - 140 00:06:10,250 --> 00:06:11,980 који омиљена до сада? 141 00:06:11,980 --> 00:06:14,300 Дакле принтф, један од најуобичајенијих за коришћење, сигурно 142 00:06:14,300 --> 00:06:15,840 рано, из те библиотеке је тамо. 143 00:06:15,840 --> 00:06:19,290 Ако изузмем ту линију кода, кланг ће викати 144 00:06:19,290 --> 00:06:22,550 на мене нешто помоћу црно симбол. 145 00:06:22,550 --> 00:06:24,930 Нешто неизјашњених је вероватно кључна реч, јер 146 00:06:24,930 --> 00:06:27,770 нисмо обавештени компајлер шта принтф изгледа 147 00:06:27,770 --> 00:06:29,230 свиђа уколико не укључују ту линију. 148 00:06:29,230 --> 00:06:31,830 И још на Земљу, стварно, шта је линија кажем 149 00:06:31,830 --> 00:06:34,890 отвори тај фајл, стдио.х, где је на серверу је 150 00:06:34,890 --> 00:06:38,200 хард диск или хард диск апарата, а цопи-пасте је 151 00:06:38,200 --> 00:06:40,240 тамо у мом досијеу, без моје 152 00:06:40,240 --> 00:06:41,730 има да се то уради ручно. 153 00:06:41,730 --> 00:06:44,420 >> Сада, када смо добили овде на главни, ускоро ћемо почети 154 00:06:44,420 --> 00:06:46,900 досадан, осим што инт и шта је празнина. 155 00:06:46,900 --> 00:06:48,430 Али за сада, хајде да погледамо три линије 156 00:06:48,430 --> 00:06:50,350 унутар 15 до 17. 157 00:06:50,350 --> 00:06:52,250 Ово овде тврдим као луд. 158 00:06:52,250 --> 00:06:54,900 Линија 7 у мојим коментарима каже: "Ако штампате 10 159 00:06:54,900 --> 00:06:59,410 звездицу али не "Зашто не. то не штампају, у ствари, 160 00:06:59,410 --> 00:07:01,097 10 таквих звезда? 161 00:07:01,097 --> 00:07:02,347 ПУБЛИКА: [ИНАУДИБЛЕ]. 162 00:07:05,210 --> 00:07:05,800 Давид Ј. Малан: Тачно. 163 00:07:05,800 --> 00:07:08,720 Дакле, приметио да смо почели да рачунају од 0. 164 00:07:08,720 --> 00:07:10,780 И то је заправо конвенција у програмирању и 165 00:07:10,780 --> 00:07:13,230 рачунарских наука уопште, почиње да броји 166 00:07:13,230 --> 00:07:14,610 од 0 уместо 1. 167 00:07:14,610 --> 00:07:16,690 А ово стварно само проистиче из чињенице да је, за 168 00:07:16,690 --> 00:07:18,940 На пример, када смо имали осам људи на бини, када 169 00:07:18,940 --> 00:07:20,680 нико није био подизање руку, они су били 170 00:07:20,680 --> 00:07:22,340 сви ефикасно нуле. 171 00:07:22,340 --> 00:07:24,260 И тако је то само нека врста компјутерског конвенције тако, 172 00:07:24,260 --> 00:07:26,030 дакле, да почне бројање од 0. 173 00:07:26,030 --> 00:07:29,130 Ако је то најмањи број који може да заступа у бинарном. 174 00:07:29,130 --> 00:07:32,270 >> Дакле, овде смо почели иницијализација ја на 0. 175 00:07:32,270 --> 00:07:34,230 Смо поставили смо и једнак 0. 176 00:07:34,230 --> 00:07:37,780 Али онда сам направио грешку ово овде, рекавши ми је мања или 177 00:07:37,780 --> 00:07:38,820 једнака 10. 178 00:07:38,820 --> 00:07:41,700 Али ако мислите да путем, ако почнем на 0 и онда идем 179 00:07:41,700 --> 00:07:46,410 до 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, ја заправо идем на 180 00:07:46,410 --> 00:07:49,980 штампати 11 звездица на екрану, јер сам отишао горе 181 00:07:49,980 --> 00:07:52,410 да и једнака 10. 182 00:07:52,410 --> 00:07:55,090 Тако лако поправити овде онда је шта? 183 00:07:55,090 --> 00:07:56,070 ПУБЛИКА: [ИНАУДИБЛЕ]. 184 00:07:56,070 --> 00:07:57,350 Давид Ј. Малан: Само се променити на мање од. 185 00:07:57,350 --> 00:07:59,700 Ако стварно желите, можете да урадите ово. 186 00:07:59,700 --> 00:08:01,370 Али у принципу, то је неодобравањем. 187 00:08:01,370 --> 00:08:04,020 И тако почиње да броји од 0 је само нешто што треба 188 00:08:04,020 --> 00:08:05,510 обично навићи. 189 00:08:05,510 --> 00:08:07,810 Сада, шта је са целом овом конструкт по себи? 190 00:08:07,810 --> 00:08:10,640 Ова линија 15 демаркс а за петљу. 191 00:08:10,640 --> 00:08:12,510 Дакле, за не функционишу. 192 00:08:12,510 --> 00:08:13,640 То је само изјава. 193 00:08:13,640 --> 00:08:16,180 То петље конструкт, као што смо видели у нуле. 194 00:08:16,180 --> 00:08:17,600 И она има три дела. 195 00:08:17,600 --> 00:08:19,740 Приметимо да је први део да 196 00:08:19,740 --> 00:08:21,350 лево од зареза. 197 00:08:21,350 --> 00:08:24,200 Ту је средњи део између два зарезом. 198 00:08:24,200 --> 00:08:26,250 А онда ту је и десна рука део на десној 199 00:08:26,250 --> 00:08:27,640 другог зарезом. 200 00:08:27,640 --> 00:08:31,822 Сада, први од њих не шта? 201 00:08:31,822 --> 00:08:33,679 ПУБЛИКА: [ИНАУДИБЛЕ]. 202 00:08:33,679 --> 00:08:34,270 Давид Ј. Малан: Назад тамо? 203 00:08:34,270 --> 00:08:34,816 Да? 204 00:08:34,816 --> 00:08:35,980 ПУБЛИКА: Иницијализација. 205 00:08:35,980 --> 00:08:36,850 >> Давид Ј. Малан: Иницијализација. 206 00:08:36,850 --> 00:08:37,840 Дакле, шта то значи? 207 00:08:37,840 --> 00:08:40,690 Прогласили смо променљиву зове ја. 208 00:08:40,690 --> 00:08:43,840 То је типа инт, јер сам прецизирао инт. 209 00:08:43,840 --> 00:08:46,470 И ја сам иницијализација на вредност 0. 210 00:08:46,470 --> 00:08:47,730 Дакле, шта је то стварно рекао? 211 00:08:47,730 --> 00:08:50,680 То практично говори на рачунар, хеј, дај ми довољно 212 00:08:50,680 --> 00:08:53,660 меморије, довољно РАМ-а, да стане број, а затим ставити 213 00:08:53,660 --> 00:08:56,130 број 0 у тој комад меморије. 214 00:08:56,130 --> 00:08:59,100 И као по страни, колико је велико инт обично, барем у 215 00:08:59,100 --> 00:09:00,280 од апарата? 216 00:09:00,280 --> 00:09:01,000 ПУБЛИКА: 32-битни. 217 00:09:01,000 --> 00:09:01,670 Давид Ј. Малан: 32 бита. 218 00:09:01,670 --> 00:09:04,890 Значи, дајте ми 32 бита, иначе познат као 4 бајта, 219 00:09:04,890 --> 00:09:07,250 и ставио 0 вредност у томе, што је прилично лако, јер 220 00:09:07,250 --> 00:09:09,110 само значи да поставите све делове на 0. 221 00:09:09,110 --> 00:09:11,690 >> Дакле, сада, други део је овде услов. 222 00:09:11,690 --> 00:09:14,590 А услов, као што име сугерише, јесте оно што се проверава 223 00:09:14,590 --> 00:09:18,100 опет и опет и опет да ли је то истина или лаж. 224 00:09:18,100 --> 00:09:21,410 Дакле, ово је само кажем урадите следеће линије кода - 225 00:09:21,410 --> 00:09:23,950 наиме линија 16, јер је то само један увучен 226 00:09:23,950 --> 00:09:24,820 испод - 227 00:09:24,820 --> 00:09:26,980 докле год сам је мање од 10 година. 228 00:09:26,980 --> 00:09:30,520 И после сваке итерације кроз ову петљу, урадите 229 00:09:30,520 --> 00:09:33,840 Инкрементација, која је у овом случају ја + +. 230 00:09:33,840 --> 00:09:35,580 Дакле, то не мора да буде и + +. 231 00:09:35,580 --> 00:09:37,610 То би могло да буде -. 232 00:09:37,610 --> 00:09:39,860 Али, ако сам ово урадио, шта се дешава понашање 233 00:09:39,860 --> 00:09:41,370 да буде од овог програма? 234 00:09:41,370 --> 00:09:42,290 ПУБЛИКА: То ће бити бесконачна петља. 235 00:09:42,290 --> 00:09:44,060 Давид Ј. Малан: То ће бити нека врста бесконачне петље, 236 00:09:44,060 --> 00:09:47,720 уколико ми се посрећи, након негативног 2 милијарде или тако нешто. 237 00:09:47,720 --> 00:09:51,320 Можда ће се ствари око преломити, само по природи коначном 238 00:09:51,320 --> 00:09:53,930 број битова које смо издвојених за инт. 239 00:09:53,930 --> 00:09:56,270 Али свакако ће прелазили много више од 10, а 240 00:09:56,270 --> 00:09:58,630 Сигурно више од 11 пута овде. 241 00:09:58,630 --> 00:10:02,240 >> И сада, као на страну, схватите да сам ја + + и - 242 00:10:02,240 --> 00:10:04,420 су заиста само синтаксичке шећера. 243 00:10:04,420 --> 00:10:07,210 То је само скраћеница нотација за оно што је мало више 244 00:10:07,210 --> 00:10:08,720 експлицитно написано на следећи начин: 245 00:10:08,720 --> 00:10:11,200 и = и + 1. 246 00:10:11,200 --> 00:10:13,460 То је идентична и + +. 247 00:10:13,460 --> 00:10:15,860 То је некако изгледа лепше да кажу и + +. 248 00:10:15,860 --> 00:10:17,490 То је више језгровит, више читљив. 249 00:10:17,490 --> 00:10:19,030 И тако већина људи ради уместо тога. 250 00:10:19,030 --> 00:10:21,840 Али ово је идентичан функционално да 251 00:10:21,840 --> 00:10:22,900 оно што смо управо видели. 252 00:10:22,900 --> 00:10:27,770 Дакле укратко, брзо поправити овде само да кажем прелазили ја 253 00:10:27,770 --> 00:10:30,690 од 0 па све до мање од 10 година. 254 00:10:30,690 --> 00:10:32,700 И онда смо заиста ћемо добити 10 звезде. 255 00:10:32,700 --> 00:10:33,430 >> Дакле, хајде да пробамо ово. 256 00:10:33,430 --> 00:10:35,310 Дозволите ми да отворимо терминал на дну. 257 00:10:35,310 --> 00:10:37,420 Пусти ме да идем у директоријум који је унутра 258 00:10:37,420 --> 00:10:40,030 И ја ћу да га саставе ручно са кланг за сада. 259 00:10:40,030 --> 00:10:44,880 И ја ћу да саставе ово као бугги1.ц, Ентер. 260 00:10:44,880 --> 00:10:50,280 А сада бугги1, зашто постоји таква датотека или директоријум 261 00:10:50,280 --> 00:10:52,026 зове бугги1? 262 00:10:52,026 --> 00:10:53,850 ПУБЛИКА: [ИНАУДИБЛЕ]. 263 00:10:53,850 --> 00:10:54,240 Давид Ј. Малан: Да. 264 00:10:54,240 --> 00:10:55,420 Дакле, то је у ствари зове а.оут. 265 00:10:55,420 --> 00:10:57,480 Дакле, ако сте се сетим само трчите кланг, где је кланг 266 00:10:57,480 --> 00:11:00,420 компајлер, а ви не наведете име које желите да 267 00:11:00,420 --> 00:11:03,550 дати свој програм, то ће бити додељена а.оут. 268 00:11:03,550 --> 00:11:05,030 Дакле, заиста, ако ја лс - 269 00:11:05,030 --> 00:11:05,510 Упс. 270 00:11:05,510 --> 00:11:07,680 И дидн'т - црно-бели су неки од проблема 271 00:11:07,680 --> 00:11:08,840 ви суочили је фиксна. 272 00:11:08,840 --> 00:11:10,670 Али дозволите ми да урадим ово. 273 00:11:10,670 --> 00:11:14,570 Ту имамо а.оут на левој страни. 274 00:11:14,570 --> 00:11:17,360 Зато морамо да покренете а.оут уместо бугги1. 275 00:11:17,360 --> 00:11:19,140 >> Зато ме пусти да идем напред и урадите то. 276 00:11:19,140 --> 00:11:22,840 / А.оут., Ентер. 277 00:11:22,840 --> 00:11:26,160 И очигледно није урадио шта? 278 00:11:26,160 --> 00:11:26,620 ПУБЛИКА: Саве. 279 00:11:26,620 --> 00:11:27,390 Давид Ј. Малан: Сачувајте своју датотеку. 280 00:11:27,390 --> 00:11:31,520 Тако да се лако решава притиском Цонтрол С, или ће 281 00:11:31,520 --> 00:11:33,450 Филе, Саве, као и у већини програма. 282 00:11:33,450 --> 00:11:36,360 Пусти ме да идем доле, брисање екрана, покрените га поново. 283 00:11:36,360 --> 00:11:37,960 И даље постоји грешка. 284 00:11:37,960 --> 00:11:41,618 Дакле, шта се дешава - 285 00:11:41,618 --> 00:11:42,980 ПУБЛИКА: Ниси саставити. 286 00:11:42,980 --> 00:11:44,040 Давид Ј. Малан: Ах, добро. 287 00:11:44,040 --> 00:11:45,010 Нисам га компајлирате. 288 00:11:45,010 --> 00:11:47,250 Као идиот, гледам кода да видимо шта није у реду. 289 00:11:47,250 --> 00:11:51,275 Дакле зазвечати бугги1.ц сада а.оут. 290 00:11:51,275 --> 00:11:52,640 И Фуј, спасени. 291 00:11:52,640 --> 00:11:55,090 >> Тако то изгледа мало ружно, јер не постоји нова линија 292 00:11:55,090 --> 00:11:55,970 било где у програму. 293 00:11:55,970 --> 00:11:57,390 Али опет, то је само естетски детаљ. 294 00:11:57,390 --> 00:11:59,430 А барем ако рачунамо оне се, требамо 295 00:11:59,430 --> 00:12:01,160 Сада видим 10 таквих звезде. 296 00:12:01,160 --> 00:12:03,260 Па, шта је са овом другом загревања пример? 297 00:12:03,260 --> 00:12:07,750 Дакле, у бугги2, ја тврдим да је ова верзија, такође, ће штампати 298 00:12:07,750 --> 00:12:10,110 10 звездица, један по линији. 299 00:12:10,110 --> 00:12:12,340 Дакле, овај пут, имам нови ред карактер, само да би 300 00:12:12,340 --> 00:12:13,520 ствари мало лепше. 301 00:12:13,520 --> 00:12:15,410 Али уместо тога шта имам је ово. 302 00:12:15,410 --> 00:12:19,590 Па пусти ме да радим кланг бугги2.ц, Ентер. 303 00:12:19,590 --> 00:12:21,790 Сада је поново позвао а.оут. 304 00:12:21,790 --> 00:12:23,130 Ентер. 305 00:12:23,130 --> 00:12:26,900 Ја видим само једну нову линију, само последња нова линија која 306 00:12:26,900 --> 00:12:29,370 креће мој упит на следећи ред. 307 00:12:29,370 --> 00:12:32,660 А ипак је јасно да сам се штампа *, затим нову линију, 308 00:12:32,660 --> 00:12:33,990 *, А затим нова линија. 309 00:12:33,990 --> 00:12:35,490 Али шта је буба овде? 310 00:12:35,490 --> 00:12:35,974 Да? 311 00:12:35,974 --> 00:12:37,224 ПУБЛИКА: [ИНАУДИБЛЕ]. 312 00:12:39,850 --> 00:12:40,470 >> Давид Ј. Малан: Тачно. 313 00:12:40,470 --> 00:12:44,110 Дакле, за разлику од неких језика, као што су Питхон, где улегнуће 314 00:12:44,110 --> 00:12:46,030 заправо има функционалну значење у 315 00:12:46,030 --> 00:12:47,150 језик као Ц - 316 00:12:47,150 --> 00:12:49,140 као што ћемо видети, ПХП, ЈаваСцрипт - 317 00:12:49,140 --> 00:12:51,940 удубљење је заиста само за добробит људско. 318 00:12:51,940 --> 00:12:55,690 Дакле, чињеница да сам увучен линију 16 и 17 изгледа сјајно, 319 00:12:55,690 --> 00:12:57,530 али има овде нема функционалну значење. 320 00:12:57,530 --> 00:13:00,700 Ако желим обе линије да изврши као део за 321 00:13:00,700 --> 00:13:05,140 петља, онда морам да их окружити заграда на овај начин. 322 00:13:05,140 --> 00:13:08,540 Можете само да смањи тај угао и изоставити витичасте заграде ако 323 00:13:08,540 --> 00:13:10,036 Шта је случај? 324 00:13:10,036 --> 00:13:10,410 ПУБЛИКА: Само једна линија. 325 00:13:10,410 --> 00:13:11,130 Давид Ј. Малан: Само једна линија. 326 00:13:11,130 --> 00:13:15,280 Дакле, то је само нека врста лепе врсте синтаксе детаља, тако да 327 00:13:15,280 --> 00:13:17,900 не губите време писања три линије, од којих су два 328 00:13:17,900 --> 00:13:20,040 витичасте заграде, само да напишем једну линију кода. 329 00:13:20,040 --> 00:13:21,650 Али, ако имате две или више линија, ми смо 330 00:13:21,650 --> 00:13:22,860 заиста треба да урадите. 331 00:13:22,860 --> 00:13:24,210 >> Дакле, сада пусти ме спаси ово. 332 00:13:24,210 --> 00:13:27,140 Пусти ме само напред и поново покрените кланг. 333 00:13:27,140 --> 00:13:31,375 Онда ме пусти репризу а.оут, а сада сам их добити по једну линију. 334 00:13:31,375 --> 00:13:33,670 Сада, а.оут опет је нека врста глупог имена за програм. 335 00:13:33,670 --> 00:13:37,500 Како могу да кажем да заиста кланг ми дати име датотеке 336 00:13:37,500 --> 00:13:39,820 то је више разумљив, као бугги2 сама? 337 00:13:43,200 --> 00:13:44,466 Мало јасније? 338 00:13:44,466 --> 00:13:45,220 ПУБЛИКА: [ИНАУДИБЛЕ]. 339 00:13:45,220 --> 00:13:47,810 Давид Ј. Малан: У реду, тако да ја заправо могу да веома 340 00:13:47,810 --> 00:13:51,000 разумљив пречица и управо пише да бугги2. 341 00:13:51,000 --> 00:13:53,840 Ја не прецизира ц у овом случају. И притисните Ентер. 342 00:13:53,840 --> 00:13:58,530 А шта би ли је то саставља бугги2.ц за мене 343 00:13:58,530 --> 00:14:00,260 тражећи цланг да то уради. 344 00:14:00,260 --> 00:14:05,100 Конкретно, она позива кланг, ради кланг користе много више 345 00:14:05,100 --> 00:14:08,540 командне линије аргументи или прекидачи него што сам стварно потребно. 346 00:14:08,540 --> 00:14:11,270 У време ћемо се вратити на оно што све ове различите 347 00:14:11,270 --> 00:14:13,810 загонетна цртицу изрази значи. 348 00:14:13,810 --> 00:14:16,910 Али, за сада, то је само ми уштеде за невоље 349 00:14:16,910 --> 00:14:19,600 морате да запамтите и да се откуцати свима 350 00:14:19,600 --> 00:14:21,150 разни цртицу израза. 351 00:14:21,150 --> 00:14:23,240 А наопако тога на крају је 352 00:14:23,240 --> 00:14:25,900 да сада имам бугги2. 353 00:14:25,900 --> 00:14:27,480 Ако желим да радим ручно, иако сам 354 00:14:27,480 --> 00:14:28,775 уместо тога могу да урадим ово - 355 00:14:28,775 --> 00:14:34,110 зазвечати-о бугги2 и онда бугги2.ц. 356 00:14:34,110 --> 00:14:37,980 И да ће на сличан начин ми дати фајл под називом бугги2. 357 00:14:37,980 --> 00:14:39,710 >> Дакле укратко, кланг је компајлер. 358 00:14:39,710 --> 00:14:43,080 Нека је само разумљив алат који ћемо користити више 359 00:14:43,080 --> 00:14:44,420 и више, јер тек почиње да се 360 00:14:44,420 --> 00:14:47,330 поједноставе ствари за нас. 361 00:14:47,330 --> 00:14:49,430 И ми врати 0, на крају. 362 00:14:49,430 --> 00:14:51,890 За сада, само зато, већ ћемо почети досадан тај део 363 00:14:51,890 --> 00:14:52,930 данас и у среду. 364 00:14:52,930 --> 00:14:55,560 Сва питања о било шта од овога? 365 00:14:55,560 --> 00:14:56,450 Да? 366 00:14:56,450 --> 00:14:58,234 ПУБЛИКА: [ИНАУДИБЛЕ] 367 00:14:58,234 --> 00:15:00,020 Јел у наводнике тамо? 368 00:15:00,020 --> 00:15:01,710 Давид Ј. Малан: ОК. 369 00:15:01,710 --> 00:15:05,880 Када сам откуцао ли наводницима, који је мене раде неку магију 370 00:15:05,880 --> 00:15:07,160 иза сцене да поправи грешку. 371 00:15:07,160 --> 00:15:09,370 Заборавио сам, као што смо говорили многи од вас на 372 00:15:09,370 --> 00:15:11,600 дискусионе табле, да се ураде - 373 00:15:11,600 --> 00:15:17,220 ово ћемо урадити сада - судо иум-и упдате апплианце50. 374 00:15:17,220 --> 00:15:19,790 Упс, да је то тачно написано. 375 00:15:19,790 --> 00:15:23,240 Дакле, апарат је као оперативни систем. 376 00:15:23,240 --> 00:15:25,650 То је покренут овај оперативни систем назван Федора. 377 00:15:25,650 --> 00:15:27,450 А сад због моје споре Интернет везе, ја сам 378 00:15:27,450 --> 00:15:28,260 стварно хосед. 379 00:15:28,260 --> 00:15:31,620 Дакле, ради судо иум упдате, као што смо вам рећи да раде у 380 00:15:31,620 --> 00:15:34,080 Проблем скуп, у суштини воле ради аутоматског ажурирања 381 00:15:34,080 --> 00:15:35,420 у Мац ОС или Виндовс. 382 00:15:35,420 --> 00:15:37,280 А разлог за покретање на самом почетку 383 00:15:37,280 --> 00:15:39,640 Проблем скуп је јер када смо креирали апарат, ја сам 384 00:15:39,640 --> 00:15:42,480 забрљао, а ја сам случајно направио све програме изгледају 385 00:15:42,480 --> 00:15:45,210 црно на црном екрану, због чега их не виде 386 00:15:45,210 --> 00:15:45,860 по дефаулту. 387 00:15:45,860 --> 00:15:48,020 Али најновија верзија уређаја поправља ово. 388 00:15:48,020 --> 00:15:50,500 И ја ћу то да средим током паузе када имам интернет 389 00:15:50,500 --> 00:15:51,280 повезивања. 390 00:15:51,280 --> 00:15:54,630 >> Тако су цитати само крије своју грешку, врло дискретно, 391 00:15:54,630 --> 00:15:55,730 очигледно. 392 00:15:55,730 --> 00:15:56,980 Остала питања? 393 00:15:59,750 --> 00:16:00,668 Да? 394 00:16:00,668 --> 00:16:02,012 ПУБЛИКА: Одакле да долазе? 395 00:16:02,012 --> 00:16:03,810 [ИНАУДИБЛЕ] 396 00:16:03,810 --> 00:16:04,280 Давид Ј. Малан: Добро питање. 397 00:16:04,280 --> 00:16:05,460 Одакле да долазе? 398 00:16:05,460 --> 00:16:09,390 То је Линукс програм који постоји већ дуги низ година, дуго 399 00:16:09,390 --> 00:16:10,570 пре ЦС50. 400 00:16:10,570 --> 00:16:12,930 И то долази са оперативним системом попут Федора. 401 00:16:12,930 --> 00:16:14,830 Она не долази из ЦС50 библиотеке. 402 00:16:14,830 --> 00:16:17,560 У ствари, једине ствари које долазе из ЦС50 библиотеке 403 00:16:17,560 --> 00:16:20,470 до сада, да смо видели, ГетСтринг, ГетИнт, све 404 00:16:20,470 --> 00:16:25,550 они Гет функције, а реч стринг, а некима 405 00:16:25,550 --> 00:16:26,575 мери, реч боол. 406 00:16:26,575 --> 00:16:29,180 Али, ми ћемо задиркивао да осим када зароне у ЦС50 407 00:16:29,180 --> 00:16:30,580 Апарат сама. 408 00:16:30,580 --> 00:16:32,820 >> Тако да, још једно питање овде. 409 00:16:32,820 --> 00:16:36,636 ПУБЛИКА: Када сте рекли да и онда луд, како се 410 00:16:36,636 --> 00:16:39,980 Рачунар знам [ИНАУДИБЛЕ]? 411 00:16:39,980 --> 00:16:40,520 Давид Ј. Малан: Добро питање. 412 00:16:40,520 --> 00:16:43,830 Дакле, када сте само трчите да бугги1 или да бугги2, како 413 00:16:43,830 --> 00:16:45,220 чини зна? 414 00:16:45,220 --> 00:16:49,900 Дакле, по дефаулту, ако откуцате да бугги1, да тражи 415 00:16:49,900 --> 00:16:52,330 фајл под бугги1.ц. 416 00:16:52,330 --> 00:16:55,570 А онда извршава одговарајуће кланг команде, 417 00:16:55,570 --> 00:17:00,380 чиме превасходног подразумевани излазни фајл под називом а.оут. 418 00:17:00,380 --> 00:17:03,670 У ствари, ако погледамо шта чине, шта - 419 00:17:03,670 --> 00:17:04,839 хајде да прекинемо ово. 420 00:17:04,839 --> 00:17:09,530 Ако погледамо шта би се заправо ради, да бугги2, 421 00:17:09,530 --> 00:17:10,470 то је већ до сада. 422 00:17:10,470 --> 00:17:13,020 Дакле, дозволите ми да уклоните рм команду, 423 00:17:13,020 --> 00:17:14,319 Програм сам писао раније. 424 00:17:14,319 --> 00:17:17,319 Куцање И-Е-С да потврди да желим да га уклоните. 425 00:17:17,319 --> 00:17:20,480 Ако ја сад направити, приметити да у овом веома дугом реду, 426 00:17:20,480 --> 00:17:22,980 ту је ова последња ствар овде,-о бугги2. 427 00:17:22,980 --> 00:17:26,959 Све чине ради пролази тај аргумент, да тако кажем, да 428 00:17:26,959 --> 00:17:29,665 Цланг, тако да не морам да га откуцате себе. 429 00:17:29,665 --> 00:17:32,660 >> У реду, тако да брзо пар административних 430 00:17:32,660 --> 00:17:33,470 најаве. 431 00:17:33,470 --> 00:17:36,940 Дакле, за делове, чиме је и званично почела ова долази 432 00:17:36,940 --> 00:17:38,970 Недеља, увек ћете желети да донесе, ако 433 00:17:38,970 --> 00:17:40,120 имате једну, лаптоп. 434 00:17:40,120 --> 00:17:42,570 Ако немате лаптоп, да допре до мене 435 00:17:42,570 --> 00:17:43,580 пада ми е-маил. 436 00:17:43,580 --> 00:17:44,810 И ми ћемо смислити ток посла. 437 00:17:44,810 --> 00:17:47,100 Шта обично ћете наћи у одељку јесте да су они део 438 00:17:47,100 --> 00:17:48,770 концептуални, део руке-на. 439 00:17:48,770 --> 00:17:52,190 Ми ћемо користити посебно део питања, део 440 00:17:52,190 --> 00:17:54,110 Проблем скуп током недеље, да прођем кроз неке од 441 00:17:54,110 --> 00:17:55,820 концептуални материјал из предавања. 442 00:17:55,820 --> 00:17:57,480 И то је све у садашњој проблема сету. 443 00:17:57,480 --> 00:18:00,010 И такође ћемо заронити у неке руке о активностима, понекад 444 00:18:00,010 --> 00:18:02,190 од којих ће бити потребно да се подносе, понекад 445 00:18:02,190 --> 00:18:02,830 што неће. 446 00:18:02,830 --> 00:18:04,630 На пример, ово прва недеља, они значило само као 447 00:18:04,630 --> 00:18:05,780 вежба за загревање. 448 00:18:05,780 --> 00:18:07,800 И видећете да су ти проблеми су заиста само то. 449 00:18:07,800 --> 00:18:10,220 Смо створени су да буду прилично мали, али не нужно 450 00:18:10,220 --> 00:18:13,100 тривијална програми за писање, које нису нужно 451 00:18:13,100 --> 00:18:16,230 узбудљиве по себи, али су добре прилике за 452 00:18:16,230 --> 00:18:19,620 вежбају са синтаксом, са новим функцијама, у удобности 453 00:18:19,620 --> 00:18:21,900 одељак где имате неколико својим друговима представити као 454 00:18:21,900 --> 00:18:22,870 и као ТФ. 455 00:18:22,870 --> 00:18:26,210 >> А шта ћемо урадити током времена је користите алатку која се зове ЦС50 Спацес, 456 00:18:26,210 --> 00:18:28,940 при чему уместо само коришћењем ЦС50 Апплианце, ти ћеш 457 00:18:28,940 --> 00:18:32,450 уместо тога идите на веб страницу у прегледачу, где ћете моћи 458 00:18:32,450 --> 00:18:35,610 да напишете код у прозору прегледача током секцији. 459 00:18:35,610 --> 00:18:38,240 И онда ако се одлучите, ваш колега настава се затим приказати 460 00:18:38,240 --> 00:18:40,980 шта год да је куцате на екрану у вашем бровсеру 461 00:18:40,980 --> 00:18:43,930 прозор на фронту у класи, било анонимно или 462 00:18:43,930 --> 00:18:47,250 јавно, тако да он или она се онда проћи кроз са 463 00:18:47,250 --> 00:18:50,080 Ваши другови шта сте урадили добро, шта ниси добро. 464 00:18:50,080 --> 00:18:52,750 И опет, будите сигурни све ово се може лепо анонимни. 465 00:18:52,750 --> 00:18:54,410 Али то ће бити лепа прилика за много више 466 00:18:54,410 --> 00:18:56,810 интерактивност него нешто слично предавање дозвољава. 467 00:18:56,810 --> 00:18:58,910 >> У међувремену, ми ћемо имати ове ствари називају супер 468 00:18:58,910 --> 00:19:01,610 секције, које су необавезна али су отворени за све у 469 00:19:01,610 --> 00:19:04,030 класа, тако да можете да урадите више збирно за 470 00:19:04,030 --> 00:19:05,190 Проблем је поставили. 471 00:19:05,190 --> 00:19:06,010 Ево распоред. 472 00:19:06,010 --> 00:19:08,870 Ово је такође постављен на насловној страни у цс50.нет. 473 00:19:08,870 --> 00:19:10,850 Приметите да ће бити хакер специфична 474 00:19:10,850 --> 00:19:12,430 једна сутра поподне. 475 00:19:12,430 --> 00:19:15,460 И ми ћемо снимати једну данас и сутра, а један пост оне 476 00:19:15,460 --> 00:19:16,720 Онлине року од 24 сата. 477 00:19:16,720 --> 00:19:19,370 Дакле, ако не можете да направите било који од тих времена, не брините. 478 00:19:19,370 --> 00:19:22,720 А опет, распоред је сада онлине на цс50.нет. 479 00:19:22,720 --> 00:19:25,350 >> У погледу себе сечења, требали сте стечен 480 00:19:25,350 --> 00:19:28,520 пошаљи налаже да одете на почетну је курс да пронађете 481 00:19:28,520 --> 00:19:29,610 из одељка. 482 00:19:29,610 --> 00:19:32,890 Ако је живот се променио и да је потребно да промените свој део, 483 00:19:32,890 --> 00:19:33,560 није проблем. 484 00:19:33,560 --> 00:19:37,900 Вратите се на том истом УРЛ, цс50.нет/сецтион, једнини, 485 00:19:37,900 --> 00:19:40,090 а ви ћете попунити сличан образац, тако да можете 486 00:19:40,090 --> 00:19:41,260 онда нам дају жељене опције. 487 00:19:41,260 --> 00:19:43,360 И ми ћемо пратити до краја недеље о томе шта можемо 488 00:19:43,360 --> 00:19:44,240 прими. 489 00:19:44,240 --> 00:19:49,530 Прошле седмице, подсећамо да смо предложили коришћење ЦС50 расправљати, 490 00:19:49,530 --> 00:19:51,370 Дискусија алат је курс, у предавању. 491 00:19:51,370 --> 00:19:53,680 Дакле, имали смо 40 питања која су постављена и 492 00:19:53,680 --> 00:19:54,720 одговорио током предавања. 493 00:19:54,720 --> 00:19:56,280 Тако је изгледало да добро раде, тако да ћемо наставити 494 00:19:56,280 --> 00:19:57,180 покушава да уради ово. 495 00:19:57,180 --> 00:19:59,600 Ако се, током предавања, не само да се осећају удобно подизање 496 00:19:59,600 --> 00:20:00,780 Ваша рука, није проблем. 497 00:20:00,780 --> 00:20:04,640 Иди на цс50.нет/дисцусс, постављати тамо, а један од наших наставе 498 00:20:04,640 --> 00:20:07,270 момци ће или одговорити електронски или подижу своје 499 00:20:07,270 --> 00:20:10,620 руку на ваше име анонимно да питам, у зависности 500 00:20:10,620 --> 00:20:12,470 о природи питања. 501 00:20:12,470 --> 00:20:15,000 И у смислу повратне информације, генерално псетс ће бити 502 00:20:15,000 --> 00:20:16,760 вратио у року од недељу дана. 503 00:20:16,760 --> 00:20:19,080 Зато је потребно мало времена за секције за постизање 504 00:20:19,080 --> 00:20:22,430 равнотежа, први псет, 0 и 1, биће мало 505 00:20:22,430 --> 00:20:24,130 одложено како ствари смире. 506 00:20:24,130 --> 00:20:27,130 Али останите на томе у недељама које долазе. 507 00:20:27,130 --> 00:20:29,750 >> У реду, па ћу ставити на моје озбиљне 508 00:20:29,750 --> 00:20:31,040 глас за само тренутак. 509 00:20:31,040 --> 00:20:32,690 Дакле, ово је заправо занимљив климу да буду 510 00:20:32,690 --> 00:20:35,210 имајући ову дискусију, шта са свим осталим стварима 511 00:20:35,210 --> 00:20:37,310 дешава на кампусу у вези са тим. 512 00:20:37,310 --> 00:20:40,220 Али ЦС50 је свакако имала своју историју ова 513 00:20:40,220 --> 00:20:43,360 тема, у колико сваке године, овај курс, за многе 514 00:20:43,360 --> 00:20:46,910 године, Ад-Боардс око 3% од класе. 515 00:20:46,910 --> 00:20:51,620 Овај најновији године, 2011, ЦС50 Ад укрцали 35 студената. 516 00:20:51,620 --> 00:20:54,120 То није, мислим, због недостатка јасноће. 517 00:20:54,120 --> 00:20:56,760 Схватите да је у програму на ток, постоји страница 518 00:20:56,760 --> 00:20:59,020 Изјава објашњавајући где су линије. 519 00:20:59,020 --> 00:21:01,350 Та иста изјава се понавља на свакој од 520 00:21:01,350 --> 00:21:03,070 Проблем поставља на првој страни. 521 00:21:03,070 --> 00:21:05,760 >> Зато сам поменуо ово данас заиста само да 522 00:21:05,760 --> 00:21:07,030 људи свјесни ово. 523 00:21:07,030 --> 00:21:08,080 И ми смо покушали различите ствари. 524 00:21:08,080 --> 00:21:10,630 И оно што сам мислио да ћемо урадити данас је само да одвојите тренутак да 525 00:21:10,630 --> 00:21:13,830 заправо поглед на неке од претходних случајева који су дошли горе. 526 00:21:13,830 --> 00:21:16,160 Уместо да ове, као прљаве мале тајне, заправо 527 00:21:16,160 --> 00:21:19,170 укаже шта ученици су урадили и колико смо детектовали 528 00:21:19,170 --> 00:21:21,630 стварно, а шта је за свеобухватни мотивација 529 00:21:21,630 --> 00:21:23,950 чак и да овај разговор. 530 00:21:23,950 --> 00:21:27,060 Дакле, са тим рекао, линија суштини је ово - 531 00:21:27,060 --> 00:21:29,200 по наставним програмом, ти си добродошао, саветујемо вам да 532 00:21:29,200 --> 00:21:30,210 разговарају са другим ученицима. 533 00:21:30,210 --> 00:21:31,910 То је цела сврха постојања ових колаборативни 534 00:21:31,910 --> 00:21:34,470 Радно време у Анненберг и подстицање људи за 535 00:21:34,470 --> 00:21:35,755 коначни пројекат да раде заједно. 536 00:21:35,755 --> 00:21:38,590 Али линија је нацртана када је у питању време да се заиста пишу 537 00:21:38,590 --> 00:21:39,790 Ваш коначно решење. 538 00:21:39,790 --> 00:21:42,590 Говорећи на енглеском, потпуно у реду, говорећи у псеудо коду, 539 00:21:42,590 --> 00:21:43,400 потпуно у реду. 540 00:21:43,400 --> 00:21:46,340 Емаилинг школски друг ваш псет, пуштајући их да изгледају више 541 00:21:46,340 --> 00:21:48,610 екран као и даље руке куцање, 542 00:21:48,610 --> 00:21:50,110 преко линије, као добро. 543 00:21:50,110 --> 00:21:52,250 Да погледамо у програму за поједине линије. 544 00:21:52,250 --> 00:21:55,850 >> Али само да наслика слику о томе како је ово, нажалост, 545 00:21:55,850 --> 00:21:58,370 стварност, схватају да постоје сајтови тамо да 546 00:21:58,370 --> 00:22:01,490 има решења из ове класе и многе друге класе. 547 00:22:01,490 --> 00:22:04,940 Чињеница да ви или око 3% од вас зна да то постоји 548 00:22:04,940 --> 00:22:07,240 значи да ми знамо да то постоји. 549 00:22:07,240 --> 00:22:09,340 Чињеница да постоје сајтови овако где 550 00:22:09,340 --> 00:22:11,540 можете платити некоме да заиста раде свој сета проблема - ово је 551 00:22:11,540 --> 00:22:13,450 стварни случај који је дошао прошле године. 552 00:22:13,450 --> 00:22:15,790 Ово је сајт под називом одеск.цом. 553 00:22:15,790 --> 00:22:20,090 И Тим је име особе која је овде постављање на 554 00:22:20,090 --> 00:22:24,580 овај сајт и замолио некога да уради свој псет 7 у 555 00:22:24,580 --> 00:22:25,570 овај случај. 556 00:22:25,570 --> 00:22:28,350 Па, одеск.цом је веома Гоогле стању, а ми смо превише 557 00:22:28,350 --> 00:22:30,310 Веома добар Гооглинг. 558 00:22:30,310 --> 00:22:32,360 Овде, такође, постоје сајтови - и ово је један прилично 559 00:22:32,360 --> 00:22:34,234 ужасна, искрено. 560 00:22:34,234 --> 00:22:38,050 [СМЕХ] 561 00:22:38,050 --> 00:22:39,610 Давид Ј. Малан: Смешна ствар о овом сајту је ако 562 00:22:39,610 --> 00:22:41,970 читате О страници, они говоре о својим корпоративни 563 00:22:41,970 --> 00:22:44,390 култура и како је њихова кориснички сервис број један 564 00:22:44,390 --> 00:22:46,190 приоритет, да бисте се уверили да су ваши задаци се 565 00:22:46,190 --> 00:22:47,890 окренуо на време. 566 00:22:47,890 --> 00:22:50,580 >> Али у свим озбиљности, опет, чињеница да ове локације 567 00:22:50,580 --> 00:22:52,910 постоје, схватили смо, такође, свесни 568 00:22:52,910 --> 00:22:53,730 ове врсте сајтова. 569 00:22:53,730 --> 00:22:55,890 И да вам дају осећај шта чини ово генерално 570 00:22:55,890 --> 00:22:58,570 Потребно ми генерално немају велике скандале у којима људи 571 00:22:58,570 --> 00:23:01,080 сарађују на било коју врсту масовног обима, већ 572 00:23:01,080 --> 00:23:04,540 је ове касне ноћне тренуци слабости, где ви тако имате 573 00:23:04,540 --> 00:23:07,550 много тога да уради, то је 4:00 ПМ, ти си исцрпљен, а ви 574 00:23:07,550 --> 00:23:09,770 Мислим у себи, добро, хајде да погледамо моје 575 00:23:09,770 --> 00:23:11,770 цимер-а или мог пријатеља код или слично. 576 00:23:11,770 --> 00:23:14,800 И то, нажалост манифестације укључују Студент 577 00:23:14,800 --> 00:23:17,640 Подношење нешто овако и студентског Б достављања 578 00:23:17,640 --> 00:23:20,370 овако нешто, што је свакако, у рачунару 579 00:23:20,370 --> 00:23:23,830 Наука класа, је изузетно лак за рачунарске научника 580 00:23:23,830 --> 00:23:25,690 открити са софтвером. 581 00:23:25,690 --> 00:23:28,410 Ово је још једна заједничка парадигма, где сте некако 582 00:23:28,410 --> 00:23:31,010 радили заједно на неким, можда говори у 583 00:23:31,010 --> 00:23:32,360 Енглеском, само добро, Псеудокод. 584 00:23:32,360 --> 00:23:35,080 Али онда дође време да се заиста поднесе, а псетс 585 00:23:35,080 --> 00:23:37,910 Једноставно се размењују путем е-поште или Дропбок или слично. 586 00:23:37,910 --> 00:23:41,120 Али, у покушају да се мање очигледно да је ово 587 00:23:41,120 --> 00:23:44,830 шта се десило, онда је то оно што се подноси. 588 00:23:44,830 --> 00:23:47,880 Ово је, такође, не саплитати добро написане комада 589 00:23:47,880 --> 00:23:50,360 софтвера као што морамо да заиста открију 590 00:23:50,360 --> 00:23:51,280 такве ствари. 591 00:23:51,280 --> 00:23:53,760 И заиста, оно што ми радимо је покренути софтвер који пореди све 592 00:23:53,760 --> 00:23:55,540 овогодишњи Поднесци против свих Прошле године је 593 00:23:55,540 --> 00:23:57,380 поднеске, против свега што смо наћи на 594 00:23:57,380 --> 00:24:00,060 Интернет, против сваког радног сајту тамо. 595 00:24:00,060 --> 00:24:01,710 То је све веома аутоматизован. 596 00:24:01,710 --> 00:24:05,665 И тако смо урадили заиста у великој праведности на 97% оних који 597 00:24:05,665 --> 00:24:07,760 заиста ради своје гузице офф у овом и у другим 598 00:24:07,760 --> 00:24:11,530 класе и стављање у све те напоре, тако да рад 599 00:24:11,530 --> 00:24:13,030 оне на крају тврдимо своје. 600 00:24:13,030 --> 00:24:14,220 И ја могу да трају годинама. 601 00:24:14,220 --> 00:24:16,030 >> Ово су само неколико случајева прошлогодишњих. 602 00:24:16,030 --> 00:24:19,350 Неколико студената подносе ове датотеке идентично за псет 2, 603 00:24:19,350 --> 00:24:22,460 псет 3, 4 псет, псет 5, 6 псет, псет 9. 604 00:24:22,460 --> 00:24:26,360 У овом случају, то је квиз 0 и прошле године, где два 605 00:24:26,360 --> 00:24:29,570 студенти подносе идентично ову реченицу од многих 606 00:24:29,570 --> 00:24:32,210 други, "Захтев типа -" тачка, тачка, тачка. 607 00:24:32,210 --> 00:24:34,530 Дакле, чак иу класи 600 смо то препознаје 608 00:24:34,530 --> 00:24:36,310 на поднео квизове. 609 00:24:36,310 --> 00:24:39,080 Дакле укратко, ово - искрено, ја мрзим да овакве 610 00:24:39,080 --> 00:24:41,300 разговор - али ово је стварно намерно напор 611 00:24:41,300 --> 00:24:43,540 ове године покушати да смање тај број. 612 00:24:43,540 --> 00:24:45,650 Јер иако смо рекли такве ствари сваких 613 00:24:45,650 --> 00:24:48,100 године, мислим да је реалност боравио на њему неколико 614 00:24:48,100 --> 00:24:50,800 више секунди него обично и заправо само указује 615 00:24:50,800 --> 00:24:53,600 да оно што се можда чини као, ех, не тако велика ствар, бар 616 00:24:53,600 --> 00:24:56,390 Мислим назад овом тренутку, како би правичности 617 00:24:56,390 --> 00:25:00,100 себи и својим друговима овде. 618 00:25:00,100 --> 00:25:02,480 Дакле, ако сте икада имали било каквих питања, као на место где линија 619 00:25:02,480 --> 00:25:04,290 је, молим те допре до мене лично. 620 00:25:04,290 --> 00:25:07,190 Али одговор је увек, потпуно је нагласио на 621 00:25:07,190 --> 00:25:09,090 ласт минуте, готовина у крајем дана. 622 00:25:09,090 --> 00:25:11,080 Или, ако је то питање нема било касно дана, 623 00:25:11,080 --> 00:25:12,900 искрено, ми е-маил лично. 624 00:25:12,900 --> 00:25:14,110 Ми ћемо схватити нешто. 625 00:25:14,110 --> 00:25:17,480 Молимо вас да не стави своје време овде на Харварду у опасности. 626 00:25:17,480 --> 00:25:18,570 >> Сада, мислио сам да треба да олакша расположење, па сам 627 00:25:18,570 --> 00:25:20,264 укључени ово као следећи слајд. 628 00:25:20,264 --> 00:25:22,770 [СМЕХ] 629 00:25:22,770 --> 00:25:23,630 Давид Ј. Малан: Овај сајт је супер. 630 00:25:23,630 --> 00:25:24,820 Ја заправо имам мало растројен. 631 00:25:24,820 --> 00:25:26,330 Има и овај. 632 00:25:26,330 --> 00:25:29,590 И онда ово је невероватно. 633 00:25:29,590 --> 00:25:35,190 Ок, тако да мислим да од тог маче касно ноћу када одлука 634 00:25:35,190 --> 00:25:36,040 те одлуке. 635 00:25:36,040 --> 00:25:40,110 У реду, па назад на више забаве, а мање озбиљна ствар, као што је 636 00:25:40,110 --> 00:25:40,780 услови. 637 00:25:40,780 --> 00:25:43,900 >> У реду, па смо кратко разговарали о томе. 638 00:25:43,900 --> 00:25:46,080 То је нешто што је вероватно прилично упознати са 639 00:25:46,080 --> 00:25:47,260 свет нуле. 640 00:25:47,260 --> 00:25:49,860 А у свету нуле, имамо ту потребу да се понекад 641 00:25:49,860 --> 00:25:51,110 иди чине виле на путу. 642 00:25:51,110 --> 00:25:54,840 Или ово или оно или овде ову другу ствар. 643 00:25:54,840 --> 00:25:58,990 А када желимо да урадимо ово, можемо да користимо у Ц сада, ово ако 644 00:25:58,990 --> 00:26:00,860 друго конструкт. 645 00:26:00,860 --> 00:26:06,420 А онда овде имамо Булових израза. 646 00:26:06,420 --> 00:26:09,260 На пример, Булове изразе овде, можемо ИЛИ 647 00:26:09,260 --> 00:26:12,260 их заједно, у смислу да имамо овај услов ИЛИ 648 00:26:12,260 --> 00:26:13,200 тај услов. 649 00:26:13,200 --> 00:26:15,100 Можемо и да заједно, у смислу да желимо да 650 00:26:15,100 --> 00:26:17,710 погледајте овај услов и тај услов. 651 00:26:17,710 --> 00:26:22,440 А овде имамо сада прекидач изјаву, која није толико 652 00:26:22,440 --> 00:26:26,040 слично синтаксички оним врстама услова, али је 653 00:26:26,040 --> 00:26:30,160 омогућава нам да еквивалент ако, ако, друго иф, елсе 654 00:26:30,160 --> 00:26:34,990 ако, и слично, једноставно их набрајам случаја до случаја 655 00:26:34,990 --> 00:26:36,670 од случаја до случаја. 656 00:26:36,670 --> 00:26:38,370 Тако смо видели те последњи пут. 657 00:26:38,370 --> 00:26:40,430 А онда смо почели да додирујете на ствари као што су петље. 658 00:26:40,430 --> 00:26:42,070 Видели смо једну од ових пре само тренутак. 659 00:26:42,070 --> 00:26:44,180 Али постоје ови други петље конструкти. 660 00:26:44,180 --> 00:26:46,370 >> На пример, овај овде. 661 00:26:46,370 --> 00:26:50,140 Дакле, док (услов), урадите ово опет и опет. 662 00:26:50,140 --> 00:26:53,070 Па у основи, оно што се чини да се разликује између овог 663 00:26:53,070 --> 00:26:55,760 за петље и овде то док петља? 664 00:27:00,810 --> 00:27:05,045 Ово је за петље и то док петља. 665 00:27:05,045 --> 00:27:07,840 Да? 666 00:27:07,840 --> 00:27:08,800 Шта је то? 667 00:27:08,800 --> 00:27:10,050 ПУБЛИКА: [ИНАУДИБЛЕ]. 668 00:27:14,632 --> 00:27:15,120 Давид Ј. Малан: Добро. 669 00:27:15,120 --> 00:27:17,130 Дакле, док је у за петље услов, јасно је да је 670 00:27:17,130 --> 00:27:17,940 више синтакса. 671 00:27:17,940 --> 00:27:20,560 Ту је ово иницијализација, ту је тај упдате. 672 00:27:20,560 --> 00:27:23,820 У вхиле петље, само има овај услов. 673 00:27:23,820 --> 00:27:26,630 Тако се чини да је то мало у односу на доле у ​​односу на 674 00:27:26,630 --> 00:27:28,770 петља, што значи ако желимо да имамо променљиве и желимо 675 00:27:28,770 --> 00:27:30,800 да Инкрементација, ми заправо треба да 676 00:27:30,800 --> 00:27:32,500 Урадимо ово сами. 677 00:27:32,500 --> 00:27:34,420 >> Зато ме пусти да иде напред и отворити гедит. 678 00:27:34,420 --> 00:27:36,320 Дозволите ми да пребаците на уређај. 679 00:27:36,320 --> 00:27:38,110 И хајде да урадимо брзо мало примера да 680 00:27:38,110 --> 00:27:40,550 разликује један од њих из другог. 681 00:27:40,550 --> 00:27:42,490 А у позадини мог ума овде, требало би да кажем једну ствар. 682 00:27:42,490 --> 00:27:44,120 Ја конкретно поменуо име Тим. 683 00:27:44,120 --> 00:27:47,740 Тим је био заправо неко да ученик покушао да пронађе да уради 684 00:27:47,740 --> 00:27:48,680 њихов домаћи за њих. 685 00:27:48,680 --> 00:27:51,280 Нисмо имали Тима у том делу. 686 00:27:51,280 --> 00:27:53,690 Па схвати, да не обелодањују студент, није био ученик. 687 00:27:53,690 --> 00:27:55,720 То је био случајан човек на Интернету ствари раде 688 00:27:55,720 --> 00:27:57,180 од прокси прошле године. 689 00:27:57,180 --> 00:27:58,670 Тако смо сазнали да, превише. 690 00:27:58,670 --> 00:28:00,630 Дакле, у овом случају овде, пусти ме напред и 691 00:28:00,630 --> 00:28:02,810 отвори нову датотеку. 692 00:28:02,810 --> 00:28:04,800 Филе, Нев. 693 00:28:04,800 --> 00:28:06,050 То ми даје ту картицу. 694 00:28:06,050 --> 00:28:09,940 Дозволите ми да иде напред и да га сачувате као лооп.ц. 695 00:28:09,940 --> 00:28:11,810 Пусти ме и кликните на Сачувај. 696 00:28:11,810 --> 00:28:15,340 А онда овде доле, идемо напред и почети писање 697 00:28:15,340 --> 00:28:16,605 # Инцлуде. 698 00:28:19,116 --> 00:28:20,520 Пусти ме унутра увећали 699 00:28:20,520 --> 00:28:23,410 Сада ћемо урадити маин (воид). 700 00:28:23,410 --> 00:28:30,020 Сада пусти ме ићи напред и учинити фор (инт и = 0; и < 701 00:28:30,020 --> 00:28:33,480 ох, 10; и + +). 702 00:28:33,480 --> 00:28:36,620 А сада ћу да иде напред и да одштампате звезду коју сам 703 00:28:36,620 --> 00:28:37,890 урадио раније. 704 00:28:37,890 --> 00:28:39,390 И онда на крају овог програма, ми ћемо само да 705 00:28:39,390 --> 00:28:41,130 принт нову линију, само да је мој брз 706 00:28:41,130 --> 00:28:42,470 не изгледа све наопако. 707 00:28:42,470 --> 00:28:45,170 повратак 0. 708 00:28:45,170 --> 00:28:47,610 Мислите да синтаксички исправно? 709 00:28:47,610 --> 00:28:48,040 До сада. 710 00:28:48,040 --> 00:28:48,560 Дакле, хајде да видимо. 711 00:28:48,560 --> 00:28:51,290 >> Дакле, дозволите ми да умањите, идите у мој прозор терминала. 712 00:28:51,290 --> 00:28:54,570 И дозволите ми да иде напред и покрените петља, јер сам назвао 713 00:28:54,570 --> 00:28:55,690 ствар лооп.ц. 714 00:28:55,690 --> 00:28:56,780 Тако да петљу. 715 00:28:56,780 --> 00:28:57,840 Изгледа да састави реду. 716 00:28:57,840 --> 00:29:00,210 Дозволите ми да покренете петље, и сада Ентер. 717 00:29:00,210 --> 00:29:01,820 И чини се да је штампан 10 звезде. 718 00:29:01,820 --> 00:29:03,780 Дакле, хајде да само конвертовати у вхиле петље и види шта 719 00:29:03,780 --> 00:29:05,220 врсте питања смо саплели. 720 00:29:05,220 --> 00:29:11,290 Дакле, уместо тога, пусти ме унутра и реци, док је ја 721 00:29:11,290 --> 00:29:12,760 мање од 10 - 722 00:29:12,760 --> 00:29:14,910 дозволите ми да се ослободим за петљу. 723 00:29:14,910 --> 00:29:17,170 У реду, тако да смо већ неколико проблема. 724 00:29:17,170 --> 00:29:21,110 Дакле, стање је исто, али очигледно ми недостаје 725 00:29:21,110 --> 00:29:21,680 иницијализација. 726 00:29:21,680 --> 00:29:23,840 Ја недостаје Инкрементација. 727 00:29:23,840 --> 00:29:28,020 Дакле, шта треба преводилац вероватно реци када покушам да 728 00:29:28,020 --> 00:29:29,170 саставити овај програм? 729 00:29:29,170 --> 00:29:29,666 Да? 730 00:29:29,666 --> 00:29:31,154 ПУБЛИКА: [ИНАУДИБЛЕ]. 731 00:29:31,154 --> 00:29:31,650 >> Давид Ј. Малан: Добро. 732 00:29:31,650 --> 00:29:34,180 Дакле, то ће рећи нешто слично непријављени - у овом 733 00:29:34,180 --> 00:29:35,280 случају, ја променљива. 734 00:29:35,280 --> 00:29:37,980 И заиста, коришћење непријављеног и идентификатора. 735 00:29:37,980 --> 00:29:40,960 И тако је то у супротности са језицима као што су ПХП и 736 00:29:40,960 --> 00:29:43,120 Питхон и Руби, са којим су неки од вас можда бити упознат, 737 00:29:43,120 --> 00:29:44,820 где можете некако почетка коришћењем променљивих 738 00:29:44,820 --> 00:29:47,420 неминовно и да не морају да брину о њима декларисање 739 00:29:47,420 --> 00:29:48,560 експлицитно увек. 740 00:29:48,560 --> 00:29:51,770 У Ц и језицима као што су Јава и Ц + +, морате да будете 741 00:29:51,770 --> 00:29:53,020 супер експлицитан. 742 00:29:53,020 --> 00:29:55,760 А ако желите променљиву Позвао сам, мораш да ми кажеш 743 00:29:55,760 --> 00:29:57,360 каква је променљива. 744 00:29:57,360 --> 00:29:59,360 Дакле, ми ћемо морати да поправи ово као што следи. 745 00:29:59,360 --> 00:30:05,510 Ја ћу морати да одем овде и упишите инт, дакле, 746 00:30:05,510 --> 00:30:07,860 Ја сам прогласио променљиву зове ја. 747 00:30:07,860 --> 00:30:09,180 Сада, ја сам прескочио један корак. 748 00:30:09,180 --> 00:30:11,340 Очигледно сам не иницијализован, али хајде да видимо да ли је у 749 00:30:11,340 --> 00:30:13,650 Најмање састави цланг стоп жале. 750 00:30:13,650 --> 00:30:15,770 Дакле, дозволите ми да преобликује овај програм. 751 00:30:15,770 --> 00:30:16,770 >> Добро, сад то је само жали 752 00:30:16,770 --> 00:30:17,870 из другог разлога. 753 00:30:17,870 --> 00:30:21,130 "Променљиве" и "се неиницијализоване када се користи овде." У реду, тако да 754 00:30:21,130 --> 00:30:22,340 То је прилично јасан. 755 00:30:22,340 --> 00:30:25,510 Иницијализују само значи постављање је једнака вредности. 756 00:30:25,510 --> 00:30:30,820 И нисмо то урадили, па ћу покушати једнако 0. 757 00:30:30,820 --> 00:30:35,030 Сада хајде да покушамо поново и поново покренути кланг. 758 00:30:35,030 --> 00:30:36,140 Приредила овај пут. 759 00:30:36,140 --> 00:30:37,210 И ја сам о томе да га покренете. 760 00:30:37,210 --> 00:30:43,120 Али велики стари бесконачна петља, јер сам урадио 761 00:30:43,120 --> 00:30:45,530 иницијализација, учинио сам услов, али ја никада нисам урадио 762 00:30:45,530 --> 00:30:47,030 било каквог Инкрементација. 763 00:30:47,030 --> 00:30:48,780 Па како могу да ураде Инкрементација? 764 00:30:48,780 --> 00:30:51,170 Па, у вхиле петље, она се осећа као да ћу имати 765 00:30:51,170 --> 00:30:54,180 то уради унутар петље, јер слично прва 766 00:30:54,180 --> 00:30:56,570 Овонедељне примера ради петље конструкције, као и 767 00:30:56,570 --> 00:30:59,040 чарапе и са себе бројањем, морали смо да урадимо 768 00:30:59,040 --> 00:31:01,550 нешто на самом крају, желео да се вратите на следећи ред. 769 00:31:01,550 --> 00:31:05,040 Шта ако сам напред и урадите то и + + овде? 770 00:31:05,040 --> 00:31:06,030 Немојмо ни саставити ово. 771 00:31:06,030 --> 00:31:06,890 Ухвати ме већ. 772 00:31:06,890 --> 00:31:09,704 Шта није у реду овде? 773 00:31:09,704 --> 00:31:10,690 ПУБЛИКА: [ИНАУДИБЛЕ]. 774 00:31:10,690 --> 00:31:11,770 >> Давид Ј. Малан: Дакле дефинитивно није инт. 775 00:31:11,770 --> 00:31:13,080 То сам ја. 776 00:31:13,080 --> 00:31:15,110 А витичасте заграде, као и раније, 777 00:31:15,110 --> 00:31:16,800 удубљење није довољно. 778 00:31:16,800 --> 00:31:18,410 Дакле, сада сам то изгради. 779 00:31:18,410 --> 00:31:21,780 Дакле, док сам је мање од 10, одштампајте звезду, 780 00:31:21,780 --> 00:31:23,220 онда инкрементирање и. 781 00:31:23,220 --> 00:31:25,680 И тако, док петља радова је да чим си ударио 782 00:31:25,680 --> 00:31:29,630 Доњи део петље, која је у овом случају изгледа као линија 10, 783 00:31:29,630 --> 00:31:32,880 да ће се вратити на линију 6, на којој тачки 784 00:31:32,880 --> 00:31:34,400 Услов ће бити поново проверити. 785 00:31:34,400 --> 00:31:37,500 И ако сам још увек је мање од 10, урадићемо линес 8 и 786 00:31:37,500 --> 00:31:41,250 онда 9, онда ћемо ударити 10, и врати до 6, поново 787 00:31:41,250 --> 00:31:45,580 опет и опет и опет, све док и је мање од 10 година. 788 00:31:45,580 --> 00:31:47,860 Дакле, хајде да поново покрене направи овде. 789 00:31:47,860 --> 00:31:48,940 >> Ок, ок смо саставили. 790 00:31:48,940 --> 00:31:50,300 Дозволите ми да поново покренути петља. 791 00:31:50,300 --> 00:31:52,620 А сада стварно изгледа да ради. 792 00:31:52,620 --> 00:31:55,100 Дакле, овде плусева и минусева? 793 00:31:55,100 --> 00:31:58,910 Па, сада заиста постоји није цела ПЛО - 794 00:31:58,910 --> 00:31:59,420 тако сладак. 795 00:31:59,420 --> 00:32:01,870 Добро, то је - Ах, то је била несрећа. 796 00:32:01,870 --> 00:32:05,200 Добро, хајде да се вратимо на за петљу. 797 00:32:05,200 --> 00:32:07,530 Дакле, за петље су лепе, јер су они супер експлицитан. 798 00:32:07,530 --> 00:32:09,720 И мада су мало незгодан за писање, то је 799 00:32:09,720 --> 00:32:11,500 веома моћан и омогућава вам да урадите 800 00:32:11,500 --> 00:32:12,980 више ствари одједном. 801 00:32:12,980 --> 00:32:16,240 Иако петље не изгледа да има огромну количину вредности само 802 00:32:16,240 --> 00:32:18,500 Ипак, због тога што се осећа као да само морамо да урадимо више посла. 803 00:32:18,500 --> 00:32:20,670 Морамо ставити иницијализацију овде, 804 00:32:20,670 --> 00:32:23,480 упдате овде доле, и морамо се сетити да уради све то. 805 00:32:23,480 --> 00:32:26,260 Тако ћемо видети у времену које вхиле петље заправо позајмљује 806 00:32:26,260 --> 00:32:29,380 Сами то само различитим контекстима, различити подаци 807 00:32:29,380 --> 00:32:33,900 структуре попут листа и хеш табела, ствари ћемо доћи до 808 00:32:33,900 --> 00:32:34,970 средином семестра. 809 00:32:34,970 --> 00:32:37,900 Али за сада, знам да постоји овај трећи тип познат као до- 810 00:32:37,900 --> 00:32:38,480 док је петља. 811 00:32:38,480 --> 00:32:39,540 И ми смо видели овај кратко. 812 00:32:39,540 --> 00:32:41,830 И то може бити супер корисно са псет 1. 813 00:32:41,830 --> 00:32:45,570 Сваки пут када желите да урадите нешто и затим проверите да ли 814 00:32:45,570 --> 00:32:48,940 корисник сарађивали, а ако нису, то опет не- 815 00:32:48,940 --> 00:32:51,460 док петља се даје таквом логиком. 816 00:32:51,460 --> 00:32:55,640 Јер као наручивања од врха до дна овде сугерише, 817 00:32:55,640 --> 00:32:57,750 Не буквално значи ово. 818 00:32:57,750 --> 00:32:59,830 А ово опет и опет, шта би то могло бити? 819 00:32:59,830 --> 00:33:03,000 Можда то значи позивање ГетИнт или ГетСтринг а затим 820 00:33:03,000 --> 00:33:05,830 проверу вредности ГетИнт или ГетСтринг а затим викала 821 00:33:05,830 --> 00:33:08,260 у корисника уколико нису сарађивали тражећи од њих да 822 00:33:08,260 --> 00:33:10,100 опет и опет и опет. 823 00:33:10,100 --> 00:33:11,730 Где желите да урадите нешто једном, 824 00:33:11,730 --> 00:33:13,210 затим проверите неке стање. 825 00:33:13,210 --> 00:33:14,110 >> Дакле, хајде да пробамо ово. 826 00:33:14,110 --> 00:33:17,130 Дозволите ми да се заиста променити ово сада са до-вхиле петље. 827 00:33:17,130 --> 00:33:18,830 И ја ћу да иде напред и урадите следеће. 828 00:33:18,830 --> 00:33:21,830 Дакле, урадите следеће. 829 00:33:21,830 --> 00:33:26,870 Урадимо инт = ГетИнт (), али хајде да прво кажем корисника 830 00:33:26,870 --> 00:33:27,410 шта да радим. 831 00:33:27,410 --> 00:33:29,050 Дакле, мало другачије овај пут. 832 00:33:29,050 --> 00:33:31,270 "Дајте ми Инт." 833 00:33:31,270 --> 00:33:32,910 Зато ћу иф користити за то. 834 00:33:32,910 --> 00:33:35,740 А сада ћу да одем доле, а ја ћу да урадим ово 835 00:33:35,740 --> 00:33:41,520 док сам је, рецимо, већи од - 836 00:33:41,520 --> 00:33:47,540 хајде да видимо, ја је, рецимо, мање од 0 или је ја 837 00:33:47,540 --> 00:33:48,730 већа од 10 година. 838 00:33:48,730 --> 00:33:51,810 Другим речима, желим број од 1 до 9, само 839 00:33:51,810 --> 00:33:52,720 произвољно. 840 00:33:52,720 --> 00:33:55,290 Дакле, ја користим комбиновани Булову израз овде 841 00:33:55,290 --> 00:33:59,930 уверите се да и је мање од 0 или веће од 10, у коме 842 00:33:59,930 --> 00:34:02,530 Случај Учинићу то петљу опет овде. 843 00:34:02,530 --> 00:34:04,400 Па опет, уради ово - 844 00:34:04,400 --> 00:34:08,480 док сам је мање од 0 или и већи од 10 година. 845 00:34:08,480 --> 00:34:11,440 >> Дакле, сада идемо напред и урадите када смо урадили. 846 00:34:11,440 --> 00:34:13,270 Хајде само да урадимо брзо разум чек. 847 00:34:13,270 --> 00:34:18,929 принтф ("Хвала, ја је% д", и). 848 00:34:18,929 --> 00:34:21,350 Дакле, ово једноставан програм пита корисника за цео број, 849 00:34:21,350 --> 00:34:24,000 чини сигуран да је у неком опсегу, 1 до 9, инклузивно 850 00:34:24,000 --> 00:34:26,280 и онда се захваљује кориснику их подсетити шта су управо 851 00:34:26,280 --> 00:34:27,940 откуцан, баш као мало разума провере. 852 00:34:27,940 --> 00:34:30,659 Али, хајде да видимо да ли то ради како треба. 853 00:34:30,659 --> 00:34:34,533 Пусти ме да идем главу доле и поново покренути чине петљу. 854 00:34:34,533 --> 00:34:35,350 Хмм. 855 00:34:35,350 --> 00:34:38,600 "Коришћење непријављеног идентификатора 'ја'". То је чудно. 856 00:34:38,600 --> 00:34:41,509 Мислио сам да смо решени да. 857 00:34:45,489 --> 00:34:47,560 Исти симптом али другачији код. 858 00:34:47,560 --> 00:34:47,899 Да? 859 00:34:47,899 --> 00:34:50,191 ПУБЛИКА: [ИНАУДИБЛЕ] унутар два, морамо да 860 00:34:50,191 --> 00:34:52,639 [ИНАУДИБЛЕ]. 861 00:34:52,639 --> 00:34:53,260 >> Давид Ј. Малан: Тачно. 862 00:34:53,260 --> 00:34:55,989 Дакле, ово заправо нас води ка теми познат као обиму. 863 00:34:55,989 --> 00:34:59,350 Испада да је Ц, опет, стварно вас води буквално. 864 00:34:59,350 --> 00:35:02,970 А ако урадите нешто овако где прогласити Инт 865 00:35:02,970 --> 00:35:06,120 и онда му доделите неку вредност, али ви тај унутрашњост 866 00:35:06,120 --> 00:35:09,840 пар заграда, шта је то Ц не претпоставља да 867 00:35:09,840 --> 00:35:14,800 Само желим те 32 бита познате као ја да постоји у оквиру 868 00:35:14,800 --> 00:35:18,200 контекст тих заграда, у контексту линија 869 00:35:18,200 --> 00:35:22,420 6 до 9. Тако сам се проглашава, а то је додељен 870 00:35:22,420 --> 00:35:26,530 вредност у ред 8, али чим се изван 871 00:35:26,530 --> 00:35:30,270 линија 9 испод коврџаве браце, и није више у 872 00:35:30,270 --> 00:35:31,910 обим, да тако кажем. 873 00:35:31,910 --> 00:35:35,030 С-Ц-О-П-Е. То више није у правом контексту. 874 00:35:35,030 --> 00:35:37,940 Дакле, сада постоји и, тако да је то као да нисмо имали ни 875 00:35:37,940 --> 00:35:38,770 изјавио је на све. 876 00:35:38,770 --> 00:35:41,520 >> Па шта је онда поправити за нешто овако, уколико 877 00:35:41,520 --> 00:35:44,300 Разлог је у томе што сам се проглашава унутар заграда, што 878 00:35:44,300 --> 00:35:45,120 је очигледно лоше? 879 00:35:45,120 --> 00:35:45,410 Овде? 880 00:35:45,410 --> 00:35:46,820 ПУБЛИКА: [ИНАУДИБЛЕ]. 881 00:35:46,820 --> 00:35:47,150 Давид Ј. Малан: Да. 882 00:35:47,150 --> 00:35:48,710 Дакле, можемо да га покрене напољу. 883 00:35:48,710 --> 00:35:53,530 Зато ме пусти да иде напред и брисање делова декларацију којом 884 00:35:53,530 --> 00:35:55,820 Ја навести тип, и дозволите ми да то урадим овде. 885 00:35:55,820 --> 00:36:00,220 Дакле, у складу 5, сада каже: "Дајте ми Инт." Позив сам га. 886 00:36:00,220 --> 00:36:03,400 Обратите пажњу на линији 9, ја не желим то да урадим, јер сам 887 00:36:03,400 --> 00:36:04,830 Већ имају 32 бита. 888 00:36:04,830 --> 00:36:06,140 Ја не желим да питам рачунар за 889 00:36:06,140 --> 00:36:07,630 различити 32 бита. 890 00:36:07,630 --> 00:36:09,850 Желим да користим те исте 32 бита. 891 00:36:09,850 --> 00:36:13,190 А сада, јер сам је декларисана у складу 5, то је још увек читљив 892 00:36:13,190 --> 00:36:16,550 да га користите у складу 11 и линија 12. 893 00:36:16,550 --> 00:36:19,310 >> Дакле, дозволите ми да покушам да рекомпајлирате и видети 894 00:36:19,310 --> 00:36:20,490 ако престане да виче цланг. 895 00:36:20,490 --> 00:36:22,380 направити петљу. 896 00:36:22,380 --> 00:36:25,470 Дакле, сада је "имплицитни декларација функције 897 00:36:25,470 --> 00:36:29,880 'ГетИнт' је инвалид у Ц99 "Шта је то. 898 00:36:29,880 --> 00:36:30,400 Да? 899 00:36:30,400 --> 00:36:32,330 ПУБЛИКА: [ИНАУДИБЛЕ]. 900 00:36:32,330 --> 00:36:32,690 Давид Ј. Малан: Да. 901 00:36:32,690 --> 00:36:35,520 Дакле, сада сам заправо ја користим ГетИнт, то није нешто 902 00:36:35,520 --> 00:36:38,190 то само долази са Ц. То долази од ЦС50. 903 00:36:38,190 --> 00:36:39,890 Дакле, ово нам је потребно овде. 904 00:36:39,890 --> 00:36:41,450 И дозволите ми да се вратим на линији на доле 905 00:36:41,450 --> 00:36:43,500 овде и поново покренути направити. 906 00:36:43,500 --> 00:36:44,160 Ок, коначно. 907 00:36:44,160 --> 00:36:46,270 Сада смо решени да и други грешку. 908 00:36:46,270 --> 00:36:48,930 Дозволите ми да се сада води петље и види шта се дешава. 909 00:36:48,930 --> 00:36:51,740 "Дајте ми Инт." Ја ћу му дати 11. 910 00:36:51,740 --> 00:36:53,100 Ја ћу му дати -1. 911 00:36:53,100 --> 00:36:54,470 Ја ћу му дати фоо. 912 00:36:54,470 --> 00:36:56,080 Ја ћу му дати 5. 913 00:36:56,080 --> 00:36:57,450 И сада је то заиста ради. 914 00:36:57,450 --> 00:36:59,410 Али одзив променио разлогом овде. 915 00:36:59,410 --> 00:37:02,800 Зашто се каже ретри један од тих пута, али дајте 916 00:37:02,800 --> 00:37:03,920 инт остале три пута? 917 00:37:03,920 --> 00:37:05,500 Зашто је то понашање другачије? 918 00:37:05,500 --> 00:37:06,980 ПУБЛИКА: Дао је стринг. 919 00:37:06,980 --> 00:37:07,830 Давид Ј. Малан: Молим? 920 00:37:07,830 --> 00:37:08,570 ПУБЛИКА: Ви га дао низ. 921 00:37:08,570 --> 00:37:08,990 Давид Ј. Малан: Да. 922 00:37:08,990 --> 00:37:11,450 Тако смо му дали низ у овом трећем покушају, 923 00:37:11,450 --> 00:37:12,490 кад откуца фоо. 924 00:37:12,490 --> 00:37:13,200 Фоо је ниска. 925 00:37:13,200 --> 00:37:14,340 То очигледно није инт. 926 00:37:14,340 --> 00:37:17,500 А начин на који је реализовао ЦС50 ГетИнт је да смо 927 00:37:17,500 --> 00:37:20,330 не проверите да ли је нешто је мање од 0 или веће од 10 928 00:37:20,330 --> 00:37:22,260 за тебе, јер како знамо унапред какво 929 00:37:22,260 --> 00:37:23,130 инт желите? 930 00:37:23,130 --> 00:37:25,880 Али ми минимално може да провери за вас, да ли корисник најмање 931 00:37:25,880 --> 00:37:26,730 упишите цео? 932 00:37:26,730 --> 00:37:30,500 А ако нису, вичемо корисника куцајући "ретри" на 933 00:37:30,500 --> 00:37:31,440 екран. 934 00:37:31,440 --> 00:37:34,210 >> Дакле, сада имамо програм који је петље. Ок. 935 00:37:34,210 --> 00:37:37,070 Сада, која од њих је некако боље конструкт? 936 00:37:37,070 --> 00:37:39,060 Дакле, ово је место где ствари почињу да се мало наопако, 937 00:37:39,060 --> 00:37:42,360 Чињеница да морате да се сетите да прогласи променљиву овде 938 00:37:42,360 --> 00:37:44,630 ако желите да га користите у неке 939 00:37:44,630 --> 00:37:46,460 витичасте заграде и споља. 940 00:37:46,460 --> 00:37:48,490 Али, чак и ако то изгледа мало криптичан на први 941 00:37:48,490 --> 00:37:50,750 поглед, само једном, сетите једноставну логику. 942 00:37:50,750 --> 00:37:54,630 Да би користили ништа Ц, без обзира да ли је то функција или 943 00:37:54,630 --> 00:37:57,680 то је променљива, треба да га укључи ако је функција 944 00:37:57,680 --> 00:37:59,770 у неком библиотеци, или треба да га прогласи. 945 00:37:59,770 --> 00:38:02,405 Али сада треба да буде екстра свесни чињенице да 946 00:38:02,405 --> 00:38:04,940 ви га проглашава у правом обиму. 947 00:38:04,940 --> 00:38:08,150 Нећеш га стављате превише чврсто унутар заграда. 948 00:38:08,150 --> 00:38:09,410 >> Дакле, дозволите ми заиста врати. 949 00:38:09,410 --> 00:38:12,660 Ако се вратимо на наше пример од раније, а ја идем 950 00:38:12,660 --> 00:38:19,245 назад на инт, инт и = 0; и <10; и + +, а ја 951 00:38:19,245 --> 00:38:26,370 до принтф звезде, као што је овај, а затим затворите заграда, а сада 952 00:38:26,370 --> 00:38:30,410 принтф и сада је - 953 00:38:30,410 --> 00:38:33,500 по истој логици, шта ће се десити кад покуша да 954 00:38:33,500 --> 00:38:35,500 саставити овај програм? 955 00:38:35,500 --> 00:38:36,790 ПУБЛИКА: Неважећи идентификатор. 956 00:38:36,790 --> 00:38:38,560 Давид Ј. Малан: Дакле, то је један неважећи идентификатор 957 00:38:38,560 --> 00:38:39,470 необјављени идентификатор. 958 00:38:39,470 --> 00:38:41,810 Сада, разлог је мало другачија. 959 00:38:41,810 --> 00:38:44,370 Ту је очигледно нема витичасте заграде овде, али исто 960 00:38:44,370 --> 00:38:46,790 идеја, иста прича важи обима. 961 00:38:46,790 --> 00:38:50,340 Ако сте проглашен променљиву као да сам унутар 962 00:38:50,340 --> 00:38:53,960 за петље, чак и ако нисте експлицитно написано коврџава 963 00:38:53,960 --> 00:38:56,980 протеза, мисле о њима ментално јер још увек био ту, у коме 964 00:38:56,980 --> 00:39:00,310 Случај сам важи само унутар за петљу. 965 00:39:00,310 --> 00:39:03,080 То није важећа када дођете до следеће линије, која је у 966 00:39:03,080 --> 00:39:05,090 овај случај је сада 10. 967 00:39:05,090 --> 00:39:09,060 Дакле, само неколико питања обима и слично. 968 00:39:09,060 --> 00:39:12,620 Добро, било каква питања? 969 00:39:12,620 --> 00:39:15,310 >> У реду, тако да је ово нека врста тривијалног мало програма, 970 00:39:15,310 --> 00:39:17,450 штампање само мале звезде. 971 00:39:17,450 --> 00:39:20,400 Али, хајде да видимо да ли се сећате овде ову песму. 972 00:39:20,400 --> 00:39:22,530 Ово је невероватно досадних песма деца ће певати на 973 00:39:22,530 --> 00:39:23,550 школски аутобус и слично. 974 00:39:23,550 --> 00:39:25,990 Али оно што је лепо о томе је да има ову цицлицити, 975 00:39:25,990 --> 00:39:27,910 при чему је "99 боца пива на зиду, 976 00:39:27,910 --> 00:39:28,520 99 флаша пива. 977 00:39:28,520 --> 00:39:31,030 Узми један доле, прође га око, 98 боца пива на 978 00:39:31,030 --> 00:39:34,330 зид "А онда песма понавља 97, затим 96, па. 979 00:39:34,330 --> 00:39:38,040 95, затим 94, па све доле до 0, ако сте заиста схватио 980 00:39:38,040 --> 00:39:38,920 далеко у аутобусу. 981 00:39:38,920 --> 00:39:41,960 Дакле, ово је добар програм да некако спроведу, јер је мој 982 00:39:41,960 --> 00:39:43,650 Боже, ако би имплементирати ово са неколико 983 00:39:43,650 --> 00:39:46,660 линија кода, можете испљунути цео текст на ово 984 00:39:46,660 --> 00:39:48,240 песма веома брзо. 985 00:39:48,240 --> 00:39:50,420 Али успут, можемо почети да сада задиркују осим неких 986 00:39:50,420 --> 00:39:52,460 ових основних петље конструката, а сада 987 00:39:52,460 --> 00:39:55,830 уведе функција које смо сами пишете, вратите вредности 988 00:39:55,830 --> 00:39:57,020 да смо се прође. 989 00:39:57,020 --> 00:39:58,910 Али прво, зашто не бисмо напред и да наш пет минута 990 00:39:58,910 --> 00:39:59,320 бреак овде? 991 00:39:59,320 --> 00:40:01,480 А када се вратимо, ми ћемо певати ову песму. 992 00:40:05,680 --> 00:40:08,760 >> У реду, тако да смо се вратили. 993 00:40:08,760 --> 00:40:11,850 А када кажем сада ћемо певати ову песму, мислим 994 00:40:11,850 --> 00:40:13,250 програмски, а не вербално. 995 00:40:13,250 --> 00:40:19,370 Дакле, овде имамо беер1.ц, која је једна имплементација овог 996 00:40:19,370 --> 00:40:20,580 Посебно песма. 997 00:40:20,580 --> 00:40:23,110 И само да буде јасно, за оне који нису упознати са оним 998 00:40:23,110 --> 00:40:24,460 ово изгледа, пусти ме само напред 999 00:40:24,460 --> 00:40:27,070 и да беер1, Ентер. 1000 00:40:27,070 --> 00:40:30,400 Сада пусти ме покренути беер1, а оно што ћемо видети - колико боца 1001 00:40:30,400 --> 00:40:31,140 пива ће тамо бити? 1002 00:40:31,140 --> 00:40:33,240 Ја ћу уписати 99, као што каже песма. 1003 00:40:33,240 --> 00:40:34,040 Ентер. 1004 00:40:34,040 --> 00:40:35,650 А сада, ако смо се кретали кроз - 1005 00:40:35,650 --> 00:40:38,280 Упс - ако смо се кретали кроз све ово, ми ћемо видети да 1006 00:40:38,280 --> 00:40:41,350 ово је заиста пева целу песму. 1007 00:40:44,050 --> 00:40:44,540 Чекај мало. 1008 00:40:44,540 --> 00:40:46,240 Моја трака је мало забрљао. 1009 00:40:46,240 --> 00:40:47,940 Хајде да користимо већи прозор. 1010 00:40:47,940 --> 00:40:53,500 Дакле беер1, 99, тамо идемо. 1011 00:40:53,500 --> 00:40:56,420 Дакле, овде имамо читаву песму, пева много брже од 1012 00:40:56,420 --> 00:40:58,450 Рачунар него што би то било код нас. 1013 00:40:58,450 --> 00:41:00,340 Тако приметити, међутим, овде цикличности. 1014 00:41:00,340 --> 00:41:03,380 Она каже 99, а затим 99, затим "узми један доле, то проћи 1015 00:41:03,380 --> 00:41:04,740 около, "онда 98. 1016 00:41:04,740 --> 00:41:06,640 И сада понавља изнова и изнова. 1017 00:41:06,640 --> 00:41:08,840 >> Дакле, ово је заправо савршена прилика за неком врстом 1018 00:41:08,840 --> 00:41:10,400 петље конструкт. 1019 00:41:10,400 --> 00:41:12,950 Приметите да сам врста резања овде угао. 1020 00:41:12,950 --> 00:41:15,960 Обратите пажњу да сам рекао "98 флаша пива на зиду, 1021 00:41:15,960 --> 00:41:19,010 97 флаша пива на зиду ", и то је тако 1022 00:41:19,010 --> 00:41:21,640 да када дођемо до једног боца пива, немам 1023 00:41:21,640 --> 00:41:23,300 да брине о енглеске граматике. 1024 00:41:23,300 --> 00:41:25,790 Али ми такође може да реши ово са мало, ако 1025 00:41:25,790 --> 00:41:26,910 стање, можда. 1026 00:41:26,910 --> 00:41:30,110 Ако је овај број једнина, само напред и рећи "боцу", 1027 00:41:30,110 --> 00:41:31,840 иначе, ако је плурално, кажу "боце". 1028 00:41:31,840 --> 00:41:34,150 Али за сада, потпуно сам сам сечење тај угао. 1029 00:41:34,150 --> 00:41:35,520 Дакле, хајде да видимо шта ми имамо овде. 1030 00:41:35,520 --> 00:41:37,150 Тако смо добили неке коментаре на врху. 1031 00:41:37,150 --> 00:41:39,450 Ја укључујући ове две библиотеке, као и 1032 00:41:39,450 --> 00:41:41,140 најчешће смо ми били. 1033 00:41:41,140 --> 00:41:43,610 И сада пусти ме дођите до првог 1034 00:41:43,610 --> 00:41:44,990 Стварне линије кода. 1035 00:41:44,990 --> 00:41:47,020 Линија 17 почиње главни. 1036 00:41:47,020 --> 00:41:50,610 Линија 21 и 20 има колико боца пива ће тамо бити? 1037 00:41:50,610 --> 00:41:52,060 И онда ја зовем ГетИнт. 1038 00:41:52,060 --> 00:41:53,800 И сада имам мало неког разум провере. 1039 00:41:53,800 --> 00:41:57,030 >> Дакле, ово је конвенција да смо сада ћемо почети да усвајање 1040 00:41:57,030 --> 00:41:59,620 ригорозније провере уноса корисника. 1041 00:41:59,620 --> 00:42:01,710 Понекад једноставно не желе да их подстакне поново 1042 00:42:01,710 --> 00:42:02,630 и опет и опет. 1043 00:42:02,630 --> 00:42:05,620 Уколико корисник шрафови се и не сарађује, у реду. 1044 00:42:05,620 --> 00:42:07,430 Затворите и једноставно не баве њима. 1045 00:42:07,430 --> 00:42:08,990 И то је оно што ја радим овде. 1046 00:42:08,990 --> 00:42:12,520 Ако је н мање од 1, ја ћу само да вичеш на корисника, 1047 00:42:12,520 --> 00:42:14,330 "Жао ми је, то нема никаквог смисла." А онда ћу да 1048 00:42:14,330 --> 00:42:16,650 произвољно врати 1. 1049 00:42:16,650 --> 00:42:18,550 Дакле, опет, ово је само конвенција за навикавање. 1050 00:42:18,550 --> 00:42:19,850 За сада, узми на вери. 1051 00:42:19,850 --> 00:42:22,700 Међутим, до сада, увек смо били враћа 0, јер је 1052 00:42:22,700 --> 00:42:25,204 Рекли смо враћа 0 означава шта? 1053 00:42:25,204 --> 00:42:26,000 ПУБЛИКА: Успех. 1054 00:42:26,000 --> 00:42:27,320 Давид Ј. Малан: Успех, то је све. 1055 00:42:27,320 --> 00:42:29,740 Дакле, сада смо коначно почињемо да размишљамо о 1056 00:42:29,740 --> 00:42:31,330 нон-успеси - 1057 00:42:31,330 --> 00:42:33,760 Другим речима, угао случајевима, грешка условима - 1058 00:42:33,760 --> 00:42:37,520 сада имам неограничен снабдевање, или најмање четири милијарде 1059 00:42:37,520 --> 00:42:39,790 могуће ствари које могу да крену лоше у мојим програмима. 1060 00:42:39,790 --> 00:42:42,300 И могу почети додељујући им појединачне бројеве. 1061 00:42:42,300 --> 00:42:44,340 Сада, углавном довољно да се само врате 1062 00:42:44,340 --> 00:42:45,730 нешто друго од 0. 1063 00:42:45,730 --> 00:42:48,040 Дакле, ми ћемо се једноставно врате 1 за сада. 1064 00:42:48,040 --> 00:42:51,440 Али разлог за повратак 1 је да чим се вратите 1065 00:42:51,440 --> 00:42:55,110 1, погоди шта се дешава са остатком програма? 1066 00:42:55,110 --> 00:42:55,720 Она престаје. 1067 00:42:55,720 --> 00:42:56,560 То је то. 1068 00:42:56,560 --> 00:42:59,150 Дакле, чињеница да сам враћам 1 је ефикасно 1069 00:42:59,150 --> 00:43:02,950 кратак спој извршење овог програма, тако да 1070 00:43:02,950 --> 00:43:06,780 Ништа испод линије 27 ће наставити извршење. 1071 00:43:06,780 --> 00:43:09,210 Чим главне повратка, то је то. 1072 00:43:09,210 --> 00:43:13,160 >> У реду, па ако корисник не сарађују и да стигнемо до линије 30 1073 00:43:13,160 --> 00:43:15,680 јер откуцан на легитиман броја, овде је мој 1074 00:43:15,680 --> 00:43:16,990 Спровођење ове песме. 1075 00:43:16,990 --> 00:43:19,050 Тако сам први пут одштампате нови ред карактер, само за 1076 00:43:19,050 --> 00:43:19,880 естетика. 1077 00:43:19,880 --> 00:43:21,500 Сада имам за петљу. 1078 00:43:21,500 --> 00:43:22,930 И приметио сам да радим ствари на мало 1079 00:43:22,930 --> 00:43:23,880 другачијег правца. 1080 00:43:23,880 --> 00:43:26,210 Не морам да радим мање од, не морам да радим + +. 1081 00:43:26,210 --> 00:43:30,660 Ја уместо да кажем покрене А и променљиву, подесите га једнака 1082 00:43:30,660 --> 00:43:35,080 н, број корисника откуцан, онда урадите следеће, тако да 1083 00:43:35,080 --> 00:43:39,590 док сам је већи од 0, онда сам - 1084 00:43:39,590 --> 00:43:42,070 када завршите једну итерацију ове петље. 1085 00:43:42,070 --> 00:43:44,310 Тако да можемо да рачунамо на доле преко петље за као добро. 1086 00:43:44,310 --> 00:43:47,520 Дакле, ово је прилично недеље сада једна ствар, са принтф. 1087 00:43:47,520 --> 00:43:51,770 Дакле принт "% д флаша пива на зиду." Штампа "% д 1088 00:43:51,770 --> 00:43:54,990 флаша пива. "" Узми један доле, пролазимо га око. "Штампа 1089 00:43:54,990 --> 00:43:58,880 "% Д флаша пива на зиду." Дакле, то је још увек% д, али 1090 00:43:58,880 --> 00:44:02,770 приметити да аргумент принтф се мења. 1091 00:44:02,770 --> 00:44:05,840 После зареза, ја имам, јер желим да кажем 99. 1092 00:44:05,840 --> 00:44:08,590 После овог зареза, ја имам, јер желим да кажем 99. 1093 00:44:08,590 --> 00:44:14,030 После овог зареза, ја имам - 1, јер желим да кажем 98 у 1094 00:44:14,030 --> 00:44:16,260 ова прва итерација, и тако даље. 1095 00:44:16,260 --> 00:44:18,520 А сада овде доле, ја имам неку глупу малу примедбу. 1096 00:44:18,520 --> 00:44:22,270 А онда линија 42, враћам 0 по обичају, означавајући да 1097 00:44:22,270 --> 00:44:23,650 све је у реду. 1098 00:44:23,650 --> 00:44:24,490 >> Па шта ако сам гоофед? 1099 00:44:24,490 --> 00:44:26,350 Шта може честа грешка бити овде? 1100 00:44:26,350 --> 00:44:29,200 Па, шта ако сам случајно рекао добро, ја не желим да рачунају 1101 00:44:29,200 --> 00:44:31,640 до 0, желим 0 флаша пива на зиду? 1102 00:44:31,640 --> 00:44:34,620 Зато кажем, ја је већи или једнак 0. 1103 00:44:34,620 --> 00:44:38,920 Шта ће бити симптом да сам сада видим да ли компајлирате 1104 00:44:38,920 --> 00:44:41,173 беер1 и покрените га? 1105 00:44:41,173 --> 00:44:42,120 ПУБЛИКА: Негативно. 1106 00:44:42,120 --> 00:44:43,590 Давид Ј. Малан: Да, то ће ићи негативан. 1107 00:44:43,590 --> 00:44:45,950 Ово је офф-по-једна грешка, невероватно 1108 00:44:45,950 --> 00:44:47,270 честа грешка направити. 1109 00:44:47,270 --> 00:44:48,960 Идемо у ствари вратимо на терминалу и да га 1110 00:44:48,960 --> 00:44:50,620 овде, па можемо видети више у исто време. 1111 00:44:50,620 --> 00:44:53,280 Ентер, 99 флаша пива. 1112 00:44:53,280 --> 00:44:56,580 Близу, али смо икада отишао толико мало предалеко. 1113 00:44:56,580 --> 00:45:00,500 Певали смо песму предалеко доле, тако да смо сада хит 1114 00:45:00,500 --> 00:45:01,510 негативан број. 1115 00:45:01,510 --> 00:45:03,680 Тако да не функционише. 1116 00:45:03,680 --> 00:45:06,450 >> У реду, тако да лако можемо поправити да враћајући се 1117 00:45:06,450 --> 00:45:07,650 тако је некад било. 1118 00:45:07,650 --> 00:45:10,360 Али шта су неки могућности сада 1119 00:45:10,360 --> 00:45:11,190 побољшање? 1120 00:45:11,190 --> 00:45:17,200 Па, дозволите ми да отвори беер2.ц и дођите овамо и да 1121 00:45:17,200 --> 00:45:19,310 погледај ову верзију. 1122 00:45:19,310 --> 00:45:21,370 Шта је прва ствар која искаче на вас као другачији 1123 00:45:21,370 --> 00:45:23,715 у овој верзији овде? 1124 00:45:23,715 --> 00:45:24,190 ПУБЛИКА: [ИНАУДИБЛЕ]. 1125 00:45:24,190 --> 00:45:26,510 Давид Ј. Малан: Да, па нема више ја, јер је пало на 1126 00:45:26,510 --> 00:45:29,350 ми знаш шта, питам корисника за н, а онда сам 1127 00:45:29,350 --> 00:45:33,580 подешавање и једнак н, а онда сам ја мења, али ја никада нисам 1128 00:45:33,580 --> 00:45:34,590 додиривање н поново. 1129 00:45:34,590 --> 00:45:37,390 Дакле, шта дођавола била поента вас доделе још 32 1130 00:45:37,390 --> 00:45:45,210 бита сам звао само тако да ја могу да имам другачији променљиву? 1131 00:45:45,210 --> 00:45:47,960 Дакле, у овом случају, ја сам некако схватио да непотребно 1132 00:45:47,960 --> 00:45:49,190 дизајн карактеристика. 1133 00:45:49,190 --> 00:45:52,730 А сада ћу рећи, док је н веће од 0, иди 1134 00:45:52,730 --> 00:45:56,180 напред и штампање исту песму, положен н до иф као 1135 00:45:56,180 --> 00:46:00,210 Други аргумент, и н - 1, као други аргумент овде доле. 1136 00:46:00,210 --> 00:46:02,930 А онда на свакој итерацији ове петље, само напред и само 1137 00:46:02,930 --> 00:46:05,080 Смањење н сама. 1138 00:46:05,080 --> 00:46:06,960 Сада, функционално, овај програм 1139 00:46:06,960 --> 00:46:08,010 ће бити идентични. 1140 00:46:08,010 --> 00:46:10,730 Ако укуцамо у 99, н почиње у 99. 1141 00:46:10,730 --> 00:46:12,890 Ја опадање, умањење, умањење, умањење. 1142 00:46:12,890 --> 00:46:15,875 Идем да скроз доле на "Једна боца пива на 1143 00:46:15,875 --> 00:46:16,740 зид, један боца пива. 1144 00:46:16,740 --> 00:46:18,020 Узми један доле, проследи је около. 1145 00:46:18,020 --> 00:46:21,480 0 флаша пива на зиду "на крају, јер сам урадио. 1146 00:46:21,480 --> 00:46:23,200 добили услов тачан. 1147 00:46:23,200 --> 00:46:24,280 То је већи од 0. 1148 00:46:24,280 --> 00:46:26,220 Нисам правио ову грешку. 1149 00:46:26,220 --> 00:46:28,470 >> Дакле, што је боље, верзија један или два верзију? 1150 00:46:31,380 --> 00:46:33,480 Чуо сам гомилу мрмљање за двоје. 1151 00:46:33,480 --> 00:46:34,730 Зашто два? 1152 00:46:37,210 --> 00:46:38,225 Шта је то? 1153 00:46:38,225 --> 00:46:39,215 ПУБЛИКА: [ИНАУДИБЛЕ]. 1154 00:46:39,215 --> 00:46:40,070 Давид Ј. Малан: Ох, у реду. 1155 00:46:40,070 --> 00:46:42,870 Дакле, то неће ићи испод 0, али запамтите, у верзији један, 1156 00:46:42,870 --> 00:46:45,870 оригинална верзија тачна није ишао испод 0 било. 1157 00:46:45,870 --> 00:46:48,340 Дакле, запамтите да је ово исправна верзија. 1158 00:46:48,340 --> 00:46:51,630 Па нека је барем упоредите два исправне верзије. 1159 00:46:51,630 --> 00:46:53,300 Шта је аргумент у корист верзије 1160 00:46:53,300 --> 00:46:55,146 два бића, ммм, боље? 1161 00:46:55,146 --> 00:46:55,642 Да? 1162 00:46:55,642 --> 00:46:57,630 ПУБЛИКА: Она користи мање простора. 1163 00:46:57,630 --> 00:46:59,530 Давид Ј. Малан: Ок, тако да користи мање простора, зар не? 1164 00:46:59,530 --> 00:47:02,900 Док верзија које користе 32 бита за Н, а затим још 1165 00:47:02,900 --> 00:47:07,680 32 бита јер ја. 1166 00:47:07,680 --> 00:47:10,060 Верзија две користи само 32 бита за н, тако да 1167 00:47:10,060 --> 00:47:11,700 Чини се да је плус. 1168 00:47:11,700 --> 00:47:12,950 Друге мисли? 1169 00:47:18,070 --> 00:47:21,520 Да ли неко жели да се расправљам у корист једног? 1170 00:47:21,520 --> 00:47:22,070 Да? 1171 00:47:22,070 --> 00:47:25,240 ПУБЛИКА: морате да користите додатну линију кода за н -. 1172 00:47:25,240 --> 00:47:26,090 >> Давид Ј. Малан: Ок, наравно. 1173 00:47:26,090 --> 00:47:26,960 Тако да је то фер. 1174 00:47:26,960 --> 00:47:29,040 Дакле, ово само, барем мени - 1175 00:47:29,040 --> 00:47:31,940 Мислим, ово стварно изгледа мало компликованије, чињеница да 1176 00:47:31,940 --> 00:47:35,120 Ја не могу да некако ухвати све моје логике у једном 1177 00:47:35,120 --> 00:47:38,030 лепа линија, за петљу, као за петљу могу. 1178 00:47:38,030 --> 00:47:40,240 Ево, ја сам некако да напада на овај н - 1179 00:47:40,240 --> 00:47:41,120 на крају петље, јер 1180 00:47:41,120 --> 00:47:42,550 је логички неопходно. 1181 00:47:42,550 --> 00:47:45,190 Али некако ми трља на погрешан начин, само зато што 1182 00:47:45,190 --> 00:47:48,260 Чини одвојено од логике овде, иако, 1183 00:47:48,260 --> 00:47:49,430 опет, то је неопходно. 1184 00:47:49,430 --> 00:47:50,990 Друге мисли? 1185 00:47:50,990 --> 00:47:51,490 Да? 1186 00:47:51,490 --> 00:47:52,740 ПУБЛИКА: [ИНАУДИБЛЕ]. 1187 00:47:57,990 --> 00:47:58,350 >> Давид Ј. Малан: Да. 1188 00:47:58,350 --> 00:48:00,730 Па шта ако уместо тога, на крају песме, желео је да 1189 00:48:00,730 --> 00:48:02,950 штампати поново име песме? 1190 00:48:02,950 --> 00:48:05,660 Као "Хвала за играње 99 флаша пива", или тако нешто 1191 00:48:05,660 --> 00:48:06,690 блесаво тако? 1192 00:48:06,690 --> 00:48:09,750 Али поента је, хтели сте приступ оригиналном вредности. 1193 00:48:09,750 --> 00:48:13,180 Чињеница да сте мутирали или мењати н на сваком 1194 00:48:13,180 --> 00:48:16,330 итерација и стога су уништили своју првобитну вредност 1195 00:48:16,330 --> 00:48:18,650 значи да не само да то на крају. 1196 00:48:18,650 --> 00:48:20,660 Сада, вероватно, ми очигледно не желе да раде 1197 00:48:20,660 --> 00:48:21,450 да је у овом програму. 1198 00:48:21,450 --> 00:48:22,350 Па кога је брига? 1199 00:48:22,350 --> 00:48:23,630 Али то је веома важна ствар. 1200 00:48:23,630 --> 00:48:25,520 И да будем искрен, заиста нема никог 1201 00:48:25,520 --> 00:48:26,630 Прави одговор овде. 1202 00:48:26,630 --> 00:48:28,740 Обоје су подједнако исправна. 1203 00:48:28,740 --> 00:48:30,210 Може сам уверен ни начин. 1204 00:48:30,210 --> 00:48:33,310 Ја ћу рећи да је, у принципу, то је добар принцип ако 1205 00:48:33,310 --> 00:48:36,030 питао корисника за неке вредности и складишти у променљива 1206 00:48:36,030 --> 00:48:38,730 као н, само некако у принципу, то је вероватно добра 1207 00:48:38,730 --> 00:48:40,160 да да око. 1208 00:48:40,160 --> 00:48:43,400 И подаци које желите да мутира опет и опет, 1209 00:48:43,400 --> 00:48:46,030 дајте себи копију тог променљиве, само тако да 1210 00:48:46,030 --> 00:48:47,830 имају приступ оригинала. 1211 00:48:47,830 --> 00:48:51,040 Ви трошите још 32 бита, али реалност је ово 1212 00:48:51,040 --> 00:48:53,490 рачунар, као, два гигабајта РАМ меморије ових дана, 1213 00:48:53,490 --> 00:48:55,310 а ми куибблинг преко 32 бита? 1214 00:48:55,310 --> 00:48:56,320 Заиста није тако страшно. 1215 00:48:56,320 --> 00:48:58,550 А чак и на овом уређају овде, са пола свирку или 1216 00:48:58,550 --> 00:49:01,700 гигабајт РАМ меморије, 32-битни у односу 64 бита, 1217 00:49:01,700 --> 00:49:02,920 није тако страшно. 1218 00:49:02,920 --> 00:49:05,890 Свакако данас, то ће бити далеко преплављени величини 1219 00:49:05,890 --> 00:49:08,400 самог програма, који ће бити неколико стотина 1220 00:49:08,400 --> 00:49:10,890 килобајта, ако не и неколико мегабајта, ових дана. 1221 00:49:10,890 --> 00:49:13,550 >> Дакле, разумне бриге, нико прави одговор. 1222 00:49:13,550 --> 00:49:15,490 Али барем они су мисли које треба да почне да се 1223 00:49:15,490 --> 00:49:16,790 пролазе кроз ваш ум? 1224 00:49:16,790 --> 00:49:19,600 Јер у псет 0, иако смо само стварно оцекује 1225 00:49:19,600 --> 00:49:22,340 исправност, или барем дисцлаиминг разне бубе да 1226 00:49:22,340 --> 00:49:25,440 можда сте наишли, као што смо напред, дизајн је 1227 00:49:25,440 --> 00:49:27,910 Биће још један кључни аспект, како писања кода 1228 00:49:27,910 --> 00:49:29,770 и наш евалуацију код. 1229 00:49:29,770 --> 00:49:32,310 И тако бар мисли да дају овакве ствари. 1230 00:49:32,310 --> 00:49:35,590 И баш зато што нешто ради, не значи да је то добро, 1231 00:49:35,590 --> 00:49:37,130 не значи да је добро дизајниран. 1232 00:49:37,130 --> 00:49:38,820 И то је једна од ствари наставне момци и 1233 00:49:38,820 --> 00:49:41,990 Проблем сетови ће нам помоћи да задиркује део током времена. 1234 00:49:41,990 --> 00:49:45,020 >> Па, о томе шта, рецимо, овде ову верзију? 1235 00:49:45,020 --> 00:49:49,090 Пусти ме да урадим нешто мало секси овде у овом тренутку. 1236 00:49:49,090 --> 00:49:50,740 Дозволите ми прво да се отарасим овога. 1237 00:49:50,740 --> 00:49:54,120 А сада хајде да решите овај проблем граматичку. 1238 00:49:54,120 --> 00:49:58,780 Дакле, у овој верзији, желим да поправи граматику, тако да, 1239 00:49:58,780 --> 00:50:02,460 него само реци загради а, као "боци" 1240 00:50:02,460 --> 00:50:03,360 или "боце" - 1241 00:50:03,360 --> 00:50:04,900 Ја не желим да смање тај угао - 1242 00:50:04,900 --> 00:50:08,350 Такође желим да се динамички одштампате реч "боца" 1243 00:50:08,350 --> 00:50:12,820 или "боца", чиме је коришћење чуваре Ове% с данас. 1244 00:50:12,820 --> 00:50:16,550 Зато морам да условно проверите шта је вредност ја. 1245 00:50:16,550 --> 00:50:19,590 И ако је 1, желим да кажем "боцу", а ако је нешто 1246 00:50:19,590 --> 00:50:23,115 друго, желим да кажем "боце". Дакле, хајде да покушамо да се то уради. 1247 00:50:23,115 --> 00:50:31,340 Дакле, ако сам == 1, онда пусти ме напред и прогласи - 1248 00:50:31,340 --> 00:50:34,080 Треба низ, па пусти мене да ниски с1, јер је то 1249 00:50:34,080 --> 00:50:36,070 Први гудачки ми је стало сада. 1250 00:50:36,070 --> 00:50:40,980 Ја ћу да кажем "боцу". А онда, хајде да видимо, гудачки 1251 00:50:40,980 --> 00:50:43,110 с2 - и ја ћу објаснити где идем у тренутку - 1252 00:50:43,110 --> 00:50:47,650 "Боце". Тако се сећате да је у овој песми, морамо бити у стању 1253 00:50:47,650 --> 00:50:50,580 потенцијално штампање ствари, две различите речи. 1254 00:50:50,580 --> 00:50:53,590 Дакле, ако се осврнемо уназад овде, приметили да када дођемо до 1255 00:50:53,590 --> 00:50:56,440 овај пример овде ", две флаше пива на зиду, 1256 00:50:56,440 --> 00:50:59,490 Две боце пива, узети један доле, то прође око ", ја желим 1257 00:50:59,490 --> 00:51:02,380 ово четврта линија за сада да кажем "једну флашу пива на 1258 00:51:02,380 --> 00:51:04,900 зид "Тако ми треба да одлучи, да ли. желим да кажем" боца "или 1259 00:51:04,900 --> 00:51:07,780 "Боца"? Зато ћу да произвољно рећи, у реду, 1260 00:51:07,780 --> 00:51:10,530 Идем сада да прогласи променљиву зове С1, стринг 1261 00:51:10,530 --> 00:51:13,830 један, који ће добити прикључен овде и овде, 1262 00:51:13,830 --> 00:51:16,070 јер те речи су увек идентични, само због 1263 00:51:16,070 --> 00:51:17,290 природа песме. 1264 00:51:17,290 --> 00:51:20,100 И ја ћу да позовем с2 год реч желим да 1265 00:51:20,100 --> 00:51:21,560 на крају се појављују овде. 1266 00:51:21,560 --> 00:51:25,530 Сада, буквално, 99 пута од 100, то ће бити 1267 00:51:25,530 --> 00:51:28,820 иста у оба ова случаја, јер 3 је у множини, 2 је 1268 00:51:28,820 --> 00:51:30,200 множини, 4 је множина. 1269 00:51:30,200 --> 00:51:34,640 Али у овом случају ћошку, где стигнемо до 2 и онда 1 или 1270 00:51:34,640 --> 00:51:37,250 чак и онда 1 0, морам ову логику. 1271 00:51:37,250 --> 00:51:41,020 Зато морам да проведем неко време у мом коду добијања тог права. 1272 00:51:41,020 --> 00:51:47,530 Дакле, ако то урадим, ако сам == 1, а затим подесите с1 једнаке "боци" 1273 00:51:47,530 --> 00:51:52,010 и с2 једнако "боца", јер то ће бити за 1 1274 00:51:52,010 --> 00:51:56,340 бочица, а то ће бити за 0 боце. 1275 00:51:56,340 --> 00:51:58,250 А ово овде, шта то представља? 1276 00:51:58,250 --> 00:51:59,780 Само да буде јасно. 1277 00:51:59,780 --> 00:52:00,620 Ово је само коментар. 1278 00:52:00,620 --> 00:52:03,730 Дакле, чињеница да можете имати једно линије коментаре вас значи 1279 00:52:03,730 --> 00:52:06,110 може да коментарише свој код као што је ово, али други заједнички 1280 00:52:06,110 --> 00:52:09,050 парадигма је, такође, да ако имате супер кратку фразу која 1281 00:52:09,050 --> 00:52:11,410 желите да ставите себе и то је само још читљив стави 1282 00:52:11,410 --> 00:52:13,270 је на самом крају линије кода, можете 1283 00:52:13,270 --> 00:52:15,230 Апсолутно овако нешто. 1284 00:52:15,230 --> 00:52:20,150 >> Па шта сад ако урадим ово? Иф И није једнак 1. 1285 00:52:20,150 --> 00:52:21,620 Дакле банг једнако - 1286 00:52:21,620 --> 00:52:23,150 Знак узвика је познат као "праска". 1287 00:52:23,150 --> 00:52:25,080 Дакле, прасак = 1. 1288 00:52:25,080 --> 00:52:28,530 Дакле, ако сам није једнак 1, шта сам, уместо да радимо? 1289 00:52:28,530 --> 00:52:31,700 Па, прва реч желим да будем оно? 1290 00:52:34,620 --> 00:52:40,030 Тако ниска 1 треба да буде "боце" за множину боце, 1291 00:52:40,030 --> 00:52:42,440 и онда ће то бити множине "боце", као и, за сада. 1292 00:52:42,440 --> 00:52:43,800 И ми ћемо видети да ли ово стварно постаје нам то 1293 00:52:43,800 --> 00:52:44,870 где желимо да идемо. 1294 00:52:44,870 --> 00:52:47,680 Па сад, ако сам доле помицати овде приметити да сам прикључивање 1295 00:52:47,680 --> 00:52:50,170 Не само ја, већ С1. 1296 00:52:50,170 --> 00:52:51,860 Ја прикључивање и и С1. 1297 00:52:51,860 --> 00:52:54,440 А онда овде доле, ја сам минус 1, што је исто као и 1298 00:52:54,440 --> 00:52:55,920 раније, али с2. 1299 00:52:55,920 --> 00:52:58,730 Другим речима, желим енглеску реч за промену на 1300 00:52:58,730 --> 00:52:59,930 на овом логиком. 1301 00:52:59,930 --> 00:53:03,310 Сада већ има неких проблема у овом коду. 1302 00:53:03,310 --> 00:53:08,460 Шта је већ избио на вратима овде? 1303 00:53:08,460 --> 00:53:10,796 Да? 1304 00:53:10,796 --> 00:53:13,210 ПУБЛИКА: [ИНАУДИБЛЕ]. 1305 00:53:13,210 --> 00:53:13,800 >> Давид Ј. Малан: Тачно. 1306 00:53:13,800 --> 00:53:16,030 Па већ сам прекршио лекцију обима. 1307 00:53:16,030 --> 00:53:19,610 Тако сам прогласио С1 и С2, али сам то урадио унутар 1308 00:53:19,610 --> 00:53:22,980 витичасте заграде, што значи да, овај код ће радити до 1309 00:53:22,980 --> 00:53:27,430 до линије 42, али чим сам ударио линију 43, погодите шта не 1310 00:53:27,430 --> 00:53:28,900 више не постоји? 1311 00:53:28,900 --> 00:53:32,600 Па, погодите шта је више није у домету - ни С1 или С2. 1312 00:53:32,600 --> 00:53:33,780 Дакле, морамо да поправимо ово. 1313 00:53:33,780 --> 00:53:36,180 Дакле, дозволите ми да избришете декларације. 1314 00:53:36,180 --> 00:53:39,320 А ја ћу оставити имена променљивих и избришете ово овде 1315 00:53:39,320 --> 00:53:40,120 и избришете ово овде. 1316 00:53:40,120 --> 00:53:43,557 А у оно линије треба заиста изјављујем те ствари? 1317 00:53:43,557 --> 00:53:44,960 ПУБЛИКА: [ИНАУДИБЛЕ]. 1318 00:53:44,960 --> 00:53:45,410 Давид Ј. Малан: Да, тако је вероватно 1319 00:53:45,410 --> 00:53:46,850 управо овде, 33-исх. 1320 00:53:46,850 --> 00:53:50,670 Дакле, гудачке с1, а затим стринг с2. 1321 00:53:50,670 --> 00:53:51,950 И испоставило се, могу ја то. 1322 00:53:51,950 --> 00:53:54,260 Ако сте проглашења две променљиве истог типа, 1323 00:53:54,260 --> 00:53:57,420 ви у ствари можете само користити зарез и то у Ц. Сви 1324 00:53:57,420 --> 00:53:58,970 У реду, тако да сада имам две променљиве - 1325 00:53:58,970 --> 00:53:59,860 С1 и С2. 1326 00:53:59,860 --> 00:54:02,000 Ја сам им додели вредности у овим 1327 00:54:02,000 --> 00:54:04,210 услове овде, или овде. 1328 00:54:04,210 --> 00:54:06,690 А онда сам их користите доле. 1329 00:54:06,690 --> 00:54:10,960 Колико добро је то сада иде на посао? 1330 00:54:10,960 --> 00:54:12,740 >> Па, то је још увек мало луд, али нека је бар видимо 1331 00:54:12,740 --> 00:54:13,730 колико смо стечен. 1332 00:54:13,730 --> 00:54:16,500 Зато ме пусти да иде напред и да беер3. 1333 00:54:16,500 --> 00:54:17,695 Да ли је ово беер3? 1334 00:54:17,695 --> 00:54:19,410 Да, ово је беер3. 1335 00:54:19,410 --> 00:54:21,510 И сада пусти ме напред и покрените беер3. 1336 00:54:21,510 --> 00:54:23,820 399 99. 1337 00:54:23,820 --> 00:54:25,840 Ми смо вероватно да прескочите већину од њих. 1338 00:54:25,840 --> 00:54:29,100 И овде, погледај то. 1339 00:54:29,100 --> 00:54:31,110 "Једна боца пива на зиду, један боца пива, узети 1340 00:54:31,110 --> 00:54:34,306 један доле, то прође око, 0 флаша пива на зиду. " 1341 00:54:34,306 --> 00:54:37,570 Али ја вам скрећем пажњу на само половина решења. 1342 00:54:37,570 --> 00:54:39,620 Врста зезнуо овде. 1343 00:54:39,620 --> 00:54:43,030 Дакле, чини се да су случајеви јављају кутак кад сам једнако шта 1344 00:54:43,030 --> 00:54:44,030 две вредности? 1345 00:54:44,030 --> 00:54:45,020 ПУБЛИКА: 2, 1. 1346 00:54:45,020 --> 00:54:46,190 Давид Ј. Малан: 2 и 1. 1347 00:54:46,190 --> 00:54:48,180 То није 1, а не 1. 1348 00:54:48,180 --> 00:54:51,890 То је заиста само ова последња два строфе ове песме. 1349 00:54:51,890 --> 00:54:53,890 Па шта ја желим, уместо да урадим? 1350 00:54:53,890 --> 00:54:58,890 Зато мислим да сам ухватио случај где је ако сам == до 1, 1351 00:54:58,890 --> 00:55:02,240 тада прва реч је "боца", али друга реч 1352 00:55:02,240 --> 00:55:07,230 је "боце". Али овде, желим да променим то буде == 2. 1353 00:55:07,230 --> 00:55:08,570 А ако је то случај, шта желим 1354 00:55:08,570 --> 00:55:09,620 Прва реч да буде? 1355 00:55:09,620 --> 00:55:10,430 ПУБЛИКА: "Боце". 1356 00:55:10,430 --> 00:55:12,890 Давид Ј. Малан: "Боце", па за две боце. 1357 00:55:12,890 --> 00:55:14,690 И онда та реч овде треба да буде - 1358 00:55:14,690 --> 00:55:15,340 ПУБЛИКА: "Боца". 1359 00:55:15,340 --> 00:55:17,316 Давид Ј. Малан: "Боца", једнини. 1360 00:55:20,430 --> 00:55:25,160 >> У реду, хајде да умањите, вратите овамо, поново покрените маке, 1361 00:55:25,160 --> 00:55:28,590 репризу беер3, тип 99 поново. 1362 00:55:28,590 --> 00:55:30,710 Ок, "Сегментација грешка (језгро бацили)." 1363 00:55:30,710 --> 00:55:32,780 Шта сам урадио погрешно? 1364 00:55:36,050 --> 00:55:38,722 ПУБЛИКА: Ви немате вредност [ИНАУДИБЛЕ]. 1365 00:55:38,722 --> 00:55:40,480 Давид Ј. Малан: Ах, одлично тачка. 1366 00:55:40,480 --> 00:55:43,310 Добро, па шта није у реду овде? 1367 00:55:43,310 --> 00:55:45,450 Дакле сегментације кривицом, а ми заправо идемо да видимо 1368 00:55:45,450 --> 00:55:49,020 ово доста пута у будућности, намерно. 1369 00:55:49,020 --> 00:55:51,030 Али за сада, шта то заправо значи? 1370 00:55:51,030 --> 00:55:53,620 Сегментација грешка готово увек значи да морате 1371 00:55:53,620 --> 00:55:56,760 некако покушали да приступите меморије, РАМ на вашем рачунару, 1372 00:55:56,760 --> 00:56:00,600 да не поседујете, да нисте стварно питао 1373 00:56:00,600 --> 00:56:02,050 оперативни систем за. 1374 00:56:02,050 --> 00:56:04,440 Дакле, у овом случају, приметио шта сам урадио, што је 1375 00:56:04,440 --> 00:56:05,870 мана у мојој логици. 1376 00:56:05,870 --> 00:56:09,500 Доделили сам С1 и С2 вредност ако сам једнак 1. 1377 00:56:09,500 --> 00:56:11,590 Такође сам урадио да сам једнако 2. 1378 00:56:11,590 --> 00:56:13,710 Али ја то нисам урадио у бесконачном броју других 1379 00:56:13,710 --> 00:56:14,690 могућности - 1380 00:56:14,690 --> 00:56:17,940 нарочито, 3 или 4 или тачка, тачка, тачка, 99. 1381 00:56:17,940 --> 00:56:20,100 Дакле, једна исправка за ово може да буде само хајде 1382 00:56:20,100 --> 00:56:22,190 имају друго стање. 1383 00:56:22,190 --> 00:56:26,780 И дозволите ми да одем овде и рећи с1 једнако - 1384 00:56:26,780 --> 00:56:28,180 Шта би требало да буде овде? 1385 00:56:28,180 --> 00:56:28,750 ПУБЛИКА: [ИНАУДИБЛЕ]. 1386 00:56:28,750 --> 00:56:30,460 >> Давид Ј. Малан: "Боце", јер је у заједничком предмету, 1387 00:56:30,460 --> 00:56:32,020 то је само иста ствар. 1388 00:56:32,020 --> 00:56:35,580 Дакле, једнако цитат, завршити цитат, "боце". Дакле, за множини 1389 00:56:35,580 --> 00:56:41,010 боце, а онда се овде, за множину боце. 1390 00:56:41,010 --> 00:56:44,580 Ок, сада да се вратимо на мој прозор терминала, 1391 00:56:44,580 --> 00:56:47,200 рекомпајлирање, поново је покрените. 1392 00:56:47,200 --> 00:56:48,440 99. 1393 00:56:48,440 --> 00:56:49,150 Уф. 1394 00:56:49,150 --> 00:56:50,610 И хајде да урадимо брзо разум чек. 1395 00:56:50,610 --> 00:56:52,400 Технички, ми бисмо желели да прочитате све ово да се уверите 1396 00:56:52,400 --> 00:56:53,370 они су тачно, али хајде да погледамо 1397 00:56:53,370 --> 00:56:54,640 Цене познате кривци. 1398 00:56:54,640 --> 00:56:57,370 3 боце, 2 боце, 2 боце, 1 1399 00:56:57,370 --> 00:57:00,380 боца, 1 боца, 0 боца. 1400 00:57:00,380 --> 00:57:03,080 Изгледа да смо барем поправио за сада. 1401 00:57:03,080 --> 00:57:06,010 Али цака је у томе што бог страшно неред је ово 1402 00:57:06,010 --> 00:57:07,470 само да реши глупи 1403 00:57:07,470 --> 00:57:09,540 један лик граматичка детаљ. 1404 00:57:09,540 --> 00:57:11,150 Значи, постоји нека врста разлога да смањи тај угао 1405 00:57:11,150 --> 00:57:14,090 раније, јер је једноставно потпуно досадне морати да 1406 00:57:14,090 --> 00:57:15,020 напише оволико кода. 1407 00:57:15,020 --> 00:57:17,530 Али испоставило се да постоји нешто више елегантни начини 1408 00:57:17,530 --> 00:57:20,110 изражавајући потпуно исту ствар. 1409 00:57:20,110 --> 00:57:22,040 И ми можемо урадити на следећи начин. 1410 00:57:22,040 --> 00:57:23,890 >> Дозволите ми да ово оставити на екрану за тренутак и 1411 00:57:23,890 --> 00:57:27,320 уведе нешто познат као тернарном оператера. 1412 00:57:27,320 --> 00:57:29,600 То је нека врста једне броду који је управо требало да се наше 1413 00:57:29,600 --> 00:57:31,880 живи мало више секси, као што је обећано. 1414 00:57:31,880 --> 00:57:33,130 И ја ћу да урадим на следећи начин. 1415 00:57:33,130 --> 00:57:35,810 Дај ми жицу под називом С1, и пусти ме 1416 00:57:35,810 --> 00:57:37,200 доделити на следећи начин. 1417 00:57:37,200 --> 00:57:39,900 (И == 1)? 1418 00:57:39,900 --> 00:57:47,820 "Боца", иначе "боце". Стринг с2 добија (и == 2)? 1419 00:57:47,820 --> 00:57:52,670 "Боца", иначе "боце". 1420 00:57:52,670 --> 00:57:57,050 Па шта је онда разлика овде? 1421 00:57:57,050 --> 00:57:59,370 Ове две линије кода, тврдим, могу 1422 00:57:59,370 --> 00:58:02,200 замените целу ову збрку. 1423 00:58:02,200 --> 00:58:04,280 Тако ја то зовем неред, само зато што је некако трља мене 1424 00:58:04,280 --> 00:58:05,940 погрешан начин на који је то толико линија кода. 1425 00:58:05,940 --> 00:58:06,650 Није у реду. 1426 00:58:06,650 --> 00:58:07,700 Није лош дизајн. 1427 00:58:07,700 --> 00:58:10,140 Као, то је савршено тачно и савршено добро. 1428 00:58:10,140 --> 00:58:12,970 Али кодирање добија заморно ако морате да се изразите, тако 1429 00:58:12,970 --> 00:58:15,530 проклетство конкретно опет и опет и опет са једноставним 1430 00:58:15,530 --> 00:58:16,620 Сценарио овако. 1431 00:58:16,620 --> 00:58:19,470 Дакле, Ц има неке пречице, овако. 1432 00:58:19,470 --> 00:58:24,270 Дакле, ово је у суштини каже да прогласи ниску под називом С1 и 1433 00:58:24,270 --> 00:58:32,610 доделите га ни ова вредност, или је ова вредност ако је ја == - 1434 00:58:32,610 --> 00:58:35,290 Жао ми је, морам да кажем ово јасније. 1435 00:58:35,290 --> 00:58:41,680 Прогласи променљивих с1, доделите јој ову вредност ако је то истина. 1436 00:58:41,680 --> 00:58:44,280 У супротном, то доделите ову вредност. 1437 00:58:44,280 --> 00:58:47,220 Другим речима, ово је нека од једне линије начин 1438 00:58:47,220 --> 00:58:51,490 рекавши да друго радим задатак на путу. 1439 00:58:51,490 --> 00:58:55,540 Дакле, ако и је 1, онда само напред и ово називају "боцу". И 1440 00:58:55,540 --> 00:58:59,830 онда је ово друго, то зову "боце". У међувремену, с2, 1441 00:58:59,830 --> 00:59:04,060 Друга реч која треба да дефинише, ако сам једнако 2, ми ћемо 1442 00:59:04,060 --> 00:59:08,350 подесите с2 на "боце". Иначе, подесите га на "боце". И шта 1443 00:59:08,350 --> 00:59:11,460 то значи да је сада ја могу да идем кроз ово и избрисати све 1444 00:59:11,460 --> 00:59:12,860 те линије кода. 1445 00:59:12,860 --> 00:59:17,220 А када кажем, помало смешно, да је ово сада 1446 00:59:17,220 --> 00:59:20,060 секси, то је секси у врсти стилској смислу. 1447 00:59:20,060 --> 00:59:22,660 Чињеница да функционално, овај код заправо ће 1448 00:59:22,660 --> 00:59:24,610 уради исту ствар. 1449 00:59:24,610 --> 00:59:26,890 И чак иако можда изгледа мало криптичан на први 1450 00:59:26,890 --> 00:59:29,250 поглед, јер ми не смо раније видели овај конструкт, ја бих 1451 00:59:29,250 --> 00:59:31,850 тврде да је на крају то ће бити много више 1452 00:59:31,850 --> 00:59:34,820 читљив и тако много лакше да се ми људи некако 1453 00:59:34,820 --> 00:59:36,830 Разумем, јер сада можете само да прочитате 1454 00:59:36,830 --> 00:59:38,830 Код све на једној линији. 1455 00:59:38,830 --> 00:59:41,550 То је још увек сличан духу да ако, где је то 1456 00:59:41,550 --> 00:59:44,920 стање и онда је то оно што је унутра, ако и ово 1457 00:59:44,920 --> 00:59:46,480 је оно што је унутар другог. 1458 00:59:46,480 --> 00:59:49,450 Али можемо да урадимо ово само много више елегантно. 1459 00:59:49,450 --> 00:59:52,650 >> А ако се вратимо на моју терминала, што брише све 1460 00:59:52,650 --> 00:59:55,530 тих линија и заменио их са само та два, 1461 00:59:55,530 --> 01:00:00,150 рекомпајлирање, поново покрените боца пива са 99, обавештење да мој 1462 01:00:00,150 --> 01:00:03,350 граматика је, у ствари, још увек тачно. 1463 01:00:03,350 --> 01:00:06,160 Дакле, опет, нешто за почетак. 1464 01:00:06,160 --> 01:00:08,840 2 флаше пива, 1 боца пива. 1465 01:00:08,840 --> 01:00:09,370 Изгледа у реду. 1466 01:00:09,370 --> 01:00:10,100 Да. 1467 01:00:10,100 --> 01:00:13,900 Дакле, тамо имамо много више сажето решење. 1468 01:00:13,900 --> 01:00:16,020 Дакле, ово је, такође, као што сте добили удобније са Ц, не 1469 01:00:16,020 --> 01:00:18,630 нужно са првом псет или чак друге, али 1470 01:00:18,630 --> 01:00:21,170 схвате да ови конструкти нам омогућити да радимо ствари икада 1471 01:00:21,170 --> 01:00:22,810 више елегантно. 1472 01:00:22,810 --> 01:00:25,200 Сада идемо урадимо једну другу ствар. 1473 01:00:25,200 --> 01:00:31,460 Дозволите ми да иде напред и отворити ретурн1.ц. 1474 01:00:31,460 --> 01:00:34,340 Сада ћемо почети да реши још један проблем на начин који 1475 01:00:34,340 --> 01:00:37,140 омогућава нам да напише више софистициран кода. 1476 01:00:37,140 --> 01:00:39,960 >> Дакле, овде је једноставан мали програм чија је сврха у животу 1477 01:00:39,960 --> 01:00:41,870 је за повећање вредности. 1478 01:00:41,870 --> 01:00:43,100 И заправо, хајде да се вратимо корак. 1479 01:00:43,100 --> 01:00:44,400 Пусти ме да урадим ово ручно. 1480 01:00:44,400 --> 01:00:52,200 Пусти ме да урадим укључују и маин (воид). 1481 01:00:52,200 --> 01:00:53,450 И дозволите ми да зовем ову инцремент.ц. 1482 01:00:57,150 --> 01:00:58,570 А шта желим да урадим? 1483 01:00:58,570 --> 01:01:02,240 Идем да иде напред и да кажем нешто као - 1484 01:01:02,240 --> 01:01:04,280 ћемо позвати бројеве исти - 1485 01:01:04,280 --> 01:01:04,980 инт к. 1486 01:01:04,980 --> 01:01:13,670 Дакле, инт добија 2; иф к је% д, нова линија, к. 1487 01:01:13,670 --> 01:01:16,780 Дакле, куцам брзо, али некако познато ствари сада. 1488 01:01:16,780 --> 01:01:18,830 Онда ћу да урадим к + +. 1489 01:01:18,830 --> 01:01:21,710 Онда ћу поново да одштампате исту реченицу. 1490 01:01:21,710 --> 01:01:24,550 А онда ћу да врати 0 само да напусти програм. 1491 01:01:24,550 --> 01:01:25,960 У реду, тако да је ово програм који 1492 01:01:25,960 --> 01:01:26,960 корацима број. 1493 01:01:26,960 --> 01:01:29,830 Оно прво ће да се покрене несто до 2, а онда је 1494 01:01:29,830 --> 01:01:33,470 ће то инкрементирање и одштампате га поново. 1495 01:01:33,470 --> 01:01:36,930 >> Дакле, хајде да покренете прираста, невероватно једноставан програм. 1496 01:01:36,930 --> 01:01:40,940 Али претпоставимо сада да ја желим да коцка вредност, тако да не 1497 01:01:40,940 --> 01:01:42,490 нешто помало произвољно. 1498 01:01:42,490 --> 01:01:45,140 И ја стварно желим да радим к добија коцку од тога. 1499 01:01:45,140 --> 01:01:47,570 Тако да сам могао да користи оно што се зове Пов функцију, али ја не знам 1500 01:01:47,570 --> 01:01:48,650 знам где је још увек. 1501 01:01:48,650 --> 01:01:50,580 Зато ћу да урадим то на старомодан начин. 1502 01:01:50,580 --> 01:01:54,550 к пута ово једнако к пута к пута к. 1503 01:01:54,550 --> 01:01:56,880 Тако сам цубинг вредност, множењем га себи поново 1504 01:01:56,880 --> 01:02:00,440 и опет и опет, тако да смо добили моћ 1505 01:02:00,440 --> 01:02:02,050 од 3 у овом случају. 1506 01:02:02,050 --> 01:02:06,000 Дакле, сада су бројеви требало штампа треба да буде, као што ћемо видети 1507 01:02:06,000 --> 01:02:08,450 овде - да пораст, тако да је заправо стварно не повећавати 1508 01:02:08,450 --> 01:02:10,260 више, али ми ћемо сами напусте име - 1509 01:02:10,260 --> 01:02:11,590 2, а затим 8. 1510 01:02:11,590 --> 01:02:17,670 Сада имамо почетке прилика за пречишћавање 1511 01:02:17,670 --> 01:02:21,570 Овде, где је овај цубинг ствар множењем броја 1512 01:02:21,570 --> 01:02:24,680 по себи према себи сама по себи осећа као ово може да буде само 1513 01:02:24,680 --> 01:02:27,920 корисно је имати у функцији, баш као неко одлучио 1514 01:02:27,920 --> 01:02:30,430 година - знате, некако корисно ако један од нас седне 1515 01:02:30,430 --> 01:02:33,120 и пише иф тако да остатак света га користе, 1516 01:02:33,120 --> 01:02:36,160 зашто не седнемо и написати функцију која се зове коцка 1517 01:02:36,160 --> 01:02:39,250 да ли ово цубинг за нас, тако да не морају ручно 1518 01:02:39,250 --> 01:02:41,500 имплементира појам цубинг вредности овде? 1519 01:02:41,500 --> 01:02:44,040 >> Тако једноставан пример, али идемо напред и користите је као 1520 01:02:44,040 --> 01:02:46,280 прилика да напише своју функцију. 1521 01:02:46,280 --> 01:02:49,110 До сада, само смо користили главни, и ми смо користили друге 1522 01:02:49,110 --> 01:02:51,780 функције људи, али нисмо написао наше. 1523 01:02:51,780 --> 01:02:52,650 Дакле, идемо. 1524 01:02:52,650 --> 01:02:56,330 Идем да иде напред и написати функцију која се зове коцке. 1525 01:02:56,330 --> 01:02:58,490 И ја ћу да га преузму улаз. 1526 01:02:58,490 --> 01:03:02,070 Дакле, њен улаз ће бити цео број. 1527 01:03:02,070 --> 01:03:03,570 И шта ће то урадити? 1528 01:03:03,570 --> 01:03:08,500 То ће да се изјасне инт излаз = пута улаз улаз 1529 01:03:08,500 --> 01:03:09,880 пута улаз. 1530 01:03:09,880 --> 01:03:12,190 А онда ће да се врати тај излаз. 1531 01:03:12,190 --> 01:03:14,500 И онда морам да будем специфичан сада. 1532 01:03:14,500 --> 01:03:16,820 Ова функција ће вратити Инт. 1533 01:03:16,820 --> 01:03:19,130 Дакле, овде је онда како ћете написати своје функције. 1534 01:03:19,130 --> 01:03:20,850 Морате прво да одлучи шта је име вашег 1535 01:03:20,850 --> 01:03:21,720 Функција ће бити. 1536 01:03:21,720 --> 01:03:23,964 И уопште, нешто објашњењима је добар, па ћу 1537 01:03:23,964 --> 01:03:25,060 зову коцке. 1538 01:03:25,060 --> 01:03:27,180 Онда морате да одредите шта ће да се врати, што је 1539 01:03:27,180 --> 01:03:28,240 његов излаз ће бити. 1540 01:03:28,240 --> 01:03:29,595 А ми још увек немамо много опција које. 1541 01:03:29,595 --> 01:03:32,260 Инт, цхар, флоат, инт, ниска. 1542 01:03:32,260 --> 01:03:34,260 За сада, ја ћу да се држи са инт, јер ја то желим 1543 01:03:34,260 --> 01:03:35,880 да врати цео. 1544 01:03:35,880 --> 01:03:38,770 Онда морате да одредите шта њени улаза, ако их има, јесу. 1545 01:03:38,770 --> 01:03:41,570 А ако се коцка аргумент, потребно нешто између 1546 01:03:41,570 --> 01:03:44,970 заграде, морате да тај аргумент име, тако да 1547 01:03:44,970 --> 01:03:47,860 можете га назвати нешто што сте примену или писмено 1548 01:03:47,860 --> 01:03:50,550 ова функција, и морате да га дају врсту, која је у то 1549 01:03:50,550 --> 01:03:51,810 Случај ће бити инт. 1550 01:03:51,810 --> 01:03:54,690 Дакле укратко, коцка је функција која траје цео 1551 01:03:54,690 --> 01:03:57,560 као улаз и враћа целих као излаз. 1552 01:03:57,560 --> 01:03:59,240 >> Дакле, шта то раде са том улазу? 1553 01:03:59,240 --> 01:04:03,710 Па, у реду 14, изјављујем променљиву зове излаз, а ја 1554 01:04:03,710 --> 01:04:07,410 доделите јој вредност, а улаз пута улаз уноса. 1555 01:04:07,410 --> 01:04:11,490 А онда сам се врати излаз. 1556 01:04:11,490 --> 01:04:14,890 Па како да користим ово онда? 1557 01:04:14,890 --> 01:04:19,210 Шта да променим ове истакнуте знакове на линији 1558 01:04:19,210 --> 01:04:21,006 7 се, мислиш? 1559 01:04:21,006 --> 01:04:21,800 ПУБЛИКА: [ИНАУДИБЛЕ]. 1560 01:04:21,800 --> 01:04:25,570 Давид Ј. Малан: Да, тако коцка к. 1561 01:04:25,570 --> 01:04:28,290 Дакле, к је променљива, што значи да има неку вредност. 1562 01:04:28,290 --> 01:04:30,190 Срећом, то је типа интегер. 1563 01:04:30,190 --> 01:04:34,280 И зато је к инт, то значи да могу да се пренесу у коцки. 1564 01:04:34,280 --> 01:04:39,500 И иако сам превасходног вредност к са вредношћу 1565 01:04:39,500 --> 01:04:42,780 од коцке к, као што је био случај до сада, сваки пут када 1566 01:04:42,780 --> 01:04:46,150 имају знак једнакости и линију кода, ствари на право 1567 01:04:46,150 --> 01:04:49,090 добија погубљени и потом бива додељен 1568 01:04:49,090 --> 01:04:50,150 вредност на левој страни. 1569 01:04:50,150 --> 01:04:52,950 Дакле, редослед операција је као да се надамо. 1570 01:04:52,950 --> 01:04:56,620 Тако то функционише? 1571 01:04:56,620 --> 01:04:58,410 Па, пусти ме да одем доле. 1572 01:04:58,410 --> 01:04:59,970 Дозволите ми да отворим свој прозор терминала. 1573 01:04:59,970 --> 01:05:03,610 Дозволите ми да правимо прираста, Ентер. 1574 01:05:03,610 --> 01:05:07,140 "Имплицитно декларација 'коцке' функција је инвалид у 1575 01:05:07,140 --> 01:05:13,700 Ц99 "Као страни. Ц99 односи на језику Ц као што је био 1576 01:05:13,700 --> 01:05:16,790 дефинисано у 1999, која је била ажурирање преко верзији из 1577 01:05:16,790 --> 01:05:19,360 1989, што је ажурирање преко оригинала. 1578 01:05:19,360 --> 01:05:21,740 Тако да је све то значи. 1579 01:05:21,740 --> 01:05:24,250 >> Дакле, шта то значи да "имплицитан декларација 1580 01:05:24,250 --> 01:05:26,790 Функција 'коцке' је неважећа "То је овде. 1581 01:05:26,790 --> 01:05:28,430 То је тамо у линији 12. 1582 01:05:28,430 --> 01:05:30,460 ПУБЛИКА: [ИНАУДИБЛЕ]. 1583 01:05:30,460 --> 01:05:30,730 Давид Ј. Малан: Шта је то? 1584 01:05:30,730 --> 01:05:32,470 ПУБЛИКА: Није раније. 1585 01:05:32,470 --> 01:05:33,540 Давид Ј. Малан: То није пре. 1586 01:05:33,540 --> 01:05:34,740 Дакле, ово је ствар. 1587 01:05:34,740 --> 01:05:38,190 Ц је мало глупо, или Ц компајлери су некако глупо. 1588 01:05:38,190 --> 01:05:41,060 Они су само стварно оно што кажете да ураде. 1589 01:05:41,060 --> 01:05:44,770 И они, посебно, само читам горњи код на дно, 1590 01:05:44,770 --> 01:05:45,620 лева на десно. 1591 01:05:45,620 --> 01:05:49,140 Дакле, ако компајлер, кланг, чита своју шифру, линија 1, то 1592 01:05:49,140 --> 01:05:50,120 схвати како да то урадите. 1593 01:05:50,120 --> 01:05:50,940 Ох, долази главни. 1594 01:05:50,940 --> 01:05:53,000 Ок, пусти ме напред и прогласи променљиве к. 1595 01:05:53,000 --> 01:05:54,160 Дозволите ми да одштампате нешто. 1596 01:05:54,160 --> 01:05:55,890 Линија 7, шта дођавола коцка? 1597 01:05:55,890 --> 01:05:58,230 То није проглашен стдио.х. 1598 01:05:58,230 --> 01:06:00,950 То не долази са Ц. Ја немам појма шта да радим. 1599 01:06:00,950 --> 01:06:03,960 И тако цланг само кауције и затвара са том поруком о грешци. 1600 01:06:03,960 --> 01:06:05,850 Дакле, можемо поправити у неколико начина. 1601 01:06:05,850 --> 01:06:10,530 Можемо научити кланг оно коцка је за само померањем где 1602 01:06:10,530 --> 01:06:11,820 декларација је. 1603 01:06:11,820 --> 01:06:14,640 Тако да сам сече и залепио га на врху главни. 1604 01:06:14,640 --> 01:06:17,770 Сада схватамо да само зато што више није главни прво, то је 1605 01:06:17,770 --> 01:06:19,150 још извршавају по дефаулту. 1606 01:06:19,150 --> 01:06:20,060 Главни је главни. 1607 01:06:20,060 --> 01:06:21,022 То је стандардна функција име. 1608 01:06:21,022 --> 01:06:22,930 Није битно где се она налази у фајлу. 1609 01:06:22,930 --> 01:06:26,910 Али барем сада кланг је видео коцку пре него што сам га користите. 1610 01:06:26,910 --> 01:06:28,500 Па хајде да видимо да ли је кланг срећнији сада. 1611 01:06:28,500 --> 01:06:31,410 Нека осцилацију, то није компајлирати овај пут. 1612 01:06:31,410 --> 01:06:33,060 >> Дозволите ми да покренете прираста. 1613 01:06:33,060 --> 01:06:34,810 И заиста, чини се да се ради. 1614 01:06:34,810 --> 01:06:36,810 Сада, можете доћи до сценарија крају где 1615 01:06:36,810 --> 01:06:38,650 није изводљиво да се стави сваку функцију 1616 01:06:38,650 --> 01:06:39,740 изнад сваке друге функције. 1617 01:06:39,740 --> 01:06:42,140 Ти ћеш се заглави у овој бескрајној петљи у стварности, 1618 01:06:42,140 --> 01:06:43,480 где је овај момак жели да буде овде, али ово 1619 01:06:43,480 --> 01:06:44,390 момак треба да буду тамо. 1620 01:06:44,390 --> 01:06:45,830 Тако да не ради увек. 1621 01:06:45,830 --> 01:06:49,020 Дакле срећом, Ц има више елегантно решење. 1622 01:06:49,020 --> 01:06:50,790 Ја ћу да ставим ово назад где је био, само зато што сам 1623 01:06:50,790 --> 01:06:53,390 преферирају, као ствар принципа, да је главни увек бити 1624 01:06:53,390 --> 01:06:55,550 на врху, јер то је само лепо да се види шта овај програм 1625 01:06:55,550 --> 01:06:56,920 ради по дефаулту. 1626 01:06:56,920 --> 01:06:58,950 А шта ћу да радим овде се изјасни како се зове 1627 01:06:58,950 --> 01:07:00,250 прототип. 1628 01:07:00,250 --> 01:07:05,730 Ја ћу поново изјављујем своју функцију коцке буквално 1629 01:07:05,730 --> 01:07:07,180 копирање и лепљење. 1630 01:07:07,180 --> 01:07:08,290 Заправо, то није буквално. 1631 01:07:08,290 --> 01:07:13,060 Дакле, буквално копирање и лепљење линију 15 1632 01:07:13,060 --> 01:07:15,160 изнад линије 6. 1633 01:07:15,160 --> 01:07:17,010 Није битно шта је линија ово заврши он. 1634 01:07:17,010 --> 01:07:18,380 То се дешава да се на линији 4. 1635 01:07:18,380 --> 01:07:19,950 Али не мора да буде пре главни. 1636 01:07:19,950 --> 01:07:21,150 Али приметити разлику. 1637 01:07:21,150 --> 01:07:24,100 Линија 4 завршава са зарезом, што значи хеј, 1638 01:07:24,100 --> 01:07:27,510 Цланг, узимам реч за то да постоји функција 1639 01:07:27,510 --> 01:07:31,350 позвао коцку да заузме инт и враћа инт. 1640 01:07:31,350 --> 01:07:33,020 Али ја нећу да ти кажем шта је још. 1641 01:07:33,020 --> 01:07:35,180 Само знам да обећам да ћу вам рећи на крају. 1642 01:07:35,180 --> 01:07:38,490 И заиста, сада је у реду да је ово доле. 1643 01:07:38,490 --> 01:07:41,275 >> Дакле, ово је генерално боље, јер онда на врху 1644 01:07:41,275 --> 01:07:44,240 датотека, можете само да брзо изговорити, брзо ватре, једна линија 1645 01:07:44,240 --> 01:07:46,470 сваки, шта имена ваших функција, шта њихова 1646 01:07:46,470 --> 01:07:49,120 улаза, шта су њихови резултати су. 1647 01:07:49,120 --> 01:07:52,210 И да буде јасно, улаз обично значи аргумент или 1648 01:07:52,210 --> 01:07:54,110 параметар, синоним. 1649 01:07:54,110 --> 01:07:56,890 Излаз значи повратну вредност, што га чини 1650 01:07:56,890 --> 01:07:58,700 руку назад до мене. 1651 01:07:58,700 --> 01:08:03,420 Дакле, у овом случају овде, коцка је проглашено на врху, али 1652 01:08:03,420 --> 01:08:06,940 дефинисан, иначе познат као имплементирати, на дну. 1653 01:08:06,940 --> 01:08:09,620 Дакле, сада идемо назад и поново покренути ово. 1654 01:08:09,620 --> 01:08:13,430 Дакле, сада пусти ме напред и поново покрените маке, поново покрените прираштај. 1655 01:08:13,430 --> 01:08:16,500 И сада се чини да се ради баш добро. 1656 01:08:16,500 --> 01:08:19,450 Дакле, сада можемо ићи напред и факторишу нешто налик 1657 01:08:19,450 --> 01:08:23,720 пиво пример у овом четвртом верзијом. 1658 01:08:23,720 --> 01:08:25,590 Дакле, дозволите ми помицати овде доле. 1659 01:08:25,590 --> 01:08:28,149 И приметите да сам некако узео ову лекцију срцу управо сада. 1660 01:08:28,149 --> 01:08:31,140 Чињеница да сам певају исту строфу поново 1661 01:08:31,140 --> 01:08:34,130 опет и опет, иста хор линија у песми, осетио 1662 01:08:34,130 --> 01:08:36,439 Волим зашто не бих фактор који се у функцији? 1663 01:08:36,439 --> 01:08:38,470 И заиста, ово би требало да буде један од мотива. 1664 01:08:38,470 --> 01:08:40,960 Поред чињенице да би неко други у свету желе 1665 01:08:40,960 --> 01:08:42,390 да користите функцију коцке - 1666 01:08:42,390 --> 01:08:44,560 то је добар разлог да се фактор нешто и напишите 1667 01:08:44,560 --> 01:08:45,720 сопствени цустом функција - 1668 01:08:45,720 --> 01:08:48,720 ако постоји комад кода у вашем програму који само чини 1669 01:08:48,720 --> 01:08:51,370 концептуалном смислу, да ли некако да га дам 1670 01:08:51,370 --> 01:08:53,740 Име - као у овом случају, хор - 1671 01:08:53,740 --> 01:08:57,380 онда можете да напишете да је сличан као посебан функцију. 1672 01:08:57,380 --> 01:08:59,560 Ви не морате да пишете све у главни ако је само 1673 01:08:59,560 --> 01:09:02,609 осећа чистији да издвоје и дајте му име. 1674 01:09:02,609 --> 01:09:05,529 >> Дакле, у овом случају овде, приметићете да имам коментар на врху 1675 01:09:05,529 --> 01:09:06,859 ова функција да само пева о 1676 01:09:06,859 --> 01:09:08,630 наведени број боца. 1677 01:09:08,630 --> 01:09:10,609 Приметимо да не морам да зовем ове 1678 01:09:10,609 --> 01:09:12,520 ствари улазни и излазни. 1679 01:09:12,520 --> 01:09:16,090 У ствари, овај пут сам позвао мог улаза б за боцу. 1680 01:09:16,090 --> 01:09:19,960 И приметио овде, празнина сугерише шта? 1681 01:09:19,960 --> 01:09:21,309 Тај хор - 1682 01:09:21,309 --> 01:09:22,660 ПУБЛИКА: Не да га врати. 1683 01:09:22,660 --> 01:09:23,870 Давид Ј. Малан: Не врати вредност. 1684 01:09:23,870 --> 01:09:26,800 И заиста, функције не морају да се врате вредности. 1685 01:09:26,800 --> 01:09:28,060 Они само могу да ураде нешто. 1686 01:09:28,060 --> 01:09:30,270 Они могу да имају оно што се зове нежељени ефекти, који у овом 1687 01:09:30,270 --> 01:09:33,109 случај је само гомила штампање на екрану. 1688 01:09:33,109 --> 01:09:36,580 Дакле, приметите да овај код овде, само сам буквално украо од 1689 01:09:36,580 --> 01:09:37,680 претходни пример. 1690 01:09:37,680 --> 01:09:39,930 Једина разлика је уместо ја користим као моје 1691 01:09:39,930 --> 01:09:42,890 променљива, ја сам сада користи као мој б променљива. 1692 01:09:42,890 --> 01:09:45,880 Дакле, имам б овде доле, ја имам б овде доле, ја имам б 1693 01:09:45,880 --> 01:09:47,109 минус 1 доле. 1694 01:09:47,109 --> 01:09:49,279 Али код потпуно исти. 1695 01:09:49,279 --> 01:09:52,529 Али само да ти покажем како можемо да користимо ово, пусти ме да одем 1696 01:09:52,529 --> 01:09:56,780 Само напред и заиста променити то буде за петљу. 1697 01:09:56,780 --> 01:10:03,850 фор (инт и = н и> н и -). 1698 01:10:03,850 --> 01:10:06,230 >> Тако сам украо то од нашег претходног примера. 1699 01:10:06,230 --> 01:10:08,970 Раније, то је у реду 37 да бих почео 1700 01:10:08,970 --> 01:10:10,640 певајући ове досадне песму. 1701 01:10:10,640 --> 01:10:15,810 Али уместо тога, ја ћу сада да позове хору ја. 1702 01:10:15,810 --> 01:10:16,870 Готово. 1703 01:10:16,870 --> 01:10:20,260 Дакле, сада у сваком итерацији ове петље, ја зовем овај други 1704 01:10:20,260 --> 01:10:22,220 функција, хор, што ми се десило да пишем. 1705 01:10:22,220 --> 01:10:24,110 Није написао неко други пре много година. 1706 01:10:24,110 --> 01:10:27,930 Али хор, у међувремену, користи иф за штампање 1707 01:10:27,930 --> 01:10:29,840 од ове четири линије. 1708 01:10:29,840 --> 01:10:32,720 Али чињеница да зовем рефрен поново и поново у 1709 01:10:32,720 --> 01:10:35,900 петља значи да ћу добити, на самом крају, 1710 01:10:35,900 --> 01:10:39,310 Тачан иста песма као што сам до сада. 1711 01:10:39,310 --> 01:10:42,130 Дакле укратко, сад, ако се осврнем на мој код, иако 1712 01:10:42,130 --> 01:10:44,240 функционално ово је еквивалентно, приметити да је 1713 01:10:44,240 --> 01:10:46,020 почиње да се још више читљив. 1714 01:10:46,020 --> 01:10:48,410 Ја не знам тачно како се ГетИнт 1715 01:10:48,410 --> 01:10:49,250 се спроводи. 1716 01:10:49,250 --> 01:10:52,050 Искрено, не знам како се спроводи хор. 1717 01:10:52,050 --> 01:10:52,970 Али то није важно за мене. 1718 01:10:52,970 --> 01:10:55,620 Ја не занима, јер сада могу некако, као човек, прочитајте 1719 01:10:55,620 --> 01:10:57,050 ово од врха до дна. 1720 01:10:57,050 --> 01:10:59,950 И зато што се функције именован у складу са оним што су они 1721 01:10:59,950 --> 01:11:02,910 не, мој код је све читљив. 1722 01:11:02,910 --> 01:11:05,190 И као што наши програми добијају много сложенија - 1723 01:11:05,190 --> 01:11:07,220 до краја семестра, можете ћеш писати стотине линија 1724 01:11:07,220 --> 01:11:10,970 кода на језицима као што су ПХП и ЈаваСцрипт и слично - 1725 01:11:10,970 --> 01:11:13,550 видећете да је то много лакше него да пратите 1726 01:11:13,550 --> 01:11:14,080 ста сте урадили. 1727 01:11:14,080 --> 01:11:15,810 А када почнете сарадњу са пријатељима или 1728 01:11:15,810 --> 01:11:19,010 партнери или колеге, моћи ћете да напишете много више 1729 01:11:19,010 --> 01:11:22,910 масивне програма по почињу да врше ове основне 1730 01:11:22,910 --> 01:11:23,990 градивни блокови. 1731 01:11:23,990 --> 01:11:25,550 >> Дакле, са тим рекао, зашто не бисмо назвати дан? 1732 01:11:25,550 --> 01:11:27,190 А ми ћемо вас видети у среду. 1733 01:11:27,190 --> 01:11:33,611 [Апплаусе]