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 >> АНДИ Пенг: Това е 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 OK, това е ОК. 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 Аз съм главата на TA 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-- бъде като Andi, помогни ми, 64 00:02:31,570 --> 00:02:35,380 Не съм started-- I може да даде ви, че рамото да поплаче. 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 >> Mondays те са държани в TEAL класна стая в 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 Нашата прекрасна производство Harvard обединят ей там на това училище 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 Me, като TA и Джейсън като разбира се мениджър и Scaz като професор 151 00:06:33,970 --> 00:06:37,120 и Давид като професор и всички другите прекрасни TAS в този курс, 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 И тези, които сте виждали намръщено лица, усмихнати лица. 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 да hardcode във всички отговори на тях. 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 >> Design е по същество, как добре проектирана е кода си? 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 Style е един от най-лесните неща вие може да направите, за да получите пълно резултати. 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 >> Така че всички ние тук вероятно са написани есе по някое време през нашия Yale кариера. 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 превърне в една и съща есето, което е по-малко OK. 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 >> Така че, ако дойде при мен и казват, Andi, хей, аз съм наистина съжалявам, 319 00:14:03,100 --> 00:14:07,620 но аз мисля, че има няколко линии в моята Код снощи, че съм нещо като Гугъл, 320 00:14:07,620 --> 00:14:10,120 слезе от Stack Overflow, копиране и замазка, 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 АНДИ Пенг: Да. 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 >> АНДИ Пенг: Да. 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 >> Всеки път, когато един клас 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 >> A линия, докато по същество както е писано в синтаксиса 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-- Не know-- х е по-малко от една. 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 >> АУДИТОРИЯ: The правя, докато линия спринта на първо [недоловим]. 420 00:18:21,030 --> 00:18:22,120 >> АНДИ Пенг: Да, точно така. 421 00:18:22,120 --> 00:18:27,130 Така че не се прави по време на цикъл винаги прави каквото е в рамките на Do, вътре в скобите 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 >> Така че в Mario, ако потребителят ви е дал отрицателен ръст, например, 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 >> Така например, в Scratch, имахме тази много проста блок 458 00:20:09,920 --> 00:20:13,180 че току-що каза повторете този определен Фрази на определен брой пъти. 459 00:20:13,180 --> 00:20:16,260 Между другото, SAJ-- това е Scaz Andi Джейсън. 460 00:20:16,260 --> 00:20:18,740 Ние често се регистрирате в нашия имейли Saj. 461 00:20:18,740 --> 00:20:20,360 Ако кажем, Saj, не се бърка. 462 00:20:20,360 --> 00:20:22,630 Това е просто ни. 463 00:20:22,630 --> 00:20:28,600 >> Така че в Scratch, ние бяхме в състояние да имат блок, който каза, повторете Обичам Saj! 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 >> Така например, главни А е представен чрез номер 65. 516 00:23:01,260 --> 00:23:04,207 И само с малки букви A е представена от 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-- на ФОРМАТ а, 530 00:23:47,240 --> 00:23:50,900 малки букви а, минус главни A. Има ли някой 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 >> АНДИ Пенг: 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 >> АНДИ Пенг: Така че това, което е 97 минус 65? 540 00:24:08,255 --> 00:24:09,227 >> АУДИТОРИЯ: 32. 541 00:24:09,227 --> 00:24:09,810 АНДИ Пенг: OK. 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 АНДИ Пенг: Съжаляваме, говори. 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 Ние всички ще to-- без притеснения. 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 >> АНДИ Пенг: 32. 563 00:24:51,850 --> 00:24:54,141 OK, нека да тече този код и да видим дали това е, което се случва. 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 Така че ние ще сд в нашата section2. 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 Candy за вас. 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 modulos 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 АУДИТОРИЯ: Какво е modulos? 633 00:28:00,587 --> 00:28:01,170 АНДИ Пенг: OK. 634 00:28:01,170 --> 00:28:05,620 Така че по модул е ​​оператор, който ще се е доста важно да се pset вашите момчета'S 635 00:28:05,620 --> 00:28:06,690 тук. 636 00:28:06,690 --> 00:28:12,280 Така че начинът, по който операторите в C и в програмирането работа 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 C е с тенденция да искате да изрежете изключите всички десетични точки, 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, разделена на две, то се случва За да изтреби 0.5 и просто да ви дам един. 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 >> Modulo дава остатъка. 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. 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 Ако искам масив от цели числа, Аз ще поставя инт точно там. 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 >> Така че ние ще създадем инт, което е най- тип данни за това, което искате да съхраните. 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 И то се случва да знаете, OK, Имам нужда от масив с размер 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 АНДИ Пенг: Да, точно така. 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 АНДИ Пенг: За целите от този клас, не, точно сега. 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 Вие, момчета, може да са искали да пиша за инт аз се равнява на 1. 786 00:35:35,295 --> 00:35:37,330 I е по-малко от или равно на 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 И така, ако ви се налага да започнете аз си в елемент 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 Това ще разпечата 0th индекс на този масив. 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 Така че нека да инт 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 защото това е, колко студенти I Искам да бъда в състояние да съхраняват десетки. 827 00:37:29,900 --> 00:37:32,206 >> И така, както бих се пренесат масива е, че съм 828 00:37:32,206 --> 00:37:35,572 го стартирате чрез линия за, на Разбира се, като 0 е моята 0th индекс. 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 И тогава аз ще направя ФОРМАТ, Enter отбележи за student-- ала-ала-бала. 832 00:37:44,620 --> 00:37:51,171 >> Може ли някой да ми каже защо съм тук отпечатване и плюс 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 АНДИ Пенг: Да, точно така. 838 00:37:58,950 --> 00:38:02,620 Това е малко неудобно да кажа, хей, ти си 0th ученика в този клас. 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 Когато видите оценките I, забележите, тук съм всъщност 851 00:38:32,780 --> 00:38:38,200 достъп до 0th индекс и не на плюс 0-- 1 или 1 плюс 1, 852 00:38:38,200 --> 00:38:45,530 в този случай, така индекс че това е всъщност ясно. 853 00:38:45,530 --> 00:38:48,870 Дали всеки вид OK за как това се минава през 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 >> АНДИ Пенг: Да, затова се опитах. 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 знаете Rob мина над това в тази лекция 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-- само моето име, A-N-D-I. 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-- така че за в аз 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 >> АНДИ Пенг: 3, точно. 908 00:41:14,520 --> 00:41:18,820 Така че ние имаме за инт аз се равнява нула, п е равно на 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 ХРАНИ СЕ. Това е просто, означаваща различен начин на това писмено. 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 АНДИ Пенг: Да. 918 00:41:37,560 --> 00:41:44,880 Така че, ако бях to-- кажем, например, ако аз трябваше да направя, че и след това 919 00:41:44,880 --> 00:41:51,935 do-- oop--, че в моя код, би действително да правиш като едно и също нещо. 920 00:41:51,935 --> 00:41:55,060 Въпреки това, начинът, по който обясни, David него по време на лекция, ако някой от вас, момчета 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 >> И след това втори път обратно около примката, аз отивам да увеличите аз. 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 п равнява strlen и сложи че по-горе от външната страна на линия за 952 00:43:13,985 --> 00:43:15,364 както и? 953 00:43:15,364 --> 00:43:16,030 АНДИ Пенг: Да. 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 >> АНДИ Пенг: О, аз исках да всички тях отпечатване на всяка линия. 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 АНДИ Пенг: Точно така. 991 00:45:02,680 --> 00:45:06,784 Така че колко пъти е това всъщност Ще преминете през този цикъл? 992 00:45:06,784 --> 00:45:07,620 >> АУДИТОРИЯ: Four. 993 00:45:07,620 --> 00:45:08,070 >> АНДИ Пенг: Точно така. 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 АНДИ Пенг: No. 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 ако исках да кажа, ФОРМАТ Номер клас скоба, след това 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 АНДИ Пенг: Съжалявам. 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 >> АНДИ Пенг: Да. 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 е ФОРМАТ на каквото исках тук. 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 в този масив за 0th индекса. 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 АНДИ Пенг: OK. 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 Така че, ако се създаде масив от низове, I вид 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 Word в низове, съжалявам, е синоним. 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 >> [SIDE РАЗГОВОР] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Аз също забелязах, че вие, момчета can-- I вид видим вече програмата. 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 >> [SIDE РАЗГОВОР] 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 >> [SIDE РАЗГОВОР] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 АНДИ Пенг: Също така, да, Ще започна да хвърлят бонбони 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 >> [SIDE РАЗГОВОР] 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 >> АНДИ Пенг: Да. 1105 00:51:18,340 --> 00:51:19,340 Да. 1106 00:51:19,340 --> 00:51:22,840 >> [SIDE РАЗГОВОР] 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 >> [SIDE РАЗГОВОР] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> OK, момчета. 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 започнем да се опитваме да код в Mario, че сте направили 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 АНДИ Пенг: Разбира се, не се безпокойте. 1128 00:52:50,830 --> 00:52:57,233 АУДИТОРИЯ: Може ли да го помоля да или попитайте някой, който да получите низ 1-- да, низ, 1129 00:52:57,233 --> 00:52:58,160 и тогава-- 1130 00:52:58,160 --> 00:52:59,826 >> АНДИ Пенг: Да, така че това е едно добро начало. 1131 00:52:59,826 --> 00:53:01,972 Ще започнете да пишете, съжалявам, тъй като вие говорите. 1132 00:53:01,972 --> 00:53:02,471 Така-- 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 АНДИ Пенг: Точно така. 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 >> АНДИ Пенг: Great. 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 АНДИ Пенг: A за линия, точно. 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 >> АНДИ Пенг: Great Yep. 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 АНДИ Пенг: Ето. 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 АНДИ Пенг: Как правим това? 1195 00:55:49,980 --> 00:55:51,873 Ask-- съм аз ще напишете "поиска от потребителя"? 1196 00:55:51,873 --> 00:55:52,600 >> АУДИТОРИЯ: ФОРМАТ. 1197 00:55:52,600 --> 00:55:54,341 >> АНДИ Пенг: OK. 1198 00:55:54,341 --> 00:55:54,840 ФОРМАТ. 1199 00:55:54,840 --> 00:55:57,372 Какво искам да ФОРМАТ? 1200 00:55:57,372 --> 00:55:58,776 >> АУДИТОРИЯ: Type в нещо. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> АНДИ Пенг: Подобно на това? 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 >> АНДИ Пенг: Трябват ми цитати? 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 АНДИ Пенг: запетая? 1216 00:56:23,340 --> 00:56:24,060 ДОБРЕ. 1217 00:56:24,060 --> 00:56:24,560 Good. 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 >> АНДИ Пенг: Great. 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 >> АНДИ Пенг: Разбира се. 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 >> АНДИ Пенг: Great. 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 АНДИ Пенг: Вземете низ. 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 ите. 1242 00:57:05,040 --> 00:57:05,873 >> АНДИ Пенг: String ите. 1243 00:57:05,873 --> 00:57:07,251 АУДИТОРИЯ: GetString. 1244 00:57:07,251 --> 00:57:09,000 АНДИ Пенг: Някой, може ли да ми кажете къде 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 >> АНДИ Пенг: 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 >> АНДИ Пенг: Ето. 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 АНДИ Пенг: Съжаляваме? 1260 00:57:41,360 --> 00:57:42,545 АУДИТОРИЯ: Проверете дали е с малки букви. 1261 00:57:42,545 --> 00:57:44,045 АНДИ Пенг: Добре, нека да направим това. 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 АНДИ Пенг: За цикъл? 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 >> АУДИТОРИЯ: За инт аз равна на 0. 1281 00:58:25,230 --> 00:58:27,230 >> АНДИ Пенг: OK. 1282 00:58:27,230 --> 00:58:36,350 >> АУДИТОРИЯ: О, всъщност, тогава направя запетая и се направи п равнява strlen. 1283 00:58:36,350 --> 00:58:38,940 >> АНДИ Пенг: Така че важно нещо че аз мисля, че тя е забелязал тук 1284 00:58:38,940 --> 00:58:42,936 е, че ние не трябва да се каже, инт п втори път направихме това. 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 >> АУДИТОРИЯ: Of ите. 1289 00:58:52,620 --> 00:58:53,510 >> АНДИ Пенг: с. 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 >> АНДИ Пенг: Разбира се. 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 >> АНДИ Пенг: Great. 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 И ние ще се определи, че равният to-- искаме малки букви стойност, нали? 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 >> АНДИ Пенг: Съжаляваме? 1322 01:00:12,940 --> 01:00:13,280 >> АУДИТОРИЯ: Хайди. 1323 01:00:13,280 --> 01:00:13,988 >> АНДИ Пенг: Хайди. 1324 01:00:13,988 --> 01:00:15,850 Както каза Heidi Първоначално, ние сме най-вероятно 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 >> Така че ние ще направим и аз. 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 Защото в момента, в нашия масив, ние сме проверка на 0th индекса, нали? 1334 01:00:45,760 --> 01:00:49,190 И в 0th индекса на низ, това е първият знак. 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 >> АНДИ Пенг: Да, така че това е всъщност наистина добър. 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 >> АУДИТОРИЯ: ФОРМАТ процента в наклонена черта [недоловим]. 1349 01:01:29,160 --> 01:01:33,570 Това е стойността на [недоловим] и аз. 1350 01:01:33,570 --> 01:01:34,614 >> АНДИ Пенг: а аз, съжалявам? 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 АНДИ Пенг: Не знам. 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 АНДИ Пенг: О, ти би направил това? 1359 01:01:51,392 --> 01:01:53,867 АУДИТОРИЯ: Да. 1360 01:01:53,867 --> 01:01:56,700 АНДИ Пенг: Да го оставя на пътя тя е, и аз ще обясня защо по-късно. 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 >> АНДИ Пенг: Вие сте прав. 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 Добре, Charly просто влезе. 1394 01:03:17,920 --> 01:03:18,990 Ще напишете името на Charly. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Charly с малки букви. 1397 01:03:22,840 --> 01:03:27,742 И да се надяваме, да се надяваме, че това е ще вика и плюе 1398 01:03:27,742 --> 01:03:28,575 Charly с главни букви. 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 главни букви A минус малки букви а точно като че това ще работи еднакво, както и, 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 >> АНДИ Пенг: Ето. 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 И от плюе Charly. 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 >> АНДИ Пенг: Да, защото аз не правя грижа за стойностите на един. 1444 01:05:42,070 --> 01:05:44,540 Аз просто се грижи, че разликата между тях е 32, нали? 1445 01:05:44,540 --> 01:05:48,210 Разликата между малки букви Б и В е също главна 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 и една функция като ФОРМАТ. 1481 01:07:25,110 --> 01:07:28,570 Ако вие действително са знаели какво функция ФОРМАТ довело да пиша, 1482 01:07:28,570 --> 01:07:30,530 това е, като, 1000 реда код. 1483 01:07:30,530 --> 01:07:32,357 >> Ако всеки път, когато исках да ФОРМАТ нещо, 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 И всеки път, ние трябва да го използва в нашият код, ние просто трябва да се каже, ФОРМАТ. 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 ФОРМАТ, функции като ФОРМАТ, функции като към горната 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 >> Така че фактът, че имаме функция, наречена ФОРМАТ 1497 01:08:08,710 --> 01:08:11,990 че можем да наречем много различни пъти и позволява тя да се използва повторно. 1498 01:08:11,990 --> 01:08:14,980 Ако аз да напиша ФОРМАТ, Аз само го пиша веднъж. 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 виж функция поеме стил различен от нашия инт основната невалидни. 1509 01:08:42,830 --> 01:08:46,779 В този случай, ако исках да напише функция, наречена р, нали? 1510 01:08:46,779 --> 01:08:49,370 >> И стойността на инт тук е всичко да ми кажеш, 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 Отивам да се въвежда стойност от тип инт. 1515 01:08:58,490 --> 01:09:01,300 И аз ще се върне друг тип стойност на инт. 1516 01:09:01,300 --> 01:09:03,050 И тук, както ти виждате, всичко, което правя 1517 01:09:03,050 --> 01:09:07,300 е cubing каквото и моят принос е като моята продукция и да го върне. 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 >> Това право тук, инт, е Тип на параметъра се нуждаете. 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 Но имам нужда от нещо от типа инт. 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 Така че това ще отнеме по едно цяло число, и това ще ви даде обратно на инт. 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 Local променлива просто означава всяка променлива че съществува само в рамките на тази функция. 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 че аз съм се обявява едно цяло число х е равно на 1. 1600 01:13:02,180 --> 01:13:04,505 Аз съм обявява друг инт у равно на 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 Void суап. 1610 01:13:24,520 --> 01:13:27,090 Void просто означава, че това е Няма да се върне нищо. 1611 01:13:27,090 --> 01:13:28,930 Името на функция е наречено суап, и това е 1612 01:13:28,930 --> 01:13:33,730 Ще всмукателните две променливи, инт а и INT б, от вашия [недоловим] функция. 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 >> Така че, както вие може да видите, х някога е бил един и у някога е бил 2. 1629 01:14:16,940 --> 01:14:21,475 И ако аз го отпечатате, х е все едно и у е 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 Така че Rob в лекцията си премина през вид накратко за това как те работят. 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 имахме инт основната невалидни. 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 Когато аз се завтече Mario, нямах нужда за действително само да въведете нещо 1671 01:16:16,020 --> 01:16:16,970 когато аз се завтече Mario. 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 но това наистина не е, че труден. Така инт main-- 1683 01:16:47,320 --> 01:16:48,910 това е само основната си функция. 1684 01:16:48,910 --> 01:16:52,110 Into argc запетая струнен argv скоби. 1685 01:16:52,110 --> 01:16:56,040 Така че всичко, което казва, е, че това инт 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 INFILE outfile, нали? 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 Всичко това прави, е да направи копие на един INFILE на името на един файл 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 АУДИТОРИЯ: Three? 1706 01:17:59,634 --> 01:18:01,200 АНДИ Пенг: Имаме три, точно. 1707 01:18:01,200 --> 01:18:05,030 Така че е много интуитивен, за да Просто мисля, че това е просто 1708 01:18:05,030 --> 01:18:06,290 на INFILE и outfile. 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 АНДИ Пенг: Точно така. 1717 01:18:26,155 --> 01:18:28,550 Това ще ми даде точката Слаш копие, защото това е 1718 01:18:28,550 --> 01:18:31,070 на 0th елемент, на Първият елемент на моя масив. 1719 01:18:31,070 --> 01:18:33,236 Какво ще кажете за argv 1? 1720 01:18:33,236 --> 01:18:33,945 >> АУДИТОРИЯ: INFILE. 1721 01:18:33,945 --> 01:18:35,070 АНДИ Пенг: INFILE, точно. 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 АНДИ Пенг: 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 >> АНДИ Пенг: Знаете ли, имам ръка? 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 >> АНДИ Пенг: Точно така. 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 АНДИ Пенг: Съжаляваме? 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 АНДИ Пенг: Да. 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 и outfile. 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 Така че Rob бързо в лекция на другия ден отидох 1770 01:20:29,900 --> 01:20:35,040 през този пример, където трябваше инт основната инт 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 Else печат, здравей свят. 1777 01:20:54,100 --> 01:20:56,300 Какво е това, ще случи същество? 1778 01:20:56,300 --> 01:21:00,570 Може ли някой да обясни точно в English какво тази програма се прави? 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 >> АНДИ Пенг: OK, нека да го стартирате. 1784 01:21:15,410 --> 01:21:22,470 Така например, ако трябва да се направи Този файл се направи здравей здравей to-- 1785 01:21:22,470 --> 01:21:24,500 to-- какво искаш да вход? 1786 01:21:24,500 --> 01:21:25,900 >> АУДИТОРИЯ: Име и фамилия. 1787 01:21:25,900 --> 01:21:27,280 >> АНДИ Пенг: Име и фамилия? 1788 01:21:27,280 --> 01:21:28,180 Spaces? 1789 01:21:28,180 --> 01:21:29,690 >> АУДИТОРИЯ: Да. 1790 01:21:29,690 --> 01:21:33,490 >> АНДИ Пенг: Може ли някой да каже ми точно сега, това, което е 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 Oh. 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 АНДИ Пенг: Точно така. 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 Така че Дот здравей, ако аз просто правя Andi. 1822 01:22:46,470 --> 01:22:47,270 Здравейте, Andi. 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 АНДИ Пенг: No. 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 >> АНДИ Пенг: Да, точно така. 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 >> АНДИ Пенг: Е, какво трябва да съм, да се промени след това в програмата ми? 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 >> АНДИ Пенг: Защо е така случва, как мислиш? 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 АНДИ Пенг: 1 и 2, точно. 1857 01:24:24,650 --> 01:24:29,150 Така че в този случай, Вие вероятно ще искам да имам две ФОРМАТ 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 Oh. 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 АНДИ Пенг: Аз имам две минути? 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 Той преобразува низ до инт. 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 >> Modulo, като ние обхванати рано в клас днес 1891 01:25:56,690 --> 01:25:59,550 ви позволява да имате на остатък от каквото имате. 1892 01:25:59,550 --> 01:26:03,620 Така че, ако ние имаме много, много големи числа в Caesar, 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 Ако аз удари Z и аз искам тя да се върнем към една, 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 в TEAL класната стая утре 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 АНДИ Пенг: Аз не знам дали това е онлайн вече, но това ще бъде. 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