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