>> [Музички]
>> Дејвид MALAN: Добро ова е CS50 и ова е крајот на една недела.
Па јас би сакал да се запознаам мојата поранешна advisee, Andel Даф, кој не само што го прави
iPhone 5 стои, како и оваа lectern, тој, исто така, го прави возила.
ANSEL DUFF: Како оди, сите?
Јас само сакам да ви кажам малку малку за Формула САЕ, од кои
сум капетан.
Тоа е тим МИТ.
Јас само сакам да ви кажам момци малку околу тоа
и се надевам дека произведуваат некои интерес.
>> Па дозволете ми да се кандидира преку Неколку работи за нашиот тим.
Па ние сме целосно студент работи, при што сите
на дизајнот членови, симулираат, тест, и производителот потсистем
на автомобилот.
Ние си имаме свој машина продавница и гаражи, и N52-- или жал,
N51-- која е иста зграда што се MIT наука музеј.
И ние сме луѓе што вози автомобил.
Има националниот натпревар во почетокот на летото,
а потоа таму се помали престрелка натпревари во текот на годината.
А потоа ние се направи возачот обука дена да се запознаат нови членови.
>> Нашите изгради денови се на Сабота 11:00-20:00.
Ручек и вечера се грижат на, од Bertucci и Beantown
соодветно.
Имаме неделен состанок и Семинарот, кој е за текот на кредит.
Кој е нов, како на овој семестар, и исто така, ќе биде за следниот семестар,
така можеш да го минеш-reg за тоа.
И тогаш имаме проектирање, продавница, и CAD дена во текот на неделата,
а членови ќе независно CAD делови, со цел акциите на и така натаму.
>> Па за електрични инженеринг на тимот
ние си имаме влечни, висок напон на системот,
која работи во номинална 300 волти, која ги вклучува
мотори, моторни контролори, и батериските пакувања.
Тогаш имаме ниска напон на системот, која работи
на 12 волти, која ги вклучува контроли, може јазли, мозокот
кутија, и на контролната табла.
Колку CS оди, тоа го правиме имаат веб-сајт одржување
дека ние треба да се направи за настаните, членството промени, нови слики, и ПР материјал.
И тогаш имаме код кој го контролира автомобил за нашата контрола на тракцијата, лансирањето
контрола, цртичка контрола, вртежен момент vectoring, и регенеративно кочење, која
работи обично во MATLAB, Simulink, и LabVIEW.
>> Ви кажам малку за автомобилот.
Така, тоа е околу 500 фунти.
Тоа е правила ограничени на 85 киловати.
Таа има 2 EMRAX 207 мотори во назад, по еден за секоја задните тркала.
Таа има нарачана батериските пакувања од Призматични A123 торбичка клетки,
во вкупна вредност од 300 волти и 5,6 киловат часови.
И тоа е директен погон со на 2,64-1 сооднос на возењето.
Еве некои слики што зеде од тоа во конкуренција.
Тука е назад, носот конус, и тука се мотори,
оние големи црни дискови под et МЕНС Manus.
Еве слајд што влечат надвор од нашата конкуренција шема.
И ова е само споредување нашиот автомобил на неколку комерцијално достапни автомобили,
како КТМ XBOW, Ариел Атом, и Caterha М 7-280.
Ако сте запознаени со цена, моќ повлече тежина, долари коњски сили,
долари на вртежен момент, и нашиот автомобил дува сите нив надвор од водата.
Ако имате било какви прашања, ни трошка одредување на оваа е-мејл адреса.
Пука ни e-mail на fsae@mit.edu.
>> Ние сме среќни да се зборува за нешто што би сакала.
Харвард студенти се вид на малцинството во тимот.
Ако имате било какви прашања во врска со дека немојте да пука ни е-маил,
среќен да разговара, а јас ќе одам да се упатат назад во текот на Давида.
Благодарност.
Јас го ценат, момци.
[Аплауз]
>> Дејвид MALAN: Ansel помина летото работат со нас тука на кампусот во CS50
ова лето.
И во прилог на работи на работи како бинарни светилки,
тој, всушност, навистина отворивме eyes-- и рудникот во particular--
на она што навистина пресекот на не на хардвер и софтвер може да биде.
Всушност многу од работите тој само турнеи вас преку се во крајна линија
создаде првиот во софтверот, а потоа на крајот фабрикувани
во реалниот свет во хардверот.
Значи, ако сте заинтересирани за истражување дека пресек,
можеби преземат таа група.
>> Сега меѓувреме, оние од вас кои се љубители на технологијата,
и Apple производи во особено знаете дека постојат
беа неколку најави вчера.
Но, ние сме мислеле дека би се покаже сте оној кој излезе
неколку дена пред таа Вие не може да се гледа.
>> Јорген EGHAMMER: Знаете, еднаш во некое време нешто
доаѓа заедно дека менува начинот на кој живееме.
Уред така едноставен и интуитивен користење чувствува речиси познати.
Воведување 2015 ИКЕА каталог.
Тоа не е една дигитална книга или е-книга, тоа е книга-книга.
>> Првото нешто да се напомене е без кабли, дури и не кабелот.
2015 ИКЕА каталог доаѓа целосно наполнета,
и траењето на батеријата е вечна.
Интерфејсот е 7,5 од 8 инчи, но може да се прошири до 15 од 8 инчи.
Навигација се базира на тактилни допир технологија која навистина може да се чувствуваат.
>> Содржината доаѓа пред-инсталиран преку 328 висока дефиниција страници
на инспиративна дома кабинетите идеи.
Да започнете со пребарување, едноставно допир и влечете.
Десно кон лево да оди напред, лево кон десно да се движат наназад.
>> Забележите нешто друго?
Дека е во право.
Не заостануваат.
Секој кристално јасни страница носивост моментално,
без оглед на тоа колку брзо ќе дојдете.
Ако сакате да се добие брз преглед, само да го одржи во вашата дланка,
и користење на само палецот, брзина пребарувате содржините.
>> Ако најдете нешто што сакате да ги зачувате за подоцна, можете едноставно да го обележувач.
Па дури и ако ја затвори апликацијата, лесно можете да најдете на ознаката повторно.
Неверојатен.
>> [Смеа]
[Аплауз]
Така што нè доведува до на крајот на една недела.
Неколку најавите сега.
Па разделување сега е во тек.
Оди на овој URL тука некаде помеѓу сега и во петокот на пладне
всушност да наведете дали сте меѓу оние кои се помалку удобно, повеќе
удобно, или некаде помеѓу.
>> Ова е обично една од оние работи кои што само вид на се знае.
И всушност оние од вас кои се помалку удобно веројатно знаете колку,
оние од вас кои се повеќе удобно знаете колку,
и повторно, ако не се сосема сигурни што на оние кофи спаѓате во сте
веројатно некаде помеѓу.
Но остатокот увери вие може да се трампа по неколку недели, ако тоа биде потребно.
>> Во меѓувреме, за следната недела ние не почне делови по себе,
но супер делови, кои се отворени за сите студенти.
Ова доаѓа Недела на локација на бидат објавени на веб страната на курсот
ќе имаме еден за оние кои се помалку удобно,
како и еден за оние поудобно.
И оние некаде помеѓу може да одбере која од овие две,
или и двете, ако сакате, да седат во на.
И во фокусот на оние ќе биде на крајот на C,
кои ќе ја продолжиме нашата разговор на денешницата.
>> Проблемот постави 0 меѓувреме е се надевам дека во ваши раце.
Официјално поради утре, Четврток, на пладне.
Освен ако не заработи еден на вашиот 5 доцна дена,
која ќе го донесе до петок на пладне.
Проблем во собата 1 меѓувреме ќе биде објавени на веб страната на курсот.
И тоа ќе биде нашата прва набег како класа во В
И дека проблемот поставени спецификации ќе ви прошетка низ многу механика на тоа што
почнавме да зборуваме за во понеделник, и ќе продолжат да зборуваат за денес.
Ц, Linux, CS50 апарат, сето тоа
ќе ве чекаат во спецификацијата.
>> Работно време во меѓувреме се во тек, во додипломската мензата.
Се упатат кон овој URL тука за да ја видите распоред за вечерва и утре,
ако би сакале да се причестуваат.
Прашања во меѓувреме, така што ќе имаат можност да поставуваат прашања
асинхроно, 24/7, да сфатат дека сте не ограничувајќи се на делови и канцелариски
часа, туку оваа алатка тука, CS50 Дискутирај во тоа рачно
ќе биде онлајн на курсот огласна табла софтвер, преку кој
можете да поставувате прашања на соученици и персонал.
Значи имајте на ум дека на ресурси, како и.
Во меѓувреме традиција почнува овој петок.
Како што може да увид од последните средата закачка видео,
ние имаме традиција повеќето секој петок за време на мандат
на преземање на некои 50 ученици и вработените во локален ресторан наречен
Оган и мраз, во кој ние сме обично се придружија некои алумни
или пријатели од индустријата да се генерално се стремат
да се направи голема класа чувствуваат помали.
Па тоа е сосема случаен ручек.
Еден куп на нас, вработените особено, ќе игра музички столици
и да разговарате со учениците за 50, живот надвор од 50,
живот во иднина, во реалниот свет, Зборувам за можностите за работа
со пријателите во индустријата.
>> Значи, ако сакате да ни се придружите овој петок, од глава до овој URL тука.
Просторот е ограничен, но ние ќе го правиме ова recurringly во текот на мандат.
Главата таму да cs50.harvard.edu/rsvp.
И ако не се во овој пат, не се грижи.
Ние ќе го направи тоа повторно во наредните недели, како и.
>> Значи ова е сликата ние насликани минатата недела,
и веројатно сте биле dabbling во досега.
Но, ајде да се обидеме да се поврзете овој сега на она што се случува да се направи денес
и наваму.
Може ли да еден волонтер?
Добро, или повеќе.
Како за тука на крајот, во сина кошула.
Ајде нагоре, што викаш?
Alana: Alana.
Дејвид MALAN: Alana.
Па Alana, за само moment-- убаво да се задоволат you--
се случува да ја играат улогата на оваа функција овде.
Виолетова блок ние сме наречен досега функција.
Значи она што јас ќе одам да си пред тука и нудат Alana
е малку името таг, да се направи јасно каква улога си игра.
>> Така ќе биде да речеме блок.
Ако сакате да одите напред и да се стави дека на.
И ние си оди за да задржи овој супер едноставен.
Ако целта на дофат на раката е едноставно сега да се спроведе со Alana,
овој т.н. велат блок, еве како тоа се случува на работа.
Јас have-- да ја наречеме аргумент или параметар,
тоа е навистина само еден празен лист хартија.
И тоа е бела до вид на се потсетува на белата кутија во која ќе
може да се напише зборови.
>> Во меѓувреме јас ќе одам да си тука.
Одам да се оди напред и да пишува H-Е-Л-Л-О запирка светот.
И сега јас, како што велат програмер, не всушност знаат како да се каже нешто.
Јас може да излезе со зборовите, но јас не мора да
знаете како да се изразам вербално или на екранот.
И така што ќе одам да направите е да се земе ова парче
на функционалност, чија input-- или аргумент, како што ќе го наречеме,
Јас сум напишал на ова парче paper-- и јас одам да го нарачува услуги.
>> И навистина тоа е улога која функции во програмски јазик
може да игра.
Нешто како на пример блок може да се аутсорсинг
за некој кој навистина знае она што тој или таа зборува.
Значи, ако сте ќе се повлече во текот на тука за само еден миг,
Одам да го помине овој влез на Alana, и сакаме да се каже ова влез.
>> Alana: Здраво, светот.
Дејвид MALAN: Тоа е тоа.
Така што постои функција.
Сега ние може да го земе малку повеќе, можеме да направиме чекор напред тука.
Затоа што беше јасно underwhelming.
Па ајде сега конвертираме во нешто малку пософистицирани.
>> Значи ова се разбира, е нашиот C верзија.
Па сега ако сакате да се земе дека еднократна, тоа име таг исклучи,
и ајде да се стави на ново име.
Но, во основа ти си играјќи ја истата улога,
тоа само така се случува со да се нарече printf сега.
>> Приказната е, се разбира, ќе be-- веројатно
како underwhelming-- е ќе биде следниот.
Вие сте сега во функција printf.
Јас сум повикувачот, или програмер, кој сака
да стои на рамениците на луѓето во минатото како тебе,
кои веќе сфатиле како да всушност пишува нешто.
И така овој пат, наместо велат дека тоа ајде да
всушност ги користат нашите екранот овде.
Значи, ако сакате да се повлече овде, јас ќе одам
повторно тоа да го помине како влез на мојот пријател printf.
Ако може да оди напред и да печати што на екранот,
едноставно со цртање со вашиот прст на црн екран.
Одличен.
Добро, па многу неизвесност за како тоа се случува да се играат надвор.
>> Па сега ајде да се работи за едно конечна изрез, ако ние би можеле, како што следи.
Значи ова е C програма како што рековме последен пат.
И тоа само прави она што ти го направи, тоа отпечатоци до екранот, здраво, светот.
Иако е јасно многу на оттргнува работи таму.
Но, ајде да се работи до еден степен и воведе оваа верзија, која се потсетиме
беше трета верзија која ние заврши со последниот пат.
>> И сега е јасно два начини на употреба на printf.
Има 2 повици на Alana во овој случај за printf,
но таму е исто така повик на друга функција.
Што е тоа функција јасно?
Getstring.
>> Може да се добие уште еден волонтер?
Добро, ајде нагоре.
Што е вашето име?
>> JAVIER: Хавиер.
>> Дејвид MALAN: Хавиер, ајде нагоре.
Па улога, Хавиер е на ова парче хартија.
Што јас ќе одам да се јавите на генерички.
Сега ова е променлива, тоа е од типот стринг, како што подразбира
од кои втората линија во средината има.
И јас би сакал да одам да ме стринг.
Посебно со главата надолу на оркестарот дел и ме името на некого,
и се врати со променлива што содржи таа вредност.
Тоа може да биде некој со кого сакате.
>> Еве ќе одиме.
Добро, Хавиер е пишување на одредување на името.
Во ред.
Сите ние веројатно може да се погоди како ова ќе се играат надвор.
Ние сме можеби belaboring точка на она што
функција прави, но сепак многу ти благодарам.
>> Значи, Хавиер се врати овој стринг тука, кои не сосема може да се види,
Џонатан е стринг дека ние сме добиле.
Па сега она што јас сум всушност ќе да им обезбеди на Alana иако
е нешто малку различен.
Затоа што во оваа верзија на програма, прво има наведе вашето име.
Значи првиот аргумент Јас треба да се обезбеди на Alana
со се случува да биде буквално се наведе името.
Добро, така едноставно како што Јас би го предаде ова за вас.
И како што јас пишувам до Следниот аргумент, ако
сакаат да одат напред и да ја напишам оваа на одборот, да одиме напред
и направи конечниот пример тука да се направи го расчисти она што на крајот мора да се случи.
Така наведе вашето име, напишете го кон врвот
ако не ти пречи, само така што ние имаме простор за една секунда линија.
Бидејќи последното нешто што јас ќе одам До сега ви обезбеди не е еден,
туку две парчиња хартија.
>> Во ред.
H-Е-Л-Л-О запирка, а потоа празен ред.
Значи она што јас сум за да го предаде на Alana сега е нешто малку различен.
Не само што таа добива ова, каде внесете го претставува
дека percent-- она ​​што беше случаеви ние сме биле користење?
Да, така проценти на.
Во меѓувреме јас ќе одам да помине неа во втор аргумент, кој
е токму она што Хавиер Преземено од Џонатан.
>> Значи, дозволете ми да ви даде овие две.
Ако сакате да, повелете и печатење на тоа.
Што се случува на крајот сега е, повторно Alana
игра улогата на printf.
Хавиер играв улогата на GetString.
Така што ќе биде вашата сувенир.
И на крајот она што се случува, и покрај овој Да hello-- оди напред и запирка.
Alana: Дали ќе добијам ова сеуште или не?
Дејвид MALAN: Да, доби нив двете одеднаш.
Значи идејата е дека можете сега може да флип страница
да се справи со втората на овие два влеза.
Значи ова е само за да ги нападне дома укажуваат дека додека Alana егзекутирани
зелена линија тука, а потоа Хавиер направив ова за нас
и да се врати да ме нешто ние ќе се јавите на, но тоа беше навистина
токму тоа парче хартија од своите.
И сега Alana има направено оваа трета линија.
>> И иако сето ова изгледа толку неверојатно криптичната можеби
на прв поглед, тоа навистина е толку едноставно како што.
Поминува низ влезови, добивање на резултати, или
се физички вратени нешто, или гледање пропратен ефект како оваа.
Нешто визуелно испишана на екранот.
Значи, да оди напред и да благодарам Alana и Хавиер,
кој беше долу тука, за што ни се придруживте тука.
>> [Аплауз]
>> Па сега ајде да земаме здраво за готово колку јасна сето тоа може да биде.
И ајде да се продолжи да се всушност направи нешто во вистинскиот код.
Па на екранот тука е скриншот на т.н. CS50 апаратот.
И ако мораше да се во, како 02:00 во средата попладне,
објасни на некој пријател што CS50 апаратот е,
како ќе го дефинира во една реченица?
Било една реченица?
Да?
СТУДЕНТСКИ: Тоа е како програма што го прави компјутерот на секого
работи со истиот систем.
Дејвид MALAN: Добро!
Тоа е програма која им овозможува на сите компјутер да работи со истиот систем.
Тоа е вид на свој копија на оперативниот
систем кој се случува да го да се нарече Убунту Линукс.
И бега ефикасно внатрешноста на прозорец на свој Mac или PC,
така што на овој начин право надвор од портата во недела 1, секој тука во класата
има пристап до истите алатки, истата конфигурација,
и нема учење крива специфични на Mac или PC а особено.
>> Сега ние се отворија, внатрешноста на CS50 апаратот во понеделникот, оваа програма тука.
Тоа се случува да се нарече прегледувачот.
Но, тоа е навистина само графички уредувач.
Тоа е нешто како Notepad или текст Измени на Windows или Mac OS, соодветно.
И јас предложи дека имало навистина три важни делови на овој екран.
Горната страна е местото каде што ќе напишете вашиот код.
И тоа е каде што помина многу од нашите три примери во предавање во понеделникот.
На дното се нарекува она што, овој црн прозорец, да?
>> СТУДЕНТСКИ: компајлери?
>> Дејвид MALAN: Компајлерот ние посетена од страна на начин на кој прозорец.
Но, генерално.
Да, тоа беше само терминален прозорец.
Ова е стар термин кој само опишува во суштина трепне
брза, која пред неколку години се користат да биде еден од оние големи CRT монитори стил.
Но, во денешно време тоа е вид на виртуелни во софтверот.
И на терминалот прозорци Ајде да ни пишувате команди.
Тоа вид на поедноставена верзија на корисничкиот интерфејс или графичката околина.
Тоа не е графички кориснички интерфејс или GUI,
тоа е текст-базирани интерфејс или командната линија интерфејс.
>> И навистина тоа е каде што на крајот Јас бев во можност да пишувам некои код.
Еднаш имав напишано некои код иако, потсетиме дека јас се користи оваа команда.
И како што името вид сугерира, овој
ми дозволува да се направи програма наречена Здраво.
Но, она што е навистина се прави?
Па направи беше земајќи ја влез, мојата изворниот код,
и тоа конвертирање на тоа што, во крајна линија?
>> Објектниот код.
И објектниот код е само фенси начин на велејќи нули и единици.
А потоа еднаш сакав да се кандидира тој објект код,
еднаш сакав да го помине како влез оние нули и единици во мојот компјутер
мозокот, т.н. процесорот или централната единица за обработка,
Морав да ја стартувате програмата.
Но, тоа не е сосема едноставна во понеделникот како само двоен клик некои икона.
Што наместо морав да направи со цел да ја стартувате програмата?
>> Што беше тоа втората команда?
Слушам малку засеци?
Да, да?
>> СТУДЕНТСКИ: Dot црта и името на програмата.
Дејвид MALAN: Токму така.
Точка црта и името на програмата.
Сега што го направи ова значи?
Па точка е само мистериозен начин на велејќи тековниот директориум.
Без оглед на папка се наоѓате во е референцирани како е претставен како точка.
Коса црта е само она што сте виделе во Mac OS и Windows со години,
тоа е сепаратор помеѓу директориум или папка, а остатокот од околу името.
Во Windows се случува да одат наназад, во Linux и Mac
Оперативниот систем се случува да одат напред.
Но тоа е само сепаратор, така што е само неинтересни синтаксички детали.
>> Сочни дел на курсот е името на програмата, Здраво.
И тоа е она што го креиравте за нас.
Тоа outputted таа датотека за нас.
Но како сме стигнале до таа точка?
Ајде сега да побара од прашање, што беше навистина
случува овде, барем со однос на некои од оваа синтакса?
>> Па во затвор или така, како се објасни
оваа прва линија која е истакна во зелено?
Што беше тоа првата линија прави, во однос на мојата програма?
Да?
>> СТУДЕНТСКИ: [Беззвучен].
Дејвид MALAN: го кажам уште еднаш?
СТУДЕНТСКИ: Вклучување и симнување минатото функциите [Беззвучен].
Дејвид MALAN: Добро.
Вклучувајќи, јас нема да кажам симнување, но да речеме
вклучувајќи функции кои луѓе го напишале во минатото.
И тие функции се спроведуваат некаде во мојот компјутер.
Некој напиша датотека пред неколку години, и таа датотека
е некаде во внатрешноста на CS50 апаратот, или на мојот хард диск
поопшто.
И така оваа линија е во суштина велејќи: да најдеме таа датотека, стандардна I / O точка
h, и копирајте неговата содржина токму тука на врвот на мојата датотека
така што јас не треба да се го направите тоа рачно себе.
>> И меѓу juiciest парчиња внатрешноста на таа датотека се тврди е она што функција?
Што функција не велиме беше прогласена за или споменати во стандардни I / O точка ж
најверојатно?
Printf, нели?
Ние не пишувам printf на Понеделник, тоа само постоеле.
Многу сличен на Alana само што дојде на сцената, а таа само
постоеле и знаеше како да се подготви нешто на екранот,
па не printf постојат за многу години.
Па така ова е како да го пристап.
Сега, ако се движиме тука, Главната беше аналогно ние
рече на загатка парче повика кога зелено знаме кликнато
во светот на гребење.
Тоа е само вид на Стандардното име дека луѓето
одлучи да претставуваат стандардно влезна точка на програмата.
Залакот на програмски код кој добива извршува во прв план.
>> Во меѓувреме овие големи загради се нешто како на криви форма
на многу од тие жолта нула парчиња.
Тие вид на капсулирало целина куп на инструкции заедно.
Па тоа само вид на врзува заедно некои поврзани со функционалноста.
printf се разбира, е функција која отпечатоци на екранот, како што го направија.
>> Она што за овие загради?
Како би ја define-- дури и ако сте никогаш програмиран пред тоа, но само врз основа
сега зголемување се надевам дека интуиција, што
се загради прави за нас овде?
Или она што се тие околните?
Да?
>> СТУДЕНТСКИ: Тие се велејќи дека она што ви се случува да се печати со printf.
>> Дејвид MALAN: Да, тие се велејќи дека она што ви се случува да се печати со printf.
Или поопшто, тие се околните влезовите на функцијата.
Така што речиси може да мислам на оние загради
како како метал клип на оваа таблата со исечоци.
Тоа е она што се држи, тоа е она што е ќе треба да се користи за да обезбеди аргументи
во функција, која во овој случај се нарекува printf.
>> Па воопшто речиси секој време што ние го нарекуваме функција,
ние се случува да се види еден пар загради.
Можеби нешто во него, како сега, можеби ништо во него.
Но, тоа е каде што ќе се стави влезови или т.н. аргументи
до функција.
>> Еве еден таков аргумент.
Сум истакна сето помеѓу наводници,
затоа што се покажува во овој јазик наречен
Ц, кога сакате да претставуваат string-- дека е збор или фраза
или дури и paragraph-- треба да опкружуваат со двојни наводници.
Не единечен наводник, двојни наводници.
И тоа е токму она што го направив тука.
>> Во меѓувреме има фанки симбол кон крајот таму.
Обратна коса црта n.
Што да кажеме дека претставен?
Да?
>> СТУДЕНТСКИ: Нова линија.
>> Дејвид MALAN: Нова линија.
Право, не генерално хит Внесете кога
сакате програма да плукаат нова линија.
Наместо тоа ќе го кажам експлицитно со ова значително таинствениот парче
на синтаксата, обратна коса црта n, што сакате нова линија да оди таму.
Конечно точка-запирка.
Ние навистина не зборува премногу за тоа,
и далеку ова ќе биде отрова на некои на твоето постоење, за прв проблем
сет, кога ли само успеа да го реализира си заборавил нешто како глупаво
како точка-запирка.
И, генерално, го стави ќе утврдат дека проблемот.
Но она што е го прави тоа за нас, дали би рекле?
>> СТУДЕНТСКИ: [Беззвучен].
>> Дејвид MALAN: Молам?
>> СТУДЕНТСКИ: [Беззвучен].
Дејвид MALAN: Завршно соопштението.
Тоа е вид на како период на крајот на англиски реченица,
бидејќи во овој јазик Со тоа завршува соопштението.
Упатство за програмирање кодот кој сакате само да се каже,
Јас сум се направи со ова.
Сега забележите дека е само еден тука.
Значи, вие не сакате да се добие во навика на ставање semicolons
по секоја затворена заграда.
На пример постои никој до неважечки, а ние ќе
се врати во иднина на она што празнина средства.
Но, во овој случај вашиот printf е функција, или изјава се користи,
и затоа сакаме да го имаат тоа терминалот на самиот крај на тоа.
>> И јас намерно подигање на В И искрено многу јазици како C, C ++,
Јава, JavaScript, и било кој број на други јазици имаат многу од овие
вид на синтаксички детали.
Тоа, секако, ако сте нови на програмирање навистина може да ви патување до.
И ќе, обележете ја зборови, некои од вас ќе
имаат тоа искуство во работното време или доцна
ноќе работат на некои p-сет, каде што своите проклети програма едноставно не ги собира,
тоа не работи, ќе мора немаат идеја што е проблемот,
се чини целосно логично точни за вас.
И тоа е затоа што сте заборавиле нешто како притискање
точка-запирка на крајот на некои линија.
>> Но овие се видови на нешта сте случува веднаш да научат да ја видите.
И навистина овие се нештата дека на CA и TF имаат
е вид на обучени за да ја видите многу побрзо од вас.
И така ова е само да се каже, како што се нурне во проблем во собата 1, особено,
не се фрустрирани од овој материјал.
Откако ќе вид на аклиматизирам на светот,
почнат да гледаат работи што не би можеле да види на прв поглед оваа прва недела.
>> Па изворниот код е нешто слично.
Ние сакаме да го помине во т.н. компајлерот.
И дека компајлерот како рековме обезбедува излез
познат како објект кодот, т.н. нули и единици.
Но од таму, што значи дека ни ја даде?
Па тоа ни дава овие модели.
И повторно на вашиот компјутер, вашиот Интел внатре,
разбира овие шаблони на нули и единици.
А понекогаш и модел претставува вистински децимален број
како што видовме минатата недела, понекогаш претставува едно писмо
како што видовме минатата недела, понекогаш тоа претставува настава,
како печатење нешто на екранот.
>> Значи printf за instance-- туку, дозволете ми да ја премотам касетата.
Ние сме биле преземање здраво за готово дека оние нули и единици се
произведени од страна на оваа команда направи.
Но, бидете не е компајлерот.
Направи не е нешто во средината тоа е производство на нули и единици.
Наместо да е само многу погодно име на програмата, чија цел во животот
е во суштина да дознаам како да ги средите вашата програма.
И ние го користат во овие првите недели бидејќи тоа само
ни заштедува многу проблеми.
>> Но, она што се направи е навистина правите кога ќе ги собере здраво,
е, како што рече последниот пат, тоа е во потрага на вашиот хард диск
или во тековната папка, за датотека со име што, очигледно?
Hello.c, нели?
Тоа е само вид на конвенцијата.
Тоа е произволна, но тоа е начинот на кој работи се.
Направи, ако само наведете име на програмата што се уште не постојат,
тоа се случува да се погледне за изворниот код во датотека, по дифолт значи hello.c.
И ако смета, одлично.
Тоа се случува да го конвертирате дека извор код во објектниот код за вас.
>> Но секој пат кога ќе го погоди Внесете по трчање направи здраво,
Се сеќаваш ли гледаат Последен пат прилично долга и криптичната редослед
на други бели букви и карактери на екранот?
Па тоа беше вистински команда, Крај на компајлерот, тоа беше работи.
Така вистинските компајлерот ќе ги користат повеќето од на семестарот е нешто што се нарекува ѕвекот.
Некои од вас може да се користат Visual Studio пред или GCC,
или било кој број на други компајлери.
Ќе искористиме ѕвекот.
>> И ѕвекот ни овозможува да всушност се конвертира дека изворниот код на објектниот код.
Што значи ова всушност значи во пракса?
Па дозволете ми да одат во една од Мои папки од минатиот пат.
Внатрешноста на CS50 апаратот.
И дозволете ми да оди напред и да се создаде овој иста датотека, вклучуваат стандардни I / O точка ч.
Int главната неважечки.
А ние ќе се вратам во иднина на она што int средства и она празнина средства.
Но, за сега да го направиме Здраво светот обратна коса црта n,
исто како што правевме на табла.
>> Дозволете ми да се спаси оваа датотека наречена hello.c.
И сега ако сакам да ги собере Јас could-- дозволете ми да зумирате in-- рок
направи здраво влезе.
И тоа повторно беше дека многу криптичната линија.
Но сега барем со еден збор веројатно скокнува во вас.
Ѕвекот е дека линијата што го видовме досега.
Сега има многу други работи искрено дека ќе се бранува нашите раце за денес.
Но, има неколку подмножества, неколку ликови тука
кои се од интерес.
Но јас ќе одам да се оди напред и да го направите тоа.
Одам да се првиот рок Здраво, само за да докаже
дека ова е работа како што беше понеделник.
Но сега јас ќе одам да ја избришете програмата.
И многу како имавме овие кратки имиња последен пат,
командата за отстранување на нешто не е во РМ, се отстранат, внесете.
Ви се случува да се добијат некои прилично криптичната прашања.
Тешко да се поверува дека можете да направите дури и на ова прашање е тешко да се разбере.
Но отстранат обична датотека здраво само средства не сакате да ги избришете здраво.
>> И јас може да оди напред и да внесете y за Да, Внесете, а сега тоа го нема.
Што ова значи сега, ако јас се расчисти мојот екран,
е тоа што наместо прави го hello-- сте
Знаете што, јас сум добивање добар во тоа.
Одам да се кандидира на компајлерот себе.
Не ми треба некој програма за дознаам што ми датотека се нарекува.
Напишав hello.c, јас знаете како се вика,
Јас сум јасно способен за пишување тоа.
Значи, ќе одам да се оди напред и не ѕвекот hello.c Enter.
>> Изгледа да се работи.
И нема дополнителни излез, бидејќи ѕвекот е компајлерот.
Тоа е она што се конвертирање на изворниот код на нули и единици.
Значи, ако јас сега направи точка намали здраво Enter, НВ.
Нова порака за грешка и денес.
Па баш е само името на трепка брзо, дека ние сме користење.
Тоа е бруто oversimplification, но сега за сега тоа е сè што е,
тоа е трепка брзо.
И тоа е зошто тоа е викаат по нас.
>> Нема таква датотека или директориум е малку повеќе јасна.
Но, сигурно не сум направил тој објект код.
Но, што се фати е дека ако јас напишете ја командата
да ги наведете содржината на овој директориумот, што е она?
ls за листа.
Има еден куп работи тука, од кои некои дојдоа со апаратот,
како што и мојот десктоп фолдер, Превземања папка, Dropbox папка, и сите
тие работи.
Но, она што е интересно е hello.c, кои
Јас создаде пред една момент со прегледувачот.
И она што е најчудниот во потрага име тука,
можеби тоа ние не види последен пат на сите?
>> a.out, нели?
Па назад во текот на денот, тоа беше само одлучи дека кога
ќе се состави програма за прв пат,
и не го наведете името на датотека, да ја повик.
И a.out само значи ова беше на излез од компајлерот.
Па тоа е ужасно име за програмата.
Но, со таа логика, точка намали за тековниот директориум, коса црта a.out,
треба да значи дека е всушност мојот Здраво светот програмата.
Сега малку се загрее вежба, исто така.
Ако сакате да ја преименувате оваа датотека, излегува дека сте
преместување на датотека од едно име на друг.
Па mv a.out, а потоа да го наречеме здраво Enter.
Значи ова е команда Линукс.
ДОС имаше пред тоа години, Windows има терминален прозорец
на некој вид што изгледа вака, Linux и Mac
компјутери имаат оваа трепка брзо.
Иако повеќето од нас веројатно ретко, ако воопшто, користете го.
>> Но, она што го направив е се води програма, чие име е mv,
и јас сум тоа што се предвидени со два аргументи, така да се каже.
Две влезови.
a.out е оригиналното име.
Здраво е новото име.
Значи, ако јас сега направи точка коса црта Здраво, Enter, што постои.
И ако го направам точка коса црта a.out, што очекувате дека треба да се види?
>> Баш, Нема таква датотека или директориум.
Бидејќи јас само да го преименува.
Значи ова е потребно малку се користи за добивање.
Но, проблемот во собата 1 спецификација навистина
одржи вашата рака преку некои на овој minutae.
Бидејќи ова е целосна интелектуална разонода
од поинтересните идеи на дофат на раката, која
е всушност создавање нешто од код.
Но, ајде да се направи една измена сега на оваа програма.
>> Потсетиме дека последен пат го направив нешто вака, printf наведе вашето име.
И навистина ние само го направи ова на големиот екран таму.
А потоа го направив низа на добива GetString отворен paren, во близина paren.
И paren само стенографија нотација за заграда.
Значи не 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 кадар создаде за вас пред некое време.
Па тоа е лесно поправи, цртичка l за врска, CS50.
И повторно ќе ја видите оваа пред долго време повторно и повторно.
Но информации сега немало жалби.
Па сега ако јас се кандидира точка коса црта Здраво, сега тоа е работа.
Иако тоа е малку погрешно бидејќи јас само пресоздава она датотека?
a.out.
>> Па да ми ја премотам касетата за само еден миг.
Програмата ние само се составени има три линии на код.
Кога Истрчав Здраво светот, здраво момент Пред, јас не гледам наведе вашето име.
И тоа е затоа што налетав на стара верзија на програмата.
Но, ако јас навистина работи точка коса црта a.out Влезе, наведе вашето име, Роб, здраво,
светот.
Hm.
Тоа е вид на бубачка.
Веројатно значи да се каже Роб, нели?
Значи она што е поправам тука во кодот.
СТУДЕНТСКИ: [Беззвучен].
Дејвид MALAN: Токму така.
Па јас само треба да се направи дека конечниот tweak така што јас сум поминува во случаеви,
како пополнете во празно, како што правевме пред една момент.
Но проценти е сега кој се пополни во празно.
Па на крај, ајде да се открие една последна детали, така што не постои магија.
Одам да одиме напред и да се ослободи од Hellow.
Одам да одиме напред и да се ослободи од a.out.
Па сега немам програми, само мојот изворниот код.
И јас одам да се кандидира малку подолго команда, ѕвекот
цртичка о здраво hello.c цртичка LCS50.
>> Сега ова почнува да се вид на се оди во едно уво и од другите можеби.
Но само одгатнат што е ова се прави.
Ѕвекот е компајлер, цртичка LCS50 намерно на самиот крај
го прави она што во една реченица?
Линкови до библиотеката CS50.
Зграпчува нули и оние кои на вработените направени
и ги crams во мојата програма.
Па на последното прашање во рака е, она што е цртичка о здраво веројатно
прави, дури и ако никогаш не сум видел оваа синтакса и пред тоа?
>> Ставање програма која е не се вика стандардно a.out.
Наместо тоа име здраво.
Па сега не постои a.out.
Нема таква датотека или директориум, затоа што експлицитно изјави
повикувам оваа програма здраво, така што Сега можам да напишете име како што
и да го имаат се однесуваме.
>> Сега искрено, момчето е дека неинтересни да имаат
да се запамети сето тоа малку minutia, нели?
Значи, да оди напред и да се ослободи од Здраво повторно.
И ајде сега се врати во свет во што е доволно да се каже направи здраво.
Но, тоа е магијата што направи го прави за вас,
тоа е досада дека тоа го прави за вас.
И како нашите програми и проблеми добиете повеќе комплекс,
направи навистина ќе ти биде пријател.
Бидејќи не е премногу долго од сега одиме
да имаат програми кои се напишани не со една датотека, но неколку датотеки,
и да се направи ќе автоматизира процесот на составувањето сето тоа за нас заедно.
>> Па сега се печати.
printf е внатре од оваа датотека, стандардна I / O точка ж, дека ние сме виделе пред,
но има уште да printf од тоа.
Има обратна коса црта n, но таму е исто така еден куп други бегство секвенци.
И посебни карактери е само фенси начин да се каже нешто
која започнува со коса црта, не напред коса црта, обратна коса црта,
и не некои специјални нешто.
И ние не ќе се задржиме на повеќето од овие, но зошто постои обратна коса црта двојно понуда,
мислите?
Зошто постои оваа чудна низа на карактери, обратна коса црта двојно понуда,
зошто тоа може да биде корисно?
СТУДЕНТСКИ: [Беззвучен].
Дејвид MALAN: Точно, нели?
Сетам на нашите Здраво светот програмата дека ние сме виделе неколку пати сега,
секој пат кога видовме дека Здраво светот програмата имавме двојни наводници во
од кои е здраво запирка светот обратна коса црта n.
Но, мислам за себе, што ако, всушност,
сакаше да се печати знакот?
Вашиот прв инстинкт може да биде, јас не знам зошто можеби ќе сакате да do-- тука,
ние може да биде малку пасивното агресивни, здраво пријател.
Ние би сакале да се направи такво нешто.
>> Но, зошто е ова сега проблематична?
Игнорирањето на кадрава цитати настрана дека воведниот направи за нас автоматски.
Зошто е ова проблем?
>> Токму така.
Бидејќи имаме како 4 наводници.
И првиот веројатно оди со вториот,
а можеби и на четвртиот оди со третиот,
или, мислам дека не сум сигурен дека дури и, ниту пак е компјутер и ќе биде.
Компјутери, повторно, компајлери повторно, се прилично глупави.
Тие само ќе го направи она што ќе им кажете да се направи.
И ако не сте недвосмислена тие веројатно ќе фрли грешка.
>> Ако не сте недвосмислена за тоа како да направи со путер од кикирики и желе сендвич
чудни работи би можеле да пристигнат.
Тоа е истата идеја.
Сега доволно е да се каже дека е некои други бегство секвенци,
но ќе дојде до оние пред долго.
Во суштина овие бегство секвенци претставуваат нешто
дека не може да биде во можност премногу лесно на тастатура,
без збунувачки компјутер.
>> Сега пак имаме променливи во printf.
Проценти г, кој исто така може да бидат напишани Во речиси сите случаи како процент i,
е случаеви за тоа каков тип на податоци?
Каков тип на вредност?
А децимален број.
Така всушност ќе започне користење отсто јас, бидејќи тоа е
малку поедноставно, како цел број.
Проценти i.
Цел број кој се случува да биде децимална.
>> Процент на веќе рече дека е случаеви за низа.
Што е само еден збор, фраза, став, есеј, сеедно.
Тоа е низа од ликовите на некои должина.
И ќе видиме пред долго некои од овие другите.
Но проценти в е за еден лик.
Процент f е за број со подвижна запирка,
како вистински број, кој има на децимална точка во неа
Се разбира не е цел број.
И таму е целата куп на други, како и.
>> Во меѓувреме, во C и во многу јазици,
имаме различни типови на податоци.
Различни типови на стаклени чаши ако сакате.
Сад Јас се користат последен пат беше за пинг-понг топчиња,
но ние исто така може да се сместат различни вредности како карактери и стрингови
и цели броеви во сад, како променлива, и Ц има овие.
Знак е тип на податоци, на тип на променлива,
во која може да се сместат лик.
Плови е еден вид на променлива во кои можете да ги чувате реален број.
>> Int, се разбира, за int.
И наместо смешно именуван долго долго
е местото каде што можете да ги чувате во суштина навистина долго број, дури и со
повеќе бројки потоа Типичен int моќ продавница.
Но ние ќе се вратам на тоа пред долго.
>> Во CS50 точка ж меѓувреме другите хедер датотека
дека ние сме виделе неколку пати во употреба, има
две други типови на податоци кои не постојат во C обично.
Една од нив е стринг, и ние ќе видиме во неколку недели она што навистина жици
се под хауба.
И еден е bool.
И bool променлива што е само да се земе на одредени вредности.
И само врз основа на минатата недела објаснување на нула,
а од неодамна и C, она што би се погоди
се две можни вредности за некои контејнер кој е од тип bool?
>> Да и не.
Еден и нула.
Вистински или лажни.
И навистина е последниот кој има тенденција да биде конвенционален во програмирање
јазик, велејќи нешто како точно или неточно.
>> Во меѓувреме библиотеката CS50 доаѓа со еден куп на функционалност
дека вработените напишал за вас, покрај само добивање на стрингот.
Ние напиша однапред функции кои може да се добијат цел број од корисникот,
добие еден лик, добие плови, дека
е само број со децимална точка.
Добие долго долго, навистина голема вредност од корисникот.
Значи ние сме само гледа ова во акција во форма на GetString.
Но преку овие функции наскоро ќе биде во можност да пишувам
програми кои се влез од корисникот.
>> Во меѓувреме сметаат дека ова програма, и сметаат дека
како ние сега може да почне да додадете да со нови конструкции.
А брз виорот турнеја и тогаш ние ќе се погледне
во некои пишувањето на некои програми рачно себе.
Отсега натаму, ако сакаме да спроведување на состојба,
тоа нема да личи на убаво малку загатка прилично парче.
Тоа се случува да се погледне малку повеќе arcane.
Но, ова е канонска структура на состојба во C.
>> Зборот ако двата заграда, во внатрешноста на кој
се случува да биде некој вид на Булова израз.
Сега коса црта црта во средината, тоа е
во моментот вид на како pseudocode код случаеви.
Но повеќе правилно, која било линија на кодот во C, која започнува со коса црта црта
е коментар.
>> Тоа е како леплива белешка дека можеби стави на есеј, печатени на хартија.
Тоа е нота до себе.
Тоа нема функционална влијанието на програмата.
Тоа е еден вид на потсетник, тоа е вашата документација за тоа што се случува.
Значи направите ова во моментов е вид на случаеви
за она што е внатре од оние големи загради
на крајот се случува да се направи нешто.
>> Во меѓувреме имате две вилушки во пат, еден ако друго изградба вака.
Можете да ако, elseif, на друго место.
Сега тоа е вреди да се напомене, особено ако сте биле околу Googling
онлајн ресурси од љубопитност, или ако земам
еден од курсот Препорачани книги на C,
ќе видите дека луѓето имаат многу на различни параметри за тоа како
да се изразат себеси код.
Некои луѓе сакаат да се стави на кадрави загради, како што го направив тука.
Некои луѓе сакаат да се стави на кадрава се подготвува за пример тука.
>> Некои луѓе сакаат да се стави на elses тука и тогаш тоа овде.
Има било кој број на начини да се напише код, и никој од нив
се во право по себе.
Иако има неколку кои се прилично лошо.
Но, постојат no--, ако тоа е на крајот многу религиозен дебата.
Всушност, една од најпознатите досадни работи во врска со компјутерски науки
е како своеволен компјутерски научници може да биде.
И ќе најдете дека со текот на времето дури и да се развие лични преференци
за тоа како вашиот код треба да се погледне.
>> А не само да се однесуваат, а не само да се создаде излез, но како треба да изгледа естетски.
Значи она што ќе го направите е да ви помогнеме заедно на патот кон, барем засега,
стандарден CS50 стил дека барем држи работите униформа и лесен за читање.
Но повеќе на оние разлики пред долго.
>> Булова израз во C, ако сакав да кажам, ако оваа состојба е точно
и оваа друга состојба е вистина, ти не го напишете зборот
и, како што би на англиски јазик.
Ти наместо да се користи симболот симболот, причини ќе се врати на.
Ако сакате да се каже или да користите две вертикална барови, кои на американската тастатура
генерално над Внесете Клучот до обратна коса црта.
И тоа само значи дека ако оваа состојба или оваа друга состојба е точно направите тоа.
>> Во меѓувреме има оваа луди работа, кои
ќе имате прилика да се користи еднаш во некое време.
Но, тоа е само алтернатива начин да се изразуваат.
Ова, за сега, ајде да пропишува, тоа е само
друг фанки начин на изразување ако, elseif, elseif, elseif, elseif.
Тоа е само форматиран во однос случаи, каде што буквално
наведеме вредностите кои можеби ќе сакате да се провери за.
>> Во меѓувреме петелки.
Видовме споредба на Гребење со јамка.
И јас одам да се бранува мојата рака во она што секој од овие работи значи.
Но забележете дека јамка ќе многу често почнуваат со клучни зборови за.
Или ќе почне со клучни зборови време.
Или ќе почне со клучни зборови направи, а завршуваат со клучниот збор време.
>> Но, она што ние сме за да се види е работи повеќе вака.
Тука е, воопшто во C, како може да декларирате променлива и ја даде вредност.
Во C тоа не е доволно, како и во нула, можете само
велат ми даде променлива наречена нешто.
Мора да му кажете Ц, и кажете компајлерот, поконкретно,
каков тип на вредност што го правите сакате да се стави во садот.
>> Тоа е цел број?
Ако е така, треба да се буквално велат int и потоа
име на променлива, тогаш точка-запирка.
Ако наместо тоа сака низа и се нарекува тоа е како што го направив мојот код овде денес,
ќе каже низа на точка-запирка.
Откако ќе сакате да го даде вредност тогаш може да се користи знак за еднаквост,
инаку позната како задача оператор.
И ќе забележите како секој на овие линии на код
има точка-запирка на крајот на тоа.
>> Но искрено тоа само изгледа малку грдо.
Зошто не можам да го компјутерот велат, им даде на ме променлива и се иницијализира до нула.
Тоа е, ми даде празен стаклен сад.
Додека можеш.
И така еден од пресудата ве повикува ќе треба да се направи стилски со текот на времето
е, да ти напишам кодот како овој, или дали вид на исчистам и импресионира
луѓе со пишување на две линии, како само еден.
И ова ќе се смета за генерално поелегантни начин
на пишување на кодот стилски.
>> Функции сме секако се гледа.
Тие се случува да се земе овој формат.
На име на функција, некои загради, а потоа можеби и некои
работи внатре.
Или можеби ќе видите употреба на повеќе функции страна
од страна на страна, како нешто како ова.
Сега како тангента, не оваа шега сега има смисла?
>> [Смеа]
Тоа не значи дека тоа е смешно, но тоа не можеби се направи малку повеќе смисла.
Па сега ајде да одиме во CS50 апаратот за момент.
И дозволете ми да се отвори еден закачка тука.
>> И навистина една од причините за воведување на ИКЕА каталог
и блескави сликата на iPhone пред малку
беше да се, всушност, се врзуваат во заедно Фактот дека само пред неколку години, во 2007 година,
овој дел од кодот беше ослободен, која беше
еден од првите имплементација на едно парче од софтвер
која го прави она што се нарекува jailbreaking.
За оние кои се запознаени, jailbreaking нешто како телефон или iPhone
значи во суштина да пронајдат како да се прават работите
со тоа што на компанијата кои го направија тоа не планираат.
Како сакате да го инсталирате одредени софтвер кој не е во App Store,
jailbreaking вашиот телефон кој се прават работите, како што и многу повеќе.
Но, она што беше забавно во 2007-- и има се
десетици различни верзии овие работи од тогаш,
во сите видови на languages-- е дека оваа програма тука, наречен iUnlock,
е всушност напишан во C. И така јас зафрла изворниот код за ова,
само да се вид на ви покаже некои од сличностите со конструкции
ние сме во дискутирање досега.
Сега има начин повеќе комплексност тука отколку што сум видел веќе во класата.
Дозволете ми да дојдете до само малку тука.
>> Но информации these-- и забележавме неколку things-- но се забележи овие редови,
вклучувајќи стандардни I / O точка ч.
И all-- линија 24, please-- забележите стандардот I / O
точка ж и целиот куп на други додадени фајлови: дека очигледно на другите луѓе
го напишале.
И ако се движите надолу преку ова, малку произволно,
информации Јас не знам како да се напише сето ова мене мора сепак,
но има ако.
Значи очигледно ова има една гранка.
>> И ако јас движете надолу малку понатаму има уште една ако.
Ако јас скролувајте горе, мислам дека околу линијата 100 видов за.
Па јас не сум сосема сигурен како тоа функционира, сепак,
но ова е за јамка што се случува да се дозволете ми да iterate некои број на пати.
И ако ми дојдете сите начинот на дното
Гледам дека има функционираат овде се нарекува
Главната, а некои дополнителни кредити за читање задоволство.
>> Така што ова е само за да say-- и ние ќе се стави оваа интернет меѓу изворот на курсот
код today-- дека дури и некои од овие уреди кои ги земаме здраво за готово,
на крајот на денот си уште користење на овие основни конструкции дека ние сме
е воведување веќе досега.
Тоа е доволно за таа една.
Добро, па сега ајде да всушност се изгради нешто.
>> Ајде да одиме подалеку нешто како hello.c, и ќе отвори ова,
ајде да ја напишам оваа програма тука.
Одам да се оди напред и да напише програма наречена adder.c,
чија цел во животот се случува да биде како што и мојот прв супер едноставен калкулатор
тоа само додава неколку броеви.
Не затоа што тоа е тешко проблем, туку затоа што тоа
ми дозволува да сега врзи заедно неколку работи.
Па јас ќе одам да се оди напред и да се вклучат стандард I / O точка ж и CS50 точка ч.
Одам да се каже int главната неважечки.
И во иднина ние ќе се вратам на тоа
во во овој контекст и неважечки средства.
>> И сега ќе одам да се каже нешто како printf, дај ми број.
И сега на мојата втора линија, како можам да ги изразат себеси како
дека сакам да декларирате променлива што се случува да се сместат на int?
Буквално она што можам да пишувате ако сакам да создаде променлива која продавници на int
ќе каже?
int a еднаква getint.
Секако, така што работи.
И само за конзистентност со кодот е испишан
види онлајн, дозволете ми промена ова за x, само затоа x
е заеднички името на променливата да се користи, барем во алгебра.
Сега дозволете ми да оди напред и да се printf повторно.
Дај ми друга цел број.
И сега ќе одам да се вид на учи од овој модел,
Одам да се каже int y добива GetInt.
>> И не сум користел GetInt порано, но само
како GetString оди и добива низа, како Хавиер направи од публиката,
Слично на тоа го прави GetInt почне да трепка брзо.
И ефективно да се чека за корисникот да го даде цел број, со внесување на тоа во
и притискање на Enter.
Сега на крај јас ќе одам да направите ова, printf збирот of--
и дозволете ми да се фенси now-- проценти i и i проценти е присутна
јас извичник обратна коса црта n.
И што мислите, ќе одам да стави во сега како дополнителни влезови
да printf?
>> Не сакам да кажам буквално го цитирам unquote х.
Сакам да класа во x и тогаш, и сега нека се фенси
и ајде да се претпостави ние може да го направи она што го сакаме.
Што сакате да кажам следно?
x плус y.
И навистина, кој ќе работи.
Тоа е минимално програмски јазици го разбирам основна аритметика,
па така ова треба всушност работа.
>> Значи, дозволете ми да оди напред и да направат ехидна во мојот црно и бело прозорец
долу тука, Enter.
Криптичната линија, но нема грешка пораката, така што е добро.
Dot намали ехидна, ми даде број, 1.
Дај ми друга цел број, 2.
Збирот на 1 и 2 е 3.
>> Добро, така прилично тривијална програма, но она што го направи тоа?
Тоа ми е дозволено да се користи функцијата јавете се тука, јавете се на друга функција овде,
два повици да GetInt, а Третиот повик за printf,
а потоа со помош на овие променливи.
Така, тоа е малку повеќе софистицирани од минатиот пат.
Но, што ако сакам да се добие малку познавач?
>> Дозволете ми да оди напред и сега го направите тоа.
Дозволете ми да оди напред и да се создаде нова датотека наречена услови различни од нула.
И јас одам да се спаси некое време за настава заради
и само ставете во таа код како појдовна точка.
И сега јас сум само ќе да се стави нешто ново тука во средината.
Значи printf Би сакал цел број ве молам.
И сите го овој код е достапен на веб-страницата на курсот,
вие не треба да ја внесете сите надвор во класа, ако не би.
int, и сега ќе одам да користат, наместо на x и y,
Одам да се користи n, што е најверојатно најчестиот име
за цел број во компјутер програма.
И сега сакам да се направи малку пресуда тука.
Одам да се види ако n е поголема од 0, тогаш
Одам да се каже printf-- Whoops, printf-- сте го одбрале позитивен број,
извичник обратна коса црта n.
Затвори тоа.
На друго место јас ќе одам да се печати printf што сте го одбрале негативен број.
>> Сега пред да се развикам на мене, ајде да ја извршите оваа програма.
Дозволете ми да одат надолу тука.
И како можам да се состави програма наречен услови цртичка 0?
Направи услови цртичка 0.
Вид глупаво име, but-- мајката.
Добро, добра настава момент.
Зошто таа се скрши?
>> Што сум случајно се јавите овој податок?
Можете вид на може да се заклучи од табот тука.
Па тоа не е лошо што направи тоа, затоа што овој
ќе се случи, можеби на некои од вас.
Па јас случајно наречен мојата изворниот код состојба 0.
Но мојата изворниот код од Конвенцијата треба да биде во датотека наречена состојба 0 цртичка в,
или што и точка в.
>> Па да ми го надминете овој.
Исто како Microsoft Word можам да одам до да ја зачувате како и направите состојба 0 точка в.
Сега само за да бидат уредно сум случува да се оди напред и да ги отстраните
состојба 0, која ми беше стара верзија.
И сега ајде да го прават состојба 0 Enter.
Во ред, се чини добро.
>> Состојба 0 Enter.
Би сакал цел број ве молам, 50, што сте го одбрале позитивен број.
Сега како за негативен 50?
Што сте го одбрале негативен број.
Како за сега, 0.
Прилично сигурен 0 не е негативен.
>> Па ова е еден вид на логички грешки.
Како можам да го надминете овој?
Друго, ако n е помал од 0, го направите ова, друго ние може да има три начин гранка тука,
printf сте го одбрале 0.
Па сега ако јас повторување ова програма, по составувањето тоа
повторно со шминка, а сега повторување состојба 0, она што ќе видите тука
0 ми дава дека излез.
Значи каде одиме со оваа?
>> Добро, тоа е многу лесно да се изгуби од вид на шумата за дрва.
И така ни овозможи да се заклучи со овој 2 и 1/2 минута видео
што на крајот е малку на една реклама од Google,
но тоа навистина е доказ за што дури и со користење на овие основни градбени
блокови што во крајна линија може да се направи еднаш имаме малку на програмирање
такт под нашите појаси.
>> [Музички]
>> SAROO Brierley (VoiceOver): Тоа беше пред 26 години,
и јас бев само за да се сврти 5.
Стигнавме до железничката станица и да се качиме на возот заедно.
Брат ми кажа јас ќе остане тука, а јас ќе се врати.
И јас само мислев, добро знаете, Јас би можеле, како и само одам да спијам
а тој само ќе ме разбуди.
И кога се разбудив следниот ден, целиот превоз
беше празен за бегство воз на духови воз земајќи мене не знам каде.
>> Јас се донесе до Австралија, да австралиски семејство.
И мајка се украсени мојот соба со картата на Индија,
што таа се стави до мојот кревет.
Се разбудив наутро гледајќи дека картата, а со тоа
Тоа вид на се чуваат живи спомените.
Луѓе би рекле, ти си се обидува да најде игла
во haystack, Saroo никогаш нема да го најдете.
>> Би блесна на места што се користи да одам, на удари на моето семејство
се соочува.
Имаше сликата на мајка ми, седнува со нозете прекрстени,
само гледајќи ја плаче.
Животот е само толку тешко.
Тоа беше мојата богатство.
И јас бев во потрага на Google на сајтот и реализира има на Google Earth, како и.
Во еден свет каде што можете да зумирате во, Почнав да ги имаат сите овие мисли
и какви можности дека ова може да се направи за мене.
Си реков, знаете, сте добив сите оние фотографски спомени
и место каде сте од, и Дали знаете што градот изгледа.
Ова може да биде апликација која можете да го користите за да го најдете вашиот пат назад.
>> Си помислив, и јас ќе се стави точка на Калкута железничка станица,
и радиус линија, знаете, дека треба да се бараат околу оваа област.
Јас вид на наидов овие воз песни.
И јас почнав по него, а Дојдов до железничка станица која
одраз на истата слика тоа беше во моите сеќавања.
Сè што се совпаѓаат.
Јас само мислев Да, јас знаат каде ќе одам.
Јас сум само ќе ги споделите со мапа која имам во мојата глава
ме води и да ме врати во мојот роден град.
>> Дојдов до прагот на куќата што сум роден.
И шеташе околу 15 метри зад аголот,
имаше три дами стои надвор, во непосредна близина на едни со други.
И средната зачекори напред, и Јас само мислев, ова е вашата мајка.
Таа дојде напред, таа ме прегрна и бевме таму за околу пет минути.
>> Ми ја зграпчи раката и таа ме одведе во куќата
и се качив на телефон, каде што заѕвони сестра ми и брат ми
да се каже дека, знаете, брат ти има само
наеднаш се појави како сениште.
А потоа на семејството беше вратила повторно.
Се што е добро, Јас помогна мајка ми надвор,
таа не треба да се slaving далеку.
Таа може да живее остатокот од својот живот во мир.
>> Тоа беше иглата во haystack, но иглата беше таму.
Сè што е таму.
Сè што треба во светот е на чешмата на копче.
Но имаш да имаат волја и определбата да сакаат тоа.
>> [Музички]
Дејвид MALAN: Прекрасно слатка тестамент
само она што може да сега со технологија.
Ние ќе се видиме следната недела.