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