David J. малая: Так што гэта CS50. І гэта было CS50 уласнай Колтон Огден, для больш аб тым, хто музыку можна спампаваць на soundcloud.com/cs50. Такім чынам, сёння мы арыентуемся тым больш па мастацтве праграмавання. І мы бярэм, дзе мы пакінулі на мінулым тыдні, засяродзіўшыся на пустым месцы, які быў у гэтым графічную мову праграмавання. І прымаць рэчы ўніз да ніжэйшага ўзроўню, выкарыстоўваючы больш традыцыйны праграмаванне мова вядомы як С. Але па шляху, разумеючы, што тыя ж ідэі мы гаварылі на мінулай пятніцы будзе паўтарацца не толькі ў гэтым на мове З, але ў большасці любой іншай што мы глядзім на гэты семестр. Так мы называлі гэтую рэч тут тое, што апошні раз? Гэта прадстаўнік заяве. Такім чынам, мы назвалі гэтую заяву. І ён робіць тое. Гэта каманда, якая кампутар або драпін можа выканаць. І надалей, давайце таксама пачаць называючы нешта падобнае функцыя, па прычынах, мы хутка ўбачым. Між тым, мы бачылі такія рэчы. І гэта, як правіла, Вядома таксама тое, што пабудаваць? АЎДЫТОРЫЯ: Loop. David J. малая: Так пятля. Так даволі простая. Яна ў літаральным сэнсе робіць тое, што ён кажа. І ў пустым, калі вы хочаце ўціснуць больш часткі галаваломкі ў там, частка будзе расці, каб адпавядаць яго. І мы ўбачым у C, што мы можам зрабіць тое ж самае. Іншы тып цыклу, тым не менш, у пустым можа быць назаўжды, ці ёсць любы лік іншых падыходаў. Але давайце больш універсалам погляд, з тварам што, хутчэй за ўсё, добра знаёмыя, на завесы ў цэлым. Марк Цукерберг: Адзін рэч, што кампутары сапраўды добра гэта паўтараючы каманды. Як чалавек, вы атрымаеце вельмі сумна, калі вас павінен быў зрабіць тое ж самае шмат разоў запар. Але кампутар можа зрабіць тое ж самае мільёны або нават мільярды раз, і не надакучае, і быць у стане аднесці тое, што сапраўды добра. Так, напрыклад, калі хацеў бы пажадаць усім на Facebook з днём нараджэння адправіўшы іх па электроннай пошце, гэта можа заняць мне больш стагоддзя на самай справе выпісаць усе гэтыя лісты на ўсіх. Але з дапамогай некалькіх радкоў кода, я магу ёсць сістэма, адпраўце ліст на ўсіх на Facebook, якія жадаюць ім З Днём Нараджэння. Дык вось што завесы і чаму яны каштоўныя і тое што кампутары могуць рабіць вельмі добра. David J. малая: Так што, калі Вы былі атрымальнік некаторых з CS50 і Прастору Dropbox ў апошні час, што на самой справе менавіта тое, што мы зрабіць, выкарыстоўваючы код зусім так. Мы па сутнасці маюць вялікі табліцы, у якую людзі былі ўводу іх імёны і адрасы электроннай пошты. І мы пісалі ледзь-ледзь кода, можа перабраць гэтыя адрасы і выплюнуў унікальныя адрасы ў выпадак, калі хто прадставіў некалькі разоў. І пасля гэтага, мы адпраўляем Аўтаматызаваная ліст ад бота CS50 ў, у тым ліку зніжкавы купон. Цяпер мы таксама глядзелі на гэта пабудаваць у мінулы раз. І гэта асабліва Прыкладам чаго? Так што, так, гэта лагічны выраз. І форма прызначана , Каб захапіць тое, як добра. Усе такія пытанні ўтвараюць сапраўдным або ілжывым ў пустым будзе выглядаць трохі нешта накшталт гэтага. І мы называем гэта лагічны выраз. ня Гэта сапраўды сапраўдным або ілжывым, так ці не. Гэта спосаб, адказваючы на ​​пытанне. І тое ж можна выкарыстоўваць гэтыя Boolean выразы ўнутры канструкцый як гэта, якая з Вядома ёсць ўмовы або філіялы, прыказак скрыжаваньняў. І яны могуць выглядаць не толькі як гэта, але яны могуць таксама ўжо Эльсес, звязаных з імі. І вы можаце на самой справе маюць тры шляхі скрыжаванне ці чатыры вілачныя ў дарозе, проста гнездавання гэтыя рэчы, як вы ўбачыце ў пустым калі вы яшчэ гэтага не зрабілі. І як вы можаце зрабіць у C, а таксама. Давайце яшчэ раз універсалам глядзець на alumnist, а таксама, хто можа прадставіць іншы падыход да гэтых рэчаў званых ўмовы. Біл Гейтс: Людзі робяць рашэння кожны дзень. Напрыклад, перш чым выйсці на вуліцу вас збольшага значыць, калі заяву, якое кажа, калі ідзе дождж, то я трэба атрымаць маю куртку. І кампутары дзіўныя, як толькі вы вырашыць тыя віды справаздачнасці, што яны могуць надзейна выконваць тыя рэчы, у неверагоднай хуткасцю. І такім чынам, кампутарная праграма сапраўды трохі матэматыкі і некаторыя калі заявы дзе Рашэнне атрымлівае зроблена. David J. малая: Так як Вы, магчыма, ведаеце, гэта было людзі, як Біл Гейтс, Пол Ален і іншыя што сапраўды стартаваў так званы персанальны кампутар Рэвалюцыя некалькі гадоў таму. Я думаў, перш чым мы паглыбімся у якой Administrivia, мы звязаны казку з Альбукерке, Нью-Мексіка музей натуральнай гісторыі і навука, дзе некаторыя з Біла Гейтса ' і раннія апавяданні Пола Алена пералічваюцца, як у нас цяпер сучасныя ПК і кампутараў Mac і многае іншае. Для гэтага, аднак, мы павінны двух добраахвотнікаў якія маюць вельмі добрыя галасы апавядання чытаць сцэнар услых. Добра, а як наконт ў там. Падымайцеся. А як наконт перад тут. Ідзем ўніз. Займіце свае месцы тут. Як вы, хлопцы прыдумалі, пара адміністрацыйных аб'яваў. секционирования, працэс аб выбары раздзел, пачнецца ў гэтым Асяроддзя па пятніцу. Больш падрабязна пра гэта ў бліжэйшую Сераду ў лекцыі. Супер секцыі, у той час, з'яўляюцца тое, што мы прапануем на наступным тыдні у выніку чаго ўвесь клас прапануецца прыняць удзел у даволі вялікіх маштабах секцыі, адна больш зручным, адзін менш камфортна. І мы аб'явім рэквізіты з гэтага, а таксама, у канцы гэтага тыдня. Між тым секцыі, самі, пачнецца у тры курсы тыдня, нулявы індэкс, што азначае тыя пару тыдняў па-за. Так, каб не хвалявацца. Вы яшчэ не прапусцілі нічога ў гэтым кірунку. Між тым у той жа час, калі вам ёсць пытанні да адміністрацыйнай, напішыце мне і Дэвон і Гейб і Роб па гэтым адрасе тут. Нарэшце, усталюйце праблема 0, вядома, з. Вы, магчыма, заўважылі яго на сайце Курсу. Варта даць вам усе адказы на пытанні у вас можа быць па шляху для Прыступаючы да працы з мноствам праблем. Але калі вы апынецеся мае патрэбу ў руку дапамогі, усімі сродкамі наведваць у працоўны час, Панядзелак, аўторак, серада, чацвер на гэтым тыдні ў вячэрні час у чатырох сталовых. Глядзіце, што URL там за звесткі, ад таго, дзе працоўны час павінна быць. Цяпер Давайце сустрэнемся наш два госця тут сёння. Як цябе завуць? JAY PAUL: Джэй Пол. David J. малая: Джэй Павел, прыемна пазнаёміцца. HIKARI: Хикари. David J. малая: Хикари? HIKARI: Хикари. David J. малая: Хикари. Прыемна пазнаёміцца, а таксама. Джэй Пол і Хикари ёсць у перад імі на гэтых музыкі стаіць у двух сцэнарыяў, якія я друкаваныя сёння раніцай ад Нью-Мексіка Музей натуральнай гісторыі і навукі. І тое, што я думаў, Я б зрабіў на накладныя выдаткі будзе суправаджаць вашу дэкламацыі сцэнарыя і гэтай гісторыі з некаторымі візуальнымі вобразамі, без нечаканасцяў. І тое, што я зрабіў у загадзя з'яўляецца prehighlight на вашым сцэнарыі тое, што вы павінны прачытаць, і тое, што вы павінны прачытаць. І мы будзем у асноўным толькі альтэрнатыўныя пункты. Так што гэта так жа, як вы, магчыма, зрабілі на ўроку ангельскай. Гэта сапраўды прымусіць аўдыторыю верыць у сваю казку тут. Пойдзем? Такім чынам, гісторыя тут, у нас ёсць BASIC, і яна пачынаецца ў Кембрыджы. JAY PAUL: Гэта была зіма 1974 года, ў Кембрыджы, штат Масачусэтс дзе зімы могуць быць лядоўнямі. Барадаты, доўгавалосы з каледжа імя Пол Ален быў drudging праз Гарвардзе Плошчу, пагружаны ў свае думкі. Яго галоўнай клопатам ў тыя дні быў, як атрымаць свайго сябра, Біл Гейтс, кінуць школу і пайсці ў бізнес з ім. HIKARI: два ўжо сышоў праз шэраг камерцыйных прадпрыемстваў разам, пачынаючы з Lakeside школа ў Сіэтле, дзе яны былі выплачаныя ў вольны час кампутара для праверыць кампутар PDP-10 у мясцовым часе абмену кампанію. Самае апошняе план быў кінуць школа і ўтвараюць кампанію праграмнага забеспячэння. Ален пакінуў Вашынгтон Дзяржаўны універсітэт. Але ў апошнюю хвіліну, Гейтс вырашылі прытрымлівацца Гарвардзе. JAY PAUL: Гэта дзень, перасякаючы Гарвард Плошчу, Ален заўважыў студзеня, 1975 пытанне аб Popular Electronics з зямлі прыпынку загалоўкам, Першы ў свеце міні-кампутар Kit каб канкурыраваць камерцыйныя мадэлі. Пад такой назвай было карціна невялікую скрынку ўпрыгожаны агнямі і перамыкачоў. Яна называлася MITS Altair 8800. І Ален ведаў, што гэта тое, што ён шукаў. HIKARI: Дні дыскусія. Ален і Гейтс зразумеў Значнасць Альтаір. Яны часта казалі аб мікрапрацэсарах і чакалі, каб убачыць, што будзе зроблена з імі. І быў камплект мінікампутараў на вечка Popular Electronics. Гэта, па-відаць не было праграмнага забеспячэння яшчэ. Яны ўяўлялі нацыю праграмісты сыходзяць па MITS. І так яны называлі Эд Робертс, Кіраўнік кампаніі, сцвярджаючы, што ёсць версія BASIC мова праграмавання амаль гатовы для Altair. Яны гэтага не зрабілі. І Робертс павінен быў ведаць, што яны не зрабілі. Ён атрымліваў 10 званкоў у дзень ад людзі, якія BASIC амаль гатовы. І яго запас адказ быў, "Першы чалавек хто з'яўляецца з працы АСНОЎНЫЯ атрымлівае кантракт ". JAY PAUL: Гейтс і Ален ніколі не бачыў Альтаір. Яны нават ніколі не бачыў Intel 8080 мікрапрацэсар у цэнтры Альтаір. Але пару гадоў таму Ален напісаў праграму на ЭВМ, што эмулируемым аперацыя папярэдняй Intel Мікрапрацэсар. І на гэты раз яны б зрабіць тое ж самае. HIKARI: З Intel 8080 кіраўніцтва на яго баку, Ален сеў Гарвардскі PDP-10 кампутар і напісаў эмулятар і праграмнае забеспячэнне інструменты, неабходныя, каб зрабіць праграмаванне. Між тым Гейтс перастаў хадзіць у класах і прысвяціў сябе да праектавання асноўных, выкарыстоўваючы кожную выкрут ён ведаў, для атрымання памеру унізе 4 кілабайта. JAY PAUL: няма ў Альбукерке, Эд Робертс атрымаў званок ад Гейтса просячы дэталяў аб тым, як Альтаір апрацоўваюцца канкрэтныя працэдуры. Ніхто не ніколі не задаваліся пытаннем, што і раней. І Робертс пачаў цікавіцца. HIKARI: З развіццём інструменты і дызайн гатовы, Гейтс і Ален напісаў Код на PDP-10, прыцягненне іншага студэнта Гарварда, Монтэ Davidoff, пісаць матэматычныя працэдуры. Пасля заключнай ноччу праграмаванне, Ален сеў у самалёт даставіць іх асноўных у MITS. Ён правёў самалёт перачакаць турбавацца. І яшчэ ў Кембрыджы Гейтс быў турбавацца. Яны правялі шэраг тэстаў на BASIC і ён працаваў на эмулятары. Але што, калі эмулятар быў няправы? JAY PAUL: Як плоскасці падышоў Альбукерке, Ален зразумеў, што іх BASIC, зараз акуратна змяшчаецца на невялікім выпадзенні перфастужкі, бы бескарысна без асобнай Праграма, якая называецца загрузнік, што скажа Альтаір хаў чытаць папяровай стужкі істота падаецца ў тэлетайпную машыны. Ён дастаў запісную кніжку і хутка накідаў ўніз праграму загрузнік на мове асэмблера, затым ўручную перакладзеныя, што ў 1 і 0 Альтаір зразумее. HIKARI: Ален чакаў чысты, трохі, высокатэхналагічнай кампаніяй ў падпарадкаванні мужчын у дзелавых касцюмах. Такім чынам, ён быў здзіўлены, калі Робертс сустрэла яго ў аэрапорце, падобны на ранча рука. Робертс быў таксама здзіўлены. Калі ён кінуў Гарвард праграміст у дарагім гатэлі, Ален павінен быў прызнацца, што ён не мог дазволіць сабе ў пакой. JAY PAUL: MITS, непасрэдна, быў размешчаны ў пыльным гандлёвым цэнтры. Усярэдзіне на мітусню варштат быў Альтаір загружалася з 5 кілабайт памяць і злучаныя кабелем да тэлетайпа машыны. Робертс і галоўны інжынер, Біл Йейтс, які з ухмылкай як Ален перамыкаецца яго загрузнік Праграма ў Altair. Тэлетайп пачаў буркатанне, як гэта выцягнуў папяровая стужка праз счытвальнік магнітнай стужцы. Спатрэбілася магчыма 15 хвілін загрузіць праграму. Тады тэлетайп рэзка надрукаваныя хуткае памяці, то гатовы хуткае, і Ален пачала друкаваць каманды некалькі выпрабаванняў. Да ўсеагульнага здзіўлення, праграмнае забеспячэнне працавала. Былі памылкі, вядома. Але галоўнае было гэта працавала. HIKARI: Пазней, на іх шляху да $ 3.00 абед у Панча, аса паляцелі у акне пікапа грузавік і кусала Ален на руцэ. Але на той момант нічога можа сапсаваць настрой. Альтаір цяпер быў свой BASIC, камерцыйны прадукт для дома кампутар, выступіў Пол Ален і Біл Гейтс, рабіць бізнэс, як Microsoft. David J. малая: Многія дзякуючы нашым двум чытачоў. [Апладысменты] David J. малая: Цяпер у вас ёсць выбар, перш чым з'ехаць, з бліскучыя або свячэнне ў dark-- о, пачакайце адну секунду, wait-- бліскучыя і свецяцца ў цемры слана ад CS50 уласнай Cheng Gong. HIKARI: Ой, дзякуй. David J. малая: Усе Добра, дзякуй вам вялікае. [Апладысменты] David J. малая: Так праўдзівая гісторыя. Гэта сведчыць аб тым, што ўсе гэтыя машыны і лёгкасць, з якой мы выкарыстоўваць іх прама цяпер, і як належнае, сапраўды пачалося тут, усяго ў некалькіх кроках з гэтага фактычнага тэатра. І вось сёння, калі вы не былі, Гэта Максвел Дворкіна, кампутар навукі будынак, Таксама за вуглом. А на другім паверсе гэтага Будынак робіць павесіць тры старонкі ад першапачатковага зыходнага кода, што Біл Гейтс і Пол Ален напісаў. На самай справе, калі выкарыстанне павелічэнні у вы можаце паглядзець не толькі іх імёны ў арыгінальны тып, але і іх подпісы, што яны ўпрыгожаны Некалькі гадоў таму, калі яны ў апошні раз наведаў. Але тое, што было асабліва пераканаўчым аб гэта тое, што яны мелі намер зрабіць было напісаць праграму, якая будзе даць магчымасць іншым людзям пісаць іх уласныя праграмы. У той час усё было з гэтая машына Альтаір зробленыя MITS. І ўсё што ім было трэба некаторы спосаб што робіць яго лёгкім для аматараў і людзей падабаецца нам у гэтым зале, каб на самой справе праграма што не абавязкова разумеючы Код Асамблея, або машына Код, ці не дай бог, 0 і 1. Мы праграмісты, як тыя, у гэтым пакоі, мы хачу быць у стане выказаць самі значна больш, як псеўда-код нават калі гэта крыху больш Ніт пераборлівыя, чым мы гаварылі на мінулым тыдні. Мы не хочам, каб напісаць такі код, які зрабіў Пол Ален і Біл Гейтс. Мы, наадварот, хочам, каб напісаць код, які выглядае крыху больш дружалюбным да карыстача. Зараз гэта мова вядомы як BASIC. І нумары радкоў ёсць тое, што вам выкарыстоўваць проста нумар радка кода што вы пішаце. Мы нават не павінны зрабіць гэтыя дні. Але вы можаце паглядзець тут як PRINT "Добры дзень, свет!" б сапраўды па-відаць, друкаваць толькі што. І так, што Біл і Пол зрабіў, даць людзям магчымасць напісаць такі код замест of-- калі вы зірніце на інфарматыка wall-- такі код. На самай справе, CS50 нядаўна мелі магчымасць сесці з прафесарам Гары Льюіс у галіне камп'ютэрных навук аддзела, які на самай справе вучылі Біла Гейтс некалькі гадоў таму, і стаіць тут да гэтыя тры старонкі вынятак. Давайце зірнем. Гары Льюіс: Что у вас тут спіс ранняй часткі праграмнага забеспячэння напісаная Білам Гейтсам і Полам Ален, заснавальнікі Microsoft. Такім чынам, код Цікава па дзвюх прычынах. Перш за ўсё, гэта стала Першы прадукт кампаніі Microsoft, які быў перакладчыкам для BASIC мова праграмавання. А па-другое, гэта было Адным з першых спроб каб стварыць інтэрпрэтатар настолькі звычайным людзі маглі выкарыстоўваць персанальныя кампутары. Так Біл Гейтс быў студэнтаў у Гарвардзе. Я пачаў выкладаць у Гарвардзе ў 1974 годзе. Гэта было зроблена ў 1975 годзе. Так было ў пачатку сваёй кар'еры і ў пачатку маёй кар'еры. Я на самой справе вучылі Біла ў Вядома ў гэты час. Пол Ален ня быў Гарвардскі студэнт, але ён быў сярэдняй школы Аднакласнік Біл Гейтс. Калі вы прыходзіце і глядзіце на спіс, вы будзеце на самой справе знайсці трэці Імя, Монтэ Davidoff, які быў аднакласнік Гейтса тут, у Гарвардзе. Такім чынам, вось цікавы каментар тут. Ён кажа: "У 4К можаце выдаляць квадратнага кораня але для завесы павінны яшчэ працаваць ". Такім чынам, што гэта азначае, што было два шляхі абагульніць дадзеную праграму. Адзін з іх быў працаваць на версіі гэтага кампутара Altair што толькі было 4K словы памяці, 4096 слоў у памяці. Але вялікі версія была 8K. І што гэта кажа, што ў версіі 4K Вы павінны былі выдаліць некаторыя Код, каб зрабіць яго патрэбным. І адна з рэчаў, , Які будзе выдаленая будзе квадратны корань руціна. Але, відаць, для завесы павінны яшчэ працаваць нават тады, калі вы збіраеце ўніз на працягу толькі версіі 4K кампутара. David J. малая: Так адна з тым, як мы ўбачым у інфарматыцы, гэта паняцце напластаванне і абстракцыя, і сапраўды стаяў на плячах з людзей, якія прыйшлі перад намі, а не у адрозненне ад некаторых з Біла Гейтса і Пол Ален апавяданне тут. І што гэта азначае, што сёння мы можам прыняць для разумеюцца, што рэчы на ​​самай справе нам лягчэй пісаць код. Сапраўды код, як мы ўжо казалі ў пятніцу, з'яўляецца больш тэхнічна вядомы як зыходны код. І гэта гэты англійская падобны сінтаксіс гэта больш, уласна, і больш выразна вызначаны чым нешта накшталт псеўда-код, для якія няма фармальнае вызначэнне. І сёння тое, што мы збіраемся засяродзіцца на зыходны код што выглядае так, што па агульным прызнанні, на першы погляд выглядае зусім загадкавым. І, шчыра кажучы, гэта шлях больш эстэтычна складаней, чым асноўная праграма. Усё гэта робіць праграма, нагадаем, што мы гаварылі? Гэта проста друкуе "прывітанне свет". І ўсё ж глядзець на ўсе рэчы, мы павінны каб абгарнуць вакол гэтага вельмі просты фразе. Але неўзабаве ўсё гэтыя лініі і больш зробіць значна лепш для вас сэнс. І паток складаецца ў наступным. Што нам трэба ў нашым распараджэнні гэта ўзяць код, як крыніцы Код, які мы толькі што бачылі. І нам патрэбна новая праграма запусціць яго праз. Мы павінны алгарытмаў, якія могуць канвертаваць зыходны код, як гэта, ў аб'ектны код, 0 і 1. Іншымі словамі, тое, што мы збіраемся, каб даведацца сёння ў тым, як гэта зрабіць, напісаць зыходны код да верхняй, перадаць яго ў якасці ўкладу ў спецыяльны Праграма называецца кампілятарам, і мы збіраемся вырабляць аб'ектны код. Якія гэта проста мудрагелісты спосаб кажу, што мы будзем прымаць тое што выглядае так, перадаць яго у праграме пад назвай кампілятар, вырабляць аб'ектны код які выглядае наступным чынам. Так што гэта літаральна патэрны 0 і 1 , Якія разумеюць Кампутар Intel у гэтыя дні, што калі інтэрпрэтаваць з дапамогай ЦПУ, мазгі ўнутры кампутара, літаральна раздрукаваць, папросту кажучы, "прывітанне свет". Зараз ёсць спосаб больш 0 і 1, чым вы хацеў бы спадзявацца, можа быць неабходна для гэтага. Але гэта таму, што мы будуем на добрую здзелку складанасці што мы можам надалей прымаць як належнае. Іншымі словамі, шмат разумных людзей далі нам шмат цікавых інструментаў і магутнае праграмнае забеспячэнне, з якім мы цяпер можа зрабіць праекты самастойна. Так што давайце пачнем. У той час як у мінулую пятніцу, і для задачы Набор 0 на гэтым тыдні, вы будзеце гуляць у Свет, які выглядае наступным чынам. Пачынаючы з сённяшняга дня і для задачы Усталюйце 1 на наступным тыдні, код будзе выглядаць трохі больш загадкавым, але функцыянальна з'яўляецца будзе тое ж самае. Так апавяшчэнне, верх драпін, Дно С. Адкрыта драпін нашмат больш карыстальнік зручнай і даступнай. Але калі цяпер вы параўнайце візуальна зверху знізу, там, здаецца, 12:59 адпаведнасць паміж галаваломкі і мова мы збіраемся гуляць. У прыватнасці, кажуць, сіні паззл наверсе, па-відаць, адпавядае таму, што ключавое слова або спецыяльная фраза на гэтай мове называецца C? АЎДЫТОРЫЯ: Printf. David J. малая: Printf. Гэта азначае, што адфарматаваны друк. І гэта толькі фантазіі спосаб сказаць Printf ў C будзе заяву або функцыю , Якая друкуе то на экран. Што гэта друкаваць на экране? Што б вы ні сказаць яму, каб унутры катыровак, усярэдзіне дужкі. Такім чынам, яшчэ раз, па агульным прызнанні, ёсць шмат рэчаў, што вы павінны мець на ўвазе ,, дужкі, двукоссе, кропка з коскі, і ўсё гэта. Але ўсё, што з'яўляецца свайго роду з да справы. Цікава вынас зараз з'яўляецца тое, што скажам блок у пустым у значнай ступені эквівалентна Е заяву на C. Між тым, жоўты кавалак галаваломкі наверсе, калі зялёны сцяг націснуў, , Верагодна, роўная да таго, што ключавое слова тут? АЎДЫТОРЫЯ: Галоўная. David J. малая: Так галоўны. Можа быць, INT, можа быць, несапраўднымі. Але асноўным выглядам паходзіць важна, і гэта сапраўды так. Таму, калі зялёны сцяг націснуў , Зноў жа, паззл што стартуе Уся праграма драпін. Але мы збіраемся цяпер пачаць называць што галоўны, гэтая функцыя вядомая як галоўная. Цяпер той жа час мы будзем абагульніць гэта наступным чынам. Мы маглі б назваць сказаць функцыю. І гэта магло б выглядаць спецыяльна, як гэта. Ну, наконт завес? Калі мы хочам, каб пачаць пераўтварэнні або пераклад больш у пустым С, гэтая рэч тут, відаць проста кажа "прывітанне свет" назаўжды. Так што калі ў вас асацыюецца гэта скрыпты з коткай ў пустым, гэта проста будзе працягваць казаць у якой мультфільм бурбалка, "Прывітанне свет, прывітанне свет, прывітанне свет, "да млоснасці, назаўжды. Калі мы хочам зрабіць нешта падобнае ў C, гэта будзе выглядаць трохі загадкавым. Але мы можам дасягнуць таго ж прыводзіць, як мы будзем у канчатковым выніку высветліць, з сінтаксісам, як гэта. Я збіраюся зноў выкарыстоўваць Printf, таму што ў канцы дня Я хачу надрукаваць "прывітанне свет". І я па-відаць, з дапамогай Ключавое слова, якое не назаўжды. Гэта замест таго, каб слова ў той час. Але толькі семантычна ў Англійская, у той час як выгляд мяркуе нейкі цыкл або цыкл. Так што, аказваецца, Ключавое слова, якое выкарыстоўвае C. І ў той час як дакладна, чаму час праўда фактычна азначаць назаўжды? Ну, у той час як, як мы будзем у бліжэйшы час шанаваць усё больш, мае гэты дужках побач з ім дзе вы можаце змясціць лагічны выраз. І пакуль што выраз праўдзіва, гэты код, як пазначана паміж гэтымі двума Фігурныя дужкі, як мы іх называем, проста працягваць працаваць зноў і зноў. Так дакладна, то дакладна. Такім чынам, хоць сапраўдных сродкаў толькі зрабіць гэта назаўжды. Гэта амаль па-дурному пабудаваць, каб выказаць сябе. Але не было ніякага назаўжды Ключавое слова ў С. Быў у той час. І там быў вельмі просты Лагічнае выраз, як праўда. І такім чынам, гэта, мы ўбачым, дасягае таго ж выніку. Як яшчэ вы маглі б рэалізаваць цыкл? Ну, у пустым Вы маглі б цяжка код вызначаны лік ітэрацый у цыкле тут. І так, што менавіта тое, што мы маглі б зрабіць у гэтай версіі C, у выніку чаго мы маем так званы цыкл. І цыкл тут збіраецца для перабору, некалькі загадкава, ад значэння 0 на уверх , Але меншай, чым 10. Зараз зменныя ў пустым месцы. Вы, магчыма, не было нагода выкарыстоўваць гэта. Але які ў гэтым сэнс, увогуле, зменнай мы гаварылі на мінулым тыдні? Што гэта? Аўдыторыя: акуляры. David J. малая: Каб паказаць? О, паказвае. ОК, адсочванне кропак, Напрыклад, у гульні. Ці ў больш агульным рабіць што з зменнай? Што ўтыліта з іх? АЎДЫТОРЫЯ: Памяць. David J. малая: Так, так памяці. Гэта для захоўвання то. І быццам дурной візуальнага I выкарыстоўваецца Апошні раз гэта было, як гэты шкляны шар. І калі б мы хацелі, каб захаваць то ўнутры зменнай, напрыклад зараз значэнне шэсць, таму што шэсць пінг-понг шары ў тут. Гэта проста свайго роду сховішча кантэйнер, які пад капотам рэалізуецца з бітамі, 0 і 1, Аднак кампутар адбываецца, каб зрабіць гэта. Такім чынам, у пустым, калі мы хочаце мець зменную, мы можам выкарыстоўваць аранжавы блок, як гэта. Мы назавем гэтую лічыльнік у гэтым канкрэтным выпадку. Я ініцыялізацыі яго ў 0. А што гэта я тады рабіць? Назаўсёды, кажуць лічыльнік, які, калі Вы гуляеце з, што ў пустым, Вы ўбачыце толькі драпіна. Котка ці што касцюм вы апранаеце ён будзе казаць колькасць ў пытанні. Змена лічыльніка на 1 як якія павялічваюцца на 1. І так гэта будзе разлічваць з якой і што? Ад 0 Сезам бясконцасці, або да скрыжавалі перапынкаў, або да вас свайго роду губляюць цікавасць у праглядзе як высока ён можа на самай справе разлічваць. Так як мы можам пераўтварыць гэта ў C? Гэта будзе выглядаць трохі загадкавым. Але зноў жа, калі вы паглядзіце на кожны гэтых радкоў індывідуальна яны накшталт чарзе наогул. Такім чынам, відавочна дзесятковага збіраецца ёсць адмысловае значэнне ў C. Мы ўбачым, што зноў. Як у баку гэта азначае цэлае. Дык гэта проста азначае колькасць. Дык вось тып шкляны шар я хачу, адзін , Якія могуць захоўваць колькасці, ня пінг-понг шары. І я збіраюся выкарыстоўваць знак роўнасці ёсць прысвоіць яму значэнне 0. Дык вось зусім як набор лічыльнік у 0, але ў С. Між тым, у той час як дакладна, што было эквівалентныя, вядома, заўсёды, хоць гэта можа здацца загадкавым, а затым ўнутры фігурных дужак. І вы можаце думаць аб гэтых фігурных дужках, якія вы можаце набраць на клавіятуры, як сапраўды быць як крывізны ў гэтыя жоўтыя блокі завес ў пустым месцы. Яна ахоплівае некалькі радкоў кода. Printf становіцца трохі страшна, таму што я гл не толькі цытуе ў дужках. Але што ж тут новага сінтаксічна ў гэтым прыкладзе? Там у адсотка г. А потым зваротны слеш н ёсць. Мы бачым, што і раней, нават хоць я не згадваў пра гэта. Тады ёсць коска. А тут яшчэ лічыльнік. Але мы ўбачым толькі праз момант, што гэта ўсяго толькі стандартны спосаб сказаць раздрукаваць "Дзесятковы лік," цытата, канец цытаты, некаторыя дзесятковы лік. Але я збіраюся расказаць вам пазней што гэта дзесятковы лік з'яўляецца. Так на тое, што ёсць коска У гэтым радку прымаўка Printf, азначае ісці наперад і друк некаторыя дзесятковы лік. Так, і дарэчы, гэта лік незалежна ад значэння гэтай зменнай. І так, каб зрабіць гэта больш ясна, мы ўбачым прыклад неўзабаве з удзелам менавіта Е ў кантэксце рэальнага C праграм. Цяпер проста абгарнуць некаторыя з гэтых канструкцый. Лагічныя выразы, вы не маглі б нагода выкарыстоўваць іх у вашай праграме але вы маглі б вельмі добра, асабліва пры выкарыстанні умоў. І вось гэтыя два прыклады з Драпіны значыць, калі х менш у, або, калі х менш у і ў менш чым г, як мы маглі б перавесці гэта? Ну, у C гэта проста будзе выглядаць вось так. Трохі загадкавыя, больш дужкі, некаторыя дзіўныя Ампэрсанд, але прынцыпова ідэі так проста, як яны у паззл свеце. Мы проста праверка, калі што менш чым-то яшчэ. Як наконт умоў? У двух словах на англійскай мове, што робіць гэта кавалак драпін кода ў б вы сказалі? АЎДЫТОРЫЯ: Параўноўвае два ліку. David J. малая: Параўноўвае два лічбы, і калі х менш, чым у ён кажа, як шмат. Калі х больш, чым у ён кажа, як шмат, яшчэ калі х роўны у ён кажа, як шмат. А дзе ж х і ў ўзялося? Хто ведае. Гэта кавалак нуля код з кантэксту. Але тое, што мы хочам зараз зрабіць, гэта перавесці гэта на імгненне, каб убачыць. Так як вы асвоіцеся На гэтым тыдні ў задачы Набор 0 гуляць у гэтым свеце злева, рэалізаваць што ідэі не мяняецца На гэтым тыдні або ў наступным, так i за яе межамі. Мы проста збіраемся пачаць пісаць рэчы па-іншаму, з нашымі клавіятура замест нашага мышы. Такім чынам, калі х менш у, ёсць некаторыя дужкі там, то ёсць некаторыя фігурныя дужкі яшчэ раз, каб выгляд аформіць яго як жоўтыя кавалачкі галаваломкі рабіць. І я збіраюся Е х менш, чым у і так далей. Што прыемна аб З, як вы можаце бачыць тут, з'яўляецца тое, што вы не атрымаеце гэтую ўкладзенасці, гнездавання, гняздуецца, што гэта абавязкова будзе штурхаць свой код справа. Замест гэтага, вы можаце ёсць усё, Мадэльны шэраг акуратна падабаецца. Але гэта толькі эстэтычная падрабязна мы ўбачым зноў у бліжэйшы час. Добра. Так што вяртае нас да гэта загадкавае гледзячы праграма. Давайце на самай справе напісаць код. Зараз, як вы ідзяце па нагоды напісання кода? Усе гэтыя гады, што вы валодалі Mac ці PC, настольны кампутар або наўтбук, вы на самой справе мелі магчымасць , Каб пачаць пісаць праграмны код. Але вы, верагодна, адсутнічае спецыяльны тып праграмы. Можна, вядома, напісаць код. Але вы не можаце абавязкова, з скрынкі, канвертаваць гэты зыходны код ў аб'ектны код, 0 і 1 без чаго на кампутары? АЎДЫТОРЫЯ: Кампілятар. David J. малая: Так кампілятар, права. Цяпер большасць з вас, верагодна, не валодаюць кампілятар, ніколі не запампаваў кампілятар. Але вы ўбачыце, вы можаце спампаваць яго як і большасць любой іншай частцы праграмнага забеспячэння. У свеце Mac OS, вы маглі б спампаваць ці спампавалі ўжо тое, што называецца Xcode або GCC або Clang. Калі вы прыехалі з Вокны свет вы маглі б спампавалі Visual Studio, Visual Basic, серада, як, што. Там у дзясяткі кампілятараў у гэтыя дні, што вы маглі б выкарыстоўваць. Але за выключэннем гэтага тут тое, што гэта будзе боль і, шчыра кажучы, тэхналагічнае кашмар для сотняў людзей з рознымі кампутарныя канфігурацыі ўсім наладзіць свае машыны у дакладнасці гэтак жа, так што мы ўсе можам быць на той жа старонцы. Такім чынам, што мы, замест таго, каб, зрабіць у CS50 з'яўляецца мы вам стандартны серада, Linux сераду гэта будзе выглядаць трохі как то так. Вы ўбачыце больш з гэтага ў Задача Set 1 спецыфікацыя, якая будзе выходзіць у інтэрнэт у гэтую пятніцу ноччу. І што гэта значыць з'яўляецца тое, што вы і надалей збіраюцца, каб мець магчымасць спампаваць і ўсталяваць праграму называецца CS50 Appliance. І вы збіраецеся спампаваць і ўсталяваць іншую праграму пад назвай гіпервізара, які з'яўляецца проста мудрагелісты спосаб дасягнення гэтай мэты. Валодаеце Ці вы Mac або ПК, або Linux, кампутар або кампутар Solaris, або што з розуму аперацыйнай Сістэма вы працуеце, Вы збіраецеся спампаваць праграму называецца гіпервізара Гэта збіраецца запусціць CS50 Appliance на кампутары незалежна ад таго, што ваша аперацыйная сістэма. Гіпервізара іншымі словамі пераўтворыць наш матэрыял у любой мове, усе ўказанням вашага уласны кампутар разумее. Так што гэта напластаванне. І зноў жа, гэта свайго роду з тэматыкі ў кампутары навука, будынак на вяршыні рэчы. Вы, магчыма, Windows. Вы, магчыма, Mac OS. Але пачынаючы з наступнага тыдня вы збіраецца спампавалі бясплатны кавалак праграмнага забеспячэння называецца гіпервізара. Вы збіраецеся спампавалі кавалак праграмнага забеспячэння называецца CS50 Appliance. Гэта збіраецца запусціць у гіпервізара, , Якая збіраецца працаваць на вашым кампутары. І канчатковы вынік што ўсе мы будзем ёсць простае акно, як гэта на Mac або ПК што дае нам ілюзію ўсё пад кіраваннем той жа аперацыйнай сістэмы, без любы іншы Ўплыў на вашым кампутары. І вы можаце поўны экран гэта і па сутнасці вядуць сябе як быццам вы працуеце аперацыйная сістэма называецца Linux, што і CS50 Appliance заснаваны на. Такім чынам, давайце рэальна выкарыстоўваць гэты Зараз, каб напісаць праграму. Вы можаце напісаць праграму выкарыстоўваючы Microsoft Word. Вы можаце напісаць праграму выкарыстоўваючы TextEdit, або Нататнік, ці WordPad, або ў значнай ступені любое слова Праграма апрацоўкі вы заўсёды выкарыстоўвалі. Але рэальнасць такая, што вы не павінны выкарыстоўваць сапраўды любы з гэтых праграм. Вы, вядома, не варта выкарыстоўваць нешта накшталт Microsoft Word, які мае смелы абліцоўванне і курсіў, і буйныя шрыфты і невялікія шрыфты, таму што кампутар не клапаціцца аб адным з гэтага. Усё, што кампутар будзе клапаціцца аб тым, Англійская як інструкцыі, напісаныя на C. Так што мы будзем рабіць ўнутры з CS50 Appliance будзе выкарыстоўваць праграму свабодна даступныя, і гэта папярэдне ўстаноўлены ў гэтым прыбор, званы Gedit. І Gedit гэта проста супер проста тэкставы рэдактар, як TextEdit Mac OS ў, як Нататнік Windows, што адбываецца ў выглядаць трохі нешта накшталт гэтага. Так давайце на самай справе не глядзець на слайды гэта. Але давайце на самай справе ісці ў сама асяроддзе. Я збіраюся ісці наперад і увайсці, у гэтай другой акне, да майго CS50 Appliance, які я папярэдне ўстаноўлена на маім ноўтбуку тут. Звярніце ўвагу, што, як Windows, і Mac OS, ён атрымаў некаторыя меню. Падобна Windows яна ставіць гэта там, а не з Mac OS, якая ставіць яго там. Але рэальнасць такая, што гэта ўсе віды і тое ж. І тут цэлы куча праграмнага забеспячэння. Там у Dropbox. Там цэлая куча аксесуараў, графічныя праграмы, якія мы будзем выкарыстоўваць пазней у перспектыве для праблемных набораў. Там у вэб-браўзэр, пабудаваны ў так што гэта паўнавартасны кампутар ўнутры кампутара. Але я збіраюся націсніце гэты Крайняя левая белы значок тут, які з'яўляецца іконай для Gedit. І ён збіраецца адкрыць акно , Які мае тры панэлі да яго, левы, верхні і ніжні. Зараз гэта ў гэтым верхнім правым аднаго, што Я збіраюся на самай справе напісаць код. Так давайце зробім гэта,. Я збіраюся пайсці ў Файл, Захаваць. І вы, магчыма, ніколі ўжо бачылі гэта спецыфічнае акно, перш чым. Але гэта, як Mac OS або Windows. Гэта проста акно з усімі тэчкамі што ў мяне ўнутры гэтага кампутара. І я іду, каб выратаваць файл як hello.c. І я пайду наперад і націсніце кнопку Захаваць. А цяпер звярніце ўвагу, я ёсць укладка ў левым верхнім куце называецца hello.c. Так, верагодна, даволі знаёмыя, нават калі вы не перад выкарыстаннем гэтай праграмы. А цяпер я збіраюся ўвесці ў тых даволі загадкавым паслядоўнасць каманд што мы бачылі некалькі хвілін таму. Уключыце, стандарт I / O.h. Яшчэ на што ў бліжэйшы час. Int асноўны несапраўднымі, адкрытая фігурная дужка, зачыненыя фігурную дужку. А потым ўнутры там, я думаю, дзе ў нас быў "прывітанне свет", кропку з коскі. І цяпер выратаваць. Так што гэта праграма, напісаная на C, напісана, такім чынам, у зыходным кодзе. Але я не магу проста запусціць гэтую праграму. Я як бы хачу падвоіць націсніце на абразок дзе, але значок не існуе іншай чым файл зыходнага кода. Што, зноў жа, гэта працэс цяпер, Мне трэба запусціць гэты файл праз? АЎДЫТОРЫЯ: Кампілятар. David J. малая: Так кампілятар. Такім чынам, у розных кампутарах рабіць гэта па-рознаму. Але тое, што мы зрабілі тут, у CS50 Appliance вось Прадстаўнік, як вы маглі б рабіць гэта на розных сістэмах, з'яўляецца Я проста збіраюся выканаць каманду пад назвай марка. І зрабіць літаральна збіраюся гэтага рабіць. Зрабі мяне праграма. Так што будзе запусціць кампілятар для мяне. І назва праграмы Я хачу зрабіць гэта прывітанне. Цяпер зрабіць гэта праграма. І зрабіць дастаткова разумны разумею, што калі я скажу, зрабіць прывітанне, гэта збіраецца аўтаматычна шукаць для файлавай называецца hello.c проста таму што гэта спосаб ён настроены. Таму, калі я цяпер трапіў Калі ласка, увядзіце тут, у гэтым з розуму загадкавая лінія толькі што выкананы. І паверце мне, перш чым доўга, на працягу ўсяго дня, вы зразумееце, што ўсе з гэтага трызнення сродкаў. Але цяпер, проста ведаю, што рабіць запуск выканання кампілятара. Іншымі словамі, было ўстаноўлена, кампілятар на маім кампутары вось папярэдне ўстаноўлена на CS50 Appliance што мы будзем здаваць вам ў задачы 1-м сэце. І гэта тады ўзяў hello.c як ўваход, і вырабляецца па-відаць, 0 і 1 на выхадзе. І па змаўчанні, што ён робіць гэта эканоміць гэтыя 0 і 1 у файле з імем прывітанне. І хоць гэты сінтаксіс занадта моцы быць для вас у навінку, проста сказаўшы кропку слэш прывітанне будзе сродкі, якімі я запусціць гэтую праграму. Цяпер і на працягу па меншай меры некалькіх тыдняў, амаль усе праграмы пішам збіраецеся быць у чорна-белыя тэкставыя акна. Няма за мыш, не пстрычка, няма вокнаў, ні абразы. Мы збіраемся трымаць яго проста і засяродзіцца на асноўных ідэй першапачаткова перш чым мы атрымаем у той вышэй за ўзровень, напрыклад, як вырвацца з гульні, што мы гаварылі аб ў першай лекцыі на мінулым тыдні. Таму, калі я ударыў Калі ласка, увядзіце сюды, гэта эквівалент у тэксце толькі навакольнага падвоіць націснуўшы значок пад назвай прывітанне. Што вы чакаеце волю адбудзецца, калі я ударыў Калі ласка, увядзіце то? АЎДЫТОРЫЯ: Гэта будзе друкаваць "прывітанне свет". David J. малая: Спадзяюся ён будзе друкаваць "прывітанне свет". І гэта сапраўды так і зрабіў. Цяпер там было некаторы загадкавы сінтаксіс тут. Давайце назад усяго за момант і паглядзець, калі мы не можа пачаць вывядзенне проста майстраваць, імкнучыся зразумець і ня, адносна таго, што тут адбываецца. Што рабіць, калі я пазбавіцца ад зваротнай касой п? Цяпер некаторыя з вас, якія запраграмаваныя перш, верагодна, імгненна даведацца, што гэта значыць. Але для тых з вас, якія ніколі не праграмавалі, па меншай меры, думаеце пра сябе, што адбываецца змяніць, калі я паўторна гэтую праграму? Так што я збіраюся вярнуцца ўніз да майго маленькія чорныя і белыя вокны, якія гэта акно, у якім Я магу скласці гэты. Я збіраюся перакампіляваць прывітанне. Мы збіраемся, каб убачыць тое ж самае загадкавымі паслядоўнасць каманд. І я збіраюся зрабіць кропкавы слэш прывітанне. А зараз хто, калі б Вы, хто ніколі не праграмавалі, што можа быць у гэты раз? Так. АЎДЫТОРЫЯ: Гэта не спыніць друк "прывітанне свет". David J. малая: Гэта будзе to-- шкада? АЎДЫТОРЫЯ: Гэта не спыніць яго друку? David J. малая: Ён не будзе спыніць друк "прывітанне свет". Так не дрэнная ідэя. Іншыя ідэі? Так. АЎДЫТОРЫЯ: Паведамленне пра памылку? David J. малая: Памылка паведамленне, ОК, можа быць. Што яшчэ? АЎДЫТОРЫЯ: Гэта можа друкаваць Кранштэйн з коскі, а? David J. малая: Можа друкаваць Кранштэйн з коскі, а. Таму, магчыма, што зваротны слеш то некаторыя выгляд terminous гэта важна. Любыя іншыя думкі? Так што ўсе добрыя ідэі. І на самай справе, гэта будзе каб быць паведамленне пра памылку. Гэта, напэўна, хутчэй за ўсё, каб быць адказам у цэлым на працягу наступных некалькіх тыдняў як мы вучымся кадзіраваць тут. Але цяпер памятаю, што кампутары толькі рабіць тое, што вы кажаце ім рабіць. Многае, як смешны арахіса алей і прыклад жэле. Нашы чалавечыя кампутары, як толькі меркавалася рабіць тое, што вы сказалі ім рабіць. Такім чынам, у гэтым выпадку, калі вы не кажыце кампутар перамясціць той перарывісты курсор на Наступная радок, ён не збіраецца гэтага рабіць. Таму, калі я запусціць гэтую праграму Зараз, звярніце ўвагу на розніцу. Падобна на памылку. Гэта эстэтычнае памылка, магчыма. Але тое, што адрозніваецца пра гэта Выхад у адносінах да апошняй, відавочна? Так. АЎДЫТОРЫЯ: Гэта не зрабіць новую лінію. David J. малая: Гэта не зрабіць новую лінію. Зараз тыя з вас, хто ёсць магчыма, зробленыя вэб-старонак раней, вы, магчыма, ведаеце з BR тэгі або пункт тэг, вельмі блізкія па духу. Вэб-браўзэр не будзе ігнараваць вас да вы паведаміце яму, што рабіць. Аналагічна, гэта мова, як C толькі збіраюся рабіць тое, што вы скажаце ёй зрабіць. Так той прычыне, што ўсіх гэтых прыкладах, да гэтага часу, ёсць выгляд выпадкова быў гэты зваротны слэш там, гэта сродкі , З дапамогай якога вы выказвае сябе як сімвал новага радка, так бы мовіць. І вы можаце збольшага ацаніць, магчыма, што гэта будзе выглядаць збольшага па-дурному калі нічога іншага. Калі б я хацеў новую лінію, проста Націск Enter, а затым выгляд з раздзелкі код накшталт гэтага не павінны сапраўды руб вам правільны шлях. І нават калі вы не хвалюе ў дадзены момант, Вы зразумееце, што гэта не з'яўляецца асабліва прыгожы кавалак кода. І так, што свет вырашылі гадоў таму што, калі вы хочаце паставіць курсор на новую радок відавочна, вы павінны відавочна сказаць Новая лінія, касая рыса н. І ёсць некаторыя іншыя сімвалы, як, што. Але зараз мы проста засяродзіцца на адваротным касой п. Зараз давайце зробім праграму крыху больш цікавым. Я збіраюся ісці наперад і на гэты раз адкрые новы файл. Я іду, каб выратаваць гэта як прывітанне-1.c. І толькі для удараў, я збіраюся пайсці пакласці яго ў маёй тэчцы Dropbox. Як вы ўбачыце ў CS50 дакументацыя для прылады, ў канцы гэтага тыдня для задачы Усталюйце 1, мы будзем заахвочваць выкарыстоўваць Dropbox або некаторыя эквівалент служба, таму што тады ўсё вашага кода будзе падмацавана аўтаматычна. І так вось чаму ў мяне ёсць пайшоў у гэтую тэчку тут. А цяпер я збіраюся напісаць трохі адрозніваецца праграма. Уключыце, стандарт I / O.h, тап_п несапраўднымі. А потым тут Е, прывітанне свет, што сапраўды гэтак жа, як і раней. Але зараз я хачу, каб надрукаваць то гэта крыху адрозніваецца. Я хачу, каб раздрукаваць, сказаць, "Прывітанне, Дэвід." Добра, так што, відавочна, трэба спадзявацца, быць так, што калі я перакампіляваць гэтая праграма, запусціце яго, ён збіраецца сказаць "Прывітанне, Дэвід." Але што, калі я хачу прадставіць гэты від зменнай, Паняцце ёмістасці, адбываецца для захоўвання D - V-я-д, а не цяжка код яго у маёй праграме. Ну што рабіць, калі я пачынаю рабіць што-нешта накшталт гэтага? Радок з, так што гэта зменная. Калі вы хочаце радок, таксама вядомае, як слова або фразу. Паслядоўнасць знакаў, што мы ў праграмаванні называюць радок. Мы толькі збіраемся ў агульным выкліку гэта з, таму што гэта добры простае імя. Але я мог называць яго інакш. Я збіраюся сказаць, роўных радок з цытата канец цытаты: "Давід," кропка з коскі. А цяпер я хачу, каб ўставіць D - V-я-д у тое, што я друк. І перш, чым мы бачылі тізер на экран спецыяльны сінтаксіс што дазволіла нам заменай ў кошце. Што было асаблівага Сімвал некалькі слайдаў таму? Так адсоткаў. У той час гэта было працэнтаў в для дзесятковага колькасці. Гэта на самай справе не здаецца дарэчным тут. Аказваецца ёсць яшчэ адзін сімвал адсоткаў, што адсоткаў с, які стаіць Для запаўняльніка для радка. Так што цяпер, вельмі проста, я збіраецца пайсці зрабіць прывітанне-1, таму гэты файл называецца прывітанне-1.c, і націсніце Увод. І я аблажаўся. Што адбываецца? Ну, вось, дзе мы павінны пачаць зразумела, што мы знаходзімся ў гэтай камандзе анлайнавай асяроддзі, гэта тэкст толькі навакольнага асяроддзя. Там няма мышы на абразкі як тэчкі прама цяпер. І ўспамінаю імгненне таму. У якой тэчцы я казаў Я ратаваў свой код? Так тэчка Dropbox. Можна было б назваць нічога. Але гэта, аказваецца, называецца Dropbox. Так што я так ці інакш трэба двойчы націснуць на што папка Dropbox, каб атрымаць ў яе і атрымаць на мой Код называецца прывітанне-1.c. На самай справе, дазвольце мне ісці наперад і мінімізаваць гэта акно на імгненне. Гэтак жа, як Windows, і Mac OS, ёсць тэчкі ў Linux. Ёсць тэчкі ў CS50 Appliance. Гэта проста зараз мы абмежаваўшыся самі да гэтага тэкставым рэжыме. Але калі я двойчы пстрыкніце на Dropbox, заўважыце, што гэта файл, які я хачу сабраць. Але мне гэта трэба чорна-белы акно тэрмінала, так бы мовіць. Але мне трэба, таму, каб перамясціць у гэтай тэчцы або каталогу. Так трохі таямніцай, але Вы абвыкнеце да гэтага таксама. У свеце Linux, што зноў з'яўляецца аперацыйная Сістэма, якую мы бяжым ўнутры CS50 Appliance, ёсць каманда называецца CD. А гэта значыць, што я магу зрабіць кампакт-дыск, прастора, Dropbox. CD, змяніць каталог. Права. Назад у дзень, калі людзі былі вынаходзячы кампутараў і аперацыйных сістэмы, як гэта, яны хацелі увядзіце магчыма найменшую колькасць націскаў клавіш. Так, самы просты спосаб сказаць змяніць каталог быў CD. Так што, калі я ударыў CD, прастора Dropbox, заўважыць, што змянілася тут. Ўнутры дужак прыбор выгляд з пасмейваючыся мяне і нагадваючы мне, дзе я знаходжуся. Так адкрыта тэчка Dropbox. Калі я зараз увядзіце Ls для Спіс, зноў лаканічным, таму што людзі не хочуць увядзіце назад у дзень л-і-з-т. Такім чынам, яны замест гэтага зрабілі гэта левая. Enter. Звярніце ўвагу, я бачу дзве рэчы, прывітанне-1.c, а затым гэтая загадкавая рэч, крыніца 1м. Вось толькі мой спосаб сказаць Зыходны код для тыдні 1 панядзелак. Гэта тэчка я запампаваў з Сайт CS50, што я зрабіў сёння раніцай і проста пакласці яго ў Прылада загадзя. Але на бягучы момант адзінае, што мы хвалюе робіць гэтую праграму. Таму, калі я друкую зрабіць прывітанне-1, Enter. Чорт вазьмі. Што пайшло не так. Так што давайце дражніць гэта адзін ад аднаго. І на жаль, гэта тое, дзе рэчы атрымаць крыху напружаным спачатку, па меншай меры, калі ў Вас ёсць ніколі не праграмавалі. Божа мой. Я напісаў праграму два радкі і У мяне ёсць чатыры лініі памылак. Так што тут адбываецца. У першую чаргу заўсёды пракруткі назад і знайсці першае паведамленне пра памылку, таму што вельмі часта кампілятары проста заблытацца на тое, што вы і я. Складальнікі даволі дурным. Яны робяць толькі тое, Вы скажыце ім, каб зрабіць. І калі вы блытайце іх, яны проста збіраецца выгляд заломваюць рукі і можа быць, кінуць некалькі паведамленняў пра памылкі чым на самай справе актуальная. Такім чынам, давайце зірнем на першы. Супер загадкавыя на першы погляд. Але заўважце, вось назоў файл, у якім я аблажаўся па-відаць. Калон 5, тоўстай кішкі 5 проста азначае на лінія 5 на пятым характару. Так пятая калона сімвалаў, калі хочаце, памылка. Выкарыстанне неаб'яўленай ідэнтыфікатар радка. Вы мелі на ўвазе стандартны п? Не, я меў на ўвазе радок. А потым гэта збольшага капіяванне і ўстаўка што я набраў, каб сапраўды прыцягнуць да сябе маю ўвагу туды, дзе я аблажаўся. Дык чаму-C, ці, па меншай меры, кампілятар не разумее слова радок. І гэта таму, што мы памірыліся. Так радок не існуе у C. Што CS50 робіць, на працягу першых некалькіх тыдняў толькі з класа, будзе мы прадстаўляем пэўную падрыхтоўку колы, так бы мовіць. І мы змяшчаем гэтыя дадатковыя колы ўнутры спецыяльнага файла з імем CS50.h. Так што гэта другая з двух файле імёны, якія, па-відаць сканчаюцца кропка ч. Давайце таму. Printf гэтую заяву або функцыя што, па-відаць друкуе то да экрана. Але вы не бачылі мяне рэалізацыі Printf, права. Хто-то гадоў таму рэалізаваны Printf. У якой файл вы заклад ён ці яна паставіць выкананне для Printf, код для Printf? У файле стандарт I / O.h. На самай справе, гэта, верагодна, у два файла, стандартны I / O.h, якая выступае за загаловак файл, і стандарт I / O.c, якая выступае за C зыходнага кода. Каб ён ці яна некалькі гадоў таму пляснуўся код, які яны напісалі ў гэты файл так што людзі, як мы гадоў праз можа ўключыць яго, так бы мовіць, у нашых уласных праграм. І на самай справе, гэта тое, што знак кратаў варта слова ўключаюць робіць. Падобна на лакальным цвёрдым дыску, знаходзіць файл з імем стандарт I / O.h, а затым эфектыўна копіі і ўстаўляе яго ў маёй уласнай файла. Так што цяпер мая праграма ведае як друкаваць на экране. Так па гэтай логіцы, дзе з'яўляецца радок вызначаецца? АЎДЫТОРЫЯ: CS50.h. David J. малая: CS50.h. І на самай справе, гэта тое, што мы, асноўны персанал, зрабілі. Мы прыдумалі некалькі тыпаў дадзеных, так бы мовіць, як струна, у дадатак да тыя, што вы атрымаць бясплатна, як міжнар. І мы будзем бачыць іншых як гольца для характару і яшчэ некалькі. Ўнутры CS50.h відаць, па меншай меры некаторыя згадка пра радку. Так што цяпер дазвольце мне ісці наперад і перазапусціць марка прывітанне-1. Я павелічэння зноў і скрыжаваўшы пальцы. Зараз па здзейсніўшы адзін змяніць я ўсталяваў большасць рэчаў. Але ж, блін. Яшчэ працэнтаў, чым аргументаў дадзеных. Што я зрабіў не так на гэты раз? Так што гэта яшчэ даволі загадкавым. Але гэтая памылка на Лінія 7 і характар ​​21. Такім чынам, давайце глядзець тут. Гэта крыху тонкія. Але калі вы думаеце пра тое, што фундаментальныя ідэі тут, магчыма, мы можам дражніць гэта адзін ад аднаго. Так Е з'яўляецца імя функцыі. Дужкі, да гэтага часу, з'яўляецца як тое, што мы ставім вакол матэрыял мы перадаем ў якасці ўкладу ў функцыі. Добра, проста адвольнае чалавечае канвенцыі. Выкарыстоўвайце дужкі. Усярэдзіне гэтых дужак мы былі пакласці падвойныя двукоссі, а затым радок, як "прывітанне свет". Але ў гэтым папярэднім прыкладзе вельмі коратка зрабіў мы глядзім на з нуля. І ў нас быў працэнт д, што яшчэ быў ўнутры гэтых дужак што я паклікаў на словах? Так. АЎДЫТОРЫЯ: Так што гэта тое, што вы прымаеце [Неразборліва] знутры [неразборліва] што яны [неразборліва]? David J. малая: Точно. Такім чынам, мы мелі адсоткаў в. Але тады мы павінны былі блізка цытата, коска, лічыльнік. Права. Мы вызначылі, што мы хочам зрабіць як запаўняльнік. Так што я збіраюся зрабіць тут коска, што ты хочаш, каб я паклаў? АЎДЫТОРЫЯ: С. David J. малая: S, таму сек ў гэтым выпадку гэтае імя кантэйнера для захоўвання. Гэта імя гэтага шкляны шар. Калі раней гэта было лічыльніка ў тым, што Просты прыклад драпін мы глядзелі на. Так што цяпер, зрабіўшы два змены, дазвольце мне павялічыць і паспрабуйце яшчэ раз скампіляваць гэтую праграму. Цяпер я бачу, што загадкавыя лініі. Але што на самай справе назваць кампілятара. Clang гэтае імя кампілятара. Зрабіць гэта проста выратаваў мяне галаўны боль ніколі ўводу гэтага доўга вар'ят каманду з. Так што цяпер, калі ў мяне кропка слэш прывітанне-1, Я павінен бачыць "прывітанне, Дэвід." Даволі захапленне, хоць, ці не так? Мы маглі б зрабіць гэта шмат прасцей , Не кажучы аб зменных і CS50.h і ўсё, што. Так давайце зробім гэта крыху больш цікавым. У дадатак да CS50.h, маючы такія рэчы, як радкі заявіў, бібліятэка CS50 таксама мае некалькі функцый. Так што проста, як гадоў назад, хто-то напісаў Е і паклаў яго ў стандартным I / O.h і некаторыя іншыя файлы. Мы, супрацоўнікі CS50, напісаў функцыю называецца GetChar, GetDouble, GetFloat, GetInt, GetLongLong, GetString, і мы ставім тыя ў файле называецца CS50.h і CS50.c. І мы іх унутры з CS50 Appliance. І людзі могуць таксама спампаваць іх у Інтэрнэце, калі яны хачу паставіць іх на іх ўласныя кампутары, а таксама. Які павінен сказаць, што мы стварылі Функцыі, якія атрымліваюць дадзеныя ад карыстальніка. Я не ведаю, што ўсе з гэтых тыпаў дадзеных з'яўляюцца. GetInt збольшага проста, як атрымаць цэлы лік, так ці інакш ад карыстальніка. І GetString, верагодна, як Get слова або фраза ад карыстальніка. Так давайце засяродзімся на тым, што. І я збіраюся вярнуцца ў прыбор, і я збіраюся ісці наперад і захавайце гэты файл як, давайце называць гэта прывітанне-2.c як мой другі версіі. І давайце зробім пару зменаў. На гэты раз замест таго, каб жорсткага кадавання Дэвід, які робіць неверагодна ўзгадняецца але ў захапленне праграма, што, калі я замест рабіць GetString? Зараз звернеце ўвагу GetString мае адкрытую дужку, закрытая дужка, таму ён не патрабуе ўводу. Гэта проста будзе ісці, атрымліваюць радок ад карыстальніка. А зараз некалькі слоў пра іншы сінтаксіс. Кропка з коскі проста скончыць радок кода. Вам не трэба іх паўсюль. Але гэта проста азначае, што я зроблена з гэтага радка кода. Дазвольце мне перайсці на іншы заяву ці функцыя. Радок аб'яўляе зменную. Радок, як кажуць даць мне міску, калі ласка. І дазвольце мне сказаць радок у ім. А цяпер знак роўнасці. Што такое знак роўнасці па сутнасці, эквівалентна? АЎДЫТОРЫЯ: Звязаць. David J. малая: Так, прысваення значэння. Так што, калі я, напрыклад, выклік гэтая функцыя GetString, і мы ўбачым, у момант, гэта збіраецца запытваць у карыстальніка радок. Гэта як паведамілі мне тады напісаць D-A-V-I-D на аркушы паперы. І калі я кажу радок з роўная GetString, роўна на самай справе не азначае, роўнымі ў C праграмавання. Гэта азначае, прызначыць справа бокам да левай баку. Так я атрымаў радок. І знак роўнасці азначае паставіць яго у сховішча кантэйнер, званы с. А затым перадаць гэты прэч Е на самай справе рабіць сваю справу. Такім чынам, канчатковы вынік, то адбываецца каб выглядаць крыху інакш. Давайце сапраўды робяць прывітанне-2. Альбо можа працаваць. Вы вынікаеце. Зрабіць прывітанне-2 працаваў. Dot слэш прывітанне-2, Enter. Я, здаецца, бясконцае пятля або што-то. Нічога не адбываецца. Чаму? АЎДЫТОРЫЯ: Гэта робіць бясконцы цыкл. David J. малая: Гэта бясконцы цыкл. Гэта свайго роду чакае мяне, каб фактычна прадастаўляюць яго некаторых ўваходных сігналаў. Такім чынам, дазвольце мне ісці наперад і ўвесці ў Давідзе, і націсніце Увод. А цяпер ён кажа: "Прывітанне, Дэвід." Калі я запускаю яе зноў. Давайце ўвесці Роба, "прывітанне, Роб." Зараз гэта горшае Карыстацкі інтэрфейс ніколі. Карыстальнік па-відаць павінны ведаць, што рабіць. Але незалежна ад таго. Выкарыстоўваючы гэтыя ж будынак блокі гэтак жа, як у пустым, мы можам вырашыць гэтую праблему і сказаць, тое, як ваша імя, калі ласка, тоўстай кішкі, прастору, закрытае цытата, блізка дужка, кропка з коскі. Такім чынам, яшчэ раз шмат глупства з сінтаксісам. Але звярніце ўвагу, я проста дадаў паззл вышэй гэтага і вышэй гэтага. Так што цяпер, калі я паўторна гэта, прывітанне-2, Enter. Хвіліначку. Што не так? Гэта не паводзіць сябе па-іншаму. Так. АЎДЫТОРЫЯ: Вы не пабеглі зрабіць зноў. David J. малая: я не зрабіў запусціць зрабіць зноў, прама. Так я змяніў сваё зыходны код. Але, зноў жа, ёсць тое, што струмень. Зыходны код праз кампілятар дае Вы новы аб'ектны код, або 0 і 1. Так што мне трэба на самай справе паўтор марка прывітанне-2 Enter. ОК, то, здаецца, адбылося. Dot слэш прывітанне-2. Ваша імя калі ласка. І каб было ясна цяпер, чаму курсор на той жа лініі? Дакладна. Я не ставіў зваротны слэш н тут у сваім кодзе. Так што цяпер я магу напісаць нешта накшталт Daven, Enter. Я магу запусціць яго зноў і ўвядзіце нешта накшталт Гейба, Enter, і мы атрымліваем іншую праграму зноў і зноў і зноў. Зараз, у канчатковым рахунку мы збіраемся трэба выкарыстоўваць некалькі розных магчымасцяў. Нам трэба ўвесці ў канчатковым рахунку, некаторыя ўмовы, каб рабіць рэчы ўмоўна. Можа быць, завесы, каб мы маглі зрабіць рэчы зноў і зноў. Можа быць, гэта было б нядрэнна, калі б мы маглі б рэалізаваць свае функцыі, як мы маглі б рэалізаваць самастойна Е або наша ўласная версія GetString і GetFlow, паколькі ў канчатковым выніку нават З дапамогай гэтай каманды сераду радкі мы можам зрабіць нават самы візуальна цікавым рэчаў. Сапраўды, у заключэнне дазвольце мне зрабіць гэта. Я збіраюся ісці наперад і закрыць гэтыя вокны і адкрыць гэты значок тут, , Які з'яўляецца проста больш версія, што убудаваныя акно тэрмінала. Так Gedit мае не толькі месца для майго кода, але і ўбудаваны ў акне тэрмінала, чорна-белае акно, дзе я магу працаваць каманд. Я толькі што адбылося, каб адкрыць вялікая версія гэтага. І зараз я збіраюся ісці ў татка, я ўжо пакласці загадзя на сайце Курсу. І я збіраюся ісці наперад і адкрыць файл з імем thadgavin.c, якая была напісана кімсьці іншым. І калі мы паглядзім на гэта, гэта не від кода мы будзем пісаць, так як Мэта гэтага кода было напісаць самых прыгожых шукаю код, які ён ці яна маглі, незалежна ад таго, ці з'яўляецца ці не іншы чалавек мог ніколі зразумець гэты код. Сапраўды, кожны год ёсць што называецца зацемнены конкурс C, які для сапраўдных гікаў, якія пішуць Код, што ніхто іншы не можа чытаць, але што-то робіць альбо сапраўды проста ці сапраўды дзіўна. І мы думалі, што заключыць з гэтым поглядам на тое, што даволі дзіўна Вы, магчыма, бачылі аднойчы. Але мы ў канчатковым на гэта заўвага, кропка слэш, thadgavin. І вось, што чакае. Вось менавіта для CS50. Мы будзем бачыць Вас у сераду. [МУЗЫКА ГУЛЯЕ]