[Музички] Дејвид MALAN: Во ред. Добредојде назад. Ова е CS50, а тоа е Недела Еден, продолжи. Така една од причините ние сме биле поминува околу технологии како Google стакло е дека тие доаѓаат со нешто познат како API-то, на Пријава Програмирање интерфејс. И она што тоа значи е дека со право датотеки и со право документација, вие всушност може да напише софтвер за дури и уреди како овие. И така она што го имаме на ум кон семестри крајот е, ако еден проект вклучување, да речеме, на Google стакло може жалба, ќе видиме што можеме да направиме во Услови за hooking ви со некои заем хардвер, како и на јавно достапни API, така што ќе може всушност започнете создавање на софтвер кој работи на истата Гугл стакло. Друг уред дека ние сме биле играње со на крајот кои што мислевме дека би можеле да бидат забава на крајот семестар е оваа мала работа тука. Таа се вика скок движење, и она што си за да ја видите е технички на реклама за уредот, но тоа не зборува за она што ова особено уред е способен. И тоа, исто така, доаѓа со API, преку кои може да се напише софтвер да контрола на вашиот сопствен компјутер на начин сосема вака едноминутен филм тука. [Видео репродукција] [Крај видео репродукција] Па токму сега, овој уред се случува со да се спроведе како мало USB конектор дека можете да го приклучиш во вашиот компјутер, но јас не би бил изненаден ако пред долго имаме овие видови на технологии во следната серија на компјутери и Macs, така што ќе може, всушност, комуницирате со неа во на начин како тоа. Всушност, она што мислев дека сум се направи, исто така, е Јас го зафрла малку демонстрација програма која доаѓа со овој софтвер. Па јас сум се стави малку сензор пред мојот лаптоп. И како што можете да видите, тоа веќе остварува дека мојата рака е таму контролирање на неа. И сите на оваа апликација го прави е по вода малку нешта како оваа. Но може да се види дека, навистина, Имам пет прсти таму. Ако можеме да се добие тоа да се направи сите 10, можете да си замислите уредни пијано апликација или слично. Значи, ако сакате да се излезе по класа денес и игра со тоа што се добро, вие сте добредојдени да. Толку повеќе за тоа кон крајот семестар. Па неколку административни најави. Еден, дали делот од овој петок на пладне на cs60.net/section. Дека рачно е на курсот почетната страница од пребарувачот, како и. Во меѓувреме, иако, supersections ќе дебитира оваа недела. Supersections се еднократен работа, бидејќи тоа ни е потребно некое време да работат дознаете кој е во кој дел и каде. Па ова доаѓа недела, ќе има еден делот за оние кои се помалку удобно, еден дел за оние поудобно. И оние од вас некаде во помеѓу сте добредојдени да се оди на едниот или на двата или не. И двете од овие ќе се снима. Тие ќе бидат во поголем аудиториум од делот нормално ќе биде внатре Но Целта тука е да ви овозможат со некои удобност со проблемот постави еден, со C, со CS50 апаратот, овој викенд, дури и пред да дознаете вашиот формален дел задача. Па ќе ги задоволат вашите ТФ и вашиот помал група на sectionmates во врска со една недела време. Работно време, пак, се случува. Ги искористат предностите од нив вечерва или утре вечер, ако би сакал. Проблемот сет 0 се должи во петокот. Ова е еден ден подоцна од редовно-закажаното, во четвртокот. Но со проблем сет 1, ќе видите дека тоа вклучува некои загревање вежби со кој можете сами може да се прошири своите Четврток рок до петок. Проблемот сет 1, во меѓувреме, ќе дебитира на веб-страницата на курсот ова доаѓа Петок, ако сакате да навивам со тоа како што го направив еднаш едно време доцна Петок навечер во вашата соба. Па cs50.net/appliance е местото каде што можете да добиете на CS50 апаратот дека ние почна да го користи во понеделникот. Ние ќе го користи малку повеќе денес. Но остатокот увери дека проблемот поставите 1 спецификација ќе ви прошетка низ токму на чекори што мора да се добие дека и трчање. Па не се грижи за тоа дека пред Pset 1 ако не би. Сите во право. Па ние погледна во понеделникот на изворниот код, но во контекст на новата програмски јазик, имено В И Ц, за разлика од нула, не е графички. Тоа не е мозаик парчиња. Тоа е повеќе англиски како синтаксата. И има неколку чекори кои се вклучени во всушност пишување и водење на програма во C, бидејќи покрај извор кодот вака, ти треба нешто нарекува компајлерот. И во однос на Едноставен, што се на компајлерот да направи за нас? Да. СТУДЕНТСКИ: Таа се конвертира го кодот дека ти пишувам за 0-ти и 1S. Дејвид MALAN: Добро. Значи, таа го претвора кодот кој ние пишуваме на 0-ти и 1S. Таа се конвертира т.н. изворен код за да објектниот код, на последната на која изгледа малку нешто како ова. И тоа е вашиот процесор, мозокот внатрешноста на вашиот компјутер, дека поради луѓето кои го создадоа оние компјутери, знаете што тие секвенци од 0-ти и 1S средина. Можеби тоа значи печати. Можеби тоа значи прилог. Можеби тоа значи одземање. Можеби тоа значи прикаже графички. Постојат предефинирани шаблони на битови дека светот одлучи да значи некои работи. Но во најголем дел во овој курс, ние ќе работат на повисоко ниво, и ние ќе земе здраво за готово дека постојат работи како компајлери кои можат да направи нашиот изворен код функција во начинот на кој ние имаме намера. Па на програмата ние напиша првата минатата недела а потоа почна да пристаниште, па да зборува, да степена во овој минатото Понеделник, беше ова. Кога зелено знаме кликнато, велат здраво. Ова беше, се разбира, напишано во Скреч. И јас тврдеше дека еквивалент програма во C изгледаше малку нешто како ова. Значи она што сме мислеле дека би го сторила во прв е, ајде да одгатнат што изгледа, на прв поглед, очигледно, како прилично таинствени, синтакса, но ќе почне да се забележи моделите доста брзо. Она што ние, исто така, ќе го стори денес е обезбеди ви со ментална модел за некои канонски, некои стандардни конструкции во програмирање. А потоа ние всушност ќе добијат нашите раце валкани со некои примери како добро. Така и за оние од вас поудобно, сфатат дека ова недела, а потоа следната недела многу добро може да биде малку на преглед. Но особено кога на хакерите издание на проблемот сет 1 излегува на веб-сајт се разбира во петокот, јас мислам дека ќе најдете дека дури и како ви се пополни во некои празни места во текот на следната недела или две, ќе почнат да се добие уште соочат со предизвикот и се судрите нови и понови нешта. Па ајде да се закачам оваа програма, освен неколку линии во исто време. Во самиот врв, имаме она што е технички нарекува препроцесори директива. Ова е само една линија на кодот кој вели за да го вклучите содржината на фајл, наречен стандард I / N, стандарден влез - или, жал, стандардот I / O, стандард влез / излез,. часот, во внатрешноста на мојата сопствена програма. Значи со други зборови, ако јас го напишав овој Програма со едноставни текст едитор како gedit, поедноставно еквивалент на нешто како Microsoft Word, дека настава, # вклучуваат stdio.h, е само ќе кажам на компајлерот, го зграпчувам содржината на таа друга датотека, stdio.h, и ставете ги во право тука. Сега, зошто е гајле? Што ние тврдиме е внатре од оваа датотека наречен stdio.h, кои се чуваат некаде на мојот хард диск, или во овој случај, некаде во CS50 апаратот? Некој друг ја стави таму за мене. Но она што е во него? Да, па тоа е објава на функција наречена printf. Па printf потсетува на функција која прикажува зборови и знаци и броеви на екранот на мојот наддавање. Но јас не го пишувам. CS50 не го пишувам. Некој години го напишал, и тие во суштина ни даде рецепт за тоа во датотека наречена stdio.h. Така што првата линија само ми дава пристап да функционира дека некој друг напиша години, меѓу кои се printf. Сега, на следната линија, ќе одам да се бранува моите рака во, барем до следната недела. Но, за сега, знам дека int главната (празно) е суштина еквивалент на ова жолта загатка парче кога зелено знаме кликнато. Светот, пред неколку години, одлучи дека ако сте пишување програма во јазик наречен C, ќе почнете да вашата програма со линија што личи тоа. Во само околу една недела, тоа ќе се направи смисла што int е, што празнина е. Но, за сега, само мислам на тоа бидејќи ова жолта загатка парче. Сега следно, имаме кадрава голема заграда по од друг близок кадрава голема заграда, така да се каже. И ние ќе ги видите овие во текот на програми во C, како и Вклучите Javascript-и PHP. И овие само капсулирало поврзани линии на код. Отворен кадрава голема заграда суштина вели, тука доаѓа некои код. И затворениот кадрава голема заграда, што е искосени во друга насока, само значи, тоа е тоа за релевантните код. Па сочни линија во оваа прва Програмата е последен, printf, цитат-unquote, здраво светот. И јас го повикував на нешто помеѓу цитати она што минатиот пат? Па тоа е стринг. И низа е само techie термин за низа од карактери, збор, фраза. Дури и една буква може се двојно цитираше. Но, тоа е секвенца од нула или повеќе ликови. Обратна коса црта-N, сепак, изгледа малку чудно. Но, тоа едноставно значи нешто едноставно со компјутер. Што е обратна коса црта-n? Нова линија. Па тоа е само посебен редослед на ликови кои светот одлучи средства се стави ред во право, таму, затоа што на компајлерот, всушност, ќе добиете збунет, обично, ако, многу разбирливо, но погрешно, само започне притискање на Enter да се стави нови линии во вашиот код. Што треба да биде малку повеќе експлицитна со обратна коса црта-n. И ќе видиме има неколку други такви шеми за специјални карактери. На пример, ако си сакал да ги споделите вашите ум талкаат во корнер случај, да претпоставиме дека сакам да се печати двојни наводници на екранот за која било причина, што би се чини дека да биде малку проблематично, нели? Затоа што ако јас се стави наводници во средината на "Здраво, свет", за што Причината, зошто, кои се чини потенцијално проблематични? Не го скрши на стрингот. На компајлерот е само програмата. А програма како компајлер е само ќе да ја прочитате вашата код врвот до дното, лево кон десно. И ако гледа три двојни наводници, наместо на две деца, тоа не се случува да се знае ако мислиш дека нешто кон лево треба да биде стринг, или нешто што треба да право, или целата работа. Тоа е двосмислена, и така она што еден типичен компајлерот ќе направите е само да навивач надвор, и да ви даде некои порака за грешка, и ве натера да се справи со проблемот. Па со оглед на тоа обратна коса црта-n значи нова линија, што би вашите инстинкти сега почне да биде ако си сакал да вклучуваат нешто аномално како двојни цитирам во внатрешноста на оваа инаку цитирана стринг? Обратна коса црта-двојни наводници. И така ние ќе ја видите оваа вид на шема премногу. Ако сакате да се направи нешто малку чудни, ќе најдете дека решенија често го следат моделот, и обратна коса црта означува бегство низа. И тоа само значи нешто посебно дека ние треба да ги претставуваат во поинаков начин. Што се однесува како да претставуваат обратна коса црта, добро, ние ќе се вратам на тоа. Но одговорот, исто така, е, всушност, малку очигледна. Па ајде сега се воведат некои други програмски конструкции што го виде во Скреч. Сте веројатно зема здраво за готово веќе ако веќе сте го нурна во Проблемот постави 0. Но, ајде сега се воведе на синтаксата во C за овие инаку прилично интуитивна идеи, барем некои од нив. Па овој поим на една состојба или гранка, а претходно ние претставен со код кој изгледаше како овој од левата страна во Скреч - ако x е помалку од Y, тогаш кажете го тоа - наместо сега во C - дозволете ми да брус во на наједноставен случај - ние сме едноставно се случува да се каже, ако, отворете заграда, нешто не е вистина - на Рационален израз се случува да одам каде што реков состојба - блиску заграда, тогаш направи она што е во внатрешноста од оние големите загради. Значи тука, исто така, на тркалезните загради се вид на како гребење на Форма на буквата У мозаик парчиња. Го направи она што е внатре во овие големи загради. Во овој случај, коса црта коса црта. И ќе забележите ова е напред коса црта, не обратна коса црта. Напред коса црта, напред коса црта, за оние кои сте програмирани пред, само значи - тоа е само коментар. А коментар не е на линија на код, сама за себе. Тоа е линија на англиски што вие, човечки, имаат напишано себе си да се можеби ве потсетам да се направи нешто, да објасни за себе, да му се објасни некој друг, она што ти го кодот прави. Тоа е само описни коментар. Сега, се разбира, ние може да има двонасочна вилушка во патот само со тоа, некој три-начин вилушка на патот со тоа ова, и ако продолжиме со ова модел, може да имаат четири начин, пет-насоки, шест начин вилушки на патот ако што треба да се справи, навистина, дека многу услови. А потоа забележите паралелизам тука - ако (состојба), друго, ако (состојба), и само оној кој е малку чудно е последниот, кој е само што друго. Но, повторно, ова е идентична, концептуално, со она што ние го направивме веќе, иако на синтаксата ќе потрае малку се користи за добивање. Сега, во овој пример, постојат некои други чудни синтакса. Гледаме printf повторно, отворен заграда, и блиску заграда. И во внатрешноста на постои цитирана стринг. На загради, во контекст на printf, одат на левата страна и право на што? Што ние ја опишуваат која се цитирани стринг како поопшто? Па тоа е аргумент. Секое време имаш некоја функција, како printf, а потоа отворен paren и во близина paren и нешто внатрешноста на тоа, без разлика дали тоа е стринг, или цел број, или нешто друго, нешто во помеѓу оние загради се нарекува аргумент. И аргумент само влијае на функцијата однесување. Во овој случај, тоа е прилично јасно како. x