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