[МУЗЫКА ГУЛЯЕ] DAVID малая: Добра гэта CS50 і гэта канец тыдня адзін. Таму я хацеў бы прадставіць мой былы advisee, Андел Даф, які не толькі робіць iPhone 5 варта, а таксама гэта аналой, ён таксама робіць аўтамабілі. ANSEL DUFF: Як справы, усё? Я проста хачу, каб распавесці вам крыху Крыху пра Formula SAE, з якіх я Я капітан. Гэта каманда MIT. Я проста хачу сказаць вам, Хлопцы трохі пра гэта і, спадзяюся, генераваць некаторы цікавасць. Такім чынам, дазвольце мне проста запусціць праз Пара рэчаў аб нашай камандзе. Так што мы цалкам студэнт прабег, у якім усе дызайну членаў, мадэляваць, тэст, і вытворца падсістэма з машыны. У нас ёсць уласны механічны цэх і гаражы, і N52-- або шкада, N51-- што тое ж самае будынак як Музей навукі MIT. І мы людзі што вадзіць машыну. Там у нацыянальны конкурс ў пачатку лета, а затым Ёсць менш перастрэлка спаборніцтвы на працягу года. І тады мы робім навучанне вадзіцеляў дзён, каб новыя члены пазнаёміцца. Нашы зборкі дні на Па суботах з 11 раніцы да 8 вечара. Абед і вячэру клапоцячыся з, ад Бертуччи і Beantown адпаведна. У нас ёсць штотыднёвую сустрэчу і Семінар, на курсавую крэдыту. Што новага ў гэтай семестра, і яна таксама будзе на працягу наступнага семестра, так што вы можаце перасекчы-рэг за гэта. А то ў нас праектаванне, крама, і CAD дзён на працягу тыдня, у той час як члены самастойна CAD часткі, парадак складзе і гэтак далей. Такім чынам, для электрычнага інжынерная ў камандзе у нас ёсць цягава, Высакавольтная сістэма, які працуе на намінальным 300 вольт, якая ўключае ў сябе рухавікі, пераўтваральнікі частоты, і акумулятары. Тады ў нас ёсць нізкі напружанне сістэмы, якая працуе на 12 вольт, які ўключае ў сябе кіравання, CAN вузлы, мозг скрынка, і прыборная панэль. Наколькі CS ідзе, мы робім ёсць падтрымку сайта што мы павінны зрабіць для падзей, сяброўства змены, новыя фатаграфіі і PR матэрыялаў. А то ў нас код, які кіруе аўтамабіль для нашай цягі, запуску кантроль, кантроль працяжнік, крутоўны момант навядзення, і сістэмы рэкуперацыйнага тармажэння, якая запусціць як правіла, у MATLAB, Simulink, і LabView. Скажу крыху пра машыне. Так што гэта каля 500 фунтаў. Гэта правілы, абмежаваныя 85 кілават. Ён мае 2 EMRAX 207 рухавікоў у таму, па адной для кожнага задняга кола. Ён мае заказныя батарэйныя ад вясёлкавых A123 дыпламатычнай клетак, на агульную суму 300 вольт і 5,6 кілават-гадзін. І гэта прамы прывад з Каэфіцыент 2,64 да 1 дыск. Вось некаторыя фатаграфіі мы ўзяў яго на конкурсе. Вось яшчэ, насавы абцякальнік, і вось рухавікі, гэтыя вялікія чорныя дыскі пад інш мужчынскія Манус. Вось слайд, які я выцягнуў з нашай схеме канкурэнцыі. І гэта толькі ў параўнанні нашу машыну ў Некалькі камерцыйна даступных аўтамабіляў, як KTM Xbow, Арыэль Atom, і Caterha М 7-280. Калі вы знаёмыя з цаной, магутнасць цягнуць вага, даляраў за конскую сілу, даляраў за момантам, і наша машына дзьме іх усіх з вады. Калі ў вас узніклі пытанні, запісаць гэты адрас электроннай пошты. Страляць нам ліст на fsae@mit.edu. Мы рады казаць пра усё, што вы хацелі б. Студэнтаў Гарварда, з'яўляюцца свайго роду меншасці ў камандзе. Калі ў вас ёсць пытанні з нагоды што рабіць, калі ласка, здымаць нам ліст, з задавальненнем распавядаюць, і я збіраюся каб вярнуцца да Давіда. Дзякуючы. Я цаню гэта, хлопцы. [Апладысменты] DAVID малая: Ансело правёў лета Працуючы з намі тут, на тэрыторыі кампуса ў CS50 гэтым летам. І ў дадатак да працы на рэчы, як бінарных цыбулін, ён на самай справе сапраўды адкрыў нашы eyes-- і шахта ў particular-- у тое, што сапраўды скрыжаванні не з апаратнага і праграмнага забеспячэння можа быць. На самай справе многія рэчы, ён проста гастралявала вы праз гэта, у канчатковым рахунку створана першая ў праграмным забеспячэнні, а затым у канчатковым рахунку, сфабрыкаваныя ў рэальным свеце ў абсталяванні. Так што, калі вы зацікаўлены ў даследуючы гэтую скрыжаванне, магчыма, заняць гэтую групу. Цяпер тое ж час, тыя з вас, хто аматараў тэхналогій, і прадукты Apple, у прыватнасці ведаць, што ёсць Было некалькі Анонсы ўчора. Але мы думалі, што паказаць Вы той, які выйшаў за некалькі дзён да, што Вы, магчыма, не бачыў. JORGEN EGHAMMER: Вы ведаеце, раз у некаторы час то прыходзіць, што змяняе наш лад жыцця. Прылада настолькі проста і інтуітыўна выкарыстоўваць яго адчувае сябе амаль знаёмыя. Ўяўляем 2015 каталог IKEA. Гэта не лічбавай кніга або Электронная кніга, гэта кніга-кніга. Першае, што трэба адзначыць, гэта не кабелі, нават не кабель харчавання. 2015 Каталог ІКЕА прыходзіць цалкам зараджана, і тэрмін службы батарэі вечная. Інтэрфейс 7,5 на 8 цаляў, але можна пашырыць да 15 на 8 цаляў. Навігацыі на аснове тактыльнага кантакт тэхналогіі, якія вы можаце адчуць. Змесціва пастаўляецца з папярэдне ўсталяванай праз 328 старонак высокай выразнасці натхняльных хатняга інтэр'еру ідэі. Каб пачаць прагляд, проста націсніце і перацягнуць. Справа налева, каб рухацца наперад, злева направа, каб рухацца ў зваротным кірунку. Звярніце ўвагу, што-то яшчэ? Гэта дакладна. Няма адставанне. Кожны крышталь ясна старонкі грузы імгненна, незалежна ад таго, як хутка вы пракруціць. Калі вы хочаце атрымаць хуткі агляд, проста трымаць яго ў далоні, і, выкарыстоўваючы толькі свой вялікі палец, Хуткасць прагляду змесціва. Калі вы знойдзеце тое вы хочаце захаваць на потым, вы можаце проста закладка яго. І нават калі вы зачыніць прыкладанне, Вы можаце лёгка зноў знайсці закладку. Дзіўны. [Смех] [Апладысменты] Так што падводзіць нас да канец тыдня адзін. Некалькі аб'яў з прадпрыемствам. Так секционирования з'яўляецца ў цяперашні час. Да гэтай URL тут калі з сённяшняга дня і ў пятніцу апоўдні на самай справе, сфармулюйце Ці вы сярод тых, менш знаёмыя, больш камфортна, ці нешта сярэдняе. Гэта, як правіла, адным з тых, рэчы, якія вы толькі збольшага ведаюць. А бо тыя з вас, хто менш зручна, напэўна, ведаеце, як шмат, тых з вас, хто больш зручна ведаць, як шмат, і зноў, калі вы не зусім ўпэўнены, якой з тых вёдрах вы трапляеце ў вы верагодна, нешта сярэдняе. Але будзьце ўпэўненыя, вы можаце памяняць праз пару тыдняў, калі гэта будзе неабходна. Між тым, на наступны тыдзень мы не пачнем раздзелы па сабе, але супер раздзелы, якія адкрыты для ўсіх студэнтаў. У бліжэйшую нядзелю на прылеглай да будуць абвешчаныя на сайце курсу у нас будзе адзін для тых, менш знаёмыя, а таксама адзін для тыя больш камфортна. А тыя, дзе-то паміж можаце выбраць, якія з гэтых двух, або абодва, калі вы хочаце, каб сядзець у на. І ў цэнтры ўвагі тых, будзе ў канчатковым рахунку, на C, якія мы будзем працягваць наш Размова сёння. Задача ўсталяваць 0 тым часам спадзяюся, у вашых руках. Афіцыйна на заўтра, Чацвер, у апоўдні. Калі вы не нажыцца адзін вашы 5 канцы дня, які прынясе яго да пятніцы апоўдні. Задача ўсталяваць 1 тым часам будзе размешчаны на сайце Курсу. І гэта будзе наш першы набег як клас у С. І, што праблема ўсталяваць спецыфікацыі, вы пройдзеце праз шмат механікі што Мы пачалі казаць пра ў панядзелак, і мы будзем працягваць казаць пра сённяшні дзень. C, Linux, CS50 Прылада, усё, што будзе чакаць вас у спецыфікацыі. Гадзіны працы пакуль што ў стадыі распрацоўкі, у універсітэцкім сталовай. Галава да гэтага URL тут, каб паглядзець планаваць на сёння і заўтра, Калі вы хочаце прыняць удзел. Пытанні Між тым, так што вам ёсць магчымасць задаваць пытанні асінхронна, 24/7, разумееш, што ты не абмяжоўваецца раздзелаў і офіса гадзін, а хутчэй гэта сродак тут, CS50 Абмеркаваць на той URL будзе онлайн Курсу Праграмнае забеспячэнне дошка бюлетэнь, з дапамогай якіх Вы можаце задаць пытанні аднакласнікі і таксама персанал. Так што майце на ўвазе, што рэсурс, а таксама. Між тым традыцыя пачынаецца ў гэтую пятніцу. Як вы, магчыма, убачыў з тізер відэа мінулую сераду, у нас ёсць традыцыя найбольш кожную пятніцу на працягу тэрміну прымаць каля 50 студэнтаў і персанал у мясцовы рэстаран пад назвай Агонь і лёд, на якім мы звычайна далучыліся некаторыя выпускнікоў ці сябры з прамысловасці ў цэлым імкнуцца зрабіць вялікі клас адчуваю менш. Так што гэта цалкам выпадковы абед. Звязка нас, персанал асабліва, будзе гуляць у музычныя крэслы і мець зносіны з навучэнцамі аб 50, жыццё па-за 50, жыццё ў будучыні, рэальны свет, Я кажу пра магчымасці працаўладкавання з сябрамі ў прамысловасці. Так што калі вы хочаце далучыцца да нас ў гэтую пятніцу, скіравацца ў гэтым URL тут. Колькасць месцаў абмежавана, але мы зробім гэта recurringly на працягу ўсяго тэрміну. Галава там cs50.harvard.edu/rsvp. І калі вы не атрымаеце ў на гэты раз, каб не хвалявацца. Мы зробім гэта зноў у бліжэйшыя тыдні таксама. Так гэта і ёсць фота мы малявалі на мінулым тыдні, і вы, верагодна, быў ўмешваюцца ў да гэтага часу. Але давайце паспрабуем падключыць гэта цяпер да таго, што мы збіраемся зрабіць сёння і далей. Можа ў мяне ёсць адзін добраахвотнік? Добра, або некалькі. Як наконт тут на канец, у сіняй кашулі. Падымайцеся, як цябе завуць? ALANA: Алана. DAVID малая: Алана. Так Алана, для ўсяго moment-- прыемна пазнаёміцца ​​ты-- будзе гуляць ролю гэтай функцыі тут. Фіялетавы блок мы ў называецца да гэтага часу функцыя. Так што я збіраюся ісці наперад тут і прапанаваць Алана трохі імя тэга, каб зрабіць ясна, якую ролю вы гуляеце. Такім чынам, вы павінны быць скажам блок. Калі вы хочаце, каб ісці наперад і пакласці, што на. І мы збіраемся трымаць гэта супер проста. Калі мэта пад рукой проста у цяперашні час ажыццяўляць з Алана, гэта так званае сказаць блок, вось як гэта будзе працаваць. Я have-- назавем яго Аргумент або параметр, гэта сапраўды проста чысты ліст паперы. І гэта белага да роду быць нагадвае з белай скрынцы, у якую вы можаце напісаць словы. Між тым я збіраюся пайсці сюды. Я збіраюся ісці наперад і напісаць H-E-L-L-O коскі свет. І зараз я, як кажуць праграмісту, ня на самай справе ведаю, як сказаць-то. Я магу прыдумаць словы, але я не абавязкова ведаю, як выказаць сябе вусна або на экране. І так, што я збіраюся зрабіць, гэта ўзяць гэты кавалак функцыянальнасці, чые input-- або аргумент, як мы яго называем, Я напісаў на гэты кавалак paper-- і я збіраюся даручыць гэта. І на самай справе, што гэта ролю, якую функцыі ў мове праграмавання можа гуляць. Нешта накшталт кажуць блок, могуць быць перададзены таму, хто сапраўды ведае, што ён ці яна кажа. Так што, калі вы будзеце пераступіць тут на імгненне, Я збіраюся прайсці гэты ўклад у Алана, і спытаеце, што вы кажаце, гэты ўваход. ALANA: Прывітанне, свет. DAVID малая: Вось і ўсё. Так што існуе функцыя. Цяпер мы можам прыняць яго крыху больш, мы можам зрабіць крок наперад тут. Таму што гэта было ясна ў захапленне. Такім чынам, давайце цяпер пераўтварыць гэта ў нешта больш складанае. Так што гэта, вядома, наша C версія. Так што цяпер, калі вы хочаце прыняць, што прэч, што імя тэга прэч, і давайце вы паклалі на новае імя. Але прынцыпова, што ты гуляе тую ж ролю, так ужо здарылася, каб назваць Printf цяпер. Гісторыя, вядома, збіраецца be-- верагодна як underwhelming-- з'яўляецца будзе ў наступным. Вы зараз функцыя Е. Я абанент, або праграміст, які хоча стаяць на плячах людзі ў мінулым, як вы, хто ўжо зразумеў, як на самай справе-то запісваеце. І таму ў гэты раз, , А не кажуць, што гэта давайце на самай справе выкарыстаць наш экран сюды. Так што калі вы хочаце, каб крок тут, я збіраюся прайсці зноў у гэтай якасці ўваход у мой Е аднаму. Калі б вы маглі ісці наперад і друку, што на экране, проста малюнак з вашым палец на чорным экране. Выдатна. Добра, так шмат невядомасці для як што збіраўся разыграць. Так што цяпер давайце рэчы адзін Канчатковы якасцю, калі б мы маглі, як след. Так што гэта праграма C як мы ўжо казалі ў мінулы раз. І гэта толькі робіць тое, што вы зрабілі, гэта выводзіць на экран, Hello, World. Нават пры тым, што ёсць ясна шмат з адцягвае рэчы там. Але давайце рэчы на ​​прыступку вышэй і ўвесці гэтую версію, якая ўспомніць быў трэці варыянт, што мы скончылі з апошні раз. І зараз ёсць выразна два варыянты выкарыстання Printf. Там у 2 званкі на Алана у гэтым выпадку для Printf, але ёсць таксама заклік на іншую функцыю. Што гэта функцыя, відавочна? GetString. Ці можам мы атрымаць больш аднаго добраахвотніка? ОК, давай до. Як цябе завуць? Хаўер: Хаўер. DAVID малая: Хаўер, давай до. Так ролю Хаўера на гэтая паперка. Які я збіраюся патэлефанаваць у агульным с. Зараз гэта зменная, гэта тып радкі, як гэта маецца на ўвазе па гэтай другой лініі ў сярэдзіне там. І я б хацеў, каб ты прынясі мне радок. У прыватнасці накіравацца ўніз ў аркестры раздзел і атрымаць мне імя каго, і вярнуцца з зменнай , Які змяшчае гэта значэнне. Гэта можа быць хто заўгодна вы хочаце. Тут мы ідзем. Добра, Хаўер запісваючы імя. Добра. Мы можам усё, напэўна, здагадаліся, як гэта збіраецца разыграць. Мы, магчыма, размове кропка, што функцыя робіць, але тым не менш, вялікі дзякуй. Так Хаўер вярнуўся гэты радок тут, якія, не можа цалкам разумею, Джонатан з'яўляецца радок што мы атрымалі. Так што цяпер я сапраўды збіраюся даць Алана хоць з'яўляецца тое трохі іншае. Таму што ў гэтай версіі Праграма, у першую ёсць заявіць сваё імя. Так у першы аргумент Мне трэба, каб забяспечыць Алана з будзе літаральна заявіць сваё імя. Добра, так проста Я б перадаць гэта вам. І, як я пішу да Наступны аргумент, калі вам хачу пайсці далей і напісаць гэта на борце, давайце ісці наперад і зрабіць канчатковы прыклад тут, каб зрабіць ачысціць тое, што ў канчатковым выніку павінна адбыцца. Так, пакажыце вашыя імя, запісаць яго ў напрамку верхняй калі вы не пярэчыце, проста так, што у нас ёсць месца для адной другой лініі. Таму што апошняе, што я збіраюся у цяперашні час даць вам не адзін, але двух лістоў паперы. Добра. H-E-L-L-O коска, а затым пустая радок. Так што я збіраюся ўручыць Алана зараз з'яўляецца тое трохі іншае. Мала таго, што яна становіцца гэта, дзе запоўніць пустыя ўяўляе што адсоткаў, што тое, што было запаўняльнік мы выкарыстоўвалі? Так, так адсоткаў с. Між тым я збіраюся прайсці яе ў якасці другога аргументу, які Менавіта гэта Хаўер здабываюцца з Джонатан. Такім чынам, дазвольце мне даць вам гэтыя два. Калі вы хацелі б, ісці наперад і друк, што эфект. Што ў канчатковым рахунку, адбываецца цяпер, Алана зноў гуляе ролю Printf. Хаўер гуляў ролю GetString. Так што будзе ваш сувенір. І ў канчатковым рахунку, тое, што адбываецца, нягледзячы на гэта hello-- ды ісці наперад і коска. ALANA: Няўжо я атрымліваю гэта яшчэ ці не? DAVID малая: Так, вы атрымаў іх абодвух адразу. Такім чынам, ідэя ў тым, што вас Зараз можна перавярнуць старонку для апрацоўкі другога з гэтых двух уваходаў. Так што гэта толькі забіваць дадому паказваюць, што ў той час як Алана выконваецца Гэтая зялёная лінія тут, а затым Хаўер зрабіў гэта для нас і вярнуцца да мяне-то мы будзем называць з, але гэта было сапраўды толькі што паперка з уласнага жыцця. А цяпер Алана зрабіў гэтую трэці радок. І хоць усё гэта выглядае так неверагодна загадкавы магчыма на першы погляд, гэта сапраўды так жа проста, як, што. Пас ўваходы вакол, атрымліваць выхады, альбо фізічна вярнуў тое, ці ўбачыць пабочны эфект падобнага. Што-то візуальна напісана на экране. Так што давайце ісці наперад і дзякуй Алану і Хаўер, хто быў тут, для далучыліся да нас тут. [Апладысменты] А цяпер давайце лічыць само сабой якія разумеюцца, наколькі проста ўсё, што магло б быць. І давайце пяройдзем да ўласна нешта рабіць у рэальным кодзе. Так на экране Вось скрыншот з так званага прылады CS50. І калі б вам прыйшлося на, як 2:00 вечара ў сераду днём, растлумачыць у некаторай сябру што CS50 прыбор, як бы вы вызначылі гэта ў сказе? Любы прысуд? Так? СТУДЭНЦКАЯ: Гэта як праграмы што робіць кампутар кожнага запусціць з той жа сістэмай. DAVID малая: Добра! Гэта праграма, якая дазваляе кожнага кампутар працаваць з той жа сістэмай. Гэта свайго роду уласны копія аперацыйнай сістэма, якая адбываецца з назваць Ubuntu Linux. І ён працуе эфектыўна ўнутры акно на вашым уласным Mac або ПК, так што гэты шлях прама з брамы у тыдзень 1, усё тут у класе мае доступ да тых жа інструментаў, тая ж самая канфігурацыя, і няма крывой навучання канкрэтных да Mac або ПК, у прыватнасці. Цяпер мы адкрылі, усярэдзіне CS50 прыбор ў панядзелак, гэтая праграма тут. Бывае называцца Gedit. Але гэта на самай справе проста Графічны рэдактар. Гэта тое, што, як Нататнік або Тэкст Рэдагаваць на АС Windows ці Mac OS, адпаведна. І я прапанаваў, што было на самай справе тры важных частак гэтага экрана. Верхняя бок, дзе вам б напісаць код. І вось, калі мы правялі вялікую частку нашага тры прыкладу ў лекцыі ў панядзелак. Дно мы назвалі тое, што, гэта чорнае акно, так? СТУДЭНЦКАЯ: Кампілятар? DAVID малая: Кампілятар мы Доступ праз гэта акно. Але ў больш агульным. Так, гэта быў усяго толькі акно тэрмінала. Гэта векавой тэрмін, які проста апісвае істотна перарывістым падкажыце, што гадоў таму раней на адзін з тых вялікіх маніторах CRT стылю. Але ў цяперашні час гэта свайго роду з віртуальнага ў праграмным забеспячэнні. І тэрмінал вокны хай гэта нам ўводзіць каманды. Гэта свайго роду спрошчанай версіяй карыстацкага інтэрфейсу або інтэрфейсу. Гэта не графічны карыстацкі інтэрфейс або GUI, гэта тэкставы інтэрфейс ці інтэрфейс каманднага радка. І на самай справе, што там у канчатковым рахунку, Я быў у стане напісаць код. Пасля таго, як я напісаў код, хоць, Нагадаем, што я выкарыстаў гэтую каманду. І як яму імя выгляд мяркуе, гэта дазваляе мне зрабіць Праграма называецца Hello. Але што было на самай справе робіць? Ну марка браў сваю ўваход, мой зыходны код, і ператварэнне яе ў чым, у канчатковым рахунку ,? Код аб'екта. І аб'ектны код гэта проста фантазія спосаб сказаць нулі і адзінкі. А потым, як толькі я хацеў запусціць гэты аб'ектны код, як толькі я хацеў перадаць у якасці ўкладу гэтых нулі і адзінкі ў мой кампутар-х мозгу, так званы працэсар або цэнтральны працэсар, Я павінен быў запусціць праграму. Але гэта было не зусім просты ў панядзелак як толькі падвоіць націснуўшы некаторы значок. Што замест я павінен зрабіць для таго, каб запусціць праграму? Што гэта было Другая каманда? Я чую трохі касыя рысы? Так, так? СТУДЭНЦКАЯ: Dot слэш і назва праграмы. DAVID малая: Точно. Dot слэш і імя праграмы. Цяпер што ж гэта значыць? Ну кропка проста таямніцай спосаб сказаць бягучы каталог. Незалежна тэчка у якім вы знаходзіцеся спасылацца як, уяўляецца як кропка. Касая рыса менавіта тое, што вы бачылі у Mac OS і Windows, на працягу многіх гадоў, гэта падзельнік паміж каталогу або тэчку і астатнія некаторым імем. У Windows гэта адбываецца пайсці ў зваротным напрамку, у Linux і Mac АС гэта адбываецца, каб ісці наперад. Але гэта толькі сепаратар, так што гэта проста нецікава сінтаксічны дэталь. Сакавітая частка, вядома, назва праграмы, Добры дзень. І вось што робяць стварыў для нас. Гэта выводзіцца файл для нас. Але, як мы дайшлі да гэтай кропкі? Давайце зараз спытаеце пытанне, што было на самай справе тут адбываецца, па меншай меры, з Улічваючы некаторыя з гэтага сінтаксісу? Такім чынам, у сказе ці каля таго, як мы растлумачыць гэта першая лінія гэта вылучаныя зялёным колерам? Што гэта было першая лінія робіць, па адносінах да маёй праграме? Так? СТУДЭНЦКАЯ: [неразборліва]. DAVID малая: Скажыце гэта яшчэ раз? СТУДЭНЦКАЯ: У тым ліку і загрузкі Мінулыя функцыі [неразборліва]. DAVID малая: Добра. У тым ліку, я не буду казаць, загрузкі, але, скажам, у тым ліку функцый, якія чалавек напісаў у мінулым. І гэтыя функцыі рэалізаваны дзе-то ў маім кампутары. Хто напісаў файл гадоў таму, і гэты файл дзе-то ўнутры CS50 прыбор, або на маім цвёрдым дыску ў цэлым. І так гэтая лінія, па сутнасці кажучы, пайсці знайсці гэты файл, кропку Standard I / O ч, і скапіяваць і ўставіць яго змесціва прама тут, на вяршыні майго файла так што я не павінен рабіць гэта ўручную сам. І сярод самых сакавітых кавалкаў ўнутры кампаніі што файл, які мы сцвярджалі было тое, што функцыя? Якую функцыю мы казалі быў абвешчаны ці згадваецца ў стандартны I / O кропка г хутчэй за ўсё? Printf, ці не так? Мы не пісалі Е на Панядзелак, яна проста існавала. Многае, як Алана проста прыйшоў на сцэну, і яна проста існавалі і ўмеў маляваць то на экране, гэтак жа Е існуе на працягу многіх гадоў. І так гэта тое, як мы да яго доступ. Зараз, калі мы пяройдзем тут, Асноўны была аналагічная мы сказаў паззл выклікаецца, калі зялёны сцяг націснуў у свеце нуля. Гэта проста свайго роду Імя па змаўчанні, што людзей вырашыў бы прадстаўляць змаўчанні кропку ўваходу ў праграму. Кавалак праграмнага кода што запускаецца на выкананне ў першую чаргу. Між тым гэтыя фігурныя дужкі з'яўляюцца накшталт выгнутай формы ад вялікай колькасці гэтых жоўтых скрэтч штук. Яны накшталт інкапсуляцыі цэлым куча інструкцый разам. Так гэта толькі часткова звязвае некаторыя звязаныя функцыі. Е вядома гэта функцыя, якая друкуе экран, як мы толькі што зрабілі. Што аб гэтых дужках? Як бы вы define-- нават калі вы ніколі не запраграмаваны раней, але толькі на аснове зараз на павышэнне спадзяюся інтуіцыя, што якія дужкі робіць для нас тут? Ці тое, што яны навакольных? Так? СТУДЭНЦКАЯ: Яны кажуць, што вы збіраецеся друкаваць з Printf. DAVID малая: Так, яны кажуць, што вы збіраецеся друкаваць з Printf. Ці ў больш агульным, яны навакольнае ўклад у функцыі. Такім чынам, вы можаце падумаць, з тых дужках як як метал кліп на гэтую буфер абмену. Гэта тое, што трымае, гэта тое, што будзе выкарыстоўвацца для забеспячэння аргументы у функцыю, якая ў гэты выпадак называецца Е. Так што ў цэлым амаль любы раз, калі мы выклікаем функцыю, мы ўбачым пару дужкі. Можа быць, што-то ў ім, як цяпер, можа быць, нічога ў ім. Але вось дзе вы б пакласці ўваходы або так званыя аргументы да функцыі. Вось адзін з такіх аргументаў. Я вылучыў усе паміж двукоссяў, таму што аказваецца на гэтай мове пад назвай C, калі вы хочаце, каб прадстаўляць string-- што гэта слова або фраза ці нават paragraph-- вы павінны атачаюць яго ў падвойныя двукоссі. Ня адзінарныя двукоссі, двайныя двукоссі. І гэта менавіта тое, што я зрабіў тут. Між тым ёсць напалоханы знак у канцы там. Зваротная касая рыса н. Што мы кажам, што прадстаўлена? Так? СТУДЭНЦКАЯ: новая лінія. DAVID малая: Новая лінія. Права, вы не як правіла, націсніце Увод, калі Вы хочаце, каб праграма выплюнуць новую лінію. Хутчэй вы сказаць гэта відавочна з гэтым трэба прызнаць таямніцай часткі сінтаксісу, зваротны слеш н, што Вы хочаце новая лінія пайсці туды. Нарэшце коскі. Мы сапраўды не казалі занадта шмат пра гэта, і безумоўна гэта будзе атрута некаторыя вашага існавання для першай задачы ўсталяваць, калі вы проста не ў стане зразумець вы забыліся тое, як па-дурному як з коскі. І наогул пакласці яго там будзе вырашыць гэтую праблему. Але тое, што ён робіць для нас, вы можаце сказаць? СТУДЭНЦКАЯ: [неразборліва]. DAVID малая: Выбачайце? СТУДЭНЦКАЯ: [неразборліва]. DAVID малая: Аздобныя заяву. Гэта накшталт як перыяд у канец ангельскага прапановы, у той час як на гэтай мове C гэта заканчваючы заяву. Навучанне праграмаванні код, які вы проста хочаце сказаць, Я зрабіў з гэтым. Зараз звернеце ўвагу, што гэта толькі адзін тут. Такім чынам, вы не хочаце, каб атрымаць у Звычка паклаўшы коскі пасля кожнага замкнёнага дужках. Напрыклад, няма ні побач з анулявання, і мы будзем вярнуцца ў будучыні да таго, што несапраўднымі сродкі. Але ў гэтым выпадку ваша Е з'яўляецца Функцыя, або заяву выкарыстоўваецца, і таму мы хочам мець, што канчатковая прыпынак у самым канцы. І я наўмысна прыдзірацца С і адкрыта шмат моў, як C, C ++, Java, JavaScript, і любы лік у іншых мовах ёсць шмат такіх роду сінтаксічных дэталяў. Гэта, вядома, калі вы пачатковец у праграмаванне можа сапраўды збіць вас з панталыку. І вы будзеце, спамяні маё словы, некаторыя з вас будзе мець гэты вопыт у працоўны час ці позна ноччу працуе на некаторых р-набор, дзе ваш пракляты праграма проста не сабраць, ён не працуе, у вас ёсць ніякая ідэя, што здарылася, здаецца цалкам лагічна правільным для вас. І гэта таму, што вы забыліся нешта накшталт ўдару кропка з коскі ў канцы некаторай лініі. Але гэта тыя рэчы, якімі вы збіраецца неадкладна навучыцца бачыць. І на самай справе гэтыя рэчы што ЦС і TF нам мець быў свайго роду падрыхтоўку, каб убачыць значна хутчэй, чым вы. І так гэта толькі сказаць, як вы апусканне ў праблемы набор 1 асабліва, не хвалюйцеся па гэтай рэчы. Пасля таго, як вы як бы акліматызавацца ў свеце, вы пачынаем бачыць рэчы, якія вы не маглі б см, на першы погляд гэта першы тыдзень. Так зыходны код нешта накшталт гэтага. Мы хочам, каб перадаць яго ў так званы кампілятар. І, што кампілятар як мы сказалі забяспечвае выснову вядомы як аб'ектны код, Так званы нулёў і адзінак. Але адтуль, што ж гэта нам дае? Ну, гэта дае нам гэтыя шаблоны. І зноў ваш кампутар, Ваш Intel ўнутры, разумее гэтыя мадэлі з нулёў і адзінак. А часам карціна ўяўляе рэальны дзесятковы лік як мы бачылі на мінулым тыдні, часам яна ўяўляе сабой ліст як мы бачылі на мінулым тыдні, часам яна ўяўляе сабой інструкцыю, як друк-то на экран. Так Е для instance-- а, дазвольце мне назад. Мы прымалі як належнае што гэтыя нулі і адзінкі з'яўляюцца вырабляецца гэтай каманднай вытворчасці. Але зрабіць гэта не кампілятар. Зрабіць гэта не тое, што ў сярэдзіне што прадзюсуе нулі і адзінкі. Лепш зрабіце гэта проста вельмі зручна па імя праграмы, мэта якой у жыцці па сутнасці, каб высветліць, як скампіляваць праграму. І мы выкарыстоўваем яго ў іх Першыя тыдні, таму што яго проста эканоміць нам масу непрыемнасцяў. Але тое, што робіць сапраўды рабіць пры кампіляцыі прывітанне, з'яўляецца, як мы ўжо казалі ў мінулы раз, гэта гледзячы на ​​цвёрдым дыску або ў бягучай тэчцы, для файл называецца тое, што, па-відаць? Hello.c, ці не так? Гэта толькі часткова канвенцыі. Гэта адвольнае, але што так ідуць справы. Зрабіце, калі вы проста паказаць імя праграмы, якая яшчэ не існуе, гэта будзе выглядаць на зыходны код у файле, па змаўчанні азначае hello.c. І калі ён знаходзіць яго, выдатна. Гэта збіраецца канвертаваць гэты крыніца Код у аб'ектны код для вас. Але кожны раз, калі я ударыў Калі ласка, увядзіце пасля запуску зрабіць прывітанне, Ці памятаеце вы бачыць апошні раз даволі доўга і загадкава паслядоўнасць іншых белымі літарамі і знакі на экране? Ну, што было фактычным каманда, бягучая кампілятар, які быў запушчаны. Такім чынам, рэальнае кампілятар мы будзем выкарыстоўваць большасць семестр нешта, званае ляск. Некаторыя з вас, магчыма, выкарыстаў Visual Studio перад, ці GCC, або любую колькасць іншых кампілятараў. Мы будзем выкарыстоўваць ляск. І ляск дазваляе нам на самой справе пераўтварэнні што зыходны код у аб'ектны код. Што гэта на самай справе азначае на практыцы? Ну дазвольце мне перайсці ў адзін з мае папкі з апошні раз. Ўнутры CS50 прыбора. І дазвольце мне ісці наперад і ствараць гэты той жа файл, ўключаюць у сябе стандартныя I / O кропка гадзіну. Int асноўны несапраўднымі. І мы вернемся ў будучыні ў якасці да таго, што Int сродкі і якія несапраўднымі сродкі. Але цяпер давайце рабіць прывітанне свет зваротны слеш н, сапраўды гэтак жа як мы зрабілі на дошцы. Дазвольце мне захаваць гэты файл пад назвай hello.c. І зараз, калі я хачу, каб скампіляваць гэты Я could-- дазвольце мне маштабу в-- прабег зрабіць прывітанне ўвесці. І гэта зноў было што вельмі загадкавым лінія. Але цяпер, па меншай меры адно слова верагодна, выскоквае на цябе. Clang з'яўляецца тое, што лінія мы бачылі раней. Зараз ёсць шмат іншых рэчаў, адкрыта што мы махаем рукамі на працягу сённяшняга дня. Але ёсць некалькі падмноства, некалькі знакаў у тут што ўяўляюць цікавасць. Але я збіраюся ісці наперад і рабіць гэта. Я збіраюся першага запуску прывітанне, толькі каб даказаць, што гэта працуе, як гэта было ў панядзелак. Але зараз я збіраюся выдаліць праграму. І гэтак жа, як у нас былі яны кароткія імёны ў мінулы раз, каманда для выдалення то ёсць RM, выдаліць, увядзіце. Вы збіраецеся атрымаць некаторыя даволі загадкавыя пытанні. Цяжка паверыць, што вы можаце зрабіць нават гэтае пытанне цяжка зразумець. Але выдаліць звычайную файлавую прывітанне проста сродкі вы хочаце выдаліць прывітанне. І я магу ісці наперад і ўвесці ў для ды, Enter, і цяпер яго няма. Тое, што гэта азначае, што цяпер, калі я ачысціць экран, ў тым, што замест таго, каб рабіць зрабіць hello-- вас ведаю, што, я атрымліваю добры ў гэтым. Я збіраюся запускаць кампілятар сам. Я не патрэбна праграма для высветліць, што мой файл называецца. Я напісаў hello.c, я ведаю, як гэта называецца, Я выразна здольныя набраўшы што. Так што я збіраюся ісці наперад і не звінеў hello.c Enter. Здаецца, працуе. І няма ніякага дадатковы выхад, таму ляск кампілятар. Гэта тое, што пераўтварэнні Зыходны код для нулёў і адзінак. Так што, калі я зараз зрабіць кропку слэш прывітанне Enter, хм. Паведамленне Новае памылка сёння. Так Баш проста назва міргаць падказку, які мы выкарыстоўваем. Гэта грубае спрашчэнне, але цяпер гэта ўсё, што ёсць, гэта міргае хутка. І вось чаму гэта крычаць на нас. Няма такога файла ці каталога не з'яўляецца трохі больш простым. Але, вядома, я зрабіў, што аб'ектны код. Але загваздка ў тым ,, што калі я увядзіце каманду каб прагледзець змесціва гэтага каталог, які ёсць што? Ls для спісу. Там у кучу рэчы тут, некаторыя з якіх прыйшлі з прыборам, як маёй тэчцы Desktop, Спампаваць Татка, татка Dropbox, і ўсё такое. Але вось што цікава з'яўляецца hello.c, якія Я стварыў некалькі хвілін назад з Gedit. І што самае дзіўнае гледзячы імя тут, магчыма, што мы не зрабілі см апошні раз наогул? a.out, ці не так? Такім чынам, вернемся ў дзень, яго які быў толькі што вырашыў, калі кампіляцыі праграмы у першы раз, і вы не пазначылі імя файла, назавем яго ў. І a.out проста азначае, што гэта было Выхад кампілятара. Так што гэта жудасна назва для праграмы. Але па гэтай логіцы, кропка слэш для бягучы каталог, слэш a.out, павінна азначаць ёсць на самой справе мой прывітанне свет праграма. Зараз трохі разагрэць практыкаванні таксама. Калі я хачу, каб перайменаваць гэта файл, атрымліваецца, што вас перамясціць файл з аднаго імя да іншага. Так мв a.out, і тады я можна назваць гэта прывітанне Enter. Так што гэта каманда Linux. DOS была гэтая гадоў таму, Вокны ёсць акно тэрмінала некаторага віду, які выглядае як гэты, Linux і Mac кампутары маюць гэтую неонавы радок. Нават пры тым, што большасць з нас, верагодна, рэдка, калі наогул, выкарыстоўваць яго. Але тое, што я зрабіў запускаецца Праграма, чыё імя М.В., і я забяспечыў яго з два аргументу, так бы мовіць. Два ўваходу. a.out гэта першапачатковае назва. Прывітанне гэта новая назва. Так што, калі я зараз зрабіць кропка слэш прывітанне, Enter, што існуе. А калі я кропка слэш a.out, што вы чакаеце, я павінен бачыць? Bash, няма такога файла ці каталога. Таму што я проста пераназваў яго. Так што гэта займае крыху прывыкнуць. Але праблема ўсталяваць 1 спецыфікацыя стане сапраўды трымаць цябе за руку праз некаторыя з гэтых minutae. Таму што гэта поўная інтэлектуальнай адцягненне ад цікавей ідэі ў бакі, якія на самай справе стварэння то з кода. Але давайце зробім адну мадыфікацыю Зараз да гэтай праграме. Нагадаем, што ў мінулы раз я зрабіў-то як гэта, Е, пакажыце вашыя імя. І на самай справе, мы проста зрабілі гэта на вялікім экране над там. І тады я зрабіў радок з атрымлівае GetString адкрытыя Хлопец, блізкая Хлопец. І дужка толькі скарачэнне абазначэнне дужках. Гэтак жа GetString прымае аргументаў? Няма ўваходу няма, але гэта патрэбныя дужкі, таму што гэта тое, што размяжоўвае выклік функцыі. Так што я збіраюся ісці наперад і паспрабаваць запусціце кампілятар аб гэтай праграме цяпер. Clang hello.c, таму што я не зменіць сваю назву на дадзены момант. І я атрымаў кучу памылак. Давайце маштабу тут. Калі я пракруткі уверх зноў, як я ўжо сказаў у мінулы раз, да першага, такім жа памылкі што я атрымаў у мінулы раз. На радку 6 hello.c я меў неаб`яўленая радок ідэнтыфікатар, я маю на ўвазе стандарт у? Я не зрабіў. Таму што тое, што памылка ёсць я зрабіў у гэтым Праграма, калі вы памятаеце з мінулага часу? Так, мы павінны так званы навучальныя дыскі што мы будзем выкарыстоўваць толькі на працягу некалькіх тыдняў. Але мне трэба, каб паказаць, што таксама, дзе-то ўнутры прыбора, гэта файл, які мы напісалі усяго некалькі гадоў таму. Ўнутры з якіх з'яўляюцца функцыямі як, па-відаць GetString. Так што цяпер, калі я вярнуся сюды, павелічэння, і паўторна запусціць ляск hello.c. Чорт, іншая памылка. Але мы не бачылі гэтага раней. Гэта адзін трохі больш эзатэрычная высветліць. Але гэта наўмысна на экране, таму што мы хацелі расказаць гэтую гісторыю. Пры кампіляцыі hello.c, як карціна ад асобы прапанавалі, вы толькі пераўтварэнні, што Зыходны код для нулёў і адзінак. Цяпер персанал CS50 некалькі гадоў таму напісаў CS50.h, і адпаведны файл, CS50.c. І мы, некалькі гадоў таму, складзены гэтыя файлы ў файл, што адбываецца каб назваць CS50.o. Ці ён можа быць перайменаваны некалькі розныя рэчы. Але гэта просты спосаб разважаць пра гэта. Так мы склалі CS50-х Бібліятэка ў нулёў і адзінак. Але нідзе я паказана што я хачу, каб аб'яднаць свае нулі і тыя, для маёй прывітанне свет Праграма з нулёў і адзінак што CS50 персанал створана некалькі гадоў назад у адной поўнай праграме. Усе я паказаў у пісьмовай форме ляск hello.c з'яўляецца сабраць hello.c. Я не сказаў ляск, каб спасылка ў нулёў і адзінак што CS50 персанал створана для вас некаторы час таму. Так што гэта лёгка выправіць, працяжнік л для сувязі, CS50. І мы будзем зноў убачыць гэта да таго часу зноў і зноў. Але звярніце ўвагу, цяпер не было ніякіх скаргаў. Так што цяпер, калі я бягу кропка слеш прывітанне, цяпер ён працуе. Хоць гэта трохі ўводзіць у зман так як я проста аднавілі які файл? a.out. Такім чынам, дазвольце мне назад на імгненне. Праграма, якую мы толькі што сабралі мае тры радкі кода. Калі я пабег прывітанне свет, прывітанне момант назад, я не бачыў, пакажыце вашыя імя. І гэта таму, што я пабег старая версія праграмы. Але калі я сапраўды працаваць кропка слэш a.out Калі ласка, увядзіце, пакажыце вашыя імя, Роб, прывітанне, свет. Хм. Гэта свайго роду памылкі. Напэўна хацеў сказаць адзежу, ці не так? Так у чым жа выправіць тут у кодзе. СТУДЭНЦКАЯ: [неразборліва]. DAVID малая: Точно. Так што я проста трэба зрабіць, што канчатковае Твік так што я перадаю ў якасці запаўняльніка, як запоўніць пустыя, як мы рабілі некаторы час таму. Але працэнтаў з цяпер што запоўніць пустыя. Так, нарэшце, давайце раскрыць адзін апошні дэталь, так што няма ніякай магіі. Я збіраюся ісці наперад і пазбавіцца ад Hellow. Я збіраюся ісці наперад і пазбавіцца ад a.out. Так што цяпер у мяне няма праграмы, проста мой зыходны код. І я збіраюся працаваць трохі даўжэй каманда, ляск працяжнік аб прывітанне hello.c працяжнік LCS50. Цяпер гэта пачынае роду ідуць у адно вуха, а з іншага, магчыма. Але толькі дражніць адзін ад аднаго, што гэта робіць. Clang з'яўляецца кампілятар, працяжнік LCS50 свядома ў самым канцы робіць тое, што ў прапанове? Спасылкі на бібліятэкі CS50. Хапае нулі і тыя, што персанал, зробленыя і перапаўняе іх у маёй праграме. Так, апошні пытанне пад рукой, што працяжнік аб прывітанне верагодна рабіць, нават калі вы ніколі не бачыў гэты сінтаксіс раней? Выснову праграму, якая не назваў a.out па змаўчанні. Хутчэй ён называецца прывітанне. Так што цяпер няма a.out. Няма такога файла ці каталога, таму што я прама сказаў называюць гэтую праграму прывітанне, так што Цяпер я магу ўвесці імя падобнае і ён сябе. Цяпер, шчыра кажучы, хлопчык, што нецікава мець памятаць усё, што трохі дробязі, ці не так? Так што давайце ісці наперад і пазбавіцца ад прывітанне яшчэ раз. І хай цяпер вернемся да свету, у якія досыць сказаць, зрабіць прывітанне. Але гэта чараўніцтва, што зрабіць робіць для вас, вось нуда, што ён робіць для вас. І як нашы праграмы і праблемы становяцца ўсё больш складанымі, зрабіць будзе сапраўды ваш сябар. Таму што не занадта доўга з гэтага часу мы збіраемся мець праграмы, якія напісаны не з адным файлам, але некалькі файлаў, і зрабіць будзе аўтаматызаваць працэс кампіляцыі ўсё, што для нас разам. Так што цяпер раздрукаваць. Е знаходзіцца ўнутры гэтага файла, стандарт I / O кропка ч, што мы бачылі раней, але гэта яшчэ не ўсё Е, чым гэта. Там у зваротны слеш н, але ёсць таксама куча іншых кіраўнікоў паслядоўнасцяў. І паслядоўнасць выхаду проста мудрагелісты спосаб сказаць тое , Якая пачынаецца з зваротнай касой рысы, ня касая рыса, зваротны слеш, і робіць некаторыя адмысловыя рэчы. І мы не будзем спыняцца на большасць з іх, але чаму там зваротны слэш падвойныя двукоссі, як вы думаеце? Чаму гэта дзіўна паслядоўнасць персанажы, зваротны слеш падвойныя двукоссі, Таму, магчыма, што будзе карысна? СТУДЭНЦКАЯ: [неразборліва]. DAVID малая: Сапраўды, праўда? Ўспомніце наш прывітанне свет праграмы што мы бачылі даволі шмат разоў цяпер, кожны раз, калі мы бачылі, што прывітанне свет Праграма, якую мы мелі падвойныя двукоссі ўнутры з якіх Прывітанне коскі Свет зваротны слеш н. Але думаю, для сябе, што рабіць, калі вам на самай справе хацеў раздрукаваць двукоссі? Ваш першы інстынкт можа быць, я не ведаю, чаму я, магчыма, захочаце do-- тут, мы можам быць трохі пасіўнай агрэсіўны, прывітанне сябар. Мы, магчыма, захочаце зрабіць нешта падобнае. Але чаму гэта цяпер праблематычна? Не звяртаючы ўвагі на фігурныя дужкі, у бок, што Лейтматывам аўтаматычна зрабіў для нас. Чаму гэта праблематычна? Дакладна. Таму што ў нас, як 4 двукоссі. Ну першы, верагодна, ідзе з другім, і, магчыма, чацвёрты ідзе з трэцім, ці, я маю на ўвазе, я нават не ўпэўнены ,, ні кампутар будзе. Кампутары зноў, кампілятары зноў, даволі дурное. Яны робяць толькі тое, Вы скажыце ім, каб зрабіць. І калі вы не адназначная яны , Верагодна, будзе выдаваць памылку. Калі вы не адназначныя, як у тым, як зрабіць арахісавае масла і бутэрброд жэле дзіўныя рэчы могуць прыехаць. Гэта тая самая ідэя. Цяпер дастаткова сказаць, што ёсць некаторыя іншыя кіраўнікі паслядоўнасці, але мы прыйдзем да тых, у бліжэйшы час. Па сутнасці, гэта ўцёкі паслядоўнасці ўяўляюць сабой нешта што вы не зможаце занадта лёгка ў клавіятуры, не змешваючы кампутар. Цяпер тое ж час у нас ёсць запаўняльнікі ў Printf. Працэнт д, які таксама можа быць запісаная амаль ва ўсіх выпадках, як адсотка I, з'яўляецца запаўняльнікам для якога тыпу дадзеных? Які выгляд кошту? Дзесятковы лік. Такім чынам, фактычна мы пачнем выкарыстоўваючы адсоткаў I, таму што гэта трохі прасцей, як цэлага. Працэнт я. Цэлы лік, здараецца, дзесятковай. Працэнт з мы ўжо сказалі, было запаўняльнік для радка. Якія гэта проста слова, фраза, пункт, эсэ, што заўгодна. Гэта паслядоўнасць персанажы даволі доўга. І мы ўбачым у бліжэйшы час некаторыя з гэтых іншых. Але працэнтаў з для аднаго знака. Працэнт е для лік з якая плавае кропкай, як сапраўдны нумар, для якога дзесятковай кропкі ў ім, якія конечно не цэлае. І ёсць цэлы куча іншых. Між тым у C, і ў многіх мовах, у нас ёсць розныя тыпы дадзеных. Розныя тыпы шкляныя чары, калі вы будзеце. Чаша я ў апошні раз быў для пінг-понга шароў, але мы таксама можам захоўваць розныя каштоўнасці, як знакаў і радкоў і цэлыя ў кантэйнеры, як зменнай, і C мае гэтыя. Паўкокс тып дадзеных, тып зменнай, у якім вы можаце захоўваць характар. Float з'яўляецца тып зменнай у якія вы можаце захоўваць сапраўдны лік. Int, вядома для міжнар. І хутчэй за смяхотна назваў вельмі доўга Тут вы можаце захоўваць сутнасці сапраўды доўгі нумар, з яшчэ больш знакаў, то Тыповы Int моц краму. Але мы вернемся да таго, што ў хуткім часе. У CS50 кропка ч тым часам іншы файл загалоўка што мы бачылі пару раз у выкарыстанні, ёсць дзве іншыя тыпы дадзеных, якія не існуюць у C звычайна. Адным з іх з'яўляецца радок, і мы ўбачым, у некалькі тыдняў якія радкі сапраўды з'яўляюцца пад капотам. І адзін BOOL. І BOOL гэта зменная, можа прымаць толькі пэўныя значэння. І толькі на аснове мінулым тыдні Тлумачэнне нуля, а ў апошні час С, што б вы здагадацца з'яўляюцца два магчымыя значэньні: некаторыя кантэйнер, які мае тып BOOL? Ды і няма. Адзінцы і нуля. Праўда ці хлусня. І на самай справе, што гэта апошняе, што мае тэндэнцыю каб быць звычайнымі у праграмаванні мову, кажучы то як сапраўднае або ілжывае. Між тым бібліятэка CS50 прыходзіць з кучай функцыянальных што персанал напісаў для вас, Акрамя таго, толькі атрымліваю радок. Мы напісалі загадзя функцый, можна атрымаць цэлы лік ад карыстальніка, атрымаць адзін знак, атрымаць паплавок, які проста нумар з коскі. Атрымаць доўга доўга, сапраўды Вялікае значэнне ад карыстальніка. Такім чынам, мы толькі бачылі гэта ў дзеянне ў выглядзе GetString. Але праз гэтыя функцыі хутка быць у стане напісаць праграмы, якія атрымліваюць дадзеныя ад карыстальніка. Між тым лічаць гэта Праграма, і разгледзець як цяпер мы маглі б пачаць, каб дадаць каб ён з новымі канструкцыямі. Хуткі беглы тур а затым мы будзем глядзець на некаторыя пісаць некаторыя праграмы ўручную самі. З гэтага часу, калі мы хочам рэалізаваць стан, гэта не будзе выглядаць міленькі даволі паззл. Гэта будзе выглядаць крыху больш складаных. Але гэта кананічнае Структура стану ў C. Слова, калі, два дужкі, усярэдзіне якога будзе свайго роду лагічнага выразы. Цяпер слэш слэш ў сярэдзіне, гэта на дадзены момант накшталт як псевдокод код запаўняльнік. Але больш правільна, любы радкі кода у С, што пачынаецца з касой касой рысы Гэта каментар. Гэта як запіскі, што вы маглі б паставіць на эсэ, надрукаванага на паперы. Гэта запіска да сябе. Гэта не мае ніякага функцыянальнага ўплыў на праграму. Гэта свайго роду напамін, што гэта ваша ўласная дакументацыя адносна таго, што адбываецца. Так што гэта на дадзены момант з'яўляецца свайго роду запаўняльніка па якіх ўнутры з тых фігурныя дужкі у канчатковым выніку будзе рабіць тое. Між тым у вас ёсць дзве відэльцы ў Дарога, калі яшчэ пабудаваць, як гэта. Вы можаце, калі, ElseIf, яшчэ. Цяпер варта заўважыць, асабліва калі вы былі трошкі вакол онлайн рэсурсаў з цікаўнасць, або, калі вы бераце ў рукі адзін з Курсу Рэкамендаваны кнігі па C, вы ўбачыце, што ў людзей ёсць шмат з розных прэферэнцый для як каб выказаць сябе ў кодзе. Некаторыя людзі любяць ставіць Фігурныя дужкі, як гэта зрабіў я. Некаторыя людзі любяць ставіць фігурных падцяжкі напрыклад тут. Некаторыя людзі любяць ставіць Эльсес тут і то гэта сюды. Там у любую колькасць спосабаў напісаць код, і ні адзін з іх маюць рацыю па сабе. Хоць ёсць некалькі што даволі няправільна. Але існуюць no--, калі гэта у канчатковым рахунку, вельмі рэлігійны спрэчка. На самай справе, адзін з самых раздражняльных рэчы пра інфарматыцы як ўпарты кампутарнікі можа быць. І вы знойдзеце на працягу доўгага часу, што нават вам развіць асабістыя перавагі пра тое, як ваш код павінен выглядаць. Не толькі сябе, не толькі стварыць выхад, але як ён павінен выглядаць эстэтычна. Так што мы будзем рабіць гэта дапаможа вам разам шлях да, пакуль па крайняй меры, стандартны стыль CS50, што, па меншай меры трымае рэчы аднастайным і лёгка чытаецца. Але больш на тых, адрозненні ў бліжэйшы час. Лагічнае выраз у C, калі вам хацеў сказаць, калі гэта ўмова праўдзіва і гэты, другі ўмова праўда, вы не пішаце слова і, як вы б на англійскай мове. Вы замест гэтага выкарыстоўваць Ампэрсанд Ампэрсанд, па прычынах, мы вернемся да. Калі вы хочаце сказаць, ці вы выкарыстоўваеце два вертыкальныя паласы, якія на клавіятуры ЗША , Як правіла, вышэй Калі ласка, увядзіце ключ побач з зваротнай касой рысы. І гэта толькі азначае, што калі гэта ўмова ці гэта іншае ўмова праўдзіва гэта зрабіць. Між тым ёсць гэта вар'ятка рэч, якая вы будзеце мець падставу выкарыстоўваць адзін раз у некаторы час. Але гэта ўсяго толькі альтэрнатыва спосаб выказаць сябе. Гэта, пакуль, давайце прадугледжваюць, што гэта проста іншы фанкі спосаб выразы калі, ElseIf, ElseIf, ElseIf, ElseIf. Гэта проста адфарматаваны ў плане выпадкаў, дзе вас літаральна пералічыць каштоўнасці, якія Вы можаце праверыць на. Між тым завесы. Мы бачылі параўнанне Драпіны з пятлёй. І я збіраюся махнуць рукой на што кожны з гэтых рэчаў азначае. Але звярніце ўвагу, што цыкл будзе вельмі часта пачынаюцца з ключавога слова для. Ці ён пачне з час ключавым слове. Ці ён пачне з ключавым словам зрабіць, і сканчаюцца час ключавым слове. Але тое, што мы збіраемся, каб убачыць з'яўляецца рэчы больш, як гэта. Вось, увогуле ў C, як вы маглі б абвясціць зменную і даць яму значэнне. У C яго не хапае, як у пустым, вы проста сказаў, даюць мне зменнай называецца тое. Вы павінны сказаць C, і скажыце кампілятар, больш канкрэтна, які тып кошту зрабіць вас хачу паставіць у шкляную ёмістасць. Гэта цэлае? Калі гэта так, вы павінны літаральна сказаць Int, а затым імя зменнай, то кропка з коскі. Калі вы замест хацеў радок і называецца Гэта ўсё роўна, я зрабіў свой код тут сёння, Вы б сказаў коскі струны с. Пасля таго, як вы хочаце, каб даць яму значэнне вы можаце выкарыстоўваць знак роўнасці, інакш вядомы як Аператар прысвойвання. І звярніце ўвагу, як кожны з гэтых радкоў кода мае кропку з коскі ў канцы. Але, шчыра кажучы гэта проста выглядае крыху непрыгожа. Чаму я не магу сказаць, да кампутара, даць мне пераменная і ініцыялізаваць яго да нуля. Гэта значыць, дай мне пустую шкляны міску. У той час як вы можаце. І таму адзін з прысуду называе вам павінны зрабіць стылістычна з цягам часу ёсць, вы напісаць свой код, як гэта, або вы, здаецца, яго прыбраць і вырабіць ўражанне людзі Дадайце дзве лініі, як толькі адзін. І гэта будзе лічыцца як правіла, больш элегантны спосаб напісання кода стылістычна. Функцыі мы вядома бачыў. Яны збіраюцца прыняць гэты фармат. Імя функцыі, некаторыя дужках, а затым, магчыма, некаторыя рэчы ўнутры. Ці вы маглі б бачыць выкарыстання некалькі функцый бок бок, як нешта накшталт гэтага. Цяпер па датычнай, робіць гэты жарт цяпер сэнс? [Смех] Гэта не значыць, што гэта смешна, але гэта сапраўды магчыма зрабіць трохі больш сэнсу. Так што цяпер давайце ўвойдзем у CS50 прыбор на імгненне. І дазвольце мне адкрыць адзін тізер тут. І на самай справе адна з прычын, для ўвядзення каталог IKEA і міргае карціну з мабільны трохі назад быў на самай справе звязаць разам Справа ў тым, што ўсяго некалькі гадоў таму, у 2007 годзе, гэты кавалак кода быў выпушчаны, які быў адзін з самых першых рэалізацыі кавалка праграмнага забеспячэння што робіць тое, што называецца джейлбрейка. Для тых, хто незнаёмы, джейлбрейка тое, як тэлефон ці мабільны азначае па сутнасці высвятляючы , Як зрабіць рэчы з ім, што кампанія хто зрабіў, што не мае намеру. Як вы хочаце ўсталяваць пэўны праграмнае забеспячэнне, якое не ў краме прыкладанняў, джейлбрейка тэлефона, які вы робіце рэчы, як, што і больш. Але тое, што было весела ў 2007-- і там было дзясяткі розных версій з гэтых рэчаў з тых часоў, ва ўсіх відах з languages-- з'яўляецца тое, што гэтая праграма тут, называецца iUnlock, была напісана на C. І таму я пад'ехаў зыходны код для гэтага, проста выгляд паказаць вам некаторыя з падабенства з канструкцыямі мы абмяркоўвалі да гэтага часу. Зараз ёсць спосаб больш складанасць тут чым мы бачылі ўжо ў класе. Дазвольце мне прагортку уверх толькі трохі тут. Але звярніце ўвагу, these-- добра мы заўважаем некалькі things-- не заўважыць гэтыя радкі тут, у тым ліку стандартны I / O кропка гадзіну. І all-- лінія 24, пожалуйста-- заўважыць стандартны I / O кропка ч і цэлая куча іншых Файлы, якія, па-відаць іншыя людзі напісалі. І калі мы пракруціць ўніз праз гэта, трохі адвольна, Заўважце, што я не ведаю, як пісаць усё гэта я абавязкова яшчэ, але ёсць калі. Так, мабыць, гэта мае філіял. І калі я пракруціць ўніз трохі далей ёсць яшчэ адзін, калі. Калі я пракруткі уверх, я думаю, вакол лініі 100 я бачыў для. Так што я не зусім упэўнены, як гэта працуе пакуль, але гэта для завесы, што адбываецца ў дазвольце мне паўтараць некаторы колькасць разоў. І калі я пракруткі ўсе да самага дна Я бачу, што ёсць функцыянаваць тут называецца Асноўны, і некаторыя дадатковыя крэдыты для вашага задавальнення чытання. Так што гэта толькі say-- і мы змесцім гэта онлайн сярод крыніцы Курсу Код сегодня--, што нават некаторыя з іх прылады, якія мы лічым само сабой якія разумеюцца, ў канцы дня вы ўсё яшчэ выкарыстоўваючы гэтыя асноўныя канструкцыі, якія мы ўкараняе ўжо да цяперашняга часу. Гэтага дастаткова гэтага аднаго. Добра, так што цяпер давайце на самай справе нешта пабудаваць. Пойдзем далей-то накшталт hello.c, і адкрыць гэты, давайце напішам гэтую праграму тут. Я збіраюся ісці наперад і напісаць праграму пад назвай adder.c, чыя мэта ў жыцці будзе як мой першы супер просты калькулятар што толькі дадае пару лікаў. Не таму што гэта цяжка Праблема, а таму, што яму дазваляе мне зараз звязаць разам некалькі рэчаў. Так што я збіраюся ісці наперад і ўключаюць Стандарт I / O кропка ч і CS50 кропка ч. Я збіраюся сказаць тап_п пустэчу. І зноў у будучыні мы вернемся да яго ў ў гэтым кантэксце і пустых сродкаў. І зараз я збіраюся сказаць нешта як Printf, дай мне цэлае. І цяпер на маёй другой лініі, як я магу выказаць сябе такія што я хачу абвясціць зменную што збіраецца захоўваць Int? Літаральна што ж я друкую, калі я хачу, каб стварыць зменную, якая захоўвае ў Int б вы сказалі? Int роўная GetInt. Вядома, так, што працуе. І толькі для кансістэнцыі з кодам вы будзеце глядзець онлайн, дазвольце мне змяніць гэта х, толькі таму, што х з'яўляецца агульным імя зменнай выкарыстанне, па меншай меры, у алгебры. Цяпер дазвольце мне ісці наперад і рабіць PRINTF зноў. Дайце мне іншае цэлы лік. А цяпер я збіраюся роду з даведацца з гэтай карціны, Я збіраюся сказаць Int ў трапляе ў GetInt. І мы не выкарыстоўваецца GetInt раней, але толькі як GetString ідзе і атрымлівае радок, як Хаўер зрабіў з залы, Аналагічна робіць GetInt пачынае міргаць падказку. І эфектыўна чакаць карыстальніка даць яму цэлае, увёўшы яго ў і патрапіўшы Enter. Цяпер, нарэшце, я збіраюся зрабіць гэта, Е суму of-- і дазвольце мне атрымаць фантазіі now-- адсоткаў я і працэнтаў я прысутнічае я клічнік зваротнай касой н. І што вы думаеце, што я збіраюся пакласці ў цяперашні час у якасці дадатковых уваходаў да Е? Я не хачу сказаць, літаральна працытаваць Unquote х. Я хачу класа ў х і тады, і цяпер давайце фантазіі і давайце выкажам здагадку, мы можам рабіць тое, што мы хочам. Што вы хочаце сказаць далей? х плюс у. І на самай справе, што будзе працаваць. Гэта мінімальна мовы праграмавання разумею асноўныя арыфметычныя, і такім чынам, гэта павінна на самай справе праца. Такім чынам, дазвольце мне ісці наперад і робяць гадзюка ў маім чорным і белым акне сюды, Enter. Cryptic лінія, але няма памылак паведамленне, так што гэта добра. Dot слэш гадзюка, дай мне цэлае, 1. Дайце мне іншае цэлы лік, 2. Сума 1 і 2 з'яўляецца 3. Добра, так даволі трывіяльна Праграма, але што ж гэта робіцца? Гэта дазволіла мне выкарыстоўваць функцыю называюць тут, выклікаць іншую функцыю тут, два звароты да GetInt, а Трэці выклік, каб Е, а затым з дапамогай гэтых запаўняльнікаў. Так што гэта крыху больш складаныя, чым у мінулы раз. Але што, калі я хачу, каб атрымаць крыху незвычайным? Дазвольце мне ісці наперад і зараз гэта зрабіць. Дазвольце мне ісці наперад і ствараць Новы файл называецца ўмовы нуля. І я іду, каб выратаваць некаторы час дзеля класаў і проста ўставіць ў тым, што Код у якасці адпраўной кропкі. А зараз я проста хачу, каб пакласці нешта новае тут у сярэдзіне. Так Е Я хацеў бы цэлае калі ласка. І ўсё гэта код даступны на сайце Курсу, Вы не павінны ўвесці ўсе гэта у класе, калі вы не хочаце. Int, і цяпер я збіраюся выкарыстоўваць, замест х і у, Я збіраюся выкарыстоўваць п, што верагодна, найбольш агульная назва для цэлага ліку ў кампутарнай праграме. А цяпер я хачу зрабіць трохі меркаваньне тут. Я збіраюся паглядзець, калі н больш, чым 0, тады Я збіраюся сказаць printf-- воклічы, printf-- вы выбралі станоўчае лік, Клічнік касая рыса н. Зачыніце што. А то я збіраюся раздрукаваць Е Вы выбралі адмоўнае лік. Зараз, перш чым вы крычыце на мяне, давайце запусцім гэтую праграму. Адпусьці мяне сюды. І як я магу скампіляваць праграму называецца ўмовы працяжнік 0? Зрабіце ўмовы працяжнік 0. Выгляд дурное імя, но-- чорт вазьмі. ОК, добрае выкладанне момант. Чаму, што зламаць? Што я выпадкова называюць гэты файл? Вы можаце роду выснову на ўкладцы тут. Так што гэта не дрэнна, што я зрабіў гэта, таму што гэта адбудзецца, магчыма, некаторыя з вас. Так я выпадкова назваў свой зыходны код стан 0. Але мой зыходны код па пагадненні павінны быць у файле пад назвай стан 0 працяжнік с, або што кропка ў. Такім чынам, дазвольце мне выправіць гэта. Гэтак жа, як Microsoft Word, я магу пайсці ўверх Захаваць як і зрабіць стан 0 кропка ў. Цяпер проста быць акуратным Я збіраюся ісці наперад і выдаліць стан 0, які быў маім старая версія. А цяпер давайце сапраўды робяць стан 0, Enter. ОК, здаецца добрым. Стан 0, Enter. Я хацеў бы цэлае калі ласка, 50, Вы выбралі станоўчае лік. Зараз, як аб негатыўным 50? Вы выбралі адмоўнае лік. А зараз, 0. Упэўнены, 0 ня адмоўны. Так што гэта свайго роду лагічнай памылкай. Як гэта выправіць? Інакш, калі п менш 0, зрабіць гэта, яшчэ мы можам мець трохбаковы філіял тут, Е вы выбралі 0. Так што цяпер, калі я паўторна гэта Праграма, пасля кампіляцыі зноў маркі, і цяпер паўторна стан 0, што я буду бачыць тут 0 дае мне гэтая выснова. Дык куды мы ідзем з гэтым? Ну, гэта вельмі лёгка страціць з-пад увагі лесу за дрэвамі. І так дазваляюць зрабіць выснову, з гэтым 2 і 1/2 хвіліны відэа што ў канчатковым выніку крыху з рэкламы ад Google, але, што сапраўды з'яўляецца сведчаннем таго, што нават з выкарыстаннем гэтых асноўны будынак блокі мы можам у канчатковым рахунку, зрабіць адзін раз у нас ёсць трохі праграмавання падкаваных пад нашымі паясамі. [МУЗЫКА ГУЛЯЕ] SAROO Брирли (VoiceOver): Гэта было 26 гадоў таму, і я як раз збіраўся павярнуць 5. Мы дабраліся да чыгуначнай станцыі і мы селі на наш цягнік разам. Мой брат толькі што сказаў, я буду застацца тут, і я вярнуся. І я проста падумаў, ну вы ведаеце, Я мог бы таксама проста пайсці спаць і ён проста абудзіць мяне. І калі я прачнуўся на наступнае дзень, увесь карэткі быў пусты на некіравальны цягнік, прывід Цягнік прымаць мне, што я не ведаю, дзе. Я быў прыняты ў Аўстралію, ў аўстралійскай сям'і. І мама упрыгожаны мой Нумар з карты Індыі, якія яна паклала побач з маёй пасцелі. Я прачынаўся кожную раніцу бачачы гэтую карту, і, такім чынам, ён накшталт як захаваў ўспаміны жывыя. Людзі казалі, што ты спрабуючы знайсці іголку ў стозе сена, Saroo Вы ніколі не знойдзеце яго. Я б ўспыхнулі з месцаў, якія я хадзіў, ўспышкі маёй сям'і сутыкаецца. Быў вобраз маёй маці, сядаючы са скрыжаванымі нагамі, проста глядзець, як яна плача. Жыццё так цяжка. Гэта было маё скарб. І я глядзеў на Google Map і зразумеў, што ёсць Google Earth, а таксама. У свеце, дзе вы маглі б павялічыць у, У мяне пачаліся ўсе гэтыя думкі і якія магчымасці што гэта можа зрабіць для мяне. Я сказаў сабе, вы ведаеце, вы, атрымаў усе гэтыя фатаграфічныя ўспаміны і арыенціры, адкуль ты родам, і вы ведаеце, што горад выглядае. Гэта можа быць дадатак, якое Вы можаце выкарыстоўваць, каб знайсці дарогу назад. Я падумаў, ну я пакладу кропка на чыгуначнай станцыі Калькуты, і радыус лініі, вы ведаеце, што вас варта шукаць вакол гэтай галіне. Я, вядома, сутыкаўся гэтыя чыгуначныя шляхі. І я пачаў пасля яго, і Я прыйшоў да чыгуначнай станцыі, якая адлюстраванне і той жа малюнак што было ў маіх успамінах. Усе супала. Я проста падумаў, так, я ведаю, куды я іду. Я проста збіраюся дазволіць карта, якая ў мяне ёсць у галаве прывесці мяне і прыняць мяне назад у мой родны горад. Я прыйшоў да парога Дом, які я нарадзіўся. І абышоў каля 15 метраў за вуглом, было тры дамы стоячы звонку, побач адзін з адным. А сярэдні ступіў наперад, і Я проста думаў, гэта твая мама. Яна выступіла, яна абняла мяне, і мы былі там на працягу прыблізна пяці хвілін. Яна схапіла мяне за руку і яна ўзяла мяне да дома і атрымаў па тэлефоне, дзе яна патэлефанаваў маёй сястры і майго брата сказаць, што, вы ведаеце, брат твой мае толькі усе раптам з'явіўся як прывід. А потым сям'я зноў ўз'ядналася. Усе ўсё добра, Я дапамагаў маме з, яна не павінна быць вядзёнай далёка. Яна можа пражыць рэшту яе жыцця ў свеце. Гэта была іголка ў стозе сена, але іголка была там. Усё ёсць. Усё, што мы ёсць у свеце з'яўляецца на націск кнопкі. Але вы павінны мець жаданне і рашучасць жадаючы яго. [МУЗЫКА ГУЛЯЕ] DAVID малая: Цудоўна салодкі сведчанне толькі тое, што вы можаце цяпер рабіць з тэхналогіяй. Мы будзем бачыць вас на наступным тыдні.