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