>> [МУЗИКА ГРАЄ]
>> DAVID Малан: Добре це CS50 і це кінець тижня один.
Тому я хотів би представити мій колишній advisee, Андел Дафф, який не тільки робить
iPhone 5 коштує, а також це аналой, він також робить автомобілі.
ANSEL DUFF: Як справи, все?
Я просто хочу, щоб розповісти вам трохи Трохи про Formula SAE, з яких я
Я капітан.
Це команда MIT.
Я просто хочу сказати вам, Хлопці трохи про це
і, сподіваюся, генерувати деякий інтерес.
>> Отже, дозвольте мені просто запустити через Пара речей про нашу команду.
Так що ми повністю студент пробіг, в якому всі
дизайну членів, моделювати, тест, і виробник підсистема
з машини.
У нас є власний механічний цех і гаражі, і N52-- або шкода,
N51-- що те ж саме будівлю як Музей науки MIT.
І ми люди що водити машину.
Там в національний конкурс на початку літа,
а потім Є менше перестрілка змагання протягом року.
І тоді ми робимо навчання водіїв днів, щоб нові члени познайомитися.
>> Наші збірки дні на По суботах з 11 ранку до 8 вечора.
Обід і вечерю піклуючись з, від Бертуччо і Beantown
відповідно.
У нас є щотижневу зустріч і Семінар, на курсову кредиту.
Що нового в цій семестру, і вона також буде протягом наступного семестру,
так що ви можете перетнути-рег за це.
А то у нас проектування, магазин, і CAD днів протягом тижня,
в той час як члени самостійно CAD частини, порядок складі і так далі.
>> Таким чином, для електричного інженерна в команді
у нас є тягово, Високовольтна система,
який працює на номінальній 300 вольт, яка включає в себе
двигуни, перетворювачі частоти, та акумулятори.
Тоді у нас є низький напруга системи, яка працює
на 12 вольт, який включає в себе управління, CAN вузли, мозок
коробка, і приладова панель.
Наскільки CS йде, ми робимо є підтримку сайту
що ми повинні зробити для подій, членство зміни, нові фотографії та PR матеріалів.
А то у нас код, який управляє автомобіль для нашої тяги, запуску
контроль, контроль тире, крутний момент наведення, і системи рекуперативного гальмування, яка
запустити як правило, в MATLAB, Simulink, і LabView.
>> Скажу трохи про машину.
Так що це близько 500 фунтів.
Це правила, обмежені 85 кіловат.
Він має 2 EMRAX 207 двигунів в назад, по одній для кожного заднього колеса.
Він має замовні батарейні від райдужних A123 дипломатичної клітин,
на загальну суму 300 вольт і 5,6 кіловат-годин.
І це прямий привід з Коефіцієнт 2,64 до 1 диск.
Ось деякі фотографії ми взяв його на конкурсі.
Ось ще, носовий обтічник, і ось двигуни,
ці великі чорні диски під ін чоловічі Манус.
Ось слайд, який я витягнув з нашої схемою конкуренції.
І це тільки в порівнянні нашу машину в Кілька комерційно доступних автомобілів,
як KTM Xbow, Аріель Atom, і Caterha М 7-280.
Якщо ви знайомі з ціною, потужність тягнути вагу, доларів за кінську силу,
доларів за моментом, і наша машина дме їх всіх з води.
Якщо у вас виникли питання, записати цю адресу електронної пошти.
Стріляти нам лист на fsae@mit.edu.
>> Ми раді говорити про все, що ви хотіли б.
Студентів Гарварда, є свого роду меншини в команді.
Якщо у вас є питання з приводу що робити, будь ласка, знімати нам лист,
із задоволенням розповідають, і я збираюся щоб повернутися до Давида.
Завдяки.
Я ціную це, хлопці.
[Оплески]
>> DAVID Малан: Ансель провів літо Працюючи з нами тут, на території кампусу в CS50
цього літа.
І на додаток до роботи на речі, як бінарних цибулин,
він насправді дійсно відкрив наші eyes-- і шахта в particular--
в те, що дійсно перетині не з апаратного та програмного забезпечення може бути.
Насправді багато речей, він просто гастролювала ви через це, в кінцевому рахунку
створена перша в програмному забезпеченні, а потім в кінцевому рахунку, сфабриковані
в реальному світі в обладнанні.
Так що, якщо ви зацікавлені в досліджуючи цю перетин,
можливо, зайняти цю групу.
>> Тепер той же час, ті з вас, хто любителів технологій,
і продукти Apple, в Зокрема знати, що є
Було кілька Анонси вчора.
Але ми думали, що показати Ви той, який вийшов
за кілька днів до, що Ви, можливо, не бачив.
>> JORGEN EGHAMMER: Ви знаєте, раз в деякий час то
приходить, що міняє наш спосіб життя.
Пристрій настільки просто і інтуїтивно використовувати його почувається майже знайомі.
Представляємо 2015 каталог IKEA.
Це не цифровий книга або Електронна книга, це книга-книга.
>> Перше, що потрібно відзначити, це не кабелі, навіть не кабель живлення.
2015 Каталог ІКЕА приходить повністю заряджена,
і термін служби батареї вічна.
Інтерфейс 7,5 на 8 дюймів, але можна розширити до 15 на 8 дюймів.
Навігації на основі тактильного контакт технології, які ви можете відчути.
>> Вміст поставляється з попередньо встановленою через 328 сторінок високої чіткості
надихаючих домашнього інтер'єру ідеї.
Щоб почати перегляд, просто натисніть і перетягніть.
Справа наліво, щоб рухатися вперед, зліва направо, щоб рухатися в зворотному напрямку.
>> Зверніть увагу, щось ще?
Це вірно.
Ні відставання.
Кожен кристал ясно сторінки вантажі миттєво,
незалежно від того, як швидко ви прокрутіть.
Якщо ви хочете отримати швидкий огляд, просто тримати його в долоні,
і, використовуючи тільки свій великий палець, Швидкість просмотру.
>> Якщо ви знайдете те ви хочете зберегти на потім, ви можете просто закладка його.
І навіть якщо ви закрити програму, Ви можете легко знову знайти закладку.
Дивовижний.
>> [Сміх]
[Оплески]
Так що підводить нас до кінець тижня один.
Кілька оголошень з підприємством.
Так секціонування є в даний час.
До цієї URL тут коли з сьогоднішнього дня і в п'ятницю опівдні
насправді, сформулюйте ви серед тих, менше знайомі, більш
комфортно, або щось середнє.
>> Це, як правило, одним з тих, речі, які ви тільки почасти знають.
А адже ті з вас, хто менш зручно, напевно, знаєте, як багато,
тих з вас, хто більш зручно знати, як багато,
і знову, якщо ви не зовсім впевнені, який з тих відрах ви потрапляєте в ви
ймовірно, щось середнє.
Але будьте впевнені, ви можете поміняти через пару тижнів, якщо це буде необхідно.
>> Між тим, на майбутній тиждень ми не почнемо розділи по собі,
але супер розділи, які відкриті для всіх студентів.
Найближчої неділі на прилеглій до будуть оголошені на сайті курсу
у нас буде один для тих, менше знайомі,
а також один для ті більш комфортно.
А ті, десь між можете вибрати, які з цих двох,
або обидва, якщо ви хочете, щоб сидіти в на.
І в центрі уваги тих, буде в кінцевому рахунку, на C,
які ми будемо продовжувати наш Розмова сьогодні.
>> Задача встановити 0 тим часом сподіваюся, в ваших руках.
Офіційно на завтра, Четвер, опівдні.
Якщо ви не нажитися один ваші 5 кінці дня,
який принесе його до п'ятниці опівдні.
Задача встановити 1 тим часом буде розміщені на сайті Курсу.
І це буде наш перший набіг як клас в С.
І, що проблема встановити специфікації, ви пройдете через багато механіки що
Ми почали говорити про в понеділок, і ми будемо продовжувати говорити про сьогоднішній день.
C, Linux, CS50 Пристрій, все, що
чекатиме вас в специфікації.
>> Години роботи поки що в стадії розробки, в університетському їдальні.
Голова до цього URL тут, щоб подивитися планувати на сьогодні і завтра,
Якщо ви хочете взяти участь.
Питання Між тим, так що вам є можливість задавати питання
асинхронно, 24/7, розумієш, що ти не обмежується розділів і офісу
годин, а скоріше це засіб тут, CS50 Обговорити на той URL
буде онлайн Курсу Програмне забезпечення дошка бюлетень, за допомогою яких
Ви можете задати питання однокласники і також персонал.
Так що майте на увазі, що ресурс, а також.
Між тим традиція починається в цю п'ятницю.
Як ви, можливо, побачив з тизер відео минулої середи,
у нас є традиція найбільш щоп'ятниці протягом терміну
приймати близько 50 студентів і персонал в місцевий ресторан під назвою
Вогонь і лід, на якому ми зазвичай приєдналися деякі випускників
або друзі з промисловості в цілому прагнути
зробити великий клас відчуваю менше.
Так що це абсолютно випадковий обід.
Зв'язка нас, персонал особливо, гратиме в музичні стільці
і спілкуватися з учнями про 50, життя поза 50,
життя в майбутньому, реальний світ, Я говорю про можливості працевлаштування
з друзями в промисловості.
>> Так що якщо ви хочете приєднатися до нас в цю п'ятницю, попрямувати в цьому URL тут.
Кількість місць обмежена, але ми зробимо це recurringly протягом усього строку.
Голова там cs50.harvard.edu/rsvp.
І якщо ви не отримаєте в на цей раз, щоб не хвилюватися.
Ми зробимо це знову в найближчі тижні також.
>> Так це і є фото ми малювали на минулому тижні,
і ви, мабуть, був втручаються в досі.
Але давайте спробуємо підключити це зараз до того, що ми збираємося зробити сьогодні
і далі.
Може у мене є один доброволець?
Гаразд, або декілька.
Як щодо тут на кінець, у синій сорочці.
Піднімайтеся, як тебе звуть?
ALANA: Алана.
DAVID Малан: Алана.
Так Алана, для всього moment-- приємно познайомитися ти--
гратиме роль цієї функції тут.
Фіолетовий блок ми в називається досі функція.
Так що я збираюся йти вперед тут і запропонувати Алана
трохи ім'я тега, щоб зробити ясно, яку роль ви граєте.
>> Таким чином, ви повинні бути скажемо блок.
Якщо ви хочете, щоб йти вперед і покласти, що на.
І ми збираємося тримати це супер просто.
Якщо мета під рукою просто в даний час здійснювати з Алана,
це так зване сказати блок, ось як це буде працювати.
Я have-- назвемо його Аргумент або параметр,
це дійсно просто чистий аркуш паперу.
І це білого до роду бути нагадує з білої коробці, в яку ви
можете написати слова.
>> Між тим я збираюся піти сюди.
Я збираюся йти вперед і написати H-E-L-L-O коми світ.
І тепер я, як кажуть програмісту, що не насправді знаю, як сказати щось.
Я можу придумати слова, але я не обов'язково
знаю, як виразити себе усно або на екрані.
І так, що я збираюся зробити, це взяти цей шматок
функціональності, чиї input-- або аргумент, як ми його називаємо,
Я написав на цей шматок paper-- і я збираюся доручити це.
>> І справді, що це роль, яку функції в мові програмування
може грати.
Щось на зразок говорять блок, можуть бути передані
тому, хто дійсно знає, що він або вона говорить.
Так що, якщо ви будете переступити тут на мить,
Я збираюся пройти цей вклад в Алана, і запитайте, що ви говорите, цей вхід.
>> ALANA: Привіт, світ.
DAVID Малан: От і все.
Так що існує функція.
Тепер ми можемо прийняти його трохи більше, ми можемо зробити крок вперед тут.
Тому що це було ясно в захват.
Отже, давайте тепер перетворити це в щось більш складне.
>> Так що це, звичайно, наша C версія.
Так що тепер, якщо ви хочете прийняти, що геть, що ім'я тега геть,
і давайте ви поклали на нове ім'я.
Але принципово, що ти відіграє ту ж роль,
так уже сталося, щоб назвати Printf зараз.
>> Історія, звісно, збирається be-- ймовірно
як underwhelming-- є буде в наступному.
Ви зараз функція Е.
Я абонент, або програміст, який хоче
стояти на плечах люди в минулому, як ви,
хто вже зрозумів, як насправді-то записуєте.
І тому цього разу, , А не говорять, що це давайте
насправді використовувати наш екран сюди.
Так що якщо ви хочете, щоб крок тут, я збираюся
пройти знову в цій якості вхід в мій Е одному.
Якби ви могли йти вперед і друку, що на екрані,
просто малюнок з вашим палець на чорному екрані.
Відмінно.
Гаразд, так багато невідомості для як що збирався розіграти.
>> Так що тепер давайте речі один Остаточний якістю, якби ми могли, як слід.
Так що це програма C як ми вже говорили минулого разу.
І це тільки робить те, що ви зробили, це виводить на екран, Hello, World.
Навіть при тому, що є ясно багато з відволікає речі там.
Але давайте речі на сходинку вище і ввести цю версію, яка згадати
був третій варіант, що ми закінчили з востаннє.
>> І тепер є чітко два варіанти використання Printf.
Там в 2 дзвінки на Алана в цьому випадку для Printf,
але є також заклик на іншу функцію.
Що це функція, очевидно?
GetString.
>> Чи можемо ми отримати більше одного добровольця?
ОК, давай до.
Як тебе звуть?
>> Хав'єр: Хав'єр.
>> DAVID Малан: Хав'єр, давай до.
Так роль Хав'єра на цей папірець.
Який я збираюся подзвонити в загальному с.
Тепер це змінна, це тип рядка, як це мається на увазі
з цієї другої лінії в середині там.
І я б хотів, щоб ти принеси мені рядок.
Зокрема попрямувати вниз в оркестрі розділ і отримати мені ім'я кого,
і повернутися зі змінною , Що містить це значення.
Це може бути хто завгодно ви хочете.
>> Тут ми йдемо.
Гаразд, Хав'єр записуючи ім'я.
Добре.
Ми можемо все, напевно, здогадалися, як це збирається розіграти.
Ми, можливо, розмові точка, що
функція робить, але проте, велике спасибі.
>> Так Хав'єр повернувся цей рядок тут, які, не може цілком розумію,
Джонатан є рядок що ми отримали.
Так що тепер я дійсно збираюся надати Алана хоча
є те трохи інше.
Тому що в цій версії Програма, в першу тобто заявити своє ім'я.
Так в перший аргумент Мені потрібно, щоб забезпечити Алана
с буде буквально заявити своє ім'я.
Гаразд, так просто Я б передати це вам.
І, як я пишу до Наступний аргумент, якщо вам
хочу піти далі і написати це на борту, давайте йти вперед
і зробити остаточний приклад тут, щоб зробити очистити те, що в кінцевому підсумку повинно статися.
Так, вкажіть ваші ім'я, записати його в напрямку верхньої
якщо ви не заперечуєте, просто так, що у нас є місце для однієї другої лінії.
Бо останнє, що я збираюся в даний час надати вам не один,
але двох аркушів паперу.
>> Добре.
H-E-L-L-O кома, а потім порожній рядок.
Так що я збираюся вручити Алана зараз є те трохи інше.
Мало того, що вона стає це, де заповнити порожні представляє
що відсотків, що те, що було заповнювач ми використовували?
Так, так відсотків с.
Між тим я збираюся пройти її як другий аргумент, який
Саме це Хав'єр витягуються з Джонатан.
>> Отже, дозвольте мені дати вам ці два.
Якщо ви хотіли б, йти вперед і друк, що ефект.
Що в кінцевому рахунку, відбувається тепер, Алана знову
відіграє роль Printf.
Хав'єр грав роль GetString.
Так що буде ваш сувенір.
І в кінцевому рахунку, те, що відбувається, незважаючи на це hello-- да йти вперед і кома.
ALANA: Невже я отримую це ще чи ні?
DAVID Малан: Так, ви отримав їх обох одразу.
Таким чином, ідея в тому, що вас Тепер можна перевернути сторінку
для обробки другого з цих двох входів.
Так що це тільки забивати додому вказують, що в той час як Алана виконується
Ця зелена лінія тут, а потім Хав'єр зробив це для нас
і повернутися до мене-то ми будемо називати с, але це було дійсно
щойно папірець з власного життя.
А тепер Алана зробив цю третю сходинку.
>> І хоча все це виглядає так неймовірно загадковий можливо
на перший погляд, це дійсно так само просто, як, що.
Пас входи навколо, отримувати виходи, або
фізично повернув то, або побачити побічний ефект подібного.
Щось візуально написано на екрані.
Так що давайте йти вперед і спасибі Алану і Хав'єр,
хто був тут, для приєдналися до нас тут.
>> [Оплески]
>> А тепер давайте вважати само собою зрозумілим, наскільки просто все, що могло б бути.
І давайте перейдемо до власне то робити в реальному коді.
Так на екрані Ось скріншот з так званого пристрої CS50.
І якби вам довелося на, як 2:00 вечора в середу вдень,
пояснити в деякій другу що CS50 прилад,
як би ви визначили це в реченні?
Будь вирок?
Да?
СТУДЕНТ: Це як програми що робить комп'ютер кожного
запустити з тією ж системою.
DAVID Малан: Добре!
Це програма, яка дозволяє кожного комп'ютер працювати з тією ж системою.
Це свого роду власний копія операційної
система, яка відбувається з назвати Ubuntu Linux.
І він працює ефективно всередині вікно на вашому власному Mac або ПК,
так що цей шлях прямо з воріт на тиждень 1, все тут в класі
має доступ до тих же інструментів, та ж сама конфігурація,
і немає кривої навчання конкретних до Mac або ПК, зокрема.
>> Тепер ми відкрили, всередині CS50 прилад в понеділок, ця програма тут.
Буває називатися Gedit.
Але це насправді просто Графічний редактор.
Це те, що, як Блокнот або Текст Редагувати на ОС Windows або Mac OS, відповідно.
І я запропонував, що було насправді три важливих частин цього екрану.
Верхня сторона, де вам б написати код.
І ось, коли ми провели більшу частину нашого три приклади в лекції в понеділок.
Дно ми назвали те, що, це чорне вікно, да?
>> СТУДЕНТ: Компілятор?
>> DAVID Малан: Компілятор ми Доступ через це вікно.
Але в більш загальному.
Так, це був усього лише вікно терміналу.
Це віковий термін, який просто описує істотно миготливим
підкажіть, що років тому раніше на один з тих великих моніторах CRT стилю.
Але в даний час це свого роду з віртуального в програмному забезпеченні.
І термінал вікна нехай це нам вводити команди.
Це свого роду спрощеною версією користувальницького інтерфейсу або інтерфейсу.
Це не графічний користувальницький інтерфейс або GUI,
це текстовий інтерфейс або інтерфейс командного рядка.
>> І справді, що там в кінцевому рахунку, Я був в змозі написати код.
Після того, як я написав код, хоча, Нагадаємо, що я використав цю команду.
І як йому ім'я вид припускає, це
дозволяє мені зробити Програма називається Hello.
Але що було насправді робить?
Ну марка брав свою вхід, мій вихідний код,
і перетворення її у чому, зрештою ,?
>> Код об'єкта.
І об'єктний код це просто фантазія спосіб сказати нулі й одиниці.
А потім, як тільки я хотів запустити цей об'єктний код,
як тільки я хотів передати в якості внеску цих нулі й одиниці в мій комп'ютер-х
мозку, так званий процесор або центральний процесор,
Я повинен був запустити програму.
Але це було не зовсім простий у понеділок як тільки подвоїти натиснувши деякий значок.
Що замість я повинен зробити для того, щоб запустити програму?
>> Що це було Друга команда?
Я чую трохи косі риси?
Так, так?
>> СТУДЕНТ: Dot слеш і назва програми.
DAVID Малан: Точно.
Dot слеш і ім'я програми.
Тепер що ж це означає?
Ну точка просто таємницею спосіб сказати поточний каталог.
Незалежно папка в якому ви перебуваєте посилатися як, представляється як точка.
Коса риска саме те, що ви бачили в Mac OS і Windows, протягом багатьох років,
це роздільник між каталозі або папку і решта деяким ім'ям.
В Windows це відбувається піти в зворотному напрямку, в Linux і Mac
ОС це відбувається, щоб йти вперед.
Але це тільки сепаратор, так що це просто нецікаво синтаксичний деталь.
>> Соковита частина, звичайно, назва програми, Здравствуйте.
І ось що роблять створив для нас.
Це виводиться файл для нас.
Але, як ми дійшли до цієї точки?
Давайте тепер запитайте питання, що було насправді
тут відбувається, принаймні, з Враховуючи деякі з цього синтаксису?
>> Таким чином, в реченні або близько того, як ми пояснити
це перша лінія це виділені зеленим кольором?
Що це було перша лінія робить, по відношенню до моєї програми?
Да?
>> СТУДЕНТ: [нерозбірливо].
DAVID Малан: Скажіть це ще раз?
СТУДЕНТ: У тому числі і завантаження Минулі функції [нерозбірливо].
DAVID Малан: Добре.
У тому числі, я не буду говорити, завантаження, але, скажімо,
в тому числі функцій, які людина написав минулого.
І ці функції реалізовані десь в моєму комп'ютері.
Хто написав файл років тому, і цей файл
десь всередині CS50 прилад, або на моєму жорсткому диску
в цілому.
І так ця лінія, по суті кажучи, піти знайти цей файл, точку Standard I / O
ч, і скопіювати і вставити його вміст прямо тут, на вершині мого файлу
так що я не повинен робити це вручну сам.
>> І серед самих соковитих шматків всередині компанії що файл, який ми затверджували було те, що функція?
Яку функцію ми говорили був оголошений або згадується в стандартний I / O точка ч
швидше за все?
Printf, чи не так?
Ми не писали Е на Понеділок, вона просто існувала.
Багато чого, як Алана просто прийшов на сцену, і вона просто
існували і вмів малювати то на екрані,
так само Е існує протягом багатьох років.
І так це те, як ми до нього доступ.
Тепер, якщо ми перейдемо тут, Основний була аналогічна ми
сказав паззл викликається, коли зелений прапор натиснув
в світі нуля.
Це просто свого роду Ім'я за замовчуванням, що людей
вирішив би представляти замовчуванням точку входу в програму.
Шматок програмного коду що запускається на виконання в першу чергу.
>> Між тим ці фігурні дужки є вроде зігнутої форми
від великої кількості цих жовтих скретч штук.
Вони начебто инкапсуляции цілому купа інструкцій разом.
Так це тільки частково пов'язує деякі пов'язані функції.
Е звичайно це функція, яка друкує екран, як ми тільки що зробили.
>> Що про ці дужках?
Як би ви define-- навіть якщо ви ніколи не запрограмований раніше, але тільки на основі
Зараз на підвищення сподіваюся інтуїція, що
які дужки робить для нас тут?
Або те, що вони оточуючих?
Да?
>> СТУДЕНТ: Вони кажуть, що ви збираєтеся друкувати з Printf.
>> DAVID Малан: Так, вони говорять, що ви збираєтеся друкувати з Printf.
Або в більш загальному, вони навколишня вклад у функції.
Таким чином, ви можете подумати, з тих дужках
як як метал кліп на цю буфер обміну.
Це те, що тримає, це те, що використовуватиметься для забезпечення аргументи
у функцію, яка в цей випадок називається Е.
>> Так що в цілому майже будь раз, коли ми викликаємо функцію,
ми побачимо пару дужок.
Може бути, щось в ньому, як зараз, може бути, нічого в ньому.
Але от де ви б покласти входи або так звані аргументи
до функції.
>> Ось один з таких аргументів.
Я виділив все між лапок,
бо виявляється на цій мові під назвою
C, якщо ви хочете, щоб представляти string-- що це слово або фраза
або навіть paragraph-- ви повинні оточують його в подвійні лапки.
Чи не одинарні лапки, подвійні лапки.
І це саме те, що я зробив тут.
>> Тим часом є наляканий символ в кінці там.
Зворотна коса риса н.
Що ми говоримо, що представлено?
Да?
>> СТУДЕНТ: нова лінія.
>> DAVID Малан: Нова лінія.
Право, ви не як правило, натисніть Введення, коли
Ви хочете, щоб програма виплюнути нову лінію.
Швидше ви сказати це явно з цим треба визнати таємницею частини
синтаксису, зворотний слеш н, що Ви хочете нова лінія піти туди.
Нарешті коми.
Ми дійсно не говорили дуже багато про це,
і безумовно це буде отрута деякі вашого існування для першого завдання
встановити, коли ви просто не в змозі зрозуміти ви забули те, як нерозумно
як з коми.
І взагалі покласти його там буде вирішити цю проблему.
Але те, що він робить для нас, ви можете сказати?
>> СТУДЕНТ: [нерозбірливо].
>> DAVID Малан: Вибачте?
>> СТУДЕНТ: [нерозбірливо].
DAVID Малан: Оздоблювальні заяву.
Це ніби як період в кінець англійського пропозиції,
в той час як на цій мові C це закінчуючи заяву.
Навчання програмуванню код, який ви просто хочете сказати,
Я зробив з цим.
Тепер зверніть увагу, що це тільки один тут.
Таким чином, ви не хочете, щоб отримати в Звичка поклавши коми
після кожного замкнутого дужках.
Наприклад, немає ні поруч з анулюванню, і ми будемо
повернутися в майбутньому до того, що недійсними кошти.
Але в цьому випадку ваша Е є Функція, або заява використовується,
і тому ми хочемо мати, що кінцева зупинка в самому кінці.
>> І я навмисно чіплятися С і відверто багато мов, як C, C ++,
Java, JavaScript, і будь-яке число в інших мовах є багато таких
роду синтаксичних деталей.
Це, звичайно, якщо ви новачок в програмування може дійсно збити вас з пантелику.
І ви будете, пом'янути моє слова, деякі з вас буде
мати цей досвід в робочий час чи пізно
вночі працює на деяких р-набір, де ваш проклятий програма просто не зібрати,
він не працює, у вас є ніяка ідея, що трапилося,
здається повністю логічно правильним для вас.
І це тому, що ви забули щось на зразок удару
крапка з комою в кінці деякої лінії.
>> Але це ті речі, якими ви збирається негайно навчитися бачити.
І справді ці речі що ЦС і TF нам мати
був свого роду підготовку, щоб побачити набагато швидше, ніж ви.
І так це тільки сказати, як ви занурення в проблеми набір 1 особливо,
не турбуйтеся по цій речі.
Після того, як ви як би акліматизуватися в світі, ви
починаємо бачити речі, які ви не могли б см, на перший погляд це перший тиждень.
>> Так вихідний код щось на зразок цього.
Ми хочемо, щоб передати його в так званий компілятор.
І, що компілятор як ми сказали забезпечує виведення
відомий як об'єктний код, Так званий нулів та одиниць.
Але звідти, що ж це нам дає?
Ну, це дає нам ці шаблони.
І знову ваш комп'ютер, Ваш Intel всередині,
розуміє ці моделі з нулів та одиниць.
А іноді картина представляє реальний десяткове число
як ми бачили минулого тижня, іноді вона являє собою лист
як ми бачили минулого тижня, іноді вона являє собою інструкцію,
як друк-то на екран.
>> Так Е для instance-- а, дозвольте мені назад.
Ми приймали як належне що ці нулі і одиниці є
виробляється цієї командної виробництва.
Але зробити це не компілятор.
Зробити це не те, що в середині що продюсує нулі й одиниці.
Краще зробіть це просто дуже зручно по імені програми, мета якої в житті
по суті, щоб з'ясувати, як скомпілювати програму.
І ми використовуємо його в них Перші тижні, тому що його просто
економить нам масу неприємностей.
>> Але те, що робить дійсно робити при компіляції привіт,
є, як ми вже говорили минулого разу, це дивлячись на жорсткому диску
або в поточній папці, для файл називається те, що, мабуть?
Hello.c, чи не так?
Це тільки почасти конвенції.
Це довільне, але що так йдуть справи.
Зробіть, якщо ви просто вказати ім'я програми, яка поки що не існує,
це виглядатиме на вихідний код в файлі, за замовчуванням означає hello.c.
І якщо він знаходить його, здорово.
Це збирається конвертувати цей джерело Код в об'єктний код для вас.
>> Але кожен раз, коли я вдарив Введіть після запуску зробити привіт,
Чи пам'ятаєте ви бачити останній раз досить довго і загадково послідовність
інших білими буквами і символи на екрані?
Ну, що було фактичним команда, поточна компілятор, який був запущений.
Таким чином, реальне компілятор ми будемо використовувати більшість семестр щось, зване брязкіт.
Деякі з вас, можливо, використовував Visual Studio перед, або GCC,
або будь-яку кількість інших компіляторів.
Ми будемо використовувати брязкіт.
>> І брязкіт дозволяє нам насправді перетворення що вихідний код в об'єктний код.
Що це насправді означає на практиці?
Ну дозвольте мені перейти в один з мої папки з востаннє.
Усередині CS50 приладу.
І дозвольте мені йти вперед і створювати цей той же файл, включають в себе стандартні I / O точка годину.
Int основний недійсними.
І ми повернемося в майбутньому в якості до того, що Int кошти і які недійсними кошти.
Але зараз давайте робити привіт світ зворотний слеш н,
точно так само як ми зробили на дошці.
>> Дозвольте мені зберегти цей файл під назвою hello.c.
І тепер, якщо я хочу, щоб скомпілювати цей Я could-- дозвольте мені масштабу В- пробіг
зробити привіт ввести.
І це знову було що дуже загадковим лінія.
Але тепер, принаймні одне слово ймовірно, вискакує на тебе.
Clang є те, що лінія ми бачили раніше.
Тепер є багато інших речей, відверто що ми махаємо руками протягом сьогоднішнього дня.
Але є кілька підмножин, кілька символів в здесь
що представляють інтерес.
Але я збираюся йти вперед і робити це.
Я збираюся першого запуску привіт, тільки щоб довести,
що це працює, як це було в понеділок.
Але зараз я збираюся видалити програму.
І так само, як у нас були вони короткі імена в минулий раз,
команда для видалення тобто RM, видалити, введіть.
Ви збираєтеся отримати деякі досить загадкові питання.
Важко повірити, що ви можете зробити навіть це питання важко зрозуміти.
Але видалити звичайну файлову привіт просто кошти ви хочете видалити привіт.
>> І я можу йти вперед і ввести у до да, Enter, і тепер його немає.
Те, що це означає, що тепер, якщо я очистити екран,
в тому, що замість того, щоб робити зробити hello-- вас
знаю, що, я отримую хороший в цьому.
Я збираюся запускати компілятор сам.
Я не потрібна програма для з'ясувати, що мій файл називається.
Я написав hello.c, я знаю, як це називається,
Я чітко здатні набравши що.
Так що я збираюся йти вперед і не дзвеніти hello.c Enter.
>> Здається, працює.
І немає ніякого додатковий вихід, тому брязкіт компілятор.
Це те, що перетворення Вихідний код для нулів та одиниць.
Так що, якщо я зараз зробити точку слеш привіт Enter, хм.
Повідомлення Нове помилка сьогодні.
Так Баш просто назва блимати підказку, який ми використовуємо.
Це грубе спрощення, але зараз це все, що є,
це блимає швидко.
І ось чому це кричати на нас.
>> Немає такого файлу або каталогу не є трохи більш простим.
Але, звичайно, я зробив, що об'єктний код.
Але заковика в тому ,, що якщо я введіть команду
щоб переглянути вміст цього каталог, який є що?
Ls для списку.
Там в купу речі тут, деякі з яких прийшли з приладом,
як моїй папці Desktop, Завантажування Папка, папка Dropbox, і все
таке.
Але ось що цікаво є hello.c, які
Я створив кілька хвилин тому з Gedit.
І що найдивніше дивлячись ім'я тут,
можливо, що ми не зробили см останній раз взагалі?
>> a.out, чи не так?
Отже, повернемося в день, його який був тільки що вирішив, коли
компіляції програми в перший раз,
і ви не вказали ім'я файлу, назвемо його в.
І a.out просто означає, що це було Вихід компілятора.
Так що це жахливо назву для програми.
Але за цією логікою, точка слеш для поточний каталог, слеш a.out,
має означати є насправді мій привіт світ програма.
Тепер трохи розігріти вправи теж.
Якщо я хочу, щоб перейменувати це файл, виходить, що вас
перемістити файл з одного імені до іншого.
Так мв a.out, і тоді я можна назвати це привіт Enter.
Так що це команда Linux.
DOS була ця років тому, Вікна є вікно терміналу
деякого виду, який виглядає як цей, Linux і Mac
комп'ютери мають цю миготливу рядок.
Навіть при тому, що більшість з нас, ймовірно, рідко, якщо взагалі, використовувати його.
>> Але те, що я зробив запускається Програма, чиє ім'я М.В.,
і я забезпечив його з два аргументи, так би мовити.
Два входу.
a.out це первинна назва.
Привіт це нова назва.
Так що, якщо я зараз зробити точка слеш привіт, Enter, що існує.
А якщо я точка слеш a.out, що ви очікуєте, я повинен бачити?
>> Bash, немає такого файлу або каталогу.
Тому що я просто перейменував його.
Так що це займає трохи звикнути.
Але проблема встановити 1 специфікація стане воістину
тримати тебе за руку через деякі з цих minutae.
Тому що це повна інтелектуальної відволікання
від цікавіше ідеї в сторони, які
насправді створення то з коду.
Але давайте зробимо одну модифікацію Тепер до цієї програми.
>> Нагадаємо, що минулого разу я зробив щось як це, Е, вкажіть ваші ім'я.
І справді, ми просто зробили це на великому екрані над там.
І тоді я зробив рядок з отримує GetString відкриті Хлопець, близьке Хлопець.
І дужка лише скорочення позначення дужках.
Так само GetString приймає аргументів?
Ні входу немає, але це потрібні дужки,
тому що це те, що розмежовує виклик функції.
>> Так що я збираюся йти вперед і спробувати запустіть компілятор про цю програму зараз.
Clang hello.c, бо я не змінить свою назву на даний момент.
І я отримав купу помилок.
Давайте масштабу тут.
Якщо я прокрутки вгору знову, як я вже сказав в минулий раз,
до першого, таким же помилки що я отримав в минулий раз.
На рядку 6 hello.c я мав неоголошена рядок ідентифікатор,
я маю на увазі стандарт в?
Я не зробив.
Тому що те, що помилка є я зробив в цьому Програма, якщо ви пам'ятаєте з минулого часу?
Так, ми повинні так званий навчальні диски
що ми будемо використовувати тільки протягом декількох тижнів.
Але мені потрібно, щоб вказати, що також, десь всередині приладу,
це файл, який ми написали всього кілька років тому.
Усередині з яких є функціями як, мабуть GetString.
Так що тепер, якщо я повернуся сюди, збільшення, і повторно запустити брязкіт hello.c.
Чорт, інша помилка.
Але ми не бачили цього раніше.
>> Це один трохи більше езотерична з'ясувати.
Але це навмисно на екрані, тому що ми хотіли розповісти цю історію.
При компіляції hello.c, як картина від особи запропонували,
ви тільки перетворення, що Вихідний код для нулів та одиниць.
Тепер персонал CS50 кілька років тому написав CS50.h, і відповідний файл,
CS50.c.
І ми, кілька років тому, складено ці файли
в файл, що відбувається щоб назвати CS50.o.
>> Або він може бути перейменований дещо різні речі.
Але це простий спосіб роздумувати про це.
Так ми склали CS50-х Бібліотека в нулів і одиниць.
Але ніде я вказано що я хочу, щоб об'єднати свої нулі
і ті, для моєї привіт світ Програма з нулів та одиниць
що CS50 персонал створена кілька років тому в одній повній програмі.
Все я вказав у письмовій формі брязкіт hello.c є зібрати hello.c.
>> Я не сказав брязкіт, щоб посилання в нулів і одиниць
що CS50 персонал створена для вас якийсь час назад.
Так що це легко виправити, тире л для зв'язку, CS50.
І ми будемо знову побачити це до тих пір знову і знову.
Але зверніть увагу, тепер не було жодних скарг.
Так що тепер, якщо я біжу точка слеш привіт, тепер він працює.
Хоча це трохи вводить в оману так як я просто відтворили який файл?
a.out.
>> Отже, дозвольте мені назад на мить.
Програма, яку ми тільки що зібрали має три рядки коду.
Коли я побіг привіт світ, привіт момент назад, я не бачив, вкажіть ваші ім'я.
І це тому, що я побіг стара версія програми.
Але якщо я дійсно працювати точка слеш a.out Введіть, вкажіть ваші ім'я, Роб, привіт,
світ.
Хм.
Це свого роду помилки.
Напевно хотів сказати Робу, чи не так?
Так в чому ж виправити тут в коді.
СТУДЕНТ: [нерозбірливо].
DAVID Малан: Точно.
Так що я просто потрібно зробити, що остаточне твік так що я передаю як заповнювач,
як заповнити порожні, як ми робили якийсь час назад.
Але відсотків з тепер що заповнити порожні.
Так, нарешті, давайте розкрити один останній деталь, так що немає ніякої магії.
Я збираюся йти вперед і позбутися від Hellow.
Я збираюся йти вперед і позбутися від a.out.
Так що тепер у мене немає програми, просто мій вихідний код.
І я збираюся працювати трохи довше команда, брязкіт
тире про привіт hello.c тире LCS50.
>> Тепер це починає роду йдуть в одне вухо, а з іншого, можливо.
Але тільки дражнити один від одного, що це робить.
Clang є компілятор, тире LCS50 свідомо в самому кінці
робить те, що в реченні?
Посилання на бібліотеки CS50.
Вистачає нулі і ті, що персонал, зроблені
і переповнює їх в моїй програмі.
Так, останнє питання під рукою, що тире про привіт ймовірно
робити, навіть якщо ви ніколи не бачив цей синтаксис раніше?
>> Висновок програму, яка не назвав a.out за замовчуванням.
Швидше він називається привіт.
Так що тепер немає a.out.
Немає такого файлу або каталогу, бо я прямо сказав
називають цю програму привіт, так що Тепер я можу ввести ім'я подібне
і він себе.
>> Тепер, чесно кажучи, хлопчик, що нецікаво мати
пам'ятати все, що трохи дрібниці, чи не так?
Так що давайте йти вперед і позбутися привіт ще раз.
І нехай тепер повернемося до світу, в які досить сказати, зробити привіт.
Але це чарівництво, яке зробити робить для вас,
ось нудьга, що він робить для вас.
І як наші програми і проблеми стають все більш складними,
зробити буде дійсно ваш друг.
Тому що не надто довго відтепер ми збираємося
мати програми, які написані не з одним файлом, але кілька файлів,
і зробити буде автоматизувати процес компіляції все, що для нас разом.
>> Так що тепер роздрукувати.
Е знаходиться всередині цього файлу, стандарт I / O точка ч, що ми бачили раніше,
але це ще не все Е, ніж це.
Там в зворотний слеш н, але є також купа інших керуючих послідовностей.
І послідовність виходу просто химерний спосіб сказати те
, Яка починається із зворотного косою риси, НЕ коса риска, зворотний слеш,
і робить деякі спеціальні речі.
І ми не будемо зупинятися на більшість з них, але чому там зворотну косу риску подвійні лапки,
як ви думаєте?
Чому це дивно послідовність персонажі, зворотний слеш подвійні лапки,
Тому, можливо, що буде корисно?
СТУДЕНТ: [нерозбірливо].
DAVID Малан: Точно, вірно?
Згадайте наш привіт світ програми що ми бачили досить багато раз тепер,
кожен раз, коли ми бачили, що привіт світ Програма, яку ми мали подвійні лапки всередині
з яких Привіт коми Світ зворотний слеш н.
Але думаю, для себе, що робити, якщо вам насправді
хотів роздрукувати лапки?
Ваш перший інстинкт може бути, я не знаю, чому я, можливо, захочете do-- тут,
ми можемо бути трохи пасивної агресивний, привіт друг.
Ми, можливо, захочете зробити щось подібне.
>> Але чому це зараз проблематично?
Не звертаючи уваги на фігурні дужки, в сторону, що Лейтмотивом автоматично зробив для нас.
Чому це проблематично?
>> Точно.
Тому що у нас, як 4 лапки.
Ну перший, ймовірно, йде з другим,
і, можливо, четвертий йде з третім,
або, я маю на увазі, я навіть не впевнений ,, ні комп'ютер буде.
Комп'ютери знову, компілятори знову, досить безглуздо.
Вони роблять тільки те, Ви скажіть їм, щоб зробити.
І якщо ви не однозначна вони , Ймовірно, буде видавати помилку.
>> Якщо ви не однозначні, як у тому, як зробити арахісове масло і бутерброд желе
дивні речі можуть приїхати.
Це та ж ідея.
Тепер досить сказати, що є деякі інші керуючі послідовності,
але ми прийдемо до тих, найближчим часом.
По суті, це втеча послідовності представляють собою щось
що ви не зможете занадто легко в клавіатурі,
не змішуючи комп'ютер.
>> Тепер той же час у нас є заповнювачі в Printf.
Відсоток д, який також може бути записана майже у всіх випадках, як відсотка I,
є заповнювачем для якого типу даних?
Який вид вартості?
Десяткове число.
Таким чином, фактично ми почнемо використовуючи відсотків I, тому що це
трохи простіше, як цілого.
Відсоток я.
Ціле число, трапляється, десяткової.
>> Відсоток с ми вже сказали, було заповнювач для рядка.
Які це просто слово, фраза, пункт, есе, що завгодно.
Це послідовність персонажі досить довго.
І ми побачимо найближчим часом деякі з цих інших.
Але відсотків с для одного символу.
Відсоток е для число з плаваючою точкою,
як справжній номер, для якого десяткову в ньому, які
конечно не ціле.
І є цілий купа інших.
>> Між тим в C, і в багатьох мовах,
у нас є різні типи даних.
Різні типи скляні чаші, якщо ви будете.
Чаша я в останній раз був для пінг-понгу куль,
але ми також можемо зберігати різні цінності, як символів і рядків
й цілі в контейнері, як змінної, і C має ці.
Напівкокс тип даних, тип змінної,
в якому ви можете зберігати характер.
Float є тип змінної в які ви можете зберігати дійсне число.
>> Int, звичайно для міжнар.
І швидше сміховинно назвав дуже довго
Тут ви можете зберігати суті дійсно довгий номер, з ще
більше знаків, то Типовий Int міць магазин.
Але ми повернемося до того, що незабаром.
>> В CS50 точка ч тим часом другий файл заголовка
що ми бачили пару раз у використанні, є
дві інші типи даних, які не перебувають у C зазвичай.
Одним з них є рядок, і ми побачимо, в кілька тижнів які рядки дійсно
є під капотом.
І один BOOL.
І BOOL це змінна, може приймати тільки певні значення.
І тільки на основі минулого тижня Пояснення нуля,
а останнім часом С, що б ви здогадатися
є два можливих значення: деякі контейнер, який має тип BOOL?
>> Та й немає.
Одиниці і нулю.
Правда чи брехня.
І справді, що це останнє, що має тенденцію щоб бути звичайними в програмуванні
мову, кажучи то як істинне або помилкове.
>> Між тим бібліотека CS50 приходить з купою функціональних
що персонал написав для вас, Крім того, тільки отримую рядок.
Ми написали заздалегідь функцій, можна отримати ціле число від користувача,
отримати один символ, отримати поплавок, який
просто номер з комою.
Отримати довго довго, дійсно Велике значення від користувача.
Таким чином, ми тільки бачили це в дія у вигляді GetString.
Але через ці функції скоро бути в змозі написати
програми, які отримують дані від користувача.
>> Між тим вважають це Програма, та розглянути
як зараз ми могли б почати, щоб додати щоб він з новими конструкціями.
Швидкий побіжний тур а потім ми будемо дивитися
на деякі писати деякі програми вручну самі.
Відтепер, якщо ми хочемо реалізувати стан,
це не буде виглядати миленький досить паззл.
Це буде виглядати трохи складніших.
Але це канонічне Структура стану в C.
>> Слово, якщо, два дужки, всередині якого
буде свого роду логічного виразу.
Тепер слеш слеш в середині, це
на даний момент ніби як псевдокод код заповнювач.
Але більш правильно, будь-якого рядка коду в С, що починається з косою косою риси
Це коментар.
>> Це як записки, що ви могли б поставити на есе, надрукованого на папері.
Це записка до себе.
Це не має ніякого функціонального вплив на програму.
Це свого роду нагадування, що це ваша власна документація щодо того, що відбувається.
Так що це на даний момент є свого роду заповнювача
по яким всередині з тих фігурні дужки
в кінцевому підсумку буде робити те.
>> Між тим у вас є дві вилки в Дорога, якщо ще побудувати, як це.
Ви можете, якщо, ElseIf, ще.
Тепер варто зауважити, особливо якщо ви були погуглити навколо
онлайн ресурсів з цікавість, або, якщо ви берете в руки
один з Курсу Рекомендовані книги по C,
ви побачите, що у людей є багато з різних преференцій для як
щоб виразити себе в коді.
Деякі люди люблять ставити Фігурні дужки, як це зробив я.
Деякі люди люблять ставити фігурних підтяжки наприклад тут.
>> Деякі люди люблять ставити Ельсес тут і то це сюди.
Там в будь-яку кількість способів написати код, і жоден з них
рацію по собі.
Хоча є кілька що досить неправильно.
Але існують no--, якщо це в кінцевому рахунку, дуже релігійний спір.
Насправді, один з найбільш дратівливих речі про інформатиці
як впертий комп'ютерники може бути.
І ви знайдете протягом довгого часу, що навіть вам розвинути особисті переваги
про те, як ваш код повинен виглядати.
>> Не тільки себе, не тільки створити вихід, але як він має виглядати естетично.
Так що ми будемо робити це допоможе вам разом шлях до, поки принаймні,
стандартний стиль CS50, що, принаймні тримає речі однорідним і легко читається.
Але більше на тих, відмінності найближчим часом.
>> Логічний вираз в C, якщо вам хотів сказати, якщо ця умова істинно
і цей інший умова правда, ви не пишете слово
і, як ви б англійською мовою.
Ви замість цього використовувати амперсанд амперсанд, з причин, ми повернемося до.
Якщо ви хочете сказати, або ви використовуєте два вертикальні смуги, які на клавіатурі США
, Як правило, вище Введіть ключ рядом із зворотного косою риси.
І це тільки означає, що якщо це умова або це інша умова істинно це зробити.
>> Тим часом є це божевільна річ, яка
ви будете мати привід використовувати один раз в деякий час.
Але це всього лише альтернатива спосіб виразити себе.
Це, поки що, давайте передбачають, що це просто
другий фанки спосіб вираження якщо, ElseIf, ElseIf, ElseIf, ElseIf.
Це просто відформатований в плані випадків, де вас буквально
перерахувати цінності, які Ви можете перевірити на.
>> Між тим петлі.
Ми бачили порівняння Подряпини з петлею.
І я збираюся махнути рукою на що кожен з цих речей означає.
Але зверніть увагу, що цикл буде дуже часто починаються з ключового слова для.
Або він почне з часом ключовим словом.
Або він почне з ключовим словом зробити, і закінчуються час ключовим словом.
>> Але те, що ми збираємося, щоб побачити є речі більш, як це.
Ось, загалом в C, як ви могли б оголосити змінну і дати йому значення.
В C його не вистачає, як в порожньому, ви просто
сказав, дають мені змінної називається те.
Ви повинні сказати C, і скажіть компілятор, більш конкретно,
який тип вартості зробити вас хочу поставити в скляну ємність.
>> Це ціле?
Якщо це так, ви повинні буквально сказати Int, а потім
ім'я змінної, то точка з коми.
Якщо ви замість хотів рядок і називається Це все одно, я зробив свій код тут сьогодні,
Ви б сказав коми струни с.
Після того, як ви хочете, щоб дати йому значення ви можете використовувати знак рівності,
інакше відомий як Оператор присвоювання.
І зверніть увагу, як кожен з цих рядків коду
має крапку з комою в кінці.
>> Але, відверто кажучи це просто виглядає трохи некрасиво.
Чому я не можу сказати, до комп'ютера, дати мені мінлива і ініціалізувати його до нуля.
Тобто, дай мені порожню скляну миску.
У той час як ви можете.
І тому один з вироку називає вам повинні зробити стилістично з плином часу
Тобто, ви написати свій код, як це, або ви начебто його прибрати і справити враження
люди Додайте дві лінії, як тільки один.
І це вважатиметься як правило, більш елегантний спосіб
написання коду стилістично.
>> Функції ми звичайно бачив.
Вони збираються прийняти цей формат.
Ім'я функції, деякі дужках, а потім, можливо, деякі
речі всередині.
Або ви могли б бачити використання кілька функцій сторона
пліч, як щось на зразок цього.
Тепер по дотичній, робить цей жарт тепер сенс?
>> [Сміх]
Це не означає, що це смішно, але це дійсно можливо зробити трохи більше сенсу.
Так що тепер давайте увійдемо в CS50 прилад на мить.
І дозвольте мені відкрити один тизер тут.
>> І справді одна з причин, для введення каталог IKEA
і блимає картину з мобільний трохи назад
був насправді зв'язати разом Справа в тому, що всього кілька років тому, в 2007 році,
цей шматок коду був випущений, який був
один з найперших реалізації шматка програмного забезпечення
що робить те, що називається джейлбрейка.
Для тих, хто незнайомий, джейлбрейка то, як телефон або мобільний
означає по суті з'ясовуючи , Як зробити речі
з ним, що компанія хто зробив, що не має наміру.
Як ви хочете встановити певний програмне забезпечення, яке не в магазині додатків,
джейлбрейка телефону, який ви робите речі, як, що і більше.
Але те, що було весело в 2007-- і там було
десятки різних версій з цих речей з тих пір,
у всіх видах з languages-- є те, що ця програма тут, називається iUnlock,
була написана на C. І тому я під'їхав вихідний код для цього,
просто вид показати вам деякі з схожість з конструкціями
ми обговорювали досі.
Тепер є спосіб більш складність тут ніж ми бачили вже в класі.
Дозвольте мені прокрутку вгору тільки трохи тут.
>> Але зверніть увагу, these-- добре ми помічаємо кілька things-- не помітити ці рядки тут,
в тому числі стандартний I / O точка годину.
І all-- лінія 24, пожалуйста-- помітити стандартний I / O
точка ч і ціла купа інших Файли, які, мабуть інші люди
написали.
І якщо ми прокрутите вниз через це, трохи довільно,
Зауважте, що я не знаю, як писати все це я обов'язково ще,
але є якщо.
Так, мабуть, це має філію.
>> І якщо я прокрутите вниз трохи далі є ще один, якщо.
Якщо я прокрутки вгору, я думаю, навколо лінії 100 я бачив для.
Так що я не зовсім впевнений, як це працює поки,
але це для петлі, що відбувається в дозвольте мені повторювати деяке число раз.
І якщо я прокрутки все до самого дна
Я бачу, що є функціонувати тут називається
Основний, і деякі додаткові кредити для вашого задоволення читання.
>> Так що це тільки say-- і ми помістимо це онлайн серед джерела Курсу
Код сегодня--, що навіть деякі з них пристрою, які ми вважаємо само собою зрозумілим,
в кінці дня ви все ще використовуючи ці основні конструкції, які ми
впроваджує вже до теперішнього часу.
Цього достатньо цього одного.
Гаразд, так що тепер давайте насправді щось побудувати.
>> Підемо далі-то вроде hello.c, і відкрити цей,
давайте напишемо цю програму тут.
Я збираюся йти вперед і написати програму під назвою adder.c,
чия мета в житті буде як мій перший супер простий калькулятор
що тільки додає пару чисел.
Не тому що це важко Проблема, а тому, що йому
дозволяє мені зараз пов'язати разом кілька речей.
Так що я збираюся йти вперед і включають Стандарт I / O точка ч і CS50 точка ч.
Я збираюся сказати тап_п порожнечу.
І знову в майбутньому ми повернемося до нього
в в цьому контексті і порожніх засобів.
>> І зараз я збираюся сказати щось як Printf, дай мені ціле.
І тепер на моїй другій лінії, як я можу виразити себе такі
що я хочу оголосити змінну що збирається зберігати Int?
Буквально що ж я друкую, якщо я хочу, щоб створити змінну, яка зберігає в Int
б ви сказали?
Int дорівнює GetInt.
Звичайно, так, що працює.
І тільки для консистенції з кодом ви будете
дивитися онлайн, дозвольте мені змінити це х, тільки тому, що х
є загальним ім'я змінної використання, щонайменше, в алгебри.
Тепер дозвольте мені йти вперед і робити PRINTF знову.
Дайте мені інше ціле число.
А тепер я збираюся роду з дізнатись з цієї картини,
Я збираюся сказати Int у попадає в GetInt.
>> І ми не використовується GetInt раніше, але тільки
як GetString йде і отримує рядок, як Хав'єр зробив із залу,
Аналогічно робить GetInt починає блимати підказку.
І ефективно чекати користувача дати йому ціле, ввівши його в
і потрапивши Enter.
Тепер, нарешті, я збираюся зробити це, Е суму of--
і дозвольте мені отримати фантазії now-- відсотків я і відсотків я присутній
я знак оклику зворотної косою н.
І що ви думаєте, що я збираюся покласти в даний час в якості додаткових входів
до Е?
>> Я не хочу сказати, буквально процитувати Unquote х.
Я хочу класу в х і тоді, і зараз давайте фантазії
і давайте припустимо, ми можемо робити те, що ми хочемо.
Що ви хочете сказати далі?
х плюс у.
І справді, що буде працювати.
Це мінімально мови програмування розумію основні арифметичні,
і таким чином, це має насправді робота.
>> Отже, дозвольте мені йти вперед і роблять гадюка в моєму чорному і білому вікні
сюди, Enter.
Cryptic лінія, але немає помилок повідомлення, так що це добре.
Dot слеш гадюка, дай мені ціле, 1.
Дайте мені інше ціле число, 2.
Сума 1 і 2 є 3.
>> Гаразд, так досить тривіально Програма, але що ж це робиться?
Це дозволило мені використовувати функцію називають тут, викликати іншу функцію тут,
два звернення до GetInt, а Третій виклик, щоб Е,
а потім за допомогою цих заповнювачів.
Так що це трохи більше складні, ніж минулого разу.
Але що, якщо я хочу, щоб отримати трохи незвичним?
>> Дозвольте мені йти вперед і зараз це зробити.
Дозвольте мені йти вперед і створювати Новий файл називається умови нулю.
І я йду, щоб врятувати деякий час заради класів
і просто вставити в тому, що Код в якості відправної точки.
А тепер я просто хочу, щоб покласти щось нове тут в середині.
Так Е Я хотів би ціле будь ласка.
І все це код доступний на сайті Курсу,
Ви не повинні ввести все це в класі, якщо ви не хочете.
Int, і тепер я збираюся використовувати, замість х і у,
Я збираюся використовувати п, що ймовірно, найбільш загальна назва
для цілого числа в комп'ютерній програмі.
А тепер я хочу зробити трохи судження тут.
Я збираюся подивитися, якщо н більше, ніж 0, тоді
Я збираюся сказати printf-- вигуки, printf-- ви вибрали позитивне число,
Знак оклику коса риска н.
Закрийте що.
А то я збираюся роздрукувати Е Ви вибрали негативне число.
>> Тепер, перш ніж ви кричите на мене, давайте запустимо цю програму.
Відпусти мене сюди.
І як я можу скомпілювати програму називається умови тире 0?
Зробіть умови тире 0.
Вид дурне ім'я, но-- чорт візьми.
ОК, хороше викладання момент.
Чому, що зламати?
>> Що я випадково називають цей файл?
Ви можете роду висновок на вкладці тут.
Так що це не погано, що я зробив це, тому що це
відбудеться, можливо, деякі з вас.
Так я випадково назвав свій вихідний код стан 0.
Але мій вихідний код за угодою повинні бути в файлі під назвою стан 0 тире с,
або що точка в.
>> Отже, дозвольте мені виправити це.
Так само, як Microsoft Word, я можу піти вгору Зберегти як і зробити стан 0 точка в.
Тепер просто бути акуратним Я збираюся йти вперед і видалити
стан 0, який був моїм стара версія.
А тепер давайте дійсно роблять стан 0, Enter.
ОК, здається хорошим.
>> Стан 0, Enter.
Я хотів би ціле будь ласка, 50, Ви вибрали позитивне число.
Тепер, як про негативний 50?
Ви вибрали негативне число.
А зараз, 0.
Упевнений, 0 не негативний.
>> Так що це свого роду логічною помилкою.
Як це виправити?
Інакше, якщо п менше 0, зробити це, ще ми можемо мати тристоронній філія тут,
Е ви вибрали 0.
Так що тепер, якщо я повторно це Програма, після компіляції
знову марки, і тепер повторно стан 0, що я буду бачити тут
0 дає мені цей висновок.
Так куди ми йдемо з цим?
>> Ну, це дуже легко втратити з уваги лісу за деревами.
І так дозволяють зробити висновок, з цим 2 і 1/2 хвилини відео
що в кінцевому підсумку трохи з реклами від Google,
але, що дійсно є свідченням того, що навіть з використанням цих основна будівля
блоки ми можемо в кінцевому рахунку, зробити один раз у нас є трохи програмування
підкованих під нашими поясами.
>> [МУЗИКА ГРАЄ]
>> SAROO Брірлі (VoiceOver): Це було 26 років тому,
і я як раз збирався повернути 5.
Ми дісталися до залізничної станції та ми сіли на наш поїзд разом.
Мій брат щойно сказав, я буду залишитися тут, і я повернуся.
І я просто подумав, ну ви знаєте, Я міг би також просто піти спати
і він просто розбудити мене.
І коли я прокинувся наступного день, весь каретки
був порожній на некерований поїзд, привид Поїзд приймати мені, що я не знаю, де.
>> Я був прийнятий до Австралії, в австралійській сім'ї.
І мама прикрашений мій Номер з карти Індії,
які вона поклала поряд з мого ліжка.
Я прокидався щоранку бачачи цю карту, і, отже,
він ніби як зберіг спогади живі.
Люди говорили, що ти намагаючись знайти голку
в стозі сіна, Saroo Ви ніколи не знайдете його.
>> Я б спалахнули з місць, які я ходив, спалахи моєї родини
стикається.
Був образ моєї матері, сідаючи зі схрещеними ногами,
просто дивитися, як вона плаче.
Життя так важко.
Це було моє скарб.
І я дивився на Google Map і зрозумів, що є Google Earth, а також.
У світі, де ви могли б збільшити в, У мене почалися всі ці думки
і які можливості що це може зробити для мене.
Я сказав собі, ви знаєте, ви, отримав всі ці фотографічні спогади
і орієнтири, звідки ти родом, і ви знаєте, що місто виглядає.
Це може бути програма, яка Ви можете використовувати, щоб знайти дорогу назад.
>> Я подумав, ну я покладу точка на залізничній станції Калькутти,
і радіус лінії, ви знаєте, що вас слід шукати навколо цієї області.
Я, звичайно, зіштовхувався ці залізничні колії.
І я почав після його, і Я прийшов до залізничної станції, яка
відображення і те ж зображення що було в моїх спогадах.
Все співпало.
Я просто подумав, да, я знаю, куди я йду.
Я просто збираюся дозволити карта, яка у мене є в голові
привести мене і прийняти мене назад в моє рідне місто.
>> Я прийшов до порога Будинок, який я народився.
І обійшов близько 15 метрів за рогом,
було три дами стоячи зовні, поруч один з одним.
А середній ступив уперед, і Я просто думав, це твоя мама.
Вона виступила, вона обняла мене, і ми були там протягом приблизно п'яти хвилин.
>> Вона схопила мене за руку і вона взяла мене до будинку
і отримав по телефону, де вона подзвонив моїй сестрі і мого брата
сказати, що, ви знаєте, брат твій має тільки
все раптово з'явився як привид.
А потім сім'я знову возз'єдналася.
Всі все добре, Я допомагав мамі з,
вона не повинна бути відомою далеко.
Вона може прожити залишок її життя в миру.
>> Це була голка в стозі сіна, але голка була там.
Все є.
Все, що ми є у світі є на натискання кнопки.
Але ви повинні мати бажання і рішучість бажаючи його.
>> [МУЗИКА ГРАЄ]
DAVID Малан: Чудесно солодкий свідоцтво
тільки те, що ви можете тепер робити з технологією.
Ми будемо бачити вас на наступному тижні.