Дејвид Џ MALAN: Значи ова е CS50. И тоа беше CS50 е Колтон Ogden, за повеќе од кој е музика може да преземете во soundcloud.com/cs50. Така, денес ние се фокусира уште повеќе на уметноста на програмирање. И ние се каде што замина минатата недела, фокусирајќи се на нула, што беше тоа графички програмскиот јазик. И да ги преземат работите надолу на пониско ниво, со користење на повеќе традиционални програмирање јазик познат како C. Но на патот, сфаќајќи дека истите идеи ние зборуваше за минатиот петок ќе се повтори не само во оваа јазик C, но во повеќето секој друг дека ние се погледне на овој семестар. Па ние ова го нарече нешто тука она што минатиот пат? Ова е претставник на една изјава. Па ние ова го нарече соопштението. И тоа го прави нешто. Тоа е инструкција дека компјутер или нула може да се изврши. И оттука, да, исто така, да почне повикувајќи нешто како ова функција, од причини што наскоро ќе видиме. Во меѓувреме, видовме вакви работи. И овие се обично познат како она што конструира? ПУБЛИКАТА: јамка. Дејвид Џ MALAN: Значи јамка. Така прилично јасна. Тоа буквално го прави она што го кажува. И во нула, ако сакате да ставам повеќе загатка парчиња во таму, парче ќе расте за да го собере. И ќе видиме дека во C можеме да го стори истото. Друг вид на јамка, иако, во нула може да биде засекогаш, или има било кој број на други пристапи. Но, ајде да земе повеќе генералист изглед, со лице тоа е веројатно доста познато, на јамки поопшто. Марк Цукерберг: Еден нешто што компјутерите се навистина добри во е повторување команди. Како човек, ќе добие навистина досадно ако мораше да го прават истото многу пати по ред. Но, компјутерот може да го прават истото милиони па дури и милијарди пати, и не се досадуваат, и да можат да го спроведе навистина добро. Така на пример, ако сакаше да сакаат сите на Фејсбук среќен роденден од нив испраќање на е-маил, тоа би можело да ме однесе повеќе од еден век да всушност пишува надвор сите оние пораки за секого. Но со само неколку линии на код, што можам имаат систем испрати е-маил за секој на Фејсбук кои сакаат им среќен роденден. Значи тоа е она што јамки и зошто тие се вредни и нешто дека компјутерите можат да прават многу добро. Дејвид Џ MALAN: Значи, ако сте биле на примателот на некои од CS50 и Простор Dropbox на крајот, тоа е всушност токму она што ние направи, употребувајќи го кодот доста како тоа. Ние во суштина имаат големо табела во која луѓе се внесување на нивните имиња и-мејл адреси. И ние напиша мал малку на кодот кој може да iterate во текот на тие адреси и плукаат уникатен адреси во случај некој поднесени неколку пати. А потоа, ние испрати еден автоматски е-мејл од бот CS50 е, вклучувајќи забава код. Сега ние, исто така, погледна овој изградба последен пат. И ова е особено пример за она што? Значи, да, Булова израз. И формата се подразбира да го фати тоа како добро. Сите такви прашања на формираат точно или неточно во гребење ќе изгледа малку нешто како ова. И ние го нарекуваме овој Булова израз. Тоа е навистина точно или неточно, да или не. Тоа е начин на одговарање на прашање. А во меѓувреме можете да го користите овие Булова изрази во внатрешноста на конструкции како овие, кои од Се разбира постојат услови или гранки, пословичен вилушки на патот. И тие може да се гледа само како ова, но тие исто така може да се elses поврзани со нив. И ти всушност може да има три начин вилушка во патот или четири начин вилушка на патот, со едноставно вгнездени овие работи, како што ќе видите во гребење ако веќе не сте. И како можете да го направите во C, како и. Ајде да се земе друг генералист погледнеме еден alumnist, како и, што може да предизвика поинаков пристап на овие работи вика услови. Бил Гејтс: Луѓето прават одлуки секој ден. На пример, пред да одите надвор да вид на имаат ако изјава во која се вели, дали врне дожд тогаш јас треба да се добие мојата јакна. И компјутери се неверојатни еднаш ќе одлучи оние видови на извештаи, дека тие сигурно може да се изврши тие работи на неверојатни брзина. И така компјутерска програма навистина е малку математика и некои ако извештаи каде одлуката добива направен. Дејвид Џ MALAN: Значи како што можеби знаете, тоа е луѓе како Бил Гејтс, Пол Ален, и други дека навистина започна на т.н. персонален компјутер револуција пред неколку години. Мислев дека, пред да нурне во некои administrivia, ние би се однесуваат на приказна од Албакерки, Ново Мексико музеј на природна историја и науката каде што некои од Бил Гејтс и најстарите приказни Пол Ален се раскажува како што го имаме сега денешната компјутери и Macs и многу повеќе. За ова, сепак, ние треба двајца волонтери кои имаат многу добра нарација гласови да се прочита сценариото на глас. Добро, како за во таму. Ајде до. И како за пред тука. Ајде надолу. Се земе вашата места тука. Како вие момци излезе, неколку на административни пораки. sectioning, процесот за избор на секција, ќе започне оваа Среда до петок. Повеќе за тоа оваа доаѓаат Среда во предавање. Супер делови, пак, се нешто што ние нудиме следната недела при што целата класа е поканет да учествуваат во прилично големи размери дела, еден повеќе удобен, еден помалку удобно. И ние ќе го објави детали на тоа, како и, подоцна оваа недела. Во меѓувреме делови, самите себе, ќе започне во три од курсот недела, нула индекс, што значи тоа се неколку недели надвор. Па не се грижи. Уште не сте се пропушти нешто заедно оние линии. Во меѓувреме, во меѓувреме, ако имате било какви прашања административно, е-мејл мене и Девон и Габе и Роб на оваа адреса тука. И на крај, проблемот поставени 0 е, се разбира, надвор. Можеби тоа го забележал на веб-страницата на курсот. Тоа треба да ви обезбеди со сите одговори на прашања може да има на патот за да започнете со проблемот во собата. Но, ако се најдете потреба од подадена рака, со сите средства да присуствува на работното време, Понеделник, вторник, среда, четврток на оваа недела во вечерните часови во четири јадење сали. Видите дека рачно таму за деталите каде работното време ќе биде. Сега ајде да ги исполнат нашите двајца гости тука и денес. Што е вашето име? Џеј PAUL: Џеј Павле. Дејвид Џ MALAN: Џеј Павле, убаво да ви се исполнат. ХИКАРИ: Hikari. Дејвид Џ MALAN: Hikari? ХИКАРИ: Hikari. Дејвид Џ MALAN: Hikari. Ница да ви се исполнат, како и. Џеј Павле и Hikari имаат во пред нив на овие музички стои две сценарија дека јас печатени од ова утро од Ново Мексико музеј на природна историја и наука. И она што мислев Јас би го сторила на надземни е ја придружува вашиот рецитирање на сценариото и оваа историја со некои визуелни слики, нема изненадувања. И она што го направив во однапред е prehighlight на вашата скрипта што треба да го прочитате, и она што треба да го прочитате. И ние ќе суштина само алтернативни ставови. Па тоа е многу како може да го направиле во англиски класа. Тоа е навистина принудат на публиката да веруваат во својата приказна тука. Ќе ние? Значи приказната е тука, имаме ОСНОВНИ, а почнува во Кембриџ. Џеј PAUL: Тоа беше зима 1974 година, во Кембриџ, Масачусетс каде што зимите може да биде ладно. А брада, долги коса колеџ осипување име Пол Ален беше drudging низ Харвард Квадратни, се апсорбира во своите мисли. Неговата главна преокупација во тие денови беше како да се добие неговиот пријател, Бил Гејтс, да се откажат од училиште и ќе во бизнис со него. ХИКАРИ: Двете веќе нема преку голем број на бизнис потфати заедно, со почеток во Бреговина училиште во Сиетл, каде што тие биле платени во слободен компјутер време на тестирање на ПДП-10 компјутер на локално време споделување на компанијата. Најновите план бил да се откажат од училиште и формира софтверска компанија. Ален го напушти Вашингтон Државниот универзитет. Но, во последен момент, Гејтс одлучи да се држиме со Харвард. Џеј PAUL: Тој ден, преминувањето на Харвард Плоштад, Ален забележан во јануари, 1975 прашање на Популарни Електроника со земјата запирање наслов, Првата во светот minicomputer комплет да ривал комерцијални модели. Под наслов беше слика на една мала кутија украсени со светилки и прекинувачи. Тоа беше наречен MITS Алтаир 8800. И Ален знаеше ова беше тоа што тој бил барате. ХИКАРИ: Денови на што следеше дискусија. Ален и Гејтс сфати Значењето на Алтаир. Тие разговараа често за микропроцесори и се чека да види што ќе се направи со нив. Сега имаше minicomputer комплет на на насловната страница на Популарни Електроника. Тоа очигледно немаше софтвер сепак. Тие замисли нација на програмери опаѓачки на дозволи. И така тие се нарекува, Ед Робертс, на чело на компанијата, кои тврдат дека имаат верзија на Basic Програмирање јазик речиси подготвен за Алтаир. Тие не. И Roberts мора да знае тие не. Тој е добивање на 10 повици на ден од луѓе кои имале основно речиси готов. И неговата вообичаениот одговор беше "Првиот човек кој покажува со работна ОСНОВНИ добива договорот. " Џеј PAUL: Гејтс и Ален никогаш не видел Алтаир. Тие не ни го видел Интел 8080 микропроцесор во срцето на Алтаир. Но, неколку години порано Ален го напишал програма на супер компјутер кој имитиран операцијата на претходен Intel микропроцесор. И овој пат тие ќе го прават истото. ХИКАРИ: Со Интел 8080 упатството на своја страна, Ален седна на Харвард ПДП-10 компјутер и напиша на емулатор и софтвер алатки потребни за да се направи програмирањето. Во меѓувреме Гејтс престанавме да одиме на часови и се предаде на дизајнирање на основните, користење на секој трик знаеше да го добиете големина долу 4 килобајти. Џеј PAUL: Од во Албакерки, Ед Робертс доби повик од Гејтс прашуваат за детали за тоа како Алтаир ракува специфични рутини. Никој никогаш не побара досега. И Робертс почна да се заинтересираат. ХИКАРИ: Со развојот алатки и дизајн подготвени, Гејтс и Ален напиша кодот на ПДП-10, регрутирање друго Харвард студент, Монте Davidoff, за да напишете математика рутини. По финалната вечер на програмирање, Ален се качил на авион за реализација на нивните основни да дозволи. Тој помина авионот исплива од загрижувачка. И назад во Кембриџ Гејтс е загрижувачка. Тие се тестираат своите основни и тоа работел на емулатор. Но, што ако емулатор е во ред? Џеј PAUL: Како авионот пристапи Албакерки, Ален сфати дека нивните ОСНОВНИ, сега уредно содржани на мал ролна удирани со тупаници хартија лента, ќе да е бескорисен без посебна програма, наречена подигнувач, дека ќе му каже на Алтаир како за да го прочитате хартија лента суштество хранат во телетип машина. , Го извади својот лаптоп и брзо напиша нешто надолу програма натоварувач во Собранието јазик, а потоа рачно преведе дека во 1S и 0-ти Алтаир би се разбере. ХИКАРИ: Ален очекував чиста, малку, високо технолошка компанија се кандидира од страна на мажите во деловни костуми. Па тој беше изненаден кога Робертс исполнети него на аеродромот гледа како ранчот рака. Робертс исто така беше изненаден. Кога тој падна на Харвард програмер во скапи хотели, Ален мораше да признае дека тој не може да си дозволи собата. Џеј PAUL: MITS, сама по себе, беше се наоѓа во бајат лента трговски центар. Во внатрешноста на преполни Workbench беше Алтаир натоварен со 5 килобајти на меморија и поврзан со кабел на телетип машина. Робертс и главен инженер, Бил Јејтс, чекаше очекување како Ален toggled својот натоварувач програма во Алтаир. На телетип започна стабилно, како што влечат на хартија лента преку лента читателот. Тоа траеше можеби 15 минути да се вчита на програмата. Тогаш телетип нагло печатени меморија брза, тогаш подготвен брза, и Ален почна пишување неколку тест команди. Да изненадување на сите, софтверот работел. Имаше грешки, се разбира. Но, главната работа беше тоа работел. ХИКАРИ: Подоцна, на нивниот пат кон 3,00 $ ручек во Панчо е, оса долета во прозорецот на пикап камиони и искасаа Ален на раката. Но, во тој момент ништо не би можеле да ги расипат расположението. Алтаир сега ја имаше својата Basic, Првиот комерцијален софтвер за дома компјутер, направени од страна на Пол Ален и Бил Гејтс, деловното работење како на Microsoft. Дејвид Џ MALAN: Многу благодарение на нашите две читателите. [Аплауз] Дејвид Џ MALAN: Сега имате вашиот избор, пред да заминете, на светликаво или сјај во dark-- ох, почекате една секунда, wait-- светликаво и светат во темница слон од CS50 е Ченг Гонг. ХИКАРИ: Aw, ви благодарам. Дејвид Џ MALAN: Сите право, ти благодарам многу. [Аплауз] Дејвид Џ MALAN: Значи вистинска приказна. Ова е да се каже дека сите овие машини и леснотијата со која ние ги користат сега и да ги преземат здраво за готово, навистина почна тука, само неколку чекори од овој вистински театар. И сега денес, ако не сте биле, ова е Максвел Дворкин, компјутерот науки зграда, исто така зад аголот. И на вториот кат од овој зграда не висат три страници од оригиналниот извор кодот кој Бил Гејтс и Пол Ален напиша. Всушност, ако користењето зумирате во што можете да видите не само што нивните имиња во оригинални тип, но, исто така, своите потписи дека тие украсена со неколку години назад, кога тие последно угости. Но, она што е особено привлечна за ова е тоа што е утврдено да се направи е да се напише програма која би овозможи на другите луѓе да се напише свои програми. Во тоа време сите таму беше со овој Алтаир машина направени од страна на дозволи. И сите тие се потребни беше на некој начин на што го прави лесен за хобисти и луѓето како нас во оваа просторија да всушност програма дека без да мора разбирање Асемблерски код, или машина кодот, или не дај Боже, 0-ти и 1S. Ние програмери, како и оние кои се во оваа соба, ние сакате да бидете во можност да го изразат се многу повеќе како псевдо код дури и ако тоа е малку повеќе гнида пребирливи отколку што зборуваше минатата недела. Ние не сакаме да се напише кодот како овој, кои Пол Ален и Бил Гејтс не. Ние, наместо тоа, сакате да се напише код кој изгледа малку повеќе корисник пријателски. Сега ова е јазик познат како ОСНОВНИ. И броевите на линијата постојат она што го користите едноставно брои линии на код дека сте пишување. Ние дури и не мора да се го направите тоа овие денови. Но може да се види тука како ПРИНТ "Здраво, свет" навистина ќе веројатно печати само тоа. И така што Бил и Павле беше поттикне луѓето да се напише кодот вака наместо of-- ако се погледне на компјутерски науки wall-- кодот вака. Всушност, CS50 неодамна имаа можност да се седне со професор Хари Луис во Компјутерски науки оддел, кој всушност учи Бил Гејтс пред неколку години, и стои тука пред овие три страници на извадоци. Ајде да ги разгледаме. Хари Луис: Што имаме овде е листата на почетокот на парче софтвер напишани од страна на Бил Гејтс и Пол Ален, основачите на Мајкрософт. Па го кодот е интересно од две причини. Прво на сите, тоа стана Првиот производ на Microsoft, кој беше преведувач основните програмски јазик. И второ, тоа е еден од првите обиди да се создаде преведувач па обичните луѓето би можеле да ги користат персонални компјутери. Па Бил Гејтс беше додипломски на Харвард. Почнав да предава на Харвард во 1974 година. Ова беше направено во 1975 година. Па тоа беше почетокот на неговата кариера и на почетокот на мојата кариера. Јас всушност учи Бил во се разбира во тоа време. Пол Ален не беше Харвард студент, но тој бил во средно училиште соученик на Бил Гејтс. Ако дојде и да бараат на листата, ќе всушност се најде една третина име, Црна Davidoff, кој бил соученик Гејтс тука на Харвард. OK, па тука е интересен коментар тука. Таа вели: "Во 4K да ги избришете квадратен корен но за петелки уште треба да работат. " Добро, така што тоа значи е дека постои беа два начини да се состави оваа програма. Една од нив беше да се работи на верзија на овој Алтаир компјутер кои имаа само 4K зборови меморија, 4096 зборови на меморија. Но, големото верзија имаше 8К. И така што ова вели дека е дека во 4K верзија ти мораше да избришете некои кодот да го направите да се вклопуваат. И една од работите дека ќе бидат избришани ќе биде квадратен корен рутина. Но очигледно на за захват треба уште работи, дури и кога сте составувањето надолу за само 4K верзија на компјутер. Дејвид Џ MALAN: Значи една од темите, како што ќе видиме во компјутерски науки, е идејата за дели и апстракција, и навистина стои на рамениците на луѓе кои доаѓаат пред нас, не за разлика од некои од Бил Гејтс и Пол Ален наративен тука. И она што ова значи е што денес можеме да ги преземат за готово дека работите се всушност полесно за нас да се напише код. Навистина код, како што рече во петокот, е повеќе технички познат како изворен код. И тоа е тоа англиски како синтаксата тоа е повеќе соодветна и повеќе добро дефинирани од нешто како псевдо код, за која не постои формална дефиниција. И денес она што ние ќе да се фокусираат на е изворниот код што личи ова, што Мора да се признае на прв поглед изгледа сосема криптичната. И искрено, тоа е начинот на кој повеќе естетски комплекс од основната програма е. Сите оваа програма го прави, потсетиме, е она што не кажеме? Тоа само печати "Здраво светот." А сепак се погледне во сите на нешта што треба да заврши околу која многу едноставна фраза. Но пред долго на сите овие линии и повеќе ќе направи многу подобро чувство за вас. И протокот е како што следува. Она што ни треба на располагање е да се земе код, како извор кодот кој го видоа. И ние треба нова програма да ја извршите преку. Ние треба алгоритми кои можат да конвертирате изворен код, како таков, во објектниот код, 0-ти и 1S. Со други зборови, она што ние ќе научат денес е како да го направите ова, напишете изворниот код до врвот, Поминете го како влез на посебна програма позната како компајлер, а ние си оди за да се произведе објектниот код. Што е само стилизиран начин велејќи дека ние ќе се земе нешто кој изгледа вака, го предадете во програма наречена компајлер, производство на објектниот код што изгледа вака. Значи овие се буквално моделите на 0-ти и 1S дека се разбрани од страна на Интел компјутер овие денови, дека ако толкувани од страна на процесорот, мозокот во внатрешноста на компјутерот, буквално ќе се печати, едноставно, "Здраво светот." Сега има начин повеќе 0-ти и 1S отколку што Се надевам може да биде потребно за тоа. Но, тоа е затоа што ние градиме на добра зделка на сложеност дека ние отсега може да се земе здраво за готово. Со други зборови, многу паметни луѓе ни даде многу кул алатки и моќен софтвер со кој ние сега може да направи проекти од нашите сопствени. Па ајде да започнете. Додека минатиот петок, и за Проблем Постави 0 оваа недела, ќе се игра во свет што изгледа вака. Почнувајќи од денес и за проблемот Поставете 1 следната недела, кодот го се случува да се погледне малку повеќе криптичната, но функционално е ќе бидат исти. Па известување, врвот е нула, дното е В. Искрено гребење е многу повеќе корисник пријателски и пристапен. Но, ако сега се споредуваат визуелно горе дното, таму е еден вид на 00:59 кореспонденција меѓу загатка парчиња и јазикот ние сме за да си игра со. Особено, велат, сини мозаик парче до врвот, очигледно е еквивалентно на она што клучни зборови или посебни фраза во овој јазик наречен C? ПУБЛИКАТА: printf. Дејвид Џ MALAN: printf. Тоа значи форматирана печатење. И тоа е само фенси начин на велејќи printf во C ќе биде изјава или функција кој печати нешто на екранот. Она што не го печати на екран? Што и да се каже да се внатре понуди, во загради. Значи, повторно, очигледно, има многу нешта дека треба да се задржи во умот, загради, наводници, semicolons, и сето ова. Но, сето тоа е вид на ирелевантна. Интересните готова брза за сега е дека да речеме блок во гребење е доста еквивалентно на на printf изјава во C. Во меѓувреме, жолта загатка парче до врвот, кога зелено знаме кликнато, е веројатно еквивалент на она што клучни зборови тука? ПУБЛИКАТА: Главни. Дејвид Џ MALAN: Значи главната. Можеби int, можеби неважечки. Но, главниот вид на звучи како тоа е важен и навистина е. Значи, кога зелено знаме кликнато е, пак, сложувалката парче што ја започна Целата програма на гребење. Но, ние се случува да сега почне повикувајќи дека главната, оваа функција, познат како главен. Сега во меѓувреме ние ќе генерализира овој како што следи. Ние може да се нарече велат функција. И тоа може да изгледа посебно вака. Па, она што за петелки? Ако сакаме да започнете конвертирање или преведување повеќе гребење на C, ова нешто овде очигледно само вели: "Здраво светот" засекогаш. Значи, ако се дружат овие сценарија со мачка во нула, тоа е само случува да се задржи велејќи во некој вид на цртан филм меур, "Здраво светот, Здраво светот, здраво светот ", реклама nauseum, засекогаш. Ако сакаме да се направи нешто слично во Ц, тоа се случува да се погледне малку криптичната. Но, ние може да се постигне истата резултати, како што ќе на крајот дознаете, со синтаксата вака. Одам да го користите printf, повторно, бидејќи на крајот на денот Сакам да се печати "Здраво светот." И јас сум очигледно со користење на клучен збор, која не е засекогаш. Тоа е, наместо зборот време. Но само семантички во Англиски, додека вид на укажува на некој вид на јамка или циклус. Така што се случува да биде клучниот збор дека C користи. И додека точно, зошто додека вистински ефективно значи засекогаш? Па, додека, како што наскоро ќе цениме сè повеќе и повеќе, има оваа заграда веднаш до неа каде што може да се стави Булова израз. И толку долго како што изразување е вистина, овој законик, како што е означено помеѓу овие две кадрави загради, како што ќе им се јавам, само ќе продолжи да работи повторно и повторно. Значи вистина е вистина. Така, додека вистински средства само го направите ова засекогаш. Тоа е речиси глупаво изградба да се изразат. Но нема бил засекогаш клучни зборови во C. Имаше време. И таму беше многу едноставна Булова израз како вистина. Па така ова, ќе видиме, постигнува истиот резултат. Како инаку може да се спроведе телефонска линија? Па, во гребење може да тешко код одреден број итерациите во јамка овде. И така тоа е токму она што го може да се направи во оваа верзија на C, при што имаме т.н. за телефонска линија. И за јамка тука се случува да iterate, малку cryptically, од вредност 0 на до да, но помалку од 10. Сега променливи во гребење. Вие не може да имаат прилика да ги користат овие. Но, она што е поентата, воопшто, на променливата не велиме минатата недела? Што е тоа? ПУБЛИКАТА поени. Дејвид Џ MALAN: Да се ​​истакне? Ох, посочува. Добро, следење на поени, на пример, во играта. Или поопшто прави што со променлива? Која е користа од нив? ПУБЛИКАТА: Мемориски. Дејвид Џ MALAN: Да, па меморијата. Тоа е за чување на нешто. И вид на глупо визуелни јас се користи Последен пат беше вака стаклен сад. И ако сакаме да ги чувате нешто внатрешноста на променлива, на пример во моментов на вредност е шест, бидејќи има шест пинг-понг топки тука. Тоа е само некој вид на чување сад кој под хаубата се спроведува со битови, 0-ти и 1S, Сепак компјутер се случува да го направите тоа. Значи во нула, ако се сакате да имате променлива, може да се користат портокалов блок вака. Ние ќе се јавите дека контра во конкретниов случај. Јас го иницијализира на 0. И она што јас тогаш го стори? Засекогаш, велат шалтер, што ако си играат со што во нула, само ќе ја видите на гребење. Мачка или што костимот ќе се стави на него ќе зборува број во прашање. Промена противвредност од 1 е како ја зголемува од 1. И така ова ќе смета од она па што? Од 0 сусам бесконечност, или до гребење паузи, или додека сте вид на губат интерес во гледањето колку високо тој, всушност, може да смета. Па како можеме да ги конвертираме во Ц? Тоа се случува да се погледне малку криптичната. Но, повторно, ако се погледне во секој на овие редови поединечно тие вид на постава генерално. Значи очигледно int се случува да се има некои посебно значење во C. Ќе видиме тоа повторно. Како настрана, тоа значи цел број. Па тоа само значи број. Па тоа е од типот на стаклен сад Сакам, еден кои може да се сместат броеви, не пинг-понг топчиња. И јас одам да го користат знакот за еднаквост таму за да го доделите вредност од 0. Значи тоа е сосема како збир спротивни на 0, но во C. Во меѓувреме, додека вистинските, тоа беше еквивалент, се разбира, да се засекогаш, иако тоа е малку криптичната, а потоа внатрешноста на големи загради. И можете да мислам на овие големи загради, што можете да напишете на тастатурата, како навистина да биде како искривување во овие жолта јамка блокови во гребење. Тоа опфаќа повеќе линии на код. Printf е добивање на малку страшно сега, бидејќи јас види не само цитира во загради. Но, што друго е ново синтаксички во овој пример? Има еден отсто г. И тогаш обратна коса црта n е таму. Ние не се види дека пред, дури и иако јас не се споменува. Потоа, тука е запирка. И тогаш има контра. Но ќе видиме во само момент дека ова е само стандарден начин на велејќи печати "Децимален број", цитат, unquote, некои децимален број. Но јас ќе одам да ви кажам подоцна она што децимален број е. Значи фактот дека има запирка во оваа линија велејќи printf, значи се оди напред и печатење некои децимален број. О, и од начинот на кој, бројот е без оглед на вредноста на оваа променлива е. И така да се направи ова повеќе јасно, ќе видиме еден пример пред долго вклучуваат точно printf во контекст на недвижен C програми. Сега само за да заврши некои од овие конструкции. Булова изрази, вие не би можеле да имаат прилика да ги користат овие во вашата програма Но, можеби многу добро, особено ако се користи услови. И така овие два примери од Изгребете значи ако x е помалку од y, или ако x е помалку од y и y е помалку од z, како да се преведе тоа? Па, во Ц тоа е само ќе изгледа вака. А малку криптичната, повеќе загради, некои чудни ampersands, но во основа идеите се толку едноставно како што се во загатка парче светот. Ние сме едноставно проверка ако нешто е помалку од нешто друго. Како за услови? Во мало на англиски јазик, што го прави ова парче од гребење код мислите би рекол? ПУБЛИКАТА: споредува два броја. Дејвид Џ MALAN: споредува две броеви, и ако x е помалку од y вели дека толку многу. Ако x е поголема од y се вели колку, друго ако x е еднаква на y вели дека толку многу. Сега каде x и y доаѓаат од? Кој знае. Ова парче на гребење кодот е надвор од контекст. Но, она што сакате да го направите сега е се преведе тоа за само еден момент за да ја видите. Па како што можете да се чувствуваме удобно оваа недела во Проблем Постави 0 игра во овој свет на левата страна, сфаќаат дека идеите не се менуваат оваа недела или следната или пошироко. Ние едноставно ќе се почнете со пишување работи на поинаков начин со нашите тастатура, наместо на нашите глувчето. Значи, ако x е помалку од y и има некои загради таму, тогаш има некои големи загради повторно да се вид на тоа капсулирало исто како и жолт загатка парчиња се направи. И јас одам да printf x е помалку од y и така натаму. Што е убаво за Ц, како што можете да видите овде, е тоа што вие не ја добиваат оваа гнездење, гнездење, вгнездени дека е нужно ќе им помогнам на вашиот код на правото. Вие наместо да се има сè постава уредно се допаѓа ова. Но тоа е само естетско детали ќе видиме повторно пред долго. Во ред. Така што нè враќа на овој криптичната програма во потрага. Ајде да всушност пишува некои код. Сега како да одите за пишување на код? Сите овие години дека сум во сопственост Mac или PC, десктоп или лаптоп, сте всушност имаа способност да започнете со пишување програмски код. Но ти си веројатно недостасува специјален тип на програма. Сигурно може да се напише код. Но, не можете секогаш, надвор од кутијата, конвертирате дека изворниот код во објектниот код, 0-ти и 1S без она што на вашиот компјутер? ПУБЛИКАТА: компајлерот. Дејвид Џ MALAN: Значи компајлер, нели. Сега повеќето од вас веројатно не поседуваат компајлер, никогаш не преземале компајлерот. Но ќе видите можете да го преземете како и повеќето било која друга парче софтвер. Во светот на оперативниот систем Mac OS, можеби симнете или ја преземале веќе нешто што се нарекува Xcode или GCC или ѕвекот. Ако доаѓаат од Прозорци светот може да ја преземале Visual Studio, Visual Basic, околини како што. Има десетици компајлери овие денови дека можете да го користите. Но помалку од овде е дека тоа ќе биде болка и, искрено, технолошки кошмар за стотици на луѓе со различни компјутерски конфигурации за сите конфигурирате нивните машини во токму на ист начин така што сите можеме да бидеме на истата страница. Значи она што ние, наместо тоа, го направи во CS50 е ние да ви даде стандарден средина, на Linux животната средина, кој е случува да се погледне малку нешто како ова. Ќе видите повеќе од ова во Проблемот Постави 1 спецификација која ќе одат онлајн овој петок навечер. И што значи тоа е тоа што отсега се случува да бидат во можност да преземете и инсталирате програмата наречен CS50 апаратот. И ви се случува да го симнете и инсталирате друга програма наречена хипервизорот, што е само еден фенси начин за постигнување на ова. Без разлика дали имате Mac или PC или Линукс компјутер или Соларис компјутер, или што и луди работа систем сте водење, ви се случува да симнете програма наречена хипервизорот тоа е ќе се кандидира на CS50 Апаратот на вашиот компјутер без разлика што вашиот оперативен систем е. А хипервизорот со други зборови го претвора нашите работи за кој било јазик, без оглед на упатствата на вашиот компјутер разбира. Значи ова е слоевите. И повторно, ова е вид тематски во компјутер науката, зграда на врвот на нештата. Вие би можеле да имаат на Windows. Вие би можеле да имаат Mac OS. Но, почнувајќи од следната недела ќе бидете ќе се симнат слободна парче софтвер наречена хипервизорот. Ви се случува да се симнат парче на софтвер наречен CS50 апаратот. Што се случува да се кандидира во хипервизорот, кој се случува да се кандидира на вашиот компјутер. И крајниот резултат е дека сите од нас ќе има едноставен прозорец како ова на вашиот Mac или PC кој ни дава илузија на сите работи на истиот оперативен систем, без било кој друг влијание на вашиот компјутер. И може да се цел екран тоа и во суштина се однесуваат како да се работи на оперативниот систем наречен Линукс, што е она што CS50 Апаратот се базира на. Значи, да всушност го користите овој сега да се напише програма. Може да се напише програма користење на Microsoft Word. Може да се напише програма користење на TextEdit, или Notepad, или WordPad, или доста било збор програмата за обработка некогаш сте се користи. Но, реалноста е дека не треба да го користите навистина било која од овие програми. Ти секако не треба да се користи нешто како Microsoft Word, која има храбри кои се соочува и закосени букви, и поголеми фонтови и помали фонтови, бидејќи компјутерот не се грижи за било кој од тоа. Сите компјутерот е ќе се грижат за е Англиски како инструкции напишан во C. Значи она што ние ќе направиме во на CS50 апарати е користење на програмата слободно на располагање, и тоа е пре-инсталиран во оваа апаратот, наречен Gedit. И Gedit е само супер едноставен текст едитор како TextEdit Mac OS е, како и на Windows Notepad за тоа ќе се погледне малку нешто како ова. Па да, всушност, не погледнете слајдови за тоа. Но, ајде да всушност одат во самата средина. Одам да се оди напред и да најавите, во овој другиот прозорец на мојот CS50 апарати, кои јас сум пред-инсталиран на мојот лаптоп овде. Забележете дека, како и на Windows и Mac OS, тоа е се здобија некои менија. Како Windows го става тоа таму долу, наместо на Mac OS, кој го става таму долу. Но, реалноста е дека е сите видови на истите. И тука е целата куп на софтвер. Има Dropbox. Постојат еден куп на додатоци, графички програми кои ќе користите подоцна во терминот за проблемот комплети. Има веб прелистувач изградена во така дека тоа е полноправно компјутер во внатрешноста на компјутер. Но јас ќе одам да кликнете на овој најлева бели икона тука, кој е на иконата за Gedit. И тоа ќе се отвори прозорец кој има три панели на него, на левата, на врвот еден, а на дното еден. Сега тоа е во овој врвот вистинскиот дека Одам да всушност пишува некои код. Значи, да го направите ова ,. Одам да одите на File, Save. А вие можеби никогаш нема да го виделе ова особено прозорецот пред. Но, ова е како Mac OS или Windows. Тоа е само прозорец со сите папки дека имам внатрешноста на овој компјутер. И јас одам да се спаси податотеката како hello.c. И јас одам да се оди напред и кликнете на Save. И сега забележите имам јазиче на горниот лев наречен hello.c. Па веројатно прилично запознаени дури и ако не сум користи оваа конкретна програма досега. И сега ќе одам да напишеш во тие прилично криптичната секвенца од команди што сме го виделе пред една момент. Вклучуваат, стандардни I / O.h. Повеќе за тоа наскоро. Int главната празнина, отворен кадрава заграда, затворен кадрава голема заграда. А потоа во внатрешноста на таму мислам дека е каде што имавме "Здраво светот" точка-запирка. И сега спаси. Значи ова е програма напишана во C, напишани, според тоа, во изворниот код. Но, јас не може само да ја извршите оваа програма. Јас вид на сакаат да се зголеми двојно кликнете на иконата некаде, но нема икона постои друг од изворниот код датотека. Што, пак, е процес сега дека Јас треба да ја извршите оваа датотека преку? ПУБЛИКАТА: компајлерот. Дејвид Џ MALAN: Значи компајлер. Значи во различни компјутери ќе го направите тоа на различни начини. Но, она што ние го направивме овде во на CS50 апарати, тоа е Претставникот за тоа како може да го направите тоа на многу различни системи, е јас сум едноставно ќе се извршите командата наречен направи. И да ја направат буквално ќе го направи тоа. Ме програма. Така осигурајте се се случува да се работи компајлер за мене. И името на програмата Сакам да се направи е здраво. Сега се направи е програма. И да е доволно да се паметни сфати дека ако кажам направи здраво, тоа се случува да се погледне автоматски за фајл наречен hello.c само затоа што тоа е начинот на кој се конфигурирани. Значи, кога јас сега хит Внесете тука, овој луди криптичната линија само што влегов погубен. И верувајте ми, пред долг, во рок од само неколку дена, ќе се разбере она што сите на глупости средства. Но, за сега, само знам дека го Активираните извршување на компајлерот. Со други зборови, тоа е пронајдена компајлер на мојот компјутер тоа е пре-инсталиран на CS50 апарати дека ќе го предаде на вас во Проблем Постави 1. И потоа зеде hello.c како влез, а во продукција очигледно 0-ти и 1S како излез. И стандардно она што го прави тоа е тоа спасува оние 0-ти и 1S во датотека наречена здраво. И покрај тоа што оваа синтакса не би можеле да да биде ново за вас, едноставно велејќи точка намали здраво се случува да биде значи со која јас ја извршите оваа програма. За сега и за барем неколку недели, скоро сите програми Ви го пишуваме се случува да биде во црно и бело текст прозорци. Не глувци, без кликнување, без прозорци, без икони. Ние ќе биде едноставно и се фокусира на основните идеи на почетокот пред да дојдеме до нешто повисоко ниво, на пример, како пауза игра која ние разговаравме за во првото предавање минатата недела. Значи, кога јас хит Внесете тука, тоа е еквивалент во текст само на животната средина да се зголеми двојно кликнување на иконата здраво. Што очекувате волја се случи кога јас хит Внесете тогаш? ПУБЛИКАТА: Ќе се печати "Здраво светот." Дејвид Џ MALAN: Се надевам дека тоа ќе печати "Здраво светот." И навистина го направив тоа. Сега има некои криптичната синтакса тука. Ајде да ја премотам касетата за само момент и да видиме дали можеме не може да започне inferring само со tinkering, обиде и не успеа, за тоа што се случува овде. Што ако јас се ослободи од обратна коса црта n? Сега некои од вас кои сте програмиран пред веројатно знаат веднаш она што тоа значи. Но, за оние од вас кои сте никогаш програмиран пред, барем мислам за себе она што се случува да се менуваат кога јас повторување на оваа програма? Па јас ќе одам да се врати долу на мојот малку црна и бела боја прозорец, што е прозорец во кој Јас може да собере. Одам да го прекомпајлирате здраво. Ние ќе ги видат истите криптичната низа на команди. И јас ќе одам да направите точка коса црта здраво. И сега некој, ако сакате, кој никогаш не е програмиран пред, она што може да биде различно ова време? Да. ПУБЛИКАТА: Тоа нема да запре печатење "Здраво светот." Дејвид Џ MALAN: Тоа се случува to-- жал? ПУБЛИКАТА: Тоа нема да запре печатењето тоа? Дејвид Џ MALAN: Тоа нема запре печатењето "Здраво светот." Па не е лоша идеја. Други идеи? Да. ПУБЛИКАТА: Порака за грешка? Дејвид Џ MALAN: Грешка порака, во ред, може да биде. Што друго? ПУБЛИКАТА: Тоа може да печати заградата со точка-запирка, како? Дејвид Џ MALAN: Може да испечатите заградата со точка-запирка, како и. Па можеби тоа обратна коса црта тогаш е некој вид на terminous тоа е важно. Било кој друг мисли? Така што сите добри идеи. И всушност, тоа се случува да биде порака за грешка. Тоа е веројатно, најверојатно, да биде одговор воопшто за следните неколку недели како што учиме да код овде. Но сега за сега се сеќавам дека компјутерите само го направи она што им кажете да се направи. Слично како смешно кикирики путер и желе пример. Нашите човечки компјутери беа само би требало го направи она што им рекол да се направи. Значи во овој случај, ако не кажувај на компјутер да се движат што трепка курсорот до следната линија, тоа не се случува да го направи тоа. Па кога ќе ја извршите оваа програма сега, ја забележат разликата. Изгледа како бубачка. Тоа е естетски грешки, можеби. Но она што е различно врска со овој излез наспроти последниот очигледно? Да. ПУБЛИКАТА: Тоа не се направи нова линија. Дејвид Џ MALAN: Тоа не се направи нова линија. Сега оние од вас кои имаат можеби направи веб-страници пред, може да знам од БРА таг или став таг, Многу слични во духот. А веб прелистувачот ќе ги игнорира додека ќе го кажам точно што да прави. Слично на тоа, е јазик како C само ќе го направи она што го кажам да се направи. Така од причина што сите овие примери, досега, имаат вид на повремено имаше оваа обратна коса црта таму, тоа е средство со кој ќе се изразат како нова линија карактер, така да се каже. И можете вид на може да го цениме, можеби, дека тоа ќе изгледа глупаво ако ништо друго. Ако сакав нова линија, туку само притискање Внесете а потоа вид на butchering кодот допаѓа не треба навистина ќе си ги протриеш на вистински начин. Па дури и ако не навистина се грижат во овој момент, ќе сфатите дека ова не е особено добра гледа парче од код. И така она што во светот пред одлучи години е дека кога ќе сакате да се стави на курсорот на нова линија експлицитно, можете експлицитно да кажам нова линија, обратна коса црта n. И има некои други симболи како тоа. Но сега за сега ние само ќе се фокусира на обратна коса црта n. Сега ајде да се направи програма малку поинтересна. Одам да се оди напред и да овој пат се отвори нова датотека. Одам да се спаси ова како здраво-1.в. И само за клоци, јас ќе одам да одат стави ја во Моите Dropbox папка. Како што ќе видите во CS50 документација за апаратот, подоцна оваа недела за решавање на Поставете 1, ќе се поттикне можете да го користите Dropbox или некои еквивалент услуга, затоа што тогаш сите на вашиот код на ќе биде поддржана автоматски. И така тоа е причината зошто јас сум качил во оваа папка тука. И сега ќе одам да се напише малку поинаков програма. Вклучуваат, стандардни I / O.h, int главната неважечки. А потоа тука printf, Здраво светот, која е иста како порано. Но сега сакам да се печати нешто тоа е малку различен. Сакам да се печати, се каже, "Здраво, Дејвид." Добро, па очигледно, што треба се надевам да биде случај дека ако јас повторно компајлирајте оваа програма, повторување, тоа се случува да се каже "Здраво, Дејвид." Но, што ако сакам да се воведе овој вид на променлива, поимот на контејнер што се случува за да ја запази D-а-с-и-г и не е тешко законик во мојата програма. Па што ако почнам прави нешто вакво? Стринг а, така што ова е променлива. Ако сакате стринг, a.k.a. збор или фраза. А низа на карактери е она што ние во програмирање нарекуваат низа. Ние сме само ќе да се генерички повик тоа е, поради тоа што е убаво, едноставно име. Но можев да го наречеме нешто. Одам да се каже низа на еднаквите Цитат unquote "Давид", точка-запирка. И сега сакам да се вметне Д-на-в-и-г во она што јас сум за печатење. И пред видовме закачка на на екранот на некои специјална синтакса што ни е дозволено да замена во вредност. Она што беше посебна симбол пред неколку слајдови? Значи проценти. Во тоа време тоа беше проценти г за децимален број. Тоа навистина не изгледа многу значаен тука. Излегува постои друг проценти симбол, кој е проценти s, која стои за случаеви за низа. Па сега, многу едноставно, јас сум ќе одат направи здраво-1, бидејќи оваа датотека се нарекува Здраво-1.в, и притиснете ентер. И се зафркнав. Што се случува? Па, тука е местото каде што треба да почнат да цениме дека ние сме во оваа команда линија на животната средина, овој текст само средина. Нема кликнување на иконите како папки сега. И се сетам пред една момент. Во она што папка не велам Јас бев заштеда на мојот код? Па папката Dropbox. Можеше да се нарекува поинаку. Но тоа се случува да се нарече Dropbox. Па јас некако треба да кликнете два пати на дека Dropbox папка со цел да се добие во неа и да се во мојата код наречена здраво-1.в. Всушност, дозволете ми да оди напред и да се минимизираат овој прозорец за само еден миг. Исто како Windows и Mac OS, постојат папки во Линукс. Постојат папки во CS50 апаратот. Тоа е само сега ние сме задржувањето се на овој текст животната средина. Но, ако јас кликнете два пати на Dropbox, забележително е датотеката што сакате да го компајлирате. Но ми треба овој црно и бело терминален прозорец, така да се каже. Но ми треба, според тоа, да се движат во таа папка или директориум. Толку малку мистичен, но Ќе се навикнеш на овој премногу. Во светот на Линукс, кој повторно е оперативен систем ние сме трчање во внатрешноста на CS50 Апаратот, постои команда наречен ЦД. Што значи можам да направам ЦД, простор, Dropbox. ЦД, промена директориум. Право. Назад во денот, кога луѓето биле измислување компјутери и оперативни системи како ова, тие сакаа да внесете најмалку тастатурата е можно. Па најлесен начин да се каже Промена на директориум беше на CD. Значи, ако јас хит ЦД, простор Dropbox, забележи она што се смени овде. Внатре во загради апаратот е вид мене humoring и потсетувајќи ми каде сум. Па отворената папка е Dropbox. Ако јас сега пишувате ls за листа, повторно содржаен, затоа што луѓето не сакаат да ги Назад во текот на денот л-и-с-т. Па тие наместо да направи ls. Enter. Забележете гледам две работи, здраво-1.в, а потоа овој криптичната работа, извор 1 милион. Тоа е само мојот начин на велејќи изворниот код за понеделник недела 1. Тоа е папка Јас ја преземале од Веб-страница CS50 дека сум направил порано и денес и само да го стави во апаратот однапред. Но сега за сега единственото нешто што грижат за се што оваа програма. Па кога ќе напишеш направи здраво-1, Enter. По ѓаволите. Нешто не беше во ред. Значи, да се закачам оваа разлика. И за жал ова е местото каде што работи се добие малку стресни на прв, барем ако сте никогаш програмиран порано. Боже. Напишав две линија на програмата и Имам четири линии на грешки. Значи она што се случува тука. Прво и основно секогаш движете се назад и се најде на првата порака за грешка, бидејќи многу пати компајлери само се збунети од она што и јас. Компајлери се прилично глупави. Тие само ќе го направи она што ќе им кажете да се направи. И ако ги збуни, тие се само ќе вид на фрли своите раце а можеби фрли повеќе пораки за грешки отколку што се всушност релевантни. Па ајде да погледнеме во прв план. Супер криптичната на прв. Но известување, тука е името на датотека во која се зафркнав очигледно. Дебелото црево 5, дебелото црево 5 едноставно значи на алинеја 5 на петтата карактер. Па петта колона на карактери, ако сакате, грешка. Употреба на непријавена идентификатор стринг. Дали мислевте стандард n? Не, мислев стринг. И тогаш тоа е вид на копирање и вметнување она што го напишале навистина да се подготви мојот внимание од каде се зафркнав. Па поради некоја причина Ц, или барем на компајлерот не го разбира зборот стринг. И тоа е затоа што ја измисли. Па низа не постои во C. Што CS50 прави, за првите неколку недели само на класата, е ние обезбеди некои обуки тркала, така да се каже. И ќе стави овие обука тркала во внатрешноста на посебен фајл наречен CS50.h. Значи ова е вториот од двата датотека имиња кои очигледно заврши во точка ч. Ајде да ја премотам касетата. Printf е изјава или функција што очигледно печати нешто на екранот. Но ти не ме виде спроведување printf, нели. Некој пред неколку години спроведува printf. Во она што датотека ќе ви го облог или таа се стави на имплементацијата за printf, кодот за printf? Во датотека наречена стандард I / O.h. Всушност, тоа е веројатно во две датотеки, стандард I / O.h, која се залага за насловот датотека, и стандардни I / O.c, која се залага за C изворниот код. Па тој или таа пред неколку години plopped кодот кој што го напиша во таа датотека така што луѓето како нас години подоцна може да се вклучи, така да се каже, во нашите сопствени програми. И навистина, тоа е она што на фунтата знак проследено со зборот вклучуваат прави. Изгледа на локалните хард диск, се наоѓа на фајл наречен стандард I / O.h, а потоа ефикасно копии и пасти тоа внатрешноста на мојата датотека. Па сега мојата програма знае како да се испечати на екранот. Значи со таа логика, каде што е дефинирана низа? ПУБЛИКАТА: CS50.h. Дејвид Џ MALAN: CS50.h. И навистина, тоа е она што ние, јадрото кадар, имаат направено. Ние сме измислиле неколку типови на податоци, така да се каже, како стринг, во прилог на оние што добиете бесплатно, како int. И ќе видиме други како знак за лик и уште неколку. Внатрешноста на CS50.h очигледно е барем некои споменување на стрингот. Па сега дозволете ми да оди напред и повторување направи здраво-1. Ќе зумирате повторно и премине моите прсти. Сега со тоа што го направија еден промена јас фиксна повеќето работи. Но, тоа проклето. Повеќе проценти од податоците аргументи. Што направив погрешно ова време? Така, тоа е сè уште прилично криптичната. Но оваа грешка е на алинеја 7 и карактерот 21. Па ајде да одиме погледнете тука. Тоа е малку суптилни. Но, ако мислите дека за тоа што основните идеи тука се, можеби и ние може да се закачам оваа разлика. Значи printf е името на функцијата. Загради, досега, е исто како и она што ќе стави околу работи кои се поминува како влезни параметри во функција. Добро, само произволни човечки конвенција. Користете загради. Во внатрешноста на овие загради ние сме биле ставање двојни наводници, а потоа жиците како "Здраво светот." Но, во кои претходно пример многу накратко не гледаме со гребење. И имавме проценти г, што друго беше внатре на овие загради дека јас извика вербално? Да. ПУБЛИКАТА: Значи тоа е она што сте преземање [Беззвучен] од внатре [Беззвучен] она што овие [Беззвучен]? Дејвид Џ MALAN: Токму така. Значи имавме проценти г. Но тогаш имаше блиски понуда, запирка, шанкот. Право. Ние наведени она што го сакате да се направи како на случаеви. Значи она што јас ќе одам да направите тука е запирка, што сакаш да се стави? ПУБЛИКАТА: С. Дејвид Џ MALAN: S, бидејќи во овој случај е името на сад за чување. Тоа е името на тој стаклен сад. А пред тоа беше противвредност во таа едноставна гребење пример ние погледна. Па сега ја направи две промени, дозволете ми да зумирате и да се обидат уште еднаш да се компајлирате оваа програма. Сега гледам дека криптичната линија. Но, тоа е всушност името на компајлерот. Ѕвекот е името на компајлерот. Направи е само мене заштеда главоболка на некогаш пишување дека долго луди команда надвор. Па сега ако јас не dot намали здраво-1, Јас треба да се види "Здраво, Дејвид." Прилично underwhelming, иако, нели? Ние би можеле да имаат направено ова е многу повеќе, едноставно без зборуваме за променливите и CS50.h и сето тоа. Значи, да се направи тоа малку поинтересна. Во прилог на CS50.h, има нешта како низа прогласи, библиотеката CS50 исто така има неколку функции. Пред па како години, некој напишал printf и го стави во стандард I / O.h и некои други датотека. Ние, вработените CS50, напиша функција наречен GetChar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, а ние се стави оние во внатрешноста на датотека наречен CS50.h и CS50.c. И ние ги стави внатре на CS50 апаратот. И луѓето можат, исто така, да ги преземете онлајн, ако тие сакате да ги стави на своите сопствени компјутери, како и. Кој е да се каже дека ние направивме функции кои се влез од корисникот. Јас не знам што сите на овие типови на податоци се. GetInt е вид на едноставни, како добиете број некако од страна на корисникот. И GetString е веројатно како GET еден збор или реченица од корисникот. Значи, да се фокусира на тоа. И јас ќе одам да се врати во апаратот и јас одам да се оди напред и спаси го овој фајл како, да ја наречеме тоа здраво-2.в како мојата втора верзија. И ајде да се направат неколку промени. Овој пат, наместо тешко кодирање Давид, кој го прави неверојатно конзистентни но underwhelming програма, што ако јас наместо направите GetString? Сега забележите GetString има отворена заграда, затворена заграда, бидејќи тоа не треба секој влез. Тоа е само случува да одам да купам низа од корисникот. А сега еден збор на другите синтакса. Semicolons само се стави крај на линија код. Вие не се потребни насекаде. Но, тоа само значи дека јас сум направи со оваа линија код. Дозволете ми да се движи кон друг изјава или функција. Стринг изјавува променлива. Стринг е како да кажеш ми даде една чаша, ве молам. И дозволете ми да се стави стринг со неа. И сега знак за еднаквост. Што е знак за еднаквост во суштина е еквивалентно на? ПУБЛИКАТА: Доделување. Дејвид Џ MALAN: Да, доделување на вредност. Значи, ако јас, на пример, повик оваа функција GetString, и ние ќе се види во еден момент тоа е ќе го извести корисникот за низа. Ова е како да ми овозможи да потоа напишете Д-на-в-и-г на ​​парче хартија. И кога велам низа на еднаква GetString, еднакви воопшто не значи еднакви во C програмскиот. Тоа значи додели од десната страна на левата страна. Па јас сум добил низа. И знак за еднаквост значи го стави во сад за чување наречен е. А потоа положи ова исклучување printf да всушност си ја работи својата работа. Па крајниот резултат тогаш се случува да се погледне малку различен. Ајде да го прават здраво-2. Или би можеле да работат. Следите. Направи здраво-2 работел. Dot намали здраво-2, Enter. Јас се чини дека имаат бесконечен јамка или нешто. Ништо не се случува. Зошто? ПУБЛИКАТА: Тоа е правење бесконечна јамка. Дејвид Џ MALAN: Тоа е бесконечна јамка. Тоа е вид на чекање за мене да всушност го овозможи со некои влез. Значи, дозволете ми да оди напред и напишете во Давида, и притиснете ентер. И сега што вели: "Здраво, Дејвид." Ако јас се кандидира повторно. Ајде да напишете во Роб, "Здраво, Роб." Сега ова е најлошото кориснички интерфејс било кога. Корисникот е очигледно треба да знаат што да прават. Но не е важно. Користење на истите зграда блокови, исто како во нула, може да се реши тој проблем и да каже нешто како вашето име, ве молиме, дебелото црево, простор, затворен цитат, во близина загради, точка-запирка. Толку многу повторно будалаштина со синтакса. Но забележите јас сум само додаде загатка парче над оваа а над оваа. Па сега ако јас повторување ова, здраво-2, Enter. Чекај малку. Што е проблемот? Тоа не е да се однесуваат поинаку. Да. ПУБЛИКАТА: Вие не работи направи повторно. Дејвид Џ MALAN: Не се кандидира направи повторно, нели. Па јас сменив изворниот код. Но, повторно, не е тоа проток. Изворниот код преку компајлер дава сте нов објект код, или 0-ти и 1S. Па јас треба да всушност Репризата направи здраво-2 Enter. Во ред, нешто се чини дека се случило. Dot намали здраво-2. Вашето име молам. И да биде јасно сега, зошто е курсорот на иста линија? Токму така. Јас не се стави обратна коса црта n тука во мојот код. Па сега можам да пишувам нешто како Daven, Enter. Можам да го кандидира повторно и напишете нешто како Габе, Внесете, и да добиеме поинаква програма повторно и повторно и повторно. Сега на крајот ние ќе треба да се користи неколку различни способности. Ние треба да се воведе на крајот некои услови да се прават работите условно. Можеби петелки, така што можеме да направиме работи повторно и повторно. Можеби тоа би било убаво ако ние би можеле да спроведат нашите сопствени функции, како ние би можеле да се имплементираат нашите сопствени printf или нашата сопствена верзија на GetString и GetFlow, бидејќи во крајна линија, дури и користите оваа команда линија на животната средина можеме да направиме дури и најпознатите визуелно интересни работи. Навистина во заклучокот дозволете ми да го направите тоа. Одам да одиме напред и затворете овие прозорци и отворете оваа икона тука, која е само поголеми верзија на вградените терминален прозорец. Па Gedit не само местото за мојот код, но, исто така, вграден во терминал, црно и бело прозорец каде што може да се кандидира команди. Јас едноставно се случи да се отвори поголема верзија на ова. И сега ќе одам да одат во папката каде што јас сум веќе стави во однапред на веб-страницата на курсот. И јас одам да се оди напред и да отворите датотека наречена thadgavin.c, кој беше напишан од некој друг. И ако гледаме на тоа, ова не е вид на код ние ќе се пишува од целта на овој код е да се напише најубаво во потрага кодот што тој или таа може, без оглед на тоа дали или не друго човечко суштество би можеле некогаш се разбере овој код. Навистина, секоја година има она што е нарекува криење С натпревар, кој е за реални видливо кои пишуваат кодот кој никој друг не може да прочитате, но тоа не нешто или навистина едноставна или навистина неверојатни. И ние сме мислеле дека би склучи со овој изглед на нешто што е доста неверојатно Можеби сте виделе еднаш. Но ние ќе се стави крај на овој белешка, точка црта, thadgavin. Ова тогаш е она што го чека. Тоа е тоа за CS50. Ние ќе се видиме во средата. [Музички]