>> Джейсон Hirschhorn: Добро пожаловать в CS50 разделе, все.
Меня зовут Джейсон Hirschhorn.
Я много ваш ТФ, но много людей, мы надеемся, присоединится к нам
онлайн, расширение студентов или студентов пытаясь заглянуть через раздел, если они
упустили свой раздел, который неделю или просто догнать, если они хотят
рассмотреть некоторые материалы.
>> Так, согласно программе, которая все из вас читали, правильно?
Я вижу много головы кивает.
Разделы предоставит вам возможности для изучения курса
материал в более интимной обстановке, , а также погрузиться в
практические занятия.
>> Так что это в основном то, что мы собираюсь делать каждую неделю.
Мы собираемся пройти через то, что имеем определены как наиболее важные
Темы, затронутые в лекции, а те, также, вероятно, наиболее полезным и
Скорее всего, чтобы придумать на домашних заданий и в викторинах, и в Вашем кодировании
жизнь вне CS50.
Итак, мы собираемся идти в эти темы, обсудить их, идите за ними,
ответить на любые вопросы вы, ребята, и Затем мы собираемся делать много
практике проблемы в кодировании.
>> Вы принесли все ноутбуки, , который является фантастическим.
Это класс информатики.
Тем не менее, много упражнений, которые мы делаем, вам не нужно будет для ваших ноутбуков.
Вы можете сделать их на листе бумаги.
Вот как вы собираетесь делать их на викторины.
И в самом деле, это отличный способ знаю, что вы, как это сделать
что-то, если у вас нет Заезд 50 до полагаются на Или Сделать полагаться на, говоря
Вы были допущены ошибки.
>> Таким образом, вы всегда можете кода на Прибор или run.cs50.net, которая является
другой инструмент, который позволяет кодировать онлайн, но я также рекомендовал бы, если
вы еще не пробовали его, используя лист бумаги и пытаются эти практики
задачи на листе бумаги.
Потому что опять же, это в конечном счете то, что вы собираетесь быть
попросили сделать на викторины.
>> Итак, давайте начнем с нашей повестки дня на сегодня.
Мы собираемся пойти на некоторые нормы наш раздел, то мы собираемся нырять
в массивы, функции и командной строки аргументы, что и вы, ребята,
покрыли на прошлой неделе в лекционных а затем понедельник, и что Вы расскажу
более завтрашнего дня.
И, наконец, мы собираемся говорить о pset2.
Если бы я мог получить поднятием рук, если вы не смотрел на проблему установить два
спецификации.
Мы скажем каждому.
Фантастика.
>> Мы будем говорить о проблеме множеств в бит, но если вы прочитали Поставленная задача
спецификации, это Все, что вам нужно делать.
Если вы читали, что, прежде чем прийти к класс и раздел во вторник, вы
быть отличной позиции.
Мы можем пройти через проблемы множество, что мы и собираемся
сделать в конце.
Мы собираемся пройти через Логика, убедитесь,
все на той же странице.
>> Я хочу, чтобы иметь возможность оставить вторник чувствуя себя очень комфортно с тем, что вы
нужно сделать для проблемной набора на этой неделе, и если вы этого не сделаете, я будем счастливо
остаться после и работать с вами.
Но одна вещь, которую вы должны сделать, но я думаю, что было бы действительно умный,
только, чтобы прочитать Поставленная задача спецификации класса во вторник,
которой она звучит как Многие из вас, ребята сделали.
>> Я начну с повестки дня каждого класса так что вы знаете, куда мы идем.
Это также полезно для людей, наблюдающих Интернет, потому что каждый раздел
имеет цветовую маркировку, так что если вы хотите приехать назад и просто смотреть 10 минут, а
чем весь 90-минутный разделе можете просто пойти с цветной маркировкой разделе
и смотреть на эту часть.
Так я пытался разбить их в хорошие модули, которые позволят вам -
если вы хотите возвращаться и пересматривать, или других студентов, которые просто
смотреть разделе можно просмотреть -
найти конкретные вещи они хочу обратить внимание на
и узнать больше о.
Сладкий.
>> Норм.
Я лидер ФОП на территории кампуса.
Я не знаю, если кто-нибудь сделал ФОП.
Кто-нибудь сделать ФОП?
Один человек сделал ФОП.
Два человека сделали ФОП.
Потрясающе.
Так ФОП является первым годом Открытый Ориентация программы.
Возьмем первокурсников в лес и сделать Самый волшебный опытом
их жизни, правильно?
Да.
Похоже на правду.
>> Так что я просто хотел начать наш самый первый раздел с обсуждения некоторых норм
для класса, и наши отношения потому что я думаю
они очень важны.
В первую очередь, как те из вас, кто мои разделе получили и
обсуждалось в который E-mail, я люблю это.
Это моя любимая часть года.
Я был так взволнован.
Я был здесь в течение нескольких часов сегодня.
Я не оставил это здание за исключением пойти поесть, потому что люблю CS50 разделе я
люблю преподавать, я люблю работать с вами, ребята.
>> Одна из моих главных приоритетов, если не моя Приоритетом номер один не только для
этого класса, но в том числе мои другие классов и Extracurriculars, это
поддержать вас, ребята, и помочь вам, ребята, и сделать все возможное, чтобы убедиться, что вы
ребята, замечательно, весело, продуктивно, привлекательным, захватывающим
опыт в этом классе.
Это то, что я твердо намерен.
Вот почему я люблю делать это.
Это моя вещь номер один, подсказать вам ребята.
Если у вас есть какие-либо вопросы о лекции, Поставленная задача, раздел,
жизни, даже если вы хотите говорить о жизни, пожалуйста, не стесняйтесь обратиться.
>> У вас есть мой номер сотового телефона, у вас есть моя электронная почта
адрес, у вас есть мой GChat.
Вы можете связаться со мной в любое или все всякий раз, когда те, но, вероятно, не получит
ответ всякий раз, когда.
Я пытаюсь вернуть в течение 24 часов.
Часто это будет в пределах 20 минут или 24 минут.
Я должен был сказать, что чтобы сделать его параллельно.
Но вы получите ответ довольно быстро.
>> Если вы мне текст за час до Проблема набора должно, я успокоит вас
вниз и делать упражнения по глубокому дыханию с вами, но если вы еще не начали,
Вы, вероятно, не собирается до конца, и Я не могу помочь вам там
хотя я буду стараться изо всех.
Поэтому я сделаю все, Я могу поддержать вас.
Пожалуйста, не стесняйтесь обратиться ли это в разделе снова, в офисе Часы
Если вы видите меня, или даже на улице.
Я счастлив настроить время, для удовлетворения и работать через проблемы
с или перейти материала.
Так что это номер один, поддержка.
Я сделаю все от меня может поддержать вас.
>> Номер два, встреча в середине.
Столько, сколько я хотел бы быть, я не всемогущ или всемогущая или
всезнающий, так что я не знаю всех времени, если, что я делаю становится
в поперечнике, если так, как я учу тема поможет вам узнать это, или если вы
путают по теме, но не поднимите руку или спросить меня
или напишите мне письмо.
Или даже если вы, опять же, путаются о чем-то на проблемы множество.
Если вы не дотянуться до меня, Я не могу знать этого наверняка.
Я буду делать все возможное, чтобы проверить в на вы, ребята, убедитесь, что все
идет хорошо, попробуем научить вещи таким образом, что будет способствовать большей части
ваши стили обучения, но если есть что я могу сделать, дайте мне знать.
>> В том же ключе, если вы хотите некоторую помощь с проблемой набора, я больше
чем рады помочь Вам с проблемой набора.
Мы собираемся делать много что ко второму
половина этого раздела.
Но если вы не читали домашних заданий назад и не смотрел ходьбы
до конца и не смотрел шорты и ждет меня, чтобы научить вас
все, что было видеозапись онлайн или что вы можете найти на CS50
исследование, это не совсем справедливо мне или на другие узлы.
>> Поэтому, пожалуйста, я более чем счастлив помочь вас, но вы, ребята, добрался, чтобы встретить меня в
середине.
У нас есть тонны ресурсов для Вам доступно на CS50.
Я упомянул о некоторых из них.
Пожалуйста, воспользоваться ими.
Если вы смущены, я более чем счастлив чтобы помочь вам объяснить их
другому, но это не справедливо, если студенты появляются в офисе часов,
еще не начали ничего, и это Четверг ночью, и они ожидают
TF ходить их через каждый вещь для проблемы с настройкой из-за
в полдень на следующий день.
Смысл?
Опять же, пожалуйста, встретиться с нами в середине.
>> И, наконец, большие надежды.
Я собираюсь быть классификации все, кто В моей секции, или присвоения баллов
Проблема множеств.
Вы не вернулся проблемы установить ноль или один еще.
К сожалению об этом.
Нам потребовалось некоторое время, чтобы, наконец, урегулировать секции и сейчас
мы можем начать с классификации.
>> Я получу их обратно к вам как можно скорее.
Таковы некоторые из моих advisees там.
Я получу их обратно к вам как можно скорее.
И проблема установить два, мы будем на планировать и мы начнем получать их
Вам довольно быстро после Вы включаете их сюда
>> Когда вы получите вашу проблему в стороне, вы получит баллы, как вы знаете из
чтение учебной программы - правильность, Дизайн, объем и стиль баллы.
Вы также получите комментарии.
Комментарии являются более важными, чем оценки.
Я думаю, можно с уверенностью сказать, что.
>> Результаты просто номер от 4:59.
Трудно читать на тех.
Трудно улучшить от тех.
Но комментарии укажу конкретные вещи, которые вы сделали хорошо или области
Вы можете изменить к лучшему и дать вам несколько идеи на будущее или альтернативной
способы ведения дел.
>> Поэтому, пожалуйста, пожалуйста, пожалуйста, прочитайте через комментарии.
Я положил много времени в эти замечания.
Пожалуйста, ознакомьтесь с ними и не только прокрутки вниз к нижней части
PDF, посмотрите на ваш счет, или выходить в интернет и найти свой счет, а затем игнорировать
комментарии.
Это не так, как вы изменится к лучшему.
Это не как вы собираетесь увеличить Ваши результаты в конечном счете, всего
глядя на баллы.
Пожалуйста, посмотрите на эти замечания.
>> И по линии высоких ожиданий, опять же, как я сказал, вы
может быть забит с первой по пятую.
Двойки, тройки, и четверки являются Подавляющее большинство баллов
Вы будете получать.
Одни пятерки и оба действительно редко.
Там всегда вещи мы можем сделать лучше.
Всякий раз, когда я код программы, есть Я всегда что-то
мог бы сделать лучше.
>> Поэтому вместо того, говорят, что вы получите пять все время на все и сделал
все идеально, я не думаю, что любой из нас действительно считаю, что мы - или
Будем надеяться, что мы не будем делать все, совершенствовать все время.
Так что не волнуйтесь, если вы не получал пять.
Пятый не отображение на, четыре не отображение на B, делает три
Не отображение на C. Это не как работать баллов.
>> Как Давид много раз говорил, по крайней семестр закончить все свои очки и
входные от меня, вашего TF, собрались вместе и определить итоговую оценку для вас.
Но опять же, это не пять, , Четыре, B, и так далее.
Так что я собираюсь иметь высокие ожидания для вас, ребята.
Я собираюсь ожидать хороших проблемы садится, и я собираюсь дать
Вам обратную связь как таковую.
И это не будет означать, что ты собирается получить хуже классе.
Вы оцениваются с точки зрения за продвижением от недели
нулю до конца курса.
>> И, наконец, с точки зрения высокого ожидания в классе, я люблю, когда
люди участвуют.
Я понимаю, некоторые люди чувствуют себя более или менее комфортно участвуют.
Другие люди участвуют не поднять руку и
все время говорю.
Но мы в этом классе будет делать много мелких проблем, много
мини вопросы, а затем некоторые из большие проблемы с кодированием.
Так определенно работают эти упражнения из когда мы делаем их на вашем компьютере или на
лист бумаги.
>> Но я также дадим вам некоторое время, прежде Кто-нибудь должен ответить на некоторые
из вопросов, я прошу.
Итак, потому что я дам вам некоторое время, чтобы думаю об этом, потому что мы собираемся
сделать что-то в партнеры иногда, Я буду ожидать всех
заниматься несколько.
И за неимением лучшего термина, есть , вероятно, будет холодных звонков, которые
то, где у каждого будет шанс думать над ответом, а затем
Я призываю вас, а затем Вы скажете ответ.
>> Не волнуйтесь или бояться об этом.
Я делал это в прошлом, и мы обнаружили, что это гораздо более успешным,
Также читал исследования в области образования на нее, чтобы определить, действительно ли это было
хорошая тактика.
Это очень полезно, особенно если вы дать студентам время подумать о
ответы и не делают их только что и сказать с места в карьер.
Но если вы не чувствуете себя комфортно ответив, я также довольно хорошо
чувствуя, что, и мы не собираемся поставить вас на место, особенно на
камеру, хотя ни одна из Вы находитесь на камеру прямо сейчас.
>> Таким образом, те нормы у меня есть.
И еще один момент по линии встречи в середине.
Я собираюсь дать вам парни много откликов.
Пожалуйста, дайте мне обратную связь, а также.
Там в веб-сайт, sayat.me/cs50.
Так что это честную обратную связь.
Если вы хотите, чтобы дать ему на секциях, Я получаю электронную почту всякий раз, когда это происходит.
Мы возьмем перерыв в немного, так что я просматривать результат воздействия после этого.
Если вы всегда имеете любую обратную связь, пожалуйста, дайте мне его там.
>> Если вы дадите мне обратную связь на Q, это замечательно, но это руководство
что вы делаете в конце.
Но это будет в конце семестра так Я не буду в состоянии принять ни одного из этого
обратную связь и превратить его в обучении вы, ребята, лучше.
Поэтому, пожалуйста, если у вас есть обратную связь, дать его мне.
Я люблю обратной связи.
Назад к ФОП, мы получаем обратную связь все время.
>> Вы можете дать мне плюсы, хорошие вещи, дельт, что я могу улучшить.
Вы можете комментировать мои наряды.
Это не будет, как полезные, но вы можете оставить комментарии к любой и
все.
Пожалуйста, пожалуйста, дайте мне обратную связь.
Я ценю это много, и это очень много значит для меня.
>> Еще одна норма, весело.
Мы собираемся, чтобы иметь много веселья.
Надеюсь, в этот курс, вы будете есть много веселья.
Придется конфеты на разделе.
Придется музыки.
Мы будем, мы надеемся, узнавая друг Несколько другую, так что я хочу
это будет весело, привлечение опыта.
>> Я знаю, некоторые из вас заснул в лекции у вас было сегодня утром,
так что надеюсь, что не будет иметь место сейчас.
И если это имеет место сейчас, просто не храпят потому что это может
быть пойман на камеру.
Сладкий.
Любые вопросы, комментарии или замечания перед тем, как двигаться дальше о все, что мы
говорили?
Великий.
>> Таким образом, мы собираемся пойти в массивы, в первую очередь.
Это, как вы сделать массив.
Мы видели это прежде.
У вас есть тип данных, у вас есть имя, а затем у вас есть размеры.
Прямо здесь, я создаю два массива.
Первый из них представляет собой массив символов, и она имеет 26 мест.
Вторая представляет собой массив баллов, и он имеет три
места для трех целых чисел.
Да?
>> СТУДЕНТ: Являются ли все эти слайды доступно где-нибудь для нас?
>> Джейсон Hirschhorn: Хороший вопрос.
Вопрос в том, все ли Эти слайды доступны?
Да.
Все эти слайды будут доступны, и в будущем, я буду их по электронной почте
Вы перед разделом.
Но сегодня, потому что это первый неделе, у нас был поздний старт.
Так обычно, вы получите эти слайды, но они будут доступны в Интернете и
Я буду отправить их к вам сразу после класса.
Любые другие вопросы?
>> Итак, еще раз, массивы коробки, из-за отсутствия лучшего слова, которые держат несколько
Элементы одного типа данных, и они рядом друг с другом в памяти.
И вот опять же, это, как вы можете Включены два типа массивов.
>> Таким образом, после вы сделали свой массив с что первая строка - Олимпийские баллы, кронштейн
три, закрывающую скобку - вы хотите инициализировать его.
Вы хотите, чтобы поставить некоторые значения в там.
И это, как вы выразились некоторые значения в там, просто выбор и Indice
написание число.
Давайте нарисуем это на доске.
Все ли могут посмотреть?
Это все видят.
Сладкий.
>> Так что это будет мой массиве результаты.
Как вы можете видеть, это размер три.
Есть три коробки в там.
Каждая из них может подходит то, что тип тип данных?
>> СТУДЕНТ: Integer.
>> Джейсон Hirschhorn: целое в этом.
Мы написали десятичного баллов, и первое слово это тип данных, который собирается
Заходим в коробки в этом массиве.
Так что я могу соответствовать трем.
Почему я должен нуля до там на борту?
Почему сказано счетом ноль равно 1?
Напомните мне ваше имя.
>> СТУДЕНТ: Курт.
>> Джейсон Hirschhorn: Курт.
>> СТУДЕНТ: Да.
>> Джейсон Hirschhorn: Почему?
>> СТУДЕНТ: Потому что первый индекс нулю, мы начинаем считать с нуля.
>> Джейсон Hirschhorn: Итак, мы начинаем отсчет с нуля.
Это абсолютно верно.
Это часть запутанной и отключится вас, особенно если вы
пытается перебрать массивы, который мы сделаем в немного.
Мы начинаем отсчет с нуля.
Так что, если я хочу обратиться к первому коробки, это не одно окно.
К сожалению, это окно нулю.
Второе окно один, и в этом случае, третий является коробке два.
>> Как насчет поле три?
Где поле три?
Или, если я хочу сделать оценки, кронштейн три, закрывающей скобки, что это такое?
Так вы сказали, что этот символ.
Любые другие мысли?
Что такое очковая три кронштейна?
>> СТУДЕНТ: Это на самом деле не существуют, потому что Вы только определяется как оценки,
Кронштейн три.
>> Джейсон Hirschhorn: Так вы говорите, на самом деле не существует.
В некоторых случаях, когда мы имеем дело с строк, вообще мы поместим нулевой
символ в конце.
Мы вернемся к этому в секунду.
Однако в этом случае существует Третьего не дано коробки здесь.
Так что последнее поле в любом массиве является размер минус 1.
Так что, если у нас есть массив размером N, первое поле на нуле, последний из которых является
в N минус 1.
И в этом случае не существует.
Существует что-то здесь, в памяти, но это не наше.
Мы не являетесь его владельцем.
Мы не просили его.
Так что, если мы пытаемся получить к нему доступ, который мы сделать в немного, мы, вероятно, будет
попасть в беду.
>> В этом случае, я инициализации моего массив с тремя переменными.
Мы положить одну в коробке нулю, два в коробке один, и три в коробке два.
Кто-нибудь есть какие-либо вопросы об инициализации массива?
>> И мы пошли по этому только сейчас.
Результаты, кронштейн три, закрывающую скобку, что не существует.
Мы нулю индексироваться в области компьютерных наук, так мы начинаем считать с нуля.
Последний коробки доступны для нас, это третья коробка, но это называется коробке
номер два.
>> Там немного, это альтернатива способ инициализации массивов.
Таким образом, вместо создания массива на один линии, заполняя первую коробку, то
второе поле, то третья коробка, Вы можете сделать это все в одной строке.
Таким образом, в этой линии, как массивы.
Это создает точно такой же массив то, что мы создали прямо здесь, но это
просто делает это в одной строке.
>> Теперь мы создали массив.
Обычно, как только вы создаете массив, вы хочу сделать что-то с ним, будь то
что Пополнить ее или получить вещи из него и распечатать их на экране.
В этом случае, мы собираемся через нашу оценки массива, который мы инициализирована
Первая линия здесь, в сером.
А потом на второй линии, мы начинаем итерации по массиву.
Кто-нибудь есть какие-либо вопросы о структура для цикла?
>> Так что это петля для.
У нас есть начальное условие, а затем наше окончательное условие, и тогда мы
итерации, я, каждый цикл.
И в фигурных скобках в этом для петли, что произойдет, если я должен был работать
эта программа?
Кто-нибудь может сказать мне, что мы получим?
[? Мату? ?]
>> MATU: Печать всех баллов на каждой строке.
Было бы печатать каждый счет на отдельной строке.
>> Джейсон Hirschhorn: Что именно бы это напечатать?
>> СТУДЕНТ: Было бы напечатать один, потом два, потом три.
>> Джейсон Hirschhorn: Совершенно верно.
Было бы напечатать один, потом два, затем три, каждый на отдельной строке, так как
мы собираемся через массив, и вы будете видеть, что второе, Е
заявления, оценки я.
Так что на первый тур через наш для петлю, я равна нулю, что означает, что мы
получение значения в нуле Оценка -
которая, если мы вернемся к наша диаграмма, одна -
и заполнение -
О, это говорит в.
Это должно быть% D.
Я поможет это исправить немного, когда Я руку, которая к вам, ребята.
Но мы представляем целое так что должен быть% D прямо здесь, а не C%.
Что такое% для C?
>> СТУДЕНТ: Характер.
>> Джейсон Hirschhorn: Характер, именно так.
Что такое другой?
Если вы не хотите сделать для% D целое, что еще вы можете сделать?
>> СТУДЕНТ: я.
>> Джейсон Hirschhorn:% I, точно.
Так что любые вопросы о переборе через массив?
Что случится, если мы это делаем?
Вместо того чтобы делать я меньше три, мы я меньше
чем или равно трем.
Что происходит, когда мы запускаем этот код?
Да, Энни?
>> СТУДЕНТ: Они собираются, чтобы распечатать странные вещи на четвертую строчку.
>> Джейсон Hirschhorn: Так вы сказали, это собирается распечатать странные вещи на
Четвертая строка?
Кто-нибудь есть ответ на свой вопрос?
Так что вполне вероятно, что, когда мы добираемся до -
так по четвертому раунду через наше для петли, как вы думали, Энни,
это будет три оценки кронштейн, который Мы уже поняли, не
существует, и мы собираемся, чтобы попытаться и доступ к этому, распечатать его
из, использовать его каким-либо образом.
Так компьютер, вероятно, злиться на нас.
Вы совершенно правы.
>> Это могло бы выйти из программы в целом.
Это может распечатать что-то действительно странно.
Вы не можете сказать наверняка.
Вполне вероятно, это скорее всего будет зол на Вам и просто бросить сразу.
>> Но это общая ошибка, которую вы должны будете где вы находитесь в непосредственной близости от одной на
конца, и это ошибка, которая будет чума вас на протяжении всего кодирования.
Один способ, которым я хотел бы сделать, это просто на доски, пройти каждой итерации
из петли на руке или на бумаге, чтобы увидеть то, что происходит, и тогда вы
обычно понимают, Ой, подождите, я не должен пошли в меньшую или
равно трем.
Я должен был остановиться на двух, которая является Что произойдет, если ваше состояние меньше
чем три.
Есть вопросы до сих пор?
Сладкий.
>> Так что у вас всех есть компьютеры открытым.
Мы собираемся дать вам 2:58 минут, чтобы написать программу, которая
создает массив целыми одного через пять, а затем распечатывает каждый
целое с новой строки.
И если у вас есть какие-либо вопросы, поднимите руку.
Я счастлив прибыть.
Как я сказал, давайте три минут, чтобы написать это.
Все ли хорошо, если я иду в новое окно и закрыть это?
>> Мне жаль, если у вас не было шанса до конца, но мы собираемся сделать это
вместе прямо сейчас.
Так на экране, я # включить cs50.h, # Включить stdio.h.
Может кто-нибудь сказать мне, что этими двумя строками делать?
Майкл?
>> СТУДЕНТ: Они включают в себя библиотеки CS50, что сделано и что Стив
сохранены для вас использовать, чтобы сделать вашу жизнь проще.
>> Джейсон Hirschhorn: Таким образом, вы сказали, что они включают в себя библиотеки, которая CS50
сделано, cs50.h, и тот, который просто стандарт, поставляется с
Пакет C, stdio.h.
Что вы имеете в виду включать библиотек, правда?
Можете ли вы быть немного более конкретно?
>> СТУДЕНТ: он делает так, что вы можете использовать определенные кодовые слова, чтобы иметь
функционировать произойти без того, чтобы идти и сделать функцию с себя.
>> Джейсон Hirschhorn: Можете ли вы дать мне пример?
>> СТУДЕНТ: Как и Е тот, который вы можете использовать.
>> Джейсон Hirschhorn: Printf.
Так вы сказали, Е является одним из тех функций, где вместо того, чтобы
написать Е на свой собственный, Е является включены фактически в stdio.h, так что вы
можете просто использовать его и предположим, что он будет работать.
В stdio.h, если вы открыли этот файл, бы включить как Е
работ, весь код для Е?
Почему вы качаете головой?
>> СТУДЕНТ: потому что заголовок файла просто включающее в себя функции декларации.
>> Джейсон Hirschhorn: Совершенно верно.
Файл заголовка включает в себя только Объявление функции.
Так в основном, при компиляции этого, Сделать ударил графа, который мы сделаем в
Во-вторых, компилятор знает, что, если Вы используете Е, Е существует.
Это собирается быть определен где-то.
Это не проблема для вас использовать.
И затем позже, он будет включать в себя нулей и единиц, что на самом деле содержат
Е в реализации и объединить их с вашим кодом.
Как вы убедитесь, что она включает в себя нулей и единиц, скажем, взять веревку?
>> СТУДЕНТ: Получить строку в cs50.h.
>> Джейсон Hirschhorn: Верно.
Так говорит, что взять веревку существует, Объявление функции.
Но тогда единиц и нулей, двоичный файла, который на самом деле включает в себя
осуществление взять веревку?
Как вы убедитесь, что идет с вашей программой?
>> СТУДЕНТ: Передайте в компоновщик Аргумент командной строки.
>> Джейсон Hirschhorn: Pass компоновщик в аргументе командной строки.
Как вы это сделали?
>> СТУДЕНТ: Это-L линии в лязгом
>> Джейсон Hirschhorn: Совершенно верно.
Вы говорите, что L-CS50, верно?
Это включает в себя единицы и нули.
>> СТУДЕНТ: Но убедитесь, делает что для вас, не так ли?
>> Джейсон Hirschhorn: Совершенно верно.
Сделать сделает это за вас, но в конце концов, Вы не будете есть сделать, или
Вы должны будете сделать сделать по своему усмотрению, так что это
Хорошая вещь, чтобы помнить.
Если вы собираетесь использовать одну из этих других библиотек, не только у вас есть
написать # включить и Затем библиотеку.
Кроме того, необходимо связать его дюйма
И эти две вещи разные. CS50-L отличается
# чем включать cs50.h.
>> Тогда у нас есть тап_п пустоту фигурные скобки, и теперь мы собираемся код
внутри основного.
Первая линия у меня здесь есть комментарий , который говорит, создать массив
с целыми с первого по пятый.
Что такое хорошее слово, чтобы описать то, что я есть сейчас на экране, просто
комментарии внутри основного?
Как мы называем это?
>> СТУДЕНТ: псевдокод.
>> Джейсон Hirschhorn: псевдокод.
Спасибо, Джеффри.
Совершенно верно.
Псевдокоде.
Ребята, вы видели псевдокод раньше?
Поднимите руку, если вы использовали псевдокод перед проблемой установить один.
Около половины из вас.
>> Я очень рекомендовал бы использование псевдокод, чтобы сломать проблемы в
меньшие, более легко откусить куски.
Кроме того, если вы делаете псевдокод, вы ваши замечания уже в значительной степени
встроенная, так что вам не придется вернуться назад и попытаться выяснить,
то, что вы делали.
Так может кто-нибудь дать мне эту первую линию Для создания массива целых чисел с одной
через пять?
Вы?
>> СТУДЕНТ: Int, а затем вы можете позвонить независимо от количества, а затем квадратные
Кронштейн пять.
>> Джейсон Hirschhorn: Так десятичного числа, квадратная скобка пять.
>> СТУДЕНТ: равных и Затем фигурные скобки.
>> Джейсон Hirschhorn: равно, фигурные скобки.
>> СТУДЕНТ: Раз, два, три, четыре.
>> Джейсон Hirschhorn: Раз, два, три, четыре, пять.
>> СТУДЕНТ: А потом фигурные скобки а затем с запятой.
>> Джейсон Hirschhorn: и вьющиеся скобки и точка с запятой.
Отлично.
Распечатайте каждого десятичного с новой строки.
Может ли кто-нибудь дать еще мне, что код, пожалуйста?
[? Мату? ?]
Идем дальше.
>> СТУДЕНТ: Для (
>> Джейсон Hirschhorn: Для (
>> СТУДЕНТ: Int I = 0
>> Джейсон Hirschhorn: Int I = 0
>> СТУДЕНТ: точку с запятой я меньше пяти.
>> Джейсон Hirschhorn: точка с запятой, я меньше 5.
>> СТУДЕНТ: точку с запятой, я + +.
>> Джейсон Hirschhorn: точку с запятой, я + +.
>> СТУДЕНТ: Закрытое скобках, Затем открывающей фигурной скобки.
>> Джейсон Hirschhorn: Закрытое скобках и две скобки.
Внутри брекеты?
>> СТУДЕНТ: И тогда Е "% D / N"
>> Джейсон Hirschhorn: Извините, держись.
Printf "% D / N, закрытая цитаты.
>> СТУДЕНТ: А потом закрытая цитаты, запятой, граф, я кронштейна.
>> Джейсон Hirschhorn: запятая, Количество, кронштейн я.
>> СТУДЕНТ: Извините, я номера кронштейна.
>> Джейсон Hirschhorn: Числа, кронштейн я.
>> СТУДЕНТ: Извините.
, А затем закрывается скобках, запятой.
>> Джейсон Hirschhorn: Закрыто скобки, точка с запятой.
Я иду, чтобы спасти это.
Мы собираемся сделать счет.
И как мне запустить рассчитывать?
>> СТУДЕНТ: Обратная косая черта.
>> СТУДЕНТ: Dot косую черту -
>> Джейсон Hirschhorn:. / Отсчет, именно так.
Спасибо. . / Отсчет.
Один, два, три, четыре, на пять новых линий.
Похоже, это сработало.
Да, Ной?
>> СТУДЕНТ: Вы также можете сделать меньше или равным четырем, как я меньше
или равно четырем?
Есть ли какие-либо преимущества, чтобы делать меньше чем пять лет, или просто другой способ
записав его?
>> Джейсон Hirschhorn: Так что вопрос вы мог бы сделать я меньше или
равной четырем вместо Я меньше пяти.
Бы это работало то же самое?
>> СТУДЕНТ: он должен.
>> Джейсон Hirschhorn: Да.
Это полностью бы работать так же.
Стилистически, это как правило, менее, и вы увидите, во втором, когда
мы строками, вы можете использовать что-то называется StrLen, которые вы видели
раньше, чтобы получить длину струны.
И вы не можете сделать меньше или равна StrLen.
Вы могли бы сделать меньше или равным StrLen минус один.
Так что это просто приятнее сделать меньше, чем StrLen.
Да?
>> СТУДЕНТ: И в реальной викторины, сделать мы должны представить свои замечания по нашей
код, а?
>> Джейсон Hirschhorn: вопрос был в викторинах, вы
должны предоставить комментарии?
Таким образом, мы будем говорить больше о викторинах, когда они приходят, но в целом, хорошее
правило: всякий раз, когда вы написание кода, представить свои замечания.
Если вы получите код неправильно, но комментарий, для этого, вы можете получить некоторые
кредитования, как от меня, если я был классификации Вы на проблему набора или на викторину.
Так что комментарии всегда хорошо, чтобы обеспечить.
Сладкий.
Граф.
Отличная работа.
Давайте двигаться дальше.
>> Strings.
Strings.
Мы видели это раньше в лекции.
Это взорвал мой взгляд, когда я первый узнал об этом.
Это, вероятно, не взрывал ничьим виду, но это нормально.
>> Строки массивы символов, а они заканчиваются, как Вы сказали ранее,
нулевой символ, который это / символ 0.
Если мы собираемся привлечь в строку на доска, мы будем рисовать его сюда.
Итак, как долго это строки?
Извините.
Как долго длится эта строка?
>> СТУДЕНТ: [неразборчиво].
>> Джейсон Hirschhorn: четыре?
Почему четыре?
>> СТУДЕНТ: Потому что на пятом месте является для нулевого символа.
>> Джейсон Hirschhorn: Так пятое место является для нулевого символа.
Так что, если бы я должен был работать на StrLen этом, что это даст мне четыре.
Правильно.
И массив, хотя, если бы я был инициализировать этот массив, сколько пробелов
я должен был бы попросить?
>> СТУДЕНТ: пять.
>> Джейсон Hirschhorn: пять.
Я должен был бы попросить пять, но не могу только поставить четыре символа здесь
потому что мне нужно поставить, что нулевой терминатор на конце.
Итак, мы собираемся писать в "Ohai» и поставить в нулевое окончание в конце.
Мы скажем, что эта строка с равным этому.
Что такое кронштейн с нуля?
с кронштейном нулю, Энни?
>> СТУДЕНТ: О.
>> Джейсон Hirschhorn: О, точно. Кронштейн с одним?
с кронштейном пять?
>> СТУДЕНТ: Не существует.
>> Джейсон Hirschhorn: Не существует.
Совершенно верно.
Круто.
Любые вопросы о понимании Строки как массивы символов?
Хорошо, тогда.
Еще одна программа для вас, ребята.
Напишите программу, которая запрашивает у пользователя для струнного Затем печатает каждый
характера на новую строку.
Итак, давайте три минуты, чтобы написать эту программу, и тогда мы будем его код
в группе.
>> Извините.
Вы должны видеть это?
>> СТУДЕНТ: Нет
>> Джейсон Hirschhorn: OK.
Давайте еще одна минута, чтобы закодировать это, или по крайней мере начать работу на нем.
>> Так что вы можете продолжать работать, но я собираюсь начать ходить через него.
Так, как раньше, у меня на экране # Включить cs50.h, # Включить stdio.h.
Int основных недействительными.
В фигурных скобках основного автора, у меня есть два комментария, псевдокод.
Одним из них является попросить строку от пользователя.
Второй распечатывать каждый характера на новую строку.
Так Анна, вы можете дать мне спросить для строки от пользователя?
>> СТУДЕНТ: Printf.
>> Джейсон Hirschhorn: Printf?
>> СТУДЕНТ: Да.
(
>> Джейсон Hirschhorn: (
>> Студент: "дайте мне строки.
>> Джейсон Hirschhorn: "дать Мне ул - ой -
строку.
>> СТУДЕНТ: / п ") точку с запятой.
>> Джейсон Hirschhorn: Конец строки, закрытой скобки, точка с запятой.
>> СТУДЕНТ: Да.
А потом следующую строку, строка S = получить строку.
>> Джейсон Hirschhorn: String S = получить строку.
>> СТУДЕНТ: Да.
И тогда ()
>> Джейсон Hirschhorn: ()
>> СТУДЕНТ: точку с запятой.
>> Джейсон Hirschhorn: точку с запятой.
Фантастика.
Так что я иду, чтобы получить строку и Я собираюсь сохранить его в чем?
Какая переменная с именем что вы создали?
>> СТУДЕНТ: String с.
>> Джейсон Hirschhorn: переменная называется с.
Это тип строка.
Именно так.
Следующая вещь, которую мы хотим это распечатать каждый символ с новой строки.
Кто может дать мне этот код?
[Неразборчиво]?
Можете ли вы дать мне его?
>> СТУДЕНТ: Конечно.
>> Джейсон Hirschhorn: Давайте сделаем это.
А жаль.
Я не хотел бы повторить то, что вы говорите, потому что вы получить это право, но я
придется повторить его так, что, когда они транскрибировать это, они могут получить все
Текст на транскрипций.
Таким образом, вы можете просто продолжать говорить.
К сожалению, у меня есть сказать, что это над вами.
Мне очень жаль, но -
>> СТУДЕНТ: Это хорошо.
Для INT I = 0
>> Джейсон Hirschhorn: Для INT I = 0
>> СТУДЕНТ: Я меньше -
>> Джейсон Hirschhorn: точку с запятой.
>> СТУДЕНТ: До этого мы можем положить переменную так что вы получите десятичного длина имени?
>> Джейсон Hirschhorn: О, вы не хочу поставить точку с запятой?
ОК.
Так что же вы будете делать после нуля?
>> СТУДЕНТ: Я хочу, чтобы длина строки с и
Установлено, что в переменной?
>> Джейсон Hirschhorn: Хорошо, так как я могу это сделать?
>> Слушатель: То есть вы делаете десятичного длина =
>> Джейсон Hirschhorn: длина = Int
>> Студент: S-T-R-L-E-N.
>> ДЖЕЙСОН Hirschhorn: S-T-R-L-E-N -
>> СТУДЕНТ: Из с.
Скобки.
>> ДЖЕЙСОН Hirschhorn: (а).
>> СТУДЕНТ: И тогда я думаю, что нужно поставить точку с запятой между двумя целыми.
>> Джейсон Hirschhorn: Точка с запятой после нуля?
>> СТУДЕНТ: Да.
Затем поставить точку с запятой после этого, и вы говорите, я меньше длины.
я меньше, чем длина, которую является переменной.
>> СТУДЕНТ: А потом запятой.
>> Джейсон Hirschhorn: точку с запятой.
>> СТУДЕНТ: Я + +.
>> Джейсон Hirschhorn: Я + +.
Там в нашем цикле.
Хорошо, внутри цикла.
>> СТУДЕНТ: И потом Е.
>> Джейсон Hirschhorn: Printf.
>> СТУДЕНТ: скобки.
>> Джейсон Hirschhorn: скобки, кавычки.
>> СТУДЕНТ: скобки, кавычки,% C / N.
>> Джейсон Hirschhorn:% С, ОК.
>> СТУДЕНТ: / N.
>> Джейсон Hirschhorn: / N.
>> СТУДЕНТ: Закрытое кавычки.
>> Джейсон Hirschhorn: Закрытое кавычки.
>> СТУДЕНТ: запятую.
>> Джейсон Hirschhorn: запятую.
>> СТУДЕНТ: С.
>> Джейсон Hirschhorn: С.
>> СТУДЕНТ: Кронштейн я.
>> Джейсон Hirschhorn: Кронштейн я.
>> СТУДЕНТ: А потом закрыты скобках.
>> Джейсон Hirschhorn: Закрытое скобках.
>> СТУДЕНТ: А потом запятой.
>> Джейсон Hirschhorn: точку с запятой.
Фантастика.
Так давайте сохраним это.
Сделать заклинание.
О мальчик.
У меня есть пара ошибок.
Первая ошибка в строке 11, он говорит, Ожидается выражение, и это дает
мне ошибку, что второй Интеллект, есть ошибки.
Там некоторые ошибки вокруг там.
Кто-нибудь знает, что это ошибка?
Курт?
>> СТУДЕНТ: Я думаю, это должно быть запятая, а не точка с запятой.
>> Джейсон Hirschhorn: Хорошо, запятая вместо запятой.
Так что в том, что все, что нужно исправить?
>> СТУДЕНТ: Нет
>> Джейсон Hirschhorn: Что еще нам нужно исправить?
>> СТУДЕНТ: мы должны включить string.h.
>> Джейсон Hirschhorn: включит string.h.
Куда я должен включить это?
>> СТУДЕНТ: То же место вы в том числе другие вещи, правильно
После включает stdio.h.
>> Джейсон Hirschhorn: Давайте посмотрим, если это работает первых, потому что в целом, мне нравится
изменить что-то одно, а затем запустите его, а затем увидеть ошибки, которые мы получаем.
Итак, мы собираемся, чтобы очистить терминал с контролем N, давайте сделаем сделать заклинание.
Таким образом, другая ошибка в строке 11.
Ожидаемые запятой.
И я все еще получаю Ошибки на этой линии.
Так что он не дал мне ошибку говоря, что это не понимает, что StrLen есть,
но это дает мне ошибки на этом линии, так что еще не так?
Марком?
Маркус.
>> СТУДЕНТ: У вас есть, чтобы удалить второй десятичного декларации?
>> Джейсон Hirschhorn: Удалить второй Int.
Давайте попробуем это.
Теперь ясно терминала.
Сделать заклинание.
Ошибка.
Неявном объявлении библиотеки Функция StrLen.
Так что теперь мы видим эту ошибку.
Что нам нужно, чтобы включить?
>> СТУДЕНТ: string.h.
>> Джейсон Hirschhorn: включит string.h, сделаем # включить string.h в верхней
части экрана.
Спасем, сделать заклинание.
Сейчас составлен.
Итак, еще раз, то, что мы должны помните линии 12 в нашем цикле, когда
мы устанавливаем его, INT I = 0, длина = StrLen (ов).
>> Это фантастическая стратегия.
Стиль этого велика, Дизайн это здорово.
Мы можем пойти в эти причины спустя, но таким образом вы достаточно позвонить по телефону
StrLen единожды, а каждый запуске через петлю.
Однако, вам нужно использовать запятую там и вам не нужно десятичного снова.
Если вы и те, объявив переменные вместе, вы
не нужно десятичного снова.
И потом, если вы собираетесь использовать StrLen, что является еще одной библиотеки
функция не включена в stdio.h или cs50.h, убедитесь,
что вы включаете string.h.
Курт?
>> Слушатель: То есть тогда, если вы не нужно сказать, какой тип длины, значит ли это
означает, что она должна быть Целочисленное?
Вы не могли бы иметь два разных типа там?
>> Джейсон Hirschhorn: Так что вы можете имеют два различных типов.
Длина Целочисленное здесь, однако.
Длина Целочисленное потому что это запятая , а затем то же самое.
>> Слушатель: То есть он предполагает, что это будет такой же, как и первый?
>> Джейсон Hirschhorn: Совершенно верно.
Мы не собираемся делать этого сейчас, но вы может включать в себя два переменных на
одной линии с использованием одного типа данных.
Так десятичного х, у создаст двух переменных.
Так десятичного х, у, если мы сделаем это, это дает Мне неиспользуемых переменных х и у, потому что
Мы ими не пользуетесь.
Так положить пустоту перед просто фантазии трюк, если вы не используете
что-то, чтобы использовать его.
Но, как видите, я создаю х и у на той же строке через запятую.
Это создает два целых числа прямо там.
Так да, вполне возможно создать две вещи, на той же линии
разделенных запятыми.
Давайте избавимся от тех, однако.
>> Таким образом, есть заклинание.
Спасибо ребятам за кодирование для нас.
Давайте сделаем это еще раз, запустите его.
Дайте мне строки.
[Неразборчиво], вы сделали большую его часть.
Что строки?
>> СТУДЕНТ: Здравствуйте.
>> Джейсон Hirschhorn: Здравствуйте.
H-E-L-L-O, каждый символ в одной строке.
Выглядит здорово.
Давайте запустим его снова.
Всегда собираюсь проверить для угловых случаев.
Что такое хороший случай углу, чтобы проверить?
>> СТУДЕНТ: число?
>> Джейсон Hirschhorn: число.
Так я положу в 1, и она выведет 1.
Он не просит, для писем, так кажется, что работа чисел.
Хороший случай углу, чтобы проверить.
Что еще одним хорошим углом случай, чтобы проверить?
>> СТУДЕНТ: пустая строка.
>> Джейсон Hirschhorn: Хм?
>> СТУДЕНТ: как пустая строка.
>> Джейсон Hirschhorn: пустая строка.
Так что давайте не ставить ни в чем.
И то, что можно распечатать?
>> СТУДЕНТ: Ничего.
>> Джейсон Hirschhorn: Ничего.
Кажется, что это работает.
Вы можете попробовать больше случаев угол, но обычно номера, различные данные
замечательно попробовать, а ничего нет.
Ничего, ноль, негатива не всегда большие вещи, чтобы попробовать и вещи, которые вы
следует проверить, все, конечно, мы протестируем Проверьте и для 50 будет проверяться.
Любые вопросы о spell.c?
>> Хорошо, давайте голову назад.
У меня есть еще одна программа для вас, ребята, чтобы писать.
Она называется students.c.
Это программа, которая запрашивает у пользователя пять имен, а затем случайным образом выбирает
и выводит одно из имен.
Эта программа представляет собой немного больше активное участие, чем в последние два мы писали,
Так почему бы нам не пять минут, чтобы закодировать его индивидуально, и тогда мы будем
кодироваться как группа.
>> Эта программа также включает некоторые вещи вы не могли видеть раньше, так что если
у вас есть вопрос о, как делать Я делаю это, поднимите руку.
Я приеду и указать вам в правильном направлении.
Но мы также делаем это, потому что это будет хороший способ ввести некоторые
темы, которые сложно.
>> Так он работает, не так ли?
>> СТУДЕНТ: Да.
>> Джейсон Hirschhorn: Всякий раз, когда вы включаете в Проблема набора, есть много способов сделать
, но некоторые из них более Элегантный, чем другие.
Давайте погружение дюйма
# Включить cs50.h.
# Включить stdio.h.
тап_п пустоту, фигурные скобки.
В фигурных скобках, У меня есть два замечания.
Первый из них, спросите пользователь в течение пяти имен.
Второй один, случайным образом выбирать и распечатать одно из имен.
Так давайте сделаем первый, спросите пользователь в течение пяти имен.
Кто спросил у пользователя пять имен и может сказать мне, как это сделать?
Только два человека сделали первую часть.
Три человека сделали первую часть.
Четыре, пять.
Тому, как вы это делаете?
>> СТУДЕНТ: можно объявить строку а затем имя, кронштейн пять.
>> Джейсон Hirschhorn: String Кронштейн назвать пять.
Так что же это делаешь линию, имя строки кронштейн пять?
>> СТУДЕНТ: можно объявить массив строк.
>> Джейсон Hirschhorn: Это массив строк.
Сколько строк собираются чтобы соответствовать здесь?
>> СТУДЕНТ: пять.
>> Джейсон Hirschhorn: пять.
Отлично.
Мы собираемся называть имена, потому что он Мы собираемся, чтобы получить несколько.
Хорошо, дальше?
>> СТУДЕНТ: И тогда вы есть цикл -
>> Джейсон Hirschhorn: для петли.
>> Студент: - для I = 0.
>> Джейсон Hirschhorn: для (INT = 0.
>> СТУДЕНТ: точку с запятой.
>> Джейсон Hirschhorn: точку с запятой.
>> СТУДЕНТ: Я меньше пяти.
>> Джейсон Hirschhorn: Я меньше пяти.
>> СТУДЕНТ: точку с запятой.
>> Джейсон Hirschhorn: точку с запятой.
>> СТУДЕНТ: Я + +.
>> Джейсон Hirschhorn: Я + +.
>> СТУДЕНТ: А потом закрыты скобках.
>> Джейсон Hirschhorn: Закрытое скобках, , а затем некоторые фигурные скобки.
В фигурных скобках?
>> СТУДЕНТ: А потом Е.
>> Джейсон Hirschhorn: Printf.
>> СТУДЕНТ: Открытые скобках, имя% D.
>> Джейсон Hirschhorn: Простите?
>> СТУДЕНТ: Имя.
>> Джейсон Hirschhorn: Имя.
>> СТУДЕНТ: А потом пробел, а затем% D.
>> Джейсон Hirschhorn: Имя, пространство,% D.
>> СТУДЕНТ: А потом / N, а затем закрывается.
>> Джейсон Hirschhorn: Так называют, пространство, % D / N, закрытые скобки.
>> СТУДЕНТ: запятая, я + 1.
Мне очень жаль.
Закрытая цитата, а затем запятая, я +1.
>> Джейсон Hirschhorn: Закрыто цитаты, запятая, я +1.
>> СТУДЕНТ: Да.
А потом следующая строка -
>> Джейсон Hirschhorn: I + 1.
>> СТУДЕНТ: Да.
А потом на следующий слайд это имена кронштейн я.
>> Джейсон Hirschhorn: Следующая строка это имена кронштейн я.
>> СТУДЕНТ: = получить строку.
>> Джейсон Hirschhorn: = Get -
капитала G-E-T -
строку.
Ой, извините.
>> СТУДЕНТ: открытые, закрытые скобки , а затем -
>> Джейсон Hirschhorn: открытая, закрытая скобка.
>> СТУДЕНТ: точку с запятой.
>> Джейсон Hirschhorn: точку с запятой.
Итак, вы инициализировать массив строк, имена, а затем пройти через
цикл, и в пять раз распечатать некоторые подскажет пользователю, а затем сохранить
пять строк.
Кто-нибудь есть какие-либо коррективы в это?
Том, я думаю, что все согласен с вами.
Выглядит довольно хорошо.
ОК.
Зачем ты это сделал я +1, правда?
>> СТУДЕНТ: Я имею в виду, не имеет быть, но я +1 так, чтобы это
Назовите одну назвать пять.
В противном случае было бы название нулю назвать четыре.
>> Джейсон Hirschhorn: Так что вы сделали я +1 потому что иначе это будет иметь
распечатал от нуля до четырех, потому что вот как компьютеры думать, но люди
не читаю подобное.
Это другое дело Вы столкнетесь.
Иногда, когда вы что-то распечатать для пользователя, вы хотите, чтобы сделать его
немного красивее, и делать +1 в этом случае
способ сделать его красивее.
>> Я также вижу пять дважды, имя строки в пять, я меньше пяти.
Я знаю, где вы получили пять.
Вы получили это от меня говорить вам пять имен.
Но если бы мы хотели, чтобы сделать код немного более надежным, единственное, что мы
можете сделать, это здесь, за пределами Интеллект, мы могли бы сделать что-то вроде этого,
# Определить, и мы могли бы сделать ИМЕНА 5.
>> В общем, везде, где я пишу капитала N, капитала, капитала M, буквы Е,
капитала S, эта строка, он заменит что с 5 в коде.
Или давайте просто называть его - мы будем просто назвать его номер.
Так я определяю все заглавные буквы Номер, который будет 5.
>> Так что теперь там, где у меня есть номер 5, я можете заменить его со всеми НОМЕР шапки.
И теперь, если я хочу, чтобы изменить количество имен, все, что мне нужно сделать, это
это одна линия, четвертая строка, где у меня есть # Определить номер 5, изменить это до 10,
или изменить его на 4.
Когда код становится больше, вы не собираются, чтобы вспомнить все места, которые вы
положил, сколько имен вы хотели, и в Для того, чтобы не пропустить одну, это
Хороший способ сделать это, чтобы найти что-то наверху, а затем просто использовать эту фразу
везде во всем коде.
Маркус?
>> СТУДЕНТ: Это стилистически предпочтительным не глобально определяющим
постоянная N?
>> Джейсон Hirschhorn: Так в том, что стилистически предпочтительными, чем глобально
определение постоянной N?
Так вы говорите, вы могли бы делать, внутр число = 5?
>> СТУДЕНТ: Есть ли у них согласных Не в C или нет?
>> Джейсон Hirschhorn: Или строительства - равными.
Так вы говорите, просто глобальная переменная?
>> СТУДЕНТ: Да.
>> Джейсон Hirschhorn: Так стилистически, Там не обязательно одно право
ответил, но оба эти лучше чем просто бросать эти случайные
номера во всем коде.
Мы называем их магическими числами.
Когда я смотрю на код или когда Кто-нибудь читает через него, они
не хотят просто этих случайных чисел , которые не имеет смысла.
Даже число 26, что в целом является количество букв в алфавите,
лучше определить АЛФАВИТ наверху и сохраните номер 26 в этой строке,
если это имеет смысл.
>> Или на вопрос, поставленный одним, а не - опять же, мы не говорим об этом в
времени, но вместо того, чтобы просто бросать В 25 всюду или 10, вы можете
сохранить номер 25 в квартал или 10, как Дим, и что делает его легче для
тот, кто читает через ваш код понимаю, почему ты выбрал именно этот номер.
А также для вас, если вы хотите, чтобы обновить код, он делает его немного
более надежной.
Да?
>> СТУДЕНТ: Этот код также собирается быть доступным для нас после?
>> Джейсон Hirschhorn: Все эти коды , что мы написали вместе,
будет отправлен к вам Парни и доступным.
Да.
Так спросите у пользователя пяти имен.
Случайный выбор и печать одно из названий.
Кто это сделал линию?
Это наиболее сложный линия здесь.
К сожалению, Том.
Вы сделали действительно хорошую работу, но это немного сложнее.
Маркус, идти вперед.
>> СТУДЕНТ: Ну во-первых, вы собираетесь необходимо включить stdlib.h и time.h.
>> Джейсон Hirschhorn: Так вы говорите, на верхней части, включают две библиотеки.
Ты хочешь, чтобы включать в себя S-Т-Д-Л-Я-B точку H, стандартной библиотеки, и то, что
был другой?
>> СТУДЕНТ: Time.h.
>> Джейсон Hirschhorn: # Включить time.h.
Таким образом, эти два нескольких библиотек.
Я предполагаю, что теперь мы будем использовать Функции, которые содержатся в этих
два, и именно поэтому вам нужно включить их?
>> Слушатель: То есть то, во-первых, вы собирается хотите написать srand.
>> Джейсон Hirschhorn: Srand.
>> Студентов: (времени (0)
>> Джейсон Hirschhorn: Извините.
Srand (время (
>> СТУДЕНТ: 0.
>> Джейсон Hirschhorn: 0.
>> СТУДЕНТ:)), точка с запятой.
>> Джейсон Hirschhorn: Еще один парень закрытой?
Точка с запятой.
Я собираюсь просто заменить Вам нулевой с NULL.
Он будет делать то же самое, но Как правило, вы увидите пустое значение, что
Мы поговорим об этом линии в секунду.
>> СТУДЕНТ: Стилистически лучше?
>> Джейсон Hirschhorn: Как правило, люди Право NULL, но то же самое.
>> СТУДЕНТ: А потом десятичного имя.
>> Джейсон Hirschhorn: Int имя.
>> СТУДЕНТ: =
>> Джейсон Hirschhorn: =
>> СТУДЕНТ: Рэнд.
>> Джейсон Hirschhorn: Рэнд.
>> Студентов: ()
>> Джейсон Hirschhorn: ()
>> СТУДЕНТ: модуль числа.
>> Джейсон Hirschhorn: Что такое модуль?
Характер?
Символ процента?
>> СТУДЕНТ: символ процента.
Modulo НОМЕР которого вы определили наверху.
>> Джейсон Hirschhorn: Modulo число.
>> СТУДЕНТ: А потом запятой.
>> Джейсон Hirschhorn: точку с запятой.
>> СТУДЕНТ: И тогда новая линия, Е.
>> Джейсон Hirschhorn: Printf.
>> Студентов: (
>> Джейсон Hirschhorn: (
>> Студент: "
>> Джейсон Hirschhorn: "
>> СТУДЕНТ:% S / N
>> Джейсон Hirschhorn:% S / N
>> Студент: "
>> Джейсон Hirschhorn:% S / N "
>> СТУДЕНТ: запятая, пробел имена.
>> Джейсон Hirschhorn: Космос -
>> СТУДЕНТ: О, я думаю, что же мы называем его здесь?
>> Джейсон Hirschhorn: Мы назвали его именем.
>> СТУДЕНТ: открывающая скобка, имя.
>> Джейсон Hirschhorn: открывающая скобка, имя.
>> СТУДЕНТ: Закрытое кронштейна.
>> Джейсон Hirschhorn: Закрытое кронштейна.
>> СТУДЕНТ:)
>> Джейсон Hirschhorn:)
>> СТУДЕНТ: точку с запятой.
>> Джейсон Hirschhorn: точку с запятой.
Хорошо, давайте экономить.
Давайте сделаем этот код.
Студентов.
Давайте запустим этот код.
Студентов.
Не. / Студента. . / Студентов.
Имя одного.
Мы скажем, Давида.
Назовите два, RJ.
Назовите три, Роб.
Назовите четыре, Лукас.
Назовите пять, Иосиф.
А потом она выводит Джозеф снова.
>> Итак, позвольте мне запустить это снова.
Позвольте мне сделать то же самое имена.
Дэвид, RJ, Роб, Лукас, Джозеф.
И это дало мне Давида, на этот раз.
Так я и сделал то же самое, но это дало мне другое дело, и это
потому что, конечно, мы просим для случайного имени.
Так что я думаю, основанный от меня блуждающий по комнате, что большинство людей
вероятно, получил первую правую часть, создании этого массива, а затем получить
все имена.
Я говорю о строках с 10 по 16.
Но линии 18 через 21, вероятно, некоторые вещи, которые вы раньше не видели,
так что давайте пойдем через эти.
>> Эта линия, srand время NULL по существу -
К сожалению, давайте пропустим вниз линии, RAND ().
Это дает вам случайное число, случайное целое.
И если вы попали человека Рэнд, которая Многие из вас сделали -
М-Н пространство R-N-D -
в терминале так, M-A-N пространства R--N-D, нажмите Enter.
Вы подошли бы к руководству и сможет прочитать, что Рэнд
команда выводит Num псевдослучайных байтов после посева случайное число
генератор один раз.
>> Так что это описание.
Это то, что Рэнд делает, дает Вы случайное число, когда
вы называете эту функцию.
К сожалению, это не совсем случайным потому что если вы просто позвоните случайной
без получения его некоторых семян, некоторые Отправной точкой, он всегда будет выбирать
тот же самый, и он использует формула Для определения следующего.
Так что если вы звоните Рэнд, это будет просто дать вам то же самое.
Это будет очень предсказуемым.
Это на самом деле не будет случайным.
>> Итак, что нам нужно сделать, за Маркуса Инструкция для меня, были семена Рэнд
с чем-то еще, что и Функция srand делает.
Это семена Рэнд с чем-то немного больше случайными, чем то же самое, и
он посева она со временем NULL, которое есть, только по соглашению, текущее
время в секундах.
>> Так что Вы предполагаете, что все это не собирается запустить код в точном
Вторая же, так что это безопасная ставка, что Время NULL будет различным
каждый раз, когда этот код выполняется.
Уверенностью сказать, что таким образом, будет srand Рэнд семян с чем-то другим каждый
один раз.
Так что по соглашению, когда мы хотим случайное число, мы пишем эту линию,
srand NULL время, чтобы дать нам гораздо больше случайных семян, а затем мы запускаем
Рэнд, которая дает нам случайное число.
Да?
>> СТУДЕНТ: Можете ли вы сказать, что Вы подразумеваете под семя?
>> Джейсон Hirschhorn: семена, как и в -
так Рэнд собирается забрать некоторые числа и он собирается использовать некоторые
формулу, чтобы получить там.
Так он собирается начать с чего-то , а затем превратить его в нечто, основанное
от этой формулы.
Если вы всегда дать ему то же самое, это всегда собирается превратить его в
то же самое.
Так что первое, что вы дать это семя.
Итак, вы хотите, чтобы дать ему что-то различных, чтобы начать с, и таким образом это
превратит его в нечто иное.
>> И, наконец, строка 20, это% называется
по модулю, и что сбивает с толку.
Это то, что немного здесь по-другому, что вы действительно не
сталкиваемся в реальной жизни математику.
Но по сути, когда вы берете гигантская номер, и вы разделите на С, что
происходит с остатком?
>> СТУДЕНТ: Это остается усеченным.
>> Джейсон Hirschhorn: Это остается усеченным.
Так что 20 делится на 3 и что?
Что это вернуться к Вы, 20, разделенные на 3.
К сожалению, 10 разделить на 3.
Что это вернется к вам?
>> СТУДЕНТ: [неразборчиво].
>> Джейсон Hirschhorn: 10 разделить на 3 всего возвращает 3, а не 3 остаток 1.
Так что 10 по модулю 3 возвращает это только остаток, 1.
Так что если вы хотели узнать, что 10 разделенный на 3 на самом деле было, вы бы
сделать 10 разделить на 3, вы получите ваши 3, а затем вам нужно сделать 10 по модулю 3, и
Вы получили бы 1.
Таким образом, вы бы поняли, что 10 разделенный на 3 на 3, остаток 1.
>> И в этой линии, может быть рэнд любое целое число, по существу.
Так говорит модулю, разделите его на число, которое является в данном случае 5.
И если вы когда-нибудь разделить на число, целое всегда должна быть меньше, чем
это число.
Так что если вы деления на число 5, остаток всегда будет
от нуля до четырех.
Вот только, как математика работает.
>> Таким образом, большое количество moduloed по меньшей число всегда будет возвращаться
остатка и всегда будет возвращать некоторые число, которое меньше, чем число вы
деленное на.
Кто-нибудь есть какие-либо вопросы о модулю, потому что она придет очень,
очень удобно, поэтому я хочу, чтобы убедиться, все понимают это?
Круто.
И мы увидели, что эта программа работает.
Хорошо, как двигаться дальше.
>> Так что в следующий, мы собираемся идти в функций, и мы собираемся пойти
до конца этот материал довольно быстро, потому что я хочу, чтобы добраться до
аргументы командной строки.
Так функций по существу, как вы видели, черные ящики.
Они принимают вещи в называются параметрами, они делают что-то для них, либо
изменить их или создать некоторые побочные эффекты, И, наконец, они плюют
что-то, что является возвращаемого значения.
Кто-нибудь может дать мне хоть одну причину Поэтому мы будем использовать функции?
Кто-нибудь?
Одна из причин, почему мы должны использовать функции?
Любой?
Я увидел двух рук.
Что такое хорошая причина?
Маркус?
>> СТУДЕНТ: Если у вас есть, чтобы вызвать тот же самый блок кода несколько раз.
>> Джейсон Hirschhorn: Хорошо, если вам нужно чтобы вызвать тот же самый кусок
код несколько раз.
Джефф, у вас было по другой причине?
>> СТУДЕНТ: просто так, что вы можете написать меньше.
>> Джейсон Hirschhorn: Вы можете кодировать меньше.
Право.
Если вы хотите сделать что-то много -
В предыдущем коде, я мог бы написано получить строку в пять раз, но
цикл делает его красивее и Вы должны писать меньше кода.
Функции подобную идею.
Если я хочу сделать то же самое много, переместить его в функцию и называют это
функционировать каждый раз.
Это сделает это для вас.
Это отличный повод использовать функции.
>> Так анатомии функции.
Функция в основном выглядеть следующим образом.
Это начнем с возвращаемым типом, то вы получите имя.
Это займет аргументы, в противном случае Известно, что и параметры, а внутри
эти фигурные скобки, вы написать свой код.
>> Мы видели одну функцию много.
Это основные.
Вот основные накладывается на анатомии, что у меня было раньше.
Что десятичного прямо здесь означает?
Что десятичного значит?
Когда я пишу тап_п (недействительными).
>> СТУДЕНТ: Возвращение типа?
>> Джейсон Hirschhorn: Простите?
>> СТУДЕНТ: тип возвращаемого значения.
>> Джейсон Hirschhorn: Int является тип возвращаемого значения, точно.
Главная возвращает Int.
Что является основным?
>> СТУДЕНТ: Имя функции.
>> Джейсон Hirschhorn: главной из которых является имя функции.
Совершенно верно.
И пустоту?
Что такое пустота внутри скобок?
>> СТУДЕНТ: Это не займет любое внешнее значение.
>> Джейсон Hirschhorn: Так пустота -
право.
В скобках, положим параметры или аргументы
Функция принимает, что происходит внутри черного ящика.
Когда вы пишете пустоту, вы говорите, это ничего не берет дюйма
Так тап_п означает пустоту в основной Не принимая ничего дюйма
>> В фигурных скобках, у нас есть код, а затем мы видим, в конце
возвратить нуль.
Что означает возвращение нуля означает?
Ну, мы говорили о возвращаемого типа.
Главное необходимо вернуться Int.
Это то, что делает эту линию.
Она возвращает целое, нуль.
>> Конечно, мы не видели, что много потому что в программировании мы делаем с
Машины, которые мы делаем, и компиляторы мы используем наше время, вы
не нужно эту линию.
Главная особенный достаточно того, что он знает, когда вы дойдете до конца основного, просто
возвратить нуль, если все прошло хорошо.
В самом деле, если что-то пойдет не так, Основной часто возвращаются различные
число, означающее, что что-то пошло не так с вашей программой.
>> Так вообще, когда вы видите код, не пишите возвращения нулю, но это хорошо
знать, что это происходит за сцены, потому что когда вы пишете
другой тип функции Вы будете нуждаться, чтобы
включают обратной линии.
Если вы говорите, что я собираюсь вернуться Интеллект, вы должны
вернуть что-то написать.
Если вы говорите, пустота здесь на начала, силы основных пустоту, для
Например, то это не возвращаются ничего - пустота ничего не значит -
так что вам не нужно, что обратной линии.
Но вы когда-нибудь написать то, что не которые на данный тип возвращаемого значения, необходимо
строку, которая говорит возвращения, и вы нужно положить что-то там
, соответствующий типу.
Есть вопросы по этому поводу?
Сладкий.
>> Scope.
Это то, что мы затронули также.
Каждая переменная, как мы знаем, имеет некоторому объему, и это в основном
говорить о том, где переменная может или не может быть указан.
И я хотел бы сказать, что происходит в фигурных скобках остается
в фигурных скобках.
Так, например, если мы посмотрим на этот код, мы определяем глобальную переменную
за пределами основного, Интеллект, здесь на самом верху.
Мы называем другое Int внутри основного.
У нас есть еще несколько фигурные скобки, и мы вызываем другую INT A.
>> У нас есть три в коде.
Это не то же самое.
Я создал три различные переменные.
Тогда внутри этих внутренних фигурных подтяжки, я говорю = 4.
Какой в ​​том, что говоришь, Первый, второй,
или третий?
>> СТУДЕНТ: третий.
>> Джейсон Hirschhorn: Это говорят о третьей.
Все эти на самом деле может быть говорили в данном
Например, потому что их объем все идет в эти внутренние фигурные скобки.
Однако, когда вы называть вещи той же имя, есть то, что называется скрывается.
Таким образом, вы иметь дело только с или исправить или использовать последних переменной или один
ближайший к вам.
Так что здесь внутри, это третье ближе на этой линии, а = 4, так что это
влияет на третью.
И последняя строка, = 2, что является что говорить о, первый, второй,
или третий?
>> СТУДЕНТ: Второй.
>> Джейсон Hirschhorn: Это говорят о втором.
Конечно, третий находится ближе всего к в коде, но третий
не существует вне эти фигурные скобки.
Как только вы получите, что в фигурные скобки, это как он ушел,
по существу.
Таким образом, только два вы оставили те Первые два, и, конечно, в настоящее время
это ближе к второму.
>> Так что это хорошая вещь, чтобы помните о размахе.
Например, я уверен, что вы столкнулись это в то время как сделать петлю.
При инициализации переменной внутри делать во время цикла, а затем вы пытаетесь
доступ к нему на улице, вы, вероятно, получил несколько предупреждений, как это
переменная не существует.
Это потому, что сферы идеей, что вещи существуют только
внутри этих фигурных скобках.
Фигурные скобки как гигантский объятием Вы даете в коде, является еще одним
способ думать об этом.
>> Так что это еще одна функция, то для вас, ребята код, hellofunction.c.
Мы собираемся, чтобы пропустить на данный момент, но это то, что я призываю вас
практике по своему усмотрению.
Написать программу, в которой основной звонки другую функцию, которая выводит
приветствие для пользователя.
Это, по существу принимая привет мир и абстрагирования, что в Е
другой функции.
Но мы не собираемся сделать это прямо сейчас потому что мы не так много времени
оставить как мне бы хотелось.
>> Так что объявление функции.
Мы видели это раньше, а также.
Если вы хотите написать еще одну функцию, Вам нужно, чтобы компьютер и знаю
Основной знаем, что она существует.
Итак, что мы делаем, над главной, мы пишем возвращаемый тип, имя и
параметры, а затем внизу основного, здесь, мы фактически скопировать эту строку
, а затем написать фактический код.
Так что этот путь, если вы вызываете функцию в главном в верхней части, знает, что основная
привет существует, например, если бы я был позвонить привет, а затем он смотрит на
осуществление внизу.
Что произойдет, если я не включаю эту линии наверху, аннулированию привет (недействительными)?
>> Если я не включить эту строку и основные звонки Здравствуйте, я
собирается получить ошибку.
Я собираюсь получить сообщение об ошибке, потому что компилятор не знает,
что эта вещь существует.
Это подобно тому, почему делаем # включают cs50.h.
То, что существенным cs50.h делает ставит взять веревку там.
Он надевает получить Int там.
Это положить все эти функции Прототипы перед основной, так что когда
Вы называете их в основные, основные знает что эти вещи существуют.
Это то, что тех. Ч файлов делают.
И поэтому, если вы собираетесь сделать свой собственный функцию, вы должны убедиться, что
вы положили, что прототип там.
Есть вопросы об этом до сих пор?
>> Аргументы командной строки.
Это то, что мы собираемся закончить на, а затем, надеюсь, мы
втиснуть в некоторых PSET.
Я не знаю, если мы сможем выжать что из-за времени, но
с вами, ребята, которые находятся здесь, и если вы ребята хотят сказать после немного, мы
может пойти по ней снаружи.
Но мы собираемся, чтобы покончить с аргументы командной строки
В течение последних 15 минут.
Мы проснулись, Майкл?
Ты не спишь?
Хорошо.
Я не знаю, если вы спите с закрытыми глазами.
Было бы сложно.
>> Аргументы командной строки.
Те, являются одним из способов передачи информации в программу.
В конце концов, мы будем сталкиваться с другими.
Но по существу, мы собираемся, чтобы остановить написание тап_п (недействительными), если мы хотим
принять некоторые аргументы командной строки.
Мы собираемся написать эту вещь называется тап_п (INT ARGC,
Строка ARGV, кронштейны.
Это сбивает с толку.
Это очень много писем, которые не находятся в человека английском языке, поэтому мы собираемся
распаковать их прямо сейчас.
>> ARGC означает количество аргументов -
и опять же, все это будет будет доступна в Интернете -
и это число аргументов.
Argv обозначает вектор аргументов, и те сами аргументы.
Это массив строк.
Мы на самом деле видел массив строк до сегодняшнего дня.
Мы создали одну в последнем Программа, которую мы закодированы.
>> Итак, вот пример.
Я пишу. / Ohai CS50 разделе на моей командной строки.
ARGC в этом случае равно 3.
Argv кронштейн 0 Ohai, агду кронштейн 1 является CS50, агду подвеска 2 раздела.
Опять же, ARGC является число аргументов, и сбить вас с толку мало
бит, всегда считать название функции в качестве первого аргумента.
Таким образом, в этом случае, есть три аргументов, имя функции
а затем эти два, что я ввели дюйма
>> Далее, мы собираемся, чтобы спасти тех сами аргументы в ARGV.
И снова, как мы видели ранее, мы сделали это в последней программе мы написали.
Вы можете перемещаться по массиву Argv и получить эти строки.
Вот, по существу то, что мы сделали в в конце нашей последней программе.
Мы выбрали случайным именем, а затем отправился в все имена кронштейн и печатных
Строка из расположенных там.
>> На вершине только один массив, так строки сами массивы, как
говорили, вы можете иметь массивы массивов, которая является
по существу, что является ARGV.
Один из способов вы можете думать о это строк и столбцов.
Я могу нарисовать это прямо сейчас.
Так ARGV -
это не удаление.
Давайте нарисуем под Ohai.
>> Итак, если я писал в разделе Ohai CS50, Я собираюсь обрезать
раздел для этого примера.
Но по существу, моя многомерная Массив, Ohai CS50,
Мы собираемся сделать секту.
Так вот, я могу получить доступ -
если я приведу агду одно число -
это неправильно.
Что не так в этой схеме?
>> СТУДЕНТ: начинаются с нуля.
>> Джейсон Hirschhorn: оно должно начинать с нуля.
Я, вероятно, следует также вращать его, но так как я уже обращал на это, я
собирается оставить его там на данный момент.
Но это начинается с нуля.
Это верно.
Мне жаль, если этого мала.
Может вы, ребята отчасти видеть?
Поэтому, если я агду 0, я буду получить все Ohai.
Если я делаю агду 1, я получу все CS50.
Если я делаю агду 2, я получу все секты.
>> Но теперь, как мы уже говорили, струны сами являются массивами.
Так что же я могу сделать, я могу относиться к этому как многомерный массив, и я
может сделать что-то вдоль линий ARGV 0, 0, что дает мне только
Персонаж 0.
Argv 0, 1, что дает мне всего час.
Argv 1, 3, что дает мне просто 0 это здесь, в CS50.
>> Итак, потому что сами строки являются массивами, мы помещаем
что в другом массиве.
Теперь у нас есть массив массивов, и мы индексу, для чего наш первый массив и
Затем индекс в нашем втором массиве.
И, как и следовало ожидать, мы это сделаем, просто положить на этих двух -
мы делаем только квадратные скобки рядом друг с другом.
Таким образом, в этом примере ARGV 1 CS50 и ARGV 1, 2, как мы уже говорили, находится всего в 5.
Кто-нибудь есть какие-либо вопросы о многомерные массивы?
Вы, ребята, делаете удивительным.
Сладкий.
>> Итак, мы имеем другую программу прямо здесь, и это последнее, что мы
собирается сделать прямо сейчас.
Поэтому я хочу, чтобы вы написали программу, которая принимает полное имя пользователя, два и только
два аргумента командной строки, и, наконец, распечатать приветствие
пользователь, который помимо имени.
Так почему бы вам не взять три или четыре минут, чтобы сделать это, и тогда мы будем идти
над ним, как группа, и тогда мы будем заворачивать?
>> И опять же, здесь, когда мы говорим, принять полное имя пользователя в описании
данной проблемы, она должна быть командой строки, не пользуясь получить строку.
Да, Маркус?
>> Слушатель: То есть когда вы говорите, две команды строки, является то, что в дополнение к
. / бежать, или -
>> Джейсон Hirschhorn: Хороший вопрос.
Ли, в том числе. / Run, три аргументы командной строки.
Или в том числе. / Персонализированные, в этом случае, потому что это
Имя этого файла.
Так ARGC будет три.
Но я хочу только два аргумента данной программы.
Я должен указать, что.
Я сделаю, что изменения прежде чем я вывешиваю и пришлите их нам с вами, ребята.
>> СТУДЕНТ: Что делать, если вы есть второе имя?
>> Джейсон Hirschhorn: Если у вас есть средний имя, вам не повезло.
Мне очень жаль.
Или, если вы только идете Шакирой, Вы также не повезло.
Да?
>> Слушатель: То есть, когда люди не имеют cs50.h, не они определяют агду
как символ звезды агду?
Или это до сих пор называется строкой агду?
>> Джейсон Hirschhorn: Да.
Так строку, опять же, мы маску на то, что именно там происходит.
Это собирается быть распакованы, может быть, в среду, но в ближайшее время.
Это как дополнительные колеса.
Потому что по существу, это то же самое.
>> Итак, давайте еще минута, чтобы программа это, а затем мы рассмотрим
его в качестве группы, а затем как я сказал, завернуть.
И я думаю, что они все еще дополнительные конфеты, Так вы, ребята, будем надеяться, принять
, что, пожалуйста, или что.
>> Извините, если вы все еще пишу, но я хочу, чтобы нырнуть, и мы
можете закончить его вместе.
Так что я написал в, # включить cs50.h, # Включить stdio.h.
тап_п (недействительными), фигурной скобки, фигурные скобки, внутри три линии
псевдокод, принять полное имя пользователя, два и только два командной строки
Аргументы, распечатайте приветствие пользователь, который помимо имени.
>> Таким образом, первый, принимать полное имя пользователя.
Кто может помочь мне принять полное имя пользователя?
Как мне это сделать, что часть?
Ребята, вы делаете, что первая часть?
Возьмите полное имя пользователя.
Ну, для этого одной командной строке Аргумент, что я должен написать?
Что я должен изменить в мое объявление функции?
>> СТУДЕНТ: Вы не хотите его недействительным больше.
>> Джейсон Hirschhorn: Совершенно верно.
Я не хочу, чтобы это было пустоты.
Что я хочу, чтобы он был?
>> СТУДЕНТ: ARGC Int.
>> Джейсон Hirschhorn: ARGC Int.
>> СТУДЕНТ: String ARGV.
>> Джейсон Hirschhorn: String ARGV.
>> СТУДЕНТ: кронштейн, кронштейн.
>> Джейсон Hirschhorn: кронштейн, кронштейн.
Вот именно, и это на самом деле, как я иду, чтобы получить
полное имя пользователя.
Они собираются, чтобы положить его в там.
Так что одно делается.
Так что теперь я хочу два и только два аргументы командной строки.
Так Ной, что является одним из способов я могу проверить количество команд
строки у меня есть?
>> СТУДЕНТ: Вы делаете заявление, если.
>> Джейсон Hirschhorn: Если заявлении, именно так.
Что я хочу в качестве условия?
>> СТУДЕНТ: Если ARGC больше 3.
>> Джейсон Hirschhorn: Если ARGC больше 3.
Если ARGC больше 3, что мне делать?
>> СТУДЕНТ: возвращение 1.
>> Джейсон Hirschhorn: Возвращение 1.
Будет ли это гарантировать, что я есть два и только два?
>> СТУДЕНТ: Нет
Если агдс больше 3 и меньше 2.
>> Джейсон Hirschhorn: Если ARGC больше чем 3 и агдс меньше 2.
Что один из способов я могу написать это всего одной линии, или без использования которые
и логический оператор?
>> СТУДЕНТ: Это не равно 2.
>> Джейсон Hirschhorn: Если ARGC не равно 2.
Именно так.
Таким образом, если агдс не равно 2, то даст мне эту программу,
персонализированный, когда я запускаю его, и , что даст мне сколько
аргументы командной строки?
Сколько я буду проверить?
>> Извините.
Позвольте мне перефразировать это.
Если ARGC = 2, как много сделал Пользователь написать в линию?
>> СТУДЕНТ: Один.
>> Джейсон Hirschhorn: Только один.
Поэтому, прежде чем, вы были правы, Ной.
Что мне на самом деле нужно поставить там?
>> СТУДЕНТ: Это равняется 3.
>> Джейсон Hirschhorn: ARGC не равно 3.
Я хочу равным 3, потому что я хочу персонализированные плюс два других.
Так что если ARGC не равно 3, возвращают 1.
Почему ты сказал возвращать 1?
>> СТУДЕНТ: Потому, что означает, что это не так.
>> Джейсон Hirschhorn: Это означает, что это неправильно, А это что собираетесь делать?
>> СТУДЕНТ: Re-предложит пользователю.
>> Джейсон Hirschhorn: Это будет бросить программы, так что придется побегать
снова, но мы ничего не имею сюда, чтобы попросить их снова.
Я не просил за это.
Так что это совершенно верно.
Возвращение 1 просто выход из программы.
Великий.
>> И распечатать приветствием к пользователю , что помимо имени.
Как я могу это сделать?
Анна?
>> СТУДЕНТ: Printf.
>> Джейсон Hirschhorn: Printf.
>> СТУДЕНТ: ("
>> Джейсон Hirschhorn: (
>> Студент: "привет
>> Джейсон Hirschhorn: "привет
>> СТУДЕНТ:% S
>> Джейсон Hirschhorn:% S
>> СТУДЕНТ: / N
>> Джейсон Hirschhorn: / N
>> Студент: ",
>> Джейсон Hirschhorn: ",
>> СТУДЕНТ: Argv
>> Джейсон Hirschhorn: Простите?
>> СТУДЕНТ: Argv
>> Джейсон Hirschhorn: Argv
>> СТУДЕНТ: Квадратные скобки 1.
>> Джейсон Hirschhorn: Квадратные скобки?
>> СТУДЕНТ: 1.
>> Джейсон Hirschhorn: 1.
>> СТУДЕНТ: А) точка с запятой.
>> Джейсон Hirschhorn:) запятой.
Теперь давайте посмотрим на это.
Сделать персонализированным.
. / Персонализированные.
Он только что ушел.
Почему это бросить?
>> СТУДЕНТ: Вы не указали никаких аргументов.
>> Джейсон Hirschhorn: Я не положить любые аргументы дюйма
Выглядит здорово.
Вы, ребята, прибил его.
Итак, еще раз, вы вошли в ARGV и вы проверяется в начале ARGC.
Это два важных вещей, чтобы помнить.
Таким образом, в наших последних двух минут, прежде чем мы уехать, мы не денется PSET два, но
как я уже сказал, если вы хотите остаться после в течение 10 минут, я был бы он рад пойти
более с вами, ребята логики Проблема для этих множеств.
У нас было много, чтобы покрыть сегодня так что я не добраться до них.
Вообще, я хотел бы включить что в конце.
Поэтому если вы хотите, чтобы остаться, остаться на 10 минут.
Мы сделаем это.
>> Тогда, как я уже говорил в начале, PSET нулем и единицей, то мы получим, что
обратной связи с Вами можно скорее.
Цель состоит в том, чтобы получить обратную связь PSET одной, часть комментариев,
Перед PSET два объясняется.
Так что если вы допустили несколько ошибок или Стилистически вещи могли быть лучше,
вы будете иметь эту информацию, чтобы вы не будет делать то же самое в PSET два.
И тогда в будущем, вы получите все ваши отзывы и комментарии PSET
еще до следующего объясняется.
>> Наконец, если я мог бы поставить в другой разъем для обратной связи.
Это ваш первый раздел.
Это был мой первый раздел обучение в этом году.
Отправляйтесь туда.
Написать материал, хорошее и плохое, и я буду использовать его, чтобы сделать
раздел лучше в следующий раз.
И последнее, опять же, если вам нужно ничего, дайте мне знать.
Я более чем счастлив помочь вам, ребята.
Если вы просто хотите конфету, я будет иметь дополнительные конфеты.
Я счастлив, чтобы привести его к вам.
>> Это собирается быть удивительным конечно.
Это один из самых, если не самый мой любимый Конечно, я взял за всю свою жизнь,
и я надеюсь, что это будет то, что замечательно для вас.
Так что я хочу сделать все, что в моих силах чтобы сделать его, что огромная для вас.
Я собираюсь отправить электронную почту, если Вы в моей секции или Ной, и
собираюсь попробовать и запланировать с каждым из вы, ребята, время, чтобы проверить в более чем
ближайшие пару недель, чтобы я мог получить ощущение того, что ваша CS фон,
и это также поможет мне приспособить эти разделам в соответствии с Вашими потребностями.
Так вот что у меня выстроились.
Опять же, я увижу тебя на улице Если вы хотите быть там.
Это было недели две секции.
Спасибо, ребята так много.