David J. Малан: Так що це CS50. І це було CS50 власної Колтон Огден, для більш про те, хто музику можна скачати на soundcloud.com/cs50. 

Отже, сьогодні ми орієнтуємося тим більше з мистецтва програмування. І ми беремо, де ми залишили минулого тижня, зосередившись на порожньому місці, який був у цьому графічний мову програмування. І приймати речі вниз до більш низького рівня, використовуючи більш традиційний програмування мова відома як С. Але по шляху, розуміючи, що ті ж ідеї ми говорили минулого п'ятниці буде повторюватися не тільки в цьому на мові С, але в більшості будь-який інший що ми дивимося на цей семестр. 

Так ми називали цю річ тут те, що останній раз? Це представник заяві. Таким чином, ми назвали цю заяву. І він робить те. Це команда, яка комп'ютер або подряпин може виконати. І надалі, давайте також почати називаючи щось подібне функція, з причин, ми скоро побачимо. 

Між тим, ми бачили такі речі. І це, як правило, Відомо також те, що побудувати? 

АУДИТОРІЯ: Loop. 

David J. Малан: Так петля. Так досить проста. Вона в буквальному сенсі робить те, що він говорить. І в порожньому, якщо ви хочете втиснути більше частини головоломки в там, частина буде рости, щоб відповідати його. І ми побачимо в C, що ми можемо зробити те ж саме. 

Інший тип циклу, тим не менш, в порожньому може бути назавжди, або є будь-яке число інших підходів. Але давайте більш універсалом погляд, з обличчям що, швидше за все, добре знайомі, на петлі в цілому. Марк Цукерберг: Один річ, що комп'ютери дійсно добре це повторюючи команди. Як людина, ви отримаєте дуже нудно, якщо вас повинен був зробити те ж саме багато разів поспіль. Але комп'ютер може зробити те ж саме мільйони або навіть мільярди разів, і не набридає, і бути в змозі віднести те, що дійсно добре. 

Так, наприклад, якщо хотів би побажати всім на Facebook з днем ​​народження відправивши їх по електронній пошті, це може зайняти мені більше століття насправді виписати всі ці листи на всіх. Але за допомогою кількох рядків коду, я можу є система, відправте лист на всіх на Facebook, бажаючих їм С Днем Народження. Так ось що петлі і чому вони цінні і то що комп'ютери можуть робити дуже добре. 

David J. Малан: Так що, якщо Ви були одержувач деяких з CS50 і Простір Dropbox останнім часом, що насправді саме те, що ми зробити, використовуючи код зовсім так. Ми по суті мають великий таблиці, в яку люди були введення їх імена та адреси електронної пошти. І ми писали трохи коду, може перебрати ці адреси і виплюнув унікальні адреси в випадок, якщо хто представив кілька разів. І після цього, ми відправляємо Автоматизована лист від бота CS50 в, в тому числі купон на знижку. 

Тепер ми також дивилися на це побудувати в минулий раз. І це особливо Прикладом чого? Так що, так, це логічне вираз. І форма призначена , Щоб захопити те, як добре. Всі такі питання утворюють істинним або хибним в порожньому буде виглядати трохи щось на зразок цього. І ми називаємо це логічне вираз. НЕ Це дійсно істинним або хибним, так чи ні. Це спосіб, відповідаючи на питання. 

І те ж можна використовувати ці Boolean вирази всередині конструкцій як це, яка з Звичайно є умови або філії, прислів'їв розвилок. І вони можуть виглядати не тільки як це, але вони можуть також вже Ельсес, пов'язаних з ними. І ви можете насправді мають три шляхи розвилка або чотири навантажувачі в дорозі, просто гніздування ці речі, як ви побачите в порожньому якщо ви ще цього не зробили. І як ви можете зробити в C, а також. 

Давайте ще раз універсалом дивитися на alumnist, а також, хто може представити інший підхід до цих речей званих умови. 

Білл Гейтс: Люди роблять рішення щодня. Наприклад, перш ніж вийти на вулицю вас почасти є, якщо заява, яку говорить, якщо йде дощ, то я потрібно отримати мою куртку. І комп'ютери дивні, як тільки ви вирішити ті види звітності, що вони можуть надійно виконувати ті речі, в неймовірною швидкістю. І таким чином, комп'ютерна програма дійсно трохи математики і деякі якщо заяви де Рішення отримує зроблено. 

David J. Малан: Так як Ви, можливо, знаєте, це було люди, як Білл Гейтс, Пол Аллен та інші що дійсно стартував так званий персональний комп'ютер Революція кілька років тому. Я думав, перш ніж ми заглибимося в якій Administrivia, ми пов'язані казку з Альбукерке, Нью-Мексико музей природної історії і наука, де деякі з Білла Гейтса ' і ранні оповідання Пола Аллена перераховуються, як у нас зараз сучасні ПК і комп'ютерів Mac і багато іншого. Для цього, однак, ми повинні двох добровольців які мають дуже хороші голоси оповіді читати сценарій вголос. 

Гаразд, а як щодо в там. Піднімайтеся. А як щодо перед тут. Йдемо вниз. Займіть свої місця тут. Як ви, хлопці придумали, пара адміністративних оголошень. секціонування, процес про вибір розділ, почнеться цього Середи по п'ятницю. Детальніше про це в найближчу Середа в лекції. 

Супер секції, в той час, є те, що ми пропонуємо на наступному тижні в результаті чого весь клас пропонується взяти участь в досить великих масштабах секції, одна більш зручним, один менш комфортно. І ми оголосимо реквізити з цього, а також, в кінці цього тижня. 

Між тим секції, самі, почнеться в три курси тижня, нульовий індекс, що означає ті пару тижнів вне. Так, щоб не хвилюватися. Ви ще не пропустили нічого в цьому напрямку. Між тим в той же час, якщо вам є питання до адміністративної, напишіть мені і Девон і Гейб і Роб за цією адресою тут. 

Нарешті, встановіть проблема 0, звичайно, з. Ви, можливо, помітили його на сайті Курсу. Слід надати вам всі відповіді на питання у вас може бути по шляху для Приступаючи до роботи з безліччю проблем. Але якщо ви опинитеся потребує руку допомоги, усіма засобами відвідувати в робочий час, Понеділок, вівторок, середа, четвер на цьому тижні в вечірній час в чотирьох столових. Дивіться, що URL там за відомості, від того, де робочий час має бути. 

Тепер Давайте зустрінемося наш два гостя тут сьогодні. Як тебе звуть? 

JAY PAUL: Джей Пол. 

David J. Малан: Джей Павло, приємно познайомитися. 

HIKARI: Хикари. 

David J. Малан: Хикари? 

HIKARI: Хикари. 

David J. Малан: Хикари. Приємно познайомитися, а також. Джей Пол і Хикари є в перед ними на цих музики стоїть в двох сценаріїв, які я друковані сьогодні вранці від Нью-Мексико Музей природної історії та науки. І те, що я думав, Я б зробив на накладні витрати супроводжуватиме вашу декламацію сценарію і цієї історії з деякими візуальними образами, без несподіванок. 

І те, що я зробив у заздалегідь є prehighlight на вашому сценарії те, що ви повинні прочитати, і те, що ви повинні прочитати. І ми будемо в основному тільки альтернативні пункти. Так що це так само, як ви, можливо, зробили на уроці англійської. Це дійсно змусити аудиторію вірити в свою казку тут. Підемо? Таким чином, історія тут, у нас є BASIC, і вона починається в Кембриджі. 

JAY PAUL: Це була зима 1974 року народження, в Кембриджі, штат Массачусетс де зими можуть бути холодними. Бородатий, довговолосий з коледжу імені Пол Аллен був drudging через Гарварді Площа, заглиблений у свої думки. Його головною турботою в ті дні був, як отримати свого друга, Білл Гейтс, кинути школу і піти в бізнес з ним. HIKARI: два вже пішов через ряд комерційних підприємств разом, починаючи з Lakeside школа в Сіетлі, де вони були виплачені у вільний час комп'ютера для перевірити комп'ютер PDP-10 в місцевому часу обміну компанію. Саме останнє план був кинути школа і утворюють компанію програмного забезпечення. Аллен покинув Вашингтон Державний університет. Але в останню хвилину, Гейтс вирішили дотримуватися Гарварді. 

JAY PAUL: Це день, перетинаючи Гарвард Площа, Аллен помітив січня, 1975 питання про Popular Electronics з землі зупинки заголовком, Перший в світі міні-комп'ютер Kit щоб конкурувати комерційні моделі. Під таким заголовком було картина невелику коробку прикрашені вогнями і перемикачів. Вона називалася MITS Altair 8800. І Аллен знав, що це те, що він шукав. 

HIKARI: Дні дискусія. Аллен і Гейтс зрозумів Значимість Альтаїра. Вони часто говорили про мікропроцесори і чекали, щоб побачити, що буде зроблено з ними. І був комплект миникомпьютер на кришка Popular Electronics. Це, мабуть не було програмного забезпечення ще. Вони уявляли націю програмісти сходили по MITS. І так вони називали Ед Робертс, Глава компанії, стверджуючи, що є версія BASIC мову програмування майже готовий для Altair. Вони цього не зробили. І Робертс мав знати, що вони не зробили. Він отримував 10 дзвінків на день від люди, які BASIC майже готовий. І його запас відповідь був, "Перша людина хто з'являється з роботи ОСНОВНІ отримує контракт ". 

JAY PAUL: Гейтс і Аллен ніколи не бачив Альтаїр. Вони навіть ніколи не бачив Intel 8080 мікропроцесор в центрі Альтаїра. Але пару років тому Аллен написав програму на ЕОМ, що емульованого операція попередньої Intel Мікропроцесор. І на цей раз вони б зробити те ж саме. 

HIKARI: С Intel 8080 керівництво на його боці, Аллен сіл Гарвардський PDP-10 комп'ютер і написав емулятор і програмне забезпечення інструменти, необхідні, щоб зробити програмування. Між тим Гейтс перестав ходити в класах і присвятив себе до проектування основних, використовуючи кожну виверт він знав, для отримання розміру внизу 4 кілобайти. 

JAY PAUL: немає в Альбукерке, Ед Робертс отримав дзвінок від Гейтса просячи деталей про те, як Альтаїр обробляються конкретні процедури. Ніхто не ніколи не задавалися питанням, що й раніше. І Робертс почав цікавитися. 

HIKARI: З розвитком інструменти та дизайн готовий, Гейтс і Аллен написав Код на PDP-10, залучення іншого студента Гарварда, Монте Davidoff, писати математичні процедури. Після заключної вночі програмування, Аллен сів у літак доставити їх основних в MITS. Він провів літак перечекати турбуватися. І ще в Кембриджі Гейтс був турбуватися. Вони провели ряд тестів на BASIC і він працював на емуляторі. Але що, якщо емулятор був неправий? JAY PAUL: Як площині підійшов Альбукерке, Аллен зрозумів, що їх BASIC, тепер акуратно міститься на невеликому випаданні перфострічки, б марно без окремої Програма, яка називається завантажувач, що скаже Альтаїр хау читати паперової стрічки істота подається в телетайпних машини. Він вийняв записну книжку і швидко накидав вниз програму завантажувач на мові асемблера, потім вручну переведені, що в 1 і 0 Альтаїр зрозуміє. 

HIKARI: Аллен очікував чистий, трохи, високотехнологічною компанією у веденні чоловіків у ділових костюмах. Таким чином, він був здивований, коли Робертс зустріла його в аеропорту, схожий на ранчо рука. Робертс був також здивований. Коли він кинув Гарвард програміст в дорогому готелі, Аллен мав зізнатися, що він не міг дозволити собі в кімнату. 

JAY PAUL: MITS, безпосередньо, був розташований в курному торговому центрі. Усередині на метушню верстак був Альтаїр завантажувалася з 5 кілобайт пам'ять і з'єднані кабелем до телетайпу машини. Робертс і головний інженер, Білл Йейтс, очікувально як Аллен перемикається його завантажувач Програма в Altair. Телетайп почав бурчання, як це витягнув паперова стрічка через зчитувач магнітної стрічці. Знадобилося можливо 15 хвилин завантажити програму. Тоді телетайп різко надруковані швидке пам'яті, то готовий швидке, і Аллен почала друкувати команди кілька випробувань. До загального здивування, програмне забезпечення працювало. Були помилки, звичайно. Але головне було це працювало. 

HIKARI: Пізніше, на їх шляху до $ 3.00 обід в Панчо, оса полетіли у вікні пікапа вантажівку і вжалив Аллен на руці. Але на той момент нічого може зіпсувати настрій. Альтаїр тепер був свій BASIC, комерційний продукт для дому комп'ютер, виступив Пол Аллен і Білл Гейтс, робити бізнес, як Microsoft. 

David J. Малан: Багато завдяки нашим двом читачів. 

[Оплески] 

David J. Малан: Тепер у вас є вибір, перш ніж поїхати, з блискучі або свічення в dark-- о, почекайте одну секунду, wait-- блискучі і світяться в темряві слона від CS50 власної Cheng Gong. HIKARI: Ой, спасибі. David J. Малан: Все Добре, спасибі вам велике. [Оплески] David J. Малан: Так правдива історія. Це говорить про те, що всі ці машини та легкість, з якою ми використовувати їх прямо зараз, і як належне, дійсно почалося тут, всього в декількох кроках з цього фактичного театру. І ось сьогодні, якщо ви не були, Це Максвелл Дворкіна, комп'ютер науки будівлю, Також за рогом. А на другому поверсі цього Будівля робить повісити три сторінки від первісного вихідного коду, що Білл Гейтс і Пол Аллен написав. Справді, якщо використання збільшенні в ви можете подивитися не тільки їх імена в оригінальний тип, а й їх підписи, що вони прикрашені Кілька років тому, коли вони востаннє відвідав. 

Але те, що було особливо переконливим про це те, що вони мали намір зробити було написати програму, яка буде дати можливість іншим людям писати їх власні програми. У той час все було з ця машина Альтаїр зроблені MITS. І все що їм було потрібно деякий спосіб що робить його легким для любителів і людей подобається нам в цьому залі, щоб насправді програма що не обов'язково розуміючи Код Асамблея, або машина Код, або не дай бог, 0 і 1. Ми програмісти, як ті, в цій кімнаті, ми хочу бути в змозі висловити самі набагато більше, як псевдо-код навіть якщо це трохи більш ніт розбірливі, що ми говорили на минулому тижні. Ми не хочемо, щоб написати такий код, який зробив Пол Аллен і Білл Гейтс. Ми, навпаки, хочемо, щоб написати код, який виглядає трохи більш дружнім до користувача. 

Тепер це мова відома як BASIC. І номери рядків є те, що вам використовувати просто номер рядка коду що ви пишете. Ми навіть не повинні зробити ці дні. Але ви можете подивитися тут як PRINT "Здрастуй, світ!" б дійсно по-видимому, друкувати щойно. І так, що Білл і Пол зробив, дати людям можливість написати такий код замість of-- якщо ви погляньте на інформатика wall-- такий код. 

Насправді, CS50 недавно мали можливість сісти з професором Гаррі Льюїс в області комп'ютерних наук відділу, який насправді вчили Білла Гейтс кілька років тому, і коштує тут до ці три сторінки витримок. Давайте поглянемо. 

ГАРРІ Льюїс: Що у вас тут список ранній частині програмного забезпечення написана Біллом Гейтсом і Полом Аллен, засновники Microsoft. Таким чином, код Цікаво з двох причин. Перш за все, це стало Перший продукт компанії Microsoft, який був перекладачем для BASIC мову програмування. А по-друге, це було Одним з перших спроб щоб створити інтерпретатор настільки звичайним люди могли використовувати персональні комп'ютери. 

Так Білл Гейтс був студентів в Гарварді. Я почав викладати в Гарварді в 1974 році. Це було зроблено в 1975 році. Так було на початку своєї кар'єри і на початку моєї кар'єри. Я насправді вчили Білла в Звичайно в цей час. Пол Ален не був Гарвардський студент, але він був середньої школи Однокласник Білл Гейтс. Якщо ви приходите і дивіться на список, ви будете насправді знайти третій Ім'я, Монте Davidoff, який був однокласник Гейтса тут, в Гарварді. 

Отже, ось цікавий коментар тут. Він каже: "В 4К можете видаляти квадратного кореня але для петлі повинні ще працювати ". Отже, що це означає, що було два шляхи узагальнити дану програму. Один з них був працювати на версії цього комп'ютера Altair що тільки було 4K слова пам'яті, 4096 слів в пам'яті. Але великий версія була 8K. І що це говорить, що у версії 4K Ви повинні були видалити деякі Код, щоб зробити його потрібним. І одна з речей, , Який буде видалена буде квадратний корінь рутина. Але, мабуть, для петлі повинні ще працювати навіть тоді, коли ви збираєте вниз протягом тільки версії 4K комп'ютера. David J. Малан: Так одна з тем, як ми побачимо в інформатиці, це поняття нашарування і абстракція, і дійсно стояв на плечах з людей, які прийшли перед нами, а не на відміну від деяких з Білла Гейтса і Пол Аллен розповідь тут. І що це означає, що сьогодні ми можемо прийняти для зрозумілим, що речі насправді нам легше писати код. Дійсно код, як ми вже говорили в п'ятницю, є більш технічно відомий як вихідний код. І це цей англійський подібний синтаксис це більше, власне, і більш чітко визначені ніж на зразок псевдо-код, для які немає формальне визначення. 

І сьогодні те, що ми збираємося зосередитися на вихідний код що виглядає так, що за загальним визнанням, на перший погляд виглядає абсолютно загадковим. І, чесно кажучи, це шлях більш естетично складніше, ніж основна програма. Все це робить програма, нагадаємо, що ми говорили? Це просто друкує "привіт світ". І все ж дивитися на всі речі, ми повинні щоб обернути навколо цього дуже простий фразі. Але незабаром все ці лінії і більше зробить набагато краще для вас сенс. 

І потік складається в наступному. Що нам потрібно в нашому розпорядженні це взяти код, як джерела Код, який ми тільки що бачили. І нам потрібна нова програма запустити його через. Ми повинні алгоритмів, які можуть конвертувати вихідний код, як це, в об'єктний код, 0 і 1. Іншими словами, те, що ми збираємося, щоб дізнатися сьогодні в тому, як це зробити, написати вихідний код до верхньої, передати його в якості внеску до спеціального Програма називається компілятором, і ми збираємося виробляти об'єктний код. Які це просто химерний спосіб говорю, що ми будемо приймати те що виглядає так, передати його в програмі під назвою компілятор, виробляти об'єктний код який виглядає наступним чином. 

Так що це буквально патерни 0 і 1 , Які розуміють Комп'ютер Intel в ці дні, що якщо інтерпретувати за допомогою ЦПУ, мізки всередині комп'ютера, буквально роздрукувати, просто кажучи, "привіт світ". Тепер є спосіб більше 0 і 1, ніж ви хотів би сподіватися, може бути необхідно для цього. Але це тому, що ми будуємо на гарну угоду складності що ми можемо надалі приймати як належне. Іншими словами, багато розумних людей дали нам багато цікавих інструментів і потужне програмне забезпечення, з яким ми зараз може зробити проекти самостійно. 

Так що давайте почнемо. У той час як в минулу п'ятницю, і для задачі Набір 0 на цьому тижні, ви будете грати в Мир, який виглядає наступним чином. Починаючи з сьогоднішнього дня і для задачі Встановіть 1 наступного тижня, код буде виглядати трохи більше загадковим, але функціонально є буде те ж саме. Так сповіщення, верх подряпин, Дно С. Відверто подряпин набагато більше користувач зручною і доступною. Але якщо зараз ви порівняєте візуально зверху знизу, там ніби 12:59 відповідність між головоломки і мова ми збираємося грати. Зокрема, кажуть, синій паззл нагорі, мабуть, відповідає тому, що ключове слово або спеціальна фраза на цій мові називається C? АУДИТОРІЯ: Printf. David J. Малан: Printf. Це означає, що відформатований друк. І це тільки фантазії спосіб сказати Printf в C буде заява або функцію , Яка друкує то на екран. Що це друкувати на екрані? Що б ви не сказати йому, щоб усередині котирувань, всередині дужок. Отже, ще раз, за ​​загальним визнанням, є багато речей, що ви повинні мати на увазі ,, дужки, лапки, крапка з комою, і все це. Але все, що є свого роду з к делу. Цікаво винос зараз є те, що скажімо блок в порожньому в значній мірі еквівалентно Е заяву на C. 

Між тим, жовтий шматок головоломки нагорі, коли зелений прапор натиснув, , Ймовірно, дорівнює до того, що ключове слово тут? АУДИТОРІЯ: Головна. David J. Малан: Так головний. Може бути, INT, може бути, недійсними. Але основним видом походить важливо, і це дійсно так. Тому, коли зелений прапор натиснув , Знову ж таки, паззл що стартує Вся програма подряпин. Але ми збираємося зараз почати називати що головний, ця функція відома як головна. 

Тепер той же час ми будемо узагальнити це таким чином. Ми могли б назвати сказати функцію. І це могло б виглядати спеціально, як це. Ну, щодо петель? Якщо ми хочемо, щоб почати перетворення або переклад більш в порожньому С, ця річ тут, мабуть просто каже "привіт світ" назавжди. Так що якщо у вас асоціюється це скрипти з кішкою в порожньому, це просто буде продовжувати говорити в який мультфільм міхур, "Привіт світ, привіт світ, привіт світ, "до нудоти, назавжди. Якщо ми хочемо зробити щось подібне в C, це буде виглядати трохи загадковим. Але ми можемо досягти того ж призводить, як ми будемо в кінцевому підсумку з'ясувати, з синтаксисом, як це. Я збираюся знову використовувати Printf, бо наприкінці дня Я хочу надрукувати "привіт світ". І я мабуть, за допомогою Ключове слово, яке не назавжди. Це замість того, щоб слово в той час. Але тільки семантично в Англійська, в той час як вид передбачає певний цикл або цикл. 

Так що, виявляється, Ключове слово, яке використовує C. І в той час як вірно, чому час правда фактично означати назавжди? Ну, в той час як, як ми будемо найближчим часом цінувати все більше, має цей дужках поруч з ним де ви можете помістити логічне вираз. І поки що вираз істинно, цей код, як позначено між цими двома Фігурні дужки, як ми їх називаємо, просто продовжувати працювати знову і знову. 

Так вірно, то вірно. Таким чином, хоча істинних засобів тільки зробити це назавжди. Це майже нерозумно побудувати, щоб виразити себе. Але не було ніякого назавжди Ключове слово в С. Був у той час. І там був дуже простий Логічний вираз, як правда. І таким чином, це, ми побачимо, досягає того ж результату. 

Як ще ви могли б реалізувати цикл? Ну, в порожньому Ви могли б важко код певне число ітерацій в циклі тут. І так, що саме те, що ми могли б зробити в цій версії C, в результаті чого ми маємо так званий цикл. І цикл тут збирається для перебору, дещо загадково, від значення 0 на вгору , Але меншою, ніж 10. 

Зараз змінні в порожньому місці. Ви, можливо, не було привід використати це. Але який у цьому сенс, загалом, змінної ми говорили минулого тижня? Що це? 

Аудиторія: окуляри. 

David J. Малан: Щоб вказати? О, вказує. ОК, відстеження точок, Наприклад, в грі. Або в більш загальному робити що зі змінною? Що утиліта з них? 

АУДИТОРІЯ: Пам'ять. 

David J. Малан: Так, так пам'яті. Це для зберігання то. І начебто дурної візуального I використовується Останній раз це було, як цей скляну кулю. І якби ми хотіли, щоб зберегти то всередині змінної, наприклад зараз значення шість, бо шість пінг-понг кулі в тут. Це просто свого роду сховище контейнер, який під капотом реалізується з битами, 0 і 1, Однак комп'ютер відбувається, щоб зробити це. 

Таким чином, в порожньому, якщо ми хочете мати змінну, ми можемо використовувати помаранчевий блок, як це. Ми назвемо цю лічильник в цьому конкретному випадку. Я ініціалізації його в 0. А що це я тоді робити? Назавжди, кажуть лічильник, який, якщо Ви граєте с, що в порожньому, Ви побачите тільки подряпина. Кішка чи що костюм ви одягаєте він говоритиме кількість в питанні. 

Зміна лічильника на 1 як увеличивающиеся на 1. І так це буде розраховувати з якого і що? Від 0 сезам нескінченності, або до схрестили перерв, або до вас свого роду втрачають інтерес в перегляді як високо він може насправді розраховувати. 

Так як ми можемо перетворити це в C? Це буде виглядати трохи загадковим. Але знову ж, якщо ви подивіться на кожен цих рядків індивідуально вони начебто черги взагалі. Таким чином, очевидно десяткового збирається є спеціальне значення в C. Ми побачимо, що знову. Як осторонь це означає ціле. Так це просто означає кількість. Так ось тип скляну кулю я хочу, один , Які можуть зберігати числа, НЕ пінг-понг кулі. І я збираюся використовувати знак рівності є привласнити йому значення 0. Так ось зовсім як набір лічильник в 0, але в С. 

Між тим, в той час як вірно, що було еквівалентні, звичайно, завжди, хоча це може здатися загадковим, а потім всередині фігурних дужок. І ви можете думати про ці фігурних дужках, які ви можете набрати на клавіатурі, як дійсно бути як кривизни в ці жовті блоки петель в порожньому місці. Вона охоплює кілька рядків коду. 

Printf стає трохи страшно, тому що я см не тільки цитує в дужках. Але що ж тут нового синтаксично в цьому прикладі? Там в відсотка р А потім зворотний слеш н є. Ми бачимо, що й раніше, навіть хоча я не згадував про це. Тоді є кома. А тут ще лічильник. 

Але ми побачимо тільки через момент, що це всього лише стандартний спосіб сказати роздрукувати "Десяткове число," цитата, кінець цитати, деякі десяткове число. Але я збираюся розповісти вам пізніше що це десяткове число є. Так на те, що є кома У цьому рядку приказка Printf, означає йти вперед і друк деякі десяткове число. Так, і до речі, це число незалежно від значення цієї змінної. І так, щоб зробити це більш ясно, ми побачимо приклад незабаром за участю саме Е в контексті реального C програм. 

Тепер просто обернути деякі з цих конструкцій. Логічні вирази, ви не могли б привід використовувати їх у вашій програмі але ви могли б дуже добре, особливо при використанні умов. І ось ці два приклади з Подряпини значить, якщо х менше у, або, якщо х менше у і у менш ніж г, як ми могли б перевести це? 

Ну, в C це просто виглядатиме ось так. Трохи загадкові, більше дужки, деякі дивні амперсанди, але принципово ідеї так просто, як вони в паззл світі. Ми просто перевірка, якщо що менше чимось ще. 

Як щодо умов? У двох словах англійською мовою, що робить це шматок подряпин коду у б ви сказали? 

АУДИТОРІЯ: Порівнює два числа. 

David J. Малан: Порівнює два цифри, і якщо х менше, ніж у він говорить, як багато. Якщо х більше, ніж у він говорить, як багато, ще якщо х дорівнює у він говорить, як багато. А де ж х і у взялося? Хто знає. Це шматок нуля код з контексту. Але те, що ми хочемо зараз зробити, це перевести це на мить, щоб побачити. 

Так як ви звикнете На цьому тижні в задачі Набір 0 грати в цьому світі зліва, реалізувати що ідеї не змінюється На цьому тижні або на наступному, або за його межами. Ми просто збираємося почати писати речі по-іншому, з нашими клавіатура замість нашого миші. 

Таким чином, якщо х менше у, є деякі дужки там, то є деякі фігурні дужки ще раз, щоб вид оформити його як жовті шматочки головоломки робити. І я збираюся Е х менше, ніж у і так далі. 

Що приємно о С, як ви можете бачити тут, є те, що ви не отримаєте цю вкладеності, гніздування, гніздиться, що це обов'язково штовхатиме свій код праворуч. Замість цього, ви можете їсти все, Модельний ряд акуратно подобається. Але це тільки естетична докладно ми побачимо знову найближчим часом. 

Добре. Так що повертає нас до це загадкове дивлячись програма. Давайте насправді написати код. Тепер, як ви йдете з приводу написання коду? Всі ці роки, що ви володіли Mac або PC, настільний комп'ютер або ноутбук, ви насправді мали можливість , Щоб почати писати програмний код. Але ви, мабуть, відсутня спеціальний тип програми. Можна, звичайно, написати код. Але ви не можете обов'язково, з коробки, конвертувати цей вихідний код в об'єктний код, 0 і 1 без чого на комп'ютері? АУДИТОРІЯ: Компілятор. David J. Малан: Так компілятор, право. Тепер більшість з вас, ймовірно, не володіють компілятор, ніколи не скачав компілятор. Але ви побачите, ви можете скачати його як і більшість будь-який інший частині програмного забезпечення. В світі Mac OS, ви могли б скачати або скачали вже те, що називається Xcode або GCC або Clang. Якщо ви приїхали з Вікна світ ви могли б скачали Visual Studio, Visual Basic, середа, як, що. Там в десятки компіляторів в ці дні, що ви могли б використовувати. Але за винятком цього тут те, що це буде біль і, чесно кажучи, технологічне кошмар для сотень людей з різними комп'ютерні конфігурації всім налаштувати свої машини в точності так само, так що ми всі можемо бути на тій же сторінці. 

Отже, що ми, замість того, щоб, зробити в CS50 є ми вам стандартний середу, Linux середу це буде виглядати трохи як то так. Ви побачите більше з цього в Задача Set 1 специфікація, яка буде виходити в інтернет в цю п'ятницю вночі. 

І що це значить є те, що ви й надалі збираються, щоб мати можливість завантажити і встановити програму називається CS50 Appliance. І ви збираєтеся скачати і встановити іншу програму під назвою гипервизор, який є просто вигадливий спосіб досягнення цієї мети. Чи володієте ви Mac або ПК, або Linux, комп'ютер або комп'ютер Solaris, або що з глузду операційної Система ви працюєте, Ви збираєтеся скачати програму називається гипервизор Це збирається запустити CS50 Appliance на комп'ютері незалежно від того, що ваша операційна система. Гипервизор іншими словами перетворює наш матеріал в будь-якій мові, все вказівкам вашого власний комп'ютер розуміє. 

Так що це нашарування. І знову ж таки, це свого роду з тематики в комп'ютері наука, будівлю на вершині речі. Ви, можливо, Windows. Ви, можливо, Mac OS. Але починаючи з наступного тижня ви збирається скачали безкоштовний шматок програмного забезпечення називається гипервизор. Ви збираєтеся скачали шматок програмного забезпечення називається CS50 Appliance. 

Це збирається запустити в гипервизора, , Яка збирається працювати на вашому комп'ютері. І кінцевий результат що всі ми будемо є просте вікно, як це на Mac або ПК що дає нам ілюзію все під керуванням тієї ж операційної системи, без будь-якої іншої Вплив на вашому комп'ютері. І ви можете повний екран це і по суті поводяться як ніби ви працюєте операційна система називається Linux, що і CS50 Appliance заснований на. 

Отже, давайте реально використовувати цей Тепер, щоб написати програму. Ви можете написати програму використовуючи Microsoft Word. Ви можете написати програму використовуючи TextEdit, або Блокнот, або WordPad, або в значній мірі будь-яке слово Програма обробки ви завжди використовували. Але реальність така, що ви не повинні використовувати дійсно будь-який з цих програм. Ви, звичайно, не слід використовувати щось на зразок Microsoft Word, який має сміливий облицювання і курсив, і крупні шрифти і невеликі шрифти, бо комп'ютер не дбати про один з цього. Все, що комп'ютер дбатиме про те, Англійська як інструкції, написані на C. 

Так що ми будемо робити всередині з CS50 Appliance використовуватиме програму вільно доступні, і це попередньо встановлені в цьому прилад, званий Gedit. І Gedit це просто супер просто текстовий редактор, як TextEdit Mac OS в, як Блокнот Windows, що відбувається в виглядати трохи щось на зразок цього. 

Так давайте насправді не дивитися на слайди це. Але давайте насправді йти в сама середу. Я збираюся йти вперед і увійти, в цьому іншому вікні, до мого CS50 Appliance, який я попередньо встановлена ​​на моєму ноутбуці тут. 

Зверніть увагу, що, як Windows, і Mac OS, він отримав деякі меню. Подібно Windows вона ставить це там, а не з Mac OS, яка ставить його там. Але реальність така, що це всі види і те ж. І тут цілий купа програмного забезпечення. Там в Dropbox. Там ціла купа аксесуарів, графічні програми, які ми будемо використовувати пізніше в перспективі для проблемних наборів. Там в веб-браузер, побудований в так що це повноцінний комп'ютер всередині комп'ютера. 

Але я збираюся натисніть цей Крайня ліва білий значок тут, який є іконою для Gedit. І він збирається відкрити вікно , Який має три панелі до нього, лівий, верхній і нижній. 

Тепер це в цьому верхньому правому одного, що Я збираюся насправді написати код. Так давайте зробимо це,. Я збираюся піти в Файл, Зберегти. І ви, можливо, ніколи вже бачили це специфічне вікно, перш ніж. Але це, як Mac OS або Windows. Це просто вікно з усіма папками що у мене всередині цього комп'ютера. 

І я йду, щоб врятувати файл як hello.c. І я піду вперед і натисніть кнопку Зберегти. А тепер зверніть увагу, я є вкладка в лівому верхньому кутку називається hello.c. Так, ймовірно, досить знайомі, навіть якщо ви не перед використанням даної програми. 

А тепер я збираюся ввести в тих досить загадковим послідовність команд що ми бачили кілька хвилин тому. Увімкніть, стандарт I / O.h. Ще на що найближчим часом. Int основний недійсними, відкрита фігурна дужка, закриті фігурну дужку. А потім всередині там, я думаю, де у нас був "привіт світ", крапку з комою. І тепер врятувати. 

Так що це програма, написана на C, написана, таким чином, у вихідному коді. Але я не можу просто запустити цю програму. Я як би хочу подвоїти натисніть на іконку де, але значок не існує іншої ніж файл вихідного коду. Що, знову ж, це процес тепер, Мені потрібно запустити цей файл через? АУДИТОРІЯ: Компілятор. David J. Малан: Так компілятор. Таким чином, в різних комп'ютерах робити це по-різному. Але те, що ми зробили тут, в CS50 Appliance ось Представник, як ви могли б робити це на різних системах, є Я просто збираюся виконати команду під назвою марка. І зробити буквально збираюся цього робити. Зроби мене програма. 

Так що буде запустити компілятор для мене. І назва програми Я хочу зробити це привіт. Тепер зробити це програма. І зробити досить розумний розумію, що якщо я скажу, зробити привіт, це збирається автоматично шукати для файлової називається hello.c просто тому що це спосіб він налаштований. 

Тому, коли я тепер потрапив Введіть тут, в цьому з розуму загадкова лінія щойно виконаний. І повірте мені, перш ніж довго, протягом усього дня, ви зрозумієте, що все з цього марення засобів. Але зараз, просто знаю, що робити запуск виконання компілятора. Іншими словами, було встановлено, компілятор на моєму комп'ютері ось попередньо встановлена на CS50 Appliance що ми будемо здавати вам в задачі 1-му сеті. І це тоді взяв hello.c як вхід, і виробляється мабуть, 0 і 1 на виході. 

І за замовчуванням, що він робить це економить ці 0 і 1 у файлі з ім'ям привіт. І хоча цей синтаксис занадто мощі бути для вас в новинку, просто сказавши точку слеш привіт буде засоби, якими я запустити цю програму. 

Зараз і протягом принаймні кількох тижнів, майже всі програми пишемо збираєтеся бути в чорно-білі текстові вікна. Ні мишей, які не клацання, немає вікон, ні ікони. Ми збираємося тримати його просто і зосередитися на основних ідей спочатку перш ніж ми отримаємо в той вище за рівень, наприклад, як вирватися з гри, що ми говорили про в першій лекції минулого тижня. 

Тому, коли я вдарив Введіть сюди, це еквівалент в тексті тільки навколишньому подвоїти натиснувши значок під назвою привіт. Що ви очікуєте волю відбудеться, коли я вдарив Введіть то? 

АУДИТОРІЯ: Це буде друкувати "привіт світ". 

David J. Малан: Сподіваюся він буде друкувати "привіт світ". І це дійсно так і зробив. Тепер там було деяке загадковий синтаксис тут. Давайте назад всього за момент і подивитися, якщо ми не може розпочати виведення просто майструвати, намагаючись зрозуміти і не, щодо того, що тут відбувається. Що робити, якщо я позбутися від зворотної косою п? Зараз деякі з вас, які запрограмовані перш, ймовірно, миттєво дізнатися, що це означає. Але для тих з вас, які ніколи не програмували, принаймні, думаєте про себе, що відбувається змінити, коли я повторно цю програму? Так що я збираюся повернутися вниз до мого маленькі чорні і білі вікна, які це вікно, в якому Я можу скласти цей. Я збираюся перекомпілювати привіт. Ми збираємося, щоб побачити те ж саме загадковими послідовність команд. І я збираюся зробити точковий слеш привіт. А тепер хто, якби Ви, хто ніколи не програмували, що може бути в цей раз? Так. 

АУДИТОРІЯ: Це не зупинить друк "привіт світ". 

David J. Малан: Це буде to-- шкода? 

АУДИТОРІЯ: Це не зупинить його печатки? 

David J. Малан: Він не буде зупинити друк "привіт світ". Так не погана ідея. Інші ідеї? Так. 

АУДИТОРІЯ: Повідомлення про помилку? 

David J. Малан: Помилка повідомлення, ОК, може бути. Що ще? АУДИТОРІЯ: Це може друкувати Кронштейн з коми, а? David J. Малан: Може друкувати Кронштейн з коми, а. Тому, можливо, що зворотний слеш то деякі вид terminous це важливо. Будь-які інші думки? 

Так що всі гарні ідеї. І справді, це буде щоб бути повідомлення про помилку. Це, напевно, швидше за все, щоб бути відповіддю в цілому протягом наступних кількох тижнів як ми вчимося кодувати тут. 

Але зараз пам'ятаю, що комп'ютери тільки робити те, що ви говорите їм робити. Багато чого, як смішний арахісу масло і приклад желе. Наші людські комп'ютери, як тільки передбачалося робити те, що ви сказали їм робити. Таким чином, в цьому випадку, якщо ви не кажіть комп'ютер перемістити той миготливий курсор на Наступний рядок, він не збирається цього робити. Тому, коли я запустити цю програму Тепер, зверніть увагу на різницю. 

Схоже на помилку. Це естетичне помилка, можливо. Але те, що відрізняється про це Вихід по відношенню до останньої, очевидно? Так. 

АУДИТОРІЯ: Це не зробити нову лінію. 

David J. Малан: Це не зробити нову лінію. Тепер ті з вас, хто Тобто можливо, зроблені веб-сторінок раніше, ви, можливо, знаєте з BR теги або пункт тег, дуже близькі по духу. Веб-браузер не ігноруватиме вас до ви повідомите йому, що робити. Аналогічно, це мова, як C тільки збираюся робити те, що ви скажете їй зробити. 

Так тієї причини, що всіх цих прикладах, до сих пір, є вид випадково був цей зворотний слеш там, це кошти , За допомогою якого ви висловлюєте себе як символ нового рядка, так би мовити. І ви можете почасти оцінити, можливо, що це буде виглядати почасти нерозумно якщо нічого іншого. Якби я хотів нову лінію, просто Натискання Enter, а потім вид з оброблення код зразок цього не повинні дійсно руб вам правильний шлях. І навіть якщо ви не хвилює в даний момент, Ви зрозумієте, що це не є особливо красивий шматок коду. 

І так, що світ вирішили років тому що, коли ви хочете поставити курсор на новий рядок явно, ви повинні явно сказати Нова лінія, коса риска н. І є деякі інші символи, як, що. Але зараз ми просто зосередитися на зворотною косою п. 

Тепер давайте зробимо програму трохи більш цікавим. Я збираюся йти вперед і цього разу відкриє новий файл. Я йду, щоб врятувати це як привіт-1.c. І тільки для ударів, я збираюся піти покласти його в моїй папці Dropbox. 

Як ви побачите в CS50 документація для пристрою, в кінці цього тижня для задачі Встановіть 1, ми будемо заохочувати використовувати Dropbox або деякі еквівалент служба, бо тоді всі вашого коду буде підкріплена автоматично. І так ось чому у мене є пішов у цю папку тут. 

А тепер я збираюся написати трохи відрізняється програма. Увімкніть, стандарт I / O.h, тап_п недійсними. А потім тут Е, привіт світ, що точно так же, як і раніше. 

Але зараз я хочу, щоб надрукувати то це трохи відрізняється. Я хочу, щоб роздрукувати, мовити, "Привіт, Девід." Гаразд, так що, очевидно, треба сподіватися, бути так, що якщо я перекомпілювати ця програма, запустіть його, він збирається сказати "Привіт, Девід." 

Але що, якщо я хочу представити цей вид змінної, Поняття ємності, відбувається для зберігання D - V-я-д, а не важко код його в моїй програмі. Ну що робити, якщо я починаю робити щось на зразок цього? 

Рядок с, так що це змінна. Якщо ви хочете рядок, також відоме, як слово або фразу. Послідовність символів, що ми в програмуванні називають рядок. Ми тільки збираємося в загальному виклику це з, тому що це хороший просте ім'я. Але я міг називати його інакше. 

Я збираюся сказати, рівних рядок з цитата кінець цитати: "Давид," крапка з комою. А тепер я хочу, щоб вставити D - V-я-д в те, що я друк. І перш, ніж ми бачили тизер на екран спеціальний синтаксис що дозволило нам заміною у вартості. Що було особливого Символ кілька слайдів тому? 

Так відсотків. У той час це було відсотків д для десяткового числа. Це насправді не здається доречним тут. Виявляється є ще один символ відсотків, що відсотків с, який стоїть Для заповнювача для рядка. 

Так що тепер, дуже просто, я збирається піти зробити привіт-1, тому цей файл називається привіт-1.c, та натисніть Enter. І я облажався. Що відбувається? Ну, ось, де ми повинні почати зрозуміло, що ми перебуваємо в цій команді онлайнової середовищі, це текст тільки навколишнього середовища. Там немає миші на іконки як папки прямо зараз. І згадую мить тому. У якій папці я говорив Я рятував свій код? Так папка Dropbox. Можна було б назвати нічого. Але це, виявляється, називається Dropbox. Так що я так чи інакше потрібно двічі натиснути на що папка Dropbox, щоб отримати в неї і отримати на мій Код називається привіт-1.c. Насправді, дозвольте мені йти вперед і мінімізувати це вікно на мить. Так само, як Windows, і Mac OS, є папки в Linux. Є папки в CS50 Appliance. Це просто зараз ми обмежившись самі до цього текстовому режимі. 

Але якщо я двічі клацніть на Dropbox, помітите, що це файл, який я хочу зібрати. Але мені це потрібно чорно-білий вікно терміналу, так би мовити. Але мені потрібно, тому, щоб перемістити в цій папці або каталозі. Так трохи таємницею, але Ви звикнете до цього теж. 

В світі Linux, що знову є операційна Система, яку ми біжимо всередині CS50 Appliance, є команда називається CD. А це значить, що я можу зробити компакт-диск, простір, Dropbox. CD, змінити каталог. Право. Назад в день, коли люди були винаходячи комп'ютерів і операційних системи, як це, вони хотіли введіть можливо найменшу кількість натискань клавіш. Так, найпростіший спосіб сказати змінити каталог був CD. 

Так що, якщо я вдарив CD, простір Dropbox, помітити, що змінилося тут. Усередині дужок прилад вид з посміюючись мене і нагадуючи мені, де я знаходжусь. Так відкрита папка Dropbox. Якщо я зараз введіть Ls для Список, знову лаконічним, бо люди не хочуть введіть назад в день л-и-с-т. Таким чином, вони замість цього зробили це ліва. 

Enter. Зверніть увагу, я бачу дві речі, привіт-1.c, а потім ця загадкова річ, джерело 1м. От тільки мій спосіб сказати Вихідний код для тижні 1 понеділок. Це папка я скачав з Сайт CS50, що я зробив сьогодні вранці і просто покласти його в Пристрій заздалегідь. 

Але на поточний момент єдине, що ми хвилює робить цю програму. Тому, коли я друкую зробити привіт-1, Enter. Чорт візьми. Що пішло не так. Так що давайте дражнити це один від одного. І на жаль, це те, де речі отримати трохи напруженим спочатку, принаймні, якщо у Вас є ніколи не програмували. 

Боже мій. Я написав програму два рядки і У мене є чотири лінії помилок. Так що тут відбувається. В першу чергу завжди прокрутки назад і знайти перше повідомлення про помилку, бо дуже часто компілятори просто заплутатися на те, що ви і я. Укладачі досить дурним. Вони роблять тільки те, Ви скажіть їм, щоб зробити. І якщо ви плутайте їх, вони просто збирається вид заламують руки і може бути, кинути кілька повідомлень про помилки чим насправді актуальна. 

Отже, давайте поглянемо на перший. Супер загадкові на перший погляд. Але зауважте, от назва файл, в якому я облажався мабуть. Колон 5, товстої кишки 5 просто означає на лінія 5 на п'ятому характеру. Так п'ята колона символів, якщо хочете, помилка. Використання неоголошений ідентифікатор рядка. Ви мали на увазі стандартний п? 

Ні, я мав на увазі рядок. А потім це почасти копіювання і вставка що я набрав, щоб дійсно привернути мою увагу туди, де я облажався. Так чомусь C, або, принаймні, компілятор не розуміє слово рядок. І це тому, що ми помирилися. Так рядок не існує в C. Що CS50 робить, протягом перших кількох тижнів тільки з класу, буде ми надаємо певну підготовку колеса, так би мовити. І ми поміщаємо ці додаткові колеса всередині спеціального файлу з ім'ям CS50.h. 

Так що це друга з двох файлі імена, які, мабуть закінчуються точка ч. Давайте назад. Printf цю заяву чи функція що, мабуть друкує то до екрану. Але ви не бачили мене реалізації Printf, право. Хтось років тому реалізовані Printf. В якій файл ви парі він або вона поставити виконання для Printf, код для Printf? 

У файлі стандарт I / O.h. Насправді, це, ймовірно, в два файли, стандартний I / O.h, яка виступає за заголовок файл, і стандарт I / O.c, яка виступає за C вихідного коду. Щоб він або вона кілька років тому гепнувся код, який вони написали в цей файл так що люди, як ми років по тому може включити його, так сказати, в наших власних програм. 

І справді, це те, що знак решітки слід слово включають робить. Схоже на локальному жорсткому диску, знаходить файл з ім'ям стандарт I / O.h, а потім ефективно копії і вставляє його в моїй власній файлу. Так що тепер моя програма знає як друкувати на екрані. 

Так за цією логікою, де є рядок визначається? 

АУДИТОРІЯ: CS50.h. 

David J. Малан: CS50.h. І справді, це те, що ми, основний персонал, зробили. Ми придумали кілька типів даних, так сказати, як струна, на додаток до ті, що ви отримати безкоштовно, як междунар. І ми будемо бачити інших як гольця для характеру і ще кілька. Усередині CS50.h мабуть, принаймні деякі згадка про рядку. 

Так що тепер дозвольте мені йти вперед і перезапустити марка привіт-1. Я збільшення знову і схрестити пальці. Тепер по здійснивши один змінити я встановив більшість речей. Але, чорт забирай. Ще відсотків, ніж аргументів даних. Що я зробив не так на цей раз? 

Так що це ще досить загадковим. Але ця помилка на Лінія 7 і характер 21. Отже, давайте дивитися тут. Це трохи тонкі. Але якщо ви думаєте про те, що фундаментальні ідеї тут, можливо, ми можемо дражнити це один від одного. 

Так Е є ім'я функції. Дужки, до цих пір, є як те, що ми ставимо навколо матеріал ми передаємо в якості внеску до функції. Добре, просто довільне людське конвенції. Використовуйте дужки. Усередині цих дужок ми були покласти подвійні лапки, а потім рядок, як "привіт світ". 

Але в цьому попередньому прикладі дуже стисло зробив ми дивимося на с нуля. І у нас був відсоток д, що ще був усередині цих дужок що я покликав на словах? Так. 

АУДИТОРІЯ: Так що це те, що ви приймаєте [Нерозбірливо] зсередини [нерозбірливо] що вони [нерозбірливо]? David J. Малан: Точно. Таким чином, ми мали відсотків д. Але тоді ми повинні були близько цитата, кома, лічильник. Право. Ми визначили, що ми хочемо зробити як заповнювач. Так що я збираюся зробити тут кома, що ти хочеш, щоб я поклав? АУДИТОРІЯ: С. David J. Малан: S, тому сек в цьому випадку це ім'я контейнера для зберігання. Це ім'я цього скляну кулю. Якщо раніше це було лічильника в тому, що Простий приклад подряпин ми дивилися на. Так що тепер, зробивши два зміни, дозвольте мені збільшити і спробуйте ще раз скомпілювати цю програму. 

Тепер я бачу, що загадкові лінії. Але що насправді назвати компілятора. Clang це ім'я компілятора. Зробити це просто врятував мене головний біль ніколи введення цього довго божевільний команду з. Так що тепер, якщо у мене точка слеш привіт-1, Я повинен бачити "привіт, Девід." 

Досить захват, хоча, чи не так? Ми могли б зробити це багато простіше , Не кажучи про змінних і CS50.h і все, що. Так давайте зробимо це трохи більш цікавим. 

На додаток до CS50.h, маючи такі речі, як рядки заявив, бібліотека CS50 також має декілька функцій. Так що просто, як років тому, хтось написав Е і поклав його в стандартному I / O.h і деякі інші файли. 

Ми, співробітники CS50, написав функцію називається GetChar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, і ми ставимо ті в файлі називається CS50.h і CS50.c. І ми їх усередині з CS50 Appliance. І люди можуть також скачати їх в Інтернеті, якщо вони хочу поставити їх на їх власні комп'ютери, а також. Який повинен сказати, що ми створили Функції, які отримують дані від користувача. Я не знаю, що все з цих типів даних є. GetInt почасти просто, як отримати ціле число, так чи інакше від користувача. І GetString, ймовірно, як Get слово або фраза від користувача. 

Так давайте зосередимося на тому, що. І я збираюся повернутися в прилад, і я збираюся йти вперед і збережіть цей файл як, давайте називати це привіт-2.c як мій другої версії. І давайте зробимо пару змін. 

На цей раз замість того, щоб жорсткого кодування Девід, який робить неймовірно узгоджується але в захват програма, що, якщо я замість робити GetString? Тепер зверніть увагу GetString має відкриту дужку, закрита дужка, тому він не вимагає введення. Це просто буде йти, отримують рядок від користувача. 

А тепер кілька слів про іншу синтаксис. Крапка з комою просто закінчити рядок коду. Вам не потрібно їх всюди. Але це просто означає, що я зроблено з цього рядка коду. Дозвольте мені перейти на інший заяву або функція. Рядок оголошує змінну. Рядок, як кажуть дати мені миску, будь ласка. І дозвольте мені сказати рядок в ньому. 

А тепер знак рівності. Що таке знак рівності по суті, еквівалентно? 

АУДИТОРІЯ: Зв'язати. 

David J. Малан: Так, присвоєння значення. Так що, якщо я, наприклад, виклик ця функція GetString, і ми побачимо, в момент, це збирається запитувати у користувача рядок. Це як повідомили мені тоді написати D-A-V-I-D на аркуші паперу. І коли я говорю рядок с дорівнює GetString, одно насправді не означає, рівними в C програмування. Це означає, призначити праворуч стороною до лівої сторони. 

Так я отримав рядок. І знак рівності означає поставити його в сховище контейнер, званий с. А потім передати цей геть Е насправді робити свою справу. 

Таким чином, кінцевий результат, то відбувається щоб виглядати трохи інакше. Давайте дійсно роблять привіт-2. Або може працювати. Ви прямуєте. Зробити привіт-2 працював. Dot слеш привіт-2, Enter. 

Я, здається, нескінченне петля або щось. Нічого не відбувається. Чому? 

АУДИТОРІЯ: Це робить нескінченний цикл. David J. Малан: Це нескінченний цикл. Це свого роду чекає мене, щоб фактично надають його деяких вхідних сигналів. Отже, дозвольте мені йти вперед і ввести в Давиді, та натисніть Enter. А тепер він каже: "Привіт, Девід." Якщо я запускаю її знову. Давайте ввести Роба, "привіт, Роб." 

Тепер це найгірше Користувальницький інтерфейс ніколи. Користувач мабуть повинні знати, що робити. Але незалежно від того. Використовуючи ці ж будівлю блоки так само, як в порожньому, ми можемо вирішити цю проблему і сказати, то, як ваше ім'я, будь ласка, товстої кишки, простір, закритий цитата, близько дужка, крапка з комою. Отже, ще раз багато дурість з синтаксисом. 

Але зверніть увагу, я просто додав паззл вище цього і вище цього. Так що тепер, якщо я повторно це, привет-2, Enter. Хвилиночку. Що не так? Це не поводиться по-іншому. Так. 

АУДИТОРІЯ: Ви не побігли зробити знову. 

David J. Малан: я не зробив запустити зробити знову, прямо. Так я змінив свою вихідний код. Але, знову ж таки, є те, що потік. Вихідний код через компілятор дає Ви новий об'єктний код, або 0 і 1. Так що мені потрібно насправді повтор марка привіт-2 Enter. ОК, то, схоже, сталося. Dot слеш привіт-2. Ваше ім'я ласка. І щоб було ясно тепер, чому курсор на тій же лінії? Точно. Я не ставив зворотний слеш н тут в своєму коді. Так що тепер я можу написати щось на зразок Daven, Enter. Я можу запустити його знову і введіть щось на зразок Гейба, Enter, і ми отримуємо іншу програму знову і знову і знову. 

Тепер, в кінцевому рахунку ми збираємося потрібно використовувати кілька різних можливостей. Нам треба ввести в кінцевому рахунку, деякі умови, щоб робити речі умовно. Може бути, петлі, щоб ми могли зробити речі знову і знову. 

Може бути, це було б непогано, якби ми могли б реалізувати свої функції, як ми могли б реалізувати самостійно Е або наша власна версія GetString і GetFlow, оскільки в кінцевому рахунку навіть За допомогою цієї команди середу рядка ми можемо зробити навіть самий візуально цікавим речей. 

Дійсно, на закінчення дозвольте мені зробити це. Я збираюся йти вперед і закрити ці вікна і відкрити цей значок тут, , Який є просто більше версія, що вбудовані вікно терміналу. Так Gedit має не тільки місце для мого коду, але і вбудований у вікні терміналу, чорно-біле вікно, де я можу працювати команд. 

Я тільки що сталося, щоб відкрити велика версія цього. І зараз я збираюся йти в папка, я вже покласти заздалегідь на сайті Курсу. І я збираюся йти вперед і відкрити файл з ім'ям thadgavin.c, яка була написана кимось іншим. 

І якщо ми подивимося на це, це не вид коду ми писатимемо, так як Мета цього коду було написати найкрасивіших шукаю код, який він або вона могли, незалежно від того, є чи ні інша людина могла ніколи зрозуміти цей код. 

Дійсно, кожен рік є що називається затемнений конкурс C, який для справжніх гіків, які пишуть Код, що ніхто інший не може читати, але щось робить або дійсно просто або дійсно дивно. І ми думали, що укласти з цим поглядом на те, що досить дивно Ви, можливо, бачили одного разу. Але ми в кінцевому на це примітка, точка слеш, thadgavin. І ось, що чекає. 

Ось саме для CS50. Ми будемо бачити Вас в середу. 

[МУЗИКА ГРАЄ]