[За възпроизвеждане на музика] DAVID Malan: Добре. Добре дошъл. Това е CS50, и това е Седмица One, продължение. Така че една от причините, ние сме били, преминаващи около технологии като Google Glass е, че те идват с нещо, известно като API, за Заявление програмен интерфейс. И какво означава това е, че с правилните файлове и с право документация, всъщност можете да напишете софтуер за дори устройства като тези. И така, какво имаме предвид към семестъра края е, ако даден проект включващ, Google Glass може обжалване, ще видим какво можем да направим в отношение на вас кука с някои назаем хардуер, както и на общодостъпната API, така че можете да всъщност започват създаването на софтуер , който работи на същата Glass Google. Друго устройство, което Свирим с на края, че ние решихме, че може да бъде забавно в края на семестъра е това малко нещо тук. Тя се нарича Leap Motion, и това, което сте за да видят технически е реклама на устройството, но то не говори за това, което този конкретен Устройството може да. И той също идва с API чрез които можете да пишете софтуер, за да контролирате своя компютър по начин, бил такъв един-минутен филм тук. [VIDEO PLAYBACK] [END възпроизвеждане на видео] Така че точно сега, това устройство се случва с да се прилага като малко USB конектор, който можете да включите в компютър, но аз не бих се изненадал ако не след дълго ние имаме тези видове технологии в следващата серия на компютри и Mac-ове, така че можете, наистина, взаимодействат с него начин, по този начин. Всъщност това, което мислех, че ще направя, също е Извадих една малка демонстрация програма, която идва с този софтуер. Така че съм сложил малкия сензор в предната част на моя лаптоп. И както можете да видите, че вече осъзнава, че ръката ми е там контролиране него. И всичко това заявлението, не е потекат реки от малките неща като това. Но можете да видите, че, наистина, Имам пет пръста там. Ако мога да го да направи всичко 10, можете да си представите един чист пиано приложение или други подобни. Така че, ако искате да дойде след края на тренировката днес и да играе с, че като Е, вие сте добре дошли да. Така че повече за това към края на семестъра. Така няколко административни съобщения. One, направи точка от този петък по обяд в cs60.net/section. Това е URL на курса начална страница, както добре. В същото време, обаче, supersections ще дебютира тази неделя. Supersections са еднократно нещо, защото ни отнема известно време, за да работят Кой сега е в коя секция и къде. Така че това в неделя, ще има един раздел за тези по-малко удобни, една точка за тези, по-удобно. И тези от вас, някъде в между са добре дошли да отидете едната или и двете или нито едното. И двете ще бъдат заснети. Те ще бъдат в по-голяма аудитория, отколкото участък обикновено би било инча Но целта тук е да ви снабди с комфорт с проблема зададете една, с С, с уреда CS50, тази уикенд, дори и преди да разберете вашата официално раздел задача. Така че ще отговарят на вашите TF и ​​вашия малък група sectionmates около една седмица време. Работно време, междувременно, са били става. Да се ​​възползваме от тях тази вечер или утре вечер, ако искате. Проблем набор 0 се дължи в петък. Това е един ден по-късно от редовно насрочено-четвъртък. Но с проблема набор 1, ще видите че тя включва някои загряване упражнения, с които сте се да удължите Четвъртък краен срок до петък. Проблем набор 1, междувременно, ще дебютира на интернет страницата на курса този смешен Петък, ако искате да се сгуша с го, както го направих едно време късно Петък вечер в стаята си. Така cs50.net/appliance е мястото, където можете да получите на CS50 уреда че сме започнали да използват в понеделник. Ще го използвам малко повече днес. Но бъдете сигурни, че проблемът комплект 1 спецификация ще ви преведе през точно стъпките, които трябва да се получи, че и да вървят. Така че не се тревожи за това, че преди PSET 1, ако предпочитате да не. Добре. Така че ние погледна в понеделник на изходния код, но в контекста на нова език за програмиране, а именно, С и С, за разлика от Scratch, не е графичен. Това не е пъзел парчета. Това е по-English-подобен синтаксис. И има няколко стъпки, участващи в действителност писане и управление на програма на С, защото освен източник код, подобен на този, имате нужда от нещо наречена компилатор. И от гледна точка на лаик, какво няма компилатор направи за нас? Да. Студентът: Той преобразува кода че пишете на 0s и 1s. DAVID Malan: Добре. Така че това преобразува кода, който пишем на 0s и 1s. Той преобразува така наречения изходния код обектен код, последната от които изглежда малко нещо като това. И това е вашето CPU, мозъците във вътрешността на компютъра си, че поради хора, които са създали тези компютри, знам какви са тези последователности на 0s и 1s средната. Може би това означава, печат. Може би това означава, допълнение. Може би това означава изваждане. Може би това означава покаже графиката. Не са предварително определени модели на битове че светът е решил да кажа някои неща. Но в по-голямата част в този курс, ние ще работим по-високо ниво, и ние ще приемаме за даденост, че съществуват неща като компилатори, които могат да направи нашата функция изходния код в начина, по който възнамеряват. Така че програмата ни написа първото миналата седмица и след това започна да порт, така че да говори, да C през изминалата Понеделник, беше това. При зелен флаг кликнали, поздрави. Това, разбира се, написана на Scratch. И твърди, че равностойността програмата в C изглеждаше малко нещо като това. Така че това, което мислех, че ще направи на пръв е, Да дразни освен това, което изглежда на пръв поглед, разбира се, тъй като доста тайнствена синтаксис, но вие ще започнете да забележите модели доста бързо. Това, което също така ще направя днес, е предоставят вас с мисловен модел за някои каноничен, някои стандартни конструкции в програмирането. И тогава ще се получи в действителност нашите ръце мръсни с някои примери. Така че за тези от вас, по-удобно, осъзнават, че тази седмица и след това следващия седмици може много добре да бъде малко на преглед. Но особено когато хакер издание на проблема набор 1 излиза на Разбира уебсайт в петък, аз мисля, ще откриете, че дори и като попълните някои заготовки през следващата седмица или две, ще започнат да стават все повече оспорва и се сблъскват нови и нови неща. Така че нека да дразни тази програма освен няколко линии в даден момент. На върха на кулата, ние имаме това, което е технически нарича Preprocessor директива. Това е само един ред код, който казва да включва съдържанието на файла, наречен стандартен I / N, стандартния вход - или, съжалявам, стандартна I / O, стандарт вход / изход,. ч, вътре на моята собствена програма. Така че с други думи, ако това писах програма с обикновен текстов редактор като Gedit, по-простите еквивалент на нещо като Microsoft Word, че инструкция, # включват stdio.h, е само ще каже на компилатора, вземете Съдържанието на този друг файл, stdio.h, и да ги поставите тук. Сега, защо ми пука? Какво сме претенция е вътре в този файл нарича stdio.h, която се съхранява някъде на моя твърд диск, или в тази случай, някъде в CS50 уред? Някой друг го е сложил там за мен. Но какво има в него? Да, така че това е декларация за функция, наречена ФОРМАТ. Така ФОРМАТ припомня функцията, която дисплеи думи и символи и номера на екрана на заповедите ми. Но аз не го пиша. CS50 не го пиша. Някой преди години го е написал, а те същество ни даде рецепта за него във файл, наречен stdio.h. Така че първата линия просто ми дава достъп до до функции, които някой друг написа преди години, сред които са ФОРМАТ. Сега, на следващия ред аз ще махна ръка, поне до следващата седмица. Но за сега, знам, че Int основни (свободна) е по същество еквивалентна на тази жълт пъзел парче, когато зелен флаг щракнали. В света, преди години, реши, че ако сте написването на програмата в език, наречен C, да започнете вашата програма с линия който изглежда като. Само за една седмица, ще направи смисъл какво Int е, това, което е нищожен. Но за сега, просто мисля за него тъй като това жълто парче пъзел. Сега следващата, имаме фигурна скоба последвано от друга близка фигурна скоба, така да се каже. И ние ще видим тези през програми в C, както и JavaScript и PHP. А това просто капсулира свързани с реда код. Откритият фигурна скоба същество казва, тук идва някакъв код. И затворена фигурна скоба, която е под ъгъл в другата посока, просто означава, че това е за съответния код. Така сочни ред в тази първа Програмата е последната, ФОРМАТ, в кавички, здравей свят. И се обадих на нещо между цитати какво последен път? Така че това е един низ. И низ е само Techie Срокът за поредица от символи, с една дума, една фраза. Дори една буква може бъде двойно цитиран. Но това е поредица от нула или повече знаци. Обратно наклонена черта-N, обаче, изглежда малко странно. Но това не означаваше нещо просто към компютъра. Какво е наклонена черта-н? Нова линия. Така че това е само за специална последователност на знаци, че светът е решил средства сложи ред там, защото компилаторът ще се получи в действителност объркани, обикновено, ако, много разбираемо, но неправилно, просто начало удря Въведете да нови линии на кода ви. Трябва да бъде малко по- изрично с наклонена черта-н. И ще видите, че има няколко други такива модели за специални знаци. Например, ако искате да позволите на вашия против да се скитат в корнер случай, Предполагам, че аз исках да отпечатате двойни кавички на екрана за независимо от причината, че изглежда да е малко проблематично, нали? Защото ако сложа двойни кавички в средата на "Здравей, свят", за каквото Причината, защо изглежда, че потенциално проблематични? Той къса връвта с пилците. Компилаторът е само една програма. A програма като съставител е просто ще да четете върха код към дъното, ляво на дясно. И ако вижда три двойни кавички вместо на две, това няма да се знае ако искаш да кажеш, че нещо в ляво трябва да бъде низ, или нещо, което да правото, или цялото нещо. Това е двусмислен, и какво от това типичен Компилаторът ще направите, е просто се побърквам, и ще ви даде някои съобщение за грешка, и ви накара да се справят с проблема. Така има предвид, че наклонена черта-п означава нов линия, какво ще инстинктите си сега да започнат да бъдат, ако искате да включите нещо неправилно като двойно цитирам вътрешността на този иначе цитирана низ? Обратно наклонена черта-двойни кавички. И така, ние ще видим тази вид на модела също. Ако искате да направите нещо малко Странно, вие ще откриете, че решения често следват модел, и наклонена черта означава бягство последователност. И това просто означава нещо специално че трябва да представляват в различен начин. Що се отнася как да представляват наклонена черта, добре, ще се върна към това. Но отговорът също е действително малко очевидна. Така че нека сега се въведат някои други програмни конструкции че сте видяли в Scratch. Вие вероятно сте се приема за даденост вече, ако вече сте се гмурна в Проблемът зададете 0. Но нека сега се въведе синтаксис в C за тези доста интуитивен друго идеи, поне някои от тях. Това е една идея на състояние или клон, докато преди това ние представени я с код, който изглеждаше подобен на този в ляво в Scratch - ако х е по-малко от години, а след това се каже така - вместо сега в C - нека да усъвършенствате в по-простия случай - ние просто ще кажа, ако отворите скоби, нещо е вярно - а Boolean израз ще си отиде когато казах състояние - близо скобите, след това направете това, което е вътрешността на тези фигурни скоби. Така че тук също на фигурни скоби са нещо като Scratch на U-образни парчета от пъзел. Знаеш какво е вътре тези фигурни скоби. В този случай, наклонена черта наклонена черта. И забележете това е напред наклонена черта, а не обратно наклонена черта. Наклонена черта, наклонена черта, за тези, които са програмирани преди, просто означава - това е просто коментар. A коментар не е на ред на код, сами по себе си. Това е линията на английски, че вие, човека, написал на себе си да може би ви напомня да се направи нещо, за да обясни на себе си, да се обясни на някой друг, това, което си код прави. Това е просто описателен коментар. Сега, разбира се, може да има двупосочна разклонение на пътя точно по този начин, а трипътен разклонение на пътя, като направите това, и ако продължи тази модел, можете да имате четири, пет-, шест-пътни разклонения на пътя, ако , което трябва да се справя, наистина, че много условия. И тогава забелязва паралелизъм тук - ако (условие), иначе, ако (условие), и единственият, който е малко странно е последната, която е само, че друг. Но отново, това е идентичен, концептуално, на това, което сме направили вече, въпреки че синтаксиса отнеме малко време за опознаване. Сега, в този пример, има някакъв друг странен синтаксис. Виждаме ФОРМАТ отново отворена скоба, и близо скоби. И вътре има котировки на низ. Скобите, в контекста на ФОРМАТ, отидете в ляво и правото на какво? Какво ще опише, че цитира низ като цяло? Така че това е аргумент. Всеки път, когато имат функция, като ФОРМАТ, и след това отворена скоба и близо скоба и нещо вътре в него, независимо дали това е низ, или цяло число, или нещо друго, нещо, което в между тези скоби се нарича аргумент. И аргумент просто влияе функцията на поведение. В този случай, това е доста ясно как. X