>> [ВІДТВОРЕННЯ ВІДЕО]
>> -А Тріумф математичне і механічною вміння
це великий новий автомат калькулятор в Гарвардському університеті.
Складні проблеми математики поклав через машину в закодованому вигляді
на стрічці точно вирішена в мізерно мала частина часу, необхідного
для розрахунку людини.
Призначений для прискорення всіх форм математичне та наукове дослідження,
гігант механічна мозок буде працювати для ВМС США до кінця війни.
>> [КІНЕЦЬ ПЕРЕГЛЯДУ]
>> Девід Дж Малан: Це, це CS50.
Минуле було чарівне місце, але якщо ви коли-небудь
Цікаво, що цей пристрій в Гарвардському наукового центру,
це дійсно частина з Гарвардський Марк I, і це
на дисплеї в даний час за останні багато років.
І те, що ви побачите вбудовані в набір проблем
один погляд за лаштунки на те, що цей пристрій зробили, і робить,
професора Гаррі Льюїс, який в наука відділ тут комп'ютер.
Так про це трохи пізніше.
>> Але сьогодні ми починаємо перехід з минулого тижня на це,
і ми привеземо згадки однієї фотографії тут
що насправді досить відомий.
Хто-небудь знає, що це тут на екрані?
Принаймні, згідно з міфом.
Так.
Аудиторія: перший вірус.
Девід Дж Малан: Так було, мовляв, найперший фактичний помилка в комп'ютері.
Зараз у реальності слово помилка, за помилку в програмі,
був з нами для деяких час у фізичному світі,
і це був один з перших документально часи, коли хтось дійсно
зірвав великий молі з Марка II комп'ютер, покладіть його в сполучному,
а потім записав її в якості першого відома помилка
щоб насправді були знайдені фізично.
Так, таким чином, був введений що в сьогоднішній знання.
Все, починаючи від останньої тиждень доступні в Інтернеті.
Зокрема ресурсів, які ви, можливо, не обов'язково помітите, особливо
якщо сюди особисто.
Таким чином, одна з навчальних побратимів кожен рік робить канонічний набір нот,
так що ви не повинні тримати Ваша голова вниз, намагаючись
транскрибувати більшість нічого що може трапитися тут, у класі.
Так зрозуміти, що ті так званий [? Scribd?] Зауваження
в Інтернеті, звичайно слайди і вихідний код, який ми використовуємо в класі.
Ми повнотекстові стенограми також доступні.
Так що якщо ви смутно пам'ятаю деякі Термін, і ви хочете, щоб подивитися його трохи
більш легко, зрозуміти, що все того, що для пошуку в Інтернеті.
Як покрокові також.
Дійсно, сьогодні ми починаємо дивитися на мова програмування низького рівня,
скоро буде відомо до нас як С, і це дуже легко
у свого роду заблукати після декількох моменти часу, і потім начебто подиву
як ми фактично отримали деякі більш складний приклад з простих.
І так розумію, що ми будемо вишневий вибрати якийсь під час занять
представницьких прикладів, але розуміють, що набагато більше, також
доступні в Інтернеті, так що ви можете працювати через нього в своєму власному темпі,
Однак ви найбільш комфортно.
>> Але ми зупинилися з програми, які були тільки в цьому.
Так я натискаю зелений прапор, і що це програма?
Каже, привіт, світ.
Це робить кішка сказати привіт у своєму маленькому світі
в лівому верхньому боці користувальницького інтерфейсу нуля в.
Але ми почали впроваджувати деякі терміни минулого тижня.
І так, все, як це ми назвали те, що?
Що може бути загальний термін для цього?
Так.
Метод або заяву.
Звичайно, це дію.
Зробити це.
І все ж було інші форми подряпати,
крім того, ці так звані Заява, вони також
такі речі, які ми називали те, що?
Так.
Таким чином, цикл.
І в цьому випадку, ця річ повтори, очевидно, в 10 разів.
Там це назавжди блок.
Там є пара інших.
І сьогодні ми збираємося, щоб побачити, як перевести це в більш сучасному світі,
якщо хочете, навіть якщо це збирається здатися на перший погляд
набагато складніших.
Але це були дійсно петель.
І тоді у нас є такі речі, як це, який мав таку форму,
і, по суті задаються.
І ми говорили на них як що?
>> АУДИТОРІЯ: логічне вираження.
>> Девід Дж Малан: Так.
Логічний вираз.
Щось, що є істинним або брехня, так чи ні, один або нуль,
Однак ви хочете, щоб дивитися на світ.
Але ми назвали тих, Логічний вираження, і ми підключити їх
в умовах, або філій.
І в світі Подряпин, все красиво
блокування з погляду його форми, якщо він робить логічний сенс робити так,
але ви не повинні зупинятися на просто робимо одну справу умовно,
ви можете мати прислів'їв розщедритися на дорозі
і робити ту чи іншу, якщо умова істинна чи ні.
А потім, як ви побачите, якщо ви ще цього не зробили,
Ви навіть можете гнізді ці блоки.
Так подряпин росте, щоб заповнити форми що ви, можливо, захочете, щоб вставити в нього,
так що ви можете висловити найбільш якась логіка, що ви, можливо, захочете зробити.
>> Тепер кілька слів про оголошенням для тут і Нью-Гейвен.
Так секціонування починається сьогодні.
URL-адреса для цього на курс-х сайт, для тих, хто незнайомий.
Розділи буде можливість зібратися разом
в набагато більш інтимній обстановці ніж [? Сандерс?] Дозволяє,
з 10 до 20 з однокласниками викладання стажування в різних напрямках,
і різні кроки, якщо ви того побажаєте.
Дійсно пропозиції курсів різні розділи
для тих, хто менш комфортно, більш комфортно, і десь між ними,
і роль великого пальця тут, немає формальне визначення,
але якщо ви менш комфортно, ви начебто знаєте це.
Ви трохи безстрашний про Ідея активізації ногу, мабуть, назад
в класі, або показувати аж до In Between розділі.
Якщо ви вже програмування, так як вам шість років, більш комфортно,
можливо, для вас.
І якщо це вид жеребкування, це саме те, що між ними
призначається, щоб бути.
>> Тепер, в той же час, для класу такого розміру,
це бере нас деякий час, щоб розділі все, тому ми так звана,
супер розділи, підійшовши це вихідні та на початку наступного тижня,
так що погляньте на сайті Курсу для тих, які, звичайно широкий,
а також для тих, хто знімав хто не може зробити їх.
І самі розділи почне на тиждень три CS50 нульовим індексом.
Проблема встановити 0 вже на веб-сайті курсу.
І розумію, що у вас є дев'ять днів в цьому кінці семестру.
Так що це оновлення від останнього році, коли у нас було п'ять днів пізно.
>> Так що, якщо вам цікаво ,, у нас є дев'ять проблемних набори.
Ви повинні дев'ять днів пізно, кожен з яких Ви можете витратити тільки один в тиждень на.
Це фактично робить все проблема встановлює за п'ятницю,
але мета покласти трохи трохи психологічного тиску
на вас, щоб спробувати отримати речі в четвер
тому що, як ви скоро побачите, на краще чи на гірше, більшість
все в світі програмного забезпечення закінчується зайняв значно більше часу, ніж ви очікуєте.
Так вважають свого роду можливостей, щоб допомогти
собі мету четвер, але розраду в тому, що, так,
все через п'ятницю.
І якщо ви представити їх на Четвер, це чудово.
Там немає бонусних балів або додаткових кредит на ці терміни.
Це означало, що тільки милицю.
>> І робочі години, і тут і в Нью-Хейвені,
в обличчя, якщо ви хотіли б зустрітися з будь-яким з наших курсів
викладання стипендіатів та центрів сертифікації для допомоги.
>> Добре.
Так що тепер, давайте зробимо це більш реальним.
І на мить він збирається почати щоб отримати трохи більше таємницею, але дуже
швидко в п'ятницю і на наступному тижні ми будемо
в змозі зробити набагато більше, ніж ми могли досі в подряпина.
Таким чином, ми ввели код останньої тиждень, хоча Pictoral.
Це було головоломки.
І ми формалізовані, що це те, що називається вихідний код,
але чи буде виглядати?
Ну, це виглядало трохи щось на зразок цього.
І справді, тільки виду дражнити, де ми можемо піти з цим.
Я збираюся йти вперед і відкрити вікно тут,
і я просто хочу, щоб вибрати новий файл.
І я йду, щоб врятувати цей файл а щось на зразок привіт точка в.
Більше на тому виборі слова на хвилину.
І це, як хтось може йти про написання програми.
Включити стандартний I / O точка годину, INT основний порожнеча, а потім відкрити фігурна дужка, недалеко
фігурна дужка, Printf привіт коми світ, Обернена коса риска н, крапка з комою, Зберегти, зроблено.
ДОБРЕ.
Я написав мій перший програма, але вона збирається
щоб бути неймовірно захват тому що, коли я насправді
запустити цю програму, звичайно, перший письмовій формі зробити привіт,
а потім точка слеш привіт, і ми пройти через це в набагато більш докладно
в даний час, це все, що він робить.
Будь-яка поп не відкривати будь-які вікна.
Це нічого не робити особливо фантазії.
Все це робить те, що я сказав його робити, але, як ми доберемося до цього?
І, як ми будуємо на що?
Ну, давайте познайомимося кілька різні поняття тут.
>> Таким чином, одна, ми збираємося почати використовуючи програму під назвою компілятор.
Компілятор існує Mac OS, Windows, Linux, будь-яку кількість операційних систем,
і ми скоро ввести вас в Середа, що ми будемо використовувати,
але компілятор просто загальне термін для частини програмного забезпечення
який приймає вихідний код і виробляє об'єктний код з нього.
Іншими словами, якщо ви є в якості вхідного джерела
Код, щось на зразок того, що я тільки що ввели, це в кінцевому рахунку призводить об'єктний код.
І об'єктний код насправді просто химерний спосіб сказати, що це виводить
нульовий і один років.
Іншими словами, джерело Код, хоча це
буде виглядати трохи Arcane, і трохи менш дружнім
ніж нуля на перший погляд, це принаймні щось
що ми, люди, можемо зрозуміти.
Це свого роду виглядає і звучить як Англійська, хоча це дуже коротким.
У той час як в програмуванні нулями і одним, оскільки наші попередники були зробити,
Кілька років тому, не було Особливо весело виклик.
І все ж, це те, що комп'ютер як і раніше розуміє.
Так компілятор отримує від нас Вихідний код в об'єктний код.
Це як відкриття файлу з компілятор, і, коли ви збережете його,
ви отримаєте ці нулі й одиниці.
Таким чином, ми побачимо, як зробити що в хвилину.
>> Але давайте спробуємо, щоб забезпечити Міст між останній тиждень, і це,
так що навіть, як ми зациклюватися на таких речах, як фігурні дужки,
і крапки з комою, і дужки, і всі ці інтелектуально цікавим
аспекти програмування, що дуже зрозуміло поїздка людей рано на,
розуміти, що всі ідеї Сьогодні, такі ж, як у минулому.
Так, нарешті, ми побачили цей приклад тут, Hello World програма.
Ну, починаючи з сьогоднішнього дня, якщо ми хочемо здійснити той же програму,
це буде виглядати дещо як це.
І ми пояснимо, перш ніж довгий який Int, а головне, сили, і все, що
є, але, принаймні я бачу тут вже знайомі Hello World.
>> Між тим, такі речі, як Функція, скажімо привіт,
дуже просто буде дуже просте твердження, як це.
Printf привіт світ, з деякими цитує, зі зворотного косою риси,
з комою, але докладніше про це в майбутньому.
Петлі, тим часом, це цикл, який, Звісно, ​​каже привіт світ назавжди,
і це одна збирається виглядати трохи дивно, ніж у останньої,
але якщо я щось сказати як, в той час як вірно, я
Потім можна роздрукувати Привіт світ знову і знову і знову і знову.
А потім, як ви можете вид з початку, щоб вивести тут,
Ця Конвенція використання Фігурні дужки це свого роду
походить охоплює відступом рядки коду там.
Printf рядок коду так само, як жовтий шматок головоломки нагорі.
Таким чином, ми не збираємося говорити вічно, ми збираємося сказати, в той час як вірно,
але ми побачимо, чому це трохи пізніше.
>> Між тим, якщо у нас є цикл, як це, де ви повторити щось кінцеве
число раз, цього разу теж це збирається зайняти трохи звикнути
, Але це буде сказати Int я отримує нуль, я менше, ніж 10, я ++,
а потім Printf знову.
Але там буде візерунки.
А для тих з вас, хто знайомий з А. П. інформатики, або Java,
або будь-яку кількість інших мовах, майже всі з цих конструкцій
Таким чином, далеко повинен виглядати в основному знайомі.
>> Так змінна.
Так ось простий подряпин уривок, що встановлює змінну лічильник до нуля,
а потім назавжди говорить лічильник, і Потім він змінює значення лічильника на одиницю.
Так що починається з нуля, а потім один, два, три.
Ну, як ми могли б ввести, що в ця нова мова трохи аналогічно?
Int лічильник дорівнює нулю, у той час як вірно, що
є те, що та ж сама ідея, перш ніж з робити щось назавжди,
і я просто хочу, щоб PRINTF.
І тепер це стає трохи дивним, відсотків я, але про це попереду,
але ці ідеї в точності те ж саме.
Ми тільки зараз повинні дотримуватися синтаксис, що комп'ютер
збирається зажадати від нас.
>> Логічний вираз, щось на зразок SX, ніж у менш, або х менших у,
і в меншого, ніж р
Це буде виглядати дещо як це, з дужки всього
як у математиці для хорошої заходом просто гарантувати, що порядок операцій
як ми маємо намір.
А тепер, умови.
Так що, якщо х менше, ніж у, скажімо, х менше ніж у, то, якщо х більше у,
сказати х більше у, в іншому випадку логічно, х повинна бути дорівнює у.
Таким чином, ви могли б реалізувати щось на зразок цього в порожньому,
або ви могли б реалізувати він у цьому синтаксисі.
І знову, фігурні дужки є свого роду даючи нам ту ж форму, головоломки
штук, але синтаксис, тепер, мабуть починають слідувати деякі закономірності.
>> Отже, що ж це нам дає тут?
Так що ми тоді на нашому основної програми.
Давайте насправді, в даний час, зробити щось з ним.
Таким чином, в цьому найперший рядку ми бачимо різке включають,
Standard I / O, точка год, а то деякі дивні кут
Кронштейни нижче, що. INT основний недійсними, а потім Printf привіт світ.
Так що просто зробити крок.
Хтось, хто ніколи не програмував раніше, принаймні, пояснити одну з цих ліній.
Використання можливо, деякі з жаргон минулого тижня.
Що Printf, наприклад?
Так.
>> АУДИТОРІЯ: [нерозбірливо]
>> Девід Дж Малан: Так.
Це функція, або заяву, від термінології минулого тижня.
І це дію що робить щось.
Тепер ця функція, або це твердження, що не
це, здається, прийняти якісь вхід?
І в чому сенс робить це здається, прийняти вхід, якщо так?
Вхід, що я маю на увазі, що?
Так.
>> АУДИТОРІЯ: [нерозбірливо]
Девід Дж Малан: Так.
Так видряпати кілька штук головоломки де ви можете параметризованим його.
Ви могли б сказати повторення блокувати, скільки разів повторювати,
так, щоб був вхід види, і, як нуля
був маленький білий заповнювач за кількістю ви вводите,
так що ми використовуємо в цьому Текст світу дужки
щоб дати нам, що круглу форму в яких ми можемо підключити свій вклад.
Адже десятки років тому коли цю мову, званий С,
був винайдений не один Передбачається, що це один з нас,
ці кілька років потому, ми б потрібна функція, що говорить привіт.
Вірно?
Було б непогано, якби там було шматок головоломки, або ключові слова,
що називається привіт, що буквально говорить привіт.
Але ми не повинні цього.
Ми можемо щось набагато нижчою Рівень, як загального друк
Команда, яка приймає введення, і друкує все, що ми хотіли.
Так помітити тепер картина що почнуть з'являтися.
Відкриті Хлопець, недалеко знаходиться дужка мабуть, охоплює вхід,
і тоді я бачу двічі цитує на обох кінцях.
Існує ще дивно зворотний слеш п, але, сподіваюся, тепер ви
може почати візуалізувати принаймні, Printf приймає в якій-небудь формі введення.
Не так, як зручний Подряпина, але це просто
як того підключений деякого значення там.
>> Добре, тепер давайте насправді зробити щось з цим.
Таким чином, деякі з вас, можливо, знаєте, від маючи перед покупки клас,
базікали з друзями, що протягом багатьох років
ми використовували те, що називається CS50 прилад.
Це був термін, що описує технологію називається віртуальна машина, яка
це частина програмного забезпечення, ЩО ВАШІ попередники б завантажити з
Сайт Курсу безкоштовно.
Вони також завантажити безкоштовно шматок програмного забезпечення, званого гіпервізором,
те, що називається, як VMware, або VirtualBox, або будь-яку кількість
інші інструменти, і на їх Mac або PC або щось комп'ютер вони мали минулого року
і в минулі роки, вони буде двічі клацніть значок
щоб запустити цю програму називається гіпервізор.
А потім всередині цієї програми вони відкриють CS50 прилад.
І ефект в тому, що Чи ваш попередник
біг Mac OS або Вікна, він чи вона
Згодом було нове вікно на їх Екран працює середовища CS50 в.
Таким чином, віртуальна машина дозволяє запускати одне операційної системи усередині іншої,
і це саме те, що ми зробили.
Протягом майже всього курсу ми використовувати операційну систему під назвою
Linux, зокрема, Ubuntu Linux, і це
це дуже хороший спосіб у минулому років Переконавшись, що все в процесі
тільки що ту ж середу.
І ви можете використовувати будь-який вид комп'ютер, ви дійсно хочете.
Серед недоліків, тим не менш, були, як це було два гігабайти
щоб завантажити цей річ.
Це не обов'язково працювати на супер добре люди, чиї комп'ютери, що, може бути, тільки
був концерт або так ОЗУ, або Не занадто багато гігагерц швидкості процесора,
і тому в цьому році, за це й інші причини,
у нас був перехід до цього середовища.
Так званий CS50 IDE, який на базі програмного забезпечення з відкритим вихідним кодом,
і підтримує платформу що компанія під назвою Cloud9
підтримує в Європі, що дозволяє нам мати по суті
що точно такий же, як у середу останні роки, але в так званій хмарі.
>> Так що хмара?
Ви, напевно, натиснув його значок на вашому Mac або PC.
Що таке хмара?
Так?
Трохи голосніше.
Так.
Це просто купа комп'ютерів в іншому місці, що зберігати дані і запустити
Програмне забезпечення тощо.
Так що це насправді просто до слова де юре опису [? орендованої?]
комп'ютери, які живуть в іншому місці.
Це ви, самі, не обов'язково мати.
Так що, коли ваші дані, або ваш програми, в хмарі,
це просто означає, що це на когось Чужа комп'ютери в іншому місці,
а не, швидше за все, на вашому фізична ноутбук або настільний.
І ось що CS50 IDE зараз.
>> Відтепер ви будете йти до визначеної Посилання, що познайомить Вас
щоб, в задачі набір 1, в цьому тиждень, які потім, при вході в систему
дати вам цю середу.
І так само, як до подряпин був кілька різних панелей, що беруть участь,
так само IDE CS50 мають саме це.
На верхньому лівій стороні тут, ви побачите знайомий файловий браузер.
Таким чином, будь-який з файлів, які помістити в цю середу
тільки збираєтеся перебувати тут.
Файли та папки.
На вершині прямо тут, Ви побачите місце,
де ви можете написати свій код.
Спочатку в C, а потім у член в PHP і JavaScript,
і, можливо, для остаточного проекти, Рубі або Java або Python,
або будь-яку кількість мов підтримується в цьому середовищі.
Це зовсім не пов'язані щоб CS50 спеціально.
>> А потім в нижньому кутку тут, особливо для тих, хто більш комфортно,
у вас є щось називається вікно терміналу.
І це вікно терміналу дозволяє Вам виконати будь-яку команду, що вам
хочу в цьому хмарному середовищі.
Це дозволяє встановлювати будь-яка додаткова програма
що ви хочете, тому що ви так називається корінь, або адміністратора.
Отже, іншими словами, навіть якщо це в кінцевому рахунку, в хмарі,
і хоча у нас є спрощена це до деякої міри
за замовчуванням, в буквальному сенсі введення, завдяки Дену Armendariz, і Діно,
і Ден Бредлі в команді CS50 протягом багатьох повз багатьох місяців, менш комфортно
режим, який приховує багато з Спочатку заплутаною відволікання.
Усі існує в являють собою типовий комп'ютерну систему
що ви могли б використовувати в реальному світі.
>> Отже, що ж все це означає, і що ми можемо реально зробити з ним?
Давайте насправді заглянути в програмі.
Так що я збираюся відкрити поточна середу тут,
що тільки наша Chrome браузера, який може бути Firefox,
може бути Internet Explorer, або який-небудь інший браузер, а також.
Це повний скринінг тут на даний момент.
І я хочу, щоб насправді дражнити крім того, що ця програма була.
Отже, давайте поглянемо, шляхом збільшення в до початку, на те, що я зробив, і як я потрапив сюди.
Так ось ті, точне же рядків коду.
Так що ця заява, як ви згадали раніше.
Функція, що говорить привіт.
Фігурні дужки, на лінія чотири рядки шостій,
імовірно вид конверта що лінія пов'язати його
із суттю моєї програми.
Так насправді, це головне ключове слово, це там, на третій лінії,
Ви можете думати про те, що в якості еквівалента того, що, коли зелений прапор клацанні
блокувати в подряпина.
Так що все, що ми маємо тут, коли зелений прапор клацанні друк, або сказати,
Привіт Світ.
>> Але давайте здогадатися, тепер, на те, що це перше, більш таємницею лінія, є.
Sharp включають, відкритий під кутом кронштейн, стандартний ввід / вивід точка год,
закрити кутом кронштейн.
Що робити, що, можливо, особливо якщо ви програмували
перш в якій-небудь іншу мову.
Так?
>> АУДИТОРІЯ: [нерозбірливо]
Девід Дж Малан: Так.
Точно.
Таким чином, це дає вам доступ до бібліотека, так би мовити, функцій.
І бібліотека функцій Функції, які хтось ще
написав, або недавно або давно, так що ви
не потрібно винаходити колесо.
Наприклад, ми не повинні знати, в 2015 році,
як писати код, який ставить характер на моєму екрані.
Хтось інший вже вирішив, що з функцією PRINTF
так що я можу сортувати абстрактного від цього, або шар
на вершині його або її Код, і тепер просто взяти
зрозумілим, що будь-яка програма я пишу може щось надрукувати на екрані.
Таким чином, це перша лінія є на першому етапі включає в себе так зване заголовний файл
для стандартної бібліотеки.
Так бачите, мова які ми в даний час працює
була стандартної бібліотеки з великою кількістю функцій.
Printf є одним з них, і що перший рядок коду
означає дати мені доступ до ці функції, так що я
не потрібно винаходити колесо, що.
>> Тепер давайте перейдемо до нижньої частини вікна і робити те, що я робив раніше.
Хвилину тому, коли я був свистом через код,
вводити його в перший раз, Я дуже швидко набирається, зробити привіт.
Що було те, що всі про б ви здогадалися?
Що я роблю?
Так?
Не зважай.
Все добре.
Так.
АУДИТОРІЯ: Компіляція його.
Девід Дж Малан: Так.
Це було просто компіляції.
Вірно?
Навіть якщо це абсолютно не знайомий Вам, це досить по-англійськи, як.
Це, звичайно, не нулі і ті ,, так що я досі
потрібно, щоб запустити його через що так звана Програма, компілятор, що відбувається
прийняти його в якості вхідних даних і виробляти продукцію.
І принаймні, в даний час, в ця середу Linux,
але це не обов'язкова умова, це там, де ми почнемо,
Ви взагалі взаємодіяти з комп'ютерні системи, як це
на так званій командного рядка.
Так з миготінням швидке і клавіатура,
і не стільки миша, а не стільки вікон та іконки і меню,
а всі текстові.
І хоча це відчуває, спочатку погляд, може бути, як крок назад,
це насправді набагато більше, потужний і виразний спосіб
контролювати комп'ютер особливо, як ви,
самостійно, стають більш комфортно з менш.
Це відбувається, щоб дозволити вам зробити багато більше речей, ніж просто якийсь Microsoft
або Apple, дозволяє робити з їх графічне операційної системи.
>> Так що, коли я вдарив Enter, зараз, нічого не відбувається на цей раз
тому що очевидно Програма привіт до дати.
І те, що була команда Я побіг за що?
Точка слеш привіт, і привіт світ.
Тепер давайте крок резервне на мить.
Виявляється, що зробити привіт просто Спрощений спосіб компіляції програми.
Давайте просто ввести одна частина жаргон,
але потім відійти від нього, так як це не
все, що цікаво для сьогоднішніх цілей.
Компілятор ми збираємося почати використовувати називається Брязкіт, для мови C.
І це програму, яка просто працювати як ми робили в командному рядку там.
І тому, якщо я хочу компілювати програму, що я
написав у файлі під назвою привіт точка с, я буквально просто введіть брязкіт привіт C
увійти.
>> Найсмішніше в тому, з історичних причин,
якщо я не вказати Назва програми
що я хочу для висновку, якщо я не вказати ім'я файлу для тих нулів
і ті ,, дуже дивний Конвенція була прийнята роки тому
де він відчував себе свого роду хороший відповідь в той час,
а давайте просто довільно називаємо Перша програма ми збираємо точку поза.
Приходить першим в алфавіті.
Від'їзду, це вихід.
Таким чином, ми будемо називати програму за замовчуванням точка з.
І це нормально, тому що, якщо я хочу, щоб запустити програму в цьому тексті, заснованого
навколишнє середовище, я просто введіть точка слеш точку з увійти.
І вона буде працювати саме так, як раніше.
Отже, давайте подивимося, що дуже швидко.
>> Так що, якщо я повернуся в мій вихідний код на CS50 IDE,
і я замість цього брязкіт привіт ліжечко C Введіть повідомлення ніщо, здається, щоб це відбулося,
але майже завжди в ця середу Linux,
коли нічого поганого не здається статися, що означає щось хороше сталося насправді.
Якщо ви не бачите помилку повідомлення, все, ймовірно, добре.
І справді, якщо я зараз точка слеш точку з ввести, я веду свій же програму.
Я досі програму привіт від раніше, тому що насправді, це
буде так набагато приємніше просто введіть зробити замість запам'ятовування
ці заклинання команди, але давайте подивимося, як ми
може поліпшити це, тим не менш.
>> Таким чином, це команда для компіляції коду.
Ця команда для запуску скомпільований код надалі.
Як я можу вказати ім'я файлу?
Ну давайте просто ввести ще один шматок жаргоні.
Коли ви перебуваєте в цьому текстовий навколишнього середовища,
Ви будете хотіти, щоб вказати речі, названі аргументи командного рядка.
Які це просто химерний спосіб сказати, Іншими словами в рядку, що
змінювати поведінку незалежно Програма ви працюєте.
Так зокрема, програма я працює, ввівши ім'я брязкіт,
є програма під назвою Clang.
Так що це або стара школа еквівалент подвійного клацання
на Microsoft Word або Значок деяких програми.
Я замість цього просто ввівши його ім'я, але в цій версії команди,
Я тоді тире ущільнювальне простір привіт привіт простір точка гр.
Таким чином, навіть якщо ви ніколи не грав у цьому світі колись,
просто взяти те, що припущення зовсім тире про робити привіт?
Або те, що це говорить брязкіт робити?
Так.
>> АУДИТОРІЯ: [нерозбірливо]
Девід Дж Малан: Так.
Це просто встановлює вихід файлу, щоб бути привіт замість дурніші точка з.
І, дійсно, давайте спробуємо це.
Так що, якщо я зараз, в першу давайте зробимо це, г м привіт.
Ось видалити.
І це скаже видалити звичайний файл привіт, який
надмірно таємницею, але це тільки кошти ви хочете видалити файл,
і я друкую у для так.
І зверніть увагу, якщо ви глянувши на вершині ліворуч, вона зникне з там.
Дозвольте мені тепер робити брязкіт тире виводу і Я збираюся йти вперед і робити привіт,
у всіх кришок, привіт точка гр.
Тепер, якщо я точка слеш привіт, що б ви хотіли?
>> Може бути, це з урахуванням регістру.
Може бути, це не так.
Давайте подивимося.
Немає такого файлу або каталогу.
І ми можемо роду обдурити, просто дивлячись в лівому верхньому кутку.
Що я, очевидно, зберегти програму як?
Всі шапки привіт.
Так насправді, це відбувається щоб зробити різницю.
Так що тепер привіт світ повернувся.
Тепер це все прекрасно і добре, і все дуже Дурманний,
в той загрузнути в них Деталі, але розуміння їх
це добре.
>> Введення з них більше довгі заклинання
не збирається бути особливо весело, так що люди в світі
винайшов іншу програму, кілька років тому, називається
зробити, щоб зовсім просто дозволяє ввести марку,
назва програми Ви хочете зробити, і зробити
розумний в тому, що це буде виглядати в поточна папка, інакше каталозі,
і якщо у вас є файл називається привіт точка с,
що файл буде компілювати для вас в програмі під назвою привіт.
Так що це набагато простіше спосіб робить більш загадкові команди
що ми робили раніше.
І ми попередньо налаштований CS50 IDE знати
що він повинен робити висновок тире і ряд інші прапори, чи аргументи командного рядка,
що ми побачимо найближчим часом.
>> Але тепер давайте насправді щось більш цікаве.
Просто набравши з привіт світ все час не все, що переконливо.
Отже, дозвольте мені йти вперед і зміна ця програма і сказати, привіт Девід.
Тепер я збираюся піти сюди.
Я збираюся йти вперед і роблять привіт.
І зараз знову ви бачите зробити показує вам більше
Послідовність команд, що це робити, бо ми попередньо налаштований
це те, що шлях, але ми не потрібно турбуватися зараз
що він робить інший, ніж вона є складання точка слеш привіт, привіт світ.
Що не так?
Так.
>> АУДИТОРІЯ: [нерозбірливо]
>> Девід Дж Малан: Так.
Так, Noobie помилка.
Я помітив, що це супер тонкий, але зірочка тут, в закладці
просто означає, що ви не зберегли його, і браузери та інші програми
зробити це іноді.
Так управління або команди з с повинні зберегти його.
Тепер дозвольте мені йти вперед і повторно запустіть програму.
Повторно.
Право, так що це багатоетапний процес.
Жоден з яких не є особливо складним, але в будь-який час ми змінимо файл,
ми повинні змінити в результаті нулі і одиниці, і крапка слеш привіт.
Вау.
Так що це дуже захват що ми просто роздрукувати це.
Давайте робити речі трохи більш динамічним, зараз.
>> Ну, виявляється, що, як і Подряпини, С підтримує змінні.
І виходить, якщо ви хочете мати змінну, яка зберігає
не числиться, як ми як правило, робили з нуля,
але як слово, або фраза або ім'я, ви
можна вказати змінну до типу рядка.
Таким чином, ми побачимо більше це всього мить,
але виявляється, що C, а багато таких мов, як це,
мають вельми специфічні типи змінних.
Це не просто подобається алгебру, де ви отримаєте х, а у, і г
і тих, хто просто завжди номери, в мові програмування
Ви можете зберігати номери, ви можете зберігати окремі символи,
можна зберігати цілі слова, ви могли б зберігати цілі зображення, звукові файли цілі,
тощо.
Таким чином, ми повинні вказати, що тип нашої змінної.
І конвенції я буду називати мого змінна з тільки тому, що це стислий,
і з позначає рядок.
>> А потім я збираюся зберігати Усередині цієї змінної,
просто подобається з нуля коли я використовую набір блок,
Я збираюся використовувати Оператор присвоювання в C,
який досить добре це дорівнює знак, але знак рівності робить це.
Вона рухається щось праворуч в ліва сторона вираження.
Так що я зробив, щоб бути ясно, в Лінія п'ять, як я оголосив змінну.
Я сказав комп'ютер, дайте мені пам'ять для змінної, називають це з,
і заздалегідь знати, що я збираюся щоб поміщати рядок в ньому.
І рядок просто послідовність символів.
Це слово, або фраза, або пункт, але це послідовність символів.
Це не числа.
Що рядок я збираюся бути покласти в цю змінну?
Ну, мабуть, цитую кінець цитати ", Ханна".
Тепер зверніть увагу, що малюнок на розвиваються.
Там цей вираз ліва рука.
Там цей вираз права рука, розділених знаком рівності.
І тільки зробити припущення, якщо знайомі, тим не менш,
з тим, що крапка з комою робить.
Що це, ймовірно, робить для нас?
Так?
>> АУДИТОРІЯ: [нерозбірливо]
>> Девід Дж Малан: Так.
Це просто припинення лінію.
Вірно?
Комп'ютери хочете бути прямо сказав, буквально, що робити.
Як арахісовим маслом і желе приклад сендвіч,
якщо ви не вкажете саме те, що ви збираєтеся,
це може бути залишено на розсуд або помилок.
Крапка з комою означає, ось саме для цієї команди.
Це будучи супер точною, і це дуже легка річ, щоб кинути.
Так що тепер ця програма, здається, не же не бути по-іншому поводиться будь-який, поки я
зробити його більш динамічним.
Таким чином, замість того, щоб жорстко міг моя власна ім'я, дозвольте мені поставити значення заповнювача.
І виходить, що, і я знаю це від прочитавши документацію,
і використовувати функцію років, що Printf був розроблений, щоб бути динамічним.
Ви не повинні знати заздалегідь які слова ви хочете, щоб покласти в нього.
Замість цього, ви можете мати Прототип, як відсоток с, що
збирається розповісти комп'ютер, поставити тут рядок.
>> Які рядки ми хочемо поставити там?
Уїлл виявляється, що між ними дужки, які пам'ятають, розмежувати
вхід для функції, якщо у вас є розділені комою список речей, тут,
ми насправді проходять в декількох Входи в функцію.
Так як і деякі подряпин блоки, ви не могли б
грав з ними Ваші проекти поки або взагалі,
деякі Скретч блоки мають два входи.
Два білих списків, ви можете введіть число, або слова в.
Так само є С функції, такі як Printf, що може зайняти два входи.
І знову ж, це кома відокремлює їх.
Таким чином, в англійській мові, знову, навіть якщо Ви ніколи не програмували,
За цією логікою Printf є функцією, приймає два входи, один з яких
є заповнювачем, що б ви сподіваєтеся Printf збирається робити з цим входом?
Це відбувається, щоб сказати привіт Ханна, сподіваюся.
Таким чином, щоб зробити це, ми повинні зберегти його.
Я збираюся, щоб зменшити.
Я збираюся повернутися сюди і сказати, зробити привіт увійти.
Ох.
Щось не так, і насправді це досить переважною.
У мене є шість рядків коду і, як 12 рядків помилок.
Так, з нетерпінням чекаємо цього.
Так що тут відбувається?
Так що кращий правило тут, особливо, коли ви починаєте,
не відволікатися на матеріал на дні.
Насправді, я дуже свідомо просто прокручується до
бо дуже часто, комп'ютер знаходиться не все так райдужно пристрою.
Це буде заплутатися.
Якщо він бачить, що одне він не розуміє,
це може помилка Інша рядків коду, так як неправильні,
навіть якщо вони прекрасно.
Таким чином, ви завжди хочете працювати зверху вниз через помилки.
І правда, це супер таємницею на даний момент.
>> Помилка, використання неоголошених Ідентифікатор рядка.
Хіба я маю на увазі стандарт?
Ні, я мав на увазі рядка.
І це вказує на, може бути, це помилка.
Ніби як, перевірки орфографії в дуже зухвалим чином, але причина тут,
і ви будете знати, це просто практиці, є
що виходить, що рядок не існує в С. Дійсно, С
є особливо старий мову, і це дуже низький рівень,
і це не багато можливостей що ви, можливо, вже виросли
з якщо у вас є, насправді, запрограмований в Java, як деякі з вас,
але ви можете навчити його нові речі.
І справді, ми зробили це CS50, навіть якщо до кінця семестру,
всі ці навчальні диски буде знята,
що ми робимо в них Перша пара тижнів
спочатку у нас є включити CS50 точка годину.
Який файл заголовка.
Докладніше про це в майбутньому.
>> Це файл, який містить функції, що ми написали для вас.
І серед цих функцій функції для отримання вкладу
від користувача, як струни, і цифри і реальні цифри, і багато іншого.
Але він також має декілька ярликів.
Це визначає логічне як тип даних.
С не мають істинною або помилковою.
Але ми можемо дати йому поняття істинним чи хибним шляхом цієї бібліотеки.
І це також не є рядок побудований в поки ми не включити цей рядок.
Так цей рядок коду повідомляє компілятор, гей, Clang, подивіться
в цьому файлі протягом цілого купа коду, який CS50
була написана так, що хто за допомогою цього файлу
може прийняти як належне Особливості вони додали.
>> Так що тепер дозвольте мені йти вперед і очистити екран,
і якщо цікаво, я просто кажу, що контроль л щораз, щоб очистити екран,
або ви можете ввести ясно.
Я просто збираюся йти вперед і в даний час Тип зробити привіт, і все буде добре.
Проте таємний вихід, але це не помилкове повідомлення.
Тепер, якщо я точка слеш привіт, і як в сторону, точка слеш незнайомі більшості.
Це просто означає ,, точка означає поточний каталог.
Так що якщо ви коли-небудь використовували DOS, Linux, або, або Unix
Ви могли б зробити щось як кд точка точка, де
точка точка означає йти у зворотному напрямку в Час, або йти у зворотному напрямку, або вище
в каталозі.
Дот просто означає шукати в поточний каталог.
Я хочу привіт, який знаходиться прямо тут.
І дійсно, в даний час він говорить, привіт Ханна.
І якщо я можу змінити його знову Марії, перекомпілювати
він робитиме привіт, точка слеш привіт, програма постійно змінюється.
>> Але це ще досить безглуздо програма.
Якщо я хочу, щоб відправити цю програму, або дати його другу,
або дати його Марії чи Анни з цього питання, це нормально.
Я можу налаштувати його для них обох, але це ніколи не буде динамічним.
Вони не можуть змінити її, коли вона компілюється вниз в цих нулів і одиниць.
Отже, що ми зробили щось розумніше?
Що робити, якщо, замість того, щоб жорстко прописаних в програмі ім'я цієї людини,
Що, якщо ми просто отримати рядок на вимогу?
>> Отже, іншими словами, дозвольте мені зробити це.
Я збираюся перекомпілювати цю програму.
І дозвольте мені збільшити на дні справжнє.
Зробити привіт точка слеш привіт.
Тепер ніщо не відбувається.
Чи можемо ми отримати швидкий добровольця зробити щось трапиться?
Давай до.
Як вас звати?
>> Панчо: Панчо.
>> Девід Дж Малан: Пачо?
Давай до.
Як тільки ви отримаєте тут, це буде дуже захват,
але це більш цікаво чим мені його наборі.
Якщо ви хочете, щоб йти вперед і введіть ім'я, я зробив цю програму тільки для вас.
Просто введіть своє ім'я.
Enter.
Чудово.
Гаразд, спасибі дуже багато.
>> Панчо: Спасибі дуже багато.
>> Девід Дж Малан: ОК.
>> [Оплески]
>> Це був дуже добрий.
Тут ви йдете.
Що ми робимо?
Таким чином, ми, нарешті, принаймні, зробив це програма динамічним.
Тепер, звичайно, все ще по конструкції захват,
але ми, нарешті, мати можливість Тепер, щоб написати код заздалегідь, багато
як і автори Printf, і потім динамічно
адаптуватися на основі матеріалів ми передав, або програмістом,
або за допомогою людини, яка насправді взаємодія з програмою.
Так давайте тепер спробуємо насправді зробити дещо інші конструкції
і подивитися, якщо ми не можемо зробити програми Самі складніше.
Так що давайте йти вперед і замість пишу це з нуля,
Я збираюся піти сьогодні до Вихідний код, і все це
є на курс-х сайт, і ви можете перетягнути його
у власному середовищі прийти в п'ятницю відразу проблеми
набір 1 дає вам інструкції, або ви могли б
зробити це в командному рядку, як добре, але ще не в р набір 1.
>> Давайте подивимося, що в цій програмі тут називають, гадюка точка гр.
Тепер я вже прокоментував це, але що нового?
На перший погляд, те, що лінія коду абсолютно нового?
Напевно, не принципово Тепер знайомі.
>> АУДИТОРІЯ: [нерозбірливо]
Девід Дж Малан: Так, так INT х дорівнює отримати п.
Ми ніколи не бачили нічого з цього раніше, але, ймовірно, INT
символ якийсь Мінлива [? від?] ціле.
Так INT для цілого числа.
Це просто бути більш коротким. х просто довільно.
х і в і г і раніше досить розумно для чисел,
але в цілому ми будемо використовувати слова відразу наші програми стають все більш складними.
Отримати Int, звичайно, так само, як отримати рядок,
, Ймовірно, буде отримувати целочисленное від користувача,
а потім ми збираємося зробити те ж саме з у.
І, мабуть, навіть якщо це Останній рядок, 24, виглядає більш складним,
він збирається сказати суму цього і що це інша річ.
>> І зауважте відсотків я ймовірно, означає, що?
Яку роль відсотків я мабуть, служити?
Це просто заповнювачі.
Вірно?
Відсоток з була для рядка, відсотків я для цілого числа.
Там буде відсотків е з плаваючою точкою значення, яке
це просто число з десятковою крапкою.
Іншими словами, дійсне число.
Отже, давайте насправді скомпілювати програмувати дуже швидко і роблять гадюка.
Упс.
Гарна можливість.
Так помітити тут, весь цей час мій користувача Ім'я для цього аккаунт jharvard.
Я в CS50 IDE, інакше IDE50.
А тепер в синьому тут, згадка, але від навколишнього середовища, від того, де я.
І справді, якщо я збільшити до вершини тут, зверніть увагу, що у мене є IDE50
і я бачу це слово, якщо ви вид повернути голову в бік, робочий простір.
У двох словах, то, що Я бачу тильди слеш робочий простір
означає, що в даному тексті Середа, заснована на командній,
Я в текстовому еквіваленті Цей графічний папку тут.
Так що, коли я точка слеш гадюка, вона не говорить про верховенство
щоб цільовий гадюка зупинку.
Я не знаю, що це означає, але це погано для якоїсь причини.
Немає такого файлу або каталогу ще більш ясно.
Де ж тоді?
На підставі того, де я натиснув щоб відкрити файл раніше.
Де він може бути?
>> Це, ймовірно, в джерелі одним Вт, в середу,
і я можу бачити це, дійсно, якщо я відкриваю, що до.
Існує точка гадюка с, але в Цей текст на основі навколишнього середовища,
знову, я повинен бути супер явним.
Якщо я хочу, щоб змінити каталоги в одне джерело середовище, мені потрібно ввести,
CD одне джерело простір Середа введіть і тепер
мої швидкі зміни дати мені візуальний сигнал, що
Я, справді, в іншому місці в моєму оточенні,
але тепер я можу робити зробити гадюка, це, здається, працює,
точка слеш гадюка, дай мені ціле.
Один.
Два.
Сума одного і двох зо три.
Але якщо я не співпрацюють, давайте подивимося, що отримати INT робить.
Дайте мені ціле.
Немає.
Повторіть.
ДОБРЕ.
Прекрасно.
50.
Добре.
Так що, нарешті, співпрацює.
І це одні з функціональність, що ці функції
може бути побудований за вас.
>> Так всередині реалізації з отримаєте INT, який програмування
побудувати з минулого тижня, ймовірно, в там змусити таку поведінку повторити спробу,
спробуйте, повторити?
Так, там, напевно, свого роду цикл.
Це буде виглядати синтаксично відрізняється від блоків нуля, в
але це дійсно що всередині файлу.
І протягом декількох тижнів ми будемо насправді виглядають в бібліотеці CS50
а те, що всередині, але є петля накладення саме це.
>> Давайте грати в дурні Гра тут з цим файлом.
Стан нулю точка гр.
Ми просто збираємося в загальному почати відлік з нуля.
І я продовжую прокрутки минуле деякі речі на вершині.
У синій тут, розмежовані з усіма з цих зірок і косою риси,
ті з вас, хто запрограмувати колись, що це таке?
Чому ми продовжуємо пропускати над ним?
Що?
>> АУДИТОРІЯ: Це коментар.
>> Девід Дж Малан: Так.
Це просто коментар.
Це коментар для людини читати, що в нашому випадку,
говорить нам, що ім'я файлу в тому, хто її написав, і що він робить,
так що вам не доведеться прочитати код
знати, що цей файл це все о.
Це просто опис, але функціонально це не має значення.
І я навіть можу видалити його з мій файл і він не має ніякого впливу.
Соковиті лінії ці Перші два тут і зараз.
INT основний недійсними є еквівалентом нашого, коли зелений прапор клацанні
так що ми збираємося залишити це бути на сьогоднішній день, і ми повернемося,
зрештою, до того, що, як INT сили є, але зараз,
зауважити, що я зробив тут, ви можете також,
якщо у вас є відповідно коментарі, якщо у вас є
думка ви хочете поділитися про конкретну рядки коду,
Конвенція в C це робити слеш слеш, а потім кілька короткі слова,
не повний вирок, як правило, не пункт,
що тільки пояснює вам, або ваш TF, або інші читачі чи колеги,
що ваш код робить.
Таким чином, замість того, щоб мати дивитися на це і вивести з ліній
дев'ять і 10, що це робить, відповідно восьмій
Я просто дати коментар до запитати користувача для цілого,
то я не повинен думати занадто важко про що лінії дев'ять і 10.
Я просто знаю, що це те, що разом вони роблять.
>> Як?
Ну, ось підказка.
Ось добування Int.
І на основі попереднього поведінку, здається, Get INT
досить розумні, щоб переконатися, що людина співпрацює і дає його
ціле число.
Але тепер ми бачимо це.
І це нагадує нуля.
Я стверджуючи, що я Аналізуючи введені користувачем,
але дещо неточно.
І це, мабуть, в тому, як C ми висловлюємо, якщо ще, філія,
вилка в дорозі, але я говорять дещо неточно.
Що помилка в цій програмі?
Про далі назад?
Так.
>> АУДИТОРІЯ: [нерозбірливо] нулю.
>> Девід Дж Малан: Так.
Так що, якщо я друкую в нулі, давайте розглянемо саме в цьому випадку, або в кутку так,
якщо ви будете.
Так що, якщо я друкую в нуль, що з блоки збирається, мабуть, захопити його?
Умовний чи інакше?
Ще, і це скаже, Ви обрали негативне число.
І справді, нуль не допускається щоб бути позитивним чи негативним,
і так, що б помилково.
Це було б помилкою.
Так як ми можемо це виправити?
Хтось, хто ніколи не програмував раніше?
Чи є у вас want--
>> АУДИТОРІЯ: [нерозбірливо]
>> Девід Дж Малан: Складання?
>> АУДИТОРІЯ: [нерозбірливо]
>> Девід Дж Малан: О, у вас є?
Хтось, хто ніколи не програмував раніше.
Хочете спробувати свої сили в це, в червоній сорочці?
Давай до.
Ах так, давай вгору, якщо ви не заперечуєте.
Так що ніколи не запрограмувавши перш, ніж ваше ім'я?
Лорен: Лорен.
Девід Дж Малан: Лорен, все в порядку.
Так виправити цю помилку для нас.
Ви не бачили C, мабуть, і, ймовірно, ніхто інший мову.
Так виправити цю програму для нас.
Приємно познайомитися я.
Ніякого тиску.
Лорен: Так.
>> Девід Дж Малан: Але знову ж, якщо це азартна гра йде за планом,
винос тут буде бути, просто ще раз, щоб почати
помічати закономірності і вивести з існуючого синтаксису
як ще ви могли б висловити самостійно, не каламбур, в цілях
захопити додаткову сценарій.
Так ми говоримо інакше, якщо.
Printf, добре.
І зверніть увагу, з CS50 IDE і IDE frankly--
варто для комплексного Середа розробки.
Це просто химерний спосіб сказати програма, яка допоможе вам програму.
Це робить дружній користувальницький речі, як при введенні одного дужки,
це автоматично дає вам інший.
Презумпція того, що ви зрештою захочуть ввести, що,
і це також робить його в лапки.
>> Так що я хотів лінію 23.
99% шляху там.
Хтось хоче, щоб дзвонити в с наконечником?
Я чув коми від аудиторії.
Добре.
Так що завершує це.
А тепер, я просто трохи жах з лінії 21.
Як же ми хочемо висловити це?
Яке питання ми хочемо запитати, як ви думаєте?
Так, раніше ми задавали питання, якщо п більше нуля, зробити це.
В іншому випадку, зробити це.
Таким чином, ми повинні вибрати задати питання тут.
АУДИТОРІЯ: [нерозбірливо]
Девід Дж Малан: Добре.
Так, якщо п дорівнює нулю.
Відмінно.
Так давайте зупинимося тут.
Спасибі так багато для лякаючись цього.
Дозвольте мені дати вам трохи заслуженою стрес м'яч, можливо, є.
Таким чином, ми вже майже там.
Насправді, Лорен, якщо ви не розум, дозвольте мені зробити один налаштувати тут,
тільки, щоб бути стійким, навіть те, що ми бачили в порожньому, те, що
я хочу зробити з лініями 21 і 24, тільки на основі знову
про те, як ми робили це в порожньому, можливо?
>> АУДИТОРІЯ: Переміщення його.
>> Девід Дж Малан: Так, перемістити його вгору.
Таким чином, стан другий, третій, або четвертий або п'ятий, або остаточне відділення,
повинні дійсно прийшов пізніше, і це тільки за угодою,
просто тому, що якщо ви будете.
Так мені потрібно зробити цієї настройки.
І мені потрібно поставити свою фігурна дужка сюди.
І тепер, ця програма компілюватиметься.
Ми так близько, але є дуже, дуже тонкий помилка.
Давайте подивимося, що станеться.
>> По-перше, дозвольте мені йти вперед і зменшення масштабу.
Я збираюся йти вперед і введіть зробити стан нульовий.
О, я брехав.
Тепер компілятор насправді дуже розумний.
І я дійсно не розумію, це повідомлення про помилку.
Використовуючи результат присвоєння в змозі без дужок,
мабуть, погано.
Але що це означає?
>> Ну знову ж, дивлячись на моделі в коді, що ми бачили раніше,
що лінія 17 насправді робить, навіть якщо Лорен призначені трохи
в іншому випадку?
Так.
>> АУДИТОРІЯ: [нерозбірливо]
Девід Дж Малан: Так.
Так що пам'ятайте, знак рівності, мабуть, як ми використовували його раніше, не так на рівних.
Його призначення, справа наліво.
Так рядок 17 нині це стан, і це
виконання коду всередині дужок, але коли код виконується,
що відбувається з нульовим значенням?
Те, що відбувається в значенні п?
Ставши нулю.
Так, якщо п стає рівним нулю, І знову, як в останній тиждень,
ми зазвичай говоримо, що нуль є помилковою і одна правда,
або так ні це одне і не дорівнює нулю.
Так істинним і хибним, одне і 0.
Якщо н від лінії 17 була враховуючи значення 0, дорівнює нулю правда?
Немає.
За визначенням, нуль це брехня.
Ця угода ми збирається чіплятися рухатися вперед.
Так буде лінії 18, 19, і 20 або застосувати зараз, логічно?
Вони не можуть.
Таким чином, ми поставили запитання але не зовсім точно,
і ви не знаєте, не це, якщо Ви бачили це, рішення в С
коли ви хочете, щоб висловити рівність, ви говорите, одно рівних.
Так знак рівності вже використовується до за завданням, справа наліво.
Одно дорівнює кошти рівними.
І якщо ви дійсно хочете свій розум щоб бути зігнуті в JavaScript і PHP,
тобто дорівнює дорівнює рівних, які значить щось ще в цілому,
але ми повернемося до того, що незабаром.
>> Так що це просто виправити, але розумію, супер просто, щоб зробити цю помилку,
а потім дивуються, і боротьба за кілька хвилин, якщо не години,
чому мій код не виконання, як я маю намір?
Це тому, що ви не сказали це саме те, що ви мали на увазі.
Так що майже ідеально, і це було здорово
що ми наткнулися два маленьких речі, тому що тепер, якщо ми їх виправити,
і я зробити Condition Zero точка слеш стан нулю,
Я хотів би ціле ласка.
Давайте подивимося.
Немає.
Це відбувається, щоб змусити мене зробити це.
Так 42.
Я вибрав позитивне число.
Так що тепер, як я можу довести, ця програма правильно?
Якщо ви математик, ви не можете дійсно довести це методом проб і помилок,
вірно?
Ви можете не тільки доказ, приклад, але, принаймні
в якості програміста ми не намагатиметься довести, зараз
що це насправді правильно, але я, напевно, слід
перевірити деякі представництва випадків.
>> Я перевірив 42.
Я міг би перевірити 43.
Я міг би перевірити 44.
Тест 45.
Вірно?
Але що я міг зробити це дуже довго.
Що б ще трохи цікаві випадки спробувати?
АУДИТОРІЯ: [нерозбірливо] нулю.
Девід Дж Малан: Так нулю.
Звичайно.
І добре, що у нас є це цього разу, завдяки новим кодом Лорен.
Що інший хороший випадок спробувати?
АУДИТОРІЯ: негативний.
>> Девід Дж Малан: негативний, а може бути, щось трохи більше,
так що, можливо негативне 42, але в цілому, коли
тестування програм рухатися вперед, ви
захоче думати до себе, як те, що
є основними різні випадки.
І я насмілюся сказати, негативний справа, позитивний випадок, і випадок нульовий
в значній мірі округлює ці з.
Давайте подивимося на варіант цього ж.
Умови одну.
Це правильне рішення тут, так що ви побачите два і в Інтернеті,
якщо ви йдете через проходження, буде, як правило
не збільшувати ці східчасто, поки ми отримати саме правильний підхід.
Що робити, якщо ми хотіли запитати два питання відразу?
>> Дозвольте мені відкрити це замість.
Номери перемикач, з причин, ми побачимо іншим разом.
Що нового синтаксично тут?
Я в даний час грає в гру де комп'ютер говорить
мені, дай мені ціле від одного до 10,
і тоді я, судячи вхід користувача.
В англійській мові, заснована на код ви бачите тут
синім, що ця програма робить?
АУДИТОРІЯ: [нерозбірливо] взяв великий або маленький номер.
Девід Дж Малан: Так.
Це просто розгляді чи Я вибрав великий, або середу,
або невелику кількість на основі дуже довільне визначення малих, середніх,
і велика тут, але повідомлення синтаксис, який нового це.
Там ні менше, ніж INT або дорівнює підписати або більше або дорівнює підписати,
де один над іншим, що ви можна виразити в як Microsoft Word.
Таким чином, у мові програмування ви як правило, просто зробити два символи,
одна за одною.
І те, що робить це, ймовірно, уявляють, амперсанд амперсанд.
АУДИТОРІЯ: [нерозбірливо]
Девід Дж Малан: Так.
Це просто означає, й тому, що він Виходить, що автори З
використовується один амперсанд, які ви могли б подумати
був би ідеальним для поняття з і, вже витрачено,
так амперсанд амперсанд насправді захоплює випадок ми насправді хочете.
>> Отже, давайте наштовхнутися двох речах.
Дозвольте мені йти вперед і відкрити один.
Щось, що це трохи турбує.
Неточність точка гр.
Дозвольте мені представити дві речі тут.
Один з них, зверніть увагу, що ми можемо зробити, математика, а так само, як раніше, коли
ми зробили плюс двох чисел, хну.
Що це, мабуть програма робить?
Я не прокоментував ще, і я представив відсотків п,
але я швидко сказав раніше відсотків е означає плаваючою точкою
значення, яке буде дійсне число.
Щось з десятковою пункт, який не є цілим числом.
Що ви думаєте, це програма намагається показати мені на екрані?
Так?
Аудиторія: результат один над 10.
Девід Дж Малан: Так.
Що в результаті одного ділиться на 10.
Правильно, тому що всі з вас, напевно, виросли, знаючи, що один над 10
це те, що?
Так, це просто 1/10 або 0,1.
Вірно?
Отже, давайте подивимося, що це насправді.
Отже, дозвольте мені йти вперед і зберегти цей.
Дозвольте мені перейти сюди.
Зробити неточність точка слеш неточність, і повідомлення, теж
в середовищі Linux, ви не повинні ввести з неточність і прийняти
протягом дня.
Це взагалі, якщо ви натиснете Tab, то буде закінчити свою думку для вас,
на основі слів, які доступні в поточному каталозі.
ДОБРЕ.
Таким чином, ви були праві.
Один розділений на 10, насправді, 0,1.
Але я трохи цікаво.
І виходить, Printf підтримує деякі функції
в якому ви можете вказати більш Кількість за замовчуванням знаків після коми.
Так що, якщо я хочу, щоб побачити 10 десяткової точки я можу зробити, відсотків
для символу-заповнювача, точка 10 для, дають мені 10 десяткових точок,
а потім ще з плаваючою точкою значення, і, як у бік,
що це зворотна коса риса н мабуть, ми продовжуємо використовувати?
Виявляється, що це символ нового рядка.
Це дуже явним чином говорити з комп'ютером,
перемістити курсор до наступної Лінія Після того як ви зробили.
І ми побачимо, що станеться коли ми не робимо цього.
>> Дозвольте мені зробити перекомпілювати неточність.
Тепер точка слеш неточність.
ДОБРЕ.
Тим не менш в порядку.
Один розділений на 10.
Тепер я отримую трохи цікаво, хоча.
Що робити, якщо я дивлюся 20 десяткової вказує, перекомпілювати, повторно,
і, як в сторону для швидкість, ви також можете використовувати
Ваш стрілки вгору і вниз, щоб прокрутити історії,
так що вам не доведеться тримати передруку цих команд, введіть.
Так.
Я не дізнатися, що в початковій школі.
Гаразд, так що давайте мені см, як 29 місць поза.
Може бути, це просто випадковість.
Може бути, мій комп'ютер діє дивно.
Це не річ, чи не так?
Це щось робить детерміноване.
Так що неточність.
Добре, що переплуталися.
Так що ж відбувається?
>> Таким чином, очевидно СВІЙ вчитель лежав
Вам все це час для Причини, з яких ми побачимо незабаром.
Але давайте закінчимо з жодною іншою програмою.
Це трохи програми хтось написав кілька років тому,
і це насправді частина конкурсу.
Ніхто насправді не пише код як це, і якщо ви робите,
Це стилю проблема.
Але люди роблять це за хвастощі правами.
Щоб записати найбільш заплутаною шукаю програму, яка
тим не менш, робить щось цікаве.
І записка Я думав, ми б залишити на сьогодні перед Колтон грає з нами тут,
це запустити цю програму, який, навіть у тільки за допомогою
З цього текстовий Середа, дає нам це.
Чорт візьми.
>> [Сміх]
>> Стенд с.
[Нерозбірливо] з тире л м.
Ви побачите чарівний заклинання, що ми побачимо найближчим часом.
[Нерозбірливо] Все правильно.
І тепер ви можете навіть робити речі, як це.
Це воно.
Для CS50 ми, побачимося в п'ятницю.
>> [Грає музика]
>> [Оплески]