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