1 00:00:00,000 --> 00:00:02,742 >> [Играет музыка] 2 00:00:02,742 --> 00:00:05,030 3 00:00:05,030 --> 00:00:09,090 >> ANDI Пэн: Это CS50, и Добро пожаловать в неделю два раздела. 4 00:00:09,090 --> 00:00:11,740 Это на самом деле в то время как неделю два наших class-- фактически, 5 00:00:11,740 --> 00:00:14,550 первая неделя у нас была раздел. 6 00:00:14,550 --> 00:00:18,897 Показать рук, как многие из вас все пришли к супер раздела на прошлой неделе? 7 00:00:18,897 --> 00:00:19,480 ОК, это нормально. 8 00:00:19,480 --> 00:00:20,020 Ничего страшного. 9 00:00:20,020 --> 00:00:23,110 Как многие из вас смотрели супер раздел на прошлой неделе? 10 00:00:23,110 --> 00:00:23,610 ХОРОШО. 11 00:00:23,610 --> 00:00:25,702 А вы, ребята, сделали хорошо по проблеме установить один? 12 00:00:25,702 --> 00:00:28,660 Так что я собираюсь взять его, что мы имеем куча действительно умных детей 13 00:00:28,660 --> 00:00:32,310 в этом классе и все будет в порядке. 14 00:00:32,310 --> 00:00:33,180 ХОРОШО. 15 00:00:33,180 --> 00:00:33,980 Так first-- 16 00:00:33,980 --> 00:00:37,900 17 00:00:37,900 --> 00:00:41,090 >> Во-первых, мы только собираемся кратко перейти в повестку дня на сегодня. 18 00:00:41,090 --> 00:00:42,700 Мы будем говорить о курсовых логистики. 19 00:00:42,700 --> 00:00:45,480 Многие из вас, наверное, есть вопросы, касающиеся 20 00:00:45,480 --> 00:00:46,920 как вещи работают в этом курсе. 21 00:00:46,920 --> 00:00:47,897 Мы на них ответить. 22 00:00:47,897 --> 00:00:49,730 Мы собираемся кратко перейти петель в случае 23 00:00:49,730 --> 00:00:51,410 любой из вас, ребята пропустили супер раздел. 24 00:00:51,410 --> 00:00:53,240 Мы будем говорить о отображения ASCII. 25 00:00:53,240 --> 00:00:56,180 Мы будем говорить о массивах, функции, аргументы командной строки. 26 00:00:56,180 --> 00:01:00,210 И, наконец, то, что вы, ребята, наверное, все действительно хотите быть здесь, чтобы узнать о, 27 00:01:00,210 --> 00:01:01,270 Ваш pset2. 28 00:01:01,270 --> 00:01:04,209 Мы будем иметь некоторые интересные трюки и советы о том, как это сделать. 29 00:01:04,209 --> 00:01:07,910 30 00:01:07,910 --> 00:01:08,690 >> ХОРОШО. 31 00:01:08,690 --> 00:01:11,450 Кроме того, во-вторых, мы имеем много конфет здесь. 32 00:01:11,450 --> 00:01:13,583 Тот, кто любит конфеты, просто прийти сюда. 33 00:01:13,583 --> 00:01:14,430 Захватите некоторые. 34 00:01:14,430 --> 00:01:15,100 У меня есть куча. 35 00:01:15,100 --> 00:01:16,390 У нас есть тонны в офисе. 36 00:01:16,390 --> 00:01:18,230 Я действительно не хочу съесть конфету весь день. 37 00:01:18,230 --> 00:01:20,300 Вы, ребята, должны съесть все конфеты, потому что я принес его здесь для вас, ребята. 38 00:01:20,300 --> 00:01:20,990 Просто есть конфеты. 39 00:01:20,990 --> 00:01:24,080 Там будет конфеты каждая секция. 40 00:01:24,080 --> 00:01:25,330 >> Итак, сначала, кто я? 41 00:01:25,330 --> 00:01:27,080 Меня зовут Энди Пэн. 42 00:01:27,080 --> 00:01:30,270 Я являюсь руководителем ТА CS50 здесь в Йельском университете. 43 00:01:30,270 --> 00:01:32,540 И в дополнение к что, я также be-- 44 00:01:32,540 --> 00:01:35,600 если кто-то like-- свой ход приятель, плечо, чтобы кричать на. 45 00:01:35,600 --> 00:01:39,140 Если ночь прежде из вашего Pset, в Вы понятия не имеете, что происходит, 46 00:01:39,140 --> 00:01:40,080 ударил меня. 47 00:01:40,080 --> 00:01:42,770 Мы посочувствовать вместе, и так далее. 48 00:01:42,770 --> 00:01:46,100 Просто знаю, что я здесь, как ресурс для вас, как линии фронта 49 00:01:46,100 --> 00:01:51,830 помогая вам, ребята, выяснить, как для решения проблем в CS50 и за ее пределами. 50 00:01:51,830 --> 00:01:54,590 >> Моя электронная почта andi.peng@yale.edu. 51 00:01:54,590 --> 00:01:58,390 Я также отправить индивидуальный по электронной почте с мой номер телефона в нем 52 00:01:58,390 --> 00:02:01,860 так что не все на Интернет может увидеть свой номер телефона. 53 00:02:01,860 --> 00:02:03,640 Не стесняйтесь звонить мне в любое время. 54 00:02:03,640 --> 00:02:07,510 Серьезно, мой телефон как правило, прилагается к моей руке. 55 00:02:07,510 --> 00:02:10,240 Я не может ответить в течение нескольких минут. 56 00:02:10,240 --> 00:02:11,984 Я не может ответить в течение нескольких часов. 57 00:02:11,984 --> 00:02:14,400 Но я могу гарантировать вам, если Вы по электронной почте мне, если вы звоните мне, 58 00:02:14,400 --> 00:02:17,404 напиши мне, я отвечу в течение 24 часов. 59 00:02:17,404 --> 00:02:19,820 Часто, я отвечу, прежде чем что, потому что я понимаю 60 00:02:19,820 --> 00:02:23,900 что каждый получил некоторые проблемы, и вы хотите, чтобы ваши ответы 61 00:02:23,900 --> 00:02:26,110 дать ответ очень быстро. 62 00:02:26,110 --> 00:02:28,945 >> Тем не менее, если вы звоните мне 30 минут до 63 00:02:28,945 --> 00:02:31,570 что кусок, который из-за четверг night-- быть, как Энди, помоги мне, 64 00:02:31,570 --> 00:02:35,380 Я не started-- я могу дать Вы что плечо, чтобы кричать на. 65 00:02:35,380 --> 00:02:41,520 Но это может быть время, чтобы думать о как не делать, что в следующий раз. 66 00:02:41,520 --> 00:02:44,040 ХОРОШО. 67 00:02:44,040 --> 00:02:44,944 Ой. 68 00:02:44,944 --> 00:02:45,850 Как вернуться? 69 00:02:45,850 --> 00:02:48,140 Там мы идем. 70 00:02:48,140 --> 00:02:52,310 >> Таким образом, в этом, конечно, у нас есть тонна поддержки для всех. 71 00:02:52,310 --> 00:02:54,640 В дополнение к только что разделы здесь, которые вам 72 00:02:54,640 --> 00:02:57,000 каждую неделю получаю потратить 90 прекрасные минуты со мной, 73 00:02:57,000 --> 00:02:58,330 у нас также есть приемные часы. 74 00:02:58,330 --> 00:03:01,021 Как многие из вас, ребята, уже был в рабочее время за помощью? 75 00:03:01,021 --> 00:03:01,520 Отлично. 76 00:03:01,520 --> 00:03:05,700 Это действительно приятно видеть, потому что мы иметь штат более 45 ТП и сертификации 77 00:03:05,700 --> 00:03:11,780 подготовку для этого, конечно, что здесь находятся за помощь, вы, ребята с psets. 78 00:03:11,780 --> 00:03:14,580 >> По понедельникам они проводятся в ТЭАл класс в 17 Hill House здесь 79 00:03:14,580 --> 00:03:15,350 в Йельском университете. 80 00:03:15,350 --> 00:03:17,349 По вторникам и четвергам, они проводятся в обыкновенные. 81 00:03:17,349 --> 00:03:20,010 С 8:00 до 11:00 в значительной степени каждый будний день. 82 00:03:20,010 --> 00:03:21,620 Заходите, выйти. 83 00:03:21,620 --> 00:03:24,030 Любая проблема, нет problem-- просто заходите, 84 00:03:24,030 --> 00:03:26,650 и тогда мы вам поможем в этом. 85 00:03:26,650 --> 00:03:31,640 >> Во-вторых, в дополнение к офисных часов и секции, у нас также есть шорты. 86 00:03:31,640 --> 00:03:35,930 Кто-нибудь когда-нибудь видел пару из шорты или пошаговые видео в 87 00:03:35,930 --> 00:03:36,750 на вебсайте? 88 00:03:36,750 --> 00:03:37,250 ХОРОШО. 89 00:03:37,250 --> 00:03:39,510 Таким образом, они на самом деле, очень полезно. 90 00:03:39,510 --> 00:03:42,470 Наш прекрасный производство Гарвардского команда там на этой школе 91 00:03:42,470 --> 00:03:47,910 до севера, они сняли и производится эти невероятные Прохождение видео. 92 00:03:47,910 --> 00:03:52,290 >> Они возьмут Вас шаг за шагом через как идти о решении проблемы. 93 00:03:52,290 --> 00:03:56,340 Часто, если вы путать о простая концепция, особая концепция, 94 00:03:56,340 --> 00:03:59,780 взглянуть, потому что мы, вероятно, короткий на него где-то на нашем сайте. 95 00:03:59,780 --> 00:04:03,800 И это, как правило, большой ресурс смотреть, когда вы находитесь в первую очередь 96 00:04:03,800 --> 00:04:06,510 потеряли о том, как справиться с проблемой. 97 00:04:06,510 --> 00:04:09,750 >> В-третьих, у нас также есть study50 и reference50. 98 00:04:09,750 --> 00:04:15,650 Так что учитесь на 50 Сайт это всего лишь ссылка. 99 00:04:15,650 --> 00:04:21,500 Это, мне кажется, study.cs50.net или что-то вроде того. 100 00:04:21,500 --> 00:04:22,860 Просто Google это. 101 00:04:22,860 --> 00:04:24,229 У нас есть много слайдов, подготовленных. 102 00:04:24,229 --> 00:04:26,770 У нас есть много шорты и walkthroughs-- вещи все скомпилированные 103 00:04:26,770 --> 00:04:31,070 очень красиво и аккуратно для вас всех, ребята просматривать, какие понятия см 104 00:04:31,070 --> 00:04:32,860 что вы смущены о. 105 00:04:32,860 --> 00:04:35,920 Это, наверное, будет покрыта там, в study50. 106 00:04:35,920 --> 00:04:37,640 >> Reference50-- похожи. 107 00:04:37,640 --> 00:04:41,510 У нас есть много различных нот легко доступны для вашем распоряжении. 108 00:04:41,510 --> 00:04:44,450 И, наконец, у нас есть то, что называется CS50 Обсудить, 109 00:04:44,450 --> 00:04:48,082 форум, в котором, если в ночь перед вы делаете ваши проблемы, скажем, 110 00:04:48,082 --> 00:04:49,880 у вас есть вопросы. 111 00:04:49,880 --> 00:04:52,340 Войти в CS50 Обсудить. 112 00:04:52,340 --> 00:04:53,190 Задайте свой вопрос. 113 00:04:53,190 --> 00:04:55,820 И тогда один из hundreds-- возможно, thousands-- сверстников 114 00:04:55,820 --> 00:04:57,960 принимая этот класс онлайн будет войти. 115 00:04:57,960 --> 00:05:01,182 И, может быть, кто-то может получить Ваш ответ перед банкой TA. 116 00:05:01,182 --> 00:05:03,390 По сути, это просто онлайн форум, который мы все можем 117 00:05:03,390 --> 00:05:04,556 использовать, чтобы обсудить наши проблемы. 118 00:05:04,556 --> 00:05:06,483 Это круто. 119 00:05:06,483 --> 00:05:10,660 120 00:05:10,660 --> 00:05:11,550 >> ХОРОШО. 121 00:05:11,550 --> 00:05:13,220 Так проблема устанавливает. 122 00:05:13,220 --> 00:05:17,840 Мы собираемся прямо в толщиной проблемы установите два. 123 00:05:17,840 --> 00:05:20,570 Многие из нас уже боролись с проблемой установить один. 124 00:05:20,570 --> 00:05:24,460 Мы уже знаем, что, возможно, ждет в течение прошлой ночи, чтобы сделать вашу PSET 125 00:05:24,460 --> 00:05:28,170 не самый умный, что нужно сделать в CS50. 126 00:05:28,170 --> 00:05:32,380 >> Советы и подсказки по существу для Успех читаются весь спец. 127 00:05:32,380 --> 00:05:36,270 Как многие из вас уже читать спецификации для PSET 2? 128 00:05:36,270 --> 00:05:36,770 ХОРОШО. 129 00:05:36,770 --> 00:05:39,840 Это твердое количество. 130 00:05:39,840 --> 00:05:43,210 Я знаю, вы ребята, наверное, признали сейчас спецификации действительно долго. 131 00:05:43,210 --> 00:05:45,700 Они действительно, действительно долго. 132 00:05:45,700 --> 00:05:49,630 >> Это действительно трудно читать каждую строку этого осторожно слово за словом. 133 00:05:49,630 --> 00:05:52,780 Вы хотите, чтобы просто бегло, где он говорит вам что-то делать. 134 00:05:52,780 --> 00:05:54,459 Я могу гарантировать вам, не делайте этого. 135 00:05:54,459 --> 00:05:56,750 Если вы сделаете это, вы, вероятно, буду скучать-то 136 00:05:56,750 --> 00:05:58,458 где он говорит вам, как начать проблему 137 00:05:58,458 --> 00:06:01,140 или говорит вам, что имя ваша проблема, или это говорит вам, 138 00:06:01,140 --> 00:06:03,720 это, пожалуй, лучший способ чтобы начать делать вашу проблему. 139 00:06:03,720 --> 00:06:05,050 И тогда вы будете потеряны. 140 00:06:05,050 --> 00:06:08,219 >> При попытке прочитать вашу спекуляция на полпути, 141 00:06:08,219 --> 00:06:10,510 много важной information--, что вы не 142 00:06:10,510 --> 00:06:12,260 будет в состоянии действительно доступа. 143 00:06:12,260 --> 00:06:13,219 Так что читайте всю спецификацию. 144 00:06:13,219 --> 00:06:15,468 Попробуйте прочитать всю спецификацию на прежде чем прийти к разделу, 145 00:06:15,468 --> 00:06:17,360 потому что тогда, когда мы говорить о PSET, 146 00:06:17,360 --> 00:06:21,070 мы все можем иметь представление что происходит. 147 00:06:21,070 --> 00:06:25,169 >> Во-вторых, это концепция что я буду ссылаться на нравится 148 00:06:25,169 --> 00:06:26,710 много на протяжении всего семестра. 149 00:06:26,710 --> 00:06:30,070 Но по сути, нам навстречу, верно? 150 00:06:30,070 --> 00:06:33,970 Меня, как ваш ТА и Джейсон, конечно менеджер и Scaz качестве профессора 151 00:06:33,970 --> 00:06:37,120 и Дэвид, как ваш профессор и все другие милые ТП в этом процессе, 152 00:06:37,120 --> 00:06:39,830 помощниками в этом course-- мы сделаем все возможное, 153 00:06:39,830 --> 00:06:42,965 чтобы гарантировать, что вы установлены до успеха в этом процессе. 154 00:06:42,965 --> 00:06:43,840 Мы будем проводить раздел. 155 00:06:43,840 --> 00:06:44,870 Мы будем проводить рабочие часы. 156 00:06:44,870 --> 00:06:47,087 Мы ответим ваш телефон звонки, отвечать на электронную почту, 157 00:06:47,087 --> 00:06:49,670 сделать все от нас зависящее, чтобы сделать уверен, что ваши вопросы отвечает. 158 00:06:49,670 --> 00:06:51,460 >> Тем не менее, помочь нам тоже. 159 00:06:51,460 --> 00:06:52,450 Нам навстречу. 160 00:06:52,450 --> 00:06:56,040 Если вы приехали в рабочее время не уйдя в разделе не 161 00:06:56,040 --> 00:07:02,060 увидев лекции, имея никакого Идея, что происходит, быть, как мне помочь. 162 00:07:02,060 --> 00:07:04,350 Я собираюсь быть, как хорошо, я извиняюсь. 163 00:07:04,350 --> 00:07:06,410 Это может быть время, чтобы оказать что плечо, чтобы кричать на, 164 00:07:06,410 --> 00:07:08,959 потому что я не уверен, что я могу сделать, чтобы помочь вам 165 00:07:08,959 --> 00:07:12,000 если вы не пытаетесь по крайней мере, помощь сами немного в начале. 166 00:07:12,000 --> 00:07:12,910 Нам навстречу. 167 00:07:12,910 --> 00:07:15,020 Вы знаете, пожалуйста, приходите готов ответить и получить 168 00:07:15,020 --> 00:07:16,353 готовы участвовать в материале. 169 00:07:16,353 --> 00:07:19,342 Это делает вещи намного проще для всех участников. 170 00:07:19,342 --> 00:07:22,970 Да, это довольно много его. 171 00:07:22,970 --> 00:07:23,720 >> Классификация. 172 00:07:23,720 --> 00:07:29,250 Так на программе, это довольно в глубине относительно, как мы класс. 173 00:07:29,250 --> 00:07:32,440 Но по сути, пробой в это 50% Вашего сорта 174 00:07:32,440 --> 00:07:34,530 будут psets, которые прекрасный, потому что это 175 00:07:34,530 --> 00:07:37,400 где вы тратите огромное Большинство своего времени курс на. 176 00:07:37,400 --> 00:07:39,854 Викторины 40%, и ваш Окончательный проект будет 10%. 177 00:07:39,854 --> 00:07:42,520 Там будет два викторины по всему курс семестра. 178 00:07:42,520 --> 00:07:47,050 Я думаю, что раз и даты также перечислены на программе. 179 00:07:47,050 --> 00:07:49,210 >> Таким образом, что мы будем быть сортировки ваши psets 180 00:07:49,210 --> 00:07:53,930 является то, что у нас есть, по существу четыре ценности, которые мы приписываем каждого сорта. 181 00:07:53,930 --> 00:07:57,250 У нас есть значение объема, Правильность, дизайн, и стиля. 182 00:07:57,250 --> 00:08:01,530 Итак, как вы видите, что это своего рода наш Формула для расчета psets. 183 00:08:01,530 --> 00:08:03,640 Три мы даем наиболее Вес правильности, 184 00:08:03,640 --> 00:08:06,140 потому что очевидно, ваш тренер должны испытывать за исключением случаев, 185 00:08:06,140 --> 00:08:08,480 что мы хотим, чтобы проверить. 186 00:08:08,480 --> 00:08:11,000 >> Вы, ребята, все имеют check50 в вашем распоряжении. 187 00:08:11,000 --> 00:08:13,730 Это очень полезная функция что вы, ребята, все это может 188 00:08:13,730 --> 00:08:17,560 загрузить код к нашим серверам, где мы будем проверять ее для вас. 189 00:08:17,560 --> 00:08:20,800 И вы видели тех, frowny лица, улыбающиеся лица. 190 00:08:20,800 --> 00:08:22,119 Они действительно, действительно полезно. 191 00:08:22,119 --> 00:08:23,910 Пожалуйста, не будьте студент, который хотел попыток 192 00:08:23,910 --> 00:08:26,230 жестко во всех ответов на них. 193 00:08:26,230 --> 00:08:30,050 Я определенно видел PSET где кто-нибудь видел все значения check50 194 00:08:30,050 --> 00:08:33,429 и они просто жестко, если in-- это число, распечатать этот номер. 195 00:08:33,429 --> 00:08:35,080 Если это число, распечатать этого числа. 196 00:08:35,080 --> 00:08:36,090 Не делай этого. 197 00:08:36,090 --> 00:08:39,360 >> Даже если технически check50 правильно, 198 00:08:39,360 --> 00:08:41,809 Ваш способ решения Проблема не правильно. 199 00:08:41,809 --> 00:08:45,770 Так просто использовать check50 экономно. 200 00:08:45,770 --> 00:08:48,497 Но и убедитесь, что вы понять, как это работает, 201 00:08:48,497 --> 00:08:50,580 Программа функционирует в дополнение к check50, 202 00:08:50,580 --> 00:08:53,120 потому что мы не можем проверить каждый возможный случай check50. 203 00:08:53,120 --> 00:08:55,440 Мы будем тестировать некоторые из них. 204 00:08:55,440 --> 00:09:00,390 >> Дизайн по сути дела, как хорошо разработана ваш код? 205 00:09:00,390 --> 00:09:04,150 Если вы копирования вставки нескольких строк кода много, много раз. 206 00:09:04,150 --> 00:09:06,960 Может быть, вы не имеют вполне лучший дизайн в коде. 207 00:09:06,960 --> 00:09:09,470 Может быть, пришло время добавить, что цикл. 208 00:09:09,470 --> 00:09:12,090 По сути, здесь это просто все о попытке сделать ваш код, 209 00:09:12,090 --> 00:09:17,010 пытаюсь написать код, как эффективно как можно так, что ваша программа работает 210 00:09:17,010 --> 00:09:19,630 как можно быстрее. 211 00:09:19,630 --> 00:09:20,996 >> Наконец, у нас есть стиль. 212 00:09:20,996 --> 00:09:24,360 Так стиль своего рода произвольным, субъективным. 213 00:09:24,360 --> 00:09:27,470 Я знаю, что мы официально есть стиль 50 руководство для CS50, 214 00:09:27,470 --> 00:09:30,050 где он говорит тебе, о, вы, должен иметь место здесь. 215 00:09:30,050 --> 00:09:32,220 Вы должны рода формате код таким образом. 216 00:09:32,220 --> 00:09:34,070 Вы должны назвать это таким образом. 217 00:09:34,070 --> 00:09:38,180 >> Я действительно не волнует, как таковой, как Вы выбираете для оформления кода, 218 00:09:38,180 --> 00:09:39,840 как долго, как вам оставаться последовательным. 219 00:09:39,840 --> 00:09:43,732 Например, если вы хотите оставить пространство после ваших четырех 220 00:09:43,732 --> 00:09:45,690 до вашего четыре цикла, просто делать, что каждый раз. 221 00:09:45,690 --> 00:09:46,523 Не вид это сделать. 222 00:09:46,523 --> 00:09:47,730 Не сделать это в другое время. 223 00:09:47,730 --> 00:09:51,046 Если вы хотите сохранить вьющиеся скобки пространство определенным образом, 224 00:09:51,046 --> 00:09:52,170 просто всегда сделать это таким образом. 225 00:09:52,170 --> 00:09:54,628 Не вид сделать это где-то здесь и где-то не там. 226 00:09:54,628 --> 00:09:57,010 Когда мы классификации, это действительно трудно 227 00:09:57,010 --> 00:09:59,420 если у меня нет идеи, как Вы форматирование кода, 228 00:09:59,420 --> 00:10:02,064 вещи дурацкие и не к месту. 229 00:10:02,064 --> 00:10:04,980 Если вы просто держать его в соответствие, это гораздо легче для меня, как большая 230 00:10:04,980 --> 00:10:06,310 чтобы иметь возможность читать ваш код. 231 00:10:06,310 --> 00:10:09,393 Это гораздо проще для вас, как студенту чтобы иметь возможность просматривать код 232 00:10:09,393 --> 00:10:11,720 и посмотреть, что случилось с это сократить почему есть проблемы. 233 00:10:11,720 --> 00:10:15,740 Стиль является одним из самых простых вещей, вы, ребята, можете сделать, чтобы получить полный оценки. 234 00:10:15,740 --> 00:10:18,770 По сути, если вы просто заботятся, если Вы платите пять минут внимания 235 00:10:18,770 --> 00:10:22,760 чтобы ваш код каждую неделю, вы должны быть полный стиль очков. 236 00:10:22,760 --> 00:10:26,020 >> Наконец, у нас есть то, что называется множитель масштаба. 237 00:10:26,020 --> 00:10:28,890 Scope-- Я знаю, что это большой Слово, особенно в этом классе. 238 00:10:28,890 --> 00:10:31,030 Но сфера, все, что средства является то, что вы пытаетесь 239 00:10:31,030 --> 00:10:33,670 в psets к лучшему вашей способности. 240 00:10:33,670 --> 00:10:37,180 Если вы включите в трех из из ваших четырех проблем 241 00:10:37,180 --> 00:10:39,460 и даже не попытка Последний, вы, вероятно, 242 00:10:39,460 --> 00:10:41,630 собирается терять несколько точек на сферу. 243 00:10:41,630 --> 00:10:44,560 >> Даже если вы только начинаете проблему, сделать все возможное, чтобы пройти через это. 244 00:10:44,560 --> 00:10:47,691 Даже если это не работает, выключите его, потому что показывает и демонстрирует 245 00:10:47,691 --> 00:10:50,190 нам, что вы пытаетесь, что Вы попытались установить проблему 246 00:10:50,190 --> 00:10:51,430 к лучшей из Вашей способности. 247 00:10:51,430 --> 00:10:53,800 И тогда мы можем дать вам полная очков за рамки. 248 00:10:53,800 --> 00:10:58,715 >> Область является также очень важным, когда мы говорить о низкой капли оценка PSET. 249 00:10:58,715 --> 00:11:02,010 Так в течение из семестр, вы, ребята, есть девять psets. 250 00:11:02,010 --> 00:11:05,340 И мы на самом деле будет падать самая низкая оценка из тех девяти, 251 00:11:05,340 --> 00:11:07,670 но только если у вас есть полный точки размах. 252 00:11:07,670 --> 00:11:11,120 >> Так что, если вы включите в неполном PSET, К сожалению, мы не можем отказаться, что один, 253 00:11:11,120 --> 00:11:13,540 потому что Вашей области не были завершены очков. 254 00:11:13,540 --> 00:11:16,570 Таким образом, даже если у вас есть ужасный неделю где вы умираете и вы больны 255 00:11:16,570 --> 00:11:20,040 или ваша собака умирает, ваша кошка умирает, и вы перегружены домашними заданиями, 256 00:11:20,040 --> 00:11:21,074 просто попытаться PSET. 257 00:11:21,074 --> 00:11:22,490 Сделайте это в меру ваших возможностей. 258 00:11:22,490 --> 00:11:23,840 Если это не работает, это не имеет значения. 259 00:11:23,840 --> 00:11:24,506 Просто включите его в. 260 00:11:24,506 --> 00:11:26,590 По крайней мере, мы можем дать Вы очки за усилия. 261 00:11:26,590 --> 00:11:28,510 >> А при попытке в этом классе. 262 00:11:28,510 --> 00:11:30,170 По крайней мере, низкой капли оценка для усилия. 263 00:11:30,170 --> 00:11:32,354 Так что да. 264 00:11:32,354 --> 00:11:33,270 Это довольно много его. 265 00:11:33,270 --> 00:11:36,521 Кто-нибудь есть вопросы, чтобы далеко, как мы сорта в классе? 266 00:11:36,521 --> 00:11:37,187 Или любой из них? 267 00:11:37,187 --> 00:11:41,220 Любой из них так far-- Разделы, офисная часов? 268 00:11:41,220 --> 00:11:41,720 Круто. 269 00:11:41,720 --> 00:11:46,720 270 00:11:46,720 --> 00:11:47,800 ХОРОШО. 271 00:11:47,800 --> 00:11:51,260 >> Так что это вопрос, который не человек действительно любит поговорить. 272 00:11:51,260 --> 00:11:53,084 Я действительно не хотел, чтобы об этом говорить. 273 00:11:53,084 --> 00:11:55,250 Вы, ребята, действительно не хочу чтобы услышать меня говорить об этом. 274 00:11:55,250 --> 00:11:57,690 Но, к сожалению, мы все должны говорить об этом. 275 00:11:57,690 --> 00:12:00,110 Дэвид провел 20 минут в лекции говорить об этом. 276 00:12:00,110 --> 00:12:02,580 И это является предметом академической честности. 277 00:12:02,580 --> 00:12:08,110 >> Таким образом, мы все здесь, вероятно, написана эссе-то в нашей Йельского карьеры. 278 00:12:08,110 --> 00:12:11,800 Мы, вероятно, получили разговор, где мы сказали не заниматься плагиатом наш очерк, 279 00:12:11,800 --> 00:12:13,940 потому что работа не наша. 280 00:12:13,940 --> 00:12:18,109 В компьютерной науке, у нас есть такой же концепции. 281 00:12:18,109 --> 00:12:20,150 Все работы, которые вы предоставляете, весь код, который вы пишете 282 00:12:20,150 --> 00:12:21,900 должно быть код, который вы написали. 283 00:12:21,900 --> 00:12:24,280 Не должно быть код, который Вы скопированы из другого. 284 00:12:24,280 --> 00:12:26,777 Не должно быть код, который Вы гугле и шлепнулся в 285 00:12:26,777 --> 00:12:28,360 и вы действительно не знаю, работает ли он. 286 00:12:28,360 --> 00:12:32,440 Вы вроде есть чувство что он делает, но не совсем. 287 00:12:32,440 --> 00:12:36,562 Если вы сомневаетесь, по сути, это просто быть разумным. 288 00:12:36,562 --> 00:12:38,520 На нашем учебном, у нас есть целый список вещей, 289 00:12:38,520 --> 00:12:40,560 мы видим, как разумно по сравнению с не разумно. 290 00:12:40,560 --> 00:12:43,820 >> Например, разумно это вы и ваш друг 291 00:12:43,820 --> 00:12:47,360 обсуждали, что лучший способ пойти о логике решения проблемы. 292 00:12:47,360 --> 00:12:48,910 Это довольно разумно. 293 00:12:48,910 --> 00:12:53,244 То, что не было бы разумно, если вы Ребята собрались, набрали такой же код, 294 00:12:53,244 --> 00:12:54,410 и оказалось в том же коде. 295 00:12:54,410 --> 00:12:56,302 Это не разумно. 296 00:12:56,302 --> 00:12:57,510 То же самое, своего рода эссе. 297 00:12:57,510 --> 00:12:59,290 Если вы хотите, чтобы обсудить с вашим другом, эй, 298 00:12:59,290 --> 00:13:00,220 это то, что я хочу написать о. 299 00:13:00,220 --> 00:13:02,500 Эти шаги, которые я хочу времени, чтобы написать об этом, великий. 300 00:13:02,500 --> 00:13:03,208 Это прекрасно. 301 00:13:03,208 --> 00:13:04,790 Пожалуйста, сотрудничать друг с другом. 302 00:13:04,790 --> 00:13:06,540 Если вы, ребята начать написать то же самое, 303 00:13:06,540 --> 00:13:10,020 включить в той же статье, что меньше ОК. 304 00:13:10,020 --> 00:13:13,200 Поэтому, когда есть сомнения, просто не сделать это. 305 00:13:13,200 --> 00:13:16,940 >> Здесь мы в CS50, у нас есть сценарии которые работают для автоматизации, чтобы проверить 306 00:13:16,940 --> 00:13:21,740 не только правильность кода, но также уникальность вашего кода. 307 00:13:21,740 --> 00:13:25,920 Поэтому, пожалуйста, не ставьте нас в положение того, чтобы обратиться ваше дело EXCOMM. 308 00:13:25,920 --> 00:13:31,110 Пожалуйста, просто для всех, давайте просто сделать это замечательный опыт. 309 00:13:31,110 --> 00:13:33,600 Каждый учится лучше, все мы счастливее, 310 00:13:33,600 --> 00:13:37,926 и мы все настроены на добиться успеха в этом процессе. 311 00:13:37,926 --> 00:13:39,800 Что-то, что очень Уникальность этого класса 312 00:13:39,800 --> 00:13:42,660 Я думаю, что каждый должен действительно обратить внимание на то, что у нас есть 313 00:13:42,660 --> 00:13:44,930 то, что называется сожаление оговорка в нашей программе. 314 00:13:44,930 --> 00:13:50,010 Так по существу, в течение 72 часов, если Вы уверены, что вы сделали что-то 315 00:13:50,010 --> 00:13:53,240 Вы не уверены, был действительно необходимости, пожалуйста, приходите к нам. 316 00:13:53,240 --> 00:13:57,220 Мы обещаем вам, что в течение 72 часов мы будет обрабатывать сами дела 317 00:13:57,220 --> 00:13:59,820 не обращаясь к выше власть в администрации. 318 00:13:59,820 --> 00:14:03,100 >> Так что, если вы пришли ко мне и говорят, Энди, эй, я действительно сожалею, 319 00:14:03,100 --> 00:14:07,620 но я думаю, что есть пара строк по моему Код вчера вечером, что я вроде гугле, 320 00:14:07,620 --> 00:14:10,120 сошел из стека Переполнение, скопируйте и вставить, 321 00:14:10,120 --> 00:14:13,680 и я очень, очень жаль о том, дайте мне знать. 322 00:14:13,680 --> 00:14:16,900 Пожалуйста, не просто позволить ей тлеть и только надеюсь, что я поймать его. 323 00:14:16,900 --> 00:14:17,784 Мы поймать его. 324 00:14:17,784 --> 00:14:18,450 Просто приходите ко мне. 325 00:14:18,450 --> 00:14:20,520 Позвольте мне знать, в течение 72 часов. 326 00:14:20,520 --> 00:14:22,240 Мы выяснить, решение. 327 00:14:22,240 --> 00:14:26,679 И мы обещаем, что мы не будем ссылаться на университетские власти по существу. 328 00:14:26,679 --> 00:14:29,220 Так что это в ваших интересах просто быть честным со всеми 329 00:14:29,220 --> 00:14:31,720 участие в процессе. 330 00:14:31,720 --> 00:14:34,630 >> ХОРОШО. 331 00:14:34,630 --> 00:14:35,240 ХОРОШО. 332 00:14:35,240 --> 00:14:37,800 Так что теперь, быстро, прежде чем Я двигаться дальше, кто-нибудь 333 00:14:37,800 --> 00:14:42,670 есть вопросы, касающиеся логистики от того, как курсы мы собираемся работать, 334 00:14:42,670 --> 00:14:45,982 как секции собираются бежать, любой из что? 335 00:14:45,982 --> 00:14:46,711 ХОРОШО. 336 00:14:46,711 --> 00:14:47,210 Да. 337 00:14:47,210 --> 00:14:48,126 >> АУДИТОРИЯ: [неразборчиво]? 338 00:14:48,126 --> 00:14:50,414 339 00:14:50,414 --> 00:14:51,080 ANDI Пэн: Да. 340 00:14:51,080 --> 00:14:54,850 Так как quizzes-- многие из вас в разделе понедельник / среду? 341 00:14:54,850 --> 00:14:56,700 Как многие из вас в вторник / четверг? 342 00:14:56,700 --> 00:14:58,550 ОК, так что это твердое сплит здесь. 343 00:14:58,550 --> 00:15:00,900 Таким образом, путь, который мы запускаем это в Йельском университете, что мы 344 00:15:00,900 --> 00:15:04,040 будут иметь два отдельных quizzes-- один для каждого section--, что 345 00:15:04,040 --> 00:15:06,160 будут приняты во время занятий. 346 00:15:06,160 --> 00:15:09,310 Я думаю, что это октября конец октября, что-то подобное, а недели один 347 00:15:09,310 --> 00:15:10,794 викторины. 348 00:15:10,794 --> 00:15:11,960 Да, так просто прийти в класс. 349 00:15:11,960 --> 00:15:13,920 На этой понедельник или в среду, вы будете принимать тест. 350 00:15:13,920 --> 00:15:16,336 На этой вторник или четверг, вы будете принимать различные викторины. 351 00:15:16,336 --> 00:15:18,570 Но тот же материал будет покрыта. 352 00:15:18,570 --> 00:15:19,160 Да. 353 00:15:19,160 --> 00:15:20,660 Хороший вопрос. 354 00:15:20,660 --> 00:15:21,160 Да. 355 00:15:21,160 --> 00:15:23,260 >> АУДИТОРИЯ: Где мы пойти проверить наши оценки? 356 00:15:23,260 --> 00:15:23,926 >> ANDI Пэн: Да. 357 00:15:23,926 --> 00:15:28,420 Так что я буду посылать вне адрес электронной почты все, что каждую неделю 358 00:15:28,420 --> 00:15:31,460 когда викторины graded-- или извините, когда psets оцениваются. 359 00:15:31,460 --> 00:15:34,120 Psets обычно оказалось в полдень или в пятницу. 360 00:15:34,120 --> 00:15:37,540 Так что я обещаю, что я буду попытаться получить их обратно к вам 361 00:15:37,540 --> 00:15:40,000 к полудню следующего пятницу. 362 00:15:40,000 --> 00:15:44,950 >> Всякий раз, когда я Grade A PSET, я пошлю из уведомления о книге класса 363 00:15:44,950 --> 00:15:47,070 что говорит вам ваш счет можно смотреть онлайн. 364 00:15:47,070 --> 00:15:52,022 Так прямо на этой неделе, после того как я завершить классификации psets на прошлой неделе, 365 00:15:52,022 --> 00:15:54,230 вы, ребята, получите по электронной почте Уведомление говорю вам, 366 00:15:54,230 --> 00:15:55,870 Эй, это где вы перейти просматривать оценки. 367 00:15:55,870 --> 00:15:57,680 И вы можете видеть каждый Анализ ваших классах. 368 00:15:57,680 --> 00:15:58,555 Вы можете видеть комментарии. 369 00:15:58,555 --> 00:16:00,360 О, быстро, что также. 370 00:16:00,360 --> 00:16:03,060 В разделе комментариев в большой Книга, где я, наверное, 371 00:16:03,060 --> 00:16:05,300 проводят большую часть своего времени классификации. 372 00:16:05,300 --> 00:16:07,094 Так одна вещь, которая Очень важно, когда 373 00:16:07,094 --> 00:16:09,010 Вы, ребята, просмотра Ваши сорта на ваших psets 374 00:16:09,010 --> 00:16:11,400 не только ищет на физическом счет 375 00:16:11,400 --> 00:16:14,630 но также нашли время, чтобы действительно прочитал мои комментарии. 376 00:16:14,630 --> 00:16:17,820 >> Часто это дает вам обратную связь о том, как вы решаете проблему. 377 00:16:17,820 --> 00:16:20,480 Если вам нужно сделать, что-то немного лучше, 378 00:16:20,480 --> 00:16:24,080 конструктивная критика обычно лучше назначать в тех разделе комментариев. 379 00:16:24,080 --> 00:16:26,950 Так что пожалуйста, пожалуйста, я собираюсь провести время на написание комментариев. 380 00:16:26,950 --> 00:16:30,440 Пожалуйста, я бы очень признателен если вы, ребята, будет читать эти комментарии. 381 00:16:30,440 --> 00:16:31,170 ХОРОШО. 382 00:16:31,170 --> 00:16:34,150 Круто. 383 00:16:34,150 --> 00:16:34,680 >> Все в порядке. 384 00:16:34,680 --> 00:16:40,680 Итак, мы собираемся, чтобы начать говорить и просто рассмотрение быстро 385 00:16:40,680 --> 00:16:45,040 некоторые из материала с нулю просто так мы неделю 386 00:16:45,040 --> 00:16:48,760 на правой странице для начиная проблемы на этой неделе. 387 00:16:48,760 --> 00:16:52,600 Таким образом, в то время как петля является одним из трех типов петель 388 00:16:52,600 --> 00:16:54,510 мы обсуждали ранее в этом классе. 389 00:16:54,510 --> 00:16:57,060 >> Некоторое время цикла существенно написано в синтаксисе 390 00:16:57,060 --> 00:17:00,666 где, в то время как определенное состояние, Сделайте это несколько раз, верно? 391 00:17:00,666 --> 00:17:02,040 Думайте о нем, в этом графике здесь. 392 00:17:02,040 --> 00:17:04,780 Вы собираетесь начинаются в определенная точка в коде. 393 00:17:04,780 --> 00:17:09,030 Вы собираетесь войти в условие цикла if-- я не знаю-- х меньше, чем один. 394 00:17:09,030 --> 00:17:11,677 >> Если это правда, что вы собираетесь для выполнения тела цикла. 395 00:17:11,677 --> 00:17:14,010 И вы собираетесь продолжать делать что опять, опять, опять, 396 00:17:14,010 --> 00:17:17,900 снова и over-- поэтому это loop--, пока ваш условие не станет 397 00:17:17,900 --> 00:17:19,079 ложный. 398 00:17:19,079 --> 00:17:22,140 Так что в этом пути, в то время как петли является одним из самых простых способов 399 00:17:22,140 --> 00:17:25,619 написать какой-либо условии, что Необходимо повторить снова и более. 400 00:17:25,619 --> 00:17:28,109 Только будьте осторожны, когда Вы пишете какой-либо петли 401 00:17:28,109 --> 00:17:32,140 что у вас есть выход в состояние а также обновление для бы то ни 402 00:17:32,140 --> 00:17:36,714 так что ваш цикл не просто придется снова и снова бесконечно. 403 00:17:36,714 --> 00:17:38,630 В любом случае, вы будете хотят, чтобы убедиться, 404 00:17:38,630 --> 00:17:42,670 что вы изменяете некоторый аспект код или в конце цикла 405 00:17:42,670 --> 00:17:46,680 просто чтобы убедиться, что у вас есть способ прогрессирующей к состоянии 406 00:17:46,680 --> 00:17:48,400 что вы хотите, чтобы удовлетворить до конца. 407 00:17:48,400 --> 00:17:50,239 Имеет ли это смысл для всех? 408 00:17:50,239 --> 00:17:52,530 Мы просто не хотим быть оказавшихся в этой спирали где 409 00:17:52,530 --> 00:17:55,710 мы идем вокруг и вокруг и нет никакого способа, чтобы разорвать петлю. 410 00:17:55,710 --> 00:17:58,844 И каждый цикл по существу есть способ сделать это. 411 00:17:58,844 --> 00:17:59,344 ХОРОШО. 412 00:17:59,344 --> 00:18:03,030 413 00:18:03,030 --> 00:18:06,060 >> Во-вторых, многие из вас в ваших psets Марио 414 00:18:06,060 --> 00:18:08,910 вероятно, использовать Этот тип цикла. 415 00:18:08,910 --> 00:18:11,802 Это называется делать во время цикла. 416 00:18:11,802 --> 00:18:14,510 Прежде всего, кто может сказать мне, в чем разница между дел 417 00:18:14,510 --> 00:18:16,586 в то время как цикл и в то время как цикл? 418 00:18:16,586 --> 00:18:17,086 Да. 419 00:18:17,086 --> 00:18:21,030 >> Аудитория: сделай то время как цикл работает на первый [неразборчиво]. 420 00:18:21,030 --> 00:18:22,120 >> ANDI Пэн: Да, именно так. 421 00:18:22,120 --> 00:18:27,130 Так сделай то время как цикл всегда делает то, что находится внутри дел, в скобках 422 00:18:27,130 --> 00:18:30,520 там и делает, что условие до проверки the-- извините, 423 00:18:30,520 --> 00:18:32,940 делает что-код перед проверка состояния. 424 00:18:32,940 --> 00:18:37,200 И это особенно актуально для нас Здесь в этом классе, потому что большинство времени 425 00:18:37,200 --> 00:18:41,450 мы собираемся хотите, чтобы побудить пользователь в течение некоторого рода входом. 426 00:18:41,450 --> 00:18:43,520 А потом, в зависимости от вход они дают нам, 427 00:18:43,520 --> 00:18:46,150 то мы можем оценить, ох, сделать мы должны побудить их снова? 428 00:18:46,150 --> 00:18:49,930 >> Таким образом, в Марио, если пользователь дал вам отрицательный рост, например, 429 00:18:49,930 --> 00:18:52,990 Вы собираетесь первой строке и делать все, что находится внутри. 430 00:18:52,990 --> 00:18:54,820 Тогда вы идете, чтобы проверить время. 431 00:18:54,820 --> 00:18:57,570 Вы знаете, это отрицательный 1, является то, что положительное число? 432 00:18:57,570 --> 00:19:00,680 Если это не так, я собираюсь пойти назад и повторить делать и повторения 433 00:19:00,680 --> 00:19:03,950 и повторять и повторять, пока они наконец, дать вам номер, который вам нравится, 434 00:19:03,950 --> 00:19:07,002 что все мы можем использовать в нашем коде. 435 00:19:07,002 --> 00:19:09,210 Это очень важно для по существу, любой пользовательский ввод. 436 00:19:09,210 --> 00:19:11,760 Я могу гарантировать вам, любой раз в PSET где 437 00:19:11,760 --> 00:19:15,070 мы просим вас ввести какой-либо кода, мы 438 00:19:15,070 --> 00:19:17,540 вероятно, чтобы дать вам тест случай, в котором мы 439 00:19:17,540 --> 00:19:21,200 собираюсь дать вам что-то плохое, что это будет пытаться сломать ваш код. 440 00:19:21,200 --> 00:19:25,044 >> Если мы пытаемся спросить вас Для ввода число, мы можем просто дать вам строку 441 00:19:25,044 --> 00:19:26,460 и посмотреть, как вы бы справиться с этим. 442 00:19:26,460 --> 00:19:30,610 Если мы просим вас использовать возраст, мы можем дать вам отрицательное число 443 00:19:30,610 --> 00:19:32,340 чтобы посмотреть, как вы бы справиться с этим. 444 00:19:32,340 --> 00:19:37,260 Просто убедитесь, что вы, ребята, тестирование на случаи, в которых вы не получите лучший 445 00:19:37,260 --> 00:19:38,590 вход, давайте просто сказать. 446 00:19:38,590 --> 00:19:40,510 И сделай то время как цикл это часто лучший 447 00:19:40,510 --> 00:19:45,260 способ создать свой код так, что он отвечает, что объем. 448 00:19:45,260 --> 00:19:45,760 ХОРОШО. 449 00:19:45,760 --> 00:19:48,930 450 00:19:48,930 --> 00:19:49,470 >> ХОРОШО. 451 00:19:49,470 --> 00:19:53,270 Так что это, вероятно, наиболее Комплекс цикл из трех 452 00:19:53,270 --> 00:19:54,990 что мы смотрели на до сих пор. 453 00:19:54,990 --> 00:19:56,689 И, кажется, очень страшно на первый взгляд. 454 00:19:56,689 --> 00:19:59,730 Но я гарантирую вам, после того, как вы, ребята, получить навык, как использовать цикл, 455 00:19:59,730 --> 00:20:03,320 это один из самых полезных вещей, наиболее полезных инструментов в вашем арсенале 456 00:20:03,320 --> 00:20:05,300 для продвижения вперед в этом классе. 457 00:20:05,300 --> 00:20:09,920 >> Так, например, в пустом, у нас была эта очень простой блок 458 00:20:09,920 --> 00:20:13,180 что только что сказал, повторять это наверняка фразы определенное количество раз. 459 00:20:13,180 --> 00:20:16,260 Кстати, SAJ-- это Scaz Энди Джейсон. 460 00:20:16,260 --> 00:20:18,740 Мы часто войдите наши письма Сай. 461 00:20:18,740 --> 00:20:20,360 Если мы говорим, Сай, не путать. 462 00:20:20,360 --> 00:20:22,630 Вот только мы. 463 00:20:22,630 --> 00:20:28,600 >> Таким образом, в пустом, мы были в состоянии иметь блок, который сказал, что я люблю повторять Сай! 464 00:20:28,600 --> 00:20:29,430 10 раз. 465 00:20:29,430 --> 00:20:30,130 Очень просто. 466 00:20:30,130 --> 00:20:32,302 Логика, которая является очень, очень просто, верно? 467 00:20:32,302 --> 00:20:35,260 Я хочу, чтобы сначала пройти через первый время и видеть, что во второй раз 468 00:20:35,260 --> 00:20:38,510 и видеть, что в третий раз, и так далее и так далее, пока вы не нажмете 10. 469 00:20:38,510 --> 00:20:41,960 >> И то, как мы будет представлять, что в Код просто через простой цикл. 470 00:20:41,960 --> 00:20:45,440 Таким образом, для, вы собираетесь объявить переменная здесь, в этом случае, 471 00:20:45,440 --> 00:20:46,349 с внутр. 472 00:20:46,349 --> 00:20:47,390 Мы собираемся назвать это я. 473 00:20:47,390 --> 00:20:49,500 Мы собираемся, чтобы инициализировать его в 0. 474 00:20:49,500 --> 00:20:52,490 И остановка издание будет я меньше 10. 475 00:20:52,490 --> 00:20:54,622 И обновление будет я ++. 476 00:20:54,622 --> 00:20:57,750 >> И в цикле, это происходит не выполнять пока в конце концов его 477 00:20:57,750 --> 00:21:01,490 парад конец condition--, в котором так, он собирается разорвать петлю. 478 00:21:01,490 --> 00:21:04,600 Там должно быть вещи, которые вы Ребята все вроде видел 479 00:21:04,600 --> 00:21:07,270 и должен был сделать для вашей проблемы установите один. 480 00:21:07,270 --> 00:21:12,310 Кто-нибудь есть какие-либо вопросы в отношении, петель прямо сейчас? 481 00:21:12,310 --> 00:21:12,930 ХОРОШО. 482 00:21:12,930 --> 00:21:13,430 Отлично. 483 00:21:13,430 --> 00:21:17,520 484 00:21:17,520 --> 00:21:18,620 >> ХОРОШО. 485 00:21:18,620 --> 00:21:22,270 Так что для тех из вас, кто читать Pset спецификации на этой неделе 486 00:21:22,270 --> 00:21:27,690 знаете, что мы будем иметь на работу то, что называется ASCII и таблицы ASCII. 487 00:21:27,690 --> 00:21:32,380 Давид в лекции подошел кратко как компьютеры все essentially-- 488 00:21:32,380 --> 00:21:35,410 кодируется в компьютере в двоичный, в нулей и единиц. 489 00:21:35,410 --> 00:21:39,740 И то, компьютеры способны для хранения различных ценностей, в дополнение 490 00:21:39,740 --> 00:21:44,360 в нулей и единиц являются отображением через эти цифры представляют другие цифры 491 00:21:44,360 --> 00:21:47,220 или существенно другие характеры. 492 00:21:47,220 --> 00:21:49,810 >> Таким образом, в этом случае, ASCII-table-- все это делает 493 00:21:49,810 --> 00:21:53,600 это символы карту, или символы, на номера. 494 00:21:53,600 --> 00:21:57,385 Так файла исходного кода в Ваш computer-- он видит, 495 00:21:57,385 --> 00:22:00,010 эй, куча нулей и единиц, нулей и единиц, нулей и единиц. 496 00:22:00,010 --> 00:22:02,350 Это то, что хранится в фактический объем памяти вашего компьютера. 497 00:22:02,350 --> 00:22:04,750 >> Но когда мы, люди, хотим общаться с компьютером, 498 00:22:04,750 --> 00:22:08,249 мы want-- сказать, например, если я хочу заглавную A, 499 00:22:08,249 --> 00:22:10,540 Я собираюсь нужно каким-то образом рассказывать компьютер, ох, 500 00:22:10,540 --> 00:22:16,300 когда я печатаю в верхнем регистре A, я имею в виду это представление в двоичной системе. 501 00:22:16,300 --> 00:22:22,260 >> И так, как мы делаем, что бросил произвольное, что называется таблицу ASCII, 502 00:22:22,260 --> 00:22:25,020 где, как люди, так как программисты, некоторое время назад, 503 00:22:25,020 --> 00:22:28,660 мы произвольно решил, что мы собирались назначить эти номера 504 00:22:28,660 --> 00:22:30,960 Значения этих символов в. 505 00:22:30,960 --> 00:22:32,720 >> Таким образом, вы, ребята, можете Google это в Интернете. 506 00:22:32,720 --> 00:22:37,120 Я думаю, что есть ссылка на него в вашей pset-- просто ASCII таблица карты, ASCII 507 00:22:37,120 --> 00:22:37,720 Таблица. 508 00:22:37,720 --> 00:22:40,722 Это просто переводит двоичный номера в символов. 509 00:22:40,722 --> 00:22:42,930 И это будет очень полезно для вашей проблемы набора 510 00:22:42,930 --> 00:22:45,470 всякий раз, когда вы хотите, чтобы рассчитать что-нибудь или если вы 511 00:22:45,470 --> 00:22:47,880 хочу, чтобы отобразить определенный символы или целые числа 512 00:22:47,880 --> 00:22:50,327 или манипулировать определенные символы. 513 00:22:50,327 --> 00:22:52,160 Это собирается быть очень Важно, что вы все 514 00:22:52,160 --> 00:22:55,140 знаете, как перемещаться таблицу ASCII. 515 00:22:55,140 --> 00:23:01,260 >> Так, например, в верхнем регистре A представлена ​​на число 65. 516 00:23:01,260 --> 00:23:04,207 И в нижнем регистре представлена ​​97. 517 00:23:04,207 --> 00:23:07,040 Поэтому важно знать, что Разница между этими двумя значениями 518 00:23:07,040 --> 00:23:08,320 32. 519 00:23:08,320 --> 00:23:13,210 Часто, если вам нужно конвертировать из друг к другу, разница 32. 520 00:23:13,210 --> 00:23:15,710 И не волнуйтесь, если вы вид смущен об этом сначала. 521 00:23:15,710 --> 00:23:20,230 Мы пойдем над тем, как мы бы использовать это в реальной кода. 522 00:23:20,230 --> 00:23:24,700 523 00:23:24,700 --> 00:23:26,380 >> ХОРОШО. 524 00:23:26,380 --> 00:23:30,770 Так что для тех из вас с ноутбуками вне, не стесняйтесь, чтобы подтянуть таблицу ASCII, 525 00:23:30,770 --> 00:23:36,030 потому что они, вероятно, требуют вы, ребята, чтобы ссылаться на 526 00:23:36,030 --> 00:23:38,100 то, что персонажи. 527 00:23:38,100 --> 00:23:38,640 ХОРОШО. 528 00:23:38,640 --> 00:23:42,840 >> Так, зная, что некоторые символы отображаются на определенные номера, 529 00:23:42,840 --> 00:23:47,240 если бы я работать только первый линия, что code-- в PRINTF а, 530 00:23:47,240 --> 00:23:50,900 нижний регистр в минус, прописные А. Кто-нибудь 531 00:23:50,900 --> 00:23:55,880 есть предположение о том, что будет печать из экрана прямо сейчас? 532 00:23:55,880 --> 00:23:58,190 >> Итак, прежде всего, то, что делает Строчные представляют? 533 00:23:58,190 --> 00:24:00,990 Какое число является то, что кодируется в таблице ASCII. 534 00:24:00,990 --> 00:24:01,490 Сожалею? 535 00:24:01,490 --> 00:24:02,630 >> АУДИТОРИЯ: 97? 536 00:24:02,630 --> 00:24:03,630 >> ANDI Пэн: 97, большой. 537 00:24:03,630 --> 00:24:05,077 И то, что в верхнем регистре A? 538 00:24:05,077 --> 00:24:06,330 >> АУДИТОРИЯ: 65. 539 00:24:06,330 --> 00:24:08,255 >> ANDI Пэн: Так что 97 минус 65? 540 00:24:08,255 --> 00:24:09,227 >> АУДИТОРИЯ: 32. 541 00:24:09,227 --> 00:24:09,810 ANDI Пэн: ОК. 542 00:24:09,810 --> 00:24:13,530 Так что вы, ребята, думаете, что произойдет, когда я вход, строка кода 543 00:24:13,530 --> 00:24:14,670 в моем компьютере? 544 00:24:14,670 --> 00:24:17,981 545 00:24:17,981 --> 00:24:19,896 >> АУДИТОРИЯ: [неразборчиво]. 546 00:24:19,896 --> 00:24:21,020 ANDI Пэн: К сожалению, говорить. 547 00:24:21,020 --> 00:24:22,520 Не беспокойся. 548 00:24:22,520 --> 00:24:25,750 Это очень безопасно среда, минус камера. 549 00:24:25,750 --> 00:24:27,550 Мы все, целью которых без забот. 550 00:24:27,550 --> 00:24:30,940 Просто мы все собираемся делать вид, как это просто нам охлаждения в этой комнате. 551 00:24:30,940 --> 00:24:31,480 Не беспокойся. 552 00:24:31,480 --> 00:24:33,410 Ни один вопрос не является слишком глупо. 553 00:24:33,410 --> 00:24:35,300 Ответа не глупый ответ. 554 00:24:35,300 --> 00:24:38,260 Я, вероятно, будет делать ошибки в ходе моего обучения. 555 00:24:38,260 --> 00:24:40,740 Серьезно, ребята, просто ляпнуть это. 556 00:24:40,740 --> 00:24:43,092 Будьте уверены в себе, вы знаете? 557 00:24:43,092 --> 00:24:43,800 Так что это было? 558 00:24:43,800 --> 00:24:47,990 Кто сказал, что последний ответ? 559 00:24:47,990 --> 00:24:48,540 ХОРОШО. 560 00:24:48,540 --> 00:24:50,380 Кричите, что красиво и понятно. 561 00:24:50,380 --> 00:24:51,220 >> АУДИТОРИЯ: 32? 562 00:24:51,220 --> 00:24:51,850 >> ANDI Пэн: 32. 563 00:24:51,850 --> 00:24:54,141 ОК, давайте запустим этот код и увидеть, если это то, что происходит. 564 00:24:54,141 --> 00:25:00,260 565 00:25:00,260 --> 00:25:00,760 ХОРОШО. 566 00:25:00,760 --> 00:25:03,300 567 00:25:03,300 --> 00:25:06,360 Итак, как вы, ребята, можете вид см, типичный обозначения Я 568 00:25:06,360 --> 00:25:12,250 настроить здесь, как мы будет использовать какой-либо программы в нашем компьютере. 569 00:25:12,250 --> 00:25:14,770 У нас есть основной функцией в нашей основной функции. 570 00:25:14,770 --> 00:25:17,265 Я просто хочу, чтобы скопировать и вставьте эту строку кода. 571 00:25:17,265 --> 00:25:21,082 572 00:25:21,082 --> 00:25:23,540 Также будьте осторожны, когда вы, ребята, копировании и вставке код. 573 00:25:23,540 --> 00:25:28,750 Иногда некоторые операторы не оклеивать правильно. 574 00:25:28,750 --> 00:25:31,397 В этом случае, минус Знак был на самом деле тире. 575 00:25:31,397 --> 00:25:32,980 И поэтому компьютер не забрать его. 576 00:25:32,980 --> 00:25:35,870 Так что мне пришлось вернуться и физически перепечатывать, что. 577 00:25:35,870 --> 00:25:37,846 Только будьте осторожны, когда вы, ребята, делаете это. 578 00:25:37,846 --> 00:25:41,178 579 00:25:41,178 --> 00:25:42,660 >> ХОРОШО. 580 00:25:42,660 --> 00:25:43,980 Мы собираемся запустить это здесь. 581 00:25:43,980 --> 00:25:45,670 Итак, мы собираемся, чтобы компакт-диска в нашей раздел2. 582 00:25:45,670 --> 00:25:50,470 583 00:25:50,470 --> 00:25:52,030 Я назвал эту программу asciimath. 584 00:25:52,030 --> 00:25:55,690 Так что помните, когда мы бежим любой Программа, мы хотим, чтобы скомпилировать его 585 00:25:55,690 --> 00:25:57,150 запустив его через наш марки. 586 00:25:57,150 --> 00:26:00,030 И тогда мы действительно хотим работать Программа делая точка-слэш. 587 00:26:00,030 --> 00:26:01,280 Итак, мы собираемся, чтобы ./asciimath. 588 00:26:01,280 --> 00:26:05,780 589 00:26:05,780 --> 00:26:06,590 >> Право, мы идем. 590 00:26:06,590 --> 00:26:07,410 И мы видим, 32. 591 00:26:07,410 --> 00:26:07,930 Отлично сработано. 592 00:26:07,930 --> 00:26:10,340 Вы заслуживаете конфету. 593 00:26:10,340 --> 00:26:11,160 Конфеты для вас. 594 00:26:11,160 --> 00:26:11,900 Сожалею. 595 00:26:11,900 --> 00:26:13,100 Все в порядке. 596 00:26:13,100 --> 00:26:13,670 ХОРОШО. 597 00:26:13,670 --> 00:26:18,070 Таким образом, мы можем вернуться к нашему примеру здесь. 598 00:26:18,070 --> 00:26:23,530 599 00:26:23,530 --> 00:26:24,345 Ааа, нет. 600 00:26:24,345 --> 00:26:29,147 601 00:26:29,147 --> 00:26:31,090 Ааа. 602 00:26:31,090 --> 00:26:32,490 ХОРОШО. 603 00:26:32,490 --> 00:26:34,610 Я просто хочу, чтобы держать его так. 604 00:26:34,610 --> 00:26:48,520 605 00:26:48,520 --> 00:26:51,240 ХОРОШО. 606 00:26:51,240 --> 00:26:51,740 ХОРОШО. 607 00:26:51,740 --> 00:26:55,340 Итак, как вы, ребята, можете увидеть, что мы можем сделать много очень интересных вещей, 608 00:26:55,340 --> 00:26:58,880 много очень интересных вещей, много очень сложные вещи с участием 609 00:26:58,880 --> 00:27:02,720 Символы ASCII и цифры. 610 00:27:02,720 --> 00:27:05,890 После того, как вы садитесь на линию пять, что это много, чтобы следовать. 611 00:27:05,890 --> 00:27:07,640 Мы не собираемся идти через секцию. 612 00:27:07,640 --> 00:27:10,720 Не стесняйтесь, если вы можете, Причина это на бумаге 613 00:27:10,720 --> 00:27:14,750 в первую очередь на то, что должно быть, когда происходит Вы ввели такой строки значений. 614 00:27:14,750 --> 00:27:19,720 Например, в последнем линии, мы имеем z-- который представляет определенный number-- 615 00:27:19,720 --> 00:27:24,740 a-- который также представляет собой некоторые number-- плюс 1 модуло 26 616 00:27:24,740 --> 00:27:26,750 плюс нижний регистр а. 617 00:27:26,750 --> 00:27:29,220 >> Если вы, ребята, продолжайте чтение через них, вам 618 00:27:29,220 --> 00:27:34,009 можно увидеть образец придумать в как мы манипулировать код. 619 00:27:34,009 --> 00:27:36,050 Я очень, очень рекомендую после раздела вы все 620 00:27:36,050 --> 00:27:38,160 ребята идти вперед и вход те, все в вашем компьютере 621 00:27:38,160 --> 00:27:40,060 и посмотреть, какие номера выходят 622 00:27:40,060 --> 00:27:43,090 и рассуждая, почему через те происходит, потому что для psets 623 00:27:43,090 --> 00:27:45,060 это будет действительно важно для вас, чтобы понять, 624 00:27:45,060 --> 00:27:47,132 почему некоторые вещи случаются. 625 00:27:47,132 --> 00:27:48,590 Все эти слайды будет онлайн. 626 00:27:48,590 --> 00:27:51,510 Так что не беспокойтесь о попытке физически копировать заметки. 627 00:27:51,510 --> 00:27:52,510 Онлайн Все в. 628 00:27:52,510 --> 00:27:54,050 Это само по себе раздел будет онлайн. 629 00:27:54,050 --> 00:27:57,500 Все мой исходный код, что Я бегу будет онлайн. 630 00:27:57,500 --> 00:27:58,180 Да. 631 00:27:58,180 --> 00:27:59,430 Ты все еще есть вопросы? 632 00:27:59,430 --> 00:28:00,587 АУДИТОРИЯ: Что модуло? 633 00:28:00,587 --> 00:28:01,170 ANDI Пэн: ОК. 634 00:28:01,170 --> 00:28:05,620 Так модулю является оператором, который собирается довольно важно PSET ваши ребята игровая 635 00:28:05,620 --> 00:28:06,690 Вот. 636 00:28:06,690 --> 00:28:12,280 Таким образом, путь, который операторы в С и в программировании работы 637 00:28:12,280 --> 00:28:16,360 является то, что у вас есть то, что называется символ разделения и символом модуль, 638 00:28:16,360 --> 00:28:18,350 который так же, как знак процента. 639 00:28:18,350 --> 00:28:24,840 >> Таким образом, в C, когда вы делаете целое разделить на целое число с косой черты, 640 00:28:24,840 --> 00:28:27,720 С имеет тенденцию требуется вырезать от всех десятичных знаков, 641 00:28:27,720 --> 00:28:30,290 потому что целое хочет преобразовать в целое число. 642 00:28:30,290 --> 00:28:33,550 Это не захочет быть двойной с кучей знаков после запятой все после него. 643 00:28:33,550 --> 00:28:39,322 >> Так что, если я 3 разделенный на 2, это будет отрезать 0,5 и просто дать вам 1. 644 00:28:39,322 --> 00:28:41,530 Так вот что-то, чтобы быть очень осторожны, когда вы 645 00:28:41,530 --> 00:28:45,294 делать какой-либо математики в программировании, является то, что число вы получите 646 00:28:45,294 --> 00:28:47,210 может быть число что вы думаете, 647 00:28:47,210 --> 00:28:50,190 поэтому округление в вашем Последнее PSET так важно. 648 00:28:50,190 --> 00:28:51,980 >> Модулю дает остаток. 649 00:28:51,980 --> 00:28:56,200 Так, например, если бы я сделал 3 модулю 2-- так 3 знак процента 2-- 650 00:28:56,200 --> 00:28:58,020 это даст вам оставшуюся часть этого. 651 00:28:58,020 --> 00:29:00,460 Так 3 делится на 2 1,5. 652 00:29:00,460 --> 00:29:01,410 Это 1 остаток 1. 653 00:29:01,410 --> 00:29:04,600 Это даст вам 1, который является остатком этого. 654 00:29:04,600 --> 00:29:07,361 >> Так что, когда вы, ребята, движется по таблице ASCII, 655 00:29:07,361 --> 00:29:09,735 по модулю будет в конечном итоге то, что очень важно, 656 00:29:09,735 --> 00:29:11,240 и мы обсудим, что позже. 657 00:29:11,240 --> 00:29:17,750 658 00:29:17,750 --> 00:29:19,040 >> ХОРОШО. 659 00:29:19,040 --> 00:29:27,300 Так что-то, что является довольно, довольно новый и довольно уникальный 660 00:29:27,300 --> 00:29:31,920 что мы обсуждали на этой неделе концепция о том, что массив является. 661 00:29:31,920 --> 00:29:34,370 Так массив первым тип структуры данных 662 00:29:34,370 --> 00:29:36,320 что мы собираемся столкнуться в этом классе. 663 00:29:36,320 --> 00:29:40,010 Все структуры данных является своего рода произвольным, 664 00:29:40,010 --> 00:29:43,370 буквально вещи, как структуры что мы, как программисты создали, 665 00:29:43,370 --> 00:29:47,890 что мы вложили в нашем коде, что может содержать другие куски кода. 666 00:29:47,890 --> 00:29:51,090 >> Так что в этом смысле, array-- думаю о нем, как картотеке, 667 00:29:51,090 --> 00:29:53,470 где, если вы открыть отличается полки вашего картотеке, 668 00:29:53,470 --> 00:29:55,630 Вы можете получить доступ разные вещи. 669 00:29:55,630 --> 00:29:58,630 В памяти массив просто делает то же самое на вашем компьютере. 670 00:29:58,630 --> 00:30:01,730 Вы можете иметь различное blocks-- мы называть их indices-- массива. 671 00:30:01,730 --> 00:30:04,210 Это просто, как блок, полка памяти 672 00:30:04,210 --> 00:30:07,580 что мы создали в вашей компьютер, вы можете ввести 673 00:30:07,580 --> 00:30:10,270 некоторые вещи в разных пространствах. 674 00:30:10,270 --> 00:30:18,000 >> Так с массивом, вы всегда должны specify-- 675 00:30:18,000 --> 00:30:22,360 Вы должны указать объявлении Массив в следующем формате. 676 00:30:22,360 --> 00:30:24,290 Вы собираетесь сначала указать тип данных 677 00:30:24,290 --> 00:30:25,831 что вы хотите создать массива. 678 00:30:25,831 --> 00:30:28,870 Если я хочу массив целых чисел, Я собираюсь поставить Int прямо там. 679 00:30:28,870 --> 00:30:32,079 Если я хочу массив строк, Я собираюсь поставить струны там, 680 00:30:32,079 --> 00:30:34,995 имя вашего массива, а затем Вы будете иметь квадратные скобки. 681 00:30:34,995 --> 00:30:39,580 А внутри квадратных скобок, вы будет иметь размер вашего массива. 682 00:30:39,580 --> 00:30:42,900 >> Что-то, что действительно важно для имейте в виду, когда создания массивов 683 00:30:42,900 --> 00:30:46,530 что, как только вы создаете Массив, что размер не может измениться. 684 00:30:46,530 --> 00:30:50,180 Так что, если вы знаете, что сейчас у вас есть массив размером 10, 685 00:30:50,180 --> 00:30:54,550 Вы знаете, что я буду иметь 10 ячеек в пределах или 10 показателей в пределах этого массива, 686 00:30:54,550 --> 00:30:56,830 и это никогда не собирается расширить или уменьшить 687 00:30:56,830 --> 00:30:59,850 независимо от того, что, и что есть В настоящее время всего в 10 кварталах пространства 688 00:30:59,850 --> 00:31:04,490 выделено в вашей памяти, которая может хранить до 10 вещей, того, что вы вложили. 689 00:31:04,490 --> 00:31:08,790 >> Таким образом, в этом случае, тип данных массива, структура данных, которая является массивом 690 00:31:08,790 --> 00:31:13,392 очень отличается от некоторых других мы покрывать позже в этом курсе. 691 00:31:13,392 --> 00:31:15,170 Да. 692 00:31:15,170 --> 00:31:20,080 Например, если вы хотите, чтобы создать массив размером 3, 693 00:31:20,080 --> 00:31:23,670 содержащиеся переменные integer-- ой, извините, из temperature-- 694 00:31:23,670 --> 00:31:25,640 и температура, из Конечно, это целое число. 695 00:31:25,640 --> 00:31:28,710 >> Таким образом, мы создали бы Int, которая является Тип данных, что мы хотим сохранить. 696 00:31:28,710 --> 00:31:32,680 Мы собираемся называть это температур ради номенклатуры названий 697 00:31:32,680 --> 00:31:34,200 то, что мы все поняли. 698 00:31:34,200 --> 00:31:35,900 И мы собираемся, чтобы иметь квадратные скобки. 699 00:31:35,900 --> 00:31:37,200 И мы хотим, три номера. 700 00:31:37,200 --> 00:31:39,000 Итак, мы собираемся поставить три внутри него. 701 00:31:39,000 --> 00:31:41,041 >> Что-то, что действительно Важно иметь в виду, 702 00:31:41,041 --> 00:31:43,530 является то, что массивы равны нулю индексируются. 703 00:31:43,530 --> 00:31:46,410 Все это означает, что вы начать с индексом 0, 704 00:31:46,410 --> 00:31:49,800 и вы подбежали через размер массива минус 1. 705 00:31:49,800 --> 00:31:52,730 Так, например, здесь, мы есть массив размером 3. 706 00:31:52,730 --> 00:31:54,680 Это собирается быть в состоянии провести три значения. 707 00:31:54,680 --> 00:31:57,450 Но цифры, которые themselves-- Количество массив, что индекс, 708 00:31:57,450 --> 00:32:00,271 массив, являются от 0 до 2. 709 00:32:00,271 --> 00:32:03,520 Так ребята, действительно, на самом деле осторожны при Вы собираетесь через ваши проблемы, установленным 710 00:32:03,520 --> 00:32:06,500 и создания каких-либо массива, потому что много времени это 711 00:32:06,500 --> 00:32:08,490 действительно, очень легко забыть, что. 712 00:32:08,490 --> 00:32:11,840 Я на самом деле не имеют индекс из 3, что я в настоящее время только 713 00:32:11,840 --> 00:32:13,130 имеют индекс 2. 714 00:32:13,130 --> 00:32:16,046 И если вы попытаетесь доступ к третьему индекс, 715 00:32:16,046 --> 00:32:18,170 это будет то, что называется нуль-терминатор. 716 00:32:18,170 --> 00:32:19,990 Это не собирается на самом деле существует в массиве. 717 00:32:19,990 --> 00:32:21,781 И компьютер не понравится, что. 718 00:32:21,781 --> 00:32:24,570 Так что будьте осторожны, когда вы обращаетесь вещи только 719 00:32:24,570 --> 00:32:28,070 чтобы убедиться, что вы помните что массивы равны нулю, индексированные. 720 00:32:28,070 --> 00:32:28,880 >> ХОРОШО. 721 00:32:28,880 --> 00:32:34,030 Таким образом, первый пример является лишь один из способов создания массива. 722 00:32:34,030 --> 00:32:36,790 Второй пример у меня есть Ниже только отдельный путь 723 00:32:36,790 --> 00:32:40,210 создания что то же самое данные Структура, что мы только что введенный. 724 00:32:40,210 --> 00:32:44,347 Таким образом, вместо физически работает через и положить в температуре от 0 725 00:32:44,347 --> 00:32:47,180 равна бы то ни было, температура 1 равна угодно, температуры 2 равных 726 00:32:47,180 --> 00:32:50,950 все, я мог на самом деле просто непосредственно создавать все это в одной строке 727 00:32:50,950 --> 00:32:53,010 в квадратных скобках температуры равна. 728 00:32:53,010 --> 00:32:56,536 >> И заметьте, в этом случае, вам не нужно чтобы указать, как велик ваш массив, 729 00:32:56,536 --> 00:32:59,160 потому что компьютер собирается пройти и посмотреть, что там 730 00:32:59,160 --> 00:33:01,570 три элемента в этих фигурных скобках. 731 00:33:01,570 --> 00:33:04,000 И это будет знать, ОК, Мне нужен массив размером 3. 732 00:33:04,000 --> 00:33:07,440 Вы не будете нуждаться, чтобы вход это следующим образом. 733 00:33:07,440 --> 00:33:10,170 >> А также, да, именно так. 734 00:33:10,170 --> 00:33:12,610 Кто-нибудь есть вопросы о том, как мы делаем массивы 735 00:33:12,610 --> 00:33:17,391 или как структура из массива работает? 736 00:33:17,391 --> 00:33:17,890 Да. 737 00:33:17,890 --> 00:33:18,806 >> АУДИТОРИЯ: [неразборчиво]? 738 00:33:18,806 --> 00:33:21,649 739 00:33:21,649 --> 00:33:22,690 ANDI Пэн: Да, именно так. 740 00:33:22,690 --> 00:33:26,150 Так что, если вы были объявить и инициализировать массив следующий метод, 741 00:33:26,150 --> 00:33:28,477 который является вторым способом, Вы можете просто оставить их. 742 00:33:28,477 --> 00:33:30,310 И компьютер автоматически знает, что это 743 00:33:30,310 --> 00:33:33,950 нужно посчитать, сколько элементов которые в те фигурные скобки, разделенные 744 00:33:33,950 --> 00:33:34,930 запятыми. 745 00:33:34,930 --> 00:33:37,517 >> Так вот они видят 65, 87, 30. 746 00:33:37,517 --> 00:33:39,600 Таким образом, компьютер знает, о, есть три числа. 747 00:33:39,600 --> 00:33:45,960 Я знаю, чтобы создать имя массива Температура с тремя элементами в нем. 748 00:33:45,960 --> 00:33:46,590 Хороший вопрос. 749 00:33:46,590 --> 00:33:47,090 Да. 750 00:33:47,090 --> 00:33:51,590 >> АУДИТОРИЯ: Разве это не возможно, чтобы создать массив с различными типами данных 751 00:33:51,590 --> 00:33:53,021 которые могут быть в него вошли? 752 00:33:53,021 --> 00:33:56,746 Например, с целыми числами [неразборчиво]? 753 00:33:56,746 --> 00:33:59,120 ANDI Пэн: Для целей этого класса, нет, прямо сейчас. 754 00:33:59,120 --> 00:34:03,070 При создании данных структурировать как массив, 755 00:34:03,070 --> 00:34:04,990 вы говорите компьютер, эй, ты мне нужен 756 00:34:04,990 --> 00:34:08,159 выделить столько память в моем жестком диске, 757 00:34:08,159 --> 00:34:10,690 с каждой ячейки быть Определенное количество битов. 758 00:34:10,690 --> 00:34:13,429 >> Помните, что мы узнали в неделю нулю, что различные данные 759 00:34:13,429 --> 00:34:15,300 типы имеют разные размеры? 760 00:34:15,300 --> 00:34:17,630 Так, например, строки это разное количество 761 00:34:17,630 --> 00:34:20,719 пространства, чем гольца, который это другой объем пространства 762 00:34:20,719 --> 00:34:21,830 от целого числа. 763 00:34:21,830 --> 00:34:25,534 И так, если вы не укажете, и вы смешивать и сочетать, какие виды переменных 764 00:34:25,534 --> 00:34:27,659 у вас есть компьютер-х будет очень смущен. 765 00:34:27,659 --> 00:34:29,950 И это не будет знать, сколько памяти, чтобы дать вам. 766 00:34:29,950 --> 00:34:32,480 Таким образом, для целей права Теперь, компьютеры могут только 767 00:34:32,480 --> 00:34:36,120 признать один тип массива. 768 00:34:36,120 --> 00:34:37,940 Хороший вопрос. 769 00:34:37,940 --> 00:34:38,440 ХОРОШО. 770 00:34:38,440 --> 00:34:45,179 771 00:34:45,179 --> 00:34:47,120 >> Так естественно, Второй вопрос у нас есть 772 00:34:47,120 --> 00:34:50,760 , ну, теперь, когда мы создали Массив и мы поставить все эти вещи 773 00:34:50,760 --> 00:34:54,190 в массиве, как мы будет в состоянии получить доступ к его? 774 00:34:54,190 --> 00:34:59,710 Таким образом, типичная структура, что мы всегда доступ к массиву наш прекрасный цикл. 775 00:34:59,710 --> 00:35:03,830 Я обещаю вам, ребята, что мы будем видя много этого человека здесь. 776 00:35:03,830 --> 00:35:06,470 >> По сути, в любое время вы хотите для ввода значения в массив 777 00:35:06,470 --> 00:35:09,940 или вы хотите, чтобы доступ к ним, то Лучший способ сделать это для цикла, 778 00:35:09,940 --> 00:35:13,730 потому что в цикле, вы знаю, сколько раз вы 779 00:35:13,730 --> 00:35:17,290 собирается хотите запустить через массив, потому что у вас есть остановки издание, не так ли? 780 00:35:17,290 --> 00:35:19,680 И каждый раз, когда вы запустите через, вы можете получить доступ 781 00:35:19,680 --> 00:35:21,310 другой элемент массива. 782 00:35:21,310 --> 00:35:26,920 >> А также, это причина, почему, как правило, мы начинаем для петель на значение 0, 783 00:35:26,920 --> 00:35:30,080 потому что, когда вы получаете доступ массивы, Вы можете получить доступ к нулевой индекс. 784 00:35:30,080 --> 00:35:32,070 И так параллели очень красиво. 785 00:35:32,070 --> 00:35:35,295 Вы, ребята, возможно, хотели писать для INT я равна 1. 786 00:35:35,295 --> 00:35:37,330 Я меньше или равно 3. 787 00:35:37,330 --> 00:35:39,890 >> Но это не будет работать совсем как Ну вот, потому что вы только 788 00:35:39,890 --> 00:35:42,010 есть элементы 0, 1, и 2. 789 00:35:42,010 --> 00:35:45,815 И поэтому, если вы были, чтобы начать ваш I в элементе 1, 2 и 3, 790 00:35:45,815 --> 00:35:48,440 Вы собираетесь в конечном итоге работает из пределов вашего массива, 791 00:35:48,440 --> 00:35:50,440 и плохие вещи будут происходить. 792 00:35:50,440 --> 00:35:54,480 >> Поэтому я надеюсь, что вы, ребята увидеть Segue почему в предыдущих классах 793 00:35:54,480 --> 00:35:58,560 мы учили вас, ребята, как запустить и отформатировать цикл так, что мы были. 794 00:35:58,560 --> 00:36:01,900 Это потому, что, теперь мы перешли в массивы, 795 00:36:01,900 --> 00:36:06,760 Вы можете видеть, почему придает 0 Сама очень красиво доступа. 796 00:36:06,760 --> 00:36:09,880 >> Таким образом, как мы делаем это that-- Я просто печатая его здесь ради 797 00:36:09,880 --> 00:36:10,830 печатать его. 798 00:36:10,830 --> 00:36:13,750 Но у меня есть заполнителя, запятую. 799 00:36:13,750 --> 00:36:15,645 И фактическая Доступ часть происходит. 800 00:36:15,645 --> 00:36:17,520 Название массива назвали температура. 801 00:36:17,520 --> 00:36:21,570 Так что это температура и я-й элемент массива. 802 00:36:21,570 --> 00:36:24,400 >> Так как цикл проходит через, он собирается начать с 0. 803 00:36:24,400 --> 00:36:27,640 Это происходит, чтобы распечатать 0-й индекс массива. 804 00:36:27,640 --> 00:36:29,599 Тогда это будет печатать из первого элемента. 805 00:36:29,599 --> 00:36:31,431 Тогда это будет печатать из второго. 806 00:36:31,431 --> 00:36:32,880 А потом мы собираемся сломать. 807 00:36:32,880 --> 00:36:36,718 Это все ясно, на как это происходит? 808 00:36:36,718 --> 00:36:37,217 Отлично. 809 00:36:37,217 --> 00:36:43,230 810 00:36:43,230 --> 00:36:44,100 >> Все в порядке. 811 00:36:44,100 --> 00:36:47,270 Так вот у нас есть способ говорит, что если мы не хотим, 812 00:36:47,270 --> 00:36:50,020 на жесткий-код in-- меня как программиста. 813 00:36:50,020 --> 00:36:53,320 Я не хочу, чтобы на самом деле физически положить в каждую отдельный элемент 814 00:36:53,320 --> 00:36:54,020 этого массива. 815 00:36:54,020 --> 00:36:56,500 Если бы я хотел, чтобы вместо есть пользовательский ввод значения, 816 00:36:56,500 --> 00:36:58,100 что лучший способ сделать это? 817 00:36:58,100 --> 00:37:00,920 >> Ну, вот я создал это прекрасный функция, 818 00:37:00,920 --> 00:37:03,560 в котором я могу объявить массив. 819 00:37:03,560 --> 00:37:06,210 Так INT scores-- давайте просто сказать, что мы хотим сделать 820 00:37:06,210 --> 00:37:10,660 массив, который провел оценки всех 18 отсюда в этом разделе студентов. 821 00:37:10,660 --> 00:37:12,670 Я думаю, что мы получили немного более 18 детей сегодня. 822 00:37:12,670 --> 00:37:16,460 Но ради полученными в Примере, в давайте предположим, у нас было 18 лет. 823 00:37:16,460 --> 00:37:21,580 Я бы создать десятки имя массива с Тип Внутренние, потому оценки, конечно, 824 00:37:21,580 --> 00:37:22,987 являются числа. 825 00:37:22,987 --> 00:37:24,820 И я собираюсь иметь 18 в квадратных скобках, 826 00:37:24,820 --> 00:37:29,900 потому что это, сколько студентов я хочу, чтобы иметь возможность хранить множество. 827 00:37:29,900 --> 00:37:32,206 >> И то, как я заполнить массив, что я 828 00:37:32,206 --> 00:37:35,572 запустить его через цикл, из Конечно, с 0 мой 0-я индексом. 829 00:37:35,572 --> 00:37:38,030 А потом с 18 Быть моим остановки издание, потому что есть 830 00:37:38,030 --> 00:37:39,690 18 элементов в массиве. 831 00:37:39,690 --> 00:37:44,620 А потом я собираюсь сделать Printf, введите забил student-- болтовня болтовня. 832 00:37:44,620 --> 00:37:51,171 >> Может кто-нибудь сказать мне, почему здесь я печать I плюс 1 и нет? 833 00:37:51,171 --> 00:37:52,920 Это своего рода хитрость Вопрос, на самом деле не. 834 00:37:52,920 --> 00:37:56,020 Это на самом деле не физически влияет на ход кода. 835 00:37:56,020 --> 00:37:56,520 Да. 836 00:37:56,520 --> 00:37:57,909 >> АУДИТОРИЯ: [неразборчиво] 0? 837 00:37:57,909 --> 00:37:58,950 ANDI Пэн: Да, именно так. 838 00:37:58,950 --> 00:38:02,620 Это немного неудобно сказать, эй, ты студент 0-я в этом классе. 839 00:38:02,620 --> 00:38:03,780 Это немного странно. 840 00:38:03,780 --> 00:38:08,340 Так нас, как людей, на самом деле не как думать о том, как компьютеры думать. 841 00:38:08,340 --> 00:38:10,930 Так что, хотя в компьютер, это хранение значений 842 00:38:10,930 --> 00:38:13,310 в 0-й, когда индекс мы люди, мы действительно не 843 00:38:13,310 --> 00:38:15,520 хотел бы сослаться на себя нулю. 844 00:38:15,520 --> 00:38:18,119 Поэтому, когда я просто распечатать, что Я собираюсь печатать и добавлять 845 00:38:18,119 --> 00:38:19,410 1 только для ясности. 846 00:38:19,410 --> 00:38:22,447 Так что, когда я печатаю, я буду возможность печати студентов с 1 по 18. 847 00:38:22,447 --> 00:38:24,530 Это на самом деле не влияют на бег кода 848 00:38:24,530 --> 00:38:27,110 в любом случае, то, как я печатаю. 849 00:38:27,110 --> 00:38:30,380 >> Но будьте осторожны, когда вы фактически доступа массива. 850 00:38:30,380 --> 00:38:32,780 Когда вы видите результаты я, заметить здесь на самом деле я 851 00:38:32,780 --> 00:38:38,200 доступ к 0-й индекс и не 1 плюс 0-- или 1 плюс 1, 852 00:38:38,200 --> 00:38:45,530 В этом случае, так индекс что это на самом деле понятно. 853 00:38:45,530 --> 00:38:48,870 Это все вроде ОК как это проходит через 854 00:38:48,870 --> 00:38:51,470 и с каждым индексом Я положить значение в массив 855 00:38:51,470 --> 00:38:55,340 и создание массива с 18 чисел что пользователь будет вводить? 856 00:38:55,340 --> 00:38:58,780 857 00:38:58,780 --> 00:38:59,821 ХОРОШО. 858 00:38:59,821 --> 00:39:00,321 Круто. 859 00:39:00,321 --> 00:39:05,380 860 00:39:05,380 --> 00:39:07,400 >> ХОРОШО. 861 00:39:07,400 --> 00:39:12,220 Теперь мы переходим в то, что это довольно отношение к этой части установленного также. 862 00:39:12,220 --> 00:39:15,020 Я знаю, в лекции, David-- извините, у вас вопрос? 863 00:39:15,020 --> 00:39:16,840 >> АУДИТОРИЯ: Можете ли вы увеличить его? 864 00:39:16,840 --> 00:39:18,080 >> ANDI Пэн: Да, поэтому я попытался. 865 00:39:18,080 --> 00:39:18,788 Но я не знаю. 866 00:39:18,788 --> 00:39:21,437 По какой-то причине, это версия PowerPoint 867 00:39:21,437 --> 00:39:23,270 действительно не работает а с дисплеем. 868 00:39:23,270 --> 00:39:25,260 Таким образом, мы просто собираемся держать его, как это. 869 00:39:25,260 --> 00:39:27,280 Все это будет загружен в Интернете. 870 00:39:27,280 --> 00:39:28,218 Извините ребята. 871 00:39:28,218 --> 00:39:30,090 Да. 872 00:39:30,090 --> 00:39:30,980 ХОРОШО. 873 00:39:30,980 --> 00:39:35,530 >> Таким образом, мы можем также строки. 874 00:39:35,530 --> 00:39:39,320 Так что, если вы, ребята, на самом деле notice-- I знаю, Роб подошел это в той лекции 875 00:39:39,320 --> 00:39:43,652 что он did-- строка на самом деле просто массив символов, 876 00:39:43,652 --> 00:39:44,860 если вы думаете об этом, верно? 877 00:39:44,860 --> 00:39:47,500 Строка это имя или предложение или слово, верно? 878 00:39:47,500 --> 00:39:52,975 >> Если бы я был, чтобы создать строку с именем в Andi-- только мое имя, А-Н-Д-я. 879 00:39:52,975 --> 00:39:55,460 Вы думаете, что из просто как одной переменной. 880 00:39:55,460 --> 00:39:58,630 Но на самом деле, это разбивается в только массив символов. 881 00:39:58,630 --> 00:40:01,910 Так он получил персонаж хранимая в значении массива. 882 00:40:01,910 --> 00:40:05,420 Он получил характер п хранится в Второй индекс и так далее, и так далее. 883 00:40:05,420 --> 00:40:08,660 >> Так таким образом, мы на самом деле есть такой 884 00:40:08,660 --> 00:40:10,970 структуры установить в место для наших струн. 885 00:40:10,970 --> 00:40:14,660 Так вот, если бы я, чтобы ввести в Слово "есть" - так строка слово равна 886 00:40:14,660 --> 00:40:15,540 получить строку. 887 00:40:15,540 --> 00:40:19,260 Если бы я был, чтобы ввести слово "есть", что физически так, что мой компьютер 888 00:40:19,260 --> 00:40:21,870 хранит эту строку в моей памяти. 889 00:40:21,870 --> 00:40:27,140 >> И если бы я хотел, чтобы пробежать, что и печать, что out-- так и для I в 890 00:40:27,140 --> 00:40:30,890 равна нулю, помните, в лекции, мы то, что покрывается называется StrLen, 891 00:40:30,890 --> 00:40:32,990 или длина строки. 892 00:40:32,990 --> 00:40:36,520 Потому что я на самом деле не знаете, как большой массив 893 00:40:36,520 --> 00:40:38,210 из какой inputting-- пользователя 894 00:40:38,210 --> 00:40:40,370 >> Например, я вводятся слово "есть", и я знаю, 895 00:40:40,370 --> 00:40:41,870 это долго трех символов, верно? 896 00:40:41,870 --> 00:40:44,700 Так что я мог бы поставить в три там и все будет в порядке. 897 00:40:44,700 --> 00:40:49,290 Но если ваш пользовательский ввод чего-то что это разное количество значений, 898 00:40:49,290 --> 00:40:52,760 Вы собираетесь не сможет по-настоящему знаю, что когда вы программируете свой код. 899 00:40:52,760 --> 00:40:56,040 >> Таким образом, путь, который мы обрабатываем тестов так это то, что мы что-то 900 00:40:56,040 --> 00:41:00,070 называется StrLen, что это просто функция который говорит вам, как долго строка. 901 00:41:00,070 --> 00:41:02,080 Так STRLEN слова. 902 00:41:02,080 --> 00:41:03,470 Мое слово, это есть. 903 00:41:03,470 --> 00:41:05,990 п равна STRLEN в слова. 904 00:41:05,990 --> 00:41:08,930 Может кто-нибудь сказать мне, что это значение на самом деле тут? 905 00:41:08,930 --> 00:41:12,550 Что н представляющий право Теперь, в этом примере, если бы мне пришлось съесть? 906 00:41:12,550 --> 00:41:13,530 >> АУДИТОРИЯ: 3. 907 00:41:13,530 --> 00:41:14,520 >> ANDI Пэн: 3, точно. 908 00:41:14,520 --> 00:41:18,820 Итак, мы имеем для INT я равна нулю, п равен 3, по существу,. 909 00:41:18,820 --> 00:41:22,355 И я намерен запустить пока это не меньше, чем 3i ++. 910 00:41:22,355 --> 00:41:24,980 И это происходит, по существу, перейти через и делать то же самое. 911 00:41:24,980 --> 00:41:26,979 Это происходит, чтобы распечатать каждое значение и даст вам 912 00:41:26,979 --> 00:41:29,700 ЕСТЬ. Это просто, обозначающие Другой способ написания. 913 00:41:29,700 --> 00:41:31,170 Это будет очень полезно. 914 00:41:31,170 --> 00:41:31,670 Да. 915 00:41:31,670 --> 00:41:35,174 АУДИТОРИЯ: Что преимущества сдачи п равна STRLEN слово внутри, что 916 00:41:35,174 --> 00:41:36,894 для контура [неразборчиво]? 917 00:41:36,894 --> 00:41:37,560 ANDI Пэн: Да. 918 00:41:37,560 --> 00:41:44,880 Так что, если бы я был, целью которых, например, сказать, если бы я был сделать это, а затем 919 00:41:44,880 --> 00:41:51,935 do-- oop--, что в моем коде, было бы на самом деле делать, как то же самое. 920 00:41:51,935 --> 00:41:55,060 Однако, способ, которым объяснил Дэвид это во время лекции, если какие-либо из вас, ребята 921 00:41:55,060 --> 00:41:57,854 помните, было то, что, поскольку люди, как программисты, 922 00:41:57,854 --> 00:42:00,270 Мы действительно стараемся, чтобы Наша программа Код, чтобы наш компьютер имеет 923 00:42:00,270 --> 00:42:04,070 работать как можно меньше, так что наш код не очень эффективным. 924 00:42:04,070 --> 00:42:06,850 >> Так что, если я, что там, что будет происходить через мой цикл 925 00:42:06,850 --> 00:42:10,790 является то, что я впервые объявить Переменная с именем я будет 0. 926 00:42:10,790 --> 00:42:13,350 Я собираюсь проверить, ох, что такое StrLen слова? 927 00:42:13,350 --> 00:42:15,000 О, StrLen 3. 928 00:42:15,000 --> 00:42:16,191 Так я меньше, чем три? 929 00:42:16,191 --> 00:42:16,690 Да это так. 930 00:42:16,690 --> 00:42:17,870 Я собираюсь бежать. 931 00:42:17,870 --> 00:42:21,130 >> А потом второй раз назад вокруг цикл, я иду, чтобы увеличить I. 932 00:42:21,130 --> 00:42:22,550 я будет один. 933 00:42:22,550 --> 00:42:25,600 И я намерен проверить, ох, но то, что StrLen слова? 934 00:42:25,600 --> 00:42:26,839 О, это три. 935 00:42:26,839 --> 00:42:29,880 И делает это, кажется, вид расточительно, каждый раз, когда вы запускаете через петлю, 936 00:42:29,880 --> 00:42:33,340 чтобы проверять функцию, даже несмотря на то STRLEN слова 937 00:42:33,340 --> 00:42:35,490 никогда не изменяет? 938 00:42:35,490 --> 00:42:38,590 >> Таким образом, это дополнительное питание для компьютера. 939 00:42:38,590 --> 00:42:42,180 Когда вы начинаете говорить о вещах, что миллиарды и миллиарды 940 00:42:42,180 --> 00:42:44,431 и миллиарды мест долго, представьте компьютер 941 00:42:44,431 --> 00:42:47,430 того, чтобы физически пережить и проверить все, что каждый раз. 942 00:42:47,430 --> 00:42:53,170 Именно поэтому, чтобы просто ради эффективности, 943 00:42:53,170 --> 00:42:57,620 мы, как правило, только сделать это, потому что таким образом мы только 944 00:42:57,620 --> 00:42:59,850 вызова функции один раз в начале, 945 00:42:59,850 --> 00:43:01,766 и что каждый раз, когда он проходит через это происходит 946 00:43:01,766 --> 00:43:03,789 для хранения значения 3 там, что вы не 947 00:43:03,789 --> 00:43:05,330 должны постоянно проверять каждый раз. 948 00:43:05,330 --> 00:43:05,743 Да. 949 00:43:05,743 --> 00:43:06,409 >> АУДИТОРИЯ: Извините. 950 00:43:06,409 --> 00:43:09,070 Просто [неразборчиво]. 951 00:43:09,070 --> 00:43:13,985 Может вы Int N равен StrLen и положить что выше внешней стороны для контура 952 00:43:13,985 --> 00:43:15,364 также? 953 00:43:15,364 --> 00:43:16,030 ANDI Пэн: Да. 954 00:43:16,030 --> 00:43:17,100 Вы можете сделать это, абсолютно. 955 00:43:17,100 --> 00:43:19,970 Причина, почему мы должны его в здесь потому что путь для цикла работ 956 00:43:19,970 --> 00:43:23,500 является то, что это называется локальная переменная в том смысле, 957 00:43:23,500 --> 00:43:26,150 что все вы создание внутри цикл 958 00:43:26,150 --> 00:43:27,890 существует только внутри для цикла. 959 00:43:27,890 --> 00:43:31,530 >> Таким образом, переменная я только существует в тех скобках. 960 00:43:31,530 --> 00:43:35,260 А вот переменные п также существует только в тех скобках. 961 00:43:35,260 --> 00:43:39,350 Так что, если вы были в использовании STRLEN из Слово несколько раз внизу, 962 00:43:39,350 --> 00:43:42,230 абсолютно лучший способ сделать это будет объявить его на вершину 963 00:43:42,230 --> 00:43:43,563 так что вам не придется сделать это один раз. 964 00:43:43,563 --> 00:43:45,420 Да. 965 00:43:45,420 --> 00:43:47,670 АУДИТОРИЯ: Почему у вас есть Новая линия после процента 966 00:43:47,670 --> 00:43:51,300 видя, если вы хотите, чтобы поставить все буквы рядом с ним разделяют? 967 00:43:51,300 --> 00:43:54,140 >> ANDI Пэн: О, я хотел печатать их все на каждой линии. 968 00:43:54,140 --> 00:43:54,890 Это не имеет значения. 969 00:43:54,890 --> 00:43:55,890 Да, это форматирование. 970 00:43:55,890 --> 00:43:57,181 Это хороший вопрос, хотя. 971 00:43:57,181 --> 00:43:59,360 Да, если бы я хотел, чтобы напечатать все только на одной линии, что, 972 00:43:59,360 --> 00:44:02,731 Я бы не тире в. 973 00:44:02,731 --> 00:44:03,230 ХОРОШО. 974 00:44:03,230 --> 00:44:06,880 Все хорошо? 975 00:44:06,880 --> 00:44:07,500 ХОРОШО. 976 00:44:07,500 --> 00:44:08,000 Круто. 977 00:44:08,000 --> 00:44:12,080 978 00:44:12,080 --> 00:44:14,750 >> Так что я думаю, что я говорил достаточно. 979 00:44:14,750 --> 00:44:20,040 Поворот, вы, ребята, чтобы запустить через Код и скажите, что это не так. 980 00:44:20,040 --> 00:44:21,560 Где ошибка? 981 00:44:21,560 --> 00:44:26,920 Итак, как вы видите, я объявлен Новый массив строкового типа по имени класса. 982 00:44:26,920 --> 00:44:30,220 И я вводятся Сэм, Джесс, и Ким в него. 983 00:44:30,220 --> 00:44:33,400 И я пытаюсь распечатать все элементы массива. 984 00:44:33,400 --> 00:44:36,796 Может кто-нибудь сказать мне, почему это собирается дать мне проблемы? 985 00:44:36,796 --> 00:44:39,320 Я дам вам ребята 10 секунд, чтобы думать об этом. 986 00:44:39,320 --> 00:44:55,490 987 00:44:55,490 --> 00:44:56,619 >> ХОРОШО. 988 00:44:56,619 --> 00:44:57,118 Да? 989 00:44:57,118 --> 00:45:01,972 >> АУДИТОРИЯ: Является ли левый центральный равным 3 или [неразборчиво]? 990 00:45:01,972 --> 00:45:02,680 ANDI Пэн: Право. 991 00:45:02,680 --> 00:45:06,784 Так сколько раз это на самом деле собирается запустить через эту петлю? 992 00:45:06,784 --> 00:45:07,620 >> АУДИТОРИЯ: Четыре. 993 00:45:07,620 --> 00:45:08,070 >> ANDI Пэн: Точно. 994 00:45:08,070 --> 00:45:09,445 Это будет через четыре раза. 995 00:45:09,445 --> 00:45:12,250 Это собирается бежать через на 0, 1, 2 и 3, 996 00:45:12,250 --> 00:45:15,200 потому что их элементом является я меньше или равно 3. 997 00:45:15,200 --> 00:45:16,960 Это не собирается останавливаться, когда это 2. 998 00:45:16,960 --> 00:45:18,800 Это будет держать происходит, пока не достигнет 3. 999 00:45:18,800 --> 00:45:21,720 И как мы знаем, есть только три элементы нашего фактического массива. 1000 00:45:21,720 --> 00:45:27,260 >> Если мы попытаемся открыть четвертый элемент или индекс 3, 1001 00:45:27,260 --> 00:45:30,357 Вы собираетесь куда-то ударил в памяти, что не существует. 1002 00:45:30,357 --> 00:45:31,690 Это называется нуль-терминатор. 1003 00:45:31,690 --> 00:45:32,856 Ничто не собирается быть там. 1004 00:45:32,856 --> 00:45:35,324 Ваш компьютер не будет быть очень счастлив с тобой. 1005 00:45:35,324 --> 00:45:36,170 Да. 1006 00:45:36,170 --> 00:45:38,430 Кто-нибудь есть вопросы о том, почему, что происходит? 1007 00:45:38,430 --> 00:45:39,679 Это общая площадь, чтобы избежать. 1008 00:45:39,679 --> 00:45:40,712 Да. 1009 00:45:40,712 --> 00:45:45,777 >> АУДИТОРИЯ: Не первый скользить также строку 2? 1010 00:45:45,777 --> 00:45:46,360 ANDI PENG: Нет 1011 00:45:46,360 --> 00:45:49,610 Так по существу, когда Вы делаете массив, 1012 00:45:49,610 --> 00:45:51,540 что кронштейн правой там, что все number-- 1013 00:45:51,540 --> 00:45:53,480 это говорю вам как многие элементы у меня есть. 1014 00:45:53,480 --> 00:45:55,840 Это на самом деле не говорил мне индексы нибудь. 1015 00:45:55,840 --> 00:45:58,760 Таким образом, в этом случае, я знаю, что я хочу писать трех местах, 1016 00:45:58,760 --> 00:46:02,690 с трех физических мест для провести все, что я хочу, чтобы держать. 1017 00:46:02,690 --> 00:46:04,510 Так вот, почему номер три есть. 1018 00:46:04,510 --> 00:46:06,560 Тем не менее, если бы я хотел на самом деле получить к нему доступ, 1019 00:46:06,560 --> 00:46:11,220 если я хотел сказать, Printf номер класса кронштейн, затем 1020 00:46:11,220 --> 00:46:14,560 Вы собираетесь на самом деле положил индекс физического там. 1021 00:46:14,560 --> 00:46:16,330 Да, хороший вопрос. 1022 00:46:16,330 --> 00:46:20,065 >> АУДИТОРИЯ: Так это физическое Индекс должен быть [неразборчиво]? 1023 00:46:20,065 --> 00:46:20,940 ANDI Пэн: Мне очень жаль. 1024 00:46:20,940 --> 00:46:21,500 Можете ли вы говорить немного? 1025 00:46:21,500 --> 00:46:24,208 >> АУДИТОРИЯ: Так индекс физического [Неразборчиво], каждая из коробки? 1026 00:46:24,208 --> 00:46:25,260 [Неразборчиво]? 1027 00:46:25,260 --> 00:46:26,040 >> ANDI Пэн: Да. 1028 00:46:26,040 --> 00:46:28,970 Так что я собираюсь вернуться к прямо здесь. 1029 00:46:28,970 --> 00:46:31,120 Подумайте прямо здесь. 1030 00:46:31,120 --> 00:46:32,820 У нас есть массив размером 3. 1031 00:46:32,820 --> 00:46:35,540 Там три места, как и, физические заполнители здесь. 1032 00:46:35,540 --> 00:46:37,620 Но они назвали 0, 1, 2 и. 1033 00:46:37,620 --> 00:46:40,700 Так что, если я хотел, чтобы получить к ним доступ, так, что я к ним доступ 1034 00:46:40,700 --> 00:46:43,480 это Printf всего, что я хотел здесь. 1035 00:46:43,480 --> 00:46:45,485 Вы должны напечатать из имени ней, 1036 00:46:45,485 --> 00:46:47,610 Потому что тогда компьютер знает, о, мне нужно посмотреть 1037 00:46:47,610 --> 00:46:51,391 в этом массиве на 0-й индекс. 1038 00:46:51,391 --> 00:46:51,890 Да. 1039 00:46:51,890 --> 00:46:53,306 Но размер этого не меняется. 1040 00:46:53,306 --> 00:46:55,492 Размер 3, независимо как вы их пометить. 1041 00:46:55,492 --> 00:46:58,321 1042 00:46:58,321 --> 00:46:58,820 ХОРОШО. 1043 00:46:58,820 --> 00:47:01,387 Все хорошо? 1044 00:47:01,387 --> 00:47:02,970 АУДИТОРИЯ: Так что каждый раз я [неразборчиво]? 1045 00:47:02,970 --> 00:47:06,357 1046 00:47:06,357 --> 00:47:06,940 ANDI Пэн: ОК. 1047 00:47:06,940 --> 00:47:13,270 Таким образом, в этом случае, мы на самом деле не попасть в него сейчас в процессе. 1048 00:47:13,270 --> 00:47:16,760 Но знаю, что string-- как I говорил раньше, строка по существу 1049 00:47:16,760 --> 00:47:18,440 массив символов. 1050 00:47:18,440 --> 00:47:21,430 Так что, если я создаю массив строк, я вроде 1051 00:47:21,430 --> 00:47:24,430 есть массив массив символов, верно? 1052 00:47:24,430 --> 00:47:27,720 >> Таким образом, в этом случае, потому что я есть массив строк, 1053 00:47:27,720 --> 00:47:31,340 если бы вы были на вход действительно длинное слово, которые до сих пор занимает только одно место, 1054 00:47:31,340 --> 00:47:33,230 потому что это одна струна. 1055 00:47:33,230 --> 00:47:37,492 Но если вы были думать о герои этого массива, 1056 00:47:37,492 --> 00:47:40,450 то, что это занимая много более символов, чем любой из других слов 1057 00:47:40,450 --> 00:47:41,372 находятся. 1058 00:47:41,372 --> 00:47:42,830 Не очень важно для прямо сейчас. 1059 00:47:42,830 --> 00:47:44,921 Но это только в целом как это работает. 1060 00:47:44,921 --> 00:47:49,750 1061 00:47:49,750 --> 00:47:50,560 >> ХОРОШО. 1062 00:47:50,560 --> 00:47:55,840 Так что это то, что я дам вам сделать много в течение семестра. 1063 00:47:55,840 --> 00:47:57,500 Мне нужно, чтобы отдохнуть мой голос. 1064 00:47:57,500 --> 00:47:59,530 Вы, ребята, нужно, чтобы стимулировать себя. 1065 00:47:59,530 --> 00:48:02,300 Многие из вас, наверное, придется спать прямо сейчас. 1066 00:48:02,300 --> 00:48:05,960 Я ввода случайных проблем где мы, как класс, или вы 1067 00:48:05,960 --> 00:48:09,480 с партнером рядом с вами собираемся провести пару минут обсуждения 1068 00:48:09,480 --> 00:48:14,980 о том, как мы идти о решении или создание программы, такие, как этот. 1069 00:48:14,980 --> 00:48:17,100 >> Так что сейчас, мы хотим создать program-- 1070 00:48:17,100 --> 00:48:19,560 мы собираемся называть его upper.c--, что новообращенные 1071 00:48:19,560 --> 00:48:24,787 строчная слово к верхней класса string-- верхний регистр, извините. 1072 00:48:24,787 --> 00:48:26,370 Слово в строках, извините, это синонимы. 1073 00:48:26,370 --> 00:48:28,370 Я собираюсь их менять означает то же самое. 1074 00:48:28,370 --> 00:48:32,270 1075 00:48:32,270 --> 00:48:33,499 >> Да. 1076 00:48:33,499 --> 00:48:34,540 Возьмите пару минут. 1077 00:48:34,540 --> 00:48:37,130 Это не должны быть написаны на любом языке. 1078 00:48:37,130 --> 00:48:39,890 Просто в коде или псевдокода логически, как мы бы даже 1079 00:48:39,890 --> 00:48:42,083 ходить делать такой проблемой. 1080 00:48:42,083 --> 00:48:42,583 Да. 1081 00:48:42,583 --> 00:48:49,881 1082 00:48:49,881 --> 00:48:52,780 >> [СТОРОНА РАЗГОВОР] 1083 00:48:52,780 --> 00:49:18,680 1084 00:49:18,680 --> 00:49:22,130 >> Я также заметил, что вы, ребята can-- Я вроде уже видим программу. 1085 00:49:22,130 --> 00:49:24,600 Я думаю, мое отсутствие Режим ведущий проблема. 1086 00:49:24,600 --> 00:49:27,410 Но это хорошо. 1087 00:49:27,410 --> 00:49:30,410 >> [СТОРОНА РАЗГОВОР] 1088 00:49:30,410 --> 00:50:03,589 1089 00:50:03,589 --> 00:50:04,380 Да, пожалуйста, ребята. 1090 00:50:04,380 --> 00:50:05,400 Приходите получить конфету. 1091 00:50:05,400 --> 00:50:06,372 Приходите получить конфету. 1092 00:50:06,372 --> 00:50:07,698 >> АУДИТОРИЯ: Да! 1093 00:50:07,698 --> 00:50:09,958 >> [СТОРОНА РАЗГОВОР] 1094 00:50:09,958 --> 00:50:16,101 1095 00:50:16,101 --> 00:50:18,100 ANDI Пэн: Кроме того, да, Я начну бросать конфеты 1096 00:50:18,100 --> 00:50:20,280 на людей, которые не отвечают на вопросы. 1097 00:50:20,280 --> 00:50:22,260 Таким образом, вы должны ответить на вопросы всех. 1098 00:50:22,260 --> 00:50:24,895 Или я полагаю, люди, которые у отвечать на вопросы. 1099 00:50:24,895 --> 00:50:26,070 Да, наоборот. 1100 00:50:26,070 --> 00:50:28,570 >> [СТОРОНА РАЗГОВОР] 1101 00:50:28,570 --> 00:51:13,399 1102 00:51:13,399 --> 00:51:14,274 АУДИТОРИЯ: [неразборчиво] 1103 00:51:14,274 --> 00:51:17,300 1104 00:51:17,300 --> 00:51:18,340 >> ANDI Пэн: Да. 1105 00:51:18,340 --> 00:51:19,340 Да. 1106 00:51:19,340 --> 00:51:22,840 >> [СТОРОНА РАЗГОВОР] 1107 00:51:22,840 --> 00:51:40,700 1108 00:51:40,700 --> 00:51:41,590 >> Ладно, ребята. 1109 00:51:41,590 --> 00:51:44,731 Возьмите, например, еще 10 секунд. 1110 00:51:44,731 --> 00:51:48,210 >> [СТОРОНА РАЗГОВОР] 1111 00:51:48,210 --> 00:52:10,600 1112 00:52:10,600 --> 00:52:11,750 >> Хорошо, парни. 1113 00:52:11,750 --> 00:52:14,920 Поэтому, прежде чем мы начнем, пытаясь на самом деле физически написать код, 1114 00:52:14,920 --> 00:52:20,650 хорошая привычка развивать то, что мы хотим, чтобы первого рода причинам 1115 00:52:20,650 --> 00:52:22,737 логически, как мы сделаем это. 1116 00:52:22,737 --> 00:52:24,570 Вы хотите, чтобы убедиться, что, перед вами физически 1117 00:52:24,570 --> 00:52:27,210 начать пытаться кодировать в Марио, что вы делаете 1118 00:52:27,210 --> 00:52:28,870 Убедитесь, что у вас есть псевдокод. 1119 00:52:28,870 --> 00:52:31,235 То есть принимая вас через то, что вам нужно, чтобы создать так 1120 00:52:31,235 --> 00:52:33,360 что, когда вы физически написать программу позже, 1121 00:52:33,360 --> 00:52:36,640 вы лучше в состоянии поймать ошибки в коде и тому подобное. 1122 00:52:36,640 --> 00:52:40,460 >> Итак, мы собираемся, чтобы просто начать по-- на английском языке, в псевдокоде, 1123 00:52:40,460 --> 00:52:43,320 Кто-нибудь хочет, чтобы дать мне родовое объяснение 1124 00:52:43,320 --> 00:52:46,250 о том, как мы бы об этом? 1125 00:52:46,250 --> 00:52:48,102 Да. 1126 00:52:48,102 --> 00:52:49,664 >> АУДИТОРИЯ: [неразборчиво]. 1127 00:52:49,664 --> 00:52:50,830 ANDI Пэн: Конечно, не стоит беспокоиться. 1128 00:52:50,830 --> 00:52:57,233 АУДИТОРИЯ: Можете ли вы попросить его или попросить кто-то получить строку 1-- Да, строку, 1129 00:52:57,233 --> 00:52:58,160 а потом-- 1130 00:52:58,160 --> 00:52:59,826 >> ANDI Пэн: Да, так что это хорошее начало. 1131 00:52:59,826 --> 00:53:01,972 Я начну набирать, извините, как вы говорите. 1132 00:53:01,972 --> 00:53:02,471 Так-- 1133 00:53:02,471 --> 00:53:05,698 >> АУДИТОРИЯ: --the строчные цифры выше, верно? 1134 00:53:05,698 --> 00:53:08,519 Или строчные буквы имеют высокие цифры? 1135 00:53:08,519 --> 00:53:09,310 ANDI Пэн: Точно. 1136 00:53:09,310 --> 00:53:16,156 АУДИТОРИЯ: Итак, мы вычитаем 32 от того, что [неразборчиво]. 1137 00:53:16,156 --> 00:53:28,600 1138 00:53:28,600 --> 00:53:29,870 >> ANDI Пэн: Отлично. 1139 00:53:29,870 --> 00:53:35,020 Так мы вроде есть общий смысл о том, как работать с этой проблемой. 1140 00:53:35,020 --> 00:53:40,060 Зная, что мы узнали вид физическое так, что строки 1141 00:53:40,060 --> 00:53:43,320 хранятся в памяти, Что вы уже 1142 00:53:43,320 --> 00:53:45,920 знаю, что вы собираетесь, вероятно, нужно написать в коде 1143 00:53:45,920 --> 00:53:48,288 для того, чтобы двигаться по строке? 1144 00:53:48,288 --> 00:53:49,259 >> АУДИТОРИЯ: Для цикла. 1145 00:53:49,259 --> 00:53:50,550 ANDI Пэн: для цикла, точно. 1146 00:53:50,550 --> 00:53:56,540 1147 00:53:56,540 --> 00:53:57,220 Отлично. 1148 00:53:57,220 --> 00:54:00,539 Так мы вроде есть общий псевдокод записано 1149 00:54:00,539 --> 00:54:02,330 что вид дает Вы отмечает, как вы 1150 00:54:02,330 --> 00:54:03,900 будет двигаться о решении проблемы. 1151 00:54:03,900 --> 00:54:06,150 Теперь у вас есть это, вам может ссылаться на потом 1152 00:54:06,150 --> 00:54:08,233 когда вы пытаетесь на самом деле писать код. 1153 00:54:08,233 --> 00:54:10,240 Таким образом, мы можем на самом деле идти здесь. 1154 00:54:10,240 --> 00:54:25,130 И я получил функцию под названием upper.c-- там is-- только из пустого шаблона 1155 00:54:25,130 --> 00:54:28,510 Прямо сейчас, что вы, ребята, собираетесь помочь мне выяснить о том, как написать 1156 00:54:28,510 --> 00:54:30,430 эта линия code-- не строку кода. 1157 00:54:30,430 --> 00:54:32,890 Это будет несколько строк кода. 1158 00:54:32,890 --> 00:54:35,710 >> При запуске какой-либо заготовки PSET, что 1159 00:54:35,710 --> 00:54:37,418 Первое, что мне нужно помнить, чтобы делать? 1160 00:54:37,418 --> 00:54:39,290 >> АУДИТОРИЯ: [неразборчиво]. 1161 00:54:39,290 --> 00:54:41,000 >> ANDI Пэн: Великий Да. 1162 00:54:41,000 --> 00:54:41,500 Включают. 1163 00:54:41,500 --> 00:54:44,850 1164 00:54:44,850 --> 00:54:47,130 stdio.h. 1165 00:54:47,130 --> 00:54:49,640 Часто это является одним из Самый простой ошибки люди 1166 00:54:49,640 --> 00:54:51,598 сделает, когда они писать, что они будут 1167 00:54:51,598 --> 00:54:54,180 забудьте включать Важно библиотека им нужно. 1168 00:54:54,180 --> 00:54:57,689 Так что, если это офис часов, и вы, как, Я не знаю, почему мой код не работает. 1169 00:54:57,689 --> 00:54:59,230 Можете ли вы сказать мне, почему это не работает? 1170 00:54:59,230 --> 00:55:00,730 Мы собираемся сказать ты #include? 1171 00:55:00,730 --> 00:55:02,520 Вы должны #include его. 1172 00:55:02,520 --> 00:55:03,270 ХОРОШО. 1173 00:55:03,270 --> 00:55:07,230 >> Итак, мы получили стандарт I / O здесь. 1174 00:55:07,230 --> 00:55:10,740 Разве что только библиотека мы собираемся здесь нужно? 1175 00:55:10,740 --> 00:55:12,681 Что еще мы будем делать? 1176 00:55:12,681 --> 00:55:13,180 Сожалею. 1177 00:55:13,180 --> 00:55:14,562 Кто-то просто кричите это? 1178 00:55:14,562 --> 00:55:15,666 >> АУДИТОРИЯ: [неразборчиво]. 1179 00:55:15,666 --> 00:55:16,666 ANDI Пэн: Там вы идете. 1180 00:55:16,666 --> 00:55:20,320 1181 00:55:20,320 --> 00:55:21,440 ХОРОШО. 1182 00:55:21,440 --> 00:55:26,070 И как я могу идти о запуске какой-либо функции, любой вид основной функции 1183 00:55:26,070 --> 00:55:28,760 в нашей программе? 1184 00:55:28,760 --> 00:55:30,020 Int основной. 1185 00:55:30,020 --> 00:55:34,531 1186 00:55:34,531 --> 00:55:35,030 ХОРОШО. 1187 00:55:35,030 --> 00:55:35,970 Что я могу положить внутри здесь? 1188 00:55:35,970 --> 00:55:37,640 Что первое, что вы хотите сделать? 1189 00:55:37,640 --> 00:55:39,910 Если мы хотим, чтобы получить строка от пользователя, 1190 00:55:39,910 --> 00:55:43,870 что мы будем иметь чтобы сделать на этом первой линии? 1191 00:55:43,870 --> 00:55:46,120 К сожалению, вы, ребята, просто чувствую, свободно говорить и громко. 1192 00:55:46,120 --> 00:55:47,123 Просто кричать что угодно. 1193 00:55:47,123 --> 00:55:48,772 >> АУДИТОРИЯ: Попросите пользователя? 1194 00:55:48,772 --> 00:55:49,980 ANDI Пэн: Как мы это делаем? 1195 00:55:49,980 --> 00:55:51,873 Ask-- я собираюсь ввести "задать пользователю"? 1196 00:55:51,873 --> 00:55:52,600 >> АУДИТОРИЯ: Printf. 1197 00:55:52,600 --> 00:55:54,341 >> ANDI Пэн: ОК. 1198 00:55:54,341 --> 00:55:54,840 Printf. 1199 00:55:54,840 --> 00:55:57,372 Что я хочу, чтобы PRINTF? 1200 00:55:57,372 --> 00:55:58,776 >> АУДИТОРИЯ: Тип в чем-то. 1201 00:55:58,776 --> 00:56:02,760 1202 00:56:02,760 --> 00:56:03,840 >> ANDI Пэн: Как что? 1203 00:56:03,840 --> 00:56:05,430 Ребята, делать вид, будто я компьютер. 1204 00:56:05,430 --> 00:56:08,475 Физически скажите мне каждый шаг что мне нужно ввести здесь? 1205 00:56:08,475 --> 00:56:09,600 Я делаю что-то неправильно? 1206 00:56:09,600 --> 00:56:10,743 Должен ли я что-то набрали? 1207 00:56:10,743 --> 00:56:11,690 >> АУДИТОРИЯ: Вы должны кавычки. 1208 00:56:11,690 --> 00:56:12,380 >> ANDI Пэн: Мне нужно кавычки? 1209 00:56:12,380 --> 00:56:12,880 ХОРОШО. 1210 00:56:12,880 --> 00:56:15,520 1211 00:56:15,520 --> 00:56:16,297 ХОРОШО. 1212 00:56:16,297 --> 00:56:17,698 >> АУДИТОРИЯ: А потом новая линия. 1213 00:56:17,698 --> 00:56:21,434 1214 00:56:21,434 --> 00:56:22,465 Точка с запятой. 1215 00:56:22,465 --> 00:56:23,340 ANDI Пэн: точкой с запятой? 1216 00:56:23,340 --> 00:56:24,060 ХОРОШО. 1217 00:56:24,060 --> 00:56:24,560 Хорошо. 1218 00:56:24,560 --> 00:56:27,060 >> АУДИТОРИЯ: А может быть, указать что вы хотите, в нижнем регистре? 1219 00:56:27,060 --> 00:56:30,120 1220 00:56:30,120 --> 00:56:31,415 >> ANDI Пэн: Отлично. 1221 00:56:31,415 --> 00:56:33,540 Вы, ребята, надо мной смеяться забывая поставить точку с запятой. 1222 00:56:33,540 --> 00:56:36,350 Я гарантирую вам, где В ходе этого класса, 1223 00:56:36,350 --> 00:56:38,260 Вы забудете поставить точка с запятой, и это 1224 00:56:38,260 --> 00:56:41,116 Вам потребуется три часа, чтобы выяснить почему ваш код не работает. 1225 00:56:41,116 --> 00:56:42,240 Это случилось со всеми нами. 1226 00:56:42,240 --> 00:56:43,950 Это, вероятно, случится с вами. 1227 00:56:43,950 --> 00:56:46,352 Получить в хорошую привычку с запятой. 1228 00:56:46,352 --> 00:56:46,852 ХОРОШО. 1229 00:56:46,852 --> 00:56:49,010 >> АУДИТОРИЯ: Вы хотите сделать обратный слеш в? 1230 00:56:49,010 --> 00:56:50,398 >> ANDI Пэн: Конечно. 1231 00:56:50,398 --> 00:56:51,856 Вы хотите, чтобы сделать обратный слеш? 1232 00:56:51,856 --> 00:56:53,020 >> АУДИТОРИЯ: Да. 1233 00:56:53,020 --> 00:56:54,330 >> ANDI Пэн: Отлично. 1234 00:56:54,330 --> 00:56:54,830 ХОРОШО. 1235 00:56:54,830 --> 00:56:57,872 Что мне делать дальше? 1236 00:56:57,872 --> 00:56:58,964 >> АУДИТОРИЯ: Получить строку. 1237 00:56:58,964 --> 00:56:59,880 ANDI Пэн: Получить строку. 1238 00:56:59,880 --> 00:57:03,080 1239 00:57:03,080 --> 00:57:03,830 Так что я типа? 1240 00:57:03,830 --> 00:57:04,233 Кто-то? 1241 00:57:04,233 --> 00:57:05,040 >> АУДИТОРИЯ: String s. 1242 00:57:05,040 --> 00:57:05,873 >> ANDI Пэн: Строка с. 1243 00:57:05,873 --> 00:57:07,251 АУДИТОРИЯ: GetString. 1244 00:57:07,251 --> 00:57:09,000 ANDI Пэн: Кто-то, Вы можете сказать мне, где 1245 00:57:09,000 --> 00:57:12,000 эта функция GetString приходят? 1246 00:57:12,000 --> 00:57:13,660 >> АУДИТОРИЯ: string.h. 1247 00:57:13,660 --> 00:57:15,256 >> ANDI Пэн: string.h? 1248 00:57:15,256 --> 00:57:16,715 Вы думаете, что это из string.h? 1249 00:57:16,715 --> 00:57:17,830 >> АУДИТОРИЯ: [неразборчиво]. 1250 00:57:17,830 --> 00:57:18,830 >> ANDI Пэн: Там вы идете. 1251 00:57:18,830 --> 00:57:21,280 Это от CS50.h. 1252 00:57:21,280 --> 00:57:24,530 Если вы всегда путают от того, где Файл библиотеки или файл заголовка, 1253 00:57:24,530 --> 00:57:28,450 Google буквально string.h, и я скажу вам, 1254 00:57:28,450 --> 00:57:30,450 какие все функции которые находятся в string.h. 1255 00:57:30,450 --> 00:57:31,340 ХОРОШО. 1256 00:57:31,340 --> 00:57:35,210 >> Так что теперь я создал строку а у меня предложит пользователю для него, 1257 00:57:35,210 --> 00:57:38,770 Я сохранил его в переменной названные ей, что мне нужно делать сейчас? 1258 00:57:38,770 --> 00:57:40,652 >> АУДИТОРИЯ: Проверьте, если он находится в нижнем регистре. 1259 00:57:40,652 --> 00:57:41,360 ANDI Пэн: К сожалению? 1260 00:57:41,360 --> 00:57:42,545 АУДИТОРИЯ: Проверьте, если он находится в нижнем регистре. 1261 00:57:42,545 --> 00:57:44,045 ANDI Пэн: Ладно, давайте сделаем это. 1262 00:57:44,045 --> 00:57:45,857 Как я это сделал? 1263 00:57:45,857 --> 00:57:47,940 На самом деле, для целей класса прямо сейчас, 1264 00:57:47,940 --> 00:57:50,330 мы только собираемся Предположим, что все 1265 00:57:50,330 --> 00:57:52,620 что мы вход уже в нижнем регистре. 1266 00:57:52,620 --> 00:57:55,430 Если вы хотите, чтобы проверить, вы бы просто добавьте условную 1267 00:57:55,430 --> 00:57:59,640 что проверяется, что побежал через каждый элемент массива 1268 00:57:59,640 --> 00:58:02,540 и проверяется, если это между определенными значениями. 1269 00:58:02,540 --> 00:58:05,627 Я забыл, что число значений строчные буквы. 1270 00:58:05,627 --> 00:58:07,210 Вы можете посмотреть его на стол ASCII. 1271 00:58:07,210 --> 00:58:08,800 Но да, это действительно хорошая точка. 1272 00:58:08,800 --> 00:58:11,758 Но прямо сейчас, мы просто собираемся Предположим, что все строки ввода мы 1273 00:58:11,758 --> 00:58:13,130 в нижнем регистре. 1274 00:58:13,130 --> 00:58:13,870 ХОРОШО. 1275 00:58:13,870 --> 00:58:18,069 >> Так как я пошел бы около эта проблема в следующем? 1276 00:58:18,069 --> 00:58:18,860 АУДИТОРИЯ: Для цикла. 1277 00:58:18,860 --> 00:58:19,340 ANDI Пэн: Для цикла? 1278 00:58:19,340 --> 00:58:19,839 ХОРОШО. 1279 00:58:19,839 --> 00:58:20,847 Скажи мне, что печатать. 1280 00:58:20,847 --> 00:58:25,230 >> АУДИТОРИЯ: Для Int я равна 0. 1281 00:58:25,230 --> 00:58:27,230 >> ANDI Пэн: ОК. 1282 00:58:27,230 --> 00:58:36,350 >> АУДИТОРИЯ: Да, на самом деле, то вам сделать запятую и делать н равна STRLEN. 1283 00:58:36,350 --> 00:58:38,940 >> ANDI Пэн: Так важно что я думаю, что она заметила, здесь 1284 00:58:38,940 --> 00:58:42,936 является то, что мы не должны сказать Int н второй раз мы сделали это. 1285 00:58:42,936 --> 00:58:45,060 Просто знаю, что в течение цикл, когда вы заявив, 1286 00:58:45,060 --> 00:58:47,934 вы на самом деле не нужно Int в второй раз, когда вы переменную. 1287 00:58:47,934 --> 00:58:51,202 Вы можете сказать, н STRLEN. 1288 00:58:51,202 --> 00:58:52,620 >> АУДИТОРИЯ: Из с. 1289 00:58:52,620 --> 00:58:53,510 >> ANDI Пэн: с. 1290 00:58:53,510 --> 00:58:54,706 ХОРОШО. 1291 00:58:54,706 --> 00:58:58,370 >> АУДИТОРИЯ: Тогда точка с запятой. 1292 00:58:58,370 --> 00:59:00,130 >> ANDI Пэн: Конечно. 1293 00:59:00,130 --> 00:59:04,050 >> АУДИТОРИЯ: И затем [неразборчиво] п. 1294 00:59:04,050 --> 00:59:07,480 1295 00:59:07,480 --> 00:59:09,460 Тогда я ++. 1296 00:59:09,460 --> 00:59:11,780 >> ANDI Пэн: Отлично. 1297 00:59:11,780 --> 00:59:12,280 Все в порядке. 1298 00:59:12,280 --> 00:59:14,690 Что мы хотим внутри это цикл теперь? 1299 00:59:14,690 --> 00:59:17,820 Помните, что если мы собираемся запустить через строка и запустить через массив, 1300 00:59:17,820 --> 00:59:19,287 мы хотим, чтобы проверить вещи в нем. 1301 00:59:19,287 --> 00:59:20,370 Что мы собираемся нужно? 1302 00:59:20,370 --> 00:59:23,070 1303 00:59:23,070 --> 00:59:26,900 Это своего рода сложная часть в настоящее время. 1304 00:59:26,900 --> 00:59:27,960 Любой, есть предположение? 1305 00:59:27,960 --> 00:59:34,160 1306 00:59:34,160 --> 00:59:34,690 >> ХОРОШО. 1307 00:59:34,690 --> 00:59:37,830 Итак, сначала, как мы даже получить доступ? 1308 00:59:37,830 --> 00:59:41,610 Как мы даже первая проверка или доступа к элементу в массиве? 1309 00:59:41,610 --> 00:59:42,920 Как мы это делаем? 1310 00:59:42,920 --> 00:59:47,120 Что обозначение мы используем, чтобы сделать это? 1311 00:59:47,120 --> 00:59:50,920 Что имя этого массива называется? 1312 00:59:50,920 --> 00:59:52,400 Это называется с, правильно? 1313 00:59:52,400 --> 00:59:54,850 >> Помните, любая строка всегда является массивом. 1314 00:59:54,850 --> 00:59:58,210 Так ей кронштейн я, верно? 1315 00:59:58,210 --> 01:00:01,360 Потому что это текущее значение или значение индекса, мы проверки. 1316 01:00:01,360 --> 01:00:05,156 И мы собираемся установить, что равно , целью которых мы хотим строчную значение, верно? 1317 01:00:05,156 --> 01:00:07,530 Мы хотим, чтобы превратить это lower-- извините, мы хотим заглавными буквами. 1318 01:00:07,530 --> 01:00:10,014 Мы хотим, чтобы включить нижний регистр значение в верхнем регистре. 1319 01:00:10,014 --> 01:00:11,805 И так like-- я извиняюсь, как вас зовут? 1320 01:00:11,805 --> 01:00:12,580 >> АУДИТОРИЯ: Хайди. 1321 01:00:12,580 --> 01:00:12,940 >> ANDI Пэн: К сожалению? 1322 01:00:12,940 --> 01:00:13,280 >> АУДИТОРИЯ: Хайди. 1323 01:00:13,280 --> 01:00:13,988 >> ANDI Пэн: Хайди. 1324 01:00:13,988 --> 01:00:15,850 Как сказал Хайди Первоначально, мы, вероятно, 1325 01:00:15,850 --> 01:00:20,330 понадобится the-- мы вероятно, придется вычесть 1326 01:00:20,330 --> 01:00:22,630 32 из любого charc, что, верно? 1327 01:00:22,630 --> 01:00:24,680 Потому что на ASCII стол, разница 1328 01:00:24,680 --> 01:00:27,790 между строчной буквы и прописная буква 32. 1329 01:00:27,790 --> 01:00:31,290 Поэтому, когда мы делаем это, мы, вероятно, захочет, чтобы вычесть 32, верно? 1330 01:00:31,290 --> 01:00:33,910 >> Так что мы собираемся делать S I. 1331 01:00:33,910 --> 01:00:37,590 1332 01:00:37,590 --> 01:00:41,200 Все ли понимают, почему я это сделал? 1333 01:00:41,200 --> 01:00:45,760 Потому что сейчас, в нашем массиве, мы проверки 0-й индекс, верно? 1334 01:00:45,760 --> 01:00:49,190 А в 0-й индекс Строка, это первый символ. 1335 01:00:49,190 --> 01:00:51,820 И, что персонаж, которого мы собираемся чтобы предположить, что это в нижнем регистре. 1336 01:00:51,820 --> 01:00:55,980 Если мы хотим, чтобы сделать его в верхнем регистре, мы должны вычесть 32 из его стоимости, 1337 01:00:55,980 --> 01:00:58,620 потому что в нашей ASCII стол, вот как мы получим его 1338 01:00:58,620 --> 01:01:01,600 на следующий соответствующей Значение, которое делает его в верхнем регистре. 1339 01:01:01,600 --> 01:01:03,714 Все понимают, что ли? 1340 01:01:03,714 --> 01:01:04,213 Да. 1341 01:01:04,213 --> 01:01:06,530 >> АУДИТОРИЯ: Могли бы вы также у нижний регистр в minus-- 1342 01:01:06,530 --> 01:01:08,080 >> ANDI Пэн: Да, так вот на самом деле очень хорошо. 1343 01:01:08,080 --> 01:01:10,455 Я собираюсь вернуться к тому, что Вопрос после того как мы это сделать. 1344 01:01:10,455 --> 01:01:11,060 Да. 1345 01:01:11,060 --> 01:01:13,940 И потом, если я хочу видеть, что происходит, 1346 01:01:13,940 --> 01:01:16,180 Я, вероятно, будет хотите напечатать, верно? 1347 01:01:16,180 --> 01:01:19,930 Кто-то сказать мне, что Я хочу напечатать здесь. 1348 01:01:19,930 --> 01:01:29,160 >> АУДИТОРИЯ: Printf процентов С обратной косой [неразборчиво]. 1349 01:01:29,160 --> 01:01:33,570 Это значение [неразборчиво] S I. 1350 01:01:33,570 --> 01:01:34,614 >> ANDI Пэн: я ей, извините? 1351 01:01:34,614 --> 01:01:35,530 АУДИТОРИЯ: [неразборчиво]. 1352 01:01:35,530 --> 01:01:38,550 1353 01:01:38,550 --> 01:01:39,550 ANDI Пэн: я не знаю. 1354 01:01:39,550 --> 01:01:40,600 Что вы думаете? 1355 01:01:40,600 --> 01:01:44,016 >> АУДИТОРИЯ: Ну, я wouldn't-- Я думаю, я бы не bring-- 1356 01:01:44,016 --> 01:01:46,944 Я бы оно вне внутри, потому что [неразборчиво]. 1357 01:01:46,944 --> 01:01:49,726 1358 01:01:49,726 --> 01:01:51,392 ANDI Пэн: О, вы бы сделали это? 1359 01:01:51,392 --> 01:01:53,867 АУДИТОРИЯ: Да. 1360 01:01:53,867 --> 01:01:56,700 ANDI Пэн: Давайте оставим это так, как она есть, и я объясню, почему позже. 1361 01:01:56,700 --> 01:01:58,533 Помните, даже если вы есть держатель место, 1362 01:01:58,533 --> 01:02:00,701 Вы хотите, чтобы положить скобки вокруг него. 1363 01:02:00,701 --> 01:02:01,200 Все в порядке. 1364 01:02:01,200 --> 01:02:04,810 Таким образом, это должно быть твердое функцию здесь. 1365 01:02:04,810 --> 01:02:06,370 Давайте запустить его и посмотреть, если он компилирует. 1366 01:02:06,370 --> 01:02:08,750 Сделайте верхний. 1367 01:02:08,750 --> 01:02:09,250 Ой-ой. 1368 01:02:09,250 --> 01:02:12,030 1369 01:02:12,030 --> 01:02:13,340 Это не выглядит слишком хорошо. 1370 01:02:13,340 --> 01:02:14,507 Почему это происходит? 1371 01:02:14,507 --> 01:02:17,340 Как и в любой ошибки, вы хотите пойти назад и начать с первого, 1372 01:02:17,340 --> 01:02:20,630 потому что обычно вызывает одну ошибку много других ошибок после него. 1373 01:02:20,630 --> 01:02:26,700 Здесь мы видим, upper.c: 18: 25, что говорит мне в этой программе имени upper.c, 1374 01:02:26,700 --> 01:02:33,800 в строке 18, ошибка неявно объявления библиотека функций STRLEN с типом 1375 01:02:33,800 --> 01:02:36,330 unassigned-- бла, я не знаю, что происходит после этого. 1376 01:02:36,330 --> 01:02:39,990 >> Все это говорит мне прямо сейчас что что-то происходит на STRLEN. 1377 01:02:39,990 --> 01:02:43,520 И это путать компьютер, потому что это как, я не знаю, что это StrLen? 1378 01:02:43,520 --> 01:02:45,520 Что, что, вероятно сказать, что вы не хватает? 1379 01:02:45,520 --> 01:02:46,490 >> АУДИТОРИЯ: Вы пропустили [неразборчиво]. 1380 01:02:46,490 --> 01:02:47,630 >> ANDI Пэн: Вы правы. 1381 01:02:47,630 --> 01:02:49,510 В точку. 1382 01:02:49,510 --> 01:02:52,140 Так что это, где это Важно, чтобы убедиться, 1383 01:02:52,140 --> 01:02:56,970 что каждая функция вы используете в вашей код, имеющий правильный заголовок 1384 01:02:56,970 --> 01:02:59,660 файл для библиотеки, или же Вы собираетесь получить много ошибок 1385 01:02:59,660 --> 01:03:01,150 и ваш код не будет знать, что происходит. 1386 01:03:01,150 --> 01:03:03,050 Итак, мы собираемся включить string.h здесь. 1387 01:03:03,050 --> 01:03:06,270 >> Теперь, когда мы пытаемся составить верхней. 1388 01:03:06,270 --> 01:03:08,410 Компиляция правильно. 1389 01:03:08,410 --> 01:03:09,960 Давайте запустить эту программу. 1390 01:03:09,960 --> 01:03:12,000 Так что-то типа в нижнем регистре. 1391 01:03:12,000 --> 01:03:14,920 Что вы, ребята, хотите, чтобы ввести? 1392 01:03:14,920 --> 01:03:16,546 Выкрикните что-то. 1393 01:03:16,546 --> 01:03:17,920 Ладно, Чарли просто вошел. 1394 01:03:17,920 --> 01:03:18,990 Мы введите имя Чарли в. 1395 01:03:18,990 --> 01:03:21,670 1396 01:03:21,670 --> 01:03:22,840 >> Чарли в нижнем регистре. 1397 01:03:22,840 --> 01:03:27,742 И, надеюсь, мы надеемся, это собирается кричать и выплюнул 1398 01:03:27,742 --> 01:03:28,575 Чарли в верхнем регистре. 1399 01:03:28,575 --> 01:03:30,830 Ура! 1400 01:03:30,830 --> 01:03:33,430 Все ли понимают, как Я пошел о решении, что? 1401 01:03:33,430 --> 01:03:36,190 Таким образом, что я могу манипулировать с помощью целых чисел 1402 01:03:36,190 --> 01:03:39,410 решить то, что Я хочу сделать в строках, 1403 01:03:39,410 --> 01:03:44,390 потому что персонажи и целые можете ссылаться таким же образом, потому что 1404 01:03:44,390 --> 01:03:45,540 отображения ASCII. 1405 01:03:45,540 --> 01:03:52,890 >> Таким образом, чтобы вернуться к точке, если я хотел поставить здесь вместо 32 1406 01:03:52,890 --> 01:03:58,959 прописные минус нижний регистр справедливый, как что, что будет работать одинаково хорошо, 1407 01:03:58,959 --> 01:04:01,750 потому что это просто только Разница между этими двумя значениями. 1408 01:04:01,750 --> 01:04:09,570 Если я хочу, чтобы сделать эту again-- Charly. 1409 01:04:09,570 --> 01:04:10,320 О нет. 1410 01:04:10,320 --> 01:04:11,820 Я думаю, что мы пошли не в ту сторону, да? 1411 01:04:11,820 --> 01:04:13,260 >> АУДИТОРИЯ: [неразборчиво] нижний регистр а. 1412 01:04:13,260 --> 01:04:14,260 >> ANDI Пэн: Там вы идете. 1413 01:04:14,260 --> 01:04:22,380 1414 01:04:22,380 --> 01:04:22,880 Ага. 1415 01:04:22,880 --> 01:04:24,920 И из плюет Чарли. 1416 01:04:24,920 --> 01:04:28,020 Так что будьте осторожны, когда Вы вычитания значения 1417 01:04:28,020 --> 01:04:30,400 помнить, какой из больше, чем другая. 1418 01:04:30,400 --> 01:04:35,220 Например, здесь я забыл что в нижнем регистре а является на самом деле 1419 01:04:35,220 --> 01:04:38,540 больше, чем в верхнем регистре A. Поэтому, когда я пытался вычитать их в другую сторону 1420 01:04:38,540 --> 01:04:40,600 вокруг, я получил отрицательный 32. 1421 01:04:40,600 --> 01:04:42,800 И мой компьютер, как, Я не знаю, что это такое. 1422 01:04:42,800 --> 01:04:45,810 Это лишь некоторые вероятность случайного Значение, которое не очень хорошо. 1423 01:04:45,810 --> 01:04:48,760 И поэтому убедитесь, что вы вычитания в правильной длины 1424 01:04:48,760 --> 01:04:52,831 найти символ, который вы хотите. 1425 01:04:52,831 --> 01:04:53,330 ХОРОШО. 1426 01:04:53,330 --> 01:04:58,550 Кто путать, как мы ли пошел о написании этой функции? 1427 01:04:58,550 --> 01:04:59,180 ХОРОШО. 1428 01:04:59,180 --> 01:05:04,830 Так на самом деле, функция уже существует в библиотеке называется ctype.h. 1429 01:05:04,830 --> 01:05:06,417 Называется ctype.h библиотеки. 1430 01:05:06,417 --> 01:05:08,500 Эта функция на самом деле уже написана для вас. 1431 01:05:08,500 --> 01:05:10,820 Это называется в верхней. 1432 01:05:10,820 --> 01:05:13,027 >> И так для целей это PSET, вы собираетесь 1433 01:05:13,027 --> 01:05:15,860 чтобы найти, что вы действительно хотите использовать много функций, содержащиеся 1434 01:05:15,860 --> 01:05:17,390 в библиотеке CTYPE. 1435 01:05:17,390 --> 01:05:21,040 Для верхней, снизить, сверху, является lower-- те все функции 1436 01:05:21,040 --> 01:05:24,914 что вы сможете использовать очень, очень быстро в своем коде, что 1437 01:05:24,914 --> 01:05:26,080 делает именно, что это делает. 1438 01:05:26,080 --> 01:05:28,941 Мы написали, как преобразовать строку в верхний регистр. 1439 01:05:28,941 --> 01:05:31,440 Но это на самом деле код что кто-то написал 1440 01:05:31,440 --> 01:05:33,800 и что вы можете получить доступ к с помощью другой функции. 1441 01:05:33,800 --> 01:05:34,300 Да? 1442 01:05:34,300 --> 01:05:39,570 >> АУДИТОРИЯ: Таким образом, вы просто скопировать годов там и сделать это для каждого письма? 1443 01:05:39,570 --> 01:05:42,070 >> ANDI Пэн: Да, потому что я не заботиться о значениях а. 1444 01:05:42,070 --> 01:05:44,540 Я просто все равно, что разница между ними 32, верно? 1445 01:05:44,540 --> 01:05:48,210 Разница между строчными б и в верхнем регистре B также 32. 1446 01:05:48,210 --> 01:05:50,860 И разница между C а верхний С всегда 32. 1447 01:05:50,860 --> 01:05:53,235 >> Мне просто нужно заботиться о Разница между этими двумя, 1448 01:05:53,235 --> 01:05:56,666 потому что все буквы по той же схеме, верно? 1449 01:05:56,666 --> 01:05:58,540 Если у меня есть разница между одним из них, 1450 01:05:58,540 --> 01:06:01,050 Я знаю, что разница между всеми из них. 1451 01:06:01,050 --> 01:06:01,740 Хороший вопрос. 1452 01:06:01,740 --> 01:06:04,090 Да. 1453 01:06:04,090 --> 01:06:06,660 Все хорошо? 1454 01:06:06,660 --> 01:06:09,080 ХОРОШО. 1455 01:06:09,080 --> 01:06:09,580 ООП. 1456 01:06:09,580 --> 01:06:14,380 1457 01:06:14,380 --> 01:06:15,270 >> ХОРОШО. 1458 01:06:15,270 --> 01:06:20,310 Так еще одно понятие, что это будет очень полезно, как вы 1459 01:06:20,310 --> 01:06:22,570 продолжать развивать код эта идея 1460 01:06:22,570 --> 01:06:25,430 создания функции или абстракцию. 1461 01:06:25,430 --> 01:06:28,479 Так что сейчас, мы все приняли алгебру. 1462 01:06:28,479 --> 01:06:31,770 В алгебре, вас учат, что есть это замечательная вещь называется функцией 1463 01:06:31,770 --> 01:06:35,300 машина, где, если вы вход один вид числа, 1464 01:06:35,300 --> 01:06:38,720 она проходит через этого замечательного функции и вне хлопает другой выход, верно? 1465 01:06:38,720 --> 01:06:42,220 В коде, то же самое происходит в какой-либо функции. 1466 01:06:42,220 --> 01:06:48,230 >> Так что я мог физически написать в моем теле моего кода 1467 01:06:48,230 --> 01:06:52,357 главная утверждение, что на самом деле все тело кода делает. 1468 01:06:52,357 --> 01:06:54,940 Но за пределами этого, я могу также написать множество различных функций 1469 01:06:54,940 --> 01:06:56,320 что делать много разных вещей. 1470 01:06:56,320 --> 01:06:58,570 Например, мы уже начали использовать некоторые из них. 1471 01:06:58,570 --> 01:07:00,610 Printf--, что является Функция что кто-то 1472 01:07:00,610 --> 01:07:02,870 уже написано, что мы можем назвать в нашем коде. 1473 01:07:02,870 --> 01:07:05,410 Для upper-- в этом случае, upper-- другая функция 1474 01:07:05,410 --> 01:07:07,330 мы написали, что мы можно позвонить в наш код. 1475 01:07:07,330 --> 01:07:09,520 И поэтому я думаю, почему у нас даже есть функции? 1476 01:07:09,520 --> 01:07:12,100 Почему бы нам просто не хлопнуть его все в той же строке кода? 1477 01:07:12,100 --> 01:07:13,730 Это делает его легким для всех. 1478 01:07:13,730 --> 01:07:19,200 >> Ну, что обоснование это, в первую очередь, организации. 1479 01:07:19,200 --> 01:07:21,880 Это действительно раздражает собирается через чью-то код 1480 01:07:21,880 --> 01:07:25,110 и одна функция, как Printf. 1481 01:07:25,110 --> 01:07:28,570 Если вы, ребята, на самом деле знал, что Функция Printf повлекшее написать, 1482 01:07:28,570 --> 01:07:30,530 это, вроде бы, 1000 строк кода. 1483 01:07:30,530 --> 01:07:32,357 >> Если каждый раз, когда я хотел чтобы PRINTF то, 1484 01:07:32,357 --> 01:07:35,440 Я должен был написать 1000 строк кода, Это было бы действительно раздражает, чтобы читать, 1485 01:07:35,440 --> 01:07:36,290 правильно? 1486 01:07:36,290 --> 01:07:38,860 Вот почему мы только создал этот абстрактная функция 1487 01:07:38,860 --> 01:07:41,670 что у нас есть кто-то уже еще написал где-то еще. 1488 01:07:41,670 --> 01:07:44,920 И каждый раз, когда мы должны использовать его в наш код, мы просто должны сказать Printf. 1489 01:07:44,920 --> 01:07:48,070 И это возможность использовать функцию кто-то написал в коде. 1490 01:07:48,070 --> 01:07:51,020 Это облегчает организационно читать код. 1491 01:07:51,020 --> 01:07:53,460 >> Во-вторых, это упрощение. 1492 01:07:53,460 --> 01:07:56,750 Это упрощает шаги, которые мы принять, чтобы решить нашу проблему. 1493 01:07:56,750 --> 01:07:59,300 Printf, функции, такие как Printf, функции, такие как в верхней 1494 01:07:59,300 --> 01:08:03,560 все вещи, которые позволяют нам упростить код вниз так легче. 1495 01:08:03,560 --> 01:08:05,830 И последнее, что является возможность многократного использования. 1496 01:08:05,830 --> 01:08:08,710 >> Так на то, что у нас есть функция называется Printf 1497 01:08:08,710 --> 01:08:11,990 что мы можем назвать много разных раз и позволяет ему быть многоразового использования. 1498 01:08:11,990 --> 01:08:14,980 Если бы мне пришлось писать Printf, Я пишу только один раз. 1499 01:08:14,980 --> 01:08:16,439 Она существует только в этом одном месте. 1500 01:08:16,439 --> 01:08:19,890 Если бы я хотел, чтобы сделать это снова, я бы должны скопировать и вставить все, что 1501 01:08:19,890 --> 01:08:21,760 в моей второй строке кода. 1502 01:08:21,760 --> 01:08:24,880 Вот почему, если мы создадим функцию что существует вне нашего главного, 1503 01:08:24,880 --> 01:08:26,880 мы можем только призвать это и использовать его, когда 1504 01:08:26,880 --> 01:08:29,604 мы должны так, что это намного проще, для нас, как программы для записи. 1505 01:08:29,604 --> 01:08:32,220 1506 01:08:32,220 --> 01:08:35,549 >> Таким образом, путь, который мы бы на самом деле писать функция очень похожа, да? 1507 01:08:35,549 --> 01:08:37,590 Это своего рода первый случай, в котором мы будем 1508 01:08:37,590 --> 01:08:42,830 см функцию берут на стиль отличается, чем наш основной Int пустоту. 1509 01:08:42,830 --> 01:08:46,779 В этом случае, если бы я хотел, чтобы написать функцию с именем д, верно? 1510 01:08:46,779 --> 01:08:49,370 >> И здесь значение INT это все рассказывал мне, 1511 01:08:49,370 --> 01:08:51,649 что я хочу, чтобы это функционировать, чтобы вернуться ко мне? 1512 01:08:51,649 --> 01:08:54,484 Если я хочу, чтобы куб целое, Я собираюсь хотите ввести. 1513 01:08:54,484 --> 01:08:55,525 Эти параметры. 1514 01:08:55,525 --> 01:08:58,490 Я собираюсь вводит значение типа Int. 1515 01:08:58,490 --> 01:09:01,300 И я собираюсь вернуться другое значение тип Int. 1516 01:09:01,300 --> 01:09:03,050 И здесь, как вы видите, все, что я делаю 1517 01:09:03,050 --> 01:09:07,300 является то, что в куб мой вход как мой выхода и возвращения его. 1518 01:09:07,300 --> 01:09:10,790 >> Так что все это делает функция является занимает какое-то число. 1519 01:09:10,790 --> 01:09:14,979 Это умножает его на себе два раза так, чтобы он кубов в действие. 1520 01:09:14,979 --> 01:09:17,729 А потом он возвращается все, что выход. 1521 01:09:17,729 --> 01:09:20,540 Таким образом, в этом случае, это две линии код, который мы должны были написать отдельно. 1522 01:09:20,540 --> 01:09:22,880 Но если мы хотели назвать На этой несколько раз, 1523 01:09:22,880 --> 01:09:26,210 это намного проще набрать, что один линия прямо здесь, что это в кубе, чем 1524 01:09:26,210 --> 01:09:28,830 должны пройти несколько раз. 1525 01:09:28,830 --> 01:09:34,180 >> Таким образом, способ, что практически любой форматирование для любого вида функции 1526 01:09:34,180 --> 01:09:36,420 будет существовать, как здесь. 1527 01:09:36,420 --> 01:09:38,659 Таким образом, мы имеем имя функции. 1528 01:09:38,659 --> 01:09:39,950 В этом случае, это называется куб. 1529 01:09:39,950 --> 01:09:42,033 И мы называем это, потому что куб это легко запомнить. 1530 01:09:42,033 --> 01:09:44,220 Вы можете назвать это квадрат и это на самом деле может быть в кубе. 1531 01:09:44,220 --> 01:09:45,500 Не имеет значения. 1532 01:09:45,500 --> 01:09:48,020 Просто имя, что ты присвоения вашу функцию. 1533 01:09:48,020 --> 01:09:51,660 >> Это прямо здесь, INT, является тип параметра нужно. 1534 01:09:51,660 --> 01:09:54,149 Итак, что же эту функцию нужно для того, чтобы работать? 1535 01:09:54,149 --> 01:09:55,990 Ну, она должна вход. 1536 01:09:55,990 --> 01:09:56,704 Я назвал его ввода. 1537 01:09:56,704 --> 01:09:58,120 Вы можете назвать это, что вы хотите. 1538 01:09:58,120 --> 01:10:00,500 Но мне нужно что-то типа Int. 1539 01:10:00,500 --> 01:10:03,730 Это происходит на самом деле выполнить все, что внутри здесь, 1540 01:10:03,730 --> 01:10:04,990 тело функции. 1541 01:10:04,990 --> 01:10:07,847 И тогда тип возвращаемого прямо здесь, в этом int-- 1542 01:10:07,847 --> 01:10:09,680 Все это говорит мне, это что эта функция 1543 01:10:09,680 --> 01:10:11,250 собирается вернуться ко мне в междунар. 1544 01:10:11,250 --> 01:10:14,460 Таким образом, это займет в INT, и он собирается дать вам обратно в Int. 1545 01:10:14,460 --> 01:10:17,750 Все понимают ли, как форматирование этого рода работы? 1546 01:10:17,750 --> 01:10:18,250 Круто. 1547 01:10:18,250 --> 01:10:24,690 1548 01:10:24,690 --> 01:10:25,740 >> ХОРОШО. 1549 01:10:25,740 --> 01:10:31,770 Так что не беспокойтесь, если это кажется немного абстрактный прямо сейчас. 1550 01:10:31,770 --> 01:10:33,450 Это то, что мы будем говорить о. 1551 01:10:33,450 --> 01:10:36,310 Мы нырять глубже позже в курсе. 1552 01:10:36,310 --> 01:10:41,170 Таким образом, что какой-либо более высокого уровня абстракция эти вещи работают 1553 01:10:41,170 --> 01:10:43,530 является то, что, в памяти, в компьютер, все 1554 01:10:43,530 --> 01:10:47,660 хранится в этом типе стека, я должен сказать. 1555 01:10:47,660 --> 01:10:49,070 >> Так там на самом верху. 1556 01:10:49,070 --> 01:10:50,861 Я не знаю, если вы ребята, можете увидеть, что хорошо. 1557 01:10:50,861 --> 01:10:52,590 Я постараюсь, чтобы увеличить. 1558 01:10:52,590 --> 01:10:55,111 Здесь на вершине, мы имеют физический текст 1559 01:10:55,111 --> 01:10:57,860 что компьютер interpreting-- все нули и единицы, которые 1560 01:10:57,860 --> 01:10:59,540 существуют в нашем компьютере. 1561 01:10:59,540 --> 01:11:03,390 А потом мы инициализированное Данные данных и неинициализированных, 1562 01:11:03,390 --> 01:11:05,340 что мы называем глобальные переменные. 1563 01:11:05,340 --> 01:11:08,200 Так переменных, которые существуют всех программ 1564 01:11:08,200 --> 01:11:11,815 и по всей вашей, по сути, код. 1565 01:11:11,815 --> 01:11:13,940 Не беспокойтесь, если вы, ребята, вид неясно об этом. 1566 01:11:13,940 --> 01:11:16,060 Это действительно не имеет значения прямо сейчас. 1567 01:11:16,060 --> 01:11:18,680 >> И тогда у нас есть то, что называется куча в стеке. 1568 01:11:18,680 --> 01:11:21,140 Подумайте о стеке буквально так же, как стек вещей, 1569 01:11:21,140 --> 01:11:23,098 стек отличается вещи толкают сверху 1570 01:11:23,098 --> 01:11:27,870 друг от друга, что хранить различные Переменные и синтаксис в коде. 1571 01:11:27,870 --> 01:11:31,460 А потом здесь, в самом низу, у нас есть переменные среды 1572 01:11:31,460 --> 01:11:35,480 что вы выполняете в просто ваш маленький строки кода. 1573 01:11:35,480 --> 01:11:40,510 >> И мы только собираемся, чтобы увеличить В от фактического части стека. 1574 01:11:40,510 --> 01:11:43,880 Так вот здесь, если бы мы были, чтобы увеличить В только на этой области стека, 1575 01:11:43,880 --> 01:11:45,140 это то, что он выглядит. 1576 01:11:45,140 --> 01:11:48,590 И это на самом деле очень важно когда вы, ребята, говорить о функциях, 1577 01:11:48,590 --> 01:11:52,330 потому что уведомление о том, что памяти компьютера 1578 01:11:52,330 --> 01:11:55,600 хранит переменные и функции 1579 01:11:55,600 --> 01:11:58,790 и параметры как ваш функции и ваши основные переменные 1580 01:11:58,790 --> 01:12:00,190 в разных местах. 1581 01:12:00,190 --> 01:12:03,390 >> Так что сейчас, главное, фактическая функция 1582 01:12:03,390 --> 01:12:04,780 что вы выполнение в коде. 1583 01:12:04,780 --> 01:12:08,050 Вы его параметры хранятся здесь и ее локальные переменные хранятся здесь. 1584 01:12:08,050 --> 01:12:12,270 Локальная переменная просто означает любую переменную что существуют только в этой функции. 1585 01:12:12,270 --> 01:12:15,610 И на нем, у вас есть это отдельная функция называется куб. 1586 01:12:15,610 --> 01:12:18,240 Вы должны это параметры а также тех местных жителей. 1587 01:12:18,240 --> 01:12:21,540 >> И причина вы можете видите здесь то, что 1588 01:12:21,540 --> 01:12:25,030 происходит, когда куб занимает в Значение из основного функции 1589 01:12:25,030 --> 01:12:27,640 является то, что на самом деле это копирование что в течение. 1590 01:12:27,640 --> 01:12:31,470 Так что, если я хотел куба 2 и вернуться 8, что 2 1591 01:12:31,470 --> 01:12:33,730 фактически вводится в качестве параметра, и это 1592 01:12:33,730 --> 01:12:37,690 скопированы, так что у вас есть это существующая в двух разных местах в памяти. 1593 01:12:37,690 --> 01:12:40,520 И вы должны быть очень осторожны, на запоминание, которые один из тех, 1594 01:12:40,520 --> 01:12:42,520 вы на самом деле манипулирования. 1595 01:12:42,520 --> 01:12:47,170 И пример того, что произошло это было бы очень, очень плохо 1596 01:12:47,170 --> 01:12:48,050 существует прямо здесь. 1597 01:12:48,050 --> 01:12:50,760 1598 01:12:50,760 --> 01:12:58,650 >> Так прямо здесь, у меня, в теории, Программа прямо здесь, главным функция 1599 01:12:58,650 --> 01:13:02,180 что я объявив Int х равен 1. 1600 01:13:02,180 --> 01:13:04,505 Я объявляю еще один INT у равен 2. 1601 01:13:04,505 --> 01:13:06,380 И тогда я бегу его через эту функцию 1602 01:13:06,380 --> 01:13:09,647 называется подкачки, куда я предполагаю, что это обмен двух значений. 1603 01:13:09,647 --> 01:13:11,480 А потом я собираюсь печатать их, верно? 1604 01:13:11,480 --> 01:13:13,220 Это то, что я хочу, чтобы эта программа делать. 1605 01:13:13,220 --> 01:13:15,180 >> Итак, давайте спуститься и посмотреть. 1606 01:13:15,180 --> 01:13:18,200 Так что, если я на самом деле написать отличается Функция, как вы можете видеть, 1607 01:13:18,200 --> 01:13:19,750 у нас есть основные функции здесь. 1608 01:13:19,750 --> 01:13:22,860 И тогда у нас есть наши Вторая функция здесь. 1609 01:13:22,860 --> 01:13:24,520 Пустота подкачки. 1610 01:13:24,520 --> 01:13:27,090 Пустота означает лишь то, что это не собирается ничего возвращать. 1611 01:13:27,090 --> 01:13:28,930 Название Функция называется своп, и это 1612 01:13:28,930 --> 01:13:33,730 собирается впускных двух переменных, Int А и INT B, с вашей [неразборчиво] функции. 1613 01:13:33,730 --> 01:13:39,010 >> Так по существу здесь, мы проходя х и у в эту функцию. 1614 01:13:39,010 --> 01:13:40,760 И если бы мы создать this-- поэтому мы хотим 1615 01:13:40,760 --> 01:13:42,420 создать временное значение, верно? 1616 01:13:42,420 --> 01:13:43,930 Мы собираемся назначить, что а. 1617 01:13:43,930 --> 01:13:45,388 А потом будет настоящее равной б. 1618 01:13:45,388 --> 01:13:47,660 И б собирается вернуться где значение температуры было, 1619 01:13:47,660 --> 01:13:51,070 которая представляет собой, потому что, когда Вы хотите, чтобы обменять вещи, 1620 01:13:51,070 --> 01:13:52,320 Вы не можете просто нравится поменять их местами. 1621 01:13:52,320 --> 01:13:54,360 >> Вы должны держать одного из них здесь, так что он помнит, 1622 01:13:54,360 --> 01:13:56,485 что это такое, потому что, когда Вы поменять один, вы забыли 1623 01:13:56,485 --> 01:13:58,200 что это первоначальное значение было, верно? 1624 01:13:58,200 --> 01:14:00,990 Так в теории, эта программа должно работать, не так ли? 1625 01:14:00,990 --> 01:14:03,630 Если бы я хотел, чтобы поменять местами два, они должны поменять. 1626 01:14:03,630 --> 01:14:05,490 Итак, давайте запустить его и посмотреть, работает ли он. 1627 01:14:05,490 --> 01:14:11,130 1628 01:14:11,130 --> 01:14:16,940 >> Итак, как вы, ребята, можете увидеть, х когда-то был 1 и у 2 был когда-то. 1629 01:14:16,940 --> 01:14:21,475 И если я распечатать его, х еще 1 и Y 2. 1630 01:14:21,475 --> 01:14:25,970 Хм, эта программа не кажутся работает так, что я хочу, чтобы работать. 1631 01:14:25,970 --> 01:14:29,950 Кто-нибудь хочет, чтобы сделать снимок на гадать, почему это происходит? 1632 01:14:29,950 --> 01:14:34,430 Это имеет отношение к пути что различные вещи 1633 01:14:34,430 --> 01:14:38,172 хранятся в разных местах в памяти. 1634 01:14:38,172 --> 01:14:39,377 >> ХОРОШО. 1635 01:14:39,377 --> 01:14:41,960 Таким образом, вы, ребята, не надо беспокоиться слишком много об этом прямо сейчас. 1636 01:14:41,960 --> 01:14:46,610 Но знаю, что куб Часовой переменные были б, 1637 01:14:46,610 --> 01:14:49,230 потому что здесь, в нашей функции, мы объявили А и В 1638 01:14:49,230 --> 01:14:53,570 а переменные, которые существуют в кубе, что функция. 1639 01:14:53,570 --> 01:14:59,490 Но, как вы видите, параметры, которые он принимает в хранились здесь. 1640 01:14:59,490 --> 01:15:01,370 Но мы не были на самом деле возвращение ничего. 1641 01:15:01,370 --> 01:15:03,120 Мы не были на самом деле изменения х и у. 1642 01:15:03,120 --> 01:15:04,440 Мы были только в замене и б. 1643 01:15:04,440 --> 01:15:08,340 >> Мы скопировали х и у в то называется и б. 1644 01:15:08,340 --> 01:15:11,092 Но мы никогда фактически манипулировать х и у самих себя. 1645 01:15:11,092 --> 01:15:12,800 Вы, ребята, видя как это происходит? 1646 01:15:12,800 --> 01:15:16,140 Это мы просто скопировали их закончилась, но мы на самом деле не хранится 1647 01:15:16,140 --> 01:15:18,030 трек, где они были в памяти. 1648 01:15:18,030 --> 01:15:20,127 >> И вот теперь компьютер ищет, О, я 1649 01:15:20,127 --> 01:15:21,960 запустить эту вещь через это прекрасный функция. 1650 01:15:21,960 --> 01:15:23,690 Но х и у еще х и у. 1651 01:15:23,690 --> 01:15:26,240 Ничего не случилось им из-за того 1652 01:15:26,240 --> 01:15:28,340 что этих параметров и локальные переменные 1653 01:15:28,340 --> 01:15:30,150 хранятся в другой место в памяти. 1654 01:15:30,150 --> 01:15:32,030 И это выше уровня Концепция, что мы будем 1655 01:15:32,030 --> 01:15:34,300 начать видеть позже в курсе. 1656 01:15:34,300 --> 01:15:36,950 Но точно знаю, что это проблема, которая может случиться 1657 01:15:36,950 --> 01:15:41,400 и что мы будем выяснить способы о том, как иметь дело с этим позже в курсе. 1658 01:15:41,400 --> 01:15:41,900 ХОРОШО. 1659 01:15:41,900 --> 01:15:47,750 1660 01:15:47,750 --> 01:15:48,250 Все в порядке. 1661 01:15:48,250 --> 01:15:51,780 Таким образом, последнее понятие мы на самом деле происходит, чтобы покрыть 1662 01:15:51,780 --> 01:15:53,880 что будет полезно для PSET на этой неделе 1663 01:15:53,880 --> 01:15:56,060 то, что называют Аргументы командной строки. 1664 01:15:56,060 --> 01:16:00,820 Так Роб в своей лекции прошли вид кратко, как эти работы. 1665 01:16:00,820 --> 01:16:02,770 По сути знаю, что когда вы пишете 1666 01:16:02,770 --> 01:16:06,280 как основной функции, когда мы написал функций до и в прошлом, 1667 01:16:06,280 --> 01:16:07,804 у нас было Int основной пустоту. 1668 01:16:07,804 --> 01:16:10,470 И причина у нас было недействительным есть потому, что наши программы не сделал 1669 01:16:10,470 --> 01:16:12,520 нужно входных значений для запуска, правда? 1670 01:16:12,520 --> 01:16:16,020 Когда я побежал Марио, мне не нужно на самом деле просто введите то 1671 01:16:16,020 --> 01:16:16,970 когда я бежал Марио. 1672 01:16:16,970 --> 01:16:20,170 Я мог бы подсказать пользователю в дальнейшем. 1673 01:16:20,170 --> 01:16:22,450 Но не всегда будет так. 1674 01:16:22,450 --> 01:16:24,980 >> Например, в этом Проблема неделю устанавливает, 1675 01:16:24,980 --> 01:16:28,365 Вы собираетесь быть предложено, что в Помимо запуска вашей программы, 1676 01:16:28,365 --> 01:16:30,990 Вы собираетесь хотите, чтобы ввести некоторые вещи в прямо, как вы 1677 01:16:30,990 --> 01:16:32,050 запустить программу. 1678 01:16:32,050 --> 01:16:34,720 Таким образом, как мы делаем, что называется аргумент командной строки, что 1679 01:16:34,720 --> 01:16:37,280 это как аргумент Вы можете ввести непосредственно 1680 01:16:37,280 --> 01:16:39,260 как вы пытаетесь запустить вашу программу. 1681 01:16:39,260 --> 01:16:44,680 >> Таким образом, обозначение для этого, это довольно сложный вид, 1682 01:16:44,680 --> 01:16:47,320 но это действительно не то, что сложно. Так INT main-- 1683 01:16:47,320 --> 01:16:48,910 это просто ваш главный функция. 1684 01:16:48,910 --> 01:16:52,110 В ARGC запятой строка ARGV скобках. 1685 01:16:52,110 --> 01:16:56,040 Таким образом, все, что говорит, что это INT argc-- все, что говорю вам, 1686 01:16:56,040 --> 01:17:00,560 является то, что те число Аргументы компьютер должен ожидать. 1687 01:17:00,560 --> 01:17:03,130 >> Так одна вещь, которая действительно Важно следить 1688 01:17:03,130 --> 01:17:07,080 является физическое имя вашей программы считается одним из тех аргументов. 1689 01:17:07,080 --> 01:17:11,080 Так что, если я хотел, чтобы моя программа запустить один дополнительный плюс командной строки 1690 01:17:11,080 --> 01:17:13,310 Аргумент, на самом деле я будет иметь два. 1691 01:17:13,310 --> 01:17:15,080 ARGC на самом деле будет два. 1692 01:17:15,080 --> 01:17:18,010 И тогда строка ARGV bracket-- все, что делает, 1693 01:17:18,010 --> 01:17:20,410 это дает мне Массив строк, это 1694 01:17:20,410 --> 01:17:24,870 собираюсь просто показать и сохранить то, что все эти аргументы командной строки. 1695 01:17:24,870 --> 01:17:34,090 >> Так, например, если бы я хотел, чтобы это Программа, ./copy входной_файл выходной_файл, верно? 1696 01:17:34,090 --> 01:17:37,330 Это просто Типичная команда Linux. 1697 01:17:37,330 --> 01:17:38,830 Что на самом деле ARGC? 1698 01:17:38,830 --> 01:17:41,320 Сколько аргументов командной строки есть на самом деле в это? 1699 01:17:41,320 --> 01:17:45,130 Все это делает, это сделать копию входной_файл имени одного файла 1700 01:17:45,130 --> 01:17:47,070 и копирует его в другой файл, верно? 1701 01:17:47,070 --> 01:17:48,700 Вот все это делает. 1702 01:17:48,700 --> 01:17:53,080 Как вы можете видеть, я делаю это по одной линии фактически не нуждаясь в программу. 1703 01:17:53,080 --> 01:17:55,380 >> Что наша ARGC в этом случае? 1704 01:17:55,380 --> 01:17:58,968 Сколько аргументов у нас? 1705 01:17:58,968 --> 01:17:59,634 АУДИТОРИЯ: Три? 1706 01:17:59,634 --> 01:18:01,200 ANDI Пэн: У нас есть три, точно. 1707 01:18:01,200 --> 01:18:05,030 Так что это очень интуитивно просто думаю, что это просто 1708 01:18:05,030 --> 01:18:06,290 входной_файл и выходной_файл. 1709 01:18:06,290 --> 01:18:10,190 Но знаю, что физическое имя из Программа вы работаете рассчитывает как один. 1710 01:18:10,190 --> 01:18:13,220 Таким образом, в этом случае, на самом деле ARGC три. 1711 01:18:13,220 --> 01:18:15,860 Как насчет того, что ARGV 0? 1712 01:18:15,860 --> 01:18:18,180 Помните, что все из Аргументы командной строки 1713 01:18:18,180 --> 01:18:20,500 были сохранены в массиве строк. 1714 01:18:20,500 --> 01:18:24,140 Так что, если я пытаюсь получить к нему доступ, то, что будет ARGV кронштейн 0 дать мне? 1715 01:18:24,140 --> 01:18:25,364 >> АУДИТОРИЯ: [неразборчиво]. 1716 01:18:25,364 --> 01:18:26,155 ANDI Пэн: Точно. 1717 01:18:26,155 --> 01:18:28,550 Это даст мне точку сократить копию, потому что это 1718 01:18:28,550 --> 01:18:31,070 0-я стихия, Первый элемент моего массива. 1719 01:18:31,070 --> 01:18:33,236 Что о ARGV 1? 1720 01:18:33,236 --> 01:18:33,945 >> АУДИТОРИЯ: входной_файл. 1721 01:18:33,945 --> 01:18:35,070 ANDI Пэн: входной_файл, точно. 1722 01:18:35,070 --> 01:18:36,272 Что о ARGV 2? 1723 01:18:36,272 --> 01:18:37,022 АУДИТОРИЯ: OUTFILE. 1724 01:18:37,022 --> 01:18:38,190 ANDI Пэн: OUTFILE. 1725 01:18:38,190 --> 01:18:39,290 Это немного сложнее в настоящее время. 1726 01:18:39,290 --> 01:18:42,630 Что вы, ребята, думаю, ARGV 3 будет давать мне 1727 01:18:42,630 --> 01:18:45,522 если бы я попытался напечатать, что из? 1728 01:18:45,522 --> 01:18:48,260 >> АУДИТОРИЯ: [неразборчиво]? 1729 01:18:48,260 --> 01:18:50,164 >> ANDI Пэн: Было ли у вас руки вверх? 1730 01:18:50,164 --> 01:18:50,663 Да. 1731 01:18:50,663 --> 01:18:51,550 >> АУДИТОРИЯ: альтернатива. 1732 01:18:51,550 --> 01:18:52,341 >> ANDI Пэн: Точно. 1733 01:18:52,341 --> 01:18:55,440 Так что помните, в лекции, что мы есть в конце гоночного то 1734 01:18:55,440 --> 01:18:56,640 называется нуль-терминатор? 1735 01:18:56,640 --> 01:18:58,890 Мы войдем в это также далее в классе. 1736 01:18:58,890 --> 01:19:02,472 Но знаю, что в обозначениях, способ компьютер 1737 01:19:02,472 --> 01:19:04,430 знает, что это конец массива является то, что этим 1738 01:19:04,430 --> 01:19:07,310 ставит то, что называется нулевым терминатор или тире равна нулю. 1739 01:19:07,310 --> 01:19:12,047 >> Так что, если вы пытаетесь получить доступ ARGV 3, Вы собираетесь ударить эту черту 0. 1740 01:19:12,047 --> 01:19:13,630 Это даже больше вопрос с подвохом. 1741 01:19:13,630 --> 01:19:17,020 Что о ARGV 4? 1742 01:19:17,020 --> 01:19:20,920 Так это прошлое нуль терминатор, мимо пределах массиве. 1743 01:19:20,920 --> 01:19:24,380 Что вы думаете, что произойдет, когда мы пытаемся сделать? 1744 01:19:24,380 --> 01:19:25,842 >> АУДИТОРИЯ: [неразборчиво]? 1745 01:19:25,842 --> 01:19:26,550 ANDI Пэн: К сожалению? 1746 01:19:26,550 --> 01:19:28,025 Скажите, что немного громче? 1747 01:19:28,025 --> 01:19:29,086 >> АУДИТОРИЯ: [неразборчиво]. 1748 01:19:29,086 --> 01:19:29,710 ANDI Пэн: Да. 1749 01:19:29,710 --> 01:19:32,420 Это имя из площадь вы скорее всего, получите. 1750 01:19:32,420 --> 01:19:36,610 Но знаю, что ARGV 4-- что позволяет получить доступ к 1751 01:19:36,610 --> 01:19:38,610 места вашего компьютера памяти, что вы на самом деле 1752 01:19:38,610 --> 01:19:41,650 не должно быть трогательным, потому что Прямо сейчас вы знаете, что это ARGV. 1753 01:19:41,650 --> 01:19:46,220 Вы знаете, что это массив размера 3 что имеет точка копирования, INFILE и выходной_файл. 1754 01:19:46,220 --> 01:19:50,200 >> Если вы попытаетесь пойти так далеко за пределы, что что вы мимо пустого терминатора, 1755 01:19:50,200 --> 01:19:53,050 Ваш компьютер имеет, вероятно, хранить что-то в ARGV 4. 1756 01:19:53,050 --> 01:19:55,790 И вы действительно не должны быть разрешен доступ в ARGV 4, 1757 01:19:55,790 --> 01:19:58,130 потому что у вас есть файл шкаф, и вы только 1758 01:19:58,130 --> 01:19:59,790 разрешен доступ к этим трем полок. 1759 01:19:59,790 --> 01:20:02,870 Но если вы пытаетесь достичь далеко за пределы шельф, где вы имеете право, 1760 01:20:02,870 --> 01:20:04,930 Вы собираетесь начать возиться с другие вещи в памяти компьютера. 1761 01:20:04,930 --> 01:20:06,690 Это будет очень, очень плохо. 1762 01:20:06,690 --> 01:20:07,440 Так просто знаю, что. 1763 01:20:07,440 --> 01:20:10,370 Будьте очень осторожны, что вы не просто случайно начать 1764 01:20:10,370 --> 01:20:14,772 доступ к элементам массива, что не в том, что вы хотите создать. 1765 01:20:14,772 --> 01:20:17,114 Ага. 1766 01:20:17,114 --> 01:20:18,430 >> ХОРОШО. 1767 01:20:18,430 --> 01:20:26,360 Так что мы собираемся сделать еще один Терминал пример здесь. 1768 01:20:26,360 --> 01:20:27,300 ХОРОШО. 1769 01:20:27,300 --> 01:20:29,900 Так Роб быстро в лекции другой день пошел 1770 01:20:29,900 --> 01:20:35,040 через этот пример, где была INT INT основной ARGC строка ARGV 1771 01:20:35,040 --> 01:20:39,090 кронштейны, которые говорит мне, что я будет иметь аргументы командной строки. 1772 01:20:39,090 --> 01:20:41,860 >> Он, если ARGC равна равен 2-- помните, 1773 01:20:41,860 --> 01:20:45,070 равна равно означает сравнение. 1774 01:20:45,070 --> 01:20:47,980 Если он равен 2, то я в печать привет, 1775 01:20:47,980 --> 01:20:51,190 что было первой элемент массива является. 1776 01:20:51,190 --> 01:20:54,100 Иначе печать, привет мир. 1777 01:20:54,100 --> 01:20:56,300 Что это собирается произошло в основном? 1778 01:20:56,300 --> 01:21:00,570 Может кто-то просто объяснить Английский что эта программа делает? 1779 01:21:00,570 --> 01:21:01,272 Да. 1780 01:21:01,272 --> 01:21:08,160 >> АУДИТОРИЯ: Если кто-то набрал в команду и сказал, что их имя и фамилия, 1781 01:21:08,160 --> 01:21:12,096 это будет не просто печатать Первый и сказать, привет, 1782 01:21:12,096 --> 01:21:14,090 все ваше имя есть. 1783 01:21:14,090 --> 01:21:15,410 >> ANDI Пэн: Хорошо, давайте его запуска. 1784 01:21:15,410 --> 01:21:22,470 Так, например, если бы я, чтобы сделать этот файл сделать привет привет, целью которых 1785 01:21:22,470 --> 01:21:24,500 , целью которых то, что ты хочешь, чтобы ввести? 1786 01:21:24,500 --> 01:21:25,900 >> АУДИТОРИЯ: имя и фамилия. 1787 01:21:25,900 --> 01:21:27,280 >> ANDI Пэн: имя и фамилия? 1788 01:21:27,280 --> 01:21:28,180 Пространства? 1789 01:21:28,180 --> 01:21:29,690 >> АУДИТОРИЯ: Да. 1790 01:21:29,690 --> 01:21:33,490 >> ANDI Пэн: Может кто-нибудь сказать мне прямо сейчас, что ARGC? 1791 01:21:33,490 --> 01:21:35,630 Просто тут? 1792 01:21:35,630 --> 01:21:36,290 Ой, извини. 1793 01:21:36,290 --> 01:21:37,920 Позвольте мне вернуться. 1794 01:21:37,920 --> 01:21:40,740 Сколько аргументов командной строки are-- вы, ребята, не могу видеть. 1795 01:21:40,740 --> 01:21:43,760 Но я постараюсь, чтобы увеличить. 1796 01:21:43,760 --> 01:21:44,290 Я пытаюсь. 1797 01:21:44,290 --> 01:21:45,414 Да, есть три, не так ли? 1798 01:21:45,414 --> 01:21:48,750 Это точка слэш привет, это Энди, и это Пэн. 1799 01:21:48,750 --> 01:21:51,870 >> Так что вы, ребята, думаю, что это Программа будет распечатки? 1800 01:21:51,870 --> 01:21:55,550 1801 01:21:55,550 --> 01:21:56,060 Ой. 1802 01:21:56,060 --> 01:21:57,120 Ой, извини. 1803 01:21:57,120 --> 01:21:57,810 Неправильное имя. 1804 01:21:57,810 --> 01:22:03,630 1805 01:22:03,630 --> 01:22:06,130 Это распечатки, привет мир. 1806 01:22:06,130 --> 01:22:09,603 Кто-нибудь хочет объяснить почему это происходит? 1807 01:22:09,603 --> 01:22:10,103 Да? 1808 01:22:10,103 --> 01:22:11,019 >> АУДИТОРИЯ: [неразборчиво]. 1809 01:22:11,019 --> 01:22:14,439 1810 01:22:14,439 --> 01:22:15,230 ANDI Пэн: Точно. 1811 01:22:15,230 --> 01:22:19,940 Так вот, являются условными есть, если ARGC равна равна 2. 1812 01:22:19,940 --> 01:22:23,650 Таким образом, только в том случае, существует два аргумента командной строки. 1813 01:22:23,650 --> 01:22:25,850 Тогда я иду к печати, привет, что это такое. 1814 01:22:25,850 --> 01:22:28,210 А еще, я собираюсь напечатать только, привет мир. 1815 01:22:28,210 --> 01:22:30,040 Так же кто-то хочет чтобы дать мне пример 1816 01:22:30,040 --> 01:22:35,050 о том, как я мог бы на самом деле сделать это, чтобы напечатать значение ARGV 1? 1817 01:22:35,050 --> 01:22:38,600 >> Что бы я, чтобы вход здесь? 1818 01:22:38,600 --> 01:22:39,840 Только одна вещь, верно? 1819 01:22:39,840 --> 01:22:42,900 Поскольку точка привет к уже считается как первый аргумент. 1820 01:22:42,900 --> 01:22:43,930 У меня есть еще один только. 1821 01:22:43,930 --> 01:22:46,470 Так точка привет, если я просто сделать Энди. 1822 01:22:46,470 --> 01:22:47,270 Здравствуйте, Энди. 1823 01:22:47,270 --> 01:22:49,186 Понимает ли все почему это происходит? 1824 01:22:49,186 --> 01:22:49,602 Да. 1825 01:22:49,602 --> 01:22:52,500 >> АУДИТОРИЯ: Так пространство между Команда line-- это [неразборчиво]? 1826 01:22:52,500 --> 01:22:56,247 1827 01:22:56,247 --> 01:22:56,830 ANDI PENG: Нет 1828 01:22:56,830 --> 01:23:03,810 Так пространстве в командной строке Аргумент, х, сказать компьютер 1829 01:23:03,810 --> 01:23:06,820 что это начало новой строки. 1830 01:23:06,820 --> 01:23:11,130 Так строка ARGV here-- это магазины все ваши аргументы линии команд 1831 01:23:11,130 --> 01:23:13,110 в строках. 1832 01:23:13,110 --> 01:23:17,420 И поэтому пространство в командной строке argument-- все, что делает вам сказать, 1833 01:23:17,420 --> 01:23:21,030 это в конце одной строки и это время, чтобы перейти к другой. 1834 01:23:21,030 --> 01:23:21,990 >> Да. 1835 01:23:21,990 --> 01:23:23,530 Это очень важно для Ваш PSET, потому что вы 1836 01:23:23,530 --> 01:23:24,613 будет испытывать их. 1837 01:23:24,613 --> 01:23:29,300 Так кто-нибудь есть какие-либо вопросы по этому поводу? 1838 01:23:29,300 --> 01:23:30,016 Ладно, круто. 1839 01:23:30,016 --> 01:23:30,515 Да? 1840 01:23:30,515 --> 01:23:35,008 >> АУДИТОРИЯ: Так что причина вам будет поместить целое аргумент известково вместо 1841 01:23:35,008 --> 01:23:40,059 из [неразборчиво] будет, когда вы хотите ввести дополнительную информацию 1842 01:23:40,059 --> 01:23:41,030 [Неразборчиво]? 1843 01:23:41,030 --> 01:23:42,090 >> ANDI Пэн: Да, именно так. 1844 01:23:42,090 --> 01:23:45,370 Некоторые программы требуют для ввода аргумента командной строки 1845 01:23:45,370 --> 01:23:47,732 что она проходит в и который использует это. 1846 01:23:47,732 --> 01:23:49,035 Да. 1847 01:23:49,035 --> 01:23:50,410 АУДИТОРИЯ: Так что, если [неразборчиво]? 1848 01:23:50,410 --> 01:23:55,440 1849 01:23:55,440 --> 01:23:58,870 >> ANDI Пэн: Ну, то, что у меня есть чтобы затем изменить в моей программе? 1850 01:23:58,870 --> 01:23:59,870 >> АУДИТОРИЯ: Просто 3. 1851 01:23:59,870 --> 01:24:12,460 1852 01:24:12,460 --> 01:24:15,020 >> ANDI Пэн: Почему это происходит, как вы думаете? 1853 01:24:15,020 --> 01:24:18,940 >> АУДИТОРИЯ: Потому что [неразборчиво]. 1854 01:24:18,940 --> 01:24:22,370 >> АУДИТОРИЯ: Вы должны были бы изменить его на 2 [неразборчиво]. 1855 01:24:22,370 --> 01:24:23,484 >> АУДИТОРИЯ: 1 и 2. 1856 01:24:23,484 --> 01:24:24,650 ANDI Пэн: 1 и 2, точно. 1857 01:24:24,650 --> 01:24:29,150 Таким образом, в этом случае, вы, вероятно, хотят иметь двух Printf statements-- 1858 01:24:29,150 --> 01:24:32,601 который печатается ARGV 1 и тот, который печатается ARGV 2. 1859 01:24:32,601 --> 01:24:33,100 Вот. 1860 01:24:33,100 --> 01:24:34,516 Я может реально сделать что реальный быстрый. 1861 01:24:34,516 --> 01:24:46,720 1862 01:24:46,720 --> 01:24:47,320 Там вы идете. 1863 01:24:47,320 --> 01:24:48,287 Ой. 1864 01:24:48,287 --> 01:24:49,370 Не совсем то, что вы хотели. 1865 01:24:49,370 --> 01:24:52,590 Но если вы, ребята, возиться с форматирование, он выйдет. 1866 01:24:52,590 --> 01:24:54,981 Да. 1867 01:24:54,981 --> 01:24:55,480 Круто. 1868 01:24:55,480 --> 01:24:57,670 Я знаю, мы немного короткий по времени. 1869 01:24:57,670 --> 01:25:02,469 Но я просто хочу, чтобы быстро провести пару минут, проходящие через helpful-- 1870 01:25:02,469 --> 01:25:03,760 АУДИТОРИЯ: У вас есть две минуты. 1871 01:25:03,760 --> 01:25:05,010 ANDI Пэн: у меня есть две минуты? 1872 01:25:05,010 --> 01:25:06,340 Спасибо. 1873 01:25:06,340 --> 01:25:09,180 Некоторые быстрые подсказки Pset. 1874 01:25:09,180 --> 01:25:13,100 Таким образом, для этой PSET, я настоятельно рекомендую, как я уже сказал, все читать спецификации. 1875 01:25:13,100 --> 01:25:16,804 Вы будете писать три programs-- один называется initials.c, одна называется caesar.c, 1876 01:25:16,804 --> 01:25:17,720 одна называется vigenere.c. 1877 01:25:17,720 --> 01:25:20,465 1878 01:25:20,465 --> 01:25:22,340 Некоторые важные советы, которые вы, ребята, действительно хотят 1879 01:25:22,340 --> 01:25:25,040 сохранить в mind-- так есть эта функция 1880 01:25:25,040 --> 01:25:27,770 называется atoi--, как я люблю говорить, труа. 1881 01:25:27,770 --> 01:25:29,520 Непонятно, если это на самом деле, как вы это говорите. 1882 01:25:29,520 --> 01:25:32,510 Но все, что он делает, это ввод. 1883 01:25:32,510 --> 01:25:34,320 Он преобразует строку в Int. 1884 01:25:34,320 --> 01:25:37,490 Таким образом, представляет ASCII для целого я. 1885 01:25:37,490 --> 01:25:40,310 Это просто преобразование ASCII значения в целое значения. 1886 01:25:40,310 --> 01:25:44,510 Так что помните ARGV, массив, который хранит все ваши команды выстраиваются arguments-- 1887 01:25:44,510 --> 01:25:46,300 он хранит их всех, как струны. 1888 01:25:46,300 --> 01:25:50,010 И поэтому, если вы хотите, чтобы иметь возможность у одного из них стали целое число, 1889 01:25:50,010 --> 01:25:52,750 Вы будете иметь использовать здесь это значение. 1890 01:25:52,750 --> 01:25:56,690 >> Модулю, как мы рассмотрели ранее в классе сегодня, 1891 01:25:56,690 --> 01:25:59,550 позволяет иметь Остальная часть, что вы есть. 1892 01:25:59,550 --> 01:26:03,620 Так что, если у нас есть очень, очень большие номера в Цезарь, 1893 01:26:03,620 --> 01:26:06,117 что, если у нас есть конец из строки Vigenere? 1894 01:26:06,117 --> 01:26:08,450 Как вы собираетесь быть в состоянии чтобы получить, что обернуть вокруг? 1895 01:26:08,450 --> 01:26:11,330 Если я ударил г и я хочу это, чтобы вернуться к, 1896 01:26:11,330 --> 01:26:13,650 как я собираюсь получить что, чтобы обернуть вокруг? 1897 01:26:13,650 --> 01:26:15,960 Возможно хотите использовать модулю где-то там. 1898 01:26:15,960 --> 01:26:19,190 >> Во-вторых, просматривать вокруг Ваша библиотека. ctype.h. 1899 01:26:19,190 --> 01:26:20,680 Это новая библиотека у нас есть. 1900 01:26:20,680 --> 01:26:25,270 Вы найдете много очень, очень полезно functions-- ISUPPER, ISLOWER, 1901 01:26:25,270 --> 01:26:27,681 ToUpper, ToLower, ISALPHA, и так далее. 1902 01:26:27,681 --> 01:26:30,680 Все функции, которые будут очень полезны когда вы пытаетесь выяснить,, 1903 01:26:30,680 --> 01:26:33,780 этот персонаж строчной буквой? 1904 01:26:33,780 --> 01:26:35,730 Как преобразовать это строка заглавной буквы? 1905 01:26:35,730 --> 01:26:38,146 Все эти вещи будут очень, очень полезно для вашего PSET. 1906 01:26:38,146 --> 01:26:42,720 1907 01:26:42,720 --> 01:26:45,500 ХОРОШО. 1908 01:26:45,500 --> 01:26:49,644 >> Часы сегодня вечером 8:00 до 11:00 в ТЭАЛ классе завтра 1909 01:26:49,644 --> 01:26:51,310 а также в среду и в четверг ночью. 1910 01:26:51,310 --> 01:26:53,280 Часы работы офиса в обыкновенные. 1911 01:26:53,280 --> 01:26:56,180 Настоятельно рекомендую вам, ребята все начать прямо сейчас, 1912 01:26:56,180 --> 01:27:00,490 потому что вы не хотите быть, что Ребенок, который в четверг вечером есть проблемы 1913 01:27:00,490 --> 01:27:03,870 представив свой PSET и как, я не знаю, что делать. 1914 01:27:03,870 --> 01:27:05,870 Я начал, я закончил, я представил. 1915 01:27:05,870 --> 01:27:09,737 Попробуйте дать себе некоторые возможности, потому что в всегда происходят проблемы кода. 1916 01:27:09,737 --> 01:27:11,570 Вы хотите, чтобы убедиться, что вы даете себе 1917 01:27:11,570 --> 01:27:14,810 много времени, чтобы быть в состоянии для завершения psets. 1918 01:27:14,810 --> 01:27:15,310 Круто. 1919 01:27:15,310 --> 01:27:16,720 Я повешу здесь. 1920 01:27:16,720 --> 01:27:18,226 >> АУДИТОРИЯ: Это онлайн уже? 1921 01:27:18,226 --> 01:27:20,850 ANDI Пэн: Я не знаю, если это уже в Интернете, но он будет. 1922 01:27:20,850 --> 01:27:23,500 Я повешу здесь, если кто- уже какие-либо вопросы. 1923 01:27:23,500 --> 01:27:25,390 Спасибо, что пришли. 1924 01:27:25,390 --> 01:27:27,105