>> Джейсон 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 фон,
і це також допоможе мені пристосувати ці розділами у відповідності з Вашими потребами.
Так ось що у мене вишикувалися.
Знову ж, я побачу тебе на вулиці Якщо ви хочете бути там.
Це було тижні дві секції.
Спасибі, хлопці так багато.