[За възпроизвеждане на музика] 

DAVID Malan: Добре това е CS50 и това е краят на една седмица. Така че бих искал да се въведе моята бивша advisee, Andel Duff, който не само прави iPhone 5 щандове, както и тази аналой, той също кара коли. Ансел DUFF: Как върви, всички? Аз просто искам да ви разкажа малко малко за Formula SAE, на което аз съм капитан. Това е екип MIT. Аз просто искам да ви кажа, момчета малко за него и да се надяваме да генерира някакъв интерес. 

Така че нека просто да преминават през Няколко неща за нашия екип. Така че ние сме напълно студент писта, където всички на дизайна членове, симулира, тест, и производител на подсистема на колата. Ние разполагаме със собствена работилница и гаражи, и N52-- или грешка, N51--, която е една и съща сграда Тъй като науката музей на MIT. И ние сме хората че карам колата. Има един национален конкурс в началото на лятото, И тогава там са по-малки дузпи състезания през годината. И след това, което правим обучение на водачи дни, за да се запознаят на нови членове. 

Нашите изграждане ден са на Събота от 11 ч. до 20:00. Обяд и вечеря се полагат специални грижи на, от Bertucci и Beantown съответно. Имаме седмична среща и семинар, който е за курс кредит. Кое е по-нова от този семестър, и тя също така ще бъде за следващия семестър, така че може да премине-обл за това. И тогава имаме проектиране, магазин, и CAD ден през седмицата, има предвид, че членовете на ЕП ще независимо CAD части, за да склад и така нататък. 

Така че за електрическо инженерство в екипа ние имаме теглителна, система за високо напрежение, която работи при номинална 300 волта, което включва мотори, моторни контролери, и батерии. Тогава имаме ниско електрическа система, която тече при 12 волта, което включва контроли могат възли, мозъка кутия, и таблото. Що CS върви, ние правим имате уеб сайт поддръжка че имаме нужда направил за събития, членство промени, нови снимки и PR материали. И тогава имаме код, който контролира кола за нашия тракшън контрол, изстрелване контрол, контрол на таблото, въртящия момент, и регенеративни спирачни системи, които тичам обикновено в MATLAB, Simulink и LabView. 

Ще ви кажа малко за колата. Така че това е около 500 паунда. Тя е правила ограничават до 85 kw. Тя разполага с 2 EMRAX 207 мотори в Обратно, по един за всяко от задните колела. Той има специално изградена батерии от призматични A123 торбичка клетки, в размер на 300 волта и 5,6 киловата часа. И това е директно задвижване с съотношение 2.64 до 1 диск. Ето някои от снимките, които взе от него в конкуренция. Ето конуса на гърба, носа, и тук са моторите, тези големи черни дискове под et мъжки Ману. Ето един слайд, който извадих от схемата ни конкуренция. И това е само сравнявайки нашата кола до двойка на търговски достъпни автомобили, като KTM XBOW, Ариел Atom, и Caterha M 7-280. Ако сте запознати с цена, мощност издърпайте тегло, долара за конски сили, долара на въртящ момент, и нашата кола ги издухва от водата. Ако имате някакви въпроси, нахвърлям този имейл адрес. Снимайте ни имейл на fsae@mit.edu. 

Ние сме щастливи да се говори за нещо, което искаш. Студенти от Харвард са вид на малцинството в отбора. Ако имате някакви въпроси относно че моля не ни застрелят имейл, щастливи да се говори, и аз отивам да се насочват обратно към Дейвид. Благодаря. Оценявам го, момчета. [APPLAUSE] 

DAVID Malan: Ансел прекара лятото Работейки с нас тук, на територията на колежа в CS50 това лято. И в допълнение към работата на неща като бинарните крушки, той всъщност наистина отворихме eyes-- и мина в particular-- на това, което наистина е пресечната точка на не на хардуер и софтуер може да бъде. В действителност много от нещата, той просто обиколи вас чрез крайна сметка са създаден първият в областта на софтуера, и след това в крайна сметка произвежда в реалния свят в хардуера. Така че, ако сте заинтересувани от проучване, че пресичане, може би има достъп до тази група. 

Сега междувременно, тези от вас, , които са фенове на технологиите, и Apple продукти в специално знам, че има са няколко Съобщения вчера. Но ние смятахме, че ще се покаже ви един, който излезе няколко дни преди тази може да не сте виждали. 

Йорген EGHAMMER: Знаете ли, веднъж в известно време нещо идва заедно, че променя начина, по който живеем. Устройство толкова прост и интуитивен да го използвате се чувства почти познато. Въвеждане 2015 IKEA каталог. Това не е дигитална книга или електронна книга, тя е книга-книга. 

Първото нещо е да се отбележи, е не кабели, дори и захранващ кабел. The IKEA каталог 2015 е напълно заредена, и живота на батерията е вечен. Интерфейсът е 7.5 с 8 инча но може да се разшири до 15 с 8 инча. Навигацията се основава на тактилна технология, която всъщност можете да почувствате. 

Съдържание идва с предварително инсталирана чрез 328 с висока резолюция страници вдъхновя обзавеждане на дома идеи. За стартиране на браузъра, просто натиснете и плъзнете. Отдясно наляво да се движат напред, ляво на дясно да се движи назад. 

Забележете нещо друго? Точно така. Не лаг. Всеки кристално чиста страница товар мигновено, без значение колко бързо превъртане. Ако искате да получите бърз преглед, просто да го държите в дланта на ръката си, и само с помощта на палеца, скорост разглеждате съдържанието. 

Ако откриете нещо, което искате да запазите за по-късно, можете просто да го маркирате. И дори ако затворите приложението, лесно можете да намерите маркера отново. Невероятно. 

[СМЯХ] [APPLAUSE] Така че това ни довежда до на края на една седмица. Няколко съобщения предприятието. Така че сега профилиране е в прогрес. Отиди на този адрес тук някъде между предприятието и петък по обяд действително да уточни дали сте сред тези, които по-малко удобни, по- удобни, или някъде по средата. 

Това обикновено е един от тези неща, които просто вид знам. И всъщност тези от вас, които са по-малко комфортен вероятно знаете много, тези от вас, които са по- комфортен знае колкото, и отново, ако не сте съвсем сигурни коя на тези кофи попаднат в сте Вероятно някъде по средата. Но бъдете сигурни, можете да сменяте след няколко седмици, ако е необходимо. 

В същото време, за следващата седмица не започнем секции по себе си, но супер секции, които са отворени за всички студенти. Това идва неделя на място, за да бъдат обявени на интернет страницата на курса ние ще имаме един за тези, по-малко удобни, както и един за тези по-удобно. И тези, някъде по средата може да избере коя от тези две, или и двете, ако искате, да седне-ин. И цел на тези ще бъде в крайна сметка от C, които ние ще продължим нашата разговор от днес. 

Проблем зададете 0 междувременно е надявам се във вашите ръце. Официално дължи утре, Четвъртък, по обяд. Освен ако не спечелят в една от вашите пет късни дни, което би го донесе до петък по обед. Проблем комплект 1 междувременно ще бъде публикуван на интернет страницата на курса. И това ще бъде нашата първа набег като клас в C. И този проблем зададете спец ще ви преведе чрез много от механиката на това, което ние започнахме да говорим за в понеделник, и ние ще продължим да говорим за днес. C, Linux, на CS50 уред, всичко това ще ви очакват в спецификацията. 

Работно време междувременно са в ход, в бакалавърска трапезарията. Насочете се към този URL тук, за да видите График за тази вечер и утре, ако искате да участвате. Въпроси междувременно, така че да можете имат възможности да задават въпроси асинхронно, 24/7, да разбере, че сте без да се ограничава до раздели и офис часа, а по-скоро този инструмент тук, CS50 Обсъждане в този URL ще бъде на линия на курса бюлетин софтуер борда, чрез който можете да задавате въпроси на съученици и също персонал. Така че имайте предвид, че ресурсите, както добре. Междувременно традиция започва този петък. Както може би сте зърнали от тийзър видео миналата сряда е, имаме традиция най- всеки петък по време на мандата на приема на около 50 студенти и персонала на местен ресторант, наречен Огън и лед, в които ние сме обикновено се присъединиха някои възпитаници или приятели от промишлеността като цяло да се стремят да се направи голям клас чувстват по-малък. Така че това е напълно случаен обяд. А китка от нас, персоналът особено, ще свирят на музикални столове и общуване с учениците за 50, живот извън 50, живот в бъдеще, в реалния свят, Говоря за възможности за работа с приятели в промишлеността. 

Така че, ако искате да се присъедините към нас този петък, се отправят към този URL тук. Space е ограничен, но ние ще направим това recurringly целия план. Главата няма да cs50.harvard.edu/rsvp. И ако те не получават в този път, за да не се притеснявате. Ние ще го направим отново в следващите седмици, както добре. 

Така че това е картината боядисахме миналата седмица, и вие вероятно сте били впускал в този момент. Но нека да се опитаме да се свърже това сега на това, което ние ще направим днес и по-нататък. Може ли един доброволец? Добре, или няколко. Какво ще кажете за тук на край, в синя риза. Ела, какво е вашето име? ALANA: Алана. DAVID Malan: Алана. Така Алана, само за moment-- хубаво да се срещнем ти-- ще играе ролята на тази функция тук. Пурпурният блок сме нарича досега функция. Така че това, което аз отивам да напред тук и предлагат Алана е малко етикет име, за да ясно каква е ролята, която играете. 

Така че ти ще бъдеш речем блок. Ако искате да отидете напред и да сложи това. И ние ще се запази тази супер проста. Ако целта на една ръка разстояние е просто сега, за да изпълни с Alana, тази така наречена каже блок, ето как това ще работи. I трябва-- нека го наречем аргумент или параметър, това е наистина само един празен лист хартия. И това е бял до вид да напомня на бялото поле, в което можете може да пише думи. 

В същото време аз отивам да отидете тук. Отивам да вървим напред и напиши H-E-L-L-О запетая свят. И сега, като казват, че програмист, не всъщност знаят как да каже нещо. Аз може да излезе с думите, Но не е задължително знам как да се изразя устно или на екрана. И така, какво ще да направите, е да вземе това парче на функционалност, чиито input-- или аргумент, тъй като ние ще го наричаме, Аз съм писал за тази част от есето и аз отивам да го изнесат. 

И наистина това е ролята, която функции в един език за програмиране може да играе. Нещо подобно на дума блок могат да бъдат възложени на външни изпълнители на някой, който наистина знае това, което той или тя говори. Така че, ако ще се засили през тук само за момент, Аз отивам да мине този вход към Алана, и молим да се каже, този вход. 

ALANA: Здравей, свят. DAVID Malan: Това е всичко. Така, че е функция. Сега можем да го отнеме малко повече, можем да направим стъпка напред тук. Тъй като това беше ясно underwhelming. Така че нека сега да конвертирате това нещо малко по-сложни. 

Така че това, разбира се, е нашата C версия. Така че сега, ако искате да вземете, че еднократна, че името етикет изключен, и нека да ви постави на ново име. Но в основата си играе същата роля, той просто така се случва да да се нарече ФОРМАТ сега. 

Историята е, разбира се, ще е-- вероятно точно както underwhelming-- е ще бъде следното. Вие сега функция ФОРМАТ. Аз съм абонати, или на програмист, който иска да стои на раменете на хора в миналото като теб, които вече сте измислили как действително да напиша нещо надолу. И така този път, вместо да каже, че нека да всъщност използват нашия екран тук. Така че, ако искате да се оттегли тук, аз отивам да премине отново това като вход към моя ФОРМАТ приятел. Ако можете да отидете напред и да отпечатате, че на екрана, просто чрез рисуване с вашия пръст на черен екран. Отлично. Добре, така че много съспенс за как това щеше да играе навън. 

Така че сега нека вземем нещата едно окончателно ниво, ако можехме, както следва. Така че това е програма C както казахме миналия път. И това просто прави това, което си направил, то отпечатва на екрана, здравей, свят. Въпреки че има ясно много на разсейващи неща там. Но нека вземем нещата с една степен и въвеждане на тази версия, която припомни е третата версия, която ние достигнахме до последния момент. 

И сега там е ясно две употреби на ФОРМАТ. Има две повиквания към Алана в този случай за ФОРМАТ, но има и призив до друга функция. Каква е тази функция ясно? Getstring. 

Можем ли да получим още един доброволец? Добре, хайде нагоре. Как ти е името? 

JAVIER: Хавиер. 

DAVID Malan: Javier, хайде нагоре. Така че ролята на Хавиер е на това парче хартия. Което аз отивам да се обадя генерично ите. Сега това е променлива, това е от тип низ, като подразбиращи от тази втора линия в средата там. И бих искал да отида да ми донесе низ. Конкретно главата надолу към оркестъра раздел и ми се името на някого, и да се върне с променлива съдържащ тази стойност. Тя може да бъде всеки, който искате. 

Ето ни и нас. Добре, Хавиер е записвам името. Добре. Ние всички можем да се досещате как това ще се разиграе. Ние сме може би belaboring точката на какво функция е това, но въпреки това ви благодаря много. 

Така че Хавиер е върнал този низ тук, което не мога да видя, Джонатан е низ че ние сме придобили. Така че сега това, което всъщност ще да предостави на Алана макар е нещо малко по-различно. Защото в тази версия на програма, първо там, да се посочи името си. Така че много първи аргумент Трябва да се осигури Алана с ще бъде буквално да посочи името си. Добре, толкова просто като това Бих предаде това за вас. И тъй като аз пиша състава на следващия аргумент, ако сте Искам да отида напред и да напиша тази на дъската, да вървим напред и да направи последен пример тук, за да направи ясно какво е в крайна сметка трябва да се случи. Така името си, напишете го към върха ако нямате нищо против, просто така, че имаме стая за една секунда линия. Тъй като последното нещо, което аз отивам До сега ви осигури не е един, но две парчета хартия. 

Добре. H-E-L-L-О запетая и след един празен ред. Така че това, което аз съм на път да предаде Алана сега е нещо малко по-различно. Не само, че тя все това, където запълване в празната представлява че percent-- Каква беше контейнер ние сме били използвате? Да, така процента ите. В същото време аз отивам да мине нея във втори аргумент, който е точно това, което Javier възстановен от Джонатан. 

Така че нека да ви дам тези две. Ако искате да, давай напред и печат на този смисъл. Какво в крайна сметка се случва сега е, Алана отново играе ролята на ФОРМАТ. Javier играеше ролята на GetString. Така, че ще ви бъде за спомен. И в крайна сметка това, което се случва, въпреки този hello-- Да вървим напред и запетая. ALANA: Знаете ли да получа това все още или не? DAVID Malan: Да, можете двамата получи наведнъж. Така че идеята е, че сега може да обърне страницата да се справят с втория от тези два входа. Така че това е само да чука у дома посоча, че докато Алана екзекутиран тази зелена линия тук, а след това Хавиер е направил това за нас и да се върне при мен нещо ние ще се обадя и, но това е наистина точно това парче хартия, на собствените си. И сега Алана е направил тази трета линия. 

И въпреки че всичко това изглежда толкова невероятно загадъчно може би На пръв поглед, той наистина е толкова просто като това. Минавайки входове наоколо, получаване на резултати, или са физически върна нещо, или виждате страничен ефект като този. Нещо визуално написано на екрана. Така че нека да вървим напред и да благодаря Алана и Javier, , който е бил тук, за се присъедини към нас тук. 

[APPLAUSE] 

Така че нека сега приемаме за даденост колко ясно всичко това може да бъде. И нека да се пристъпи към реално направи нещо в реалната код. Така на екрана тук е снимка на така наречената CS50 уреда. И ако сте имали най-, като 14:00 в сряда следобед, обясни на някой приятел какво CS50 уреда е, как бихте го определи в едно изречение? Всяко едно изречение? Да? STUDENT: Това е като програма , което прави компютъра на всеки тичам с една и съща система. DAVID Malan: Добър! Това е програма, която позволява на всеки компютър, за да тичам с една и съща система. Това е нещо на собствения си копие на операционна система, която се случва да се нарича Linux Ubuntu. И той работи ефективно в рамките на прозореца на собствения си Mac или PC, така че по този начин точно от портата в 1 седмица, всички тук в класа има достъп до същите инструменти, същата конфигурация, и няма специфичен кривата на обучение на Mac или PC в частност. 

Сега ние се отвори, вътре в CS50 уред в понеделник, тази програма тук. Това се случва, да се нарича Gedit. Но това е наистина само графичен редактор. Това е нещо подобно на Notepad или Текст Редактиране на Windows или Mac OS съответно. И аз предложих, че има наистина три важни части към този екран. Горната страна е мястото, където ще напишете кода. И това е мястото, където сме прекарали голяма част от нашия три примера в лекция в понеделник. Дъното се обадихме какво, този черен прозорец, така ли? 

STUDENT: Compiler? 

DAVID Malan: Compiler ние преглеждана с помощта на този прозорец. Но в по-общ. Да, това е само терминален прозорец. Това е стар термин възраст, които просто описва по същество мигащ бързо, че преди да бъдат използвани години на един от тези големи монитори CRT стил. Но в днешно време това е нещо на виртуален софтуер. И прозорците на терминала Нека да ни пишете команди. Това нещо като опростена версия на потребителския интерфейс или интерфейс. Това не е графичен потребителски интерфейс или GUI, това е интерфейс, базиран на текст или интерфейс на командния ред. 

И наистина това е, когато в крайна сметка Аз бях в състояние да пиша някакъв код. След като бях написал някакъв код обаче, Припомняме, че аз използвах тази команда. И тъй като името вид на предполага, този ми позволява да се направи програма, наречена Здравейте. Но това, което е наистина правиш? Ами грим е като моя вход, ми изходния код, и превръщането на това, което, в крайна сметка? 

Код Object. И обектен код е просто фантазия начин да се каже нули и единици. И тогава, след като аз исках да тече този обект код, веднъж исках да мине като вход тези нули и единици в моя компютър мозъка, така наречените процесора или централен процесор, Аз трябваше да стартирате програмата. Но това не е съвсем проста в понеделник като просто двойно кликване някои икона. Вместо това ми трябваше, за да направите, за да стартирате програмата? 

Какво беше това втората команда? Чувам малко наклонени черти? Да, така ли? 

STUDENT: Dot наклонена черта и името на програмата. DAVID Malan: Точно така. Dot наклонена черта и името на програмата. Сега какво означава това? Ами точка е просто една тайнствена начин каже текущата директория. Каквато и да е папка, в която се намирате, е Съответно, както е представен като точка. Наклонената черта е точно това, което сте виждали в Mac OS и Windows в продължение на години, това е разделител между директория или папка и останалата част от някакво име. В Windows това се случва, за да отидете назад, в Linux и Mac OS това се случва, за да вървиш напред. Но това е само на сепаратора, така че е просто безинтересно синтактична подробности. 

Сочният част, разбира се, името на програмата, Hello. И това е, което правят е създадена за нас. Тя извежда този файл за нас. Но как се стигна до този момент? Нека сега да поиска от въпрос, това, което е наистина става тук, най-малко с отношение на някои от този синтаксис? 

Така че в една присъда, или така, как да обясним далеч този първи ред, който е подчертани в зелено? Какво беше това на първа линия правиш, по отношение на моята програма? Да? 

STUDENT: [недоловим]. DAVID Malan: Кажи го отново? STUDENT: Включително и изтегляне последните функции [недоловим]. DAVID Malan: Добре. Включително, аз няма да кажа изтегляне, но нека да кажем, включително функции, които хората са написани в миналото. И тези функции се изпълняват някъде в компютъра ми. Някой е написал файл Преди години, и този файл е някъде във вътрешността на CS50 уред, или на моя твърд диск по-общо. И така, тази линия се казва по същество, да намеря този файл, стандартна I / O точки ч, както и копие и поставете съдържанието му точно тук, на върха на моя файл така че не е нужно да се направите това ръчно себе си. 

И сред най-сочните парчета вътре в този файл, ние доминираха е каква функция? Каква функция е да кажем е обявен или споменати в стандарт I / O точка Н най-вероятно? ФОРМАТ, нали? Ние не пиша ФОРМАТ на Понеделник, той просто съществува. Много прилича Алана просто дойде на сцената и тя просто съществувала и знаеше как да се направи нещо на екрана, така се ФОРМАТ съществува от много години. И така, това е начина, по който достъп до него. Сега, ако се движим тук, Основната е аналогичен ние каза на парче пъзел нарича, когато зелен флаг кликнали в света на Scratch. Това е просто вид на име по подразбиране, че хората реши да представляват подразбиране входна точка към дадена програма. В парчето на програмния код че ще се изпълни първо. 

Междувременно тези фигурни скоби са нещо като извита форма на много от тези жълти скреч парчета. Те вид капсулиране цяло куп инструкции заедно. Така че просто вид се свързва заедно някои, свързани функционалност. ФОРМАТ разбира се е функция, която отпечатва на екрана, като просто го направих. 

Какво ще кажете за тези скоби? Как бихте define-- дори ако сте никога програмиран и преди, но само въз основа Отсега нататък все по-голям се надяваме, интуиция, какво са скобите правят за нас тук? Или това, което са те околните? Да? 

STUDENT: Казват, че това, което ти започваш да се отпечата с ФОРМАТ. 

DAVID Malan: Да, те казват какво ти започваш да се отпечата с ФОРМАТ. Или по-общо, те са заобикалящата входовете на функцията. Така че почти можеш да мислиш на тези скоби като като метал клип на тази клипборда. Това е, което държи, е това, което е ще се използват за осигуряване на аргументи в функцията, която в този случай се нарича ФОРМАТ. 

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

Ето един такъв аргумент. Аз бях подчерта всичко между кавичките, защото се оказва в този език, наречен C, когато искате да представляват string--, че е дума или фраза или дори paragraph-- трябва да го обграждат с двойни кавички. Не единични кавички, двойни кавички. И това е точно това, което съм направил тук. 

В същото време има фънки символ към края там. П наклонена черта. Какво да кажем, че представител? Да? 

STUDENT: A нов ред. 

DAVID Malan: New линия. Добре, че не правим обикновено удари Enter, когато Ако искате програмата да изплюе нов ред. Вместо да го кажа изрично с този наистина тайнствена парче синтаксис, наклонена черта н, че искате нов ред, за да отида там. И накрая точката и запетаята. Ние наистина не говори твърде много за това, и досега това ще бъде проклятието на някои на съществуването си за първия проблем настроен, когато просто не успя да реализира сте забравили нещо толкова глупаво като точка и запетая. И обикновено го поставя там ще оправи този проблем. Но това, което го прави за нас, бихте ли казали? 

STUDENT: [недоловим]. 

DAVID Malan: Моля? 

STUDENT: [недоловим]. DAVID Malan: Довършителни изявление. Това е нещо подобно на периода на края на изречение на английски, има предвид, че в този език С него се приключва изявление. Инструкция на програмиране код, който просто искам да кажа, Приключих с това. Сега забелязвам, че е само един тук. Така че не искам да отида в навика да поставят точка и запетая след всяка затворена скоба. Например там е никой Следващата да анулира, а ние ще се върне в бъдеще какво невалидна средства. Но в този случай вашият ФОРМАТ е функция, или декларация се използва, и така искаме да имаме, че край в самия край на това. 

И аз умишлено бране на C. И честно казано много езици като C, C ++, Java, JavaScript, и произволен брой други езици имат много от тях вид синтактични подробности. Това със сигурност, ако сте нов в Програмирането може наистина ви спъне. И вие ще ми марка думи, някои от вас ще имат този опит в работно време или в края през нощта работи върху някои р-набор, където проклетия си програма, просто не се събират, тя не работи, имате Не знам какво не е наред, изглежда напълно логически правилно за вас. И това е, защото сте забравили нещо като удря точка и запетая в края на някаква линия. 

Но това са нещата, за които сте Ще незабавно да се научим да виждаме. И наистина това са нещата, че на CA и TF имат е нещо като обучен, за да видите много по-бързо от теб. И така, това е само да се каже, тъй като Потопете се в проблем зададете един особено, Не се разочароват от тези неща. Щом нещо се аклиматизира на света, започнете да виждате неща, които може да не види на пръв поглед тази първа седмица. 

Така че изходния код е нещо подобно. Искаме да го премине в т.нар компилатор. И това компилатор като казахме осигурява изход известен като обектен код, за т.нар нули и единици. Но от там, какво ни дава това? Ами това ни дава тези модели. И отново вашия компютър, Вашата Intel вътре, разбира тези модели от нули и единици. И понякога модела представлява действителен десетичен номер както видяхме миналата седмица, понякога представлява писмо като видяхме миналата седмица, понякога тя представлява инструкция, като отпечатване на нещо на екрана. 

Така ФОРМАТ за instance-- а по-скоро, нека назад. Ние сме били като за даденост че тези нули и единици са произведени от тази команда марка. Но марка не е компилатор. Уверете се, не е нещо, което в средата това е производството на нули и единици. Вместо да е просто много удобно наречена програма, чиято цел в живота е по същество, за да разбера как да компилирате вашата програма. И ние го използваме в тези първата седмица, защото тя просто ни спестява много неприятности. 

Но това, което правят е наистина прави, когато компилирате здравей, е, както казахме миналия път, това е търси на твърдия ви диск или в текущата папка, за файл с име, което, както изглежда? Hello.c, нали? Това е просто вид на конвенция. Това е произволна, но това е начина, по който стоят нещата. Уверете се, ако просто укажете името на програма, която все още не съществува, тя ще изглежда за изходния код във файл, по подразбиране означава hello.c. И ако той се намира, чудесно. Това ще да конвертирате този източник код в обектен код за вас. 

Но всеки път, когато съм се удари Въведете след пускането направи здравей, Спомняте ли си последния път, когато виждам доста дълъг и загадъчен последователност на други бели букви и героите на екрана? Ами това е действителната команда, действителната компилатор, който е действал. Така че действителната компилаторът ще използваме по-голямата част семестъра е нещо, наречено трясък. Някои от вас може би са използвали Visual Studio преди, или GCC, или произволен брой други компилатори. Ние ще използваме трясък. 

И звъня ни позволява всъщност да конвертирате този код към обектния код. Какво означава това всъщност означава на практика? Ами нека да отидат в един от Моите папки от миналия път. Вътре на CS50 уреда. И нека да вървим напред и да се създаде тази същия файл, включват стандартни I / O точки з. Int основен невалидна. И ние ще се върнем в бъдеще, тъй като до каква INT средства и какви нищожни средства. Но за сега нека да направим здравей свят наклонена черта N, точно както направихме на дъската. 

Позволете ми да запазите този файл, наречен hello.c. И сега, ако искам да се съберат тази I could-- нека я увеличите в-- Run направи здравей влиза. И това отново е че много загадъчен линия. Но сега поне една дума вероятно скача от вас. Звъня е тази линия, което видяхме преди. Сега има много други неща, честно казано че ще махне ръцете ни в за днес. Но има няколко подгрупи, няколко символа в тук , които са от интерес. Но аз ще отида напред и да направите това. Отивам в първия манш Здравейте, само за да докаже че това работи, тъй като беше в понеделник. Но сега аз отивам да изтриете програмата. И още много като имахме тези кратки имена последен път, командата за премахване на нещо е RM, премахвате, влиза. Ще получите някои доста загадъчни въпроси. Трудно ми е да повярвам, че можете да направите дори и този въпрос е трудно да се разбере. Но премахнете обикновен файл здравей просто средства искаш да изтриете здравей. 

И аз мога да отида напред и да напишете г. за Да, Enter, а сега го няма. Какво означава това сега, ако изчистите екрана си, е, че вместо правиш направи hello-- ви Знаеш ли, аз съм все по-добър в това. Отивам да тичам съставител себе си. Не ми трябва някаква програма, която да разбера какво ми файл се нарича. Написах hello.c, I знам как се нарича, Аз съм несъмнено може да напишете това. Така че аз отивам да вървим напред и не звъня hello.c Enter. 

Изглежда, да работят. И няма допълнителна продукция, защото трясък е компилатор. Това е, което се конвертира изходния код на нули и единици. Така че, ако аз сега правя точка наклонена черта здравей Enter, хм. Ново съобщение днес грешка. Така че Баш е само името на мига бързо, че ние използваме. Това е грубо опростяване, но за сега това е всичко, което е, това е мига ред. И това е защо го вика при нас. 

Няма такъв файл или директория е малко по-ясно. Но със сигурност е направил, че обектен код. Но уловката е, че ако напишете командата към списъка на съдържанието на този директория, която е какво? ли за списък. Има един куп неща тук, някои от които дойдоха с уреда, като моята папка Desktop, Downloads папка, Dropbox папка, както и всички тези неща. Но това, което е интересно е hello.c, който Аз създадох преди малко с Gedit. И това, което е най-странното търси име тук, може би, че не сме виж последния момент на всички? 

a.out, нали? Така през деня, то Просто реших, че когато компилирате програма за първи път, и не посочите името на даден файл, да го наричаме. И a.out просто означава, че това е изхода на компилатор. Така че това е ужасно име за дадена програма. Но от тази логика, точка, наклонена черта за текущата директория, наклонена черта a.out, би трябвало да означава, че има в действителност ми здравей свят програма. Сега малко се затопли упражнения, също. Ако искате да преименувате тази файл, оказва се, че сте преместване на файл от едно име на друго. Така MV a.out, а след това да го наречем здравей Enter. Така че това е команда Linux. DOS имаше преди години, Windows има терминален прозорец от някакъв вид, който изглежда по този начин, Linux и Mac компютри имат тази мига бързо. Въпреки че повечето от нас вероятно Рядко, ако изобщо някога, да я използват. 

Но това, което съм направил е пуснете програма, чието име е MV, и аз съм го снабдени с два аргумента, така да се каже. Два входа. a.out е оригиналното име. Hello е новото име. Така че, ако аз сега правя точка наклонена черта здравей, Въведете, че съществува. И ако го направя точка наклонена черта a.out, какво очакваш аз трябва да видя? 

Bash, няма такъв файл или директория. Защото аз просто го преименува. Така че това отнема малко време за опознаване. Но проблемът комплект 1 спецификация наистина ще държа ръката ти през някои от тези minutae. Тъй като това е пълен интелектуална разсейване от по-интересните идеи в ръка, които всъщност създаване нещо от код. Но нека да направим една модификация Сега за тази програма. 

Спомнете си, че последният път, когато направи нещо, като този, ФОРМАТ името си. И наистина ние просто направи това на големия екран там. И след това, което направих низ и получава GetString отворени скоба, близо скоба. И скоба само стенограмите нотация за скоби. Така се GetString вземат никакви аргументи? Не входове Не, но тя се нуждае от скобите, защото това е, което разграничава свикване на функция. 

Така че аз ще отида напред и да се опитаме да тичам съставител на тази програма сега. Звъня 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 Въведете, името си, Роб, здравей, свят. Hm. Това е нещо като бъг. Вероятно е искал да каже Роб, нали? Така че каква е уговорката тук в код. STUDENT: [недоловим]. DAVID Malan: Точно така. Така че аз просто трябва да се направи, че окончателното ощипване така че аз съм преминаване в контейнер, като запълване на празната проба, както направихме преди малко. Но процента и сега е че попълнете бланката. Така че накрая нека да разкрие един последен подробно, така че няма магия. Отивам да вървим напред и да се отървете от Hellow. Отивам да вървим напред и да се отървете от a.out. Така че сега нямам никакви програми, просто ми е изходен код. И аз отивам да изпълните малко по-дълга команда, трясък непокрит о здравей hello.c тире LCS50. 

Сега това започва някак да отидете в едното ухо и излиза от друга може би. Но просто дразни, освен това, което това се прави. Звъня е компилатор, тире LCS50 на умишлено в самия край какво прави в едно изречение? Връзки към библиотеката CS50. Грабва нули и тези, които правят на персонала и ги очарова в моя собствена програма. Така че на последния въпрос на ръка е, това, което е пробив о здравей вероятно прави, дори ако никога не сте виждал този синтаксис преди? 

Извеждане на програма, която е не на име a.out по подразбиране. По-скоро това е наречен здравей. Така че сега не е a.out. Няма такъв файл или директория, защото аз изрично каза наричаме тази програма здравей, така че Сега мога да напишете в такова име и да го държат. 

Сега, честно казано, момчето е, че безинтересно да има да си спомня всичко това малко дреболии, нали? Така че нека да вървим напред и да се отървете от здравей отново. И нека сега се върнем към един свят, в което е достатъчно да се каже, направи здравей. Но това е магията, която да се прави за вас, това е скука, че го прави за вас. И тъй като нашите програми и проблеми да получат по-сложни, направи наистина ще ти бъда приятел. Защото не е твърде дълго от сега отиваме да има програми, които са написани Не с един файл, но на няколко файла, и да направи ще автоматизира процеса на съставяне на всички, че за нас заедно. 

Така че сега отпечатате. ФОРМАТ е вътре в този файл, стандарт I / O точки ч, което сме виждали преди, но има какво още да се ФОРМАТ от това. Има наклонена черта N, но има също така куп други аварийни последователности. И бягство последователност е просто луксозен начин на казвайки нещо който започва с наклонена черта, не наклонена черта, наклонена черта, и прави някои специални неща. И ние няма да се спирам по-голямата част от тях, но защо е там, обратно наклонена черта двойни кавички, мислиш ли? Защо има тази странна поредица от символи, наклонена черта двойни кавички, защо това може да бъде полезна? STUDENT: [недоловим]. DAVID Malan: Точно така, нали? Нека се върнем към нашия свят програма здравей че сме виждали доста пъти вече, всеки път, когато съм виждал, че здравей свят програма сме имали двойни кавички вътре от които е здравей запетая свят наклонена черта п. Но мисля, че за себе си, Какво става, ако действително Исках да отпечатате един цитат марка? Вашият първи инстинкт може да бъде, аз не знам защо може да искате да направиш-- тук, ние може да бъде малко пасивен агресивен, здравей приятел. Ние може да искате да направите нещо подобно. 

Но защо е това сега проблематично? Пренебрегването на къдрава кавички настрана, че тоника направи за нас автоматично. Защо това е проблематично? 

Точно така. Защото ние имаме като 4 кавички. Ами на първо едно вероятно продължава с втората, и може би четвъртият върви с една трета, или, искам да кажа, че дори не съм сигурен, нито е компютъра ще бъде. Компютри Отново, компилатори отново, са доста тъпи. Те ще правят това, което само можете да им кажа да се направи. И ако не сте недвусмислено те вероятно ще хвърли грешка. 

Ако не сте недвусмислено за това как да направи фъстъчено масло и желе сандвич странни неща могат да пристигат. Това е една и съща идея. Сега е достатъчно да се каже, че има някои други аварийни последователности, но ние ще дойдем до онези преди дълго. По същество това бягство последователности представляват нещо че може да не бъде в състояние твърде лесно на клавиатурата, без да объркват компютъра. 

Сега междувременно имаме Запазено място в ФОРМАТ. Процент г, които също могат да бъдат написани в почти всички случаи, като процента I, е контейнер за какъв тип данни? Какъв вид на стойност? A десетичен номер. Така че всъщност ние ще започнем използване на процента аз, защото това е малко по-просто, като цяло число. Процент аз. Едно число, което се случва да бъде знак. 

Процент и ние вече казах беше контейнер за низ. Което е просто дума, фраза, абзац, есе, независимо. Това е последователност на героите на някои дължина. И ние ще видим не след дълго някои от тези други. Но процента C е за един символ. Процент F е за плаваща точка номер, като истински номер, който има десетична точка в него, които е не разбира цяло число. И там е цялата куп други. 

Междувременно в С, и в много езици, имаме различни типове данни. Различни видове стъклени чаши, ако щете. Купата аз използвах за последен път беше за пинг-понг, но ние може да съхранява различен ценности като символи и низове и числа в контейнер, като променлива, и С има тези. Char е видът на данните, типа на променлива , в която можете да съхранявате символ. Float е вид променлива в , които можете да съхранявате реално число. 

Int е разбира се за вътр. И по-скоро абсурдно обявен за дълго, дълго е мястото, където можете да съхранявате по същество един наистина дълъг номер, с още по- повече цифри тогава Типичен вътр мощ магазин. Но ние ще се върна на това след дълго. 

В CS50 точка з междувременно друга заглавния файл че сме виждали няколко пъти в употреба, има други два вида данни, които не съществува в C обикновено. Един от тях е низ, и ще видим в няколко седмици какви конци наистина са под предния капак. И едно е булев. И булев е променлива, която може да вземе само на определени ценности. И само въз основа на миналата седмица обяснение на Scratch, а отскоро и C, какво бихте предполагам са две възможни стойности за някакъв контейнер, който е от тип булев? 

Да и не. Един и нула. Вярно или невярно. И наистина това да е последното, което има тенденция да бъде конвенционален в програмен език, казвайки нещо като вярно или невярно. 

Междувременно библиотеката CS50 идва с куп функционалност че персоналът е написал за теб, Освен това само за да се низ. Писахме предварително функции, които може да се получи число от потребителя получите един символ, получите плувка, че е просто число с десетичната запетая. Вземи дълго, дълго, наистина голяма стойност от потребителя. Така че ние само съм виждал това в действия под формата на GetString. Но чрез тези функции скоро ще бъде в състояние да пиша програми, които се въвеждат от потребителя. 

В същото време смятат, че това програма, и да разгледа как сега ние може да започне, за да добавите да с нови конструкции. Един бърз вихрушка турне и след това ние ще разгледаме в някакъв писмено някои програми за ръчно себе си. Отсега нататък, ако искаме да прилагане на състояние, това няма да изглежда като хубав малък доста пъзел парче. Тя ще изглежда малко по-тайнствена. Но това е каноническа структура на състояние в С 

Думата ако две скоби, в които ще бъде някакъв вид от Булев израз. Сега наклонена черта в средата, това е в момента, нещо като pseudocode код контейнер. Но по-правилно, всеки ред код в C, която започва с наклонена черта е коментар. 

Това е като лепкава бележка, че може да постави на есе, отпечатани върху хартия. Това е бележка до себе си. Тя не разполага с функционален влияние върху програмата. Това е нещо като напомняне, това е вашата собствена документация за това какво се случва. Така че правя това в момента е нещо като контейнер за каквото и да е вътре на тези фигурни скоби в крайна сметка ще се направи нещо. 

Междувременно имате две вилици в път, един, ако друг се изгради по този начин. Можете, ако ElseIf, иначе. Сега тя е да се отбележи, особено ако сте били Googling около онлайн ресурси от любопитство, или ако вземеш един от курса препоръчваните книги за C, ще видите, че хората имат много на различни предпочитания за това как да изразят себе си в код. Някои хора обичат да се постави фигурни скоби, както съм направил тук. Някои хора обичат да сложи къдрава скоби например до тук. 

Някои хора обичат да сложи иначе тук и тогава това тук. Има всякакви начини, за да писане на код, и никой от тях не са прави за себе си. Въпреки че има няколко че са доста погрешно. Но има не-- ако това е в крайна сметка е много религиозен дебат. В действителност, един от най-досадни неща за компютърни науки е как упорит компютърни учени може да бъде. И вие ще намерите с течение на времето, че дори да развиете лични предпочитания за това как трябва да изглежда вашия код. 

Не просто се държат, а не само да създаде изход, но как трябва да изглежда естетично. Така че това, което ние ще направим, е да ви води по пътя към, за сега поне стандартен CS50 стил че най-малко поддържа нещата униформа и лесен за четене. Но повече за тези разграничения преди дълго. 

A Булев израз в C, ако Исках да кажа, ако това условие е вярно, и това е друго условие е Вярно е, че не пиша думата и, както бихте направили на английски език. Можете вместо това използвайте амперсанд амперсанд, по причини, ние ще се върнем към. Ако искате да се каже, или да използвате две вертикални линии, които на клавиатура US обикновено е над Enter ключ до наклонената черта. И това просто означава, че ако това условие или това е друго условие е вярно направи това. 

В същото време там е това луд нещо, което ще имате повод да се използва веднъж в известно време. Но това е просто алтернатива начин да изразиш себе си. Това, за сега, нека да постановяват, това е просто друг фънки начин за изразяване на ако ElseIf, ElseIf, ElseIf, ElseIf. Това е просто форматиран по отношение от случаите, в които буквално изброявам ценностите, които може да искате да проверите за. 

Междувременно контури. Видяхме сравнение на Изтъркайте с примка. И аз отивам да махам с ръка в това, което всеки един от тези неща означава. Но забележете, че една линия ще много често започва с ключова дума за. Или той ще започне с ключови думи, когато. Или той ще започне с ключова дума направи, и завършва с ключова дума време. 

Но това, което ние сме на път да видим е нещата по този начин. Ето, най-общо в C, как бихте могли да декларира променлива и да го даде стойност. В C не е достатъчно, като в Scratch, просто кажа да ми даде променлива, наречена нещо. Трябва да кажа, C, и кажи компилатора, по-конкретно, какъв тип стойност, което правите Искам да сложа в купата на стъкло. 

Дали е цяло число? Ако е така, вие трябва да буквално се каже INT и след това името на променливата, След точка и запетая. Ако вместо това исках низ и призова тя е, както аз направих моя код тук днес, бихте казали низ и запетая. Щом искате да го даде стойност След това можете да използвате знака за равенство, иначе известни като оператор за присвояване. И забележете как всеки на тези редове с код има точка и запетая в края на това. 

Но честно казано това е просто изглежда малко грозно. Защо не мога да кажа на компютъра, даде ми променлива и го инициализира с нула. Това е, дай ми една празна стъклена купа. Докато можете. И така, един от решението ви призовава ще Трябва да се направи стилистично течение на времето е, мислиш ли, писане на код, подобен на този, или ти вид го почисти и да впечатли хора, като пишете две линии, както само един. И това ще се счита обикновено по-елегантен начин на писане на код стилово. 

Функции сме разбира се виждал. Те ще вземат този формат. Името на функция, някои скоби, а след това може би някои неща вътре. Или можете да видите употреби на множество функции страна от страна, като нещо подобно на това. Сега като допирателна, прави тази шега сега да има смисъл? 

[СМЯХ] Това не означава, че е смешно, но това е може би направи малко по-дълбок смисъл. Така че сега нека да отидат в CS50 уред за миг. И нека да се отвори една закачка тук. 

И наистина една от причините, за въвеждане на IKEA на стоките и мига на снимката на iPhone преди малко е действително да вратовръзка заедно на факт е, че само преди няколко години, през 2007 г., това парче код е освободен, което е един от първите изпълнението на част от софтуера че прави това, което се нарича трикове. За незапознатите, съвети и трикове нещо като телефон или iPhone означава основно фигуриращ как да направя неща с това, че компанията който я направи, не е имал намерение. Като искате да инсталирате определен софтуер, който не е в хранилището на ап, съвети и трикове на вашия телефон, който правиш такива неща и повече. Но това, което беше забавно в 2007-- и е имало десетки различни версии от тези неща, тъй като тогава, във всички видове на languages-- е, че тази програма тук, нарича iUnlock, всъщност е написана на C. И така, аз спря на изходния код за тази, само за да покаже вид вас някои от приликите с конструкциите ние сме били обсъждане по този начин досега. Сега вече има начин по-голяма сложност тук отколкото сме виждали вече в клас. Позволете ми да се придвижите нагоре само малко тук. 

Но забележете these-- добре забелязваме няколко неща-- но забележите тези редове тук, включително стандартен I / O точки з. И всичко-- линия 24, моля те забележите стандарт I / O точка з и цял куп други Файловете, които явно други хора са написани. И ако ние превъртете надолу през това, малко произволно, забелязвате аз не знам как да пиша всичко това все още се задължително но има ако. Така че очевидно това има клон. 

И ако превъртете надолу малко допълнително има и друг, ако. Ако превъртите нагоре, мисля, че около линия 100 видях за. Така че аз не съм съвсем сигурен как работи това все още, но това е за линия, която ще позволете ми да превъртите някои брой пъти. И ако преминете всички пътя към дъното Виждам, че има функционират тук нарича Основната, както и някои допълнителни кредити за вашето удоволствие четене. 

Така че това е само за say-- и ние ще сложим тази онлайн сред източник на курса код today--, че дори и някои от тях устройства, които ние приемаме за даденост, в края на деня, вие сте все още използването на тези основни конструкции, които сме вече въвеждане досега. Това е достатъчно, че един. Добре, така че сега нека да всъщност се изгради нещо. 

Да отидем отвъд нещо подобно hello.c, и отварянето на тази, нека да напиша тази програма тук. Отивам да вървим напред и напише програма, наречена adder.c, , чиято цел в живота е да бъде като първият ми супер прост калкулатор че просто добавя няколко номера. Не защото това е трудно проблем, но тъй като тя ми позволява да се връзвам заедно с няколко неща. Така че аз отивам да вървим напред и да включва Standard I / O точки ч и CS50 точка з. Отивам да кажа INT главната невалидна. И отново в бъдеще ние ще се върнем към него в в този контекст и нищожни средства. 

И сега аз ще кажа нещо като ФОРМАТ, дай ми едно цяло число. И сега на втората ми линия, как мога да изразя себе си като че искам да декларира променлива че това ще се съхранява на вътр? Буквално какво да напишете, ако искам да създаде променлива, която съхранява на вътр бихте ли казали? INT А е равно на getint. Разбира се, така че да работи. И точно за съгласуваност с кода, който Ви видите онлайн, нека промяна този на х, само защото х е често срещано име на променлива да се използва, най-малко в алгебра. Сега нека да вървим напред и да се ФОРМАТ отново. Дай ми друга число. И сега аз ще вид на поучим от този модел, Отивам да се каже, вътр Y получава да GetInt. 

И ние не сме използвали GetInt преди, но просто като GetString отива и получава низ, като Хавиер направи от страна на публиката, По същия начин прави GetInt започне да мига на подсказването. И ефективно да чака за потребителя да му се даде цяло число, като го напишете в и удря Enter. Сега накрая аз отивам да правя това, ФОРМАТ сумата на-- и ме остави да получите фантазия сега-- процента I и процента I присъства аз удивителен знак наклонена черта п. И какво мислиш, че аз отивам да сложи в предприятието и допълнителните входове да ФОРМАТ? 

Аз не искам да кажа, буквално цитирам цитата х. Искам да клас в х и тогава, и сега нека да получите фантазия и нека просто да приемем, ние можем да направим това, което искаме. Какво искаш да кажеш след това? х плюс Y. И наистина, че ще работи. Това е минимално езиците за програмиране разбирам основна аритметика, И така, това в действителност трябва работа. 

Така че нека да вървим напред и да се направи разширител в черно и бяло моя прозорец тук, Enter. Cryptic линия, но няма грешка съобщение, така че е добре. Dot наклонена черта ехидна, дай ми едно цяло число, 1. Дай ми друга число, 2. Сумата от 1 и 2 е 3. 

Добре, така че е доста тривиално програма, но това, което го направи? Това ми позволи да използвате функцията наричаме тук, обадете се на друга функция тук, две повиквания към GetInt, а трето повикване, за да ФОРМАТ, и след това с помощта на тези контейнери. Така че това е малко по- сложни, отколкото миналия път. Но какво, ако искам да да се получи малко по-красиви? 

Позволете ми да отида напред и сега правим това. Нека да вървим напред и да се създаде нов файл, наречен условия нула. И аз отивам да спаси известно време заради класове и просто да поставите в тази код като отправна точка. И сега аз съм просто ще постави нещо ново тук, в средата. Така ФОРМАТ Бих искал цяло число моля. И всичко това в момента е на разположение на интернет страницата на курса, не е нужно всичко това напишете в клас, ако предпочитате да не. ПНА, а сега отивам да използва, вместо на X и Y, Отивам да се използва N, което е вероятно най-общо наименование за цяло число в компютърна програма. И сега искам да направя Малко решение тук. Отивам да видя дали п е по-голяма от 0, тогава Отивам да кажа printf-- Опа, printf-- ти избра положително число, удивителен знак наклонена черта п. Затворете това. Иначе аз отивам да отпечатате ФОРМАТ ти избра отрицателно число. 

Сега, преди да ми крещиш, нека да стартирате тази програма. Позволете ми да сляза тук. И как мога да се състави програма наречен условия тире 0? Направете условия тире 0. Нещо тъпо име, но-- дяволите. OK, добро преподаване момент. Защо, че счупи? 

Какво съм случайно наричаме този файл? Можете да вид заключим от раздела тук. Така че това не е лошо, че аз Направих това, защото това ще се случи, може би за някои от вас. Така че аз случайно името ми състояние код източник 0. Но ми изходния код от Конвенцията следва е във файл, наречен състояние 0 тире С, или каквото и точка в. 

Така че нека да се определи това. Точно като Microsoft Word мога да отида до да спаси колкото и да направя състояние 0 точка в. Сега, само за да бъде подредено съм ще отида напред и да се премахне състояние 0, което е версия моята възраст. А сега нека да се направи състояние 0, Enter. ОК, изглежда добре. 

Състояние 0, Enter. Бих искал цяло число, моля, 50, ти избра положително число. Сега какво ще кажеш за отрицателна 50? Избрал отрицателно число. Какво ще кажете сега, 0. Сигурен, че 0 не е отрицателен. 

Така че това е нещо логично бъг. Как мога да поправя това? Иначе, ако н е по-малко от 0, правя това, в противен можем да имаме три начин клон тук, ФОРМАТ ви качват 0. Така че сега, ако аз преиграна това програма, след съставянето на този списък отново с марка, а сега преиграна състояние 0, това, което ще видите тук е 0 ми дава, че продукцията. Е, къде отиваме с това? 

Ами това е много лесно да се изгуби от поглед на гората за дърветата. И така ни позволи да се заключи, с този 2 и 1/2 минути видео че в крайна сметка е малко на реклама от Google, но това наистина е свидетелство за това, което дори при използването на тези основни сграда блокове в крайна сметка можем да направим, след като имаме малко програмиране Находчивите под коланите. 

[За възпроизвеждане на музика] 

SAROO Брайърли (дублаж): Това беше преди 26 години, и аз бях на път да се превърне 5. Ние стигнахме до гарата и качихме нашия влак заедно. Брат ми току-що каза аз ще остана тук, а аз ще се върна. А аз просто си помислих, добре знаете, Че може и просто да отида да спя и той просто ще ме събуди. И когато се събудих на следващата ден, цялата превоз беше празна на влак беглец, призрак влак мен като аз не знам къде. 

Бях приет до Австралия, да австралийски семейство. И майка ми беше украсена стая с картата на Индия, които тя поставя в непосредствена близост до леглото ми. Събудих се всяка сутрин виждайки, че на картата, а оттам и някак остави спомените живи. Хората ще кажат, че сте се опитва да намери игла в купа сено, Saroo вие никога няма да го намерите. 

Щях да светна от местата, които съм използва, за да отидете, на мига на моето семейство изправена. Имаше образа на майка ми, седна с кръстосани крака, Просто гледам да плаче. Животът е толкова трудно. Това беше моето съкровище. И аз търсех в Google Map и осъзнах, че е Google Earth, както добре. В един свят, където бихте могли да увеличите, Започнах да имат всички тези мисли и какви възможности че това може да направи за мен. Казах си, вие знаете, вие сте имам всички тези фотографски спомени и забележителности от къде си, и Знаете ли какво град прилича. Това може да е приложение, което можете да използвате, за да намери своя път обратно. 

Мислех, добре аз ще сложи точка на Гара Калкута, и радиус линия, вие знаете, че вие трябва да се търси около тази област. Някак натъкнах тези релси. И аз започнах да я следната и Аз дойдох до жп гара, която отразява едно и също изображение който беше в моите спомени. Всичко съвпада. Просто си помислих, да, аз знам къде отивам. Аз съм просто ще позволи на карта, която имам в главата ми води ме и ме върна в моя роден град. 

Стигнах до прага на къщата, в която съм се родил. И обиколи около 15 м зад ъгъла, имаше три дами, стоящи извън, в непосредствена близост един до друг. И средната една пристъпи напред, и Просто си помислих, че това е майка ти. Тя се наведе напред, тя ме прегърна, и ние бяхме там в продължение на около пет минути. 

Тя сграбчи ръката ми и тя ме заведе до къщата и се качи на телефона, където тя звънна сестра ми и брат ми да се каже, че, знаете ли, брат ти има само всички изведнъж се появи като призрак. И след това семейството се събира отново отново. Всички Всичко е добре, Помагах на майка ми се, тя не трябва да бъде роб далеч. Тя може да живее останалата част от живота си в мир. 

Това беше на игла в купа сено, но иглата е бил там. Всичко е там. Всичко, което имаме в света е при крана на един бутон. Но трябва да има волята и решимостта да го искат. 

[За възпроизвеждане на музика] DAVID Malan: Чудесно сладък атестат само това, което можеш сега правим с технологиите. Ние ще се видим следващата седмица.