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