>> [Прайграванне відэа]
>> -А Трыюмф матэматычнае і механічнай ўменне
гэта вялікі новы аўтамат калькулятар ў Гарвардскім універсітэце.
Складаныя праблемы матэматыкі паклаў праз машыну ў закадаваным выглядзе
на стужцы дакладна вырашана ў нікчэмна малая частка часу, неабходнага
для разліку чалавека.
Прызначаны для паскарэння ўсіх формаў матэматычнае і навуковае даследаванне,
гігант механічная мозг будзе працаваць для ВМС ЗША да канца вайны.
>> [КАНЕЦ ПРАГЛЯДУ]
>> Дэвід Дж малая: Гэта, гэта CS50.
Мінулае было чароўнае месца, але калі вы калі-небудзь
Цікава, што гэта прылада у Гарвардскім навуковага цэнтра,
гэта сапраўды частка з Гарвардскі Марк I, і гэта
на дысплеі ў цяперашні час за апошнія шмат гадоў.
І тое, што вы ўбачыце убудаваныя ў набор праблем
адзін погляд за кулісы на тое, што гэта прылада зрабілі, і робіць,
прафесара Гары Льюіс, які ў навука аддзел тут кампутар.
Так пра гэта трохі пазней.
>> Але сёння мы пачынаем пераход з мінулага тыдня на гэта,
і мы прывязем згадкі адной фатаграфіі тут
што на самой справе даволі вядомы.
Хто-небудзь ведае, што гэта тут на экране?
Прынамсі, паводле міфа.
Так.
Аўдыторыя: першы вірус.
Дэвід Дж малая: Так было, маўляў, самы першы фактычны памылка ў кампутары.
Зараз у рэальнасці слова памылка, за памылку ў праграме,
быў з намі для некаторых час у фізічным свеце,
і гэта быў адзін з першых дакументальна часы, калі хтосьці сапраўды
сарваў вялікі молі з Марка II кампутар, пакладзеце яго ў злучным,
а затым запісаў яе у якасці першага вядомая памылка
каб на самой справе былі знойдзеныя фізічна.
Так, такім чынам, быў уведзены што ў сённяшняй веды.
Усё, пачынаючы ад апошняй тыдзень даступныя ў Інтэрнэце.
У прыватнасці рэсурсаў, якія вы, магчыма, не абавязкова заўважыце, асабліва
калі сюды асабіста.
Такім чынам, адна з навучальных субратаў кожны год робіць кананічны набор нот,
так што вы не павінны трымаць Ваша галава ўніз, імкнучыся
транскрыбаваць большасць нічога што можа здарыцца тут, у класе.
Так зразумець, што тыя так званы [? Scribd?] Заўвагі
у Інтэрнэце, вядома слайды і зыходны код, які мы выкарыстоўваем у класе.
Мы паўнатэкставыя стэнаграмы таксама даступныя.
Так што калі вы цьмяна памятаю некаторыя Тэрмін, і вы хочаце, каб паглядзець яго крыху
больш лёгка, зразумець, што ўсе таго, што для пошуку ў Інтэрнэце.
Як пакрокавыя таксама.
Сапраўды, сёння мы пачынаем глядзець на мова праграмавання нізкага ўзроўню,
хутка будзе вядома да нас як З, і гэта вельмі лёгка
у свайго роду заблудзіцца пасля некалькіх моманты часу, і потым накшталт здзіўлення
як мы фактычна атрымалі некаторыя больш складаны прыклад з простых.
І так разумею, што мы будзем вішнёвы выбраць нейкі падчас заняткаў
прадстаўнічых прыкладаў, але разумеюць, што значна больш, таксама
даступныя ў Інтэрнэце, так што вы можаце працаваць праз яго ў сваім уласным тэмпе,
Аднак вы найбольш камфортна.
>> Але мы спыніліся з праграмы, якія былі толькі ў гэтым.
Так я націскаю зялёны сьцяг, і што гэта праграма?
Кажа, прывітанне, свет.
Гэта робіць котка сказаць прывітанне ў сваім маленькім свеце
ў левым верхнім баку карыстацкага інтэрфейсу нуля ст.
Але мы пачалі ўкараняць некаторыя тэрміны на мінулым тыдні.
І так, усё, як гэта мы назвалі тое, што?
Што можа быць агульны тэрмін для гэтага?
Так.
Метад або заяву.
Вядома, гэта дзеянне.
Зрабіце гэта.
І ўсё ж было іншыя формы падрапаць,
акрамя таго, гэтыя так званыя Заяву, яны таксама
такія рэчы, якія мы называлі тое, што?
Так.
Такім чынам, цыкл.
І ў гэтым выпадку, гэтая рэч паўторы, відавочна, у 10 разоў.
Там гэта назаўжды блок.
Там ёсць пара іншых.
І сёння мы збіраемся, каб убачыць, як перавесці гэта ў больш сучасным свеце,
калі хочаце, нават калі гэта збіраецца здацца на першы погляд
значна больш складаных.
Але гэта былі сапраўды завес.
І тады ў нас ёсць такія рэчы, як гэта, які меў такую ​​форму,
і, па сутнасці задаюць пытанні.
І мы казалі на іх як што?
>> АЎДЫТОРЫЯ: лагічны выраз.
>> Дэвід Дж малая: Так.
Лагічнае выраз.
Нешта, што з'яўляецца сапраўдным або хлусня, так ці не, адзін ці нуль,
Аднак вы хочаце, каб глядзець на свет.
Але мы назвалі тых, Лагічны выразы, і мы падключыць іх
ва ўмовах, або філіялаў.
І ў свеце Драпін, усё прыгожа
блакавання з пункту гледжання яго формы, калі ён робіць лагічны сэнс рабіць так,
але вы не павінны спыняцца на проста робім адну справу ўмоўна,
вы можаце мець прыказак раскашэліцца на дарозе
і рабіць тую ці іншую, калі ўмова праўдзіва ці не.
А потым, як вы ўбачыце, калі вы яшчэ гэтага не зрабілі,
Вы нават можаце гняздзе гэтыя блокі.
Так драпін расце, каб запоўніць формы што вы, магчыма, захочаце, каб ўставіць у яго,
так што вы можаце выказаць найбольш нейкая логіка, што вы, магчыма, захочаце зрабіць.
>> Зараз некалькі слоў пра аб'явай для тут і Нью-Хейвен.
Так секционирования пачынаецца сёння.
URL-адрас для гэтага на курс-х сайт, для тых, хто незнаёмы.
Раздзелы будзе магчымасць сабрацца разам
у значна больш інтымнай абстаноўцы чым [? Сандэрс?] Дазваляе,
з 10 да 20 з аднакласнікамі выкладання стажыроўку ў розных напрамках,
і розныя кроках, калі вы таго пажадаеце.
Сапраўды прапановы курсаў розныя раздзелы
для тых, хто менш камфортна, больш камфортна, і дзе-то паміж імі,
і ролю вялікага пальца тут, няма фармальнае вызначэнне,
але калі вы менш камфортна, вы, здаецца, ведаеце гэта.
Вы крыху бясстрашны аб Ідэя актывізацыі нагу, мабыць, назад
у класе, або паказваць аж да In Between раздзеле.
Калі вы ўжо праграмавання, так як вам шэсць гадоў, больш камфортна,
магчыма, для вас.
І калі гэта выгляд лёсавання, гэта менавіта тое, што паміж імі
прызначаецца, каб быць.
>> Цяпер, у той жа час, для класа такога памеру,
гэта бярэ нас некаторы час, каб раздзеле усе, таму мы так званая,
супер раздзелы, падышоўшы гэта выходныя і ў пачатку наступнага тыдня,
так што зірніце на сайце Курсу для тых, якія, вядома шырокі,
а таксама для тых, хто здымаў хто не можа зрабіць іх.
І самі раздзелы пачне на тыдзень тры CS50 нулявым індэксам.
Праблема ўсталяваць 0 ўжо на вэб-сайце курсу.
І разумею, што ў вас ёсць дзевяць дзён у гэтым канцы семестра.
Так што гэта абнаўленне ад апошняга годзе, калі ў нас было пяць дзён позна.
>> Так што, калі вам цікава ,, у нас ёсць дзевяць праблемных наборы.
Вы павінны дзевяць дзён позна, кожны з якіх Вы можаце выдаткаваць толькі адзін у тыдзень на.
Гэта фактычна робіць усё праблема ўстанаўлівае за пятніцу,
але мэта пакласці трохі трохі псіхалагічнага ціску
на вас, каб паспрабаваць атрымаць рэчы ў чацвер
таму што, як вы хутка выявіце, да лепшага ці да горшага, большасць
усё ў свеце праграмнага забеспячэння заканчваецца заняў значна больш часу, чым вы чакаеце.
Так лічаць свайго роду магчымасцяў, каб дапамагчы
сабе мэта чацвер, але суцяшэнне ў тым, што, так,
ўсё з-за пятніцу.
І калі вы прадставіць іх на Чацвер, гэта выдатна.
Там няма бонусных балаў або дадатковых крэдыт на гэтыя тэрміны.
Гэта азначала, што толькі мыліца.
>> І працоўныя гадзіны, і тут і ў Нью-Хейвене,
у твар, калі вы хацелі б сустрэцца з любым з нашых курсаў
выкладання стыпендыятаў і цэнтраў сертыфікацыі для дапамогі.
>> Добра.
Так што цяпер, давайце зробім гэта больш рэальным.
І на імгненне ён збіраецца пачаць каб атрымаць трохі больш таямніцай, але вельмі
хутка ў пятніцу і на наступным тыдні мы будзем
ў стане зрабіць значна больш, чым мы маглі да гэтага часу ў драпіна.
Такім чынам, мы ўвялі код апошняй тыдзень, хоць Pictoral.
Гэта было галаваломкі.
І мы фармалізаваны, што гэта тое, што называецца зыходны код,
але ці будзе выглядаць?
Ну, гэта выглядала трохі нешта накшталт гэтага.
І на самай справе, толькі выгляду дражніць, дзе мы можам пайсці з гэтым.
Я збіраюся ісці наперад і адкрыць акно тут,
і я проста хачу, каб выбраць новы файл.
І я іду, каб выратаваць гэты файл а нешта накшталт прывітанне кропка ў.
Больш на тым выбары слова ў хвіліну.
І гэта, як хто-то можа ісці аб напісанні праграмы.
Ўключыць стандартны I / O кропка гадзіну, INT асноўнай пустата, а затым адкрыць фігурная дужка, недалёка
фігурная дужка, Printf прывітанне коскі свет, Зваротная касая рыса н, кропка з коскі, Захаваць, зроблена.
ОК.
Я напісаў мой першы праграма, але яна збіраецца
каб быць неверагодна захапленне таму што, калі я на самай справе
запусціць гэтую праграму, вядома, першым пісьмовай форме зрабіць прывітанне,
а затым кропка слэш прывітанне, і мы прайсці праз гэта ў значна больш падрабязна
у цяперашні час, гэта ўсё, што ён робіць.
Любая поп не адчыняць любыя вокны.
Гэта нічога не рабіць асабліва фантазіі.
Усё гэта робіць тое, што я сказаў яго рабіць, але, як мы дабяромся да гэтага?
І, як мы будуем на што?
Ну, давайце пазнаёмімся некалькі розныя паняцці тут.
>> Такім чынам, адна, мы збіраемся пачаць выкарыстоўваючы праграму пад назвай кампілятар.
Кампілятар існуе Mac OS, Windows, Linux, любую колькасць аперацыйных сістэм,
і мы хутка ўвесці вас у серада, што мы будзем выкарыстоўваць,
але кампілятар проста агульнае тэрмін для часткі праграмнага забеспячэння
які прымае зыходны код і вырабляе аб'ектны код з яго.
Іншымі словамі, калі вы ёсць ў якасці ўваходнага крыніцы
Код, нешта накшталт таго, што я толькі што ўвялі, гэта ў канчатковым рахунку прыводзіць аб'ектны код.
І аб'ектны код на самай справе проста мудрагелісты спосаб сказаць, што гэта выводзіць
нулявы і адзін гадоў.
Іншымі словамі, крыніца Код, хоць гэта
будзе выглядаць трохі Arcane, і трохі менш дружалюбным
чым нуля на першы погляд, гэта па меншай меры нешта
што мы, людзі, можам зразумець.
Гэта свайго роду выглядае і гучыць як Англійская, хоць гэта вельмі кароткім.
У той час як у праграмаванні нулямі і адным, паколькі нашы папярэднікі былі зрабіць,
Некалькі гадоў таму, не было Асабліва весела выклік.
І ўсё ж, гэта тое, што кампутар па-ранейшаму разумее.
Так кампілятар атрымлівае ад нас Зыходны код у аб'ектны код.
Гэта як адкрыццё файла з кампілятар, і, калі вы захаваеце яго,
вы атрымаеце гэтыя нулі і адзінкі.
Такім чынам, мы ўбачым, як зрабіць што у хвіліну.
>> Але давайце паспрабуем, каб забяспечыць Мост паміж апошні тыдзень, і гэта,
так што нават, як мы зацыклівацца на такіх рэчах, як фігурныя дужкі,
і кропкі з коскай, і дужкі, і усе гэтыя інтэлектуальна цікавым
аспекты праграмавання, што вельмі зразумела паездка людзей рана на,
разумець, што ўсе ідэі Сёння, такія ж, як у мінулым.
Так, нарэшце, мы ўбачылі гэты прыклад тут, Hello World праграма.
Ну, пачынаючы з сённяшняга дня, калі мы хочам ажыццявіць той жа праграму,
гэта будзе выглядаць сёе-тое як гэта.
І мы разгадаем, перш чым доўгі якой Int, а галоўнае, сілы, і ўсё, што
ёсць, але, па меншай меры я бачу тут ўжо знаёмыя Hello World.
>> Між тым, такія рэчы, як Функцыя, скажам прывітанне,
вельмі проста будзе вельмі простае сцвярджэнне, як гэта.
Printf прывітанне свет, з некаторымі цытуе, з зваротнай касой рысы,
з коскі, але больш падрабязна пра гэта ў будучыні.
Завесы, тым часам, гэта цыкл, які, Вядома, кажа прывітанне свет назаўсёды,
і гэта адна збіраецца выглядаць крыху дзіўна, чым у апошняй,
але калі я нешта сказаць як, у той час як дакладна, я
Затым можна раздрукаваць Прывітанне свет зноў і зноў і зноў і зноў.
А потым, як вы можаце выгляд з пачатку, каб вывесьці тут,
Дадзеная Канвенцыя выкарыстання Фігурныя дужкі гэта свайго роду
паходзіць якая ахоплівае водступам радкі кода там.
Printf радок кода гэтак жа, як жоўты кавалак галаваломкі наверсе.
Такім чынам, мы не збіраемся казаць вечна, мы збіраемся сказаць, у той час як дакладна,
але мы ўбачым, чаму гэта крыху пазней.
>> Між тым, калі ў нас ёсць цыкл, як гэта, дзе вы паўтарыць нешта канчатковае
колькасць разоў, на гэты раз таксама гэта збіраецца заняць крыху прывыкнуць
, Але гэта будзе сказаць Int я атрымлівае нуль, я менш, чым 10, я ++,
а затым Printf зноў.
Але там будзе ўзоры.
А для тых з вас, хто знаёмы з А. П. інфарматыкі, або Java,
або любую колькасць іншых мовах, амаль усе з гэтых канструкцый
Такім чынам, далёка павінен выглядаць у асноўным знаёмыя.
>> Так пераменная.
Дык вось просты драпін урывак, што ўсталёўвае зменную лічыльнік да нуля,
а затым назаўжды кажа лічыльнік, і Затым ён змяняе значэнне лічыльніка на адзінку.
Так што пачынаецца з нуля, а затым адзін, два, тры.
Ну, як мы маглі б увесці, што ў гэты новы мова трохі аналагічна?
Int лічыльнік роўны нуля, у той час як дакладна, што
з'яўляецца тое, што тая ж самая ідэя, перш чым з рабіць нешта назаўжды,
і я проста хачу, каб PRINTF.
І зараз гэта становіцца трохі дзіўным, адсоткаў я, але пра гэта наперадзе,
але гэтыя ідэі ў дакладнасці тое ж самае.
Мы толькі цяпер павінны прытрымлівацца сінтаксіс, што кампутар
збіраецца запатрабаваць ад нас.
>> Лагічнае выраз, нешта накшталт SX, чым у менш, або х меншых у,
і ў меншага, чым г.
Гэта будзе выглядаць сёе-тое як гэта, з дужкі за ўсё
як у матэматыцы для добрай мерай проста гарантаваць, што парадак аперацый
як мы маем намер.
А цяпер, ўмовы.
Так што, калі х менш, чым у, скажам, х менш чым у, то, калі х больш у,
сказаць х больш у, у адваротным выпадку лагічна, х павінна быць роўная у.
Такім чынам, вы маглі б рэалізаваць нешта накшталт гэтага ў пустым,
ці вы маглі б рэалізаваць ён у гэтым сінтаксісе.
І зноў, фігурныя дужкі з'яўляюцца свайго роду даючы нам тую ж форму, галаваломкі
штук, але сінтаксіс, цяпер, мабыць пачынаюць прытрымлівацца некаторыя заканамернасці.
>> Такім чынам, што ж гэта нам дае тут?
Так што мы тады на нашым асноўнай праграмы.
Давайце на самай справе, у цяперашні час, зрабіць што-то з ім.
Такім чынам, у гэтым самы першы радку мы бачым рэзкае ўключаюць,
Standard I / O, кропка ч, а то некаторыя дзіўныя кут
Кранштэйны ніжэй, што. INT асноўнай несапраўднымі, а затым Printf прывітанне свет.
Так што проста зрабіць крок.
Хтосьці, хто ніколі не праграмаваў раней, па меншай меры, растлумачыць адну з гэтых ліній.
Выкарыстанне магчыма, некаторыя з жаргон мінулым тыдні.
Што Printf, напрыклад?
Так.
>> АЎДЫТОРЫЯ: [неразборліва]
>> Дэвід Дж малая: Так.
Гэта функцыя, або заяву, ад тэрміналогіі на мінулым тыдні.
І гэта дзеянне што робіць нешта.
Зараз гэтая функцыя, або гэта зацвярджэнне, ня
гэта, здаецца, прыняць нейкія ўваход?
І ў чым сэнс робіць гэта здаецца, прыняць ўваход, калі так?
Уваход, што я маю на ўвазе, што?
Так.
>> АЎДЫТОРЫЯ: [неразборліва]
Дэвід Дж малая: Так.
Так выдрапаць некалькі штук галаваломкі дзе вы можаце параметризовать яго.
Вы маглі б сказаць паўтарэння блакаваць, колькі разоў паўтараць,
так, каб быў уваход віды, і, як нуля
быў маленькі белы запаўняльнік па колькасці вы ўводзіце,
так што мы выкарыстоўваем у гэтым Тэкст свету дужкі
каб даць нам, што круглую форму у якіх мы можам падключыць свой уклад.
Бо дзясяткі гадоў таму калі гэтая мова, званы З,
быў вынайдзены не адзін Мяркуецца, што гэта адзін з нас,
гэтыя некалькі гадоў праз, мы б патрэбна функцыя, якая кажа прывітанне.
Дакладна?
Было б нядрэнна, калі б там было кавалак галаваломкі, або ключавыя словы,
што называецца прывітанне, што літаральна кажа прывітанне.
Але мы не павінны гэтага.
Мы можам што-то значна больш нізкай Ўзровень, як агульнага друк
Каманда, якая прымае ўвод, і друкуе усё, што мы хацелі.
Так заўважыць цяпер карціна што пачнуць з'яўляцца.
Адкрытыя Хлопец, недалёка знаходзіцца дужка па-відаць, ахоплівае ўваход,
і тады я бачу двойчы цытуе на абодвух канцах.
Існуе яшчэ дзіўна зваротны слеш п, але, спадзяюся, зараз вы
можа пачаць візуалізаваць па меншай меры, Printf прымае ў якой-небудзь форме ўводу.
Не так, як зручны Драпіна, але гэта проста
як таго падлучаны некаторага значэння там.
>> Добра, зараз давайце на самай справе зрабіць што-то з гэтым.
Такім чынам, некаторыя з вас, магчыма, ведаеце, ад маючы перад куплі клас,
балбаталі з сябрамі, што на працягу многіх гадоў
мы выкарысталі тое, што называецца CS50 прыбор.
Гэта быў тэрмін, які апісвае тэхналогію называецца віртуальная машына, якая
гэта частка праграмнага забеспячэння, ШТО вашыя папярэднікі б загрузіць з
Сайт Курсу бясплатна.
Яны таксама спампаваць бясплатна кавалак праграмнага забеспячэння, званага гіпервізара,
тое, што называецца, як VMware, або VirtualBox, або любую колькасць
іншыя інструменты, і на іх Mac ці PC або што-то кампутар яны мелі ў мінулым годзе
і ў мінулыя гады, яны будзе двойчы пстрыкніце значок
каб запусціць гэтую праграму называецца гіпервізара.
А потым ўнутры гэтай праграмы яны адкрыюць CS50 прыбор.
І эфект у тым, што Ці ваш папярэднік
бег Mac OS або Вокны, ён ці яна
Пасля было новае акно на іх Экран працуе асяроддзя CS50 ст.
Такім чынам, віртуальная машына дазваляе запускаць адзін аперацыйнай сістэмы ўнутры іншы,
і гэта менавіта тое, што мы зрабілі.
На працягу амаль ўсяго курсу мы выкарыстоўваць аперацыйную сістэму пад назвай
Linux, у прыватнасці, Ubuntu Linux, і гэта
гэта вельмі добры спосаб у мінулым гадоў Пераканаўшыся, што ўсё ў працэсе
толькі што тую ж сераду.
І вы можаце выкарыстоўваць любы від кампутар, вы сапраўды хочаце.
Сярод недахопаў, тым не менш, былі, як гэта было два гігабайта
каб спампаваць гэты рэч.
Гэта не абавязкова працаваць на супер добра людзі, чые кампутары, што, можа быць, толькі
быў канцэрт ці так АЗП, ці не занадта шмат гігагерц хуткасці працэсара,
і таму ў гэтым годзе, па гэта і іншыя прычыны,
у нас быў пераход да гэтага асяроддзя.
Так званы CS50 IDE, які на базе праграмнага забеспячэння з адчыненым зыходным кодам,
і падтрымлівае платформу што кампанія пад назвай Cloud9
падтрымлівае ў Еўропе, што дазваляе нам мець па сутнасці
што сапраўды такі ж, як у сераду апошнія гады, але ў так званай воблаку.
>> Так што воблака?
Вы, напэўна, націснуў яго значок на вашым Mac ці PC.
Што такое воблака?
Да?
Ледзь гучней.
Так.
Гэта проста куча кампутараў у іншым месцы, што захоўваць дадзеныя і запусціць
Праграмнае забеспячэнне і да таго падобнае.
Так што гэта на самай справе проста да слова дэ юрэ апісання [? арандуемай?]
кампутары, якія жывуць у іншым месцы.
Гэта вы, самі, не абавязкова мець.
Так што, калі вашы дадзеныя, ці ваш праграмы, у воблаку,
гэта проста азначае, што гэта на кагосьці Чужая кампутары ў іншым месцы,
а не, хутчэй за ўсё, на вашым фізічная ноўтбук або настольны.
І вось што CS50 IDE цяпер.
>> З гэтага часу вы будзеце ісці да пэўнай Спасылка, што пазнаёміць Вас
каб, ў задачы набор 1, у гэтым тыдзень, якія затым, пры ўваходзе ў сістэму
даць вам гэтую сераду.
І гэтак жа, як да драпін быў некалькі розных панэляў, якія ўдзельнічаюць,
гэтак жа IDE CS50 маюць менавіта гэта.
На верхнім левым баку тут, вы ўбачыце знаёмы файлавы браўзэр.
Такім чынам, любы з файлаў, якія змясціць у гэтую сераду
толькі збіраецеся знаходзіцца тут.
Файлы і тэчкі.
На вяршыні прама тут, Вы ўбачыце месца,
дзе вы можаце напісаць свой код.
Першапачаткова ў C, а затым у член у PHP і JavaScript,
і, магчыма, для канчатковага праекты, Рубі або Java або Python,
або любую колькасць моў падтрымліваецца ў гэтай асяроддзі.
Гэта зусім не звязаныя каб CS50 адмыслова.
>> А потым у ніжнім куце тут, асабліва для тых, хто больш камфортна,
ў вас ёсць што-то называецца акно тэрмінала.
І гэта акно тэрмінала дазваляе Вам выканаць любую каманду, што вам
хачу ў гэтым хмарнай асяроддзі.
Гэта дазваляе ўсталёўваць любая дадатковая праграма
што вы хочаце, таму што вы так называецца корань, або адміністратара.
Такім чынам, іншымі словамі, нават калі гэта у канчатковым рахунку, у воблаку,
і хоць у нас ёсць спрошчаная гэта да некаторай ступені
па змаўчанні, у літаральным сэнсе ўвядзення, дзякуючы Дэну Armendariz, і Дзіна,
і Дэн Брэдлі ў камандзе CS50 на працягу многіх міма многіх месяцаў, менш камфортна
рэжым, які хавае шмат з Першапачаткова заблытанай адцягнення.
Усе існуе ў ўяўляюць сабой тыповы кампутарную сістэму
што вы маглі б выкарыстоўваць у рэальным свеце.
>> Такім чынам, што ж ўсё гэта значыць, і што мы можам рэальна зрабіць з ім?
Давайце на самай справе зазірнуць у праграме.
Так што я збіраюся адкрыць бягучая сераду тут,
што толькі наша Chrome браўзэра, які можа быць Firefox,
можа быць Internet Explorer, ці якой-небудзь іншы браўзэр, а таксама.
Гэта поўны скрынінг тут на дадзены момант.
І я хачу, каб на самой справе дражніць акрамя таго, што гэтая праграма была.
Такім чынам, давайце зірнем, шляхам павелічэння ў да пачатку, на тое, што я зрабіў, і як я трапіў сюды.
Дык вось тыя, дакладнае жа радкоў кода.
Так што гэтую заяву, як вы згадалі раней.
Функцыя, якая кажа прывітанне.
Фігурныя дужкі, на лінія чатыры радкі шэсць,
меркавана выгляд канверта што лінія звязаць яго
з сутнасцю маёй праграмы.
Так на самой справе, гэта галоўнае ключавое слова, гэта там, на трэцяй лініі,
Вы можаце думаць аб тым, што ў якасці эквівалента таго, што, калі зялёны сцяг пстрычцы
блакаваць ў драпіна.
Так што ўсё, што мы маем тут, калі зялёны сцяг пстрычцы друк, або сказаць,
прывітанне свет.
>> Але давайце здагадацца, цяпер, на тое, што гэта першае, больш таямніцай лінія, ёсць.
Sharp ўключаюць, адкрыты пад вуглом кранштэйн, стандартны ўвод / выснова кропка ч,
зачыніць вуглом кранштэйн.
Што рабіць, што, магчыма, асабліва калі вы праграмавалі
перш у якой-небудзь іншай мову.
Да?
>> АЎДЫТОРЫЯ: [неразборліва]
Дэвід Дж малая: Так.
Дакладна.
Такім чынам, гэта дае вам доступ да бібліятэка, так бы мовіць, функцый.
І бібліятэка функцый Функцыі, якія хтосьці яшчэ
напісаў, альбо нядаўна ці даўно, так што вы
не трэба вынаходзіць кола.
Напрыклад, мы не павінны ведаць, у 2015 годзе,
як пісаць код, які ставіць характар ​​на маім экране.
Нехта іншы ўжо вырашыў, што з функцыяй PRINTF
так што я магу сартаваць абстрактнага ад гэтага, або пласт
на вяршыні яго ці яе Код, і зараз проста ўзяць
разумеюцца, што любая праграма я пішу можа нешта надрукаваць на экране.
Такім чынам, гэта першая лінія ёсць на першым этапе ўключае ў сябе так званае загалоўкавых файлаў
для стандартнай бібліятэкі.
Так бачыце, мова якія мы ў цяперашні час працуе
была стандартнай бібліятэкі з вялікай колькасцю функцый.
Printf з'яўляецца адным з іх, і што першая радок кода
азначае даць мне доступ да гэтыя функцыі, так што я
не трэба вынаходзіць кола, што.
>> Зараз давайце пяройдзем да ніжняй частцы акна і рабіць тое, што я рабіў раней.
Хвіліну таму, калі я быў свістам праз код,
ўводзіць яго ў першы раз, Я вельмі хутка набіраецца, зрабіць прывітанне.
Што было тое, што ўсё аб б вы здагадаліся?
Што я раблю?
Да?
Нічога.
Гэта нармальна.
Так.
АЎДЫТОРЫЯ: Кампіляцыя яго.
Дэвід Дж малая: Так.
Гэта было проста кампіляцыі.
Дакладна?
Нават калі гэта зусім не знаёмы Вам, гэта даволі па-ангельску, як.
Гэта, вядома, не нулі і тыя ,, так што я да гэтага часу
трэба, каб запусціць яго праз што так званая Праграма, кампілятар, што адбываецца
прыняць яго ў якасці ўваходных дадзеных і вырабляць прадукцыю.
І па меншай меры, у цяперашні час, у гэта асяроддзе Linux,
але гэта не абавязковая ўмова, гэта там, дзе мы пачнем,
Вы наогул ўзаемадзейнічаць з кампутарныя сістэмы, як гэта
на так званай каманднага радка.
Так з мігценнем хуткае і клавіятура,
і не столькі мыш, а не столькі вокнаў і абразкі і меню,
а ўсе тэкставыя.
І хоць гэта адчувае, спачатку погляд, можа быць, як крок назад,
гэта на самай справе значна больш, магутны і выразны спосаб
кантраляваць кампутар асабліва, як вы,
самастойна, становяцца больш камфортна з менш.
Гэта адбываецца, каб дазволіць вам зрабіць шмат больш рэчаў, чым проста нейкі Microsoft
або Apple, дазваляе рабіць з іх графічнае аперацыйнай сістэмы.
>> Так што, калі я ударыў Enter, зараз, нічога не адбываецца на гэты раз
таму што відавочна Праграма прывітанне да даты.
І тое, што была каманда Я пабег за што?
Кропка слэш прывітанне, і прывітанне свет.
Зараз давайце крок рэзервовае на імгненне.
Аказваецца, што зрабіць прывітанне проста Спрошчаны спосаб кампіляцыі праграмы.
Давайце проста ўвесці адна частка жаргон,
але потым адысці ад яго, так як гэта не
усё, што цікава для сённяшніх мэтаў.
Кампілятар мы збіраемся пачаць выкарыстоўваць называецца ляск, для мовы C.
І гэта праграму, якая проста працаваць як мы рабілі ў камандным радку там.
І таму, калі я хачу кампіляваць праграму, што я
напісаў у файле пад назвай прывітанне кропка з, я літаральна проста ўвядзіце ляск прывітанне C
увайсці.
>> Самае смешнае ў тым, па гістарычных прычынах,
калі я не пазначыць Назва праграмы
што я хачу для вываду, калі я не паказаць імя файла для тых нулёў
і тыя ,, вельмі дзіўны Канвенцыя была прынята гады таму
дзе ён адчуваў сябе свайго роду добры адказ у той час,
а давайце проста адвольна называем Першая праграма мы збіраем кропку па-за.
Прыходзіць першым у алфавіце.
Ад'езду, гэта выхад.
Такім чынам, мы будзем называць праграму па змаўчанні кропка з.
І гэта нармальна, таму што, калі я хачу, каб запусціць праграму ў гэтым тэксце, заснаванага
навакольнае асяроддзе, я проста ўвядзіце кропка слэш кропку з ўвайсці ў сістэму.
І яна будзе працаваць менавіта так, як раней.
Такім чынам, давайце паглядзім, што вельмі хутка.
>> Так што, калі я вярнуся ў мой зыходны код на CS50 IDE,
і я замест гэтага ляск прывітанне ложачак C Увядзіце апавяшчэнне нішто, здаецца, каб гэта адбылося,
але амаль заўсёды ў гэта асяроддзе Linux,
калі нічога дрэннага не здаецца здарыцца, што азначае нешта добрае адбылося на самай справе.
Калі вы не бачыце памылку паведамленне, усё, верагодна, добра.
І на самай справе, калі я зараз кропка слэш кропку з ўвесці, я вяду свой жа праграму.
Я да гэтага часу праграму прывітанне ад раней, таму што на самой справе, гэта
будзе так значна прыемней проста увядзіце зрабіць замест запамінання
гэтыя заклінанні каманды, але давайце паглядзім, як мы
можа палепшыць гэта, тым не менш.
>> Такім чынам, гэта каманда для кампіляцыі кода.
Гэтая каманда для запуску скампіляваны код у далейшым.
Як я магу паказаць імя файла?
Ну давайце проста ўвесці яшчэ адзін кавалак жаргоне.
Калі вы знаходзіцеся ў гэтым тэкставы навакольнага асяроддзя,
Вы будзеце жадаць, каб паказаць рэчы, названыя аргументы каманднага радка.
Якія гэта проста мудрагелісты спосаб сказаць, Іншымі словамі ў радку, што
змяняць паводзіны незалежна Праграма вы працуеце.
Так у прыватнасці, праграма я працуе, увёўшы імя ляск,
з'яўляецца праграма пад назвай Clang.
Так што гэта ці старая школа эквівалент двайнога пстрычкі
на Microsoft Word або Значок некаторых праграмы.
Я замест гэтага проста увёўшы яго імя, але ў гэтай версіі каманды,
Я тады працяжнік ўшчыльняльнае прастору прывітанне прывітанне прастору кропка гр.
Такім чынам, нават калі вы ніколі не гуляў у гэтым свеце перш,
проста ўзяць тое, што здагадка зусім працяжнік аб рабіць прывітанне?
Або тое, што гэта кажа ляск рабіць?
Так.
>> АЎДЫТОРЫЯ: [неразборліва]
Дэвід Дж малая: Так.
Гэта проста ўсталёўвае выхад файла, каб быць прывітанне замест дурней кропка з.
І, сапраўды, давайце паспрабуем гэта.
Так што, калі я цяпер, у першую давайце зробім гэта, г м прывітанне.
Вось выдаліць.
І гэта скажа выдаліць звычайны файл прывітанне, які
залішне таямніцай, але гэта толькі сродкі вы хочаце выдаліць файл,
і я друкую у для так.
І звярніце ўвагу, калі вы зірнуўшы на вяршыні злева, яна знікне з там.
Дазвольце мне цяпер рабіць ляск працяжнік высновы і Я збіраюся ісці наперад і рабіць прывітанне,
ва ўсіх накрывак, прывітанне кропка гр.
Цяпер, калі я кропка слэш прывітанне, што б вы хацелі?
>> Можа быць, гэта з улікам рэгістра.
Можа быць, гэта не так.
Давайце паглядзім.
Няма такога файла ці каталога.
І мы можам роду падмануць, проста гледзячы ў левым верхнім куце.
Што я, відавочна, захаваць праграму як?
Усе шапкі прывітанне.
Так на самой справе, гэта адбываецца каб зрабіць розніцу.
Так што цяпер прывітанне свет вярнуўся.
Зараз гэта ўсё выдатна і добра, і ўсё вельмі дурманлівы,
у той ўгразнуць ў іх Дэталі, але разуменне іх
гэта добра.
>> Увод з іх больш доўгія загаворы
не збіраецца быць асабліва весела, так што людзі ў свеце
вынайшаў іншую праграму, некалькі гадоў таму, называецца
зрабіць, каб зусім проста дазваляе ўвесці марку,
назва праграмы Вы хочаце зрабіць, і зрабіць
разумны ў тым, што гэта будзе выглядаць у бягучая тэчка, інакш каталогу,
і калі ў вас ёсць файл называецца прывітанне кропка з,
што файл будзе кампіляваць для вас у праграме пад назвай прывітанне.
Так што гэта значна прасцей спосаб робіць больш загадкавыя каманды
што мы рабілі раней.
І мы папярэдне настроены CS50 IDE ведаць
што ён павінен рабіць выснову працяжнік і шэраг іншыя сцягі, або аргументы каманднага радка,
што мы ўбачым у бліжэйшы час.
>> Але цяпер давайце на самай справе нешта больш цікавае.
Проста набраўшы з прывітанне свет усё час не ўсё, што пераканаўча.
Такім чынам, дазвольце мне ісці наперад і змяненне гэтая праграма і сказаць, прывітанне Дэвід.
Цяпер я збіраюся пайсці сюды.
Я збіраюся ісці наперад і робяць прывітанне.
І зараз зноў вы бачыце зрабіць паказвае вам больш
Паслядоўнасць каманд, што гэта рабіць, таму што мы папярэдне настроены
гэта тое, што шлях, але мы не трэба турбавацца цяпер
што ён робіць іншы, чым яна ёсць складанне кропка слэш прывітанне, прывітанне свет.
Што здарылася?
Так.
>> АЎДЫТОРЫЯ: [неразборліва]
>> Дэвід Дж малая: Так.
Так, Noobie памылка.
Я заўважыў, што гэта супер тонкі, але зорачка тут, у закладцы
проста азначае, што вы не захавалі яго, і браўзэры і іншыя праграмы
зрабіць гэта часам.
Так кіравання або каманды з з павінны захаваць яго.
Цяпер дазвольце мне ісці наперад і паўторна запусціце праграму.
Паўторна.
Права, так што гэта шматэтапны працэс.
Ні адзін з якіх не з'яўляецца асабліва складаным, але ў любы час мы зменім файл,
мы павінны змяніць у выніку нулі і адзінкі, і кропка слэш прывітанне.
Нічога сабе.
Так што гэта вельмі захапленне што мы проста раздрукаваць гэта.
Давайце рабіць рэчы трохі больш дынамічным, цяпер.
>> Ну, аказваецца, што, як і Драпіны, З падтрымлівае зменныя.
І атрымліваецца, калі вы хочаце мець зменную, якая захоўвае
ня лік, як мы як правіла, рабілі з нуля,
але як слова, ці фраза або імя, вы
можна паказаць зменную да тыпу радка.
Такім чынам, мы ўбачым больш гэта ўсяго імгненне,
але аказваецца, што C, а шмат такіх моў, як гэта,
маюць вельмі спецыфічныя тыпы зменных.
Гэта не проста падабаецца алгебру, дзе вы атрымаеце х, а ў, і г
і тых, хто проста заўсёды нумары, у мове праграмавання
Вы можаце захоўваць нумары, вы можаце захоўваць асобныя знакі,
можна захоўваць цэлыя словы, вы маглі б захоўваць цэлыя малюнка, гукавыя файлы цэлыя,
і да таго падобнае.
Такім чынам, мы павінны паказаць, што тып нашай зменнай.
І канвенцыі я буду называць майго пераменная з толькі таму, што гэта сціснутае,
і з пазначае радок.
>> А потым я збіраюся захоўваць Унутры гэтай зменнай,
проста падабаецца з нуля калі я выкарыстоўваю набор блок,
Я збіраюся выкарыстоўваць Аператар прысвойвання ў C,
які досыць добра гэта роўна знак, але знак роўнасці робіць гэта.
Яна рухаецца нешта справа ў левы бок выразы.
Так што я зрабіў, каб быць ясна, у Лінія пяць, як я абвясціў зменную.
Я сказаў кампутар, дайце мне памяць для зменнай, называюць гэта з,
і загадзя ведаць, што я збіраюся каб змяшчаць радок у ім.
І радок проста паслядоўнасць знакаў.
Гэтае слова, ці фраза, або пункт, але гэта паслядоўнасць знакаў.
Гэта не колькасці.
Што радок я збіраюся быць пакласці ў гэтую зменную?
Ну, па-відаць, цытую канец цытаты ", Хана".
Зараз звернеце ўвагу, што малюнак на якія развіваюцца.
Там гэта выраз левая рука.
Там гэта выраз правая рука, падзеленых знакам роўнасці.
І толькі зрабіць здагадку, калі знаёмыя, тым не менш,
з тым, што кропка з коскі робіць.
Што гэта, верагодна, робіць для нас?
Да?
>> АЎДЫТОРЫЯ: [неразборліва]
>> Дэвід Дж малая: Так.
Гэта проста спыненне лінію.
Дакладна?
Кампутары хочаце быць прама сказаў, літаральна, што рабіць.
Як арахісавае масла і жэле прыклад сэндвіч,
калі вы не пакажаце менавіта тое, што вы збіраецеся,
гэта можа быць пакінута на меркаванне або памылак.
Кропка з коскі азначае, вось менавіта для гэтай каманды.
Гэта будучы супер дакладнай, і гэта вельмі лёгкая рэч, каб кінуць.
Так што цяпер гэтая праграма, здаецца, не ня быць па-іншаму паводзіць сябе любы, пакуль я
зрабіць яго больш дынамічным.
Такім чынам, замест таго, каб жорстка мог мая ўласная імя, дазвольце мне паставіць значэнне запаўняльніка.
І атрымліваецца, што, і я ведаю гэта ад прачытаўшы дакументацыю,
і выкарыстоўваць функцыю гадоў, што Printf быў распрацаваны, каб быць дынамічным.
Вы не павінны ведаць загадзя якія словы вы хочаце, каб пакласці ў яго.
Замест гэтага, вы можаце мець Прататып, як працэнт з, што
збіраецца распавесці кампутар, паставіць тут радок.
>> Якія радкі мы хочам паставіць там?
Уіл аказваецца, што паміж імі дужкі, якія памятаюць, размежаваць
уваход для функцыі, калі ў вас ёсць падзеленыя коскі спіс рэчаў, тут,
мы на самай справе праходзяць у некалькіх Ўваходы ў функцыю.
Так як і некаторыя драпін блокі, вы не маглі б
гуляў з імі Вашы праекты пакуль ці ўвогуле,
некаторыя Скрэтч блокі маюць два ўваходу.
Два белых спісаў, вы можаце увядзіце лік, або слова ў.
Гэтак жа ёсць З функцыі, такія як Printf, што можа заняць два ўваходу.
І зноў жа, гэта коска які аддзяляе іх.
Такім чынам, у англійскай мове, зноў, нават калі Вы ніколі не праграмавалі,
Па гэтай логіцы Printf з'яўляецца функцыяй, прымае два ўваходу, адзін з якіх
з'яўляецца запаўняльнікам, што б вы спадзяецеся Printf збіраецца рабіць з гэтым уваходам?
Гэта адбываецца, каб сказаць прывітанне Ханна, спадзяюся.
Такім чынам, каб зрабіць гэта, мы павінны захаваць яго.
Я збіраюся, каб паменшыць.
Я збіраюся вярнуцца сюды і сказаць, зрабіць прывітанне ўвайсці ў сістэму.
Ох.
Што нешта не так, і на самай справе гэта даволі пераважнай.
У мяне ёсць шэсць радкоў кода і, як 12 радкоў памылак.
Так, з нецярпеннем чакаем гэтага.
Так што тут адбываецца?
Так што лепшы правіла тут, асабліва, калі вы пачынаеце,
не адцягвацца на матэрыял на дне.
На самай справе, я вельмі свядома проста пракручваецца да
таму што вельмі часта, кампутар знаходзіцца не ўсё так вясёлкава прылады.
Гэта будзе заблытацца.
Калі ён бачыць, што адно ён не разумее,
гэта можа памылка Іншая радкоў кода, так як няправільныя,
нават калі яны выдатна.
Такім чынам, вы заўсёды хочаце працаваць зверху ўніз праз памылкі.
І праўда, гэта супер таямніцай на дадзены момант.
>> Памылка, выкарыстанне неаб'яўленых Ідэнтыфікатар радка.
Хіба я маю на ўвазе стандарт?
Не, я меў на ўвазе радка.
І гэта паказвае на, можа быць, гэта памылка друку.
Накшталт як, праверкі арфаграфіі ў вельмі выклікаюць чынам, але прычына тут,
і вы будзеце ведаць, гэта проста практыцы, з'яўляецца
што атрымліваецца, што радок не існуе ў С. Сапраўды, З
з'яўляецца асабліва стары мова, і гэта вельмі нізкі ўзровень,
і гэта не шмат магчымасцяў што вы, магчыма, ужо выраслі
з калі ў вас ёсць, на самай справе, запраграмаваны ў Java, як некаторыя з вас,
але вы можаце навучыць яго новыя рэчы.
І на самай справе, мы зрабілі гэта CS50, нават калі да канца семестра,
усе гэтыя навучальныя дыскі будзе знятая,
што мы робім у іх Першая пара тыдняў
першапачаткова ў нас ёсць ўключыць CS50 кропка гадзіну.
Які файл загалоўка.
Больш падрабязна пра гэта ў будучыні.
>> Гэта файл, які змяшчае функцыі, што мы напісалі для вас.
І сярод гэтых функцый функцыі для атрымання ўкладу
ад карыстальніка, як струны, і лічбы і рэальныя лічбы, і многае іншае.
Але ён таксама мае некалькі цэтлікаў.
Гэта вызначае лагічнае як тып дадзеных.
З не маюць праўдзівай ці ілжывай.
Але мы можам даць яму паняцце сапраўдным або ілжывым шляхам гэтай бібліятэкі.
І гэта таксама ня ёсьць радок пабудаваны ў пакуль мы не ўключыць гэты радок.
Так гэты радок кода паведамляе кампілятар, эй, Clang, паглядзіце
у гэтым файле на працягу цэлага куча кода, які CS50
была напісана так, што хто з дапамогай гэтага файла
можа прыняць як належнае Асаблівасці яны дадалі.
>> Так што цяпер дазвольце мне ісці наперад і ачысціць экран,
і калі цікава, я проста кажу, што кантроль л кожны раз, каб ачысціць экран,
ці вы можаце ўвесці ясна.
Я проста збіраюся ісці наперад і ў цяперашні час Тып зрабіць прывітанне, і ўсё будзе добра.
Тым не менш таемны выхад, але гэта не памылковае паведамленне.
Цяпер, калі я кропка слэш прывітанне, і як ў бок, кропка слэш незнаёмыя большасці.
Гэта проста азначае ,, кропка азначае бягучы каталог.
Так што калі вы калі-небудзь выкарыстоўвалі DOS, Linux, або, або Unix
Вы маглі б зрабіць нешта як кд кропка кропка, дзе
кропка кропка азначае ісці ў адваротным кірунку ў Час, або ісці ў адваротным кірунку, або вышэй
у каталогу.
Дот проста азначае шукаць у бягучы каталог.
Я хачу прывітанне, які знаходзіцца прама тут.
І сапраўды, у цяперашні час ён кажа, прывітанне Ханна.
І калі я магу змяніць яго зноў Марыі, перакампіляваць
ён будзе рабіць прывітанне, кропка слэш прывітанне, праграма пастаянна мяняецца.
>> Але гэта яшчэ даволі дурное праграма.
Калі я хачу, каб адправіць гэтую праграму, ці даць яго сябру,
ці даць яго Марыі або Ганны па гэтым пытанні, гэта нармальна.
Я магу наладзіць яго для іх абодвух, але гэта ніколі не будзе дынамічным.
Яны не могуць змяніць яе, калі яна кампілюецца ўніз ў гэтых нулёў і адзінак.
Такім чынам, што мы зрабілі нешта разумнейшыя?
Што рабіць, калі, замест таго, каб жорстка прапісаных у праграме імя гэтага чалавека,
Што, калі мы проста атрымаць радок па патрабаванні?
>> Такім чынам, іншымі словамі, дазвольце мне зрабіць гэта.
Я збіраюся перакампіляваць гэтую праграму.
І дазвольце мне павялічыць на дне сучаснасць.
Зрабіць прывітанне кропка слэш прывітанне.
Цяпер нішто не адбываецца.
Ці можам мы атрымаць хуткі добраахвотніка зрабіць што-то здарыцца?
Давай до.
Ваша імя?
>> Панча: Панча.
>> Дэвід Дж малая: Пачо?
Давай до.
Як толькі вы атрымаеце тут, гэта будзе вельмі захапленне,
але гэта больш цікава чым мне яго наборы.
Калі вы хочаце, каб ісці наперад і ўвядзіце імя, я зрабіў гэтую праграму толькі для вас.
Проста увядзіце сваё імя.
Enter.
Выдатна.
Добра, дзякуй вельмі шмат.
>> Панча: Дзякуй вельмі шмат.
>> Дэвід Дж малая: ОК.
>> [Апладысменты]
>> Гэта быў вельмі добры.
Тут вы ідзяце.
Што мы робім?
Такім чынам, мы, нарэшце, па меншай меры, зрабіў гэта праграма дынамічным.
Цяпер, вядома, усё яшчэ па канструкцыі захапленне,
але мы, нарэшце, мець магчымасць Зараз, каб напісаць код загадзя, шмат
як і аўтары Printf, і затым дынамічна
адаптавацца на аснове матэрыялаў мы перадаў, альбо праграмістам,
або з дапамогай чалавека, які на самай справе ўзаемадзеянне з праграмай.
Так давайце цяпер паспрабуем на самай справе зрабіць некалькі іншыя канструкцыі
і паглядзець, калі мы не можам зрабіць праграмы Самі складаней.
Так што давайце ісці наперад і замест пішу гэта з нуля,
Я збіраюся пайсці сёння ў Зыходны код, і ўсё гэта
даступна на курс-х сайт, і вы можаце перацягнуць яго
ва ўласнай асяроддзі прыйсці ў пятніцу адразу праблемы
набор 1 дае вам інструкцыі, ці вы маглі б
зрабіць гэта ў камандным радку, як добра, але яшчэ не ў р набор 1.
>> Давайце паглядзім, што ў гэтай праграме тут называюць, гадзюка кропка гр.
Цяпер я ўжо пракаментаваў гэта, але што новага?
На першы погляд, тое, што лінія кода абсалютна новага?
Напэўна, не прынцыпова Цяпер знаёмыя.
>> АЎДЫТОРЫЯ: [неразборліва]
Дэвід Дж малая: Так, так INT х роўны атрымаць п.
Мы ніколі не бачылі нічога з гэтага раней, але, верагодна, INT
сімвал нейкі Пераменная [? ад?] цэлае.
Так INT для цэлага ліку.
Гэта проста быць больш кароткім. х проста адвольна.
х і ў і г па-ранейшаму даволі разумна для лікаў,
але ў цэлым мы будзем выкарыстоўваць словы адразу нашы праграмы становяцца ўсё больш складанымі.
Атрымаць Int, вядома, гэтак жа, як атрымаць радок,
, Верагодна, будзе атрымліваць цэлалікавых ад карыстальніка,
а затым мы збіраемся зрабіць тое ж самае з у.
І, мабыць, нават калі гэта Апошняя радок, 24, выглядае больш складаным,
ён збіраецца сказаць суму гэтага і што гэта іншая рэч.
>> І заўважце адсоткаў я верагодна, азначае, што?
Якую ролю адсоткаў я па-відаць, служыць?
Гэта проста запаўняльнікі.
Дакладна?
Працэнт з была для радкі, адсоткаў я для цэлага ліку.
Там будзе працэнтаў е з якая плавае кропкай значэнне, якое
гэта проста лік з дзесятковай кропкай.
Іншымі словамі, сапраўдны лік.
Такім чынам, давайце на самай справе скампіляваць праграмаваць вельмі хутка і робяць гадзюка.
Упс.
Добрая магчымасць.
Так заўважыць тут, увесь гэты час мой карыстальніка Імя для гэтага рахунак jharvard.
Я ў CS50 IDE, інакш IDE50.
А цяпер у сінім тут, любое, але ад навакольнага асяроддзя, ад таго, дзе я.
І на самай справе, калі я павялічыць да вяршыні тут, звярніце ўвагу, што ў мяне ёсць IDE50
і я бачу гэтае слова, калі вы выгляд павярнуць галаву ў бок, працоўная прастора.
У двух словах, тое, што Я бачу тыльды слэш працоўная прастора
азначае, што ў дадзеным тэксце серада, заснаваная на каманднай,
Я ў тэкставым эквіваленце Гэты графічны тэчку тут.
Так што, калі я кропка слэш гадзюка, яна не кажа аб вяршэнстве
каб мэтавай гадзюка прыпынак.
Я не ведаю, што гэта значыць, але гэта дрэнна для нейкай прычыне.
Няма такога файла ці каталога яшчэ больш ясна.
Дзе ж тады?
На падставе таго, дзе я націснуў каб адкрыць файл раней.
Дзе ён можа быць?
>> Гэта, верагодна, у крыніцы адным Вт, у сераду,
і я магу бачыць гэта, сапраўды, калі я адкрываю, што да.
Існуе кропка гадзюка з, але ў Гэты тэкст на аснове навакольнага асяроддзя,
зноў, я павінен быць супер відавочным.
Калі я хачу, каб змяніць каталогі ў адна крыніца сераду, мне трэба ўвесці,
CD адна крыніца прастору Серада увядзіце і цяпер
мае хуткія змены даць мне візуальны сігнал, што
Я, на самай справе, у іншым месцы у маім асяроддзі,
але цяпер я магу рабіць зрабіць гадзюка, гэта, здаецца, працуе,
кропка слэш гадзюка, дай мне цэлае.
Адзін.
Два.
Сума аднаго і двух тры.
Але калі я не супрацоўнічаюць, давайце паглядзім, што атрымаць INT робіць.
Дайце мне цэлае.
Няма.
Паўторыце.
ОК.
Выдатна.
50.
Добра.
Так што, нарэшце, супрацоўнічае.
І гэта адны з функцыянальнасць, што гэтыя функцыі
можа быць пабудаваны за вас.
>> Так ўнутры рэалізацыі з атрымаеце INT, які праграмаванне
пабудаваць з мінулага тыдня, верагодна, у там прымусіць такія паводзіны паўтарыць спробу,
паспрабуйце, паўтарыць?
Так, там, напэўна, свайго роду цыкл.
Гэта будзе выглядаць сінтаксічна адрозніваецца ад блокаў нуль, у
але гэта сапраўды што ўнутры файла.
І на працягу некалькіх тыдняў мы будзем на самай справе выглядаюць у бібліятэцы CS50
а тое, што ўнутры, але ёсць пятля накладання менавіта гэта.
>> Давайце гуляць у дурныя Гульня тут з гэтым файлам.
Стан нуля кропка гр.
Мы проста збіраемся ў агульным пачаць адлік з нуля.
І я працягваю пракруткі мінулае некаторыя рэчы на ​​вяршыні.
У сіні тут, размежаваны з усімі з гэтых зорак і касой рысы,
тыя з вас, хто запраграмаваць перш, што гэта такое?
Чаму мы працягваем прапускаць над ім?
Што?
>> АЎДЫТОРЫЯ: Гэта каментар.
>> Дэвід Дж малая: Так.
Гэта проста каментар.
Гэта каментар для чалавека чытаць, што ў нашым выпадку,
кажа нам, што імя файла у тым, хто яе напісаў, і што ён робіць,
так што вам не прыйдзецца прачытаць код
ведаць, што гэты файл гэта ўсё аб.
Гэта проста апісанне, але функцыянальна гэта не мае значэння.
І я нават магу выдаліць яго з мой файл і ён не мае ніякага ўплыву.
Сакавітыя лініі гэтыя Першыя два тут і цяпер.
INT асноўны несапраўднымі з'яўляецца эквівалентам нашага, калі зялёны сцяг пстрычцы
так што мы збіраемся пакінуць гэта быць на сённяшні дзень, і мы вернемся,
у канчатковым выніку, да таго, што, як INT сілы ёсць, але цяпер,
заўважыць, што я зрабіў тут, вы можаце таксама,
калі ў вас ёсць у адпаведнасці каментары, калі ў вас ёсць
думка вы хочаце падзяліцца аб канкрэтнай радкі кода,
Канвенцыя ў C гэта рабіць слэш слэш, а затым некалькі кароткія словы,
не поўны прысуд, як правіла, не пункт,
што толькі тлумачыць вам, ці ваш TF, або іншыя чытачы ці калегі,
што ваш код робіць.
Такім чынам, замест таго, каб мець глядзець на гэта і вывесці з ліній
дзевяць і 10, што гэта робіць, у адпаведнасці восем
Я проста даць каментар да спытаць карыстальніка для цэлага,
то я не павінен думаць занадта цяжка пра што лініі дзевяць і 10.
Я проста ведаю, што гэта тое, што разам яны робяць.
>> Як?
Ну, вось падказка.
Вось здабывання Int.
І на аснове папярэдняга паводзіны, здаецца, Get INT
досыць разумныя, каб пераканацца, што чалавек супрацоўнічае і дае яго
цэлы лік.
Але зараз мы бачым гэта.
І гэта нагадвае нуля.
Я сцвярджаючы, што я Аналізуючы уведзеныя карыстачом,
але некалькі недакладна.
І гэта, відаць, у тым, як C мы выказваем, калі яшчэ, філіял,
відэлец ў дарозе, але я кажуць некалькі недакладна.
Што памылка ў гэтай праграме?
Аб далей таму?
Так.
>> АЎДЫТОРЫЯ: [неразборліва] нуля.
>> Дэвід Дж малая: Так.
Так што, калі я друкую ў нулі, давайце разгледзім менавіта ў гэтым выпадку, або ў куце так,
калі вы будзеце.
Так што, калі я друкую ў нуль, што з блокі збіраецца, мабыць, захапіць яго?
Умоўны ці інакш?
Яшчэ, і гэта скажа, Вы выбралі адмоўнае лік.
І на самай справе, нуль не дапускаецца каб быць станоўчым або адмоўным,
і так, што б памылкова.
Гэта было б памылкай.
Так як мы можам гэта выправіць?
Хтосьці, хто ніколі не праграмаваў раней?
Ці ёсць у вас want--
>> АЎДЫТОРЫЯ: [неразборліва]
>> Дэвід Дж малая: Складванне?
>> АЎДЫТОРЫЯ: [неразборліва]
>> Дэвід Дж малая: О, у вас ёсць?
Хтосьці, хто ніколі не праграмаваў раней.
Хочаце паспрабаваць свае сілы ў гэта, у чырвонай кашулі?
Давай до.
Ах да, давай ўверх, калі вы не пярэчыце.
Так што ніколі не запраграмаваўшы перш, чым ваша імя?
Ларэн: Ларэн.
Дэвід Дж малая: Ларэн, усё ў парадку.
Так выправіць гэтую памылку для нас.
Вы не бачылі C, па-відаць, і, верагодна, ніхто іншы мову.
Так выправіць гэтую праграму для нас.
Прыемна пазнаёміцца ​​я.
Ніякага ціску.
Ларэн: Так.
>> Дэвід Дж малая: Але зноў жа, калі гэта азартная гульня ідзе па плане,
вынас тут будзе быць, проста яшчэ раз, каб пачаць
заўважаць заканамернасці і вывесці з існуючага сінтаксісу
як яшчэ вы маглі б выказаць самастойна, не каламбур, у мэтах
захапіць дадатковую сцэнар.
Так мы гаворым інакш, калі.
Printf, добра.
І звярніце ўвагу, з CS50 IDE і IDE frankly--
каштуе для комплекснага Асяроддзе распрацоўкі.
Гэта проста мудрагелісты спосаб сказаць праграма, якая дапаможа вам праграму.
Гэта робіць дружалюбны карыстацкі рэчы, як пры ўводзе аднаго дужкі,
гэта аўтаматычна дае вам іншы.
Прэзумпцыя таго, што вы у рэшце рэшт захочуць ўвесці, што,
і гэта таксама робіць яго ў двукоссі.
>> Так што я хацеў лінію 23.
99% шляху там.
Хто-небудзь хоча, каб тэлефанаваць у з наканечнікам?
Я чуў коскі ад аўдыторыі.
Добра.
Так што завяршае гэта.
А цяпер, я проста трохі жах з лініі 21.
Як мы хочам, каб гэта выказаць?
Якое пытанне мы хочам спытаць, як вы думаеце?
Так, раней мы задавалі пытанне, калі п больш за нуль, зрабіць гэта.
У адваротным выпадку, зрабіць гэта.
Такім чынам, мы павінны выбраць задаць пытанне тут.
АЎДЫТОРЫЯ: [неразборліва]
Дэвід Дж малая: Добра.
Так, калі п роўная нуля.
Выдатна.
Так давайце спынімся тут.
Дзякуй вам вялікі за гэта баючыся.
Дазвольце мне даць вам крыху заслужанай стрэс мяч, магчыма, ёсць.
Такім чынам, мы ўжо амаль там.
На самай справе, Ларэн, калі вы не розум, дазвольце мне зрабіць адзін наладзіць тут,
толькі, каб быць устойлівым, нават тое, што мы бачылі ў пустым, тое, што
я хачу зрабіць з лініямі 21 і 24, толькі на аснове зноў
аб тым, як мы рабілі гэта ў пустым, магчыма?
>> АЎДЫТОРЫЯ: Перамяшчэнне яго.
>> Дэвід Дж малая: Так, перамясціць яго ўверх.
Такім чынам, стан другі, трэці, або чацвёрты ці пяты, ці канчатковае аддзяленне,
павінны сапраўды прыйшоў пазней, і гэта толькі па пагадненні,
проста таму, што калі вы будзеце.
Так мне трэба зрабіць гэтай налады.
І мне трэба паставіць сваю фігурная дужка сюды.
І цяпер, гэтая праграма будзе кампілявацца.
Мы так блізка, але ёсць вельмі, вельмі тонкі памылка.
Давайце паглядзім, што адбудзецца.
>> Па-першае, дазвольце мне ісці наперад і памяншэння маштабу.
Я збіраюся ісці наперад і увядзіце зрабіць стан нулявы.
О, я хлусіў.
Цяпер кампілятар на самай справе вельмі разумны.
І я сапраўды не разумею, гэта паведамленне пра памылку.
Выкарыстоўваючы вынік прысваення ў стане без дужак,
па-відаць, дрэнна.
Але што гэта значыць?
>> Ну зноў жа, гледзячы на ​​мадэлі у кодзе, што мы бачылі раней,
што лінія 17 на самой справе робіць, нават калі Ларэн прызначаныя трохі
у адваротным выпадку?
Так.
>> АЎДЫТОРЫЯ: [неразборліва]
Дэвід Дж малая: Так.
Так што памятаеце, знак роўнасці, па-відаць, як мы выкарыстоўвалі яго раней, няма на роўных.
Яго прызначэнне, справа налева.
Так радок 17 ў цяперашні час гэта стан, і гэта
выкананне кода ўнутры дужак, але калі код выконваецца,
што адбываецца з нулявым значэннем?
Тое, што адбываецца ў значэнні п?
Стаўшы нуля.
Так, калі п становіцца роўным нулю, і зноў, як у апошні тыдзень,
мы звычайна кажам, што нуль з'яўляецца ілжывай і адна праўда,
або да нет гэта адно і не роўная нулю.
Так праўдзівым і ілжывым, адно і 0.
Калі н ад лініі 17 была улічваючы значэнне 0, роўная нулю праўда?
Няма.
Па вызначэнні, нуль гэта хлусня.
Гэта пагадненне мы збіраецца чапляцца рухацца наперад.
Так будзе лініі 18, 19, і 20 альбо ўжыць зараз, лагічна?
Яны не могуць.
Такім чынам, мы задалі пытанне але не зусім дакладна,
і вы не ведаеце, не гэта, калі Вы бачылі гэта, рашэнне ў З
калі вы хочаце, каб выказаць роўнасць, вы кажаце, роўна роўных.
Так знак роўнасці ўжо выкарыстоўваецца да па заданні, справа налева.
Роўна роўная сродкі роўнымі.
І калі вы сапраўды хочаце свой розум каб быць сагнутыя ў JavaScript і PHP,
ёсць роўная роўная роўных, якія значыць нешта яшчэ ў цэлым,
але мы вернемся да таго, што ў хуткім часе.
>> Так што гэта проста выправіць, але разумею, супер проста, каб зрабіць гэтую памылку,
а потым дзівяцца, і барацьба за некалькі хвілін, калі не гадзіны,
чаму мой код ня выкананне, як я маю намер?
Гэта таму, што вы не сказалі гэта менавіта тое, што вы мелі на ўвазе.
Так што амаль ідэальна, і гэта было выдатна
што мы натыкнуліся два маленькіх рэчы, таму што цяпер, калі мы іх выправіць,
і я зрабіць Condition Zero кропка слэш стан нуля,
Я хацеў бы цэлае калі ласка.
Давайце паглядзім.
Няма.
Гэта адбываецца, каб прымусіць мяне зрабіць гэта.
Так 42.
Я абраў станоўчае лік.
Так што цяпер, як я магу даказаць, гэтая праграма правільна?
Калі вы матэматык, вы не можаце сапраўды даказаць гэта метадам спроб і памылак,
дакладна?
Вы можаце не толькі доказ, прыклад, але, па меншай меры
у якасці праграміста мы не будзе спрабаваць даказаць, зараз
што гэта на самай справе правільна, але я, напэўна, варта
праверыць некаторыя прадстаўніцтва выпадкаў.
>> Я праверыў 42.
Я мог бы праверыць 43.
Я мог бы праверыць 44.
Тэст 45.
Дакладна?
Але што я мог зрабіць гэта вельмі доўга.
Што б яшчэ трохі цікавыя выпадкі паспрабаваць?
АЎДЫТОРЫЯ: [неразборліва] нуля.
Дэвід Дж малая: Так нуля.
Вядома.
І добра, што ў нас ёсць гэта на гэты раз, дзякуючы новым кодам Ларэн.
Што іншы добры выпадак паспрабаваць?
АЎДЫТОРЫЯ: адмоўны.
>> Дэвід Дж малая: адмоўны, а можа быць, што-то трохі больш,
так што, магчыма адмоўнае 42, але ў цэлым, калі
тэставання праграм рухацца наперад, вы
захоча думаць да сябе, як тое, што
з'яўляюцца асноўнымі розныя выпадкі.
І я адважуся сказаць, негатыўнае справу, станоўчы выпадак, і выпадак нулявы
у значнай ступені акругляе гэтыя з.
Давайце паглядзім на варыянт гэтага ж.
Умовы адну.
Гэта правільнае рашэнне тут, так што вы ўбачыце два і ў Інтэрнэце,
калі вы ідзяце праз праходжанне, будзе, як правіла
не павялічваць гэтыя ступеніста, пакуль мы атрымаць менавіта правільны падыход.
Што рабіць, калі мы хацелі спытаць два пытанні адразу?
>> Дазвольце мне адкрыць гэта замест.
Нумары перамыкач, па прычынах, мы ўбачым у іншы раз.
Што новага сінтаксічна тут?
Я ў цяперашні час гуляе ў гульню дзе кампутар кажа
мне, дай мне цэлае ад аднаго да 10,
і тады я, мяркуючы ўваход карыстальніка.
У ангельскай мове, заснаваная на код вы бачыце тут
сінім, што гэтая праграма робіць?
АЎДЫТОРЫЯ: [неразборліва] ўзяў вялікі ці маленькі нумар.
Дэвід Дж малая: Так.
Гэта проста разглядзе ці Я выбраў вялікі, або сераду,
ці невялікае колькасць на аснове вельмі адвольнае вызначэнне малых, сярэдніх,
і вялікая тут, але апавяшчэнне сінтаксіс, які новага гэта.
Там няма менш, чым INT або роўная падпісаць або больш або роўна падпісаць,
дзе адзін над іншым, што вы можна выказаць у як Microsoft Word.
Такім чынам, у мове праграмавання вы як правіла, проста зрабіць два знака,
адна за адной.
І тое, што робіць гэта, верагодна, ўяўляюць, Ампэрсанд Ампэрсанд.
АЎДЫТОРЫЯ: [неразборліва]
Дэвід Дж малая: Так.
Гэта проста азначае, і таму, што ён Атрымліваецца, што аўтары З
выкарыстоўваецца адзін Ампэрсанд, якія вы маглі б падумаць
быў бы ідэальным для паняцці з і, ужо выдаткаваны,
так Ампэрсанд Ампэрсанд на самай справе захоплівае выпадак мы на самай справе хочаце.
>> Такім чынам, давайце наткнуцца двух рэчаў.
Дазвольце мне ісці наперад і адкрыць адзін.
Нешта, што гэта крыху турбуе.
Недакладнасць кропка гр.
Дазвольце мне прадставіць дзве рэчы тут.
Адзін з іх, звярніце ўвагу, што мы можам зрабіць, матэматыка, а гэтак жа, як раней, калі
мы зрабілі плюс двух лікаў х і у.
Што гэта, па-відаць праграма робіць?
Я не пракаментаваў яшчэ, і я прадставіў адсоткаў п,
але я хутка сказаў раней адсоткаў е азначае плавае кропкай
значэнне, якое будзе сапраўдны лік.
Што-то з дзесятковай пункт, які не з'яўляецца цэлым лікам.
Што вы думаеце, гэта праграма спрабуе паказаць мне на экране?
Да?
Аўдыторыя: вынік адзін над 10.
Дэвід Дж малая: Так.
Што ў выніку аднаго дзеліцца на 10.
Правільна, таму што ўсе з вас, напэўна, выраслі, ведаючы, што адзін над 10
гэта тое, што?
Так, гэта проста 1/10 або 0,1.
Дакладна?
Такім чынам, давайце паглядзім, што гэта на самай справе.
Такім чынам, дазвольце мне ісці наперад і захаваць гэты.
Дазвольце мне перайсці сюды.
Зрабіць недакладнасць кропка слэш недакладнасць, і апавяшчэнне, таксама
у асяроддзі Linux, вы не павінны ўвесці з недакладнасць і прыняць
на працягу ўсяго дня.
Гэта наогул, калі вы націснеце Tab, то будзе скончыць сваю думку для вас,
на аснове слоў, якія даступныя ў бягучым каталогу.
ОК.
Такім чынам, вы мелі рацыю.
Адзін падзелены на 10, на самай справе, 0,1.
Але я крыху цікава.
І атрымліваецца, Printf падтрымлівае некаторыя функцыі
у якім вы можаце паказаць больш Колькасць па змаўчанні знакаў пасля коскі.
Так што, калі я хачу, каб убачыць 10 дзесятковай пункту я магу зрабіць, адсоткаў
для знака-запаўняльніка, кропка 10 для, даюць мне 10 дзесятковых кропак,
а потым яшчэ з якая плавае кропкай значэнне, і, як у бок,
што гэта зваротная касая рыса н па-відаць, мы працягваем выкарыстоўваць?
Аказваецца, што гэта сімвал новага радка.
Гэта вельмі відавочнай выявай гаварыць з кампутарам,
перамясціць курсор да наступнай Лінія Пасля таго як вы зрабілі.
І мы ўбачым, што адбудзецца калі мы не робім гэтага.
>> Дазвольце мне зрабіць перакампіляваць недакладнасць.
Цяпер кропка слэш недакладнасць.
ОК.
Тым не менш у парадку.
Адзін падзелены на 10.
Цяпер я атрымліваю трохі цікава, хоць.
Што рабіць, калі я гляджу 20 дзесятковай паказвае, перакампіляваць, паўторна,
і, як у бок для хуткасць, вы таксама можаце выкарыстоўваць
Ваш стрэлкі уверх і ўніз, каб пракруціць гісторыі,
так што вам не прыйдзецца трымаць перадрук гэтых каманд, увядзіце.
Так.
Я не пазнаць, што ў пачатковай школе.
Добра, так што давайце мне см, як 29 месцаў па-за.
Можа быць, гэта проста выпадковасць.
Можа быць, мой кампутар дзейнічае дзіўна.
Гэта не рэч, ці не так?
Гэта нешта робіць дэтэрмінавана.
Так што недакладнасць.
Добра, што пераблыталіся.
Дык што ж адбываецца?
>> Такім чынам, відавочна СВОЙ настаўнік ляжаў
Вам усё гэта час для Прычыны, па якіх мы ўбачым у хуткім часе.
Але давайце скончым з адной іншай праграме.
Гэта крыху праграмы нехта напісаў некалькі гадоў таму,
і гэта на самай справе частка конкурсу.
Ніхто на самай справе не піша код як гэта, і калі вы робіце,
Гэта стылю праблема.
Але людзі робяць гэта за хвальба правамі.
Каб запісаць найбольш заблытанай шукаю праграму, якая
тым не менш, робіць нешта цікавае.
І запіска Я думаў, мы б пакінуць на сёння перад Колтон гуляе з намі тут,
гэта запусціць гэтую праграму, які, нават у толькі з дапамогай
С у гэтым тэкставы серада, дае нам гэта.
Чорт вазьмі.
>> [Смех]
>> Стэнд з.
[Неразборліва] з працяжнік л м.
Вы ўбачыце чароўны загавор, што мы ўбачым у бліжэйшы час.
[Неразборліва] Усё правільна.
І цяпер вы можаце нават рабіць рэчы, як гэта.
Вось і ўсё.
Для CS50 мы, убачымся ў пятніцу.
>> [Гуляе музыка]
>> [Апладысменты]