1 00:00:00,000 --> 00:00:02,742 >> [Гуляе музыка] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI Пэн: Гэта CS50, і Сардэчна запрашаем у тыдзень два часткі. 4 00:00:09,090 --> 00:00:11,740 Гэта на самай справе ў той час як тыдзень два нашых class-- фактычна, 5 00:00:11,740 --> 00:00:14,550 першы тыдзень у нас была падзел. 6 00:00:14,550 --> 00:00:18,897 Паказаць рук, як многія з вас усё прыйшлі да супер падзелу на мінулым тыдні? 7 00:00:18,897 --> 00:00:19,480 ОК, гэта нармальна. 8 00:00:19,480 --> 00:00:20,020 Гэта нармальна. 9 00:00:20,020 --> 00:00:23,110 Як многія з вас глядзелі супер падзел на мінулым тыдні? 10 00:00:23,110 --> 00:00:23,610 ДОБРА. 11 00:00:23,610 --> 00:00:25,702 А вы, хлопцы, зрабілі добра па праблеме ўсталяваць адзін? 12 00:00:25,702 --> 00:00:28,660 Так што я збіраюся ўзяць яго, што мы маем куча сапраўды разумных дзяцей 13 00:00:28,660 --> 00:00:32,310 у гэтым класе і ўсё будзе ў парадку. 14 00:00:32,310 --> 00:00:33,180 ДОБРА. 15 00:00:33,180 --> 00:00:33,980 Так first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> Па-першае, мы толькі збіраемся коратка перайсці ў парадак дня на сёння. 18 00:00:41,090 --> 00:00:42,700 Мы будзем казаць аб курсавых лагістыкі. 19 00:00:42,700 --> 00:00:45,480 Многія з вас, напэўна, ёсць пытанні, якія тычацца 20 00:00:45,480 --> 00:00:46,920 як рэчы працуюць у гэтым курсе. 21 00:00:46,920 --> 00:00:47,897 Мы на іх адказаць. 22 00:00:47,897 --> 00:00:49,730 Мы збіраемся коратка перайсці завес ў выпадку 23 00:00:49,730 --> 00:00:51,410 любы з вас, хлопцы прапусцілі супер падзел. 24 00:00:51,410 --> 00:00:53,240 Мы будзем казаць аб адлюстравання ASCII. 25 00:00:53,240 --> 00:00:56,180 Мы будзем казаць пра масівах, функцыі, аргументы каманднага радка. 26 00:00:56,180 --> 00:01:00,210 І, нарэшце, тое, што вы, хлопцы, напэўна, усё сапраўды хочаце быць тут, каб даведацца пра, 27 00:01:00,210 --> 00:01:01,270 Ваш pset2. 28 00:01:01,270 --> 00:01:04,209 Мы будзем мець некаторыя цікавыя трукі і парады аб тым, як гэта зрабіць. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> ДОБРА. 31 00:01:08,690 --> 00:01:11,450 Акрамя таго, па-другое, мы маем шмат цукерак тут. 32 00:01:11,450 --> 00:01:13,583 Той, хто любіць цукеркі, проста прыйсці сюды. 33 00:01:13,583 --> 00:01:14,430 Захопіце некаторыя. 34 00:01:14,430 --> 00:01:15,100 У мяне ёсць куча. 35 00:01:15,100 --> 00:01:16,390 У нас ёсць тоны ў офісе. 36 00:01:16,390 --> 00:01:18,230 Я сапраўды не хачу з'есці цукерку ўвесь дзень. 37 00:01:18,230 --> 00:01:20,300 Вы, хлопцы, павінны з'есці ўсё цукеркі, таму што я прынёс яго тут для вас, хлопцы. 38 00:01:20,300 --> 00:01:20,990 Проста ёсць цукеркі. 39 00:01:20,990 --> 00:01:24,080 Там будзе цукеркі кожная секцыя. 40 00:01:24,080 --> 00:01:25,330 >> Такім чынам, спачатку, хто я? 41 00:01:25,330 --> 00:01:27,080 Мяне клічуць Эндзі Пэн. 42 00:01:27,080 --> 00:01:30,270 Я з'яўляюся кіраўніком ТАЯ CS50 тут у Ельскім універсітэце. 43 00:01:30,270 --> 00:01:32,540 І ў дадатак да што, я таксама be-- 44 00:01:32,540 --> 00:01:35,600 калі хто-то like-- свой ход прыяцель, плячо, каб крычаць на. 45 00:01:35,600 --> 00:01:39,140 Калі ноч перш з вашага Pset, у Вы паняцця не маеце, што адбываецца, 46 00:01:39,140 --> 00:01:40,080 ўдарыў мяне. 47 00:01:40,080 --> 00:01:42,770 Мы паспачуваць разам, і гэтак далей. 48 00:01:42,770 --> 00:01:46,100 Проста ведаю, што я тут, як рэсурс для вас, як лініі фронту 49 00:01:46,100 --> 00:01:51,830 дапамагаючы вам, хлопцы, высветліць, як для вырашэння праблем у CS50 і за яе межамі. 50 00:01:51,830 --> 00:01:54,590 >> Мая электронная пошта andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Я таксама адправіць індывідуальны па электроннай пошце з мой нумар тэлефона ў ім 52 00:01:58,390 --> 00:02:01,860 так што не ўсё на Інтэрнэт можа ўбачыць свой нумар тэлефона. 53 00:02:01,860 --> 00:02:03,640 Не саромейцеся тэлефанаваць мне ў любы час. 54 00:02:03,640 --> 00:02:07,510 Сур'ёзна, мой тэлефон як правіла, прыкладаецца да маёй руцэ. 55 00:02:07,510 --> 00:02:10,240 Я не можа адказаць на працягу некалькіх хвілін. 56 00:02:10,240 --> 00:02:11,984 Я не можа адказаць на працягу некалькіх гадзін. 57 00:02:11,984 --> 00:02:14,400 Але я магу гарантаваць вам, калі Вы па электроннай пошце мне, калі вы тэлефануеце мне, 58 00:02:14,400 --> 00:02:17,404 напішы мне, я адкажу на працягу 24 гадзін. 59 00:02:17,404 --> 00:02:19,820 Часта, я адкажу, перш чым што, таму што я разумею 60 00:02:19,820 --> 00:02:23,900 што кожны атрымаў некаторыя праблемы, і вы хочаце, каб вашы адказы 61 00:02:23,900 --> 00:02:26,110 даць адказ вельмі хутка. 62 00:02:26,110 --> 00:02:28,945 >> Тым не менш, калі вы тэлефануеце мне 30 хвілін да 63 00:02:28,945 --> 00:02:31,570 што кавалак, які з-за чацвер night-- быць, як Эндзі, дапамажы мне, 64 00:02:31,570 --> 00:02:35,380 Я не started-- я магу даць Вы што плячо, каб крычаць на. 65 00:02:35,380 --> 00:02:41,520 Але гэта можа быць час, каб думаць аб як не рабіць, што ў наступны раз. 66 00:02:41,520 --> 00:02:44,040 ДОБРА. 67 00:02:44,040 --> 00:02:44,944 Ай. 68 00:02:44,944 --> 00:02:45,850 Як ён можа вярнуцца? 69 00:02:45,850 --> 00:02:48,140 Там мы ідзем. 70 00:02:48,140 --> 00:02:52,310 >> Такім чынам, у гэтым, вядома, у нас ёсць тона падтрымкі для ўсіх. 71 00:02:52,310 --> 00:02:54,640 У дадатак да толькі што раздзелы тут, якія вам 72 00:02:54,640 --> 00:02:57,000 кожны тыдзень атрымліваю выдаткаваць 90 выдатныя хвіліны са мной, 73 00:02:57,000 --> 00:02:58,330 у нас таксама ёсць прыёмныя гадзіны. 74 00:02:58,330 --> 00:03:01,021 Як многія з вас, хлопцы, ужо быў у працоўны час па дапамогу? 75 00:03:01,021 --> 00:03:01,520 Выдатна. 76 00:03:01,520 --> 00:03:05,700 Гэта сапраўды прыемна бачыць, таму што мы мець штат больш за 45 ТП і сертыфікацыі 77 00:03:05,700 --> 00:03:11,780 падрыхтоўку для гэтага, вядома, што тут знаходзяцца за дапамогу, вы, хлопцы з psets. 78 00:03:11,780 --> 00:03:14,580 >> Па панядзелках яны праводзяцца ў ТЭАл клас у 17 Hill House тут 79 00:03:14,580 --> 00:03:15,350 у Ельскім універсітэце. 80 00:03:15,350 --> 00:03:17,349 Па аўторках і чацвяргах, яны праводзяцца ў звычайныя. 81 00:03:17,349 --> 00:03:20,010 З 8:00 да 11:00 у значнай ступені кожны будні дзень. 82 00:03:20,010 --> 00:03:21,620 Заходзьце, выйсці. 83 00:03:21,620 --> 00:03:24,030 Любая праблема, няма problem-- проста заходзьце, 84 00:03:24,030 --> 00:03:26,650 і тады мы вам дапаможам ў гэтым. 85 00:03:26,650 --> 00:03:31,640 >> Па-другое, у дадатак да офісных гадзін і секцыі, у нас таксама ёсць шорты. 86 00:03:31,640 --> 00:03:35,930 Хто-небудзь калі-небудзь бачыў пару з шорты ці пакрокавыя відэа ў 87 00:03:35,930 --> 00:03:36,750 на вэб-сайце? 88 00:03:36,750 --> 00:03:37,250 ДОБРА. 89 00:03:37,250 --> 00:03:39,510 Такім чынам, яны на самой справе, вельмі карысна. 90 00:03:39,510 --> 00:03:42,470 Наш цудоўны вытворчасць Гарвардскага каманда там на гэтай школе 91 00:03:42,470 --> 00:03:47,910 да поўначы, яны знялі і вырабляецца гэтыя неверагодныя Праходжанне відэа. 92 00:03:47,910 --> 00:03:52,290 >> Яны возьмуць Вас крок за крокам праз як ісці аб рашэнні праблемы. 93 00:03:52,290 --> 00:03:56,340 Часта, калі вы блытаць аб простая канцэпцыя, асаблівая канцэпцыя, 94 00:03:56,340 --> 00:03:59,780 зірнуць, таму што мы, верагодна, кароткі на яго дзе-то на нашым сайце. 95 00:03:59,780 --> 00:04:03,800 І гэта, як правіла, вялікі рэсурс глядзець, калі вы знаходзіцеся ў першую чаргу 96 00:04:03,800 --> 00:04:06,510 страцілі аб тым, як справіцца з праблемай. 97 00:04:06,510 --> 00:04:09,750 >> Па-трэцяе, у нас таксама ёсць study50 і reference50. 98 00:04:09,750 --> 00:04:15,650 Так што вучыцеся на 50 Сайт гэта ўсяго толькі спасылка. 99 00:04:15,650 --> 00:04:21,500 Гэта, мне здаецца, study.cs50.net ці нешта падобнае. 100 00:04:21,500 --> 00:04:22,860 Проста Google гэта. 101 00:04:22,860 --> 00:04:24,229 У нас ёсць шмат слайдаў, падрыхтаваных. 102 00:04:24,229 --> 00:04:26,770 У нас ёсць шмат шорты і walkthroughs-- рэчы ўсё скампіляваныя 103 00:04:26,770 --> 00:04:31,070 вельмі прыгожа і акуратна для вас усіх, хлопцы праглядаць, якія паняцці см 104 00:04:31,070 --> 00:04:32,860 што вы збянтэжаныя аб. 105 00:04:32,860 --> 00:04:35,920 Гэта, напэўна, будзе пакрыта там, у study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- падобныя. 107 00:04:37,640 --> 00:04:41,510 У нас ёсць шмат розных нот лёгка даступныя для вашым распараджэнні. 108 00:04:41,510 --> 00:04:44,450 І, нарэшце, у нас ёсць тое, што называецца CS50 Абмеркаваць, 109 00:04:44,450 --> 00:04:48,082 форум, у якім, калі ў ноч перад вы робіце вашыя праблемы, скажам, 110 00:04:48,082 --> 00:04:49,880 ў вас ёсць пытанні. 111 00:04:49,880 --> 00:04:52,340 Увайсці ў CS50 Абмеркаваць. 112 00:04:52,340 --> 00:04:53,190 Задайце сваё пытанне. 113 00:04:53,190 --> 00:04:55,820 І тады адзін з hundreds-- магчыма, thousands-- аднагодкаў 114 00:04:55,820 --> 00:04:57,960 прымаючы гэты клас онлайн будзе ўвайсці. 115 00:04:57,960 --> 00:05:01,182 І, можа быць, хто-то можа атрымаць Ваш адказ перад слоікам TA. 116 00:05:01,182 --> 00:05:03,390 Па сутнасці, гэта проста онлайн форум, які мы ўсе можам 117 00:05:03,390 --> 00:05:04,556 выкарыстоўваць, каб абмеркаваць нашы праблемы. 118 00:05:04,556 --> 00:05:06,483 Гэта крута. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> ДОБРА. 121 00:05:11,550 --> 00:05:13,220 Так праблема ўсталёўвае. 122 00:05:13,220 --> 00:05:17,840 Мы збіраемся прама ў таўшчынёй праблемы ўсталюйце два. 123 00:05:17,840 --> 00:05:20,570 Многія з нас ужо змагаліся з праблемай ўсталяваць адзін. 124 00:05:20,570 --> 00:05:24,460 Мы ўжо ведаем, што, магчыма, чакае на працягу мінулай ночы, каб зрабіць вашу PSET 125 00:05:24,460 --> 00:05:28,170 не самы разумны, што трэба зрабіць у CS50. 126 00:05:28,170 --> 00:05:32,380 >> Саветы і падказкі па сутнасці для Поспех чытаюцца ўвесь спец. 127 00:05:32,380 --> 00:05:36,270 Як многія з вас ужо чытаць спецыфікацыі для PSET 2? 128 00:05:36,270 --> 00:05:36,770 ДОБРА. 129 00:05:36,770 --> 00:05:39,840 Гэта цвёрдае колькасць. 130 00:05:39,840 --> 00:05:43,210 Я ведаю, вы хлопцы, напэўна, прызналі зараз спецыфікацыі сапраўды доўга. 131 00:05:43,210 --> 00:05:45,700 Яны сапраўды, сапраўды доўга. 132 00:05:45,700 --> 00:05:49,630 >> Гэта сапраўды цяжка чытаць кожную радок гэтага асцярожна слова за словам. 133 00:05:49,630 --> 00:05:52,780 Вы хочаце, каб проста бегла, дзе ён кажа вам што-то рабіць. 134 00:05:52,780 --> 00:05:54,459 Я магу гарантаваць вам, не рабіце гэтага. 135 00:05:54,459 --> 00:05:56,750 Калі вы зробіце гэта, вы, верагодна, буду сумаваць-то 136 00:05:56,750 --> 00:05:58,458 дзе ён кажа вам, як пачаць праблему 137 00:05:58,458 --> 00:06:01,140 ці кажа вам, што імя ваша праблема, ці гэта кажа вам, 138 00:06:01,140 --> 00:06:03,720 гэта, мабыць, лепшы спосаб каб пачаць рабіць вашу праблему. 139 00:06:03,720 --> 00:06:05,050 І тады вы будзеце страчаныя. 140 00:06:05,050 --> 00:06:08,219 >> Пры спробе прачытаць вашу спекуляцыя на паўдарогі, 141 00:06:08,219 --> 00:06:10,510 шмат важнай information--, што вы не 142 00:06:10,510 --> 00:06:12,260 будзе ў стане сапраўды доступу. 143 00:06:12,260 --> 00:06:13,219 Так што чытайце ўсю спецыфікацыю. 144 00:06:13,219 --> 00:06:15,468 Паспрабуйце прачытаць усю спецыфікацыю на перш чым прыйсці да падзелу, 145 00:06:15,468 --> 00:06:17,360 таму што тады, калі мы казаць пра PSET, 146 00:06:17,360 --> 00:06:21,070 мы ўсе можам мець уяўленне што адбываецца. 147 00:06:21,070 --> 00:06:25,169 >> Па-другое, гэта канцэпцыя што я буду спасылацца на падабаецца 148 00:06:25,169 --> 00:06:26,710 шмат на працягу ўсяго семестра. 149 00:06:26,710 --> 00:06:30,070 Але па сутнасці, нам насустрач, праўда? 150 00:06:30,070 --> 00:06:33,970 Мяне, як ваш ТАЯ і Джэйсан, вядома менеджэр і Scaz якасці прафесара 151 00:06:33,970 --> 00:06:37,120 і Дэвід, як ваш прафесар і ўсё іншыя мілыя ТП у гэтым працэсе, 152 00:06:37,120 --> 00:06:39,830 памочнікамі ў гэтым course-- мы зробім усё магчымае, 153 00:06:39,830 --> 00:06:42,965 каб гарантаваць, што вы ўстаноўлены да поспеху ў гэтым працэсе. 154 00:06:42,965 --> 00:06:43,840 Мы будзем праводзіць падзел. 155 00:06:43,840 --> 00:06:44,870 Мы будзем праводзіць працоўныя гадзіны. 156 00:06:44,870 --> 00:06:47,087 Мы адкажам ваш тэлефон званкі, адказваць на электронную пошту, 157 00:06:47,087 --> 00:06:49,670 зрабіць усё, што ад нас залежыць, каб зрабіць упэўнены, што вашы пытанні адказвае. 158 00:06:49,670 --> 00:06:51,460 >> Тым не менш, дапамагчы нам таксама. 159 00:06:51,460 --> 00:06:52,450 Нам насустрач. 160 00:06:52,450 --> 00:06:56,040 Калі вы прыехалі ў працоўны час ня сыдучы ў раздзеле ня 161 00:06:56,040 --> 00:07:02,060 убачыўшы лекцыі, маючы ніякага Ідэя, што адбываецца, быць, як мне дапамагчы. 162 00:07:02,060 --> 00:07:04,350 Я збіраюся быць, як добра, я прашу прабачэння. 163 00:07:04,350 --> 00:07:06,410 Гэта можа быць час, каб аказаць што плячо, каб крычаць на, 164 00:07:06,410 --> 00:07:08,959 таму што я не ўпэўнены, што я магу зрабіць, каб дапамагчы вам 165 00:07:08,959 --> 00:07:12,000 калі вы не спрабуеце па меншай меры, дапамога самі трохі ў пачатку. 166 00:07:12,000 --> 00:07:12,910 Нам насустрач. 167 00:07:12,910 --> 00:07:15,020 Вы ведаеце, калі ласка, прыходзьце гатовы адказаць і атрымаць 168 00:07:15,020 --> 00:07:16,353 гатовы ўдзельнічаць у матэрыяле. 169 00:07:16,353 --> 00:07:19,342 Гэта робіць рэчы нашмат прасцей для ўсіх удзельнікаў. 170 00:07:19,342 --> 00:07:22,970 Так, гэта даволі шмат яго. 171 00:07:22,970 --> 00:07:23,720 >> Класіфікацыя. 172 00:07:23,720 --> 00:07:29,250 Так на праграме, гэта даволі у глыбіні адносна, як мы клас. 173 00:07:29,250 --> 00:07:32,440 Але па сутнасці, пробай у гэта 50% Вашага гатунку 174 00:07:32,440 --> 00:07:34,530 будуць psets, якія выдатны, таму што гэта 175 00:07:34,530 --> 00:07:37,400 дзе вы марнуеце велізарная Большасць свайго часу курс на. 176 00:07:37,400 --> 00:07:39,854 Віктарыны 40%, і ваш Канчатковы праект будзе 10%. 177 00:07:39,854 --> 00:07:42,520 Там будзе два віктарыны па ўсім курс семестра. 178 00:07:42,520 --> 00:07:47,050 Я думаю, што раз і даты таксама пералічаныя на праграме. 179 00:07:47,050 --> 00:07:49,210 >> Такім чынам, што мы будзем быць сартавання вашыя psets 180 00:07:49,210 --> 00:07:53,930 з'яўляецца тое, што ў нас ёсць, па сутнасці чатыры каштоўнасці, якія мы прыпісваем кожнага гатунку. 181 00:07:53,930 --> 00:07:57,250 У нас ёсць значэнне аб'ёму, Правільнасць, дызайн, і стылю. 182 00:07:57,250 --> 00:08:01,530 Такім чынам, як вы бачыце, што гэта свайго роду наш Формула для разліку psets. 183 00:08:01,530 --> 00:08:03,640 Тры мы даем найбольш Вага правільнасці, 184 00:08:03,640 --> 00:08:06,140 таму што відавочна, ваш трэнер павінны адчуваць за выключэннем выпадкаў, 185 00:08:06,140 --> 00:08:08,480 што мы хочам, каб праверыць. 186 00:08:08,480 --> 00:08:11,000 >> Вы, хлопцы, усе маюць check50 ў вашым распараджэнні. 187 00:08:11,000 --> 00:08:13,730 Гэта вельмі карысная функцыя што вы, хлопцы, усё гэта можа 188 00:08:13,730 --> 00:08:17,560 загрузіць код да нашых сервераў, дзе мы будзем правяраць яе для вас. 189 00:08:17,560 --> 00:08:20,800 І вы бачылі тых, frowny асобы, ўсмешлівыя асобы. 190 00:08:20,800 --> 00:08:22,119 Яны сапраўды, сапраўды карысна. 191 00:08:22,119 --> 00:08:23,910 Калі ласка, не будзьце студэнт, які хацеў спробаў 192 00:08:23,910 --> 00:08:26,230 жорстка ва ўсіх адказаў на іх. 193 00:08:26,230 --> 00:08:30,050 Я вызначана бачыў PSET дзе хто-небудзь бачыў усё значэння check50 194 00:08:30,050 --> 00:08:33,429 і яны проста жорстка, калі in-- гэты лік, раздрукаваць гэты нумар. 195 00:08:33,429 --> 00:08:35,080 Калі гэты лік, раздрукаваць гэтага ліку. 196 00:08:35,080 --> 00:08:36,090 Не рабі гэтага. 197 00:08:36,090 --> 00:08:39,360 >> Нават калі тэхнічна check50 правільна, 198 00:08:39,360 --> 00:08:41,809 Ваш спосаб рашэння Праблема не правільна. 199 00:08:41,809 --> 00:08:45,770 Так проста выкарыстоўваць check50 эканомна. 200 00:08:45,770 --> 00:08:48,497 Але і пераканайцеся, што вы зразумець, як гэта працуе, 201 00:08:48,497 --> 00:08:50,580 Праграма функцыянуе у дадатак да check50, 202 00:08:50,580 --> 00:08:53,120 таму што мы не можам праверыць кожны магчымы выпадак check50. 203 00:08:53,120 --> 00:08:55,440 Мы будзем тэставаць некаторыя з іх. 204 00:08:55,440 --> 00:09:00,390 >> Дызайн па сутнасці справы, як добра распрацавана ваш код? 205 00:09:00,390 --> 00:09:04,150 Калі вы капіявання ўстаўкі некалькіх радкоў кода шмат, шмат разоў. 206 00:09:04,150 --> 00:09:06,960 Можа быць, вы не маюць цалкам лепшы дызайн у кодзе. 207 00:09:06,960 --> 00:09:09,470 Можа быць, прыйшоў час дадаць, што цыкл. 208 00:09:09,470 --> 00:09:12,090 Па сутнасці, тут гэта проста ўсё аб спробе зрабіць ваш код, 209 00:09:12,090 --> 00:09:17,010 спрабую напісаць код, як эфектыўна як можна так, што ваша праграма працуе 210 00:09:17,010 --> 00:09:19,630 як мага хутчэй. 211 00:09:19,630 --> 00:09:20,996 >> Нарэшце, у нас ёсць стыль. 212 00:09:20,996 --> 00:09:24,360 Так стыль свайго роду адвольным, суб'ектыўным. 213 00:09:24,360 --> 00:09:27,470 Я ведаю, што мы афіцыйна ёсць стыль 50 кіраўніцтва для CS50, 214 00:09:27,470 --> 00:09:30,050 дзе ён кажа табе, о, вы, павінен мець месца тут. 215 00:09:30,050 --> 00:09:32,220 Вы павінны роду фармаце код такім чынам. 216 00:09:32,220 --> 00:09:34,070 Вы павінны назваць гэта такім чынам. 217 00:09:34,070 --> 00:09:38,180 >> Я сапраўды не хвалюе, як такой, як Вы выбіраеце для афармлення кода, 218 00:09:38,180 --> 00:09:39,840 як доўга, як вам заставацца паслядоўным. 219 00:09:39,840 --> 00:09:43,732 Напрыклад, калі вы хочаце пакінуць прастору пасля вашых чатырох 220 00:09:43,732 --> 00:09:45,690 да вашага чатыры цыклу, проста рабіць, што кожны раз. 221 00:09:45,690 --> 00:09:46,523 Не від гэта зрабіць. 222 00:09:46,523 --> 00:09:47,730 Не зрабіць гэта ў іншы час. 223 00:09:47,730 --> 00:09:51,046 Калі вы хочаце захаваць кучаравыя дужкі прастору пэўным чынам, 224 00:09:51,046 --> 00:09:52,170 проста заўсёды зрабіць гэта такім чынам. 225 00:09:52,170 --> 00:09:54,628 Не від зрабіць гэта дзесьці тут і дзе-то не там. 226 00:09:54,628 --> 00:09:57,010 Калі мы класіфікацыі, гэта сапраўды цяжка 227 00:09:57,010 --> 00:09:59,420 калі ў мяне няма ідэі, як Вы фарматаванне кода, 228 00:09:59,420 --> 00:10:02,064 рэчы дурныя і не да месца. 229 00:10:02,064 --> 00:10:04,980 Калі вы проста трымаць яго ў адпаведнасць, гэта значна лягчэй для мяне, як вялікая 230 00:10:04,980 --> 00:10:06,310 каб мець магчымасць чытаць ваш код. 231 00:10:06,310 --> 00:10:09,393 Гэта значна прасцей для вас, як студэнту каб мець магчымасць праглядаць код 232 00:10:09,393 --> 00:10:11,720 і паглядзець, што здарылася з гэта скараціць чаму ёсць праблемы. 233 00:10:11,720 --> 00:10:15,740 Стыль з'яўляецца адным з самых простых рэчаў, вы, хлопцы, можаце зрабіць, каб атрымаць поўны ацэнкі. 234 00:10:15,740 --> 00:10:18,770 Па сутнасці, калі вы проста клапоцяцца, калі Вы плаціце пяць хвілін увагі 235 00:10:18,770 --> 00:10:22,760 каб ваш код кожны тыдзень, вы павінны быць поўны стыль ачкоў. 236 00:10:22,760 --> 00:10:26,020 >> Нарэшце, у нас ёсць тое, што называецца множнік маштабу. 237 00:10:26,020 --> 00:10:28,890 Scope-- Я ведаю, што гэта вялікі Слова, асабліва ў гэтым класе. 238 00:10:28,890 --> 00:10:31,030 Але сфера, усё, што сродкі з'яўляецца тое, што вы спрабуеце 239 00:10:31,030 --> 00:10:33,670 у psets да лепшага вашай здольнасці. 240 00:10:33,670 --> 00:10:37,180 Калі вы ўключыце ў трох з з вашых чатырох праблем 241 00:10:37,180 --> 00:10:39,460 і нават не спроба Апошні, вы, верагодна, 242 00:10:39,460 --> 00:10:41,630 збіраецца губляць некалькі кропак на сферу. 243 00:10:41,630 --> 00:10:44,560 >> Нават калі вы толькі пачынаеце праблему, зрабіць усё магчымае, каб прайсці праз гэта. 244 00:10:44,560 --> 00:10:47,691 Нават калі гэта не працуе, выключыце яго, таму што паказвае і дэманструе 245 00:10:47,691 --> 00:10:50,190 нам, што вы спрабуеце, што Вы паспрабавалі ўсталяваць праблему 246 00:10:50,190 --> 00:10:51,430 да лепшай з Вашай здольнасці. 247 00:10:51,430 --> 00:10:53,800 І тады мы можам даць вам поўная ачкоў за рамкі. 248 00:10:53,800 --> 00:10:58,715 >> Вобласць з'яўляецца таксама вельмі важным, калі мы казаць аб нізкай кроплі адзнака PSET. 249 00:10:58,715 --> 00:11:02,010 Так на працягу з семестр, вы, хлопцы, ёсць дзевяць psets. 250 00:11:02,010 --> 00:11:05,340 І мы на самай справе будзе падаць самая нізкая адзнака з тых дзевяці, 251 00:11:05,340 --> 00:11:07,670 але толькі калі ў вас ёсць поўны пункту размах. 252 00:11:07,670 --> 00:11:11,120 >> Так што, калі вы ўключыце ў няпоўным PSET, На жаль, мы не можам адмовіцца, што адзін, 253 00:11:11,120 --> 00:11:13,540 таму што Вашай вобласці не былі завершаныя ачкоў. 254 00:11:13,540 --> 00:11:16,570 Такім чынам, нават калі ў вас ёсць жудасны тыдзень дзе вы паміраеце і вы хворыя 255 00:11:16,570 --> 00:11:20,040 ці ваша сабака памірае, ваша котка памірае, і вы перагружаныя хатнімі заданнямі, 256 00:11:20,040 --> 00:11:21,074 проста паспрабаваць PSET. 257 00:11:21,074 --> 00:11:22,490 Зрабіце гэта ў меру вашых магчымасцяў. 258 00:11:22,490 --> 00:11:23,840 Калі гэта не працуе, гэта не мае значэння. 259 00:11:23,840 --> 00:11:24,506 Проста уключыце яго ў. 260 00:11:24,506 --> 00:11:26,590 Прынамсі, мы можам даць Вы ачкі за намаганні. 261 00:11:26,590 --> 00:11:28,510 >> А пры спробе ў гэтым класе. 262 00:11:28,510 --> 00:11:30,170 Прынамсі, нізкай кроплі адзнака для намаганні. 263 00:11:30,170 --> 00:11:32,354 Так што, так. 264 00:11:32,354 --> 00:11:33,270 Гэта даволі шмат яго. 265 00:11:33,270 --> 00:11:36,521 Хто-небудзь ёсць пытанні, каб далёка, як мы гатунку ў класе? 266 00:11:36,521 --> 00:11:37,187 Або любы з іх? 267 00:11:37,187 --> 00:11:41,220 Любы з іх так far-- Раздзелы, офісная гадзін? 268 00:11:41,220 --> 00:11:41,720 Прахладны. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 ДОБРА. 271 00:11:47,800 --> 00:11:51,260 >> Так што гэта пытанне, які не чалавек сапраўды любіць пагаварыць. 272 00:11:51,260 --> 00:11:53,084 Я сапраўды не хацеў, каб пра гэта казаць. 273 00:11:53,084 --> 00:11:55,250 Вы, хлопцы, сапраўды не хачу каб пачуць мяне гаварыць пра гэта. 274 00:11:55,250 --> 00:11:57,690 Але, на жаль, мы ўсе павінны гаварыць пра гэта. 275 00:11:57,690 --> 00:12:00,110 Дэвід правёў 20 хвілін у лекцыі казаць пра гэта. 276 00:12:00,110 --> 00:12:02,580 І гэта з'яўляецца прадметам акадэмічнай сумленнасці. 277 00:12:02,580 --> 00:12:08,110 >> Такім чынам, мы ўсе тут, верагодна, напісана эсэ-то ў нашай Ельскага кар'еры. 278 00:12:08,110 --> 00:12:11,800 Мы, верагодна, атрымалі размова, дзе мы сказалі не займацца плагіятам наш нарыс, 279 00:12:11,800 --> 00:12:13,940 таму што праца не наша. 280 00:12:13,940 --> 00:12:18,109 У кампутарнай навуцы, у нас ёсць такі ж канцэпцыі. 281 00:12:18,109 --> 00:12:20,150 Усе працы, якія вы дае, увесь код, які вы пішаце 282 00:12:20,150 --> 00:12:21,900 павінна быць код, які вы напісалі. 283 00:12:21,900 --> 00:12:24,280 Не павінна быць код, які Вы скапіяваныя з іншага. 284 00:12:24,280 --> 00:12:26,777 Не павінна быць код, які Вы гугле і пляснуўся ў 285 00:12:26,777 --> 00:12:28,360 і вы сапраўды не ведаю, ці працуе ён. 286 00:12:28,360 --> 00:12:32,440 Вы накшталт ёсць пачуццё што ён робіць, але не зусім. 287 00:12:32,440 --> 00:12:36,562 Калі вы сумняваецеся, па сутнасці, гэта проста быць разумным. 288 00:12:36,562 --> 00:12:38,520 На нашым навучальным, у нас ёсць цэлы спіс рэчаў, 289 00:12:38,520 --> 00:12:40,560 мы бачым, як разумна у параўнанні з не разумна. 290 00:12:40,560 --> 00:12:43,820 >> Напрыклад, разумна гэта вы і ваш сябар 291 00:12:43,820 --> 00:12:47,360 абмяркоўвалі, што лепшы спосаб пайсці аб логіцы вырашэння праблемы. 292 00:12:47,360 --> 00:12:48,910 Гэта даволі разумна. 293 00:12:48,910 --> 00:12:53,244 Тое, што не было б разумна, калі вы Хлопцы сабраліся, набралі такі жа код, 294 00:12:53,244 --> 00:12:54,410 і аказалася ў тым жа кодзе. 295 00:12:54,410 --> 00:12:56,302 Гэта не разумна. 296 00:12:56,302 --> 00:12:57,510 Тое ж самае, свайго роду эсэ. 297 00:12:57,510 --> 00:12:59,290 Калі вы хочаце, каб абмеркаваць з вашым сябрам, эй, 298 00:12:59,290 --> 00:13:00,220 гэта тое, што я хачу напісаць пра. 299 00:13:00,220 --> 00:13:02,500 Гэтыя крокі, якія я хачу часу, каб напісаць пра гэта, вялікі. 300 00:13:02,500 --> 00:13:03,208 Гэта выдатна. 301 00:13:03,208 --> 00:13:04,790 Калі ласка, супрацоўнічаць адзін з адным. 302 00:13:04,790 --> 00:13:06,540 Калі вы, хлопцы пачаць напісаць тое ж самае, 303 00:13:06,540 --> 00:13:10,020 ўключыць у тым жа артыкуле, што менш ОК. 304 00:13:10,020 --> 00:13:13,200 Таму, калі ёсць сумневы, проста не зрабіць гэта. 305 00:13:13,200 --> 00:13:16,940 >> Тут мы ў CS50, у нас ёсць сцэнары якія працуюць для аўтаматызацыі, каб праверыць 306 00:13:16,940 --> 00:13:21,740 не толькі правільнасць кода, але таксама унікальнасць вашага кода. 307 00:13:21,740 --> 00:13:25,920 Таму, калі ласка, не стаўце нас у становішча таго, каб звярнуцца ваша справа EXCOMM. 308 00:13:25,920 --> 00:13:31,110 Калі ласка, проста для ўсіх, давайце проста зрабіць гэта выдатны вопыт. 309 00:13:31,110 --> 00:13:33,600 Кожны вучыцца лепш, усе мы шчаслівейшыя, 310 00:13:33,600 --> 00:13:37,926 і мы ўсе настроеныя на дамагчыся поспеху ў гэтым працэсе. 311 00:13:37,926 --> 00:13:39,800 Нешта, што вельмі Унікальнасць гэтага класа 312 00:13:39,800 --> 00:13:42,660 Я думаю, што кожны павінен сапраўды звярнуць увагу на тое, што ў нас ёсць 313 00:13:42,660 --> 00:13:44,930 тое, што называецца шкадаванне агаворка ў нашай праграме. 314 00:13:44,930 --> 00:13:50,010 Так па сутнасці, на працягу 72 гадзін, калі Вы ўпэўненыя, што вы зрабілі нешта 315 00:13:50,010 --> 00:13:53,240 Вы не ўпэўненыя, быў сапраўды неабходнасці, калі ласка, прыходзьце да нас. 316 00:13:53,240 --> 00:13:57,220 Мы абяцаем вам, што на працягу 72 гадзін мы будзе апрацоўваць самі справы 317 00:13:57,220 --> 00:13:59,820 ня звяртаючыся да вышэй ўлада ў адміністрацыі. 318 00:13:59,820 --> 00:14:03,100 >> Так што, калі вы прыйшлі да мяне і кажуць, Эндзі, эй, я сапраўды шкадую, 319 00:14:03,100 --> 00:14:07,620 але я думаю, што ёсць пара радкоў па маім Код учора ўвечары, што я накшталт гугле, 320 00:14:07,620 --> 00:14:10,120 сышоў з стэка Перапаўненне, скапіруйце і ўставіць, 321 00:14:10,120 --> 00:14:13,680 і я вельмі, вельмі шкада аб тым, дайце мне ведаць. 322 00:14:13,680 --> 00:14:16,900 Калі ласка, не проста дазволіць ёй тлець і толькі спадзяюся, што я злавіць яго. 323 00:14:16,900 --> 00:14:17,784 Мы злавіць яго. 324 00:14:17,784 --> 00:14:18,450 Проста прыходзьце да мяне. 325 00:14:18,450 --> 00:14:20,520 Дазвольце мне ведаць, на працягу 72 гадзін. 326 00:14:20,520 --> 00:14:22,240 Мы высветліць, рашэнне. 327 00:14:22,240 --> 00:14:26,679 І мы абяцаем, што мы не будзем спасылацца на універсітэцкія ўлады па сутнасці. 328 00:14:26,679 --> 00:14:29,220 Так што гэта ў вашых інтарэсах проста быць сумленным з усімі 329 00:14:29,220 --> 00:14:31,720 удзел у працэсе. 330 00:14:31,720 --> 00:14:34,630 >> ДОБРА. 331 00:14:34,630 --> 00:14:35,240 ДОБРА. 332 00:14:35,240 --> 00:14:37,800 Так што цяпер, хутка, перш чым Я рухацца далей, хто-небудзь 333 00:14:37,800 --> 00:14:42,670 ёсць пытанні, якія тычацца лагістыкі ад таго, як курсы мы збіраемся працаваць, 334 00:14:42,670 --> 00:14:45,982 як секцыі збіраюцца бегчы, любы з што? 335 00:14:45,982 --> 00:14:46,711 ДОБРА. 336 00:14:46,711 --> 00:14:47,210 Так. 337 00:14:47,210 --> 00:14:48,126 >> АЎДЫТОРЫЯ: [неразборліва]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI Пэн: Так. 340 00:14:51,080 --> 00:14:54,850 Так як quizzes-- многія з вас у раздзеле панядзелак / сераду? 341 00:14:54,850 --> 00:14:56,700 Як многія з вас у аўторак / чацвер? 342 00:14:56,700 --> 00:14:58,550 ОК, так што гэта цвёрдае спліт тут. 343 00:14:58,550 --> 00:15:00,900 Такім чынам, шлях, які мы запускаем гэта ў Ельскім універсітэце, што мы 344 00:15:00,900 --> 00:15:04,040 будуць мець два асобных quizzes-- адзін для кожнага section--, што 345 00:15:04,040 --> 00:15:06,160 будуць прынятыя падчас заняткаў. 346 00:15:06,160 --> 00:15:09,310 Я думаю, што гэта Кастрычнік канец кастрычніка, нешта падобнае, а тыдня адзін 347 00:15:09,310 --> 00:15:10,794 віктарыны. 348 00:15:10,794 --> 00:15:11,960 Так, так проста прыйсці ў клас. 349 00:15:11,960 --> 00:15:13,920 На гэтай панядзелак ці ў сераду, вы будзеце прымаць тэст. 350 00:15:13,920 --> 00:15:16,336 На гэтай аўторак або чацвер, вы будзеце прымаць розныя віктарыны. 351 00:15:16,336 --> 00:15:18,570 Але той жа матэрыял будзе пакрыта. 352 00:15:18,570 --> 00:15:19,160 Так. 353 00:15:19,160 --> 00:15:20,660 Добры пытанне. 354 00:15:20,660 --> 00:15:21,160 Так. 355 00:15:21,160 --> 00:15:23,260 >> АЎДЫТОРЫЯ: Дзе мы пайсці праверыць нашы ацэнкі? 356 00:15:23,260 --> 00:15:23,926 >> ANDI Пэн: Так. 357 00:15:23,926 --> 00:15:28,420 Так што я буду пасылаць па-за адрас электроннай пошты ўсе, што кожны тыдзень 358 00:15:28,420 --> 00:15:31,460 калі віктарыны graded-- або прабачце, калі psets ацэньваюцца. 359 00:15:31,460 --> 00:15:34,120 Psets звычайна аказалася апоўдні або ў пятніцу. 360 00:15:34,120 --> 00:15:37,540 Так што я абяцаю, што я буду паспрабаваць атрымаць іх назад да вас 361 00:15:37,540 --> 00:15:40,000 да поўдня наступнага пятніцу. 362 00:15:40,000 --> 00:15:44,950 >> Кожны раз, калі я Grade A PSET, я пашлю з апавяшчэння пра кнігу класа 363 00:15:44,950 --> 00:15:47,070 што кажа вам ваш рахунак можна глядзець анлайн. 364 00:15:47,070 --> 00:15:52,022 Так прама на гэтым тыдні, пасля таго як я завяршыць класіфікацыі psets на мінулым тыдні, 365 00:15:52,022 --> 00:15:54,230 вы, хлопцы, атрымаеце па электроннай пошце Апавяшчэнне кажу вам, 366 00:15:54,230 --> 00:15:55,870 Эй, гэта дзе вы перайсці праглядаць ацэнкі. 367 00:15:55,870 --> 00:15:57,680 І вы можаце бачыць кожны Аналіз вашых класах. 368 00:15:57,680 --> 00:15:58,555 Вы можаце бачыць каментары. 369 00:15:58,555 --> 00:16:00,360 Аб, хутка, што таксама. 370 00:16:00,360 --> 00:16:03,060 У раздзеле каментароў у вялікі Кніга, дзе я, напэўна, 371 00:16:03,060 --> 00:16:05,300 праводзяць большую частку свайго часу класіфікацыі. 372 00:16:05,300 --> 00:16:07,094 Так адна рэч, якая Вельмі важна, калі 373 00:16:07,094 --> 00:16:09,010 Вы, хлопцы, прагляду Вашы гатункі на вашых psets 374 00:16:09,010 --> 00:16:11,400 не толькі шукае на фізічным кошт 375 00:16:11,400 --> 00:16:14,630 але таксама знайшлі час, каб сапраўды прачытаў мае каментары. 376 00:16:14,630 --> 00:16:17,820 >> Часта гэта дае вам зваротную сувязь пра тое, як вы вырашаеце праблему. 377 00:16:17,820 --> 00:16:20,480 Калі вам трэба зрабіць, што-то крыху лепш, 378 00:16:20,480 --> 00:16:24,080 канструктыўная крытыка звычайна лепш прызначаць у тых раздзеле каментароў. 379 00:16:24,080 --> 00:16:26,950 Так што калі ласка, калі ласка, я збіраюся правесці час на напісанне каментароў. 380 00:16:26,950 --> 00:16:30,440 Калі ласка, я б вельмі ўдзячны калі вы, хлопцы, будзе чытаць гэтыя каментары. 381 00:16:30,440 --> 00:16:31,170 ДОБРА. 382 00:16:31,170 --> 00:16:34,150 Прахладны. 383 00:16:34,150 --> 00:16:34,680 >> Добра. 384 00:16:34,680 --> 00:16:40,680 Такім чынам, мы збіраемся, каб пачаць гаварыць і проста разгляд хутка 385 00:16:40,680 --> 00:16:45,040 некаторыя з матэрыялу з нуля проста так мы тыдзень 386 00:16:45,040 --> 00:16:48,760 на правай старонцы для пачынаючы праблемы на гэтым тыдні. 387 00:16:48,760 --> 00:16:52,600 Такім чынам, у той час як пятля з'яўляецца адным з трох тыпаў завес 388 00:16:52,600 --> 00:16:54,510 мы абмяркоўвалі раней у гэтым класе. 389 00:16:54,510 --> 00:16:57,060 >> Некаторы час цыклу істотна напісана ў сінтаксісе 390 00:16:57,060 --> 00:17:00,666 дзе, у той час як пэўны стан, Зрабіце гэта некалькі разоў, праўда? 391 00:17:00,666 --> 00:17:02,040 Думайце пра яго, у гэтым графіку тут. 392 00:17:02,040 --> 00:17:04,780 Вы збіраецеся пачынаюцца ў пэўная кропка ў кодзе. 393 00:17:04,780 --> 00:17:09,030 Вы збіраецеся увайсці ў ўмова цыклу if-- я не знаю-- х менш, чым адзін. 394 00:17:09,030 --> 00:17:11,677 >> Калі гэта праўда, што вы збіраецеся для выканання цела цыклу. 395 00:17:11,677 --> 00:17:14,010 І вы збіраецеся працягваць рабіць што зноў, зноў, зноў, 396 00:17:14,010 --> 00:17:17,900 зноў і over-- таму гэта loop--, пакуль ваш ўмова не стане 397 00:17:17,900 --> 00:17:19,079 ілжывымі. 398 00:17:19,079 --> 00:17:22,140 Так што ў гэтым шляху, у той час як завесы з'яўляецца адным з самых простых спосабаў 399 00:17:22,140 --> 00:17:25,619 напісаць які-небудзь ўмове, што Неабходна паўтарыць зноў і больш. 400 00:17:25,619 --> 00:17:28,109 Толькі будзьце асцярожныя, калі Вы пішаце якой-небудзь завесы 401 00:17:28,109 --> 00:17:32,140 што ў вас ёсць выхад у стан а таксама абнаўленне для б там ні 402 00:17:32,140 --> 00:17:36,714 так што ваш цыкл не проста прыйдзецца зноў і зноў бясконца. 403 00:17:36,714 --> 00:17:38,630 У любым выпадку, вы будзеце хочуць, каб пераканацца, 404 00:17:38,630 --> 00:17:42,670 што вы змяняеце некаторы аспект код або ў канцы цыклу 405 00:17:42,670 --> 00:17:46,680 проста каб пераканацца, што ў вас ёсць спосаб прагрэсавальнай да стане 406 00:17:46,680 --> 00:17:48,400 што вы хочаце, каб задаволіць да канца. 407 00:17:48,400 --> 00:17:50,239 Ці мае гэта сэнс для ўсіх? 408 00:17:50,239 --> 00:17:52,530 Мы проста не хочам быць якія апынуліся ў гэтай спіралі дзе 409 00:17:52,530 --> 00:17:55,710 мы ідзем вакол і вакол і няма ніякага спосабу, каб разарваць пятлю. 410 00:17:55,710 --> 00:17:58,844 І кожны цыкл па сутнасці ёсць спосаб зрабіць гэта. 411 00:17:58,844 --> 00:17:59,344 ДОБРА. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> Па-другое, многія з вас у вашых psets Марыё 414 00:18:06,060 --> 00:18:08,910 верагодна, выкарыстоўваць Гэты тып цыклу. 415 00:18:08,910 --> 00:18:11,802 Гэта называецца рабіць падчас цыклу. 416 00:18:11,802 --> 00:18:14,510 Перш за ўсё, хто можа сказаць мне, у чым розніца паміж спраў 417 00:18:14,510 --> 00:18:16,586 у той час як цыкл і ў той час як цыкл? 418 00:18:16,586 --> 00:18:17,086 Так. 419 00:18:17,086 --> 00:18:21,030 >> Аўдыторыя: зрабі той час як цыкл працуе на першы [неразборліва]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI Пэн: Так, менавіта так. 421 00:18:22,120 --> 00:18:27,130 Так зрабі той час як цыкл заўсёды робіць тое, што знаходзіцца ўсярэдзіне спраў, у дужках 422 00:18:27,130 --> 00:18:30,520 там і робіць, што ўмова да праверкі the-- прабачце, 423 00:18:30,520 --> 00:18:32,940 робіць што-код перад праверка стану. 424 00:18:32,940 --> 00:18:37,200 І гэта асабліва актуальна для нас Тут у гэтым класе, таму што большасць часу 425 00:18:37,200 --> 00:18:41,450 мы збіраемся хочаце, каб заахвоціць карыстальнік на працягу некаторага роду уваходам. 426 00:18:41,450 --> 00:18:43,520 А потым, у залежнасці ад уваход яны даюць нам, 427 00:18:43,520 --> 00:18:46,150 то мы можам ацаніць, ох, зрабіць мы павінны заахвоціць іх зноў? 428 00:18:46,150 --> 00:18:49,930 >> Такім чынам, у Марыё, калі карыстальнік даў вам адмоўны рост, напрыклад, 429 00:18:49,930 --> 00:18:52,990 Вы збіраецеся першым радку і рабіць усё, што знаходзіцца ўнутры. 430 00:18:52,990 --> 00:18:54,820 Тады вы ідзяце, каб праверыць час. 431 00:18:54,820 --> 00:18:57,570 Вы ведаеце, гэта адмоўны 1, з'яўляецца тое, што станоўчае лік? 432 00:18:57,570 --> 00:19:00,680 Калі гэта не так, я збіраюся пайсці таму і паўтарыць рабіць і паўтарэння 433 00:19:00,680 --> 00:19:03,950 і паўтараць і паўтараць, пакуль яны нарэшце, даць вам нумар, які вам падабаецца, 434 00:19:03,950 --> 00:19:07,002 што ўсе мы можам выкарыстоўваць у нашым кодзе. 435 00:19:07,002 --> 00:19:09,210 Гэта вельмі важна для па сутнасці, любы карыстацкі ўвод. 436 00:19:09,210 --> 00:19:11,760 Я магу гарантаваць вам, любы раз у PSET дзе 437 00:19:11,760 --> 00:19:15,070 мы просім вас ўвесці якой-небудзь кода, мы 438 00:19:15,070 --> 00:19:17,540 верагодна, каб даць вам тэст выпадак, у якім мы 439 00:19:17,540 --> 00:19:21,200 збіраюся даць вам нешта дрэннае, што гэта будзе спрабаваць зламаць ваш код. 440 00:19:21,200 --> 00:19:25,044 >> Калі мы спрабуем спытаць вас Для ўводу лік, мы можам проста даць вам радок 441 00:19:25,044 --> 00:19:26,460 і паглядзець, як вы б справіцца з гэтым. 442 00:19:26,460 --> 00:19:30,610 Калі мы просім вас выкарыстоўваць ўзрост, мы можам даць вам адмоўнае лік 443 00:19:30,610 --> 00:19:32,340 каб паглядзець, як вы б справіцца з гэтым. 444 00:19:32,340 --> 00:19:37,260 Проста пераканайцеся, што вы, хлопцы, тэставанне на выпадкі, у якіх вы не атрымаеце лепшы 445 00:19:37,260 --> 00:19:38,590 ўваход, давайце проста сказаць. 446 00:19:38,590 --> 00:19:40,510 І зрабі той час як цыкл гэта часта лепшы 447 00:19:40,510 --> 00:19:45,260 спосаб стварыць свой код так, што ён адказвае, што аб'ём. 448 00:19:45,260 --> 00:19:45,760 ДОБРА. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> ДОБРА. 451 00:19:49,470 --> 00:19:53,270 Так што гэта, верагодна, найбольш Комплекс цыкл з трох 452 00:19:53,270 --> 00:19:54,990 што мы глядзелі на да гэтага часу. 453 00:19:54,990 --> 00:19:56,689 І, здаецца, вельмі страшна на першы погляд. 454 00:19:56,689 --> 00:19:59,730 Але я гарантую вам, пасля таго, як вы, хлопцы, атрымаць навык, як выкарыстоўваць цыкл, 455 00:19:59,730 --> 00:20:03,320 гэта адзін з самых карысных рэчаў, найбольш карысных інструментаў у вашым арсенале 456 00:20:03,320 --> 00:20:05,300 для прасоўвання наперад у гэтым класе. 457 00:20:05,300 --> 00:20:09,920 >> Так, напрыклад, у пустым, у нас была гэтая вельмі просты блок 458 00:20:09,920 --> 00:20:13,180 што толькі што сказаў, паўтараць гэта напэўна фразы пэўную колькасць разоў. 459 00:20:13,180 --> 00:20:16,260 Дарэчы, SAJ-- гэта Scaz Эндзі Джэйсан. 460 00:20:16,260 --> 00:20:18,740 Мы часта увайдзіце нашы лісты Сай. 461 00:20:18,740 --> 00:20:20,360 Калі мы кажам, Сай, не блытаць. 462 00:20:20,360 --> 00:20:22,630 Вось толькі мы. 463 00:20:22,630 --> 00:20:28,600 >> Такім чынам, у пустым, мы былі ў стане мець блок, які сказаў, што я люблю паўтараць Сай! 464 00:20:28,600 --> 00:20:29,430 10 разоў. 465 00:20:29,430 --> 00:20:30,130 Вельмі проста. 466 00:20:30,130 --> 00:20:32,302 Логіка, якая з'яўляецца вельмі, вельмі проста, праўда? 467 00:20:32,302 --> 00:20:35,260 Я хачу, каб спачатку прайсці праз першы час і бачыць, што ў другі раз 468 00:20:35,260 --> 00:20:38,510 і бачыць, што ў трэці раз, і гэтак далей і гэтак далей, пакуль вы не націснеце 10. 469 00:20:38,510 --> 00:20:41,960 >> І тое, як мы будзе прадстаўляць, што ў Код проста праз просты цыкл. 470 00:20:41,960 --> 00:20:45,440 Такім чынам, для, вы збіраецеся абвясціць пераменная тут, у гэтым выпадку, 471 00:20:45,440 --> 00:20:46,349 з унутр. 472 00:20:46,349 --> 00:20:47,390 Мы збіраемся назваць гэта я. 473 00:20:47,390 --> 00:20:49,500 Мы збіраемся, каб ініцыялізаваць яго ў 0. 474 00:20:49,500 --> 00:20:52,490 І прыпынак выданне будзе я менш 10. 475 00:20:52,490 --> 00:20:54,622 І абнаўленне будзе я ++. 476 00:20:54,622 --> 00:20:57,750 >> І ў цыкле, гэта адбываецца ня выконваць пакуль у рэшце рэшт яго 477 00:20:57,750 --> 00:21:01,490 парад канец condition--, у якім так, ён збіраецца разарваць пятлю. 478 00:21:01,490 --> 00:21:04,600 Там павінна быць рэчы, якія вы Хлопцы ўсё быццам бачыў 479 00:21:04,600 --> 00:21:07,270 і павінен быў зрабіць для вашай праблемы ўсталюйце адзін. 480 00:21:07,270 --> 00:21:12,310 Хто-небудзь ёсць якія-небудзь пытанні у дачыненні, завес прама цяпер? 481 00:21:12,310 --> 00:21:12,930 ДОБРА. 482 00:21:12,930 --> 00:21:13,430 Выдатна. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> ДОБРА. 485 00:21:18,620 --> 00:21:22,270 Так што для тых з вас, хто чытаць Pset спецыфікацыі на гэтым тыдні 486 00:21:22,270 --> 00:21:27,690 ведаеце, што мы будзем мець на працу тое, што называецца ASCII і табліцы ASCII. 487 00:21:27,690 --> 00:21:32,380 Давід у лекцыі падышоў коратка як кампутары ўсе essentially-- 488 00:21:32,380 --> 00:21:35,410 кадуецца ў кампутары ў двайковы, у нулёў і адзінак. 489 00:21:35,410 --> 00:21:39,740 І тое, кампутары здольныя для захоўвання розных каштоўнасцяў, у дадатак 490 00:21:39,740 --> 00:21:44,360 у нулёў і адзінак з'яўляюцца адлюстраваннем праз гэтыя лічбы ўяўляюць іншыя лічбы 491 00:21:44,360 --> 00:21:47,220 або істотна іншыя характары. 492 00:21:47,220 --> 00:21:49,810 >> Такім чынам, у гэтым выпадку, ASCII-table-- усё гэта робіць 493 00:21:49,810 --> 00:21:53,600 гэта сімвалы карту, або сімвалы, на нумары. 494 00:21:53,600 --> 00:21:57,385 Так файла зыходнага кода ў Ваш computer-- ён бачыць, 495 00:21:57,385 --> 00:22:00,010 эй, куча нулёў і адзінак, нулёў і адзінак, нулёў і адзінак. 496 00:22:00,010 --> 00:22:02,350 Гэта тое, што захоўваецца ў фактычны аб'ём памяці вашага кампутара. 497 00:22:02,350 --> 00:22:04,750 >> Але калі мы, людзі, хочам мець зносіны з кампутарам, 498 00:22:04,750 --> 00:22:08,249 мы want-- сказаць, напрыклад, калі я хачу загалоўную A, 499 00:22:08,249 --> 00:22:10,540 Я збіраюся трэба нейкім чынам распавядаць кампутар, ох, 500 00:22:10,540 --> 00:22:16,300 калі я друкую ў верхнім рэгістры A, я маю на ўвазе гэта прадстаўленне ў двайковай сістэме. 501 00:22:16,300 --> 00:22:22,260 >> І так, як мы робім, што кінуў адвольнае, што называецца табліцу ASCII, 502 00:22:22,260 --> 00:22:25,020 дзе, як людзі, так як праграмісты, некаторы час таму, 503 00:22:25,020 --> 00:22:28,660 мы адвольна вырашыў, што мы збіраліся прызначыць гэтыя нумары 504 00:22:28,660 --> 00:22:30,960 Значэння гэтых знакаў ст. 505 00:22:30,960 --> 00:22:32,720 >> Такім чынам, вы, хлопцы, можаце Google гэта ў Інтэрнэце. 506 00:22:32,720 --> 00:22:37,120 Я думаю, што ёсць спасылка на яго ў вашай pset-- проста ASCII табліца карты, ASCII 507 00:22:37,120 --> 00:22:37,720 Табліца. 508 00:22:37,720 --> 00:22:40,722 Гэта проста перакладае двайковы нумары ў знакаў. 509 00:22:40,722 --> 00:22:42,930 І гэта будзе вельмі карысна для вашай праблемы набору 510 00:22:42,930 --> 00:22:45,470 кожны раз, калі вы хочаце, каб разлічыць што-небудзь або калі вы 511 00:22:45,470 --> 00:22:47,880 хачу, каб адлюстраваць пэўны сімвалы або цэлыя лікі 512 00:22:47,880 --> 00:22:50,327 або маніпуляваць пэўныя сімвалы. 513 00:22:50,327 --> 00:22:52,160 Гэта збіраецца быць вельмі Важна, што вы ўсё 514 00:22:52,160 --> 00:22:55,140 ведаеце, як перамяшчацца табліцу ASCII. 515 00:22:55,140 --> 00:23:01,260 >> Так, напрыклад, у верхнім рэгістры A прадстаўлена на лік 65. 516 00:23:01,260 --> 00:23:04,207 І ў ніжнім рэгістры прадстаўлена 97. 517 00:23:04,207 --> 00:23:07,040 Таму важна ведаць, што Розніца паміж гэтымі двума значэннямі 518 00:23:07,040 --> 00:23:08,320 32. 519 00:23:08,320 --> 00:23:13,210 Часта, калі вам трэба канвертаваць з адзін да аднаго, розніца 32. 520 00:23:13,210 --> 00:23:15,710 І не хвалюйцеся, калі вы выгляд зьбянтэжаны пра гэта спачатку. 521 00:23:15,710 --> 00:23:20,230 Мы пойдзем над тым, як мы б выкарыстоўваць гэта ў рэальным кода. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> ДОБРА. 524 00:23:26,380 --> 00:23:30,770 Так што для тых з вас з наўтбукамі па-за, не саромейцеся, каб падцягнуць табліцу ASCII, 525 00:23:30,770 --> 00:23:36,030 таму што яны, верагодна, патрабуюць вы, хлопцы, каб спасылацца на 526 00:23:36,030 --> 00:23:38,100 тое, што персанажы. 527 00:23:38,100 --> 00:23:38,640 ДОБРА. 528 00:23:38,640 --> 00:23:42,840 >> Так, ведаючы, што некаторыя сімвалы адлюстроўваюцца на пэўныя нумары, 529 00:23:42,840 --> 00:23:47,240 калі б я працаваць толькі першы лінія, што code-- ў PRINTF а, 530 00:23:47,240 --> 00:23:50,900 ніжні рэгістр ў мінус, прапісныя А. Хто-небудзь 531 00:23:50,900 --> 00:23:55,880 ёсць здагадка аб тым, што будзе друк з экрана прама цяпер? 532 00:23:55,880 --> 00:23:58,190 >> Такім чынам, перш за ўсё, тое, што робіць Малыя ўяўляюць? 533 00:23:58,190 --> 00:24:00,990 Які лік з'яўляецца тое, што кадуецца ў табліцы ASCII. 534 00:24:00,990 --> 00:24:01,490 На жаль? 535 00:24:01,490 --> 00:24:02,630 >> АЎДЫТОРЫЯ: 97? 536 00:24:02,630 --> 00:24:03,630 >> ANDI Пэн: 97, вялікі. 537 00:24:03,630 --> 00:24:05,077 І тое, што ў верхнім рэгістры A? 538 00:24:05,077 --> 00:24:06,330 >> АЎДЫТОРЫЯ: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI Пэн: Так што 97 мінус 65? 540 00:24:08,255 --> 00:24:09,227 >> АЎДЫТОРЫЯ: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI Пэн: ОК. 542 00:24:09,810 --> 00:24:13,530 Так што вы, хлопцы, думаеце, што адбудзецца, калі я ўваход, радок кода 543 00:24:13,530 --> 00:24:14,670 у маім кампутары? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> АЎДЫТОРЫЯ: [неразборліва]. 546 00:24:19,896 --> 00:24:21,020 ANDI Пэн: На ​​жаль, гаварыць. 547 00:24:21,020 --> 00:24:22,520 Не турбуйцеся. 548 00:24:22,520 --> 00:24:25,750 Гэта вельмі бяспечна серада, мінус камера. 549 00:24:25,750 --> 00:24:27,550 Мы ўсе, мэтай якіх без клопатаў. 550 00:24:27,550 --> 00:24:30,940 Проста мы ўсе збіраемся рабіць выгляд, як гэта проста нам астуджэння ў гэтым пакоі. 551 00:24:30,940 --> 00:24:31,480 Не турбуйцеся. 552 00:24:31,480 --> 00:24:33,410 Ні адно пытанне не з'яўляецца занадта глупства. 553 00:24:33,410 --> 00:24:35,300 Адказу не дурны адказ. 554 00:24:35,300 --> 00:24:38,260 Я, верагодна, будзе рабіць памылкі падчас майго навучання. 555 00:24:38,260 --> 00:24:40,740 Сур'ёзна, хлопцы, проста ляпнуць гэта. 556 00:24:40,740 --> 00:24:43,092 Будзьце ўпэўненыя ў сабе, вы ведаеце? 557 00:24:43,092 --> 00:24:43,800 Так што гэта было? 558 00:24:43,800 --> 00:24:47,990 Хто сказаў, што апошні адказ? 559 00:24:47,990 --> 00:24:48,540 ДОБРА. 560 00:24:48,540 --> 00:24:50,380 Крычыце, што прыгожа і зразумела. 561 00:24:50,380 --> 00:24:51,220 >> АЎДЫТОРЫЯ: 32? 562 00:24:51,220 --> 00:24:51,850 >> ANDI Пэн: 32. 563 00:24:51,850 --> 00:24:54,141 ОК, давайце запусцім гэты код і ўбачыць, калі гэта тое, што адбываецца. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 ДОБРА. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Такім чынам, як вы, хлопцы, можаце выгляд см, тыповы абазначэння Я 568 00:25:06,360 --> 00:25:12,250 наладзіць тут, як мы будзе выкарыстоўваць якой-небудзь праграмы ў нашым кампутары. 569 00:25:12,250 --> 00:25:14,770 У нас ёсць асноўнай функцыяй ў нашай асноўнай функцыі. 570 00:25:14,770 --> 00:25:17,265 Я проста хачу, каб скапіяваць і устаўце гэты радок кода. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Таксама будзьце асцярожныя, калі вы, хлопцы, капіяванні і ўстаўкі код. 573 00:25:23,540 --> 00:25:28,750 Часам некаторыя аператары ня абклейваць правільна. 574 00:25:28,750 --> 00:25:31,397 У гэтым выпадку, мінус Знак быў на самай справе працяжнік. 575 00:25:31,397 --> 00:25:32,980 І таму кампутар не забраць яго. 576 00:25:32,980 --> 00:25:35,870 Так што мне прыйшлося вярнуцца і фізічна перадрукоўваць, што. 577 00:25:35,870 --> 00:25:37,846 Толькі будзьце асцярожныя, калі вы, хлопцы, робіце гэта. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> ДОБРА. 580 00:25:42,660 --> 00:25:43,980 Мы збіраемся запусціць гэта тут. 581 00:25:43,980 --> 00:25:45,670 Такім чынам, мы збіраемся, каб кампакт-дыска ў нашай раздел2. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Я назваў гэтую праграму asciimath. 584 00:25:52,030 --> 00:25:55,690 Так што памятаеце, калі мы бяжым любы Праграма, мы хочам, каб скампіляваць яго 585 00:25:55,690 --> 00:25:57,150 запусціўшы яго праз наш маркі. 586 00:25:57,150 --> 00:26:00,030 І тады мы сапраўды хочам працаваць Праграма робячы кропка-слэш. 587 00:26:00,030 --> 00:26:01,280 Такім чынам, мы збіраемся, каб ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Права, мы ідзем. 590 00:26:06,590 --> 00:26:07,410 І мы бачым, 32. 591 00:26:07,410 --> 00:26:07,930 Добра зроблена. 592 00:26:07,930 --> 00:26:10,340 Вы заслугоўваеце цукерку. 593 00:26:10,340 --> 00:26:11,160 Цукеркі для вас. 594 00:26:11,160 --> 00:26:11,900 Выбачайце. 595 00:26:11,900 --> 00:26:13,100 Добра. 596 00:26:13,100 --> 00:26:13,670 ДОБРА. 597 00:26:13,670 --> 00:26:18,070 Такім чынам, мы можам вярнуцца да нашага прыкладу тут. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Ааа, няма. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Ааа. 602 00:26:31,090 --> 00:26:32,490 ДОБРА. 603 00:26:32,490 --> 00:26:34,610 Я проста хачу, каб трымаць яго так. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 ДОБРА. 606 00:26:51,240 --> 00:26:51,740 ДОБРА. 607 00:26:51,740 --> 00:26:55,340 Такім чынам, як вы, хлопцы, можаце ўбачыць, што мы можам зрабіць шмат вельмі цікавых рэчаў, 608 00:26:55,340 --> 00:26:58,880 шмат вельмі цікавых рэчаў, шмат вельмі складаныя рэчы з удзелам 609 00:26:58,880 --> 00:27:02,720 Сімвалы ASCII і лічбы. 610 00:27:02,720 --> 00:27:05,890 Пасля таго, як вы сядайце на лінію пяць, што гэта шмат, каб прытрымлівацца. 611 00:27:05,890 --> 00:27:07,640 Мы не збіраемся ісці праз секцыю. 612 00:27:07,640 --> 00:27:10,720 Не саромейцеся, калі вы можаце, Прычына гэта на паперы 613 00:27:10,720 --> 00:27:14,750 у першую чаргу на тое, што павінна быць, калі адбываецца Вы ўвялі такога радка значэнняў. 614 00:27:14,750 --> 00:27:19,720 Напрыклад, у апошнім лініі, мы маем z-- які ўяўляе пэўны number-- 615 00:27:19,720 --> 00:27:24,740 a-- які таксама ўяўляе сабой некаторыя number-- плюс 1 модулю 26 616 00:27:24,740 --> 00:27:26,750 плюс ніжні рэгістр а. 617 00:27:26,750 --> 00:27:29,220 >> Калі вы, хлопцы, працягвайце чытанне праз іх, вам 618 00:27:29,220 --> 00:27:34,009 можна ўбачыць ўзор прыдумаць у як мы маніпуляваць код. 619 00:27:34,009 --> 00:27:36,050 Я вельмі, вельмі рэкамендую пасля падзелу вы ўсё 620 00:27:36,050 --> 00:27:38,160 хлопцы ісці наперад і ўваход тыя, усё ў вашым кампутары 621 00:27:38,160 --> 00:27:40,060 і паглядзець, якія нумары выходзяць 622 00:27:40,060 --> 00:27:43,090 і разважаючы, чаму праз тыя адбываецца, таму што для psets 623 00:27:43,090 --> 00:27:45,060 гэта будзе сапраўды важна для вас, каб зразумець, 624 00:27:45,060 --> 00:27:47,132 чаму некаторыя рэчы здараюцца. 625 00:27:47,132 --> 00:27:48,590 Усе гэтыя слайды будзе онлайн. 626 00:27:48,590 --> 00:27:51,510 Так што не турбуйцеся пра спробу фізічна капіяваць нататкі. 627 00:27:51,510 --> 00:27:52,510 Онлайн Усе ст. 628 00:27:52,510 --> 00:27:54,050 Гэта само па сабе падзел будзе онлайн. 629 00:27:54,050 --> 00:27:57,500 Усе мой зыходны код, што Я бягу будзе онлайн. 630 00:27:57,500 --> 00:27:58,180 Так. 631 00:27:58,180 --> 00:27:59,430 Ты ўсё яшчэ ёсць пытанні? 632 00:27:59,430 --> 00:28:00,587 АЎДЫТОРЫЯ: Што модулю? 633 00:28:00,587 --> 00:28:01,170 ANDI Пэн: ОК. 634 00:28:01,170 --> 00:28:05,620 Так модулю з'яўляецца аператарам, які збіраецца даволі важна PSET вашы хлопцы гульнявая 635 00:28:05,620 --> 00:28:06,690 тут. 636 00:28:06,690 --> 00:28:12,280 Такім чынам, шлях, які аператары у З і ў праграмаванні працы 637 00:28:12,280 --> 00:28:16,360 з'яўляецца тое, што ў вас ёсць тое, што называецца сімвал падзелу і сімвалам модуль, 638 00:28:16,360 --> 00:28:18,350 які гэтак жа, як знак адсотка. 639 00:28:18,350 --> 00:28:24,840 >> Такім чынам, у C, калі вы робіце цэлае падзяліць на цэлы лік з касой рысы, 640 00:28:24,840 --> 00:28:27,720 З мае тэндэнцыю патрабуецца выразаць ад усіх дзесятковых знакаў, 641 00:28:27,720 --> 00:28:30,290 таму што цэлае хоча пераўтварыць у цэлы лік. 642 00:28:30,290 --> 00:28:33,550 Гэта не захоча быць двайны з кучай знакаў пасля коскі ўсе пасля яго. 643 00:28:33,550 --> 00:28:39,322 >> Так што, калі я 3 падзелены на 2, гэта будзе адрэзаць 0,5 і проста даць вам 1. 644 00:28:39,322 --> 00:28:41,530 Дык вось што-то, каб быць вельмі асцярожныя, калі вы 645 00:28:41,530 --> 00:28:45,294 рабіць якой-небудзь матэматыкі ў праграмаванні, з'яўляецца тое, што колькасць вы атрымаеце 646 00:28:45,294 --> 00:28:47,210 можа быць лік што вы думаеце, 647 00:28:47,210 --> 00:28:50,190 таму акругленне ў вашым Апошняе PSET так важна. 648 00:28:50,190 --> 00:28:51,980 >> Модулю дае рэшту. 649 00:28:51,980 --> 00:28:56,200 Так, напрыклад, калі б я зрабіў 3 модулю 2-- так 3 знак адсотка 2-- 650 00:28:56,200 --> 00:28:58,020 гэта дасьць вам астатнюю частку гэтага. 651 00:28:58,020 --> 00:29:00,460 Так 3 дзеліцца на 2 1,5. 652 00:29:00,460 --> 00:29:01,410 Гэта 1 рэшту 1. 653 00:29:01,410 --> 00:29:04,600 Гэта дасць вам 1, які з'яўляецца астаткам гэтага. 654 00:29:04,600 --> 00:29:07,361 >> Так што, калі вы, хлопцы, рухаецца па табліцы ASCII, 655 00:29:07,361 --> 00:29:09,735 па модулю будзе ў канчатковым выніку тое, што вельмі важна, 656 00:29:09,735 --> 00:29:11,240 і мы абмяркуем, што пазней. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> ДОБРА. 659 00:29:19,040 --> 00:29:27,300 Так што-то, што з'яўляецца даволі, даволі новы і даволі унікальны 660 00:29:27,300 --> 00:29:31,920 што мы абмяркоўвалі на гэтым тыдні канцэпцыя аб тым, што масіў з'яўляецца. 661 00:29:31,920 --> 00:29:34,370 Так масіў першым тып структуры дадзеных 662 00:29:34,370 --> 00:29:36,320 што мы збіраемся сутыкнуцца ў гэтым класе. 663 00:29:36,320 --> 00:29:40,010 Усе структуры дадзеных з'яўляецца свайго роду адвольным, 664 00:29:40,010 --> 00:29:43,370 літаральна рэчы, як структуры што мы, як праграмісты стварылі, 665 00:29:43,370 --> 00:29:47,890 што мы ўклалі ў нашым кодзе, што можа ўтрымліваць іншыя кавалкі кода. 666 00:29:47,890 --> 00:29:51,090 >> Так што ў гэтым сэнсе, array-- думаю пра яго, як картатэцы, 667 00:29:51,090 --> 00:29:53,470 дзе, калі вы адкрыць адрозніваецца паліцы вашага картатэцы, 668 00:29:53,470 --> 00:29:55,630 Вы можаце атрымаць доступ розныя рэчы. 669 00:29:55,630 --> 00:29:58,630 У памяці масіў проста робіць тое ж самае на вашым кампутары. 670 00:29:58,630 --> 00:30:01,730 Вы можаце мець рознае blocks-- мы называць іх indices-- масіва. 671 00:30:01,730 --> 00:30:04,210 Гэта проста, як блок, палка памяці 672 00:30:04,210 --> 00:30:07,580 што мы стварылі ў вашай кампутар, вы можаце ўвесці 673 00:30:07,580 --> 00:30:10,270 некаторыя рэчы ў розных прасторах. 674 00:30:10,270 --> 00:30:18,000 >> Так з масівам, вы заўсёды павінны specify-- 675 00:30:18,000 --> 00:30:22,360 Вы павінны паказаць аб'яўленні Масіў у наступным фармаце. 676 00:30:22,360 --> 00:30:24,290 Вы збіраецеся спачатку пазначыць тып дадзеных 677 00:30:24,290 --> 00:30:25,831 што вы хочаце стварыць масіва. 678 00:30:25,831 --> 00:30:28,870 Калі я хачу масіў цэлых лікаў, Я збіраюся паставіць Int прама там. 679 00:30:28,870 --> 00:30:32,079 Калі я хачу масіў радкоў, Я збіраюся паставіць струны там, 680 00:30:32,079 --> 00:30:34,995 імя вашага масіва, а затым Вы будзеце мець квадратныя дужкі. 681 00:30:34,995 --> 00:30:39,580 А ўнутры квадратных дужак, вы будзе мець памер вашага масіва. 682 00:30:39,580 --> 00:30:42,900 >> Нешта, што сапраўды важна для майце на ўвазе, калі стварэння масіваў 683 00:30:42,900 --> 00:30:46,530 што, як толькі вы ствараеце Масіў, што памер не можа змяніцца. 684 00:30:46,530 --> 00:30:50,180 Так што, калі вы ведаеце, што зараз ў вас ёсць масіў памерам 10, 685 00:30:50,180 --> 00:30:54,550 Вы ведаеце, што я буду мець 10 вочак у межах або 10 паказчыкаў у межах гэтага масіва, 686 00:30:54,550 --> 00:30:56,830 і гэта ніколі не збіраецца пашырыць або паменшыць 687 00:30:56,830 --> 00:30:59,850 незалежна ад таго, што, і што ёсць У цяперашні час за ўсё ў 10 кварталах прасторы 688 00:30:59,850 --> 00:31:04,490 выдзелена ў вашай памяці, якая можа захоўваць да 10 рэчаў, таго, што вы ўклалі. 689 00:31:04,490 --> 00:31:08,790 >> Такім чынам, у гэтым выпадку, тып дадзеных масіва, структура дадзеных, якая з'яўляецца масівам 690 00:31:08,790 --> 00:31:13,392 вельмі адрозніваецца ад некаторых іншых мы пакрываць пазней у гэтым курсе. 691 00:31:13,392 --> 00:31:15,170 Так. 692 00:31:15,170 --> 00:31:20,080 Напрыклад, калі вы хочаце, каб стварыць масіў памерам 3, 693 00:31:20,080 --> 00:31:23,670 змяшчаюцца зменныя integer-- ой, прабачце, з temperature-- 694 00:31:23,670 --> 00:31:25,640 і тэмпература, з Вядома, гэта цэлы лік. 695 00:31:25,640 --> 00:31:28,710 >> Такім чынам, мы стварылі б Int, якая з'яўляецца Тып дадзеных, што мы хочам захаваць. 696 00:31:28,710 --> 00:31:32,680 Мы збіраемся называць гэта тэмператур дзеля наменклатуры назваў 697 00:31:32,680 --> 00:31:34,200 тое, што мы ўсе зразумелі. 698 00:31:34,200 --> 00:31:35,900 І мы збіраемся, каб мець квадратныя дужкі. 699 00:31:35,900 --> 00:31:37,200 І мы хочам, тры нумары. 700 00:31:37,200 --> 00:31:39,000 Такім чынам, мы збіраемся паставіць тры ўнутры яго. 701 00:31:39,000 --> 00:31:41,041 >> Нешта, што сапраўды Важна мець на ўвазе, 702 00:31:41,041 --> 00:31:43,530 з'яўляецца тое, што масівы роўныя нулю індэксуюцца. 703 00:31:43,530 --> 00:31:46,410 Усё гэта азначае, што вы пачаць з індэксам 0, 704 00:31:46,410 --> 00:31:49,800 і вы падбеглі праз памер масіва мінус 1. 705 00:31:49,800 --> 00:31:52,730 Так, напрыклад, тут, мы ёсць масіў памерам 3. 706 00:31:52,730 --> 00:31:54,680 Гэта збіраецца быць у стане правесці тры значэнні. 707 00:31:54,680 --> 00:31:57,450 Але лічбы, якія themselves-- Колькасць масіў, што індэкс, 708 00:31:57,450 --> 00:32:00,271 масіў, з'яўляюцца ад 0 да 2. 709 00:32:00,271 --> 00:32:03,520 Так хлопцы, сапраўды, на самай справе асцярожныя пры Вы збіраецеся праз вашыя праблемы, усталяваным 710 00:32:03,520 --> 00:32:06,500 і стварэння якіх-небудзь масіва, таму што шмат часу гэта 711 00:32:06,500 --> 00:32:08,490 сапраўды, вельмі лёгка забыцца, што. 712 00:32:08,490 --> 00:32:11,840 Я на самой справе не маюць індэкс з 3, што я ў цяперашні час толькі 713 00:32:11,840 --> 00:32:13,130 маюць індэкс 2. 714 00:32:13,130 --> 00:32:16,046 І калі вы паспрабуеце доступ да трэцяга індэкс, 715 00:32:16,046 --> 00:32:18,170 гэта будзе тое, што называецца нуль-тэрмінатар. 716 00:32:18,170 --> 00:32:19,990 Гэта не збіраецца на самай справе існуе ў масіве. 717 00:32:19,990 --> 00:32:21,781 І кампутар не спадабаецца, што. 718 00:32:21,781 --> 00:32:24,570 Так што будзьце асцярожныя, калі вы звяртаецеся рэчы толькі 719 00:32:24,570 --> 00:32:28,070 каб пераканацца, што вы памятаеце што масівы роўныя нулю, індэксаваная. 720 00:32:28,070 --> 00:32:28,880 >> ДОБРА. 721 00:32:28,880 --> 00:32:34,030 Такім чынам, першы прыклад з'яўляецца толькі адзін са спосабаў стварэння масіва. 722 00:32:34,030 --> 00:32:36,790 Другі прыклад у мяне ёсць Ніжэй толькі асобны шлях 723 00:32:36,790 --> 00:32:40,210 стварэння што тое ж самае дадзеныя Структура, што мы толькі што ўведзены. 724 00:32:40,210 --> 00:32:44,347 Такім чынам, замест фізічна працуе праз і пакласці ў тэмпературы ад 0 725 00:32:44,347 --> 00:32:47,180 роўная б там ні было, тэмпература 1 роўная заўгодна, тэмпературы 2 роўных 726 00:32:47,180 --> 00:32:50,950 усе, я мог на самай справе проста непасрэдна ствараць усё гэта ў адным радку 727 00:32:50,950 --> 00:32:53,010 ў квадратных дужках тэмпературы роўная. 728 00:32:53,010 --> 00:32:56,536 >> І заўважце, у гэтым выпадку, вам не трэба каб паказаць, як вялікі ваш масіў, 729 00:32:56,536 --> 00:32:59,160 таму што кампутар збіраецца прайсці і паглядзець, што там 730 00:32:59,160 --> 00:33:01,570 тры элемента ў гэтых фігурных дужках. 731 00:33:01,570 --> 00:33:04,000 І гэта будзе ведаць, ОК, Мне патрэбен масіў памерам 3. 732 00:33:04,000 --> 00:33:07,440 Вы не будзеце мець патрэбу, каб уваход гэта наступным чынам. 733 00:33:07,440 --> 00:33:10,170 >> А таксама, так, менавіта так. 734 00:33:10,170 --> 00:33:12,610 Хто-небудзь ёсць пытанні пра тое, як мы робім масівы 735 00:33:12,610 --> 00:33:17,391 ці як структура з масіва працуе? 736 00:33:17,391 --> 00:33:17,890 Так. 737 00:33:17,890 --> 00:33:18,806 >> АЎДЫТОРЫЯ: [неразборліва]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI Пэн: Так, менавіта так. 740 00:33:22,690 --> 00:33:26,150 Так што, калі вы былі аб'явіць і ініцыялізаваць масіў наступны метад, 741 00:33:26,150 --> 00:33:28,477 які з'яўляецца другім спосабам, Вы можаце проста пакінуць іх. 742 00:33:28,477 --> 00:33:30,310 І кампутар аўтаматычна ведае, што гэта 743 00:33:30,310 --> 00:33:33,950 трэба палічыць, колькі элементаў якія ў тыя фігурныя дужкі, падзеленыя 744 00:33:33,950 --> 00:33:34,930 коскамі. 745 00:33:34,930 --> 00:33:37,517 >> Дык вось яны бачаць 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Такім чынам, кампутар ведае, пра, ёсць тры колькасці. 747 00:33:39,600 --> 00:33:45,960 Я ведаю, каб стварыць імя масіва Тэмпература з трыма элементамі ў ім. 748 00:33:45,960 --> 00:33:46,590 Добры пытанне. 749 00:33:46,590 --> 00:33:47,090 Так. 750 00:33:47,090 --> 00:33:51,590 >> АЎДЫТОРЫЯ: Хіба гэта не магчыма, каб стварыць масіў з рознымі тыпамі дадзеных 751 00:33:51,590 --> 00:33:53,021 якія могуць быць у яго ўвайшлі? 752 00:33:53,021 --> 00:33:56,746 Напрыклад, з цэлымі лікамі [неразборліва]? 753 00:33:56,746 --> 00:33:59,120 ANDI Пэн: Для мэтаў гэтага класа, няма, прама цяпер. 754 00:33:59,120 --> 00:34:03,070 Пры стварэнні дадзеных структураваць як масіў, 755 00:34:03,070 --> 00:34:04,990 вы кажаце кампутар, эй, ты мне патрэбен 756 00:34:04,990 --> 00:34:08,159 вылучыць столькі памяць у маім цвёрдым дыску, 757 00:34:08,159 --> 00:34:10,690 з кожнага вочка быць Пэўную колькасць бітаў. 758 00:34:10,690 --> 00:34:13,429 >> Памятаеце, што мы даведаліся ў тыдзень нуля, што розныя дадзеныя 759 00:34:13,429 --> 00:34:15,300 тыпы маюць розныя памеры? 760 00:34:15,300 --> 00:34:17,630 Так, напрыклад, радкі гэта рознае колькасць 761 00:34:17,630 --> 00:34:20,719 прасторы, чым гольца, які гэта іншае аб'ём прасторы 762 00:34:20,719 --> 00:34:21,830 ад цэлага ліку. 763 00:34:21,830 --> 00:34:25,534 І так, калі вы не пакажаце, і вы зьмешваць і спалучаць, якія віды зменных 764 00:34:25,534 --> 00:34:27,659 ў вас ёсць кампутар-х будзе вельмі зьбянтэжаны. 765 00:34:27,659 --> 00:34:29,950 І гэта не будзе ведаць, колькі памяці, каб даць вам. 766 00:34:29,950 --> 00:34:32,480 Такім чынам, для мэт правы Цяпер, кампутары могуць толькі 767 00:34:32,480 --> 00:34:36,120 прызнаць адзін тып масіва. 768 00:34:36,120 --> 00:34:37,940 Добры пытанне. 769 00:34:37,940 --> 00:34:38,440 ДОБРА. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Так натуральна, Другое пытанне ў нас ёсць 772 00:34:47,120 --> 00:34:50,760 , Ну, цяпер, калі мы стварылі Масіў і мы паставіць усе гэтыя рэчы 773 00:34:50,760 --> 00:34:54,190 у масіве, як мы будзе ў стане атрымаць доступ да яго? 774 00:34:54,190 --> 00:34:59,710 Такім чынам, тыповая структура, што мы заўсёды доступ да масіву наш цудоўны цыкл. 775 00:34:59,710 --> 00:35:03,830 Я абяцаю вам, хлопцы, што мы будзем бачачы шмат гэтага чалавека тут. 776 00:35:03,830 --> 00:35:06,470 >> Па сутнасці, у любы час вы хочаце для ўводу значэння ў масіў 777 00:35:06,470 --> 00:35:09,940 ці вы хочаце, каб доступ да іх, то Лепшы спосаб зрабіць гэта для цыклу, 778 00:35:09,940 --> 00:35:13,730 таму што ў цыкле, вы ведаю, колькі разоў вы 779 00:35:13,730 --> 00:35:17,290 збіраецца хочаце запусціць праз масіў, таму што ў вас ёсць прыпынку выданне, ці не так? 780 00:35:17,290 --> 00:35:19,680 І кожны раз, калі вы запусціце праз, вы можаце атрымаць доступ 781 00:35:19,680 --> 00:35:21,310 іншы элемент масіва. 782 00:35:21,310 --> 00:35:26,920 >> А таксама, гэта прычына, чаму, як правіла, мы пачынаем для завес на значэнне 0, 783 00:35:26,920 --> 00:35:30,080 таму што, калі вы атрымліваеце доступ масівы, Вы можаце атрымаць доступ да нулявой індэкс. 784 00:35:30,080 --> 00:35:32,070 І так паралелі вельмі прыгожа. 785 00:35:32,070 --> 00:35:35,295 Вы, хлопцы, магчыма, хацелі пісаць для INT я роўная 1. 786 00:35:35,295 --> 00:35:37,330 Я менш або роўна 3. 787 00:35:37,330 --> 00:35:39,890 >> Але гэта не будзе працаваць зусім як Ну вось, таму што вы толькі 788 00:35:39,890 --> 00:35:42,010 ёсць элементы 0, 1, і 2. 789 00:35:42,010 --> 00:35:45,815 І таму, калі вы былі, каб пачаць ваш I у элеменце 1, 2 і 3, 790 00:35:45,815 --> 00:35:48,440 Вы збіраецеся ў канчатковым выніку працуе з межаў вашага масіва, 791 00:35:48,440 --> 00:35:50,440 і дрэнныя рэчы будуць адбывацца. 792 00:35:50,440 --> 00:35:54,480 >> Таму я спадзяюся, што вы, хлопцы ўбачыць Segue чаму ў папярэдніх класах 793 00:35:54,480 --> 00:35:58,560 мы вучылі вас, хлопцы, як запусціць і адфарматаваць цыкл так, што мы былі. 794 00:35:58,560 --> 00:36:01,900 Гэта таму, што, зараз мы перайшлі ў масівы, 795 00:36:01,900 --> 00:36:06,760 Вы можаце бачыць, чаму надае 0 Сама вельмі прыгожа доступу. 796 00:36:06,760 --> 00:36:09,880 >> Такім чынам, як мы робім гэта that-- Я проста друкуючы яго тут дзеля 797 00:36:09,880 --> 00:36:10,830 друкаваць яго. 798 00:36:10,830 --> 00:36:13,750 Але ў мяне ёсць запаўняльніка, коску. 799 00:36:13,750 --> 00:36:15,645 І фактычная Доступ частка адбываецца. 800 00:36:15,645 --> 00:36:17,520 Назва масіва назвалі тэмпература. 801 00:36:17,520 --> 00:36:21,570 Так што гэта тэмпература і я-й элемент масіва. 802 00:36:21,570 --> 00:36:24,400 >> Так як цыкл праходзіць праз, ён збіраецца пачаць з 0. 803 00:36:24,400 --> 00:36:27,640 Гэта адбываецца, каб раздрукаваць 0-й індэкс масіва. 804 00:36:27,640 --> 00:36:29,599 Тады гэта будзе друкаваць з першага элемента. 805 00:36:29,599 --> 00:36:31,431 Тады гэта будзе друкаваць з другога. 806 00:36:31,431 --> 00:36:32,880 А потым мы збіраемся зламаць. 807 00:36:32,880 --> 00:36:36,718 Гэта ўсё ясна, на як гэта адбываецца? 808 00:36:36,718 --> 00:36:37,217 Выдатна. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> Добра. 811 00:36:44,100 --> 00:36:47,270 Так вось у нас ёсць спосаб кажа, што калі мы не хочам, 812 00:36:47,270 --> 00:36:50,020 на жорсткі-код in-- мяне як праграміста. 813 00:36:50,020 --> 00:36:53,320 Я не хачу, каб на самой справе фізічна пакласці ў кожную асобны элемент 814 00:36:53,320 --> 00:36:54,020 гэтага масіва. 815 00:36:54,020 --> 00:36:56,500 Калі б я хацеў, каб замест ёсць карыстацкі ўвод значэння, 816 00:36:56,500 --> 00:36:58,100 што лепшы спосаб зрабіць гэта? 817 00:36:58,100 --> 00:37:00,920 >> Ну, вось я стварыў гэта выдатны функцыя, 818 00:37:00,920 --> 00:37:03,560 у якім я магу аб'явіць масіў. 819 00:37:03,560 --> 00:37:06,210 Так INT scores-- давайце проста сказаць, што мы хочам зрабіць 820 00:37:06,210 --> 00:37:10,660 масіў, які правёў ацэнкі ўсіх 18 адсюль у гэтым раздзеле студэнтаў. 821 00:37:10,660 --> 00:37:12,670 Я думаю, што мы атрымалі крыху больш за 18 дзяцей сёння. 822 00:37:12,670 --> 00:37:16,460 Але дзеля атрыманымі ў прыклад, у давайце выкажам здагадку, у нас было 18 гадоў. 823 00:37:16,460 --> 00:37:21,580 Я б стварыць дзесяткі імя масіва з Тып Унутраныя, таму ацэнкі, вядома, 824 00:37:21,580 --> 00:37:22,987 з'яўляюцца колькасці. 825 00:37:22,987 --> 00:37:24,820 І я збіраюся мець 18 ў квадратных дужках, 826 00:37:24,820 --> 00:37:29,900 таму што гэта, колькі студэнтаў я хачу, каб мець магчымасць захоўваць мноства. 827 00:37:29,900 --> 00:37:32,206 >> І тое, як я запоўніць масіў, што я 828 00:37:32,206 --> 00:37:35,572 запусціць яго праз цыкл, з Вядома, з 0 мой 0-я індэксам. 829 00:37:35,572 --> 00:37:38,030 А потым з 18 Быць маім прыпынку выданне, таму што ёсць 830 00:37:38,030 --> 00:37:39,690 18 элементаў у масіве. 831 00:37:39,690 --> 00:37:44,620 А потым я збіраюся зрабіць Printf, увядзіце забіў student-- балбатня балбатня. 832 00:37:44,620 --> 00:37:51,171 >> Можа хто-небудзь сказаць мне, чаму тут я друк I плюс 1 і няма? 833 00:37:51,171 --> 00:37:52,920 Гэта свайго роду хітрасць Пытанне, на самай справе не. 834 00:37:52,920 --> 00:37:56,020 Гэта на самай справе не фізічна ўплывае на ход кода. 835 00:37:56,020 --> 00:37:56,520 Так. 836 00:37:56,520 --> 00:37:57,909 >> АЎДЫТОРЫЯ: [неразборліва] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI Пэн: Так, менавіта так. 838 00:37:58,950 --> 00:38:02,620 Гэта крыху няёмка сказаць, эй, ты студэнт 0-я ў гэтым класе. 839 00:38:02,620 --> 00:38:03,780 Гэта крыху дзіўна. 840 00:38:03,780 --> 00:38:08,340 Так нас, як людзей, на самай справе не як думаць пра тое, як кампутары думаць. 841 00:38:08,340 --> 00:38:10,930 Так што, хоць у кампутар, гэта захоўванне значэнняў 842 00:38:10,930 --> 00:38:13,310 у 0-й, калі індэкс мы людзі, мы сапраўды ня 843 00:38:13,310 --> 00:38:15,520 хацеў бы спаслацца на сябе нуля. 844 00:38:15,520 --> 00:38:18,119 Таму, калі я проста раздрукаваць, што Я збіраюся друкаваць і дадаваць 845 00:38:18,119 --> 00:38:19,410 1 толькі для яснасці. 846 00:38:19,410 --> 00:38:22,447 Так што, калі я друкую, я буду магчымасць друку студэнтаў з 1 па 18. 847 00:38:22,447 --> 00:38:24,530 Гэта на самай справе не ўплываюць на бег кода 848 00:38:24,530 --> 00:38:27,110 у любым выпадку, то, як я друкую. 849 00:38:27,110 --> 00:38:30,380 >> Але будзьце асцярожныя, калі вы фактычна доступу масіва. 850 00:38:30,380 --> 00:38:32,780 Калі вы бачыце вынікі я, заўважыць тут на самай справе я 851 00:38:32,780 --> 00:38:38,200 доступ да 0-й індэкс і ня 1 плюс 0-- або 1 плюс 1, 852 00:38:38,200 --> 00:38:45,530 У гэтым выпадку, так індэкс што гэта на самай справе зразумела. 853 00:38:45,530 --> 00:38:48,870 Гэта ўсё накшталт ОК як гэта праходзіць праз 854 00:38:48,870 --> 00:38:51,470 і з кожным індэксам Я пакласці значэнне ў масіў 855 00:38:51,470 --> 00:38:55,340 і стварэнне масіва з 18 лікаў што карыстальнік будзе ўводзіць? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 ДОБРА. 858 00:38:59,821 --> 00:39:00,321 Прахладны. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> ДОБРА. 861 00:39:07,400 --> 00:39:12,220 Цяпер мы пераходзім у тое, што гэта даволі стаўленне да гэтай часткі устаноўленага таксама. 862 00:39:12,220 --> 00:39:15,020 Я ведаю, у лекцыі, David-- прабачце, у вас пытанне? 863 00:39:15,020 --> 00:39:16,840 >> АЎДЫТОРЫЯ: Ці можаце вы павялічыць яго? 864 00:39:16,840 --> 00:39:18,080 >> ANDI Пэн: Так, таму я паспрабаваў. 865 00:39:18,080 --> 00:39:18,788 Але я не ведаю. 866 00:39:18,788 --> 00:39:21,437 Па нейкай прычыне, гэта версія PowerPoint 867 00:39:21,437 --> 00:39:23,270 сапраўды не працуе а з дысплеем. 868 00:39:23,270 --> 00:39:25,260 Такім чынам, мы проста збіраемся трымаць яго, як гэта. 869 00:39:25,260 --> 00:39:27,280 Усё гэта будзе загружаны ў Інтэрнэце. 870 00:39:27,280 --> 00:39:28,218 Выбачайце, хлопцы. 871 00:39:28,218 --> 00:39:30,090 Так. 872 00:39:30,090 --> 00:39:30,980 ДОБРА. 873 00:39:30,980 --> 00:39:35,530 >> Такім чынам, мы можам таксама радка. 874 00:39:35,530 --> 00:39:39,320 Так што, калі вы, хлопцы, на самой справе notice-- I ведаю, Роб падышоў гэта ў той лекцыі 875 00:39:39,320 --> 00:39:43,652 што ён did-- радок на самай справе проста масіў сімвалаў, 876 00:39:43,652 --> 00:39:44,860 калі вы думаеце пра гэта, праўда? 877 00:39:44,860 --> 00:39:47,500 Радок гэтае імя або прапановы, альбо слова, праўда? 878 00:39:47,500 --> 00:39:52,975 >> Калі б я быў, каб стварыць радок з імем у Andi-- толькі маё імя, А-Н-Д-я. 879 00:39:52,975 --> 00:39:55,460 Вы думаеце, што з проста як адной зменнай. 880 00:39:55,460 --> 00:39:58,630 Але на самой справе, гэта разбіваецца у толькі масіў знакаў. 881 00:39:58,630 --> 00:40:01,910 Так ён атрымаў персанаж захоўваемая ў значэнні масіва. 882 00:40:01,910 --> 00:40:05,420 Ён атрымаў характар ​​п захоўваецца ў Другі індэкс і гэтак далей, і гэтак далей. 883 00:40:05,420 --> 00:40:08,660 >> Так такім чынам, мы на самай справе ёсць такі 884 00:40:08,660 --> 00:40:10,970 структуры ўсталяваць у месца для нашых струн. 885 00:40:10,970 --> 00:40:14,660 Дык вось, калі б я, каб увесці ў Слова "ёсць" - так радок слова роўная 886 00:40:14,660 --> 00:40:15,540 атрымаць радок. 887 00:40:15,540 --> 00:40:19,260 Калі б я быў, каб увесці слова "ёсць", што фізічна так, што мой кампутар 888 00:40:19,260 --> 00:40:21,870 захоўвае гэтую радок у маёй памяці. 889 00:40:21,870 --> 00:40:27,140 >> І калі б я хацеў, каб прабегчы, што і друк, што out-- так і для I ў 890 00:40:27,140 --> 00:40:30,890 роўная нуля, памятаеце, у лекцыі, мы тое, што пакрываецца называецца StrLen, 891 00:40:30,890 --> 00:40:32,990 або даўжыня радка. 892 00:40:32,990 --> 00:40:36,520 Таму што я на самой справе не ведаеце, як вялікі масіў 893 00:40:36,520 --> 00:40:38,210 з якой inputting-- карыстальніка 894 00:40:38,210 --> 00:40:40,370 >> Напрыклад, я ўводзяцца слова "ёсць", і я ведаю, 895 00:40:40,370 --> 00:40:41,870 гэта доўга трох знакаў, праўда? 896 00:40:41,870 --> 00:40:44,700 Так што я мог бы паставіць у тры там і ўсё будзе ў парадку. 897 00:40:44,700 --> 00:40:49,290 Але калі ваш карыстацкі ўвод чагосьці што гэта рознае колькасць значэнняў, 898 00:40:49,290 --> 00:40:52,760 Вы збіраецеся не зможа па-сапраўднаму ведаю, што калі вы программируете свой код. 899 00:40:52,760 --> 00:40:56,040 >> Такім чынам, шлях, які мы апрацоўваем тэстаў так гэта тое, што мы нешта 900 00:40:56,040 --> 00:41:00,070 называецца StrLen, што гэта проста функцыя які кажа вам, як доўга радок. 901 00:41:00,070 --> 00:41:02,080 Так STRLEN словы. 902 00:41:02,080 --> 00:41:03,470 Маё слова, гэта ёсць. 903 00:41:03,470 --> 00:41:05,990 п роўная STRLEN ў словы. 904 00:41:05,990 --> 00:41:08,930 Можа хто-небудзь сказаць мне, што гэта значэнне на самой справе тут? 905 00:41:08,930 --> 00:41:12,550 Што н які ўяўляе права Цяпер, у гэтым прыкладзе, калі б мне прыйшлося з'есці? 906 00:41:12,550 --> 00:41:13,530 >> АЎДЫТОРЫЯ: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI Пэн: 3, дакладна. 908 00:41:14,520 --> 00:41:18,820 Такім чынам, мы маем для INT я роўная нуля, п роўны 3, па сутнасці ,. 909 00:41:18,820 --> 00:41:22,355 І я маю намер запусціць пакуль гэта не менш, чым 3i ++. 910 00:41:22,355 --> 00:41:24,980 І гэта адбываецца, па сутнасці, перайсці праз і рабіць тое ж самае. 911 00:41:24,980 --> 00:41:26,979 Гэта адбываецца, каб раздрукаваць кожнае значэнне і дасць вам 912 00:41:26,979 --> 00:41:29,700 E-А-Т. Гэта проста, якія абазначаюць Іншы спосаб напісання. 913 00:41:29,700 --> 00:41:31,170 Гэта будзе вельмі карысна. 914 00:41:31,170 --> 00:41:31,670 Так. 915 00:41:31,670 --> 00:41:35,174 АЎДЫТОРЫЯ: Што перавагі здачы п роўная STRLEN слова ўнутры, што 916 00:41:35,174 --> 00:41:36,894 для контуру [неразборліва]? 917 00:41:36,894 --> 00:41:37,560 ANDI Пэн: Так. 918 00:41:37,560 --> 00:41:44,880 Так што, калі б я быў, мэтай якіх, напрыклад, сказаць, калі б я быў зрабіць гэта, а затым 919 00:41:44,880 --> 00:41:51,935 do-- oop--, што ў маім кодзе, было б на самай справе рабіць, як тое ж самае. 920 00:41:51,935 --> 00:41:55,060 Аднак, спосаб, якім патлумачыў Дэвід гэта падчас лекцыі, калі якія-небудзь з вас, хлопцы 921 00:41:55,060 --> 00:41:57,854 памятаеце, было тое, што, паколькі людзі, як праграмісты, 922 00:41:57,854 --> 00:42:00,270 Мы сапраўды імкнемся, каб Наша праграма Код, каб наш кампутар мае 923 00:42:00,270 --> 00:42:04,070 працаваць як мага менш, так што наш код не вельмі эфектыўным. 924 00:42:04,070 --> 00:42:06,850 >> Так што, калі я, што там, што будзе адбывацца праз мой цыкл 925 00:42:06,850 --> 00:42:10,790 з'яўляецца тое, што я ўпершыню абвясціць Пераменная з імем я будзе 0. 926 00:42:10,790 --> 00:42:13,350 Я збіраюся праверыць, ох, што такое StrLen словы? 927 00:42:13,350 --> 00:42:15,000 О, StrLen 3. 928 00:42:15,000 --> 00:42:16,191 Так я менш, чым тры? 929 00:42:16,191 --> 00:42:16,690 Так. 930 00:42:16,690 --> 00:42:17,870 Я збіраюся бегчы. 931 00:42:17,870 --> 00:42:21,130 >> А потым другі раз таму вакол цыкл, я іду, каб павялічыць I. 932 00:42:21,130 --> 00:42:22,550 я будзе адзін. 933 00:42:22,550 --> 00:42:25,600 І я маю намер праверыць, ох, але тое, што StrLen словы? 934 00:42:25,600 --> 00:42:26,839 О, гэта тры. 935 00:42:26,839 --> 00:42:29,880 І робіць гэта, здаецца, выгляд марнатраўна, кожны раз, калі вы запускаеце праз пятлю, 936 00:42:29,880 --> 00:42:33,340 каб правяраць функцыю, нават нягледзячы на ​​тое STRLEN словы 937 00:42:33,340 --> 00:42:35,490 ніколі не змяняе? 938 00:42:35,490 --> 00:42:38,590 >> Такім чынам, гэта дадатковае харчаванне для кампутара. 939 00:42:38,590 --> 00:42:42,180 Калі вы пачынаеце казаць пра рэчы, што мільярды і мільярды 940 00:42:42,180 --> 00:42:44,431 і мільярды месцаў доўга, уявіце кампутар 941 00:42:44,431 --> 00:42:47,430 таго, каб фізічна перажыць і праверыць усе, што кожны раз. 942 00:42:47,430 --> 00:42:53,170 Менавіта таму, каб проста дзеля эфектыўнасці, 943 00:42:53,170 --> 00:42:57,620 мы, як правіла, толькі зрабіць гэта, таму што такім чынам мы толькі 944 00:42:57,620 --> 00:42:59,850 выкліку функцыі адзін раз у пачатку, 945 00:42:59,850 --> 00:43:01,766 і што кожны раз, калі ён праходзіць праз гэта адбываецца 946 00:43:01,766 --> 00:43:03,789 для захоўвання значэння 3 там, што вы не 947 00:43:03,789 --> 00:43:05,330 павінны пастаянна правяраць кожны раз. 948 00:43:05,330 --> 00:43:05,743 Так. 949 00:43:05,743 --> 00:43:06,409 >> АЎДЫТОРЫЯ: Выбачайце. 950 00:43:06,409 --> 00:43:09,070 Проста [неразборліва]. 951 00:43:09,070 --> 00:43:13,985 Можа вы Int N роўны StrLen і пакласці што вышэй вонкавага боку для контуру 952 00:43:13,985 --> 00:43:15,364 а? 953 00:43:15,364 --> 00:43:16,030 ANDI Пэн: Так. 954 00:43:16,030 --> 00:43:17,100 Вы можаце зрабіць гэта, абсалютна. 955 00:43:17,100 --> 00:43:19,970 Прычына, чаму мы павінны яго ў тут таму што шлях для цыклу прац 956 00:43:19,970 --> 00:43:23,500 з'яўляецца тое, што гэта называецца лакальная пераменная у тым сэнсе, 957 00:43:23,500 --> 00:43:26,150 што ўсе вы стварэнне ўнутры цыкл 958 00:43:26,150 --> 00:43:27,890 існуе толькі ўнутры для цыклу. 959 00:43:27,890 --> 00:43:31,530 >> Такім чынам, пераменная я толькі існуе ў тых дужках. 960 00:43:31,530 --> 00:43:35,260 А вось зменныя п таксама існуе толькі ў тых дужках. 961 00:43:35,260 --> 00:43:39,350 Так што, калі вы былі ў выкарыстанні STRLEN з Слова некалькі разоў ўнізе, 962 00:43:39,350 --> 00:43:42,230 абсалютна лепшы спосаб зрабіць гэта будзе аб'явіць яго на вяршыню 963 00:43:42,230 --> 00:43:43,563 так што вам не прыйдзецца зрабіць гэта адзін раз. 964 00:43:43,563 --> 00:43:45,420 Так. 965 00:43:45,420 --> 00:43:47,670 АЎДЫТОРЫЯ: Чаму ў вас ёсць Новая лінія пасля адсотка 966 00:43:47,670 --> 00:43:51,300 бачачы, калі вы хочаце, каб паставіць усё літары побач з ім падзяляюць? 967 00:43:51,300 --> 00:43:54,140 >> ANDI Пэн: О, я хацеў друкаваць іх усё на кожнай лініі. 968 00:43:54,140 --> 00:43:54,890 Гэта не мае значэння. 969 00:43:54,890 --> 00:43:55,890 Так, гэта фарматаванне. 970 00:43:55,890 --> 00:43:57,181 Гэта добры пытанне, хоць. 971 00:43:57,181 --> 00:43:59,360 Так, калі б я хацеў, каб надрукаваць усё толькі на адной лініі, што, 972 00:43:59,360 --> 00:44:02,731 Я б не працяжнік ст. 973 00:44:02,731 --> 00:44:03,230 ДОБРА. 974 00:44:03,230 --> 00:44:06,880 Усё добра? 975 00:44:06,880 --> 00:44:07,500 ДОБРА. 976 00:44:07,500 --> 00:44:08,000 Прахладны. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Так што я думаю, што я казаў дастаткова. 979 00:44:14,750 --> 00:44:20,040 Паварот, вы, хлопцы, каб запусціць праз Код і скажыце, што гэта не так. 980 00:44:20,040 --> 00:44:21,560 Дзе памылка? 981 00:44:21,560 --> 00:44:26,920 Такім чынам, як вы бачыце, я аб'яўлены Новы масіў радковага тыпу па імі класа. 982 00:44:26,920 --> 00:44:30,220 І я ўводзяцца Сэм, Джэс, і Кім у яго. 983 00:44:30,220 --> 00:44:33,400 І я спрабую раздрукаваць ўсе элементы масіва. 984 00:44:33,400 --> 00:44:36,796 Можа хто-небудзь сказаць мне, чаму гэта збіраецца даць мне праблемы? 985 00:44:36,796 --> 00:44:39,320 Я дам вам хлопцы 10 секунд, каб думаць пра гэта. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> ДОБРА. 988 00:44:56,619 --> 00:44:57,118 Да? 989 00:44:57,118 --> 00:45:01,972 >> АЎДЫТОРЫЯ: Ці з'яўляецца левы цэнтральны роўным 3 ці [неразборліва]? 990 00:45:01,972 --> 00:45:02,680 ANDI Пэн: Права. 991 00:45:02,680 --> 00:45:06,784 Так колькі разоў гэта на самай справе збіраецца запусціць праз гэтую пятлю? 992 00:45:06,784 --> 00:45:07,620 >> АЎДЫТОРЫЯ: Чатыры. 993 00:45:07,620 --> 00:45:08,070 >> ANDI Пэн: Точно. 994 00:45:08,070 --> 00:45:09,445 Гэта будзе праз чатыры разы. 995 00:45:09,445 --> 00:45:12,250 Гэта збіраецца бегчы праз на 0, 1, 2 і 3, 996 00:45:12,250 --> 00:45:15,200 таму што іх элементам з'яўляецца я менш або роўна 3. 997 00:45:15,200 --> 00:45:16,960 Гэта не збіраецца спыняцца, калі гэта 2. 998 00:45:16,960 --> 00:45:18,800 Гэта будзе трымаць адбываецца, пакуль не дасягне 3. 999 00:45:18,800 --> 00:45:21,720 І як мы ведаем, ёсць толькі тры элементы нашага фактычнага масіва. 1000 00:45:21,720 --> 00:45:27,260 >> Калі мы паспрабуем адкрыць чацвёрты элемент або індэкс 3, 1001 00:45:27,260 --> 00:45:30,357 Вы збіраецеся кудысьці ўдарыў у памяці, што не існуе. 1002 00:45:30,357 --> 00:45:31,690 Гэта называецца нуль-тэрмінатар. 1003 00:45:31,690 --> 00:45:32,856 Нішто не збіраецца быць там. 1004 00:45:32,856 --> 00:45:35,324 Ваш кампутар не будзе быць вельмі шчаслівы з табой. 1005 00:45:35,324 --> 00:45:36,170 Так. 1006 00:45:36,170 --> 00:45:38,430 Хто-небудзь ёсць пытанні аб тым, чаму, што адбываецца? 1007 00:45:38,430 --> 00:45:39,679 Гэта агульная плошча, каб пазбегнуць. 1008 00:45:39,679 --> 00:45:40,712 Так. 1009 00:45:40,712 --> 00:45:45,777 >> АЎДЫТОРЫЯ: Не першы слізгаць таксама радок 2? 1010 00:45:45,777 --> 00:45:46,360 ANDI PENG: Няма 1011 00:45:46,360 --> 00:45:49,610 Так па сутнасці, калі Вы робіце масіў, 1012 00:45:49,610 --> 00:45:51,540 што кранштэйн правай там, што ўсе number-- 1013 00:45:51,540 --> 00:45:53,480 гэта кажу вам як шматлікія элементы ў мяне ёсць. 1014 00:45:53,480 --> 00:45:55,840 Гэта на самай справе не казаў мне індэксы небудзь. 1015 00:45:55,840 --> 00:45:58,760 Такім чынам, у гэтым выпадку, я ведаю, што я хачу пісаць трох месцах, 1016 00:45:58,760 --> 00:46:02,690 з трох фізічных месцаў для правесці ўсё, што я хачу, каб трымаць. 1017 00:46:02,690 --> 00:46:04,510 Дык вось, чаму нумар тры ёсць. 1018 00:46:04,510 --> 00:46:06,560 Тым не менш, калі б я хацеў на самой справе атрымаць да яго доступ, 1019 00:46:06,560 --> 00:46:11,220 калі я хацеў сказаць, Printf нумар класа кранштэйн, затым 1020 00:46:11,220 --> 00:46:14,560 Вы збіраецеся на самай справе паклаў індэкс фізічнага там. 1021 00:46:14,560 --> 00:46:16,330 Так, добры пытанне. 1022 00:46:16,330 --> 00:46:20,065 >> АЎДЫТОРЫЯ: Дык гэта фізічнае Індэкс павінен быць [неразборліва]? 1023 00:46:20,065 --> 00:46:20,940 ANDI Пэн: Мне вельмі шкада. 1024 00:46:20,940 --> 00:46:21,500 Ці можаце вы гаварыць трохі? 1025 00:46:21,500 --> 00:46:24,208 >> АЎДЫТОРЫЯ: Так індэкс фізічнага [Неразборліва], кожная з скрынкі? 1026 00:46:24,208 --> 00:46:25,260 [Неразборліва]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI Пэн: Так. 1028 00:46:26,040 --> 00:46:28,970 Так што я збіраюся вярнуцца да прама тут. 1029 00:46:28,970 --> 00:46:31,120 Падумайце прама тут. 1030 00:46:31,120 --> 00:46:32,820 У нас ёсць масіў памерам 3. 1031 00:46:32,820 --> 00:46:35,540 Там тры месцы, як і, фізічныя запаўняльнікі тут. 1032 00:46:35,540 --> 00:46:37,620 Але яны назвалі 0, 1, 2 і. 1033 00:46:37,620 --> 00:46:40,700 Так што, калі я хацеў, каб атрымаць да іх доступ, так, што я да іх доступ 1034 00:46:40,700 --> 00:46:43,480 гэта Printf за ўсё, што я хацеў тут. 1035 00:46:43,480 --> 00:46:45,485 Вы павінны надрукаваць з імя ёй, 1036 00:46:45,485 --> 00:46:47,610 Таму што тады кампутар ведае, пра, мне трэба паглядзець 1037 00:46:47,610 --> 00:46:51,391 у гэтым масіве на 0-й індэкс. 1038 00:46:51,391 --> 00:46:51,890 Так. 1039 00:46:51,890 --> 00:46:53,306 Але памер гэтага не мяняецца. 1040 00:46:53,306 --> 00:46:55,492 Памер 3, незалежна як вы іх пазначыць. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 ДОБРА. 1043 00:46:58,820 --> 00:47:01,387 Усё добра? 1044 00:47:01,387 --> 00:47:02,970 АЎДЫТОРЫЯ: Так што кожны раз я [неразборліва]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI Пэн: ОК. 1047 00:47:06,940 --> 00:47:13,270 Такім чынам, у гэтым выпадку, мы на самай справе не патрапіць у яго цяпер у працэсе. 1048 00:47:13,270 --> 00:47:16,760 Але ведаю, што string-- як I казаў раней, радок па сутнасці 1049 00:47:16,760 --> 00:47:18,440 масіў знакаў. 1050 00:47:18,440 --> 00:47:21,430 Так што, калі я ствараю масіў радкоў, я накшталт 1051 00:47:21,430 --> 00:47:24,430 ёсць масіў масіў сімвалаў, праўда? 1052 00:47:24,430 --> 00:47:27,720 >> Такім чынам, у гэтым выпадку, таму што я ёсць масіў радкоў, 1053 00:47:27,720 --> 00:47:31,340 калі б вы былі на ўваход сапраўды доўгае слова, якія да гэтага часу займае толькі адно месца, 1054 00:47:31,340 --> 00:47:33,230 таму што гэта адна струна. 1055 00:47:33,230 --> 00:47:37,492 Але калі вы былі думаць аб героі гэтага масіва, 1056 00:47:37,492 --> 00:47:40,450 тое, што гэта займаючы шмат больш сімвалаў, чым любы з іншых слоў 1057 00:47:40,450 --> 00:47:41,372 ёсць. 1058 00:47:41,372 --> 00:47:42,830 Не вельмі важна для прама цяпер. 1059 00:47:42,830 --> 00:47:44,921 Але гэта толькі ў цэлым як гэта працуе. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> ДОБРА. 1062 00:47:50,560 --> 00:47:55,840 Так што гэта тое, што я дам вам зрабіць шмат на працягу семестра. 1063 00:47:55,840 --> 00:47:57,500 Мне трэба, каб адпачыць мой голас. 1064 00:47:57,500 --> 00:47:59,530 Вы, хлопцы, трэба, каб стымуляваць сябе. 1065 00:47:59,530 --> 00:48:02,300 Многія з вас, напэўна, прыйдзецца спаць прама цяпер. 1066 00:48:02,300 --> 00:48:05,960 Я ўводу выпадковых праблем дзе мы, як клас, ці вы 1067 00:48:05,960 --> 00:48:09,480 з партнёрам побач з вамі збіраемся правесці пару хвілін абмеркавання 1068 00:48:09,480 --> 00:48:14,980 аб тым, як мы ісці аб рашэнні або стварэнне праграмы, такія, як гэты. 1069 00:48:14,980 --> 00:48:17,100 >> Так што цяпер, мы хочам стварыць program-- 1070 00:48:17,100 --> 00:48:19,560 мы збіраемся называць яго upper.c--, што новазвернутыя 1071 00:48:19,560 --> 00:48:24,787 маленькая слова да верхняй класа string-- верхні рэгістр, прабачце. 1072 00:48:24,787 --> 00:48:26,370 Слова ў радках, прабачце, гэта сінонімы. 1073 00:48:26,370 --> 00:48:28,370 Я збіраюся іх мяняць азначае тое ж самае. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Так. 1076 00:48:33,499 --> 00:48:34,540 Вазьміце пару хвілін. 1077 00:48:34,540 --> 00:48:37,130 Гэта не павінны быць напісаны на любой мове. 1078 00:48:37,130 --> 00:48:39,890 Проста ў кодзе або псевдокода лагічна, як мы б нават 1079 00:48:39,890 --> 00:48:42,083 хадзіць рабіць такой праблемай. 1080 00:48:42,083 --> 00:48:42,583 Так. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [БОК РАЗГОВОР] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Я таксама заўважыў, што вы, хлопцы can-- Я накшталт ўжо бачым праграму. 1085 00:49:22,130 --> 00:49:24,600 Я думаю, маё адсутнасць Рэжым вядучы праблема. 1086 00:49:24,600 --> 00:49:27,410 Але гэта нармальна. 1087 00:49:27,410 --> 00:49:30,410 >> [БОК РАЗГОВОР] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Так, калі ласка, хлопцы. 1090 00:50:04,380 --> 00:50:05,400 Прыходзьце атрымаць цукерку. 1091 00:50:05,400 --> 00:50:06,372 Прыходзьце атрымаць цукерку. 1092 00:50:06,372 --> 00:50:07,698 >> АЎДЫТОРЫЯ: Так! 1093 00:50:07,698 --> 00:50:09,958 >> [БОК РАЗГОВОР] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI Пэн: Акрамя таго, ды, Я пачну кідаць цукеркі 1096 00:50:18,100 --> 00:50:20,280 на людзей, якія не адказваюць на пытанні. 1097 00:50:20,280 --> 00:50:22,260 Такім чынам, вы павінны адказаць на пытанні ўсіх. 1098 00:50:22,260 --> 00:50:24,895 Ці я мяркую, людзі, якія у адказваць на пытанні. 1099 00:50:24,895 --> 00:50:26,070 Так, наадварот. 1100 00:50:26,070 --> 00:50:28,570 >> [БОК РАЗГОВОР] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 АЎДЫТОРЫЯ: [неразборліва] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI Пэн: Так. 1105 00:51:18,340 --> 00:51:19,340 Так. 1106 00:51:19,340 --> 00:51:22,840 >> [БОК РАЗГОВОР] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> Добра, хлопцы. 1109 00:51:41,590 --> 00:51:44,731 Вазьміце, напрыклад, яшчэ 10 секунд. 1110 00:51:44,731 --> 00:51:48,210 >> [БОК РАЗГОВОР] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> ОК, хлопцы. 1113 00:52:11,750 --> 00:52:14,920 Таму, перш чым мы пачнем, спрабуючы на самай справе фізічна напісаць код, 1114 00:52:14,920 --> 00:52:20,650 добрая звычка развіваць тое, што мы хочам, каб першага роду прычынах 1115 00:52:20,650 --> 00:52:22,737 лагічна, як мы зробім гэта. 1116 00:52:22,737 --> 00:52:24,570 Вы хочаце, каб пераканацца, што, перад вамі фізічна 1117 00:52:24,570 --> 00:52:27,210 пачаць спрабаваць кадзіраваць ў Марыё, што вы робіце 1118 00:52:27,210 --> 00:52:28,870 Пераканайцеся, што ў вас ёсць псевдокод. 1119 00:52:28,870 --> 00:52:31,235 Гэта значыць прымаючы вас праз тое, што вам трэба, каб стварыць так 1120 00:52:31,235 --> 00:52:33,360 што, калі вы фізічна напісаць праграму пазней, 1121 00:52:33,360 --> 00:52:36,640 вы лепш у стане злавіць памылкі у кодзе і да таго падобнае. 1122 00:52:36,640 --> 00:52:40,460 >> Такім чынам, мы збіраемся, каб проста пачаць по-- на англійскай мове, у псевдокоде, 1123 00:52:40,460 --> 00:52:43,320 Хто-небудзь хоча, каб даць мне радавое тлумачэнне 1124 00:52:43,320 --> 00:52:46,250 аб тым, як мы б пра гэта? 1125 00:52:46,250 --> 00:52:48,102 Так. 1126 00:52:48,102 --> 00:52:49,664 >> АЎДЫТОРЫЯ: [неразборліва]. 1127 00:52:49,664 --> 00:52:50,830 ANDI Пэн: Вядома, не варта турбавацца. 1128 00:52:50,830 --> 00:52:57,233 АЎДЫТОРЫЯ: Ці можаце вы папрасіць яго ці папрасіць хтосьці атрымаць радок 1-- Так, радок, 1129 00:52:57,233 --> 00:52:58,160 і then-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI Пэн: Так, так што гэта добры пачатак. 1131 00:52:59,826 --> 00:53:01,972 Я пачну набіраць, прабачце, як вы кажаце. 1132 00:53:01,972 --> 00:53:02,471 So-- 1133 00:53:02,471 --> 00:53:05,698 >> АЎДЫТОРЫЯ: --the малыя лічбы вышэй, праўда? 1134 00:53:05,698 --> 00:53:08,519 Ці малыя літары маюць высокія лічбы? 1135 00:53:08,519 --> 00:53:09,310 ANDI Пэн: Точно. 1136 00:53:09,310 --> 00:53:16,156 АЎДЫТОРЫЯ: Такім чынам, мы адымаем 32 ад таго, што [неразборліва]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI Пэн: Выдатна. 1139 00:53:29,870 --> 00:53:35,020 Так мы накшталт ёсць агульны сэнс пра тое, як працаваць з гэтай праблемай. 1140 00:53:35,020 --> 00:53:40,060 Ведаючы, што мы даведаліся выгляд фізічнае так, што радкі 1141 00:53:40,060 --> 00:53:43,320 захоўваюцца ў памяці, Што вы ўжо 1142 00:53:43,320 --> 00:53:45,920 ведаю, што вы збіраецеся, верагодна, трэба напісаць у кодзе 1143 00:53:45,920 --> 00:53:48,288 для таго, каб рухацца па радку? 1144 00:53:48,288 --> 00:53:49,259 >> АЎДЫТОРЫЯ: Для цыклу. 1145 00:53:49,259 --> 00:53:50,550 ANDI Пэн: для цыклу, дакладна. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Выдатна. 1148 00:53:57,220 --> 00:54:00,539 Так мы накшталт ёсць агульны псевдокод запісана 1149 00:54:00,539 --> 00:54:02,330 што выгляд дае Вы адзначае, як вы 1150 00:54:02,330 --> 00:54:03,900 будзе рухацца аб рашэнні праблемы. 1151 00:54:03,900 --> 00:54:06,150 Зараз у вас ёсць гэта, вам можа спасылацца на потым 1152 00:54:06,150 --> 00:54:08,233 калі вы спрабуеце на самай справе пісаць код. 1153 00:54:08,233 --> 00:54:10,240 Такім чынам, мы можам на самай справе ісці тут. 1154 00:54:10,240 --> 00:54:25,130 І я атрымаў функцыю пад назвай upper.c-- там is-- толькі з пустога пра шаблон 1155 00:54:25,130 --> 00:54:28,510 Прама зараз, што вы, хлопцы, збіраецеся дапамагчы мне высветліць пра тое, як напісаць 1156 00:54:28,510 --> 00:54:30,430 гэтая лінія code-- ня радок кода. 1157 00:54:30,430 --> 00:54:32,890 Гэта будзе некалькі радкоў кода. 1158 00:54:32,890 --> 00:54:35,710 >> Пры запуску якой-небудзь нарыхтоўкі PSET, што 1159 00:54:35,710 --> 00:54:37,418 Першае, што мне трэба памятаць, каб рабіць? 1160 00:54:37,418 --> 00:54:39,290 >> АЎДЫТОРЫЯ: [неразборліва]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI Пэн: Вялікі Так. 1162 00:54:41,000 --> 00:54:41,500 Ўключыць. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Часта гэта з'яўляецца адным з Самы просты памылкі людзі 1166 00:54:49,640 --> 00:54:51,598 зробіць, калі яны пісаць, што яны будуць 1167 00:54:51,598 --> 00:54:54,180 забудзьцеся ўключаць Важна бібліятэка ім трэба. 1168 00:54:54,180 --> 00:54:57,689 Так што, калі гэта офіс гадзін, і вы, як, Я не ведаю, чаму мой код не працуе. 1169 00:54:57,689 --> 00:54:59,230 Ці можаце вы сказаць мне, чаму гэта не працуе? 1170 00:54:59,230 --> 00:55:00,730 Мы збіраемся сказаць ты #include? 1171 00:55:00,730 --> 00:55:02,520 Вы павінны #include яго. 1172 00:55:02,520 --> 00:55:03,270 ДОБРА. 1173 00:55:03,270 --> 00:55:07,230 >> Такім чынам, мы атрымалі стандарт I / O тут. 1174 00:55:07,230 --> 00:55:10,740 Хіба што толькі бібліятэка мы збіраемся тут трэба? 1175 00:55:10,740 --> 00:55:12,681 Што яшчэ мы будзем рабіць? 1176 00:55:12,681 --> 00:55:13,180 Выбачайце. 1177 00:55:13,180 --> 00:55:14,562 Хтосьці проста крычыце гэта? 1178 00:55:14,562 --> 00:55:15,666 >> АЎДЫТОРЫЯ: [неразборліва]. 1179 00:55:15,666 --> 00:55:16,666 ANDI Пэн: Там вы ідзяце. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 ДОБРА. 1182 00:55:21,440 --> 00:55:26,070 І як я магу ісці аб запуску якой-небудзь функцыі, любы від асноўнай функцыі 1183 00:55:26,070 --> 00:55:28,760 ў нашай праграме? 1184 00:55:28,760 --> 00:55:30,020 Int асноўнай. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 ДОБРА. 1187 00:55:35,030 --> 00:55:35,970 Што я магу пакласці ўнутры тут? 1188 00:55:35,970 --> 00:55:37,640 Што першае, што вы хочаце зрабіць? 1189 00:55:37,640 --> 00:55:39,910 Калі мы хочам, каб атрымаць радок ад карыстальніка, 1190 00:55:39,910 --> 00:55:43,870 што мы будзем мець каб зрабіць на гэтым першай лініі? 1191 00:55:43,870 --> 00:55:46,120 На жаль, вы, хлопцы, проста адчуваю, свабодна гаварыць і гучна. 1192 00:55:46,120 --> 00:55:47,123 Проста крычаць што заўгодна. 1193 00:55:47,123 --> 00:55:48,772 >> АЎДЫТОРЫЯ: Папытаеце карыстальніка? 1194 00:55:48,772 --> 00:55:49,980 ANDI Пэн: Як мы гэта робім? 1195 00:55:49,980 --> 00:55:51,873 Ask-- я збіраюся ўвесці "задаць карыстачу"? 1196 00:55:51,873 --> 00:55:52,600 >> АЎДЫТОРЫЯ: Printf. 1197 00:55:52,600 --> 00:55:54,341 >> ANDI Пэн: ОК. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Што я хачу, каб PRINTF? 1200 00:55:57,372 --> 00:55:58,776 >> АЎДЫТОРЫЯ: Тып ў нечым. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI Пэн: Як што? 1203 00:56:03,840 --> 00:56:05,430 Хлопцы, рабіць выгляд, быццам я кампутар. 1204 00:56:05,430 --> 00:56:08,475 Фізічна скажыце мне кожны крок што мне трэба ўвесці тут? 1205 00:56:08,475 --> 00:56:09,600 Я раблю нешта няправільна? 1206 00:56:09,600 --> 00:56:10,743 Ці павінен я нешта набралі? 1207 00:56:10,743 --> 00:56:11,690 >> АЎДЫТОРЫЯ: Вы павінны двукоссі. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI Пэн: Мне трэба двукоссі? 1209 00:56:12,380 --> 00:56:12,880 ДОБРА. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 ДОБРА. 1212 00:56:16,297 --> 00:56:17,698 >> АЎДЫТОРЫЯ: А потым новая лінія. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Кропка з коскі. 1215 00:56:22,465 --> 00:56:23,340 ANDI Пэн: кропкай з коскі? 1216 00:56:23,340 --> 00:56:24,060 ДОБРА. 1217 00:56:24,060 --> 00:56:24,560 Добра. 1218 00:56:24,560 --> 00:56:27,060 >> АЎДЫТОРЫЯ: А можа быць, пазначыць што вы хочаце, у ніжнім рэгістры? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI Пэн: Выдатна. 1221 00:56:31,415 --> 00:56:33,540 Вы, хлопцы, трэба мной смяяцца забываючы паставіць кропку з коскі. 1222 00:56:33,540 --> 00:56:36,350 Я гарантую вам, дзе У ходзе гэтага класа, 1223 00:56:36,350 --> 00:56:38,260 Вы забудзецеся паставіць кропка з коскі, і гэта 1224 00:56:38,260 --> 00:56:41,116 Вам спатрэбіцца тры гадзіны, каб высветліць чаму ваш код не працуе. 1225 00:56:41,116 --> 00:56:42,240 Гэта здарылася з усімі намі. 1226 00:56:42,240 --> 00:56:43,950 Гэта, верагодна, здарыцца з вамі. 1227 00:56:43,950 --> 00:56:46,352 Атрымаць у добрую звычку з коскі. 1228 00:56:46,352 --> 00:56:46,852 ДОБРА. 1229 00:56:46,852 --> 00:56:49,010 >> АЎДЫТОРЫЯ: Вы хочаце зрабіць зваротны слеш ў? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI Пэн: Вядома. 1231 00:56:50,398 --> 00:56:51,856 Вы хочаце, каб зрабіць зваротны слеш? 1232 00:56:51,856 --> 00:56:53,020 >> АЎДЫТОРЫЯ: Так. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI Пэн: Выдатна. 1234 00:56:54,330 --> 00:56:54,830 ДОБРА. 1235 00:56:54,830 --> 00:56:57,872 Што мне рабіць далей? 1236 00:56:57,872 --> 00:56:58,964 >> АЎДЫТОРЫЯ: Атрымаць радок. 1237 00:56:58,964 --> 00:56:59,880 ANDI Пэн: Атрымаць радок. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Так што я тыпу? 1240 00:57:03,830 --> 00:57:04,233 Хто? 1241 00:57:04,233 --> 00:57:05,040 >> АЎДЫТОРЫЯ: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI Пэн: Радок с. 1243 00:57:05,873 --> 00:57:07,251 АЎДЫТОРЫЯ: GetString. 1244 00:57:07,251 --> 00:57:09,000 ANDI Пэн: Нехта, Вы можаце сказаць мне, дзе 1245 00:57:09,000 --> 00:57:12,000 гэтая функцыя GetString прыходзяць? 1246 00:57:12,000 --> 00:57:13,660 >> АЎДЫТОРЫЯ: string.h. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI Пэн: string.h? 1248 00:57:15,256 --> 00:57:16,715 Вы думаеце, што гэта з string.h? 1249 00:57:16,715 --> 00:57:17,830 >> АЎДЫТОРЫЯ: [неразборліва]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI Пэн: Там вы ідзяце. 1251 00:57:18,830 --> 00:57:21,280 Гэта ад CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Калі вы заўсёды блытаюць ад таго, дзе Файл бібліятэкі або файл загалоўка, 1253 00:57:24,530 --> 00:57:28,450 Google літаральна string.h, і я скажу вам, 1254 00:57:28,450 --> 00:57:30,450 якія ўсе функцыі якія знаходзяцца ў string.h. 1255 00:57:30,450 --> 00:57:31,340 ДОБРА. 1256 00:57:31,340 --> 00:57:35,210 >> Так што цяпер я стварыў радок а ў мяне прапануе карыстачу для яго, 1257 00:57:35,210 --> 00:57:38,770 Я захаваў яго ў зменнай названыя ёй, што мне трэба рабіць цяпер? 1258 00:57:38,770 --> 00:57:40,652 >> АЎДЫТОРЫЯ: Праверце, калі ён знаходзіцца ў ніжнім рэгістры. 1259 00:57:40,652 --> 00:57:41,360 ANDI Пэн: На ​​жаль? 1260 00:57:41,360 --> 00:57:42,545 АЎДЫТОРЫЯ: Праверце, калі ён знаходзіцца ў ніжнім рэгістры. 1261 00:57:42,545 --> 00:57:44,045 ANDI Пэн: Добра, давайце зробім гэта. 1262 00:57:44,045 --> 00:57:45,857 Як мне гэта зрабіць? 1263 00:57:45,857 --> 00:57:47,940 На самай справе, для мэтаў класа прама цяпер, 1264 00:57:47,940 --> 00:57:50,330 мы толькі збіраемся Выкажам здагадку, што ўсе 1265 00:57:50,330 --> 00:57:52,620 што мы ўваход ўжо ў ніжнім рэгістры. 1266 00:57:52,620 --> 00:57:55,430 Калі вы хочаце, каб праверыць, вы б проста дадайце ўмоўную 1267 00:57:55,430 --> 00:57:59,640 што правяраецца, што пабег праз кожны элемент масіва 1268 00:57:59,640 --> 00:58:02,540 і правяраецца, калі гэта паміж пэўнымі значэннямі. 1269 00:58:02,540 --> 00:58:05,627 Я забыўся, што колькасць значэнняў малыя літары. 1270 00:58:05,627 --> 00:58:07,210 Вы можаце паглядзець яго на стол ASCII. 1271 00:58:07,210 --> 00:58:08,800 Але так, гэта сапраўды добрая кропка. 1272 00:58:08,800 --> 00:58:11,758 Але прама цяпер, мы проста збіраемся Выкажам здагадку, што ўсе радкі ўводу мы 1273 00:58:11,758 --> 00:58:13,130 у ніжнім рэгістры. 1274 00:58:13,130 --> 00:58:13,870 ДОБРА. 1275 00:58:13,870 --> 00:58:18,069 >> Так як я пайшоў бы каля гэтая праблема ў наступным? 1276 00:58:18,069 --> 00:58:18,860 АЎДЫТОРЫЯ: Для цыклу. 1277 00:58:18,860 --> 00:58:19,340 ANDI Пэн: Для цыкла? 1278 00:58:19,340 --> 00:58:19,839 ДОБРА. 1279 00:58:19,839 --> 00:58:20,847 Скажы мне, што друкаваць. 1280 00:58:20,847 --> 00:58:25,230 >> АЎДЫТОРЫЯ: Для Int я роўная 0. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI Пэн: ОК. 1282 00:58:27,230 --> 00:58:36,350 >> АЎДЫТОРЫЯ: Так, на самай справе, то вам зрабіць коску і рабіць н роўная STRLEN. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI Пэн: Так важна што я думаю, што яна заўважыла, тут 1284 00:58:38,940 --> 00:58:42,936 з'яўляецца тое, што мы не павінны сказаць Int н другі раз мы зрабілі гэта. 1285 00:58:42,936 --> 00:58:45,060 Проста ведаю, што на працягу цыкл, калі вы заявіўшы, 1286 00:58:45,060 --> 00:58:47,934 вы на самой справе не трэба Int ў другі раз, калі вы зменную. 1287 00:58:47,934 --> 00:58:51,202 Вы можаце сказаць, н STRLEN. 1288 00:58:51,202 --> 00:58:52,620 >> АЎДЫТОРЫЯ: З с. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI Пэн: с. 1290 00:58:53,510 --> 00:58:54,706 ДОБРА. 1291 00:58:54,706 --> 00:58:58,370 >> АЎДЫТОРЫЯ: Тады кропка з коскі. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI Пэн: Вядома. 1293 00:59:00,130 --> 00:59:04,050 >> АЎДЫТОРЫЯ: І затым [неразборліва] п. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Тады я ++. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI Пэн: Выдатна. 1297 00:59:11,780 --> 00:59:12,280 Добра. 1298 00:59:12,280 --> 00:59:14,690 Што мы хочам ўнутры гэта цыкл цяпер? 1299 00:59:14,690 --> 00:59:17,820 Памятаеце, што калі мы збіраемся запусціць праз радок і запусціць праз масіў, 1300 00:59:17,820 --> 00:59:19,287 мы хочам, каб праверыць рэчы ў ім. 1301 00:59:19,287 --> 00:59:20,370 Што мы збіраемся трэба? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 Гэта свайго роду складаная частка ў цяперашні час. 1304 00:59:26,900 --> 00:59:27,960 Любы, ёсць здагадка? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> ДОБРА. 1307 00:59:34,690 --> 00:59:37,830 Такім чынам, спачатку, як мы нават атрымаць доступ? 1308 00:59:37,830 --> 00:59:41,610 Як мы нават першая праверка або доступу да элемента ў масіве? 1309 00:59:41,610 --> 00:59:42,920 Як мы гэта робім? 1310 00:59:42,920 --> 00:59:47,120 Што абазначэнне мы выкарыстоўваем, каб зрабіць гэта? 1311 00:59:47,120 --> 00:59:50,920 Што імя гэтага масіва называецца? 1312 00:59:50,920 --> 00:59:52,400 Гэта называецца з, правільна? 1313 00:59:52,400 --> 00:59:54,850 >> Памятаеце, любы радок заўсёды з'яўляецца масівам. 1314 00:59:54,850 --> 00:59:58,210 Так ёй кранштэйн я, праўда? 1315 00:59:58,210 --> 01:00:01,360 Таму што гэта бягучае значэнне ці значэнне індэкса, мы праверкі. 1316 01:00:01,360 --> 01:00:05,156 І мы збіраемся ўсталяваць, што роўна , Мэтай якіх мы хочам маленькую значэнне, праўда? 1317 01:00:05,156 --> 01:00:07,530 Мы хочам, каб ператварыць гэта lower-- прабачце, мы хочам загалоўнымі літарамі. 1318 01:00:07,530 --> 01:00:10,014 Мы хочам, каб уключыць ніжні рэгістр значэнне ў верхнім рэгістры. 1319 01:00:10,014 --> 01:00:11,805 І так like-- я прашу прабачэння, як цябе зваць? 1320 01:00:11,805 --> 01:00:12,580 >> АЎДЫТОРЫЯ: Хайдзі. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI Пэн: На ​​жаль? 1322 01:00:12,940 --> 01:00:13,280 >> АЎДЫТОРЫЯ: Хайдзі. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI Пэн: Хайдзі. 1324 01:00:13,988 --> 01:00:15,850 Як сказаў Хайдзі Першапачаткова, мы, верагодна, 1325 01:00:15,850 --> 01:00:20,330 спатрэбіцца the-- мы верагодна, прыйдзецца адняць 1326 01:00:20,330 --> 01:00:22,630 32 з любога charc, што, праўда? 1327 01:00:22,630 --> 01:00:24,680 Таму што на ASCII стол, розніца 1328 01:00:24,680 --> 01:00:27,790 паміж малой літары і прапісная літара 32. 1329 01:00:27,790 --> 01:00:31,290 Таму, калі мы робім гэта, мы, верагодна, захоча, каб адняць 32, праўда? 1330 01:00:31,290 --> 01:00:33,910 >> Так што мы збіраемся рабіць S I. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Ці ўсё разумеюць, чаму я гэта зрабіў? 1333 01:00:41,200 --> 01:00:45,760 Таму што цяпер, у нашым масіве, мы праверкі 0-й індэкс, праўда? 1334 01:00:45,760 --> 01:00:49,190 А ў 0-й індэкс Радок, гэта першы знак. 1335 01:00:49,190 --> 01:00:51,820 І, што персанаж, якога мы збіраемся каб выказаць здагадку, што гэта ў ніжнім рэгістры. 1336 01:00:51,820 --> 01:00:55,980 Калі мы хочам, каб зрабіць яго ў верхнім рэгістры, мы павінны адняць 32 з яго кошту, 1337 01:00:55,980 --> 01:00:58,620 таму што ў нашай ASCII стол, вось як мы атрымаем яго 1338 01:00:58,620 --> 01:01:01,600 на наступны адпаведнай Значэнне, якое робіць яго ў верхнім рэгістры. 1339 01:01:01,600 --> 01:01:03,714 Усе разумеюць, ці што? 1340 01:01:03,714 --> 01:01:04,213 Так. 1341 01:01:04,213 --> 01:01:06,530 >> АЎДЫТОРЫЯ: Ці маглі б вы таксама у ніжні рэгістр ў minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI Пэн: Так, так вось на самай справе вельмі добра. 1343 01:01:08,080 --> 01:01:10,455 Я збіраюся вярнуцца да таго, што Пытанне пасля таго як мы гэта зрабіць. 1344 01:01:10,455 --> 01:01:11,060 Так. 1345 01:01:11,060 --> 01:01:13,940 І потым, калі я хачу бачыць, што адбываецца, 1346 01:01:13,940 --> 01:01:16,180 Я, верагодна, будзе хочаце надрукаваць, праўда? 1347 01:01:16,180 --> 01:01:19,930 Хто-небудзь сказаць мне, што Я хачу надрукаваць тут. 1348 01:01:19,930 --> 01:01:29,160 >> АЎДЫТОРЫЯ: Printf адсоткаў З адваротнага касой [неразборліва]. 1349 01:01:29,160 --> 01:01:33,570 Гэта значэнне [неразборліва] S I. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI Пэн: я ёй, прабачце? 1351 01:01:34,614 --> 01:01:35,530 АЎДЫТОРЫЯ: [неразборліва]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI Пэн: я не ведаю. 1354 01:01:39,550 --> 01:01:40,600 Што ты думаеш? 1355 01:01:40,600 --> 01:01:44,016 >> АЎДЫТОРЫЯ: Ну, я wouldn't-- Я думаю, я б не bring-- 1356 01:01:44,016 --> 01:01:46,944 Я б яно па-за ўнутры, таму што [неразборліва]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI Пэн: О, вы б зрабілі гэта? 1359 01:01:51,392 --> 01:01:53,867 АЎДЫТОРЫЯ: Так. 1360 01:01:53,867 --> 01:01:56,700 ANDI Пэн: Давайце пакінем гэта так, як яна ёсць, і я растлумачу, чаму пазней. 1361 01:01:56,700 --> 01:01:58,533 Памятаеце, нават калі вы ёсць трымальнік месца, 1362 01:01:58,533 --> 01:02:00,701 Вы хочаце, каб пакласці дужкі вакол яго. 1363 01:02:00,701 --> 01:02:01,200 Добра. 1364 01:02:01,200 --> 01:02:04,810 Такім чынам, гэта павінна быць цвёрдае функцыю тут. 1365 01:02:04,810 --> 01:02:06,370 Давайце запусціць яго і паглядзець, калі ён кампілюе. 1366 01:02:06,370 --> 01:02:08,750 Зрабіце верхні. 1367 01:02:08,750 --> 01:02:09,250 Ой-ой. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 Гэта не выглядае занадта добра. 1370 01:02:13,340 --> 01:02:14,507 Чаму гэта адбываецца? 1371 01:02:14,507 --> 01:02:17,340 Як і ў любой памылкі, вы хочаце пайсці таму і пачаць з першага, 1372 01:02:17,340 --> 01:02:20,630 таму што звычайна выклікае адну памылку шмат іншых памылак пасля яго. 1373 01:02:20,630 --> 01:02:26,700 Тут мы бачым, upper.c: 18: 25, што кажа мне ў гэтай праграме імя upper.c, 1374 01:02:26,700 --> 01:02:33,800 у радку 18, памылка няяўна аб'явы бібліятэка функцый STRLEN з тыпам 1375 01:02:33,800 --> 01:02:36,330 unassigned-- бла, я не ведаю, што адбываецца пасля гэтага. 1376 01:02:36,330 --> 01:02:39,990 >> Усё гэта кажа мне прама цяпер што нешта адбываецца на STRLEN. 1377 01:02:39,990 --> 01:02:43,520 І гэта блытаць кампутар, таму што гэта як, я не ведаю, што гэта StrLen? 1378 01:02:43,520 --> 01:02:45,520 Што, што, верагодна сказаць, што вы не хапае? 1379 01:02:45,520 --> 01:02:46,490 >> АЎДЫТОРЫЯ: Вы прапусцілі [неразборліва]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI Пэн: Вы маеце рацыю. 1381 01:02:47,630 --> 01:02:49,510 Дакладна. 1382 01:02:49,510 --> 01:02:52,140 Так што гэта, дзе гэта Важна, каб пераканацца, 1383 01:02:52,140 --> 01:02:56,970 што кожная функцыя вы карыстаецеся ў вашай код, які мае правільны загаловак 1384 01:02:56,970 --> 01:02:59,660 файл для бібліятэкі, ці ж Вы збіраецеся атрымаць шмат памылак 1385 01:02:59,660 --> 01:03:01,150 і ваш код ня будзе ведаць, што адбываецца. 1386 01:03:01,150 --> 01:03:03,050 Такім чынам, мы збіраемся ўключыць string.h тут. 1387 01:03:03,050 --> 01:03:06,270 >> Цяпер, калі мы спрабуем скласці верхняй. 1388 01:03:06,270 --> 01:03:08,410 Кампіляцыя правільна. 1389 01:03:08,410 --> 01:03:09,960 Давайце запусціць гэтую праграму. 1390 01:03:09,960 --> 01:03:12,000 Так што-то тыпу ў ніжнім рэгістры. 1391 01:03:12,000 --> 01:03:14,920 Што вы, хлопцы, жадаеце, каб увесці? 1392 01:03:14,920 --> 01:03:16,546 Выгукнем нешта. 1393 01:03:16,546 --> 01:03:17,920 Добра, Чарлі проста ўвайшоў. 1394 01:03:17,920 --> 01:03:18,990 Мы увядзіце імя Чарлі ст. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Чарлі ў ніжнім рэгістры. 1397 01:03:22,840 --> 01:03:27,742 І, спадзяюся, мы спадзяемся, гэта збіраецца крычаць і выплюнуў 1398 01:03:27,742 --> 01:03:28,575 Чарлі ў верхнім рэгістры. 1399 01:03:28,575 --> 01:03:30,830 Ура! 1400 01:03:30,830 --> 01:03:33,430 Ці ўсё разумеюць, як Я пайшоў аб рашэнні, што? 1401 01:03:33,430 --> 01:03:36,190 Такім чынам, што я магу маніпуляваць з дапамогай цэлых лікаў 1402 01:03:36,190 --> 01:03:39,410 вырашыць тое, што Я хачу зрабіць у радках, 1403 01:03:39,410 --> 01:03:44,390 таму што персанажы і цэлыя можаце спасылацца такім жа чынам, таму што 1404 01:03:44,390 --> 01:03:45,540 адлюстравання ASCII. 1405 01:03:45,540 --> 01:03:52,890 >> Такім чынам, каб вярнуцца да кропкі, калі я хацеў паставіць тут замест 32 1406 01:03:52,890 --> 01:03:58,959 прапісныя мінус ніжні рэгістр справядлівы, як што, што будзе працаваць аднолькава добра, 1407 01:03:58,959 --> 01:04:01,750 таму што гэта проста толькі Розніца паміж гэтымі двума значэннямі. 1408 01:04:01,750 --> 01:04:09,570 Калі я хачу, каб зрабіць гэтую again-- Charly. 1409 01:04:09,570 --> 01:04:10,320 О, няма. 1410 01:04:10,320 --> 01:04:11,820 Я думаю, што мы пайшлі не ў той бок, так? 1411 01:04:11,820 --> 01:04:13,260 >> АЎДЫТОРЫЯ: [неразборліва] ніжні рэгістр а. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI Пэн: Там вы ідзяце. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Так. 1415 01:04:22,880 --> 01:04:24,920 І з плюе Чарлі. 1416 01:04:24,920 --> 01:04:28,020 Так што будзьце асцярожныя, калі Вы аднімання значэння 1417 01:04:28,020 --> 01:04:30,400 памятаць, які з больш, чым іншая. 1418 01:04:30,400 --> 01:04:35,220 Напрыклад, тут я забыўся што ў ніжнім рэгістры а з'яўляецца на самой справе 1419 01:04:35,220 --> 01:04:38,540 больш, чым у верхнім рэгістры A. Таму, калі я спрабаваў адымаць іх у іншы бок 1420 01:04:38,540 --> 01:04:40,600 вакол, я атрымаў адмоўны 32. 1421 01:04:40,600 --> 01:04:42,800 І мой кампутар, як, Я не ведаю, што гэта такое. 1422 01:04:42,800 --> 01:04:45,810 Гэта толькі некаторыя верагоднасць выпадковага Значэнне, якое не вельмі добра. 1423 01:04:45,810 --> 01:04:48,760 І таму пераканайцеся, што вы аднімання ў правільнай даўжыні 1424 01:04:48,760 --> 01:04:52,831 знайсці сімвал, які вы хочаце. 1425 01:04:52,831 --> 01:04:53,330 ДОБРА. 1426 01:04:53,330 --> 01:04:58,550 Хто блытаць, як мы Ці пайшоў аб напісанні гэтай функцыі? 1427 01:04:58,550 --> 01:04:59,180 ДОБРА. 1428 01:04:59,180 --> 01:05:04,830 Так на самой справе, функцыя ўжо існуе ў бібліятэцы называецца ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Называецца ctype.h бібліятэкі. 1430 01:05:06,417 --> 01:05:08,500 Гэтая функцыя на самай справе ўжо напісана для вас. 1431 01:05:08,500 --> 01:05:10,820 Гэта называецца ў верхняй. 1432 01:05:10,820 --> 01:05:13,027 >> І так для мэт гэта PSET, вы збіраецеся 1433 01:05:13,027 --> 01:05:15,860 каб знайсці, што вы сапраўды хочаце выкарыстоўваць шмат функцый, якія змяшчаюцца 1434 01:05:15,860 --> 01:05:17,390 у бібліятэцы CTYPE. 1435 01:05:17,390 --> 01:05:21,040 Для верхняй, знізіць, зверху, з'яўляецца lower-- тыя усе функцыі 1436 01:05:21,040 --> 01:05:24,914 што вы зможаце выкарыстоўваць вельмі, вельмі хутка ў сваім кодзе, што 1437 01:05:24,914 --> 01:05:26,080 робіць менавіта, што гэта робіць. 1438 01:05:26,080 --> 01:05:28,941 Мы напісалі, як пераўтварыць радок у верхні рэгістр. 1439 01:05:28,941 --> 01:05:31,440 Але гэта на самай справе код што нехта напісаў 1440 01:05:31,440 --> 01:05:33,800 і што вы можаце атрымаць доступ да з дапамогай іншай функцыі. 1441 01:05:33,800 --> 01:05:34,300 Да? 1442 01:05:34,300 --> 01:05:39,570 >> АЎДЫТОРЫЯ: Такім чынам, вы проста скапіяваць гадоў там і зрабіць гэта для кожнага лісты? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI Пэн: Так, таму што я не клапаціцца аб значэннях а. 1444 01:05:42,070 --> 01:05:44,540 Я проста ўсё роўна, што розніца паміж імі 32, праўда? 1445 01:05:44,540 --> 01:05:48,210 Розніца паміж малымі б і ў верхнім рэгістры B таксама 32. 1446 01:05:48,210 --> 01:05:50,860 І розніца паміж C а верхні З заўсёды 32. 1447 01:05:50,860 --> 01:05:53,235 >> Мне проста трэба клапаціцца пра Розніца паміж гэтымі двума, 1448 01:05:53,235 --> 01:05:56,666 таму што ўсе літары па той жа схеме, праўда? 1449 01:05:56,666 --> 01:05:58,540 Калі ў мяне ёсць розніца паміж адным з іх, 1450 01:05:58,540 --> 01:06:01,050 Я ведаю, што розніца паміж усімі з іх. 1451 01:06:01,050 --> 01:06:01,740 Добры пытанне. 1452 01:06:01,740 --> 01:06:04,090 Так. 1453 01:06:04,090 --> 01:06:06,660 Усё добра? 1454 01:06:06,660 --> 01:06:09,080 ДОБРА. 1455 01:06:09,080 --> 01:06:09,580 ААП. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> ДОБРА. 1458 01:06:15,270 --> 01:06:20,310 Так яшчэ адно паняцце, што гэта будзе вельмі карысна, як вы 1459 01:06:20,310 --> 01:06:22,570 працягваць развіваць код гэтая ідэя 1460 01:06:22,570 --> 01:06:25,430 стварэння функцыі або абстракцыю. 1461 01:06:25,430 --> 01:06:28,479 Так што цяпер, мы ўсе прынялі алгебру. 1462 01:06:28,479 --> 01:06:31,770 У алгебры, вас вучаць, што ёсць гэта выдатная рэч называецца функцыяй 1463 01:06:31,770 --> 01:06:35,300 машына, дзе, калі вы уваход адзін від колькасці, 1464 01:06:35,300 --> 01:06:38,720 яна праходзіць праз гэтага выдатнага функцыі і па-за пляскае іншае выйсце, праўда? 1465 01:06:38,720 --> 01:06:42,220 У кодзе, тое ж самае адбываецца у якой-небудзь функцыі. 1466 01:06:42,220 --> 01:06:48,230 >> Так што я мог фізічна напісаць у маім целе майго кода 1467 01:06:48,230 --> 01:06:52,357 галоўная зацвярджэнне, што на самой справе усё цела кода робіць. 1468 01:06:52,357 --> 01:06:54,940 Але за межамі гэтага, я магу таксама напісаць мноства розных функцый 1469 01:06:54,940 --> 01:06:56,320 што рабіць шмат розных рэчаў. 1470 01:06:56,320 --> 01:06:58,570 Напрыклад, мы ўжо пачалі выкарыстоўваць некаторыя з іх. 1471 01:06:58,570 --> 01:07:00,610 Printf--, што з'яўляецца Функцыя што хтосьці 1472 01:07:00,610 --> 01:07:02,870 ўжо напісана, што мы можам назваць ў нашым кодзе. 1473 01:07:02,870 --> 01:07:05,410 Для upper-- ў гэтым выпадку, upper-- іншая функцыя 1474 01:07:05,410 --> 01:07:07,330 мы напісалі, што мы можна патэлефанаваць у наш код. 1475 01:07:07,330 --> 01:07:09,520 І таму я думаю, чаму у нас нават ёсць функцыі? 1476 01:07:09,520 --> 01:07:12,100 Чаму б нам проста не пляснуць яго усё ў той жа радку кода? 1477 01:07:12,100 --> 01:07:13,730 Гэта робіць яго лёгкім для ўсіх. 1478 01:07:13,730 --> 01:07:19,200 >> Ну, што абгрунтаванне гэта, у першую чаргу, арганізацыі. 1479 01:07:19,200 --> 01:07:21,880 Гэта сапраўды раздражняе збіраецца праз чыю-то код 1480 01:07:21,880 --> 01:07:25,110 і адна функцыя, як Printf. 1481 01:07:25,110 --> 01:07:28,570 Калі вы, хлопцы, на самай справе ведаў, што Функцыя Printf што пацягнула напісаць, 1482 01:07:28,570 --> 01:07:30,530 гэта, быццам бы, 1000 радкоў кода. 1483 01:07:30,530 --> 01:07:32,357 >> Калі кожны раз, калі я хацеў каб PRINTF тое, 1484 01:07:32,357 --> 01:07:35,440 Я павінен быў напісаць 1000 радкоў кода, Гэта было б сапраўды раздражняе, каб чытаць, 1485 01:07:35,440 --> 01:07:36,290 дакладна? 1486 01:07:36,290 --> 01:07:38,860 Вось чаму мы толькі стварыў гэты абстрактная функцыя 1487 01:07:38,860 --> 01:07:41,670 што ў нас ёсць хто-то ўжо яшчэ напісаў дзесьці яшчэ. 1488 01:07:41,670 --> 01:07:44,920 І кожны раз, калі мы павінны выкарыстоўваць яго ў наш код, мы проста павінны сказаць Printf. 1489 01:07:44,920 --> 01:07:48,070 І гэта магчымасць выкарыстоўваць функцыю хтосьці напісаў у кодзе. 1490 01:07:48,070 --> 01:07:51,020 Гэта палягчае арганізацыйна чытаць код. 1491 01:07:51,020 --> 01:07:53,460 >> Па-другое, гэта спрашчэнне. 1492 01:07:53,460 --> 01:07:56,750 Гэта спрашчае крокі, якія мы прыняць, каб вырашыць нашу праблему. 1493 01:07:56,750 --> 01:07:59,300 Printf, функцыі, такія як Printf, функцыі, такія як у верхняй 1494 01:07:59,300 --> 01:08:03,560 усе рэчы, якія дазваляюць нам спрасціць код ўніз так лягчэй. 1495 01:08:03,560 --> 01:08:05,830 І апошняе, што з'яўляецца магчымасць шматразовага выкарыстання. 1496 01:08:05,830 --> 01:08:08,710 >> Так на тое, што ў нас ёсць функцыя называецца Printf 1497 01:08:08,710 --> 01:08:11,990 што мы можам назваць шмат розных раз і дазваляе яму быць шматразовага выкарыстання. 1498 01:08:11,990 --> 01:08:14,980 Калі б мне давялося пісаць Printf, Я пішу толькі адзін раз. 1499 01:08:14,980 --> 01:08:16,439 Яна існуе толькі ў гэтым адным месцы. 1500 01:08:16,439 --> 01:08:19,890 Калі б я хацеў, каб зрабіць гэта зноў, я б павінны скапіяваць і ўставіць усё, што 1501 01:08:19,890 --> 01:08:21,760 у маёй другой радку кода. 1502 01:08:21,760 --> 01:08:24,880 Вось чаму, калі мы створым функцыю што існуе па-за нашага галоўнага, 1503 01:08:24,880 --> 01:08:26,880 мы можам толькі заклікаць гэта і выкарыстоўваць яго, калі 1504 01:08:26,880 --> 01:08:29,604 мы павінны так, што гэта нашмат прасцей, для нас, як праграмы для запісу. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Такім чынам, шлях, які мы б на самай справе пісаць функцыя вельмі падобная, так? 1507 01:08:35,549 --> 01:08:37,590 Гэта свайго роду першы выпадак, у якім мы будзем 1508 01:08:37,590 --> 01:08:42,830 см функцыю бяруць на стыль адрозніваецца, чым наш асноўны Int пустэчу. 1509 01:08:42,830 --> 01:08:46,779 У гэтым выпадку, калі б я хацеў, каб напісаць функцыю з імем д, праўда? 1510 01:08:46,779 --> 01:08:49,370 >> І тут значэнне INT гэта ўсё распавядаў мне, 1511 01:08:49,370 --> 01:08:51,649 што я хачу, каб гэта функцыянаваць, каб вярнуцца да мяне? 1512 01:08:51,649 --> 01:08:54,484 Калі я хачу, каб куб цэлае, Я збіраюся хочаце ўвесці. 1513 01:08:54,484 --> 01:08:55,525 Гэтыя параметры. 1514 01:08:55,525 --> 01:08:58,490 Я збіраюся уводзіць значэнне тыпу Int. 1515 01:08:58,490 --> 01:09:01,300 І я збіраюся вярнуцца іншае значэнне тып Int. 1516 01:09:01,300 --> 01:09:03,050 І тут, як вы бачыце, усё, што я раблю 1517 01:09:03,050 --> 01:09:07,300 з'яўляецца тое, што ў куб мой ўваход як мой выхаду і вяртання яго. 1518 01:09:07,300 --> 01:09:10,790 >> Так што ўсё гэта робіць функцыя з'яўляецца займае нейкае лік. 1519 01:09:10,790 --> 01:09:14,979 Гэта памнажае яго на сабе два разы так, каб ён кубоў ў дзеянне. 1520 01:09:14,979 --> 01:09:17,729 А потым ён вяртаецца усё, што выхад. 1521 01:09:17,729 --> 01:09:20,540 Такім чынам, у гэтым выпадку, гэта дзве лініі код, які мы павінны былі напісаць асобна. 1522 01:09:20,540 --> 01:09:22,880 Але калі мы хацелі назваць На гэтым некалькі разоў, 1523 01:09:22,880 --> 01:09:26,210 гэта нашмат прасцей набраць, што адзін лінія прама тут, што гэта ў кубе, чым 1524 01:09:26,210 --> 01:09:28,830 павінны прайсці некалькі разоў. 1525 01:09:28,830 --> 01:09:34,180 >> Такім чынам, спосаб, што практычна любы фарматаванне для любога віду функцыі 1526 01:09:34,180 --> 01:09:36,420 будзе існаваць, як тут. 1527 01:09:36,420 --> 01:09:38,659 Такім чынам, мы маем імя функцыі. 1528 01:09:38,659 --> 01:09:39,950 У гэтым выпадку, гэта называецца куб. 1529 01:09:39,950 --> 01:09:42,033 І мы называем гэта, таму што куб гэта лёгка запомніць. 1530 01:09:42,033 --> 01:09:44,220 Вы можаце назваць гэта квадрат і гэта на самай справе можа быць у кубе. 1531 01:09:44,220 --> 01:09:45,500 Не мае значэння. 1532 01:09:45,500 --> 01:09:48,020 Проста імя, што ты прысваення вашу функцыю. 1533 01:09:48,020 --> 01:09:51,660 >> Гэта прама тут, INT, з'яўляецца тып параметру трэба. 1534 01:09:51,660 --> 01:09:54,149 Такім чынам, што ж гэтую функцыю трэба для таго, каб працаваць? 1535 01:09:54,149 --> 01:09:55,990 Ну, яна павінна ўваход. 1536 01:09:55,990 --> 01:09:56,704 Я назваў яго ўводу. 1537 01:09:56,704 --> 01:09:58,120 Вы можаце назваць гэта, што вы хочаце. 1538 01:09:58,120 --> 01:10:00,500 Але мне трэба нешта тыпу Int. 1539 01:10:00,500 --> 01:10:03,730 Гэта адбываецца на самай справе выканаць усё, што ўсярэдзіне тут, 1540 01:10:03,730 --> 01:10:04,990 цела функцыі. 1541 01:10:04,990 --> 01:10:07,847 І тады тып якое вяртаецца прама тут, у гэтым int-- 1542 01:10:07,847 --> 01:10:09,680 Усё гэта кажа мне, гэта што гэтая функцыя 1543 01:10:09,680 --> 01:10:11,250 збіраецца вярнуцца да мяне ў міжнар. 1544 01:10:11,250 --> 01:10:14,460 Такім чынам, гэта зойме ў INT, і ён збіраецца даць вам назад у Int. 1545 01:10:14,460 --> 01:10:17,750 Усе разумеюць ці, як фарматаванне гэтага роду працы? 1546 01:10:17,750 --> 01:10:18,250 Прахладны. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> ДОБРА. 1549 01:10:25,740 --> 01:10:31,770 Так што не хвалюйцеся, калі гэта здаецца трохі абстрактны прама цяпер. 1550 01:10:31,770 --> 01:10:33,450 Гэта тое, што мы будзем казаць пра. 1551 01:10:33,450 --> 01:10:36,310 Мы ныраць глыбей пазней у курсе. 1552 01:10:36,310 --> 01:10:41,170 Такім чынам, што які-небудзь больш высокага ўзроўню абстракцыя гэтыя рэчы працуюць 1553 01:10:41,170 --> 01:10:43,530 з'яўляецца тое, што, у памяці, у кампутар, усё 1554 01:10:43,530 --> 01:10:47,660 захоўваецца ў гэтым тыпе стэка, я павінен сказаць. 1555 01:10:47,660 --> 01:10:49,070 >> Дык там на самым версе. 1556 01:10:49,070 --> 01:10:50,861 Я не ведаю, калі вы хлопцы, можаце ўбачыць, што добра. 1557 01:10:50,861 --> 01:10:52,590 Я паспрабую, каб павялічыць. 1558 01:10:52,590 --> 01:10:55,111 Тут на вяршыні, мы маюць фізічны тэкст 1559 01:10:55,111 --> 01:10:57,860 што кампутар interpreting-- усе нулі і адзінкі, якія 1560 01:10:57,860 --> 01:10:59,540 існуюць у нашым кампутары. 1561 01:10:59,540 --> 01:11:03,390 А потым мы ініцыялізаваць Дадзеныя дадзеных і неинициализированных, 1562 01:11:03,390 --> 01:11:05,340 што мы называем глабальныя зменныя. 1563 01:11:05,340 --> 01:11:08,200 Так зменных, якія існуюць ўсіх праграм 1564 01:11:08,200 --> 01:11:11,815 і па ўсёй вашай, па сутнасці, код. 1565 01:11:11,815 --> 01:11:13,940 Не турбуйцеся, калі вы, хлопцы, выгляд незразумела пра гэта. 1566 01:11:13,940 --> 01:11:16,060 Гэта сапраўды не мае значэння прама цяпер. 1567 01:11:16,060 --> 01:11:18,680 >> І тады ў нас ёсць тое, што называецца куча ў стэку. 1568 01:11:18,680 --> 01:11:21,140 Падумайце аб стэку літаральна гэтак жа, як стэк рэчаў, 1569 01:11:21,140 --> 01:11:23,098 стэк адрозніваецца рэчы штурхаюць зверху 1570 01:11:23,098 --> 01:11:27,870 адзін ад аднаго, што захоўваць розныя Зменныя і сінтаксіс ў кодзе. 1571 01:11:27,870 --> 01:11:31,460 А потым тут, у самым нізе, у нас ёсць зменныя асяроддзя 1572 01:11:31,460 --> 01:11:35,480 што вы выконваеце ў проста ваш маленькі радкі кода. 1573 01:11:35,480 --> 01:11:40,510 >> І мы толькі збіраемся, каб павялічыць У ад фактычнага часткі стэка. 1574 01:11:40,510 --> 01:11:43,880 Дык вось тут, калі б мы былі, каб павялічыць У толькі на гэтай галіне стэка, 1575 01:11:43,880 --> 01:11:45,140 гэта тое, што ён выглядае. 1576 01:11:45,140 --> 01:11:48,590 І гэта на самай справе вельмі важна калі вы, хлопцы, казаць пра функцыі, 1577 01:11:48,590 --> 01:11:52,330 таму што паведамленне аб тым, што памяці кампутара 1578 01:11:52,330 --> 01:11:55,600 захоўвае зменныя і функцыі 1579 01:11:55,600 --> 01:11:58,790 і параметры як ваш функцыі і вашы асноўныя зменныя 1580 01:11:58,790 --> 01:12:00,190 у розных месцах. 1581 01:12:00,190 --> 01:12:03,390 >> Так што цяпер, галоўнае, фактычная функцыя 1582 01:12:03,390 --> 01:12:04,780 што вы выкананне ў кодзе. 1583 01:12:04,780 --> 01:12:08,050 Вы яго параметры захоўваюцца тут і яе лакальныя зменныя захоўваюцца тут. 1584 01:12:08,050 --> 01:12:12,270 Лакальная пераменная проста азначае любую зменную што існуюць толькі ў гэтай функцыі. 1585 01:12:12,270 --> 01:12:15,610 І на ім, у вас ёсць гэта асобная функцыя называецца куб. 1586 01:12:15,610 --> 01:12:18,240 Вы павінны гэта параметры а таксама тых мясцовых жыхароў. 1587 01:12:18,240 --> 01:12:21,540 >> І прычына вы можаце бачыце тут тое, што 1588 01:12:21,540 --> 01:12:25,030 адбываецца, калі куб займае ў Значэнне з асноўнага функцыі 1589 01:12:25,030 --> 01:12:27,640 з'яўляецца тое, што на самой справе гэта капіяванне што на працягу. 1590 01:12:27,640 --> 01:12:31,470 Так што, калі я хацеў куба 2 і вярнуцца 8, што 2 1591 01:12:31,470 --> 01:12:33,730 фактычна ўводзіцца ў якасці параметру, і гэта 1592 01:12:33,730 --> 01:12:37,690 скапіяваныя, так што ў вас ёсць гэта існуючая у двух розных месцах у памяці. 1593 01:12:37,690 --> 01:12:40,520 І вы павінны быць вельмі асцярожныя, на запамінанне, якія адзін з тых, 1594 01:12:40,520 --> 01:12:42,520 вы на самой справе маніпулявання. 1595 01:12:42,520 --> 01:12:47,170 І прыклад таго, што адбылося гэта было б вельмі, вельмі дрэнна 1596 01:12:47,170 --> 01:12:48,050 існуе прама тут. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Так прама тут, у мяне, у тэорыі, Праграма прама тут, галоўным функцыя 1599 01:12:58,650 --> 01:13:02,180 што я абвясціўшы Int х роўны 1. 1600 01:13:02,180 --> 01:13:04,505 Я аб'яўляю яшчэ адзін INT ў роўны 2. 1601 01:13:04,505 --> 01:13:06,380 І тады я бягу яго праз гэтую функцыю 1602 01:13:06,380 --> 01:13:09,647 называецца падпампоўкі, куды я мяркую, што гэта абмен двух значэнняў. 1603 01:13:09,647 --> 01:13:11,480 А потым я збіраюся друкаваць іх, праўда? 1604 01:13:11,480 --> 01:13:13,220 Гэта тое, што я хачу, каб гэтая праграма рабіць. 1605 01:13:13,220 --> 01:13:15,180 >> Такім чынам, давайце спусціцца і паглядзець. 1606 01:13:15,180 --> 01:13:18,200 Так што, калі я на самой справе напісаць адрозніваецца Функцыя, як вы можаце бачыць, 1607 01:13:18,200 --> 01:13:19,750 у нас ёсць асноўныя функцыі тут. 1608 01:13:19,750 --> 01:13:22,860 І тады ў нас ёсць нашы Другая функцыя тут. 1609 01:13:22,860 --> 01:13:24,520 Пустата падпампоўкі. 1610 01:13:24,520 --> 01:13:27,090 Пустата азначае толькі тое, што гэта не збіраецца нічога вяртаць. 1611 01:13:27,090 --> 01:13:28,930 Назва Функцыя называецца своп, і гэта 1612 01:13:28,930 --> 01:13:33,730 збіраецца впускных двух зменных, Int А і INT B, з вашай [неразборліва] функцыі. 1613 01:13:33,730 --> 01:13:39,010 >> Так па сутнасці тут, мы праходзячы х і у ў гэтую функцыю. 1614 01:13:39,010 --> 01:13:40,760 І калі б мы стварыць this-- таму мы хочам 1615 01:13:40,760 --> 01:13:42,420 стварыць часовае значэнне, праўда? 1616 01:13:42,420 --> 01:13:43,930 Мы збіраемся прызначыць, што а. 1617 01:13:43,930 --> 01:13:45,388 А потым будзе сапраўднае роўнай б. 1618 01:13:45,388 --> 01:13:47,660 І б збіраецца вярнуцца дзе значэнне тэмпературы было, 1619 01:13:47,660 --> 01:13:51,070 якая ўяўляе сабой, таму што, калі Вы хочаце, каб абмяняць рэчы, 1620 01:13:51,070 --> 01:13:52,320 Вы не можаце проста падабаецца памяняць іх месцамі. 1621 01:13:52,320 --> 01:13:54,360 >> Вы павінны трымаць аднаго з іх тут, так што ён памятае, 1622 01:13:54,360 --> 01:13:56,485 што гэта такое, таму што, калі Вы памяняць адзін, вы забыліся 1623 01:13:56,485 --> 01:13:58,200 што гэта першапачатковае значэнне было, праўда? 1624 01:13:58,200 --> 01:14:00,990 Так у тэорыі, гэтая праграма павінна працаваць, ці не так? 1625 01:14:00,990 --> 01:14:03,630 Калі б я хацеў, каб памяняць месцамі два, яны павінны памяняць. 1626 01:14:03,630 --> 01:14:05,490 Такім чынам, давайце запусціць яго і паглядзець, ці працуе ён. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Такім чынам, як вы, хлопцы, можаце ўбачыць, х калісьці быў 1 і ў 2 быў калісьці. 1629 01:14:16,940 --> 01:14:21,475 І калі я раздрукаваць яго, х яшчэ 1 і Y 2. 1630 01:14:21,475 --> 01:14:25,970 Хм, гэтая праграма не здаюцца працуе так, што я хачу, каб працаваць. 1631 01:14:25,970 --> 01:14:29,950 Хто-небудзь хоча, каб зрабіць здымак на гадаць, чаму гэта адбываецца? 1632 01:14:29,950 --> 01:14:34,430 Гэта мае дачыненне да шляху што розныя рэчы 1633 01:14:34,430 --> 01:14:38,172 захоўваюцца ў розных месцах у памяці. 1634 01:14:38,172 --> 01:14:39,377 >> ДОБРА. 1635 01:14:39,377 --> 01:14:41,960 Такім чынам, вы, хлопцы, не трэба турбавацца занадта шмат пра гэта прама цяпер. 1636 01:14:41,960 --> 01:14:46,610 Але ведаю, што куб Гадзінны зменныя былі б, 1637 01:14:46,610 --> 01:14:49,230 таму што тут, у нашай функцыі, мы абвясцілі А і У 1638 01:14:49,230 --> 01:14:53,570 а зменныя, якія існуюць у кубе, што функцыя. 1639 01:14:53,570 --> 01:14:59,490 Але, як вы бачыце, параметры, якія ён прымае ў захоўваліся тут. 1640 01:14:59,490 --> 01:15:01,370 Але мы не былі на самай справе вяртанне нічога. 1641 01:15:01,370 --> 01:15:03,120 Мы не былі на самай справе змены х і у. 1642 01:15:03,120 --> 01:15:04,440 Мы былі толькі ў замене і б. 1643 01:15:04,440 --> 01:15:08,340 >> Мы скапіявалі х і у ў то называецца і б. 1644 01:15:08,340 --> 01:15:11,092 Але мы ніколі фактычна маніпуляваць х і ў саміх сябе. 1645 01:15:11,092 --> 01:15:12,800 Вы, хлопцы, бачачы як гэта адбываецца? 1646 01:15:12,800 --> 01:15:16,140 Гэта мы проста скапіявалі іх скончылася, але мы на самай справе не захоўваецца 1647 01:15:16,140 --> 01:15:18,030 трэк, дзе яны былі ў памяці. 1648 01:15:18,030 --> 01:15:20,127 >> І вось цяпер кампутар шукае, О, я 1649 01:15:20,127 --> 01:15:21,960 запусціць гэтую рэч праз гэта выдатны функцыя. 1650 01:15:21,960 --> 01:15:23,690 Але х і ў яшчэ х і у. 1651 01:15:23,690 --> 01:15:26,240 Нічога не здарылася ім з-за таго 1652 01:15:26,240 --> 01:15:28,340 што гэтых параметраў і лакальныя зменныя 1653 01:15:28,340 --> 01:15:30,150 захоўваюцца ў іншы месца ў памяці. 1654 01:15:30,150 --> 01:15:32,030 І гэта вышэй за ўзровень Канцэпцыя, што мы будзем 1655 01:15:32,030 --> 01:15:34,300 пачаць бачыць пазней у курсе. 1656 01:15:34,300 --> 01:15:36,950 Але дакладна ведаю, што гэта праблема, якая можа здарыцца 1657 01:15:36,950 --> 01:15:41,400 і што мы будзем высветліць спосабы аб тым, як мець справу з гэтым пазней у курсе. 1658 01:15:41,400 --> 01:15:41,900 ДОБРА. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 Добра. 1661 01:15:48,250 --> 01:15:51,780 Такім чынам, апошняе паняцце мы на самай справе адбываецца, каб пакрыць 1662 01:15:51,780 --> 01:15:53,880 што будзе карысна для PSET на гэтым тыдні 1663 01:15:53,880 --> 01:15:56,060 тое, што называюць Аргументы каманднага радка. 1664 01:15:56,060 --> 01:16:00,820 Так Роб ў сваёй лекцыі прайшлі выгляд коратка, як гэтыя працы. 1665 01:16:00,820 --> 01:16:02,770 Па сутнасці ведаю, што калі вы пішаце 1666 01:16:02,770 --> 01:16:06,280 як асноўнай функцыі, калі мы напісаў функцый да і ў мінулым, 1667 01:16:06,280 --> 01:16:07,804 у нас было Int асноўны пустэчу. 1668 01:16:07,804 --> 01:16:10,470 І прычына ў нас было несапраўдным ёсць таму, што нашы праграмы не зрабіў 1669 01:16:10,470 --> 01:16:12,520 трэба ўваходных значэнняў для запуску, праўда? 1670 01:16:12,520 --> 01:16:16,020 Калі я пабег Марыё, мне не трэба на самай справе проста увядзіце тое 1671 01:16:16,020 --> 01:16:16,970 калі я бег Марыё. 1672 01:16:16,970 --> 01:16:20,170 Я мог бы падказаць карыстальніку ў далейшым. 1673 01:16:20,170 --> 01:16:22,450 Але не заўсёды будзе так. 1674 01:16:22,450 --> 01:16:24,980 >> Напрыклад, у гэтым Праблема тыдзень ўсталёўвае, 1675 01:16:24,980 --> 01:16:28,365 Вы збіраецеся быць прапанавана, што ў Акрамя запуску вашай праграмы, 1676 01:16:28,365 --> 01:16:30,990 Вы збіраецеся хочаце, каб увесці некаторыя рэчы ў прама, як вы 1677 01:16:30,990 --> 01:16:32,050 запусціць праграму. 1678 01:16:32,050 --> 01:16:34,720 Такім чынам, як мы робім, што называецца аргумент каманднага радка, што 1679 01:16:34,720 --> 01:16:37,280 гэта як аргумент Вы можаце ўвесці непасрэдна 1680 01:16:37,280 --> 01:16:39,260 як вы спрабуеце запусціць вашу праграму. 1681 01:16:39,260 --> 01:16:44,680 >> Такім чынам, пазначэнне для гэтага, гэта даволі складаны выгляд, 1682 01:16:44,680 --> 01:16:47,320 але гэта сапраўды не тое, што цяжка. Так INT main-- 1683 01:16:47,320 --> 01:16:48,910 гэта проста ваш галоўны функцыя. 1684 01:16:48,910 --> 01:16:52,110 У ARGC коскі радок ARGV дужках. 1685 01:16:52,110 --> 01:16:56,040 Такім чынам, усё, што кажа, што гэта INT argc-- ўсё, што кажу вам, 1686 01:16:56,040 --> 01:17:00,560 з'яўляецца тое, што тыя лік Аргументы кампутар павінен чакаць. 1687 01:17:00,560 --> 01:17:03,130 >> Так адна рэч, якая сапраўды Важна сачыць 1688 01:17:03,130 --> 01:17:07,080 з'яўляецца фізічная імя вашай праграмы лічыцца адным з тых аргументаў. 1689 01:17:07,080 --> 01:17:11,080 Так што, калі я хацеў, каб мая праграма запусціць адзін дадатковы плюс каманднага радка 1690 01:17:11,080 --> 01:17:13,310 Аргумент, на самай справе я будзе мець два. 1691 01:17:13,310 --> 01:17:15,080 ARGC на самай справе будзе два. 1692 01:17:15,080 --> 01:17:18,010 І тады радок ARGV bracket-- усё, што робіць, 1693 01:17:18,010 --> 01:17:20,410 гэта дае мне Масіў радкоў, гэта 1694 01:17:20,410 --> 01:17:24,870 збіраюся проста паказаць і захаваць тое, што усе гэтыя аргументы каманднага радка. 1695 01:17:24,870 --> 01:17:34,090 >> Так, напрыклад, калі б я хацеў, каб гэта Праграма, ./copy входной_файл выходной_файл, праўда? 1696 01:17:34,090 --> 01:17:37,330 Гэта проста Тыповая каманда Linux. 1697 01:17:37,330 --> 01:17:38,830 Што на самой справе ARGC? 1698 01:17:38,830 --> 01:17:41,320 Колькі аргументаў каманднага радка ёсць на самай справе ў гэта? 1699 01:17:41,320 --> 01:17:45,130 Усё гэта робіць, гэта зрабіць копію входной_файл імя аднаго файла 1700 01:17:45,130 --> 01:17:47,070 і капіюе яго ў іншы файл, праўда? 1701 01:17:47,070 --> 01:17:48,700 Вось усё гэта робіць. 1702 01:17:48,700 --> 01:17:53,080 Як вы можаце бачыць, я раблю гэта па адной лініі фактычна не маючы патрэбу ў праграму. 1703 01:17:53,080 --> 01:17:55,380 >> Што наша ARGC ў гэтым выпадку? 1704 01:17:55,380 --> 01:17:58,968 Колькі аргументаў ў нас? 1705 01:17:58,968 --> 01:17:59,634 АЎДЫТОРЫЯ: Тры? 1706 01:17:59,634 --> 01:18:01,200 ANDI Пэн: У нас ёсць тры, дакладна. 1707 01:18:01,200 --> 01:18:05,030 Так што гэта вельмі інтуітыўна проста думаю, што гэта проста 1708 01:18:05,030 --> 01:18:06,290 входной_файл і выходной_файл. 1709 01:18:06,290 --> 01:18:10,190 Але ведаю, што фізічнае імя з Праграма вы працуеце разлічвае як адзін. 1710 01:18:10,190 --> 01:18:13,220 Такім чынам, у гэтым выпадку, на самай справе ARGC тры. 1711 01:18:13,220 --> 01:18:15,860 Як наконт таго, што ARGV 0? 1712 01:18:15,860 --> 01:18:18,180 Памятаеце, што ўсё з Аргументы каманднага радка 1713 01:18:18,180 --> 01:18:20,500 былі захаваны ў масіве радкоў. 1714 01:18:20,500 --> 01:18:24,140 Так што, калі я спрабую атрымаць да яго доступ, тое, што будзе ARGV кранштэйн 0 даць мне? 1715 01:18:24,140 --> 01:18:25,364 >> АЎДЫТОРЫЯ: [неразборліва]. 1716 01:18:25,364 --> 01:18:26,155 ANDI Пэн: Точно. 1717 01:18:26,155 --> 01:18:28,550 Гэта дасць мне кропку скараціць копію, таму што гэта 1718 01:18:28,550 --> 01:18:31,070 0-я стыхія, Першы элемент майго масіва. 1719 01:18:31,070 --> 01:18:33,236 Што пра ARGV 1? 1720 01:18:33,236 --> 01:18:33,945 >> АЎДЫТОРЫЯ: входной_файл. 1721 01:18:33,945 --> 01:18:35,070 ANDI Пэн: входной_файл, дакладна. 1722 01:18:35,070 --> 01:18:36,272 Што пра ARGV 2? 1723 01:18:36,272 --> 01:18:37,022 АЎДЫТОРЫЯ: OUTFILE. 1724 01:18:37,022 --> 01:18:38,190 ANDI Пэн: OUTFILE. 1725 01:18:38,190 --> 01:18:39,290 Гэта крыху больш складана ў цяперашні час. 1726 01:18:39,290 --> 01:18:42,630 Што вы, хлопцы, думаю, ARGV 3 будзе даваць мне 1727 01:18:42,630 --> 01:18:45,522 калі б я паспрабаваў надрукаваць, што з? 1728 01:18:45,522 --> 01:18:48,260 >> АЎДЫТОРЫЯ: [неразборліва]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI Пэн: Ці было ў вас рукі ўверх? 1730 01:18:50,164 --> 01:18:50,663 Так. 1731 01:18:50,663 --> 01:18:51,550 >> АЎДЫТОРЫЯ: альтэрнатыва. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI Пэн: Точно. 1733 01:18:52,341 --> 01:18:55,440 Так што памятаеце, у лекцыі, што мы значыць у канцы гоначнага то 1734 01:18:55,440 --> 01:18:56,640 называецца нуль-тэрмінатар? 1735 01:18:56,640 --> 01:18:58,890 Мы ўвойдзем у гэта таксама далей у класе. 1736 01:18:58,890 --> 01:19:02,472 Але ведаю, што ў пазначэннях, спосаб кампутар 1737 01:19:02,472 --> 01:19:04,430 ведае, што гэта канец масіва з'яўляецца тое, што гэтым 1738 01:19:04,430 --> 01:19:07,310 ставіць тое, што называецца нулявым тэрмінатар або працяжнік роўная нуля. 1739 01:19:07,310 --> 01:19:12,047 >> Так што, калі вы спрабуеце атрымаць доступ ARGV 3, Вы збіраецеся ударыць гэтую рысу 0. 1740 01:19:12,047 --> 01:19:13,630 Гэта нават больш пытанне з падвохам. 1741 01:19:13,630 --> 01:19:17,020 Што пра ARGV 4? 1742 01:19:17,020 --> 01:19:20,920 Так гэта мінулае нуль тэрмінатар, міма межах масіве. 1743 01:19:20,920 --> 01:19:24,380 Што вы думаеце, што адбудзецца, калі мы спрабуем зрабіць? 1744 01:19:24,380 --> 01:19:25,842 >> АЎДЫТОРЫЯ: [неразборліва]? 1745 01:19:25,842 --> 01:19:26,550 ANDI Пэн: На ​​жаль? 1746 01:19:26,550 --> 01:19:28,025 Скажыце, што крыху гучней? 1747 01:19:28,025 --> 01:19:29,086 >> АЎДЫТОРЫЯ: [неразборліва]. 1748 01:19:29,086 --> 01:19:29,710 ANDI Пэн: Так. 1749 01:19:29,710 --> 01:19:32,420 Гэтае імя з плошчу вы хутчэй за ўсё, атрымаеце. 1750 01:19:32,420 --> 01:19:36,610 Але ведаю, што ARGV 4-- што дазваляе атрымаць доступ да 1751 01:19:36,610 --> 01:19:38,610 месца вашага кампутара памяці, што вы на самай справе 1752 01:19:38,610 --> 01:19:41,650 не павінна быць кранальным, таму што Прама зараз вы ведаеце, што гэта ARGV. 1753 01:19:41,650 --> 01:19:46,220 Вы ведаеце, што гэта масіў памеру 3 што мае кропка капіявання, INFILE і выходной_файл. 1754 01:19:46,220 --> 01:19:50,200 >> Калі вы паспрабуеце пайсці так далёка за межы, што што вы міма пустога тэрмінатара, 1755 01:19:50,200 --> 01:19:53,050 Ваш кампутар мае, верагодна, захоўваць нешта ў ARGV 4. 1756 01:19:53,050 --> 01:19:55,790 І вы сапраўды не павінны быць дазволены доступ у ARGV 4, 1757 01:19:55,790 --> 01:19:58,130 таму што ў вас ёсць файл шафа, і вы толькі 1758 01:19:58,130 --> 01:19:59,790 дазволены доступ да гэтых трох паліц. 1759 01:19:59,790 --> 01:20:02,870 Але калі вы спрабуеце дасягнуць далёка за межы шэльф, дзе вы маеце права, 1760 01:20:02,870 --> 01:20:04,930 Вы збіраецеся пачаць важдацца з іншыя рэчы ў памяці кампутара. 1761 01:20:04,930 --> 01:20:06,690 Гэта будзе вельмі, вельмі дрэнна. 1762 01:20:06,690 --> 01:20:07,440 Так проста ведаю, што. 1763 01:20:07,440 --> 01:20:10,370 Будзьце вельмі асцярожныя, што вы не проста выпадкова пачаць 1764 01:20:10,370 --> 01:20:14,772 доступ да элементаў масіва, што не ў тым, што вы хочаце стварыць. 1765 01:20:14,772 --> 01:20:17,114 Так. 1766 01:20:17,114 --> 01:20:18,430 >> ДОБРА. 1767 01:20:18,430 --> 01:20:26,360 Так што мы збіраемся зрабіць яшчэ адзін Тэрмінал прыклад тут. 1768 01:20:26,360 --> 01:20:27,300 ДОБРА. 1769 01:20:27,300 --> 01:20:29,900 Так Роб хутка ў лекцыі другі дзень пайшоў 1770 01:20:29,900 --> 01:20:35,040 праз гэты прыклад, дзе была INT INT асноўны ARGC радок ARGV 1771 01:20:35,040 --> 01:20:39,090 кранштэйны, якія кажа мне, што я будзе мець аргументы каманднага радка. 1772 01:20:39,090 --> 01:20:41,860 >> Ён, калі ARGC роўная роўны 2-- памятаеце, 1773 01:20:41,860 --> 01:20:45,070 роўная роўна азначае параўнанне. 1774 01:20:45,070 --> 01:20:47,980 Калі ён роўны 2, то я да друку прывітанне, 1775 01:20:47,980 --> 01:20:51,190 што было першай элемент масіва з'яўляецца. 1776 01:20:51,190 --> 01:20:54,100 Інакш друк, прывітанне свет. 1777 01:20:54,100 --> 01:20:56,300 Што гэта збіраецца адбылося ў асноўным? 1778 01:20:56,300 --> 01:21:00,570 Можа хто-то проста растлумачыць Англійская што гэтая праграма робіць? 1779 01:21:00,570 --> 01:21:01,272 Так. 1780 01:21:01,272 --> 01:21:08,160 >> АЎДЫТОРЫЯ: Калі нехта набраў у каманду і сказаў, што іх імя і прозвішча, 1781 01:21:08,160 --> 01:21:12,096 гэта будзе не проста друкаваць Першы і сказаць, прывітанне, 1782 01:21:12,096 --> 01:21:14,090 усе ваша імя ёсць. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI Пэн: Добра, давайце яго запуску. 1784 01:21:15,410 --> 01:21:22,470 Так, напрыклад, калі б я, каб зрабіць гэты файл зрабіць прывітанне прывітанне, мэтай якіх 1785 01:21:22,470 --> 01:21:24,500 , Мэтай якіх тое, што ты хочаш, каб увесці? 1786 01:21:24,500 --> 01:21:25,900 >> АЎДЫТОРЫЯ: імя і прозвішча. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI Пэн: імя і прозвішча? 1788 01:21:27,280 --> 01:21:28,180 Прасторы? 1789 01:21:28,180 --> 01:21:29,690 >> АЎДЫТОРЫЯ: Так. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI Пэн: Можа хто-небудзь сказаць мне прама зараз, што ARGC? 1791 01:21:33,490 --> 01:21:35,630 Проста тут? 1792 01:21:35,630 --> 01:21:36,290 Ой, прабачце. 1793 01:21:36,290 --> 01:21:37,920 Дазвольце мне вярнуцца. 1794 01:21:37,920 --> 01:21:40,740 Колькі аргументаў каманднага радка are-- вы, хлопцы, не магу бачыць. 1795 01:21:40,740 --> 01:21:43,760 Але я паспрабую, каб павялічыць. 1796 01:21:43,760 --> 01:21:44,290 Я спрабую. 1797 01:21:44,290 --> 01:21:45,414 Так, ёсць тры, ці не так? 1798 01:21:45,414 --> 01:21:48,750 Гэта кропка слэш прывітанне, гэта Эндзі, і гэта Пэн. 1799 01:21:48,750 --> 01:21:51,870 >> Так што вы, хлопцы, думаю, што гэта Праграма будзе раздрукоўкі? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Ох. 1802 01:21:56,060 --> 01:21:57,120 О, прабачце. 1803 01:21:57,120 --> 01:21:57,810 Няправільнае імя. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 Гэта раздрукоўкі, прывітанне свет. 1806 01:22:06,130 --> 01:22:09,603 Хто-небудзь хоча растлумачыць чаму гэта адбываецца? 1807 01:22:09,603 --> 01:22:10,103 Да? 1808 01:22:10,103 --> 01:22:11,019 >> АЎДЫТОРЫЯ: [неразборліва]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI Пэн: Точно. 1811 01:22:15,230 --> 01:22:19,940 Дык вось, з'яўляюцца ўмоўнымі ёсць, калі ARGC роўная роўная 2. 1812 01:22:19,940 --> 01:22:23,650 Такім чынам, толькі ў тым выпадку, існуе два аргументу каманднага радка. 1813 01:22:23,650 --> 01:22:25,850 Тады я іду да друку, прывітанне, што гэта такое. 1814 01:22:25,850 --> 01:22:28,210 А яшчэ, я збіраюся надрукаваць толькі, прывітанне свет. 1815 01:22:28,210 --> 01:22:30,040 Гэтак жа хто-небудзь хоча каб даць мне прыклад 1816 01:22:30,040 --> 01:22:35,050 аб тым, як я мог бы на самай справе зрабіць гэта, каб надрукаваць значэнне ARGV 1? 1817 01:22:35,050 --> 01:22:38,600 >> Што б я, каб ўваход тут? 1818 01:22:38,600 --> 01:22:39,840 Толькі адна рэч, дакладна? 1819 01:22:39,840 --> 01:22:42,900 Паколькі кропка прывітанне да ўжо лічыцца як першы аргумент. 1820 01:22:42,900 --> 01:22:43,930 У мяне ёсць яшчэ адзін толькі. 1821 01:22:43,930 --> 01:22:46,470 Так кропка прывітанне, калі я проста зрабіць Эндзі. 1822 01:22:46,470 --> 01:22:47,270 Добры дзень, Эндзі. 1823 01:22:47,270 --> 01:22:49,186 Ці разумее ўсё чаму гэта адбываецца? 1824 01:22:49,186 --> 01:22:49,602 Так. 1825 01:22:49,602 --> 01:22:52,500 >> АЎДЫТОРЫЯ: Так прастора паміж Каманда line-- гэта [неразборліва]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI PENG: Няма 1828 01:22:56,830 --> 01:23:03,810 Так прасторы ў камандным радку Аргумент, х, сказаць кампутар 1829 01:23:03,810 --> 01:23:06,820 што гэта пачатак новага радка. 1830 01:23:06,820 --> 01:23:11,130 Так радок ARGV here-- гэта крамы усе вашы аргументы лініі каманд 1831 01:23:11,130 --> 01:23:13,110 у радках. 1832 01:23:13,110 --> 01:23:17,420 І таму прастору ў камандным радку argument-- ўсё, што робіць вам сказаць, 1833 01:23:17,420 --> 01:23:21,030 гэта ў канцы аднаго радка і гэты час, каб перайсці да іншай. 1834 01:23:21,030 --> 01:23:21,990 >> Так. 1835 01:23:21,990 --> 01:23:23,530 Гэта вельмі важна для Ваш PSET, таму што вы 1836 01:23:23,530 --> 01:23:24,613 будзе адчуваць іх. 1837 01:23:24,613 --> 01:23:29,300 Дык хто-небудзь ёсць якія-небудзь пытанні па гэтай нагоды? 1838 01:23:29,300 --> 01:23:30,016 ОК, крута. 1839 01:23:30,016 --> 01:23:30,515 Да? 1840 01:23:30,515 --> 01:23:35,008 >> АЎДЫТОРЫЯ: Так што прычына вам будзе змясціць цэлае аргумент вапнавае замест 1841 01:23:35,008 --> 01:23:40,059 з [неразборліва] будзе, калі вы хочаце ўвесці дадатковую інфармацыю 1842 01:23:40,059 --> 01:23:41,030 [Неразборліва]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI Пэн: Так, менавіта так. 1844 01:23:42,090 --> 01:23:45,370 Некаторыя праграмы патрабуюць для ўводу аргументу каманднага радка 1845 01:23:45,370 --> 01:23:47,732 што яна праходзіць у і які выкарыстоўвае гэта. 1846 01:23:47,732 --> 01:23:49,035 Так. 1847 01:23:49,035 --> 01:23:50,410 АЎДЫТОРЫЯ: Так што, калі [неразборліва]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI Пэн: Ну, тое, што ў мяне ёсць каб затым змяніць у маёй праграме? 1850 01:23:58,870 --> 01:23:59,870 >> АЎДЫТОРЫЯ: Проста 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI Пэн: Чаму гэта адбываецца, як вы думаеце? 1853 01:24:15,020 --> 01:24:18,940 >> АЎДЫТОРЫЯ: Таму што [неразборліва]. 1854 01:24:18,940 --> 01:24:22,370 >> АЎДЫТОРЫЯ: Вы павінны былі б змяніць яго на 2 [неразборліва]. 1855 01:24:22,370 --> 01:24:23,484 >> АЎДЫТОРЫЯ: 1 і 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI Пэн: 1 і 2, дакладна. 1857 01:24:24,650 --> 01:24:29,150 Такім чынам, у гэтым выпадку, вы, верагодна, хочуць мець двух Printf statements-- 1858 01:24:29,150 --> 01:24:32,601 які друкуецца ARGV 1 і той, які друкуецца ARGV 2. 1859 01:24:32,601 --> 01:24:33,100 Вось. 1860 01:24:33,100 --> 01:24:34,516 Я можа рэальна зрабіць што рэальны хуткі. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Там вы ідзяце. 1863 01:24:47,320 --> 01:24:48,287 Ох. 1864 01:24:48,287 --> 01:24:49,370 Не зусім тое, што вы хацелі. 1865 01:24:49,370 --> 01:24:52,590 Але калі вы, хлопцы, важдацца з фарматаванне, ён выйдзе. 1866 01:24:52,590 --> 01:24:54,981 Так. 1867 01:24:54,981 --> 01:24:55,480 Прахладны. 1868 01:24:55,480 --> 01:24:57,670 Я ведаю, мы крыху кароткі па часе. 1869 01:24:57,670 --> 01:25:02,469 Але я проста хачу, каб хутка правесці пару хвілін, якія праходзяць праз helpful-- 1870 01:25:02,469 --> 01:25:03,760 АЎДЫТОРЫЯ: У вас ёсць дзве хвіліны. 1871 01:25:03,760 --> 01:25:05,010 ANDI Пэн: у мяне ёсць дзве хвіліны? 1872 01:25:05,010 --> 01:25:06,340 Дзякуй. 1873 01:25:06,340 --> 01:25:09,180 Некаторыя хуткія падказкі Pset. 1874 01:25:09,180 --> 01:25:13,100 Такім чынам, для гэтай PSET, я настойліва рэкамендую, як я ўжо сказаў, усё чытаць спецыфікацыі. 1875 01:25:13,100 --> 01:25:16,804 Вы будзеце пісаць тры programs-- адзін называецца initials.c, адна называецца caesar.c, 1876 01:25:16,804 --> 01:25:17,720 адна называецца vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Некаторыя важныя парады, якія вы, хлопцы, сапраўды хочуць 1879 01:25:22,340 --> 01:25:25,040 захаваць у mind-- так ёсць гэтая функцыя 1880 01:25:25,040 --> 01:25:27,770 называецца atoi--, як я люблю казаць, Труа. 1881 01:25:27,770 --> 01:25:29,520 Незразумела, калі гэта на самай справе, як вы гэта кажаце. 1882 01:25:29,520 --> 01:25:32,510 Але ўсё, што ён робіць, гэта ўвод. 1883 01:25:32,510 --> 01:25:34,320 Ён пераўтворыць радок у Int. 1884 01:25:34,320 --> 01:25:37,490 Такім чынам, уяўляе ASCII для цэлага я. 1885 01:25:37,490 --> 01:25:40,310 Гэта проста пераўтварэнне ASCII значэння ў цэлае значэння. 1886 01:25:40,310 --> 01:25:44,510 Так што памятаеце ARGV, масіў, які захоўвае усе вашы каманды выстройваюцца arguments-- 1887 01:25:44,510 --> 01:25:46,300 ён захоўвае іх усіх, як струны. 1888 01:25:46,300 --> 01:25:50,010 І таму, калі вы хочаце, каб мець магчымасць у аднаго з іх сталі цэлы лік, 1889 01:25:50,010 --> 01:25:52,750 Вы будзеце мець выкарыстоўваць тут гэта значэнне. 1890 01:25:52,750 --> 01:25:56,690 >> Модулю, як мы разгледзелі раней у класе сёння, 1891 01:25:56,690 --> 01:25:59,550 дазваляе мець Астатняя частка, што вы ёсць. 1892 01:25:59,550 --> 01:26:03,620 Так што, калі ў нас ёсць вельмі, вельмі вялікія нумара ў Цэзар, 1893 01:26:03,620 --> 01:26:06,117 што, калі ў нас ёсць канец з радка Vigenere? 1894 01:26:06,117 --> 01:26:08,450 Як вы збіраецеся быць у стане каб атрымаць, што абгарнуць вакол? 1895 01:26:08,450 --> 01:26:11,330 Калі я ўдарыў г і я хачу гэта, каб вярнуцца да, 1896 01:26:11,330 --> 01:26:13,650 як я збіраюся атрымаць што, каб абгарнуць вакол? 1897 01:26:13,650 --> 01:26:15,960 Магчыма хочаце выкарыстоўваць модулю недзе там. 1898 01:26:15,960 --> 01:26:19,190 >> Па-другое, праглядаць вакол Ваша бібліятэка. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 Гэта новая бібліятэка ў нас ёсць. 1900 01:26:20,680 --> 01:26:25,270 Вы знойдзеце шмат вельмі, вельмі карысна functions-- ISUPPER, ISLOWER, 1901 01:26:25,270 --> 01:26:27,681 ToUpper, ToLower, ISALPHA, і гэтак далей. 1902 01:26:27,681 --> 01:26:30,680 Усе функцыі, якія будуць вельмі карысныя калі вы спрабуеце высветліць ,, 1903 01:26:30,680 --> 01:26:33,780 гэты персанаж маленькай літарай? 1904 01:26:33,780 --> 01:26:35,730 Як пераўтварыць гэта радок загалоўнай літары? 1905 01:26:35,730 --> 01:26:38,146 Усе гэтыя рэчы будуць вельмі, вельмі карысна для вашага PSET. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 ДОБРА. 1908 01:26:45,500 --> 01:26:49,644 >> Гадзіннік сёння ўвечары 8:00 да 11:00 у ТЭАЛ класе заўтра 1909 01:26:49,644 --> 01:26:51,310 а таксама ў сераду і ў чацвер ноччу. 1910 01:26:51,310 --> 01:26:53,280 Гадзіны працы офіса ў звычайныя. 1911 01:26:53,280 --> 01:26:56,180 Настойліва рэкамендую вам, хлопцы ўсё пачаць прама зараз, 1912 01:26:56,180 --> 01:27:00,490 таму што вы не хочаце быць, што Дзіця, які ў чацвер вечарам ёсць праблемы 1913 01:27:00,490 --> 01:27:03,870 прадставіўшы свой PSET і як, я не ведаю, што рабіць. 1914 01:27:03,870 --> 01:27:05,870 Я пачаў, я скончыў, я прадставіў. 1915 01:27:05,870 --> 01:27:09,737 Паспрабуйце даць сабе некаторыя магчымасці, таму што ў заўсёды адбываюцца праблемы кода. 1916 01:27:09,737 --> 01:27:11,570 Вы хочаце, каб пераканацца, што вы даеце сабе 1917 01:27:11,570 --> 01:27:14,810 шмат часу, каб быць у стане для завяршэння psets. 1918 01:27:14,810 --> 01:27:15,310 Прахладны. 1919 01:27:15,310 --> 01:27:16,720 Я павешу тут. 1920 01:27:16,720 --> 01:27:18,226 >> АЎДЫТОРЫЯ: Гэта онлайн ўжо? 1921 01:27:18,226 --> 01:27:20,850 ANDI Пэн: Я не ведаю, калі гэта ужо ў Інтэрнэце, але ён будзе. 1922 01:27:20,850 --> 01:27:23,500 Я павешу тут, калі хто- ужо якія-небудзь пытанні. 1923 01:27:23,500 --> 01:27:25,390 Дзякуй, што прыйшлі. 1924 01:27:25,390 --> 01:27:27,105