[Powered by Google Translate] [♪ ♪ Гуда]
Такім чынам, каб пазнаёміць вас з таго, што я ўстаў на экране;
гэта адзін з інструментаў, якія мы распрацавалі ў працягу лета;
гэта называецца CS50 прасторы,
і гэта наш сумесны прымянення кадавання
што мы збіраемся выкарыстоўваць у секцыях.
Гэта вельмі выдатна.
Хто-небудзь з вас бачыў CS50 перспектыве яшчэ?
Дазвольце мне цягнуць, што ў іншай укладцы.
Run.cs50.net
Так
калі вы ідзяце ў run.cs50.net,
Вы можаце ўбачыць гэта ў Вашым браўзэры спосабам
на самай справе код - напісаць код C,
, А затым запусціць яго,
так як кампілюе яго, запускае яго, а затым вяртае вынік для вас,
так гэта накшталт добры спосаб, каб эксперымент
з некаторымі з кода, што Дэвід пераходзіць у лекцыях
і мы даем на вас па праблеме наборы
, Фактычна не маючы, каб запусціць прыбор.
>> Так што прасторы робіць гэта адрозніваецца ад
калі б я вярнуцца да гэтай ўкладцы,
Прасторах CS50 перспектыве, як вы бачыце тут,
Але калі мы пракручваем зноў і паглядзець на іншы бок акна,
Вы бачыце права Я адзіны чалавек у гэтай прасторы,
але тое, што я збіраюся зрабіць, гэта спытаць вас, хлопцы далучыцца да гэтай касмічнай са мной
і мы ўсё дабрацца да кода ў тым жа акенцы,
сумесна выкарыстоўваць код адзін з адным,
і казаць пра адрозненні паміж нашым кодам.
Так гэта накшталт класная рэч -
такім чынам, каб далучыцца, калі вы наведаеце гэтую спасылку прама тут, у верхнім
што я вылучыў,
Вы можаце проста ўвесці ў apps.cs50.net/spaces/vqcspSnO.
>> Добра, для пачатку,
Я збіраюся даць вам крыху тура гэтага.
Мы збіраемся зрабіць некаторыя дурныя кадаваньне з ім на першы,
проста так, што ўсім становіцца свайго роду адчуць, што гэта такое,
але тое, што я зрабіў -
або тое, што я збіраюся зрабіць прама тут -
Я збіраюся ўзяць код, які я напісаў тут,
які, як вы бачыце прама зараз пуста;
яна нічога не робіць.
Гэта проста код пліце катла, мы будзем называць яго.
З невялікі спіс спраў каментар.
Я збіраюся захаваць яго, націснуўшы гэтую кнопку Захаваць.
І што, што робіць гэта
падкрэсліў ён тут нядоўга - што перагляд захаваць зялёнае поле,
А цяпер, калі вы будзеце шукаць мяне ў прасторы,
націску маё імя,
Вы можаце бачыць, што я атрымаў гэты перагляд прама тут,
і калі вы пстрыкніце па гэтай рэвізіі,
яна будзе загрузіць код у ваш прасторы, таксама.
>> Так ужо ўсё загружаецца код, што ў сваю прасторы?
Добра, калі ў вас яшчэ не было, ісці наперад і рабіць тое,
і тое, што я хачу, каб вы хлопцы рабіць у гэтым мала, каб рабіць-частка
гэта напісаць трохі выкарыстанні Printf пра сябе,
Так, напрыклад, я хацеў бы напісаць
Е ("Мяне клічуць Нейт");
а потым я напішу
"Я скончыў у 2009 годзе
Стэнфардскі "
і я хацеў бы пачуць аб
у якім годзе вы знаходзіцеся ў школе,
Ці вы ў каледжы ці школе бізнесу
ці іншай школы Гарварда,
тое, што вы вывучаеце, калі яна невядомая;
калі яно не вядома, што гэта абсалютна выдатна.
Я не вырашыць, пакуль я быў у канцы майго другога года.
і тады я б таксама хацеў ведаць
нічога вар'ята вы хочаце сказаць мне, ці
нешта пра класе або проста што-небудзь яшчэ.
Калі вы скончыце пісаць, што з вашай маленькай Printf,
калі вы будзеце эканоміць пераглядзе або, хутчэй,
Спачатку пераканайцеся, што вы можаце запусціць яго
і што яна выдае менавіта тое, што вы хочаце, каб раздрукаваць,
, А затым, калі вы ідзяце далей і захаваць гэтую рэвізію
з дапамогай кнопкі Save Рэдакцыя, гэта першы маленькі хлопец тут,
і мы цікавае прайсці і зрабіць невялікае ўвядзенне так.
Таму вы павінны дастаткова толькі націснуць кнопку прайгравання,
які тут, на левым верхнім куце,
так што гэтая кнопка Play у левым верхнім куце будзе
Напісаць код ад нашага сервера, на якім ён будзе складзены, а затым запусціць.
Так што ж цікавае розуму ад гэтага
Гэты код на самай справе не працуе на Вашым кампутары;
гэта на самай справе накіроўваюцца праз Інтэрнэт.
>> Як справы, Шарлота?
>> Я - нармальна. I'm - Я думаю, што я
з цяжкасцямі захавання
на серверы так, што ён можа - я магу запусціць праграму.
А потым, калі я спрабую запусціць яго, ён кажа, што няма памылкі.
Заяўлены як вірус, які не знаходзіцца ў там больш.
Ну, давайце паглядзім, ці можаце вы ударыць Захаваць зноў?
Я бачу яго на экране.
>> Права, добра, так гэта тое, што ў мяне ёсць.
І я не ведаю, чаму яна не дае мне запусціць яго.
Ну, добра, даруй.
Ці можаце вы растлумачыць, чаму - тое, што было не так - тое, што не працуе з ім?
>> Так, таму што я не бачыў, што было апошняй радку, дзе яшчэ ёсць зменныя
што я не абвясціў, што я не збіраўся за гэты час там.
Так, выдатна!
>> Цяпер, калі я захаваць яго, я думаю, ён павінен працаваць.
Зараз, калі вы захавалі яго, ён працуе; дзіўным.
>> Так што так, паколькі мы праходзім -
Так што ж адбываецца,
Я проста хачу паўтарыць гэта на камеру.
Тое, што адбываецца было, што гэтая зменная з
засталося пасля - Я мяркую, што вы выдалілі некаторыя іншыя рэчы
дзе вы аб'яўлена,
і такім чынам, гэта было кідаць рэчы і не дазваляючы запусціць яго.
Так што гэта менавіта тое, што мы хочам зрабіць у раздзеле
гэта былі людзі спрабуюць напісання розных частак кода,
кампіляцыі, паглядзець, што працуе, паглядзім, што няма,
, А затым цікавае казаць пра гэтыя рэчы, таму што гэтыя адключэння кропак,
Я да гэтага часу сутыкаемся,
Я да гэтага часу - я раблю шмат дурных рэчаў ўвесь час,
і я не ведаю, чаму ён не працуе,
так што давайце падцягнуць перагляду Шарлота 3,
і мы будзем яго запуску.
>> Таму, калі я бягу, цяпер, калі я атрымала свой код сюды,
Я магу павялічыць, націсніце кнопку Выканаць,
загружае яго, будуе, кіруе ім,
кажа, што з поспехам прайшла, і калі я пракруціць ўніз,
гл. Шарлота Адамс малодшы ў доме,
псіхалогія, другасны у эканоміцы; дзіўным.
Вялікі сустрэцца з вамі!
Awesome.
Добра, ідзем далей, давайце пойдзем да Данііла,
перайсці да перагляду 3,
кампіляваць, запускаць;
Чаму б вам не расказаць нам крыху пра сябе, Данііл?
>> Патэлефануй мне дадзены.
Я іду ў бізнес-школу праз дарогу ад вас, хлопцы,
і я быў у марской пяхоце, перш чым тут,
і гэта ўсё новае для мяне, так што так.
Ня адчувайце сябе дрэнна, мне 30 і я не ведаю ні адной з гэтых рэчаў.
Высокі, дзякуй, Dan!
Усё ў парадку, мы атрымалі іншы Данііла.
Вы ідзяце Даніэль - вы ўявіць сабе, Даніэль?
>> >> Вядома, я Данііл.
Я на другім курсе Mather прама цяпер.
Я засяроджаны на ўрад,
Але я хацеў узяць CS50, таму што я чуў выдатныя водгукі аб класе
і я ніколі не спрабаваў CS раней.
Вылучыце сюды і паказаць гэта - крута.
Рухаемся далей, Джарэд.
Як справы?
>> Добра, як вы?
Як вы можаце бачыць, я малодшы канцэнтратар філасофіі ў Эліёт,
родам з паўднёвай Каліфорніі,
і я зацікаўлены ў прыняцці CS50 таму што мне падабаецца логіка яго,
і, здаецца, сапраўды выдатна зрабіць нешта на кампутары, так.
Высокі, дзе ў паўднёвай Каліфорніі вы?
>> Аб гадзіне язды ад [неразборліва], невялікім горадзе [неразборліва].
О, так, мой бацька з Redlands.
Прышпільных рэчаў.
>> Добра, Джымі, як справы, Джымі?
>> Добра, як вы?
Робячы вельмі добра!
Раскажыце нам пра сябе.
>> Я пачатковец, і я не зусім упэўнены, што я па спецыяльнасці
але я свайго роду схіляецца да эканомікі.
Як Daniel да мяне, я ніколі не рабіў ніякіх CS, але гучыць крута.
Я родам з Чыкага.
Awesome. Так праверце яго раздрукоўкі тут.
Я хацеў спытаць, зрабілі гэта друк, як вы чакалі?
>> Не, я забыўся раздрукаваць новую радок.
Я на самай справе забыўся, што, калі я пісаў сваю справу
у першы раз, таксама.
Гэта свайго роду боль, каб не забудзьцеся пакласці гэтыя ўручную.
Было б нядрэнна, калі б ён проста ведаю, што тое, што Вы хацелі.
>> Добра, Кэлі.
Нічога сабе, у нас ёсць 2 Kellys, 2 Daniels, 2 Kellys.
Так Kelly - вы ідзяце Кэлі Ren?
Добра, дзіўны.
Ці Кэлі, я маю на ўвазе.
>> Так што так, таму я Кэлі.
Я на другім курсе Pfoho.
Я атрымаў электронную пошту сёння, што мяне ўсё яшчэ ёсць 7 тыдняў аб'явіць маю канцэнтрацыю,
таму я стараюся не думаць пра гэта,
і мне падабаецца выпечка, працуе, і Craisins.
У мяне няма вопыту з большасцю CS;
Я сам навучыўся ствараць вэб-сайты, калі я быў вельмі малады,
Але я думаю, што я, верагодна, навучыў сябе няправільна шмат разоў.
Спадзяюся, я буду вучыцца крыху больш
і - так.
>> Высокі, добра, дзякуй.
Пойдзем у іншую Кэлі;
Я нічога не маю - ты сказаў нешта тут?
>> [Неразборліва]
Там гэта!
Sweet!
>> Добра, так што я Кэлі.
Я першы год аспірант.
Я па спецыяльнасці розуму, мозгу і адукацыі.
Я скончыў у Franklin & Marshall College ў 2008 годзе
са спецыялізацыяй ў галіне псіхалогіі і сацыялогіі
і нязначнае па-французску.
Я бяру CS50
таму што я зацікаўлены ў тым, каб кандыдат у неўралогіі
і я адчуваю, што гэта дапаможа мне зразумець, што выкарыстоўваюцца тэхналогій.
Awesome.
Рухаемся далей, Мікаэла.
Гэта правільнае вымаўленне?
Добра, дзіўны.
>> >> Я Міхаіла.
Я на другім курсе ў Kirkland House,
і я засяроджаны ў галіне машынабудавання.
Мне вельмі падабаецца язда на ровары, пабудаваны на ровары летам гэтага года.
Я бяру CS, на самай справе,
як канцэнтрацыя патрабаванне,
Але вы ведаеце, я думаю, гэта яшчэ халаднавата роду інжынерныя класа.
Awesome - Вы пабудавалі ровар гэтым летам?
>> Так.
Ух ты, як рама і ўсё такое?
>> Э-э-hunh (станоўчы).
Нічога сабе, гэта сапраўды выдатна.
>> [Неразборліва кадрам чат]
[Смех]
Так, гэта было так даўно.
Вы ніколі не ведаеце, праўда?
Ну, прахалодным, добра, дзякуй, Міхаіла.
>> Добра, місія.
>> Мяне клічуць міс, я на першым курсе,
так, значыць, я нічога не ведаю!
Я хачу сканцэнтравацца ў астрафізіцы.
У CS50,
Я адчуваю, што, безумоўна, дапаможа ў гэтым.
Дзіўны факт пра мяне, я нацыянальным сертыфікаваны пажарны.
Вось гэта так!
Як гэта здарылася?
>> Я наведаў Акадэмію
і прайшоў праз пекла для многіх тыдняў
і атрымаў сертыфікацыю.
Ого, віншую!
Гэта не маленькі подзвіг, вядома.
Такім чынам, зараз мы будзем рабіць мне.
Я наступны ў шэрагу.
I'm - запусціце яго.
>> Так мяне завуць Нейт.
Я быў клас 2009 года ў Стэнфардзе.
Я быў сімвалічных сістэм буйных,
які падобны на розум, мозг, паводзіны канцэнтрацыі тут,
але гэта свайго роду сумесь
інфарматыкі, лінгвістыкі, псіхалогіі і філасофіі.
Выгляд - Так, шмат дзіўных рэчаў, але гэта было выдатна,
а потым я зрабіў магістра ў галіне камп'ютэрных навук там, як добра.
Так што я пачатковец у Гарвардзе ў гэтым годзе.
Я сапраўды хацеў, каб патрапіць у навучанні.
Я правёў апошнія 4 гады ў Стэнфардскім TA-ING класы інфарматыкі
і так Дэвідам дазвольце мне давай,
і я збіраюся быць дапамагчы з CS50,
так я раблю гэта поўная, я не ў аспірантуру.
Гэта было весела.
Спадзяемся, што яна будзе працягваць быць весела, і я ўпэўнены, што гэта будзе.
>> Усё ў парадку, Сэм.
>> Мяне клічуць Сэм, я на другім курсе ў каледжы, у законе канкрэтна.
Мая галоўная будзе гісторыя навукі, напэўна, і VES другасныя,
і мой любімы колер жоўты.
Не трэба судзіць або што-небудзь, але гэта добры колер!
І Стэла.
>> Прывітанне, я Стэла, я пачатковец у шэрых.
Я паняцця не маю, што я засяроджаны ў раней,
так CS50 была проста нейкая выпадковая,
што цікава.
Цікавы факт, Джымі быў першым сябрам Гарвардскага мой,
таму што мы абодва з Чыкага.
Cool, і грацыя - які павінен быць сапраўды добрым, правільна?
>> Я думаў, [неразборліва].
О, так.
[Неразборліва / выключэння камеры чат]
Добра, я ўсё яшчэ вучуся, усё яшчэ вучуся.
>> Такім чынам, у нас ёсць сёе-тое яшчэ, што гэта даволі цікава тут.
Так, мне проста цікава, у вас ёсць ідэя, што тут адбываецца?
Вы ведаеце, як гэта інтэрпрэтаваць?
>> Я павінен быў паставіць кропку з коскай пасля кожнага радка.
Гэта свайго роду боль.
Часам гэтыя кропкі з коскай можа быць рэальнай болю адсачыць.
Такім чынам, атрымліваецца, што
адмысловай праграмы мы выкарыстоўваем у гэтым годзе
скампіляваць код C завецца Clang,
і па гэтай прычыне мы пачалі выкарыстоўваць Clang ў гэтым годзе -
таму што мы не выкарыстоўвалі гэтую праграму ў мінулым;
Мы выкарыстоўвалі іншы называецца GCC, што гэта сапраўды папулярным -
Clang самай справе дае вам паведамленні пра памылкі, якія маюць сэнс.
Гэта адзін кажа: "чакаецца"; "пасля выказвання",
і ён нават кажа вам, выказвання, пасля чаго вам патрэбна кропка з коскі.
Так вы яе выпраўленне?
>> Так, прама цяпер.
Высокі, дайце мне ведаць, і мы будзем пацягніце яго ўверх, і мы будзем яго запуску.
Але так, паклаўшы гэтыя кропкі з коскі ў гэта выгляд болю.
>> Я усталяваў яго, так што я думаю, што гэта павінна працаваць.
Awesome - перагляд 3.
Гэта падобна на гэта.
Добра, так што цяпер, калі мы запусцім яго,
там яна ідзе.
Прышпільных рэчаў.
>> Добра.
Так што дзякуй за гэта.
Гэта выдатна сустрэцца з вамі, хлопцы.
Тое, што мы збіраемся зрабіць цяпер, гэта правесці наступны трохі
свайго роду апусканне ў раздзеле праблемы
, Якія прыходзяць ад пастаўленай задачы з гэтым тыдні
і мы зробім усё, што для большасці з раздзелаў
за астатнюю частку тэрміна,
і тады мы выратуем апошнія 15, 20 хвілін або каля таго
казаць аб праблеме ставіць перад сабой
, А затым проста любыя іншыя пытанні вы маеце ў цэлым аб класе.
Тым не менш, тое, што мы сапраўды хочам зрабіць
гэта было ўсім якія ўдзельнічаюць
выкарыстанне прасторы матэрыял,
кідалі ў кодзе, кідаючы ў прапановы,
і казаць пра тое, калі такія рэчы перапынак
або не працуюць, толькі таму, што гэтыя рэчы, якія
Я ведаю, я наткнуўся на
Калі я пачаў кадавання,
і былі сапраўды цікавае расчараванне ў разы
таму што, калі гэта як 2 раніцы перад праблемай набору тлумачыцца,
так што - толькі для раскрыцця,
Я не пачаць праграмаванне, пакуль я быў на другім курсе ў каледжы.
Гэта была нейкая дзіўная, невядомая рэч
што я пачуў, было крута
і я таксама чуў, гэта можа быць рэальная боль у прыклад
калі вы прапусцілі кропку з коскай, і гэта толькі памылка захавання вашай праграмы ад працы
і трымаць вас у спячы рэжым,
так вызначана,
калі ў вас ёсць пытанні, як, што,
калі ў вас ёсць праблемы, як, што, дайце мне ведаць,
таму што я хачу, каб гэта добры вопыт для вас, хлопцы.
>> Так што вы, хлопцы, усе загружаныя задачу, пастаўленую яшчэ?
Свайго роду ведаеце, дзе гэта? Добра.
Такім чынам, мы паедзем у cs50.net, таму што я яго не маюць на гэты конт,
падцягнуць праблемы наборы,
падцягнуць праблема набору 2, і мы будзем глядзець на стандартнае выданне Сёння.
Мы будзем цягнуць да спецыфікацыя тут.
Пракрутка ўніз.
Такім чынам, мы збіраемся пачаць глядзець на гэтую частку пытання.
Хіба вы, хлопцы, глядзелі гэтыя шорты яшчэ?
Добра.
Такім чынам, ёсць шорты на завесах,
якая ажыццяўляецца шляхам Томі, адзін з хлопцаў галава навучання.
Там адзін на вобласць,
Я лічу, зроблена яшчэ адно вучэнне хлопец па імі Дэвід
, А затым адзін на Caesar Cipher таксама зрабіў Дэвід.
Яны даволі халаднавата.
Хіба вы, хлопцы назіралі за свае шорты да гэтага часу?
Дарэчы, як яны былі?
Карысныя? Добра, добра ведаю.
Калі гэта не так, можна сказаць і так.
Але перш чым вы гэта зробіце,
вы, хлопцы паглядзелі на гэтыя пытанні
на ўсіх?
>> Давайце пагаворым аб гэтым няшмат.
Такім чынам, мы ўвялі за апошнія пару тыдняў
У лекцыі
колькасць розных цыклаў.
Там у цыкл,
час цыклу, а затым зрабі той час як цыкл,
і ў лекцыі, мы шмат гаварылі пра
як гэтыя завесы ўсё
даволі падобныя ў многіх адносінах
і вы можаце многае зрабіць тое ж самае з нейкі час цыклу
што вы можаце з цыклу.
Вы проста павінны выгляду выкарыстання правільных камбінацый зменных і да таго падобнае.
і так на самай справе
рэальнае адрозненне паміж усімі завес з'яўляецца тое, што
Часам яны больш карысныя
выкарыстоўваць іх у адзін час, чым у іншы час.
>> Так, напрыклад,
у той час як цыкл адрозніваецца ад DO-цыклу.
Ці ўсё адчуваюць, што яны маюць добрыя ручкі, калі
Зрабі той час як цыкл больш
карысна або ў чым розніца?
>> Я думаю, што розніца зрабі той час як цыкл
працуе - я не ведаю зусім тое, што тэрміналогія,
але шэраг функцый ўнутры цыклу.
Яны аўтаматычна - ён робіць сваю выконваецца па крайняй меры
Перад правярае стан, ці ў той час як цыкл будзе працаваць толькі, калі
ён увесь час працуе - ці не ўмова задавальняецца.
Так, не ў гэтым сэнс?
>> Давайце паглядзім на трохі кода.
Так што проста паўтарыць пытанне,
або адказ, а;
Адказ быў, што
час цыклу будзе правяраць, калі ўмова
што вы паказалі, сустрэліся
перад выкананнем цела цыкла ў першы раз,
а зрабі той час як цыкл будзе аўтаматычна запускацца цела цыклу,
Мы называем яго - гэта дзіўна тэрміналогіі,
але калі я калі-небудзь казаў, што не мае сэнсу, дайце мне ведаць -
Цела цыкла з'яўляецца тое, што рэчы, якія вы пакладзеце паміж фігурнымі дужкамі.
І зрабі той час як цыкл,
, Што цела атрымліваюць бегчы па меншай меры адзін раз,
і тады ўмова атрымлівае праверыў перад выкананнем кожнага наступнага часу.
>> Такім чынам, на самай справе, Сэм,
Вы не пярэчыце напісанне простага у той час як пятля
у прасторах?
>> Як вы, здаецца, як
зрабіць новую ...?
Я проста выдаліць усё, што вы там.
Так, проста зніміце яе.
>> Ну, я лічу, у мяне гэта -
які з іх вы хочаце, у той час як, ці вы хочаце ...?
Так, проста ў той час як сапраўдныя, раздрукаваць нешта.
І давайце паглядзім.
Аляксандр, я зразумеў, што мы ніколі не пазнаёмілі вас.
>> О, гэта выдатна.
Вы - ці можаце вы код да зрабі той час як цыкл для нас?
>> Так, я паспрабую.
Усё ў парадку, мы проста цягнуць гэтыя на экране,
так што вы, здаецца, ёсць ручка, што адрозненні.
>> Такім чынам, вось што Сэм зрабіў.
У яго ёсць цэлы лік, званае я
што ён ініцыялізаваны да 17 гадоў.
Затым ён кажа, у той час як (INT я = 17)
Е ("Мяне клічуць Сэм.");
Так што ж адбываецца, калі мы запусцім гэты код?
Там ў памылцы, што ж памылкі сказаць?
Давайце пацягніце яго ўверх, і казаць пра гэта.
Адбылася памылка, ён кажа.
Давайце пракруткі ўніз.
Такім чынам, ён даў нам гэтую памылку, і яна сказала:
"Гэй, я чакаў выразы".
Гэта свайго роду загадкавым.
Так, менавіта так - і зноў,
там будзе яшчэ адна маленькая памылка, што мы будзем лавіць толькі ў секунду.
Але гэта яшчэ адзін з тых дзіўныя рэчы тэрміналогіі,
так што гэта Int я = 17
не з'яўляецца выразам.
Што, падобна, ён робіць, гэта
абвясціўшы цэлы лік, званае я
і усталяваўшы яго роўным да 17
ці, хутчэй, паклаўшы 17 у, што называецца Int я.
І гэта не мае сэнсу
У кантэксце гэтага цыклу.
Гэта не мае сэнсу, як мы ўбачым,
ў кантэксце цыклу, таму што для гэтага цыклу дэкларацый пачаць
с, што для внутр роўна я нешта
і ідзе далей.
>> Гэтак жа вы -
нешта выправіць, усё ў парадку.
Вось ён ідзе, дзіўны.
Так што цяпер усё выглядае крыху інакш.
Некалькі рэчаў змянілася.
Ці можаце вы распавесці нам, што ўсё змянілася?
>> Я дастаў INT, так што няма ніякай дэкларацыі [неразборліва], а не прызначэнне.
Той знак роўнасці, я паставіў 2 роўныя знакі, што азначае роўныя.
Awesome.
Так, так, што Сэм быў так ён дастаў Int
, Які быў тут раней,
так што калі я проста гляджу на гэта - гэта тое, што было раней, ён сказаў, INT,
які быў аб'явіць яго - такім чынам, мы вынялі тыпу.
Там у Int, Char, String, карацей кажучы,
Гэта называецца тыпаў.
Такім чынам, вы вынялі тыпу
і раней,
ён толькі аднаго знака роўнасці
і тое, што ён сказаў, было праблематычна пра гэта было
калі ў вас ёсць 1 знак роўнасці,
гэта аператар прысвойвання.
Гэта не праверка ці не 2 рэчы роўныя.
Гэта на самай справе ўстаноўка нешта роўнае нешта.
Мы працуем № 17 у зменную я.
Такім чынам, каб зрабіць такое параўнанне,
Вы павінны выкарыстоўваць падвойныя роўных,
якая з'яўляецца своеасаблівай дзіўныя рэчы
але гэта даволі распаўсюджаная памылка.
Такім чынам, яшчэ адна рэч, якую я пакажу, калі вы не пярэчыце,
з'яўляецца тое, што ў
наша функцыя тут, у Int асноўны,
Вы бачыце, што цела наша функцыі
зняты з левага боку
на 4 прабелу або табуляцыі.
Таму мы робім гэта
толькі для чытання.
Як вы можаце бачыць, у той час як цыкл Сэма тут,
ён не водступ на ўсіх,
і гэта не ўплывае на функцыянальнасць кода.
Ён будзе працаваць дакладна так жа.
>> Так, напрыклад, калі мы прыйдзем да верхняй тут
і націснуць кнопку прайгравання наш, ён будзе будаваць,
яна будзе запусціць яго,
і тое, што адбудзецца?
Чаму ён да гэтага часу кажуць працуеце?
>> Таму што ён будзе паўтараць прывітанне.
Менавіта так, і чаму гэта паўтараць прывітанне?
>> Таму што цэлае ніколі не змяняецца, так што заўсёды 17.
Так, сапраўды, так
Давайце паглядзім, пасля - нагадваюць мне цябе завуць?
Джымі. Так Джымі сказаў, што
Прычына гэтага не стамляецца паўтараць, прывітанне зноў і зноў
таму, што гэта ўмова заўсёды праўдзіва.
Мы ніколі не змяніць значэнне я.
Мы ніколі не змяняць змест таго, што захоўваецца ў гэтай зменнай.
Такім чынам, на дадзены момант мы атрымалі гэтую памылку,
Ваша праграма генеруецца занадта шмат выходных,
і калі мы пракруціць ўніз і выгляд погляду на тое, што тут адбываецца,
Вы можаце бачыць, што гэта прывітанне, прывітанне, прывітанне, прывітанне, прывітанне, прывітанне, прывітанне ўсё шляхам.
Awesome.
>> Так выгляду вярнуцца да зыходнай кропкі
што наяўнасць водступаў тут
у целе ў той час як цыкл не ўплывае.
Праграма па-ранейшаму бег вельмі добра.
Як правіла, для добрага стылю -
і гэта тое, што мы шукаем ў вашым мноства праблем -
мы просім вас водступ гэтым на 4 прастор, якія вы можаце зрабіць
, Проста націснуўшы клавішу табуляцыі
або ўручную пакласці ў 4 прабелу сябе.
Cool, нармальна так давайце вернемся і паглядзім на
Аляксандр рабіць-то час.
>> Проста свайго роду невялікія праблемы.
Добра, ну давайце працаваць праз яго.
Хіба гэта крута?
>> Так.
>> Такім чынам, тут мы ідзем.
Гэта код, які напісаў Аляксандр.
Вы ідзяце Алекс - нармальна.
Дык вось код, што Алекс напісаў.
Такім чынам, мы атрымалі нашу дэкларацыю асноўных правоў тут,
а потым мы атрымалі гэты лік зменнай я
былі абвешчаныя прама тут.
У нас ёсць зрабі заяву
, А затым цела зноў з гэтымі дужкамі,
так што гэта цела DO-а -
Дазвольце мне наблізіць гэта так, гэта больш зручным для чытання -
і ў целе, мы спрабуем друкаваць "гэта цела",
я + +,
такім чынам павялічыць ўтрыманне я і зрабіць гэта
пакуль я не дабіраецца, каб быць 3,
і тады наша праграма сканчаецца.
>> Так што ж адбываецца, калі мы запусцім гэтую праграму?
>> Я чакаў ідэнтыфікатар.
Такім чынам, ствараць, запускаць, памылка.
Што адбываецца?
Мы пракруціць ўніз тут,
Мы атрымаем гэта некалькі загадкава гледзячы рэч,
Чакаецца коскі пасля верхняга ўзроўню дэкларацыю.
Гэта свайго роду дзіўным.
Хто-небудзь ёсць ідэя, што можа быць справа?
Свайго роду дзіўна, так.
>> [Неразборліва] быць абвешчаныя па-за дужкамі?
Так што гэта не ўжываецца тады, калі вы выкарыстоўваеце дужкі?
Так ён заявіў, што гэты хлопец, па-за якім дужкі?
Ох, ужо гэтыя хлопцы - фігурныя дужкі?
>> Так.
Так, менавіта так.
Такім чынам, атрымліваецца, што
Вы не можаце фактычна абвясціць зменную прама тут, як гэта.
Што вы маглі б спрабавалі зрабіць, -
скараціць яго адтуль -
Вы можаце пакласці яго ў фігурныя дужкі тут
ці іншая альтэрнатыва
гэта паставіць яго цалкам звонку.
І вось гэтыя - у залежнасці ад таго, дзе вы на самой справе паклаў заяву
гэтай цэлай зменнай,
Вы можаце атрымаць 2 вельмі розных відаў зменных;
калі ён знаходзіцца па-за асноўнага,
гэта тое, што мы называем глабальнай зменнай.
Гэта выходзіць за рамкі любой з функцый -
гэта не ў межах функцыі -
а калі пакласці яго ўнутр галоўнага,
хацелася прама тут, то гэта называецца лакальнай зменнай,
таму што гэта лакальныя рамкі асноўны.
І мы пагаворым крыху аб тым, што адрозненні
паміж 2 тыпамі і чаму вы выкарыстоўваеце розныя віды зменных,
але цяпер,
Вы можаце проста захаваць усё лакальныя зменныя,
таму што ў нас няма ніякай неабходнасці для глабальных зменных.
>> Такім чынам, гэта адна справа прама там.
Давайце паспрабуем запусціць гэты раз, паглядзець, што адбываецца.
Выканаць, атрымаць іншую памылку.
Павялічыць трохі, што мы атрымліваем?
Мы атрымліваем гэтую чакаецца дужках пасля зрабіць / час.
Любыя ідэі, што адбываецца? Дэн?
>> Ёсць час, то дужку, а затым -
Я не ведаю, калі вам трэба перавызначыць INT,
але зрабіць у той час (я <3).
Сапраўды, так.
Вось і атрымліваецца, што Дэн Цалкам дакладна.
Нам не трэба, каб паставіць гэты тып тут зноў.
Мы можам замест гэтага забіў тыпу
і проста зрабіць гэта.
Добра.
Я маштаб, паспрабуйце яго яшчэ раз.
Паглядзіце на гэта, яна працуе паспяхова.
Калі мы пракруціць ўніз, "гэта цела" распячатаў 3 разы.
Гэта вельмі салодкі.
Малайцы, малайцы, хлопцы.
Малайцы.
Як гэта адбываецца да гэтага часу?
Годны тэмп?
Добра, халаднавата.
>> Так што, як мы збольшага вярнуцца да першапачатковага пытанні,
Мы - і цяпер, калі мы бачым розніцу,
Вы бачыце, што ў гэтым зрабі той час як цыкл,
Умова прыходзіць апошнім.
Так як кампутар счытвае праграму
З C праграмы выконваюцца выгляд у гэтым паслядоўным парадку,
дзе яны ў літаральным сэнсе пачаць з першай лініі галоўнага,
, А затым выканаць лінію 6, радок 7, радок 8, радок 9,
радок 10, радок 11,
усе гэтыя рэчы ў правым верхнім тут
збіраецца выканаць адзін раз
перш, чым мы калі-небудзь праверыць гэта ўмова, каб убачыць
я ці не - ці змесціва я, хутчэй -
менш, чым колькасць 3.
І толькі тады, калі мы атрымаем на лініі 12,
Змест я менш за 3
мы на самай справе вярнуцца назад да лініі 7
, А затым паўтарыць працэс,
, А затым мы правяраем стан зноў і зноў і зноў.
>> Так што мы можам супрацьпаставіць гэтаму
с - маштабаванне назад,
пракруціць ўніз да версіі Сэма,
мы будзем глядзець на гэта, трохі зменены так, што гэта ўжо не бясконцы цыкл -
дзе, калі мы павялічыць,
мы бачым, што гэтая праграма выконваецца,
яна збіраецца спачатку аб'явіць Int я,
ўсталяваць ўтрыманне я бы 0,
а затым ён трапляе ў стан у той час як пятля першага,
таму ў дадзеным выпадку, гэта цела, гэты Е ("прывітанне") і я + +
нават не будзе выконваць
калі я на самай справе менш або роўна 2.
Так што, калі я 3, напрыклад,
калі мы пакладзем гэтаму прама тут
роўная 4 - ці я зраблю 3, таму што я сказаў 3 -
, А затым запусціць яго,
ён будзе будаваць, яна будзе працаваць у поўным парадку,
але ён не будзе на самой справе раздрукаваць што-небудзь,
таму што не змагла гэта выпрабаванне для першага выпадку.
Такім чынам, у класе, мы як-то казалі пра тое, чаму гэтыя зрабі той час як завесы
гэта часам карысна
і чаму мы павінны выкарыстоўваць яго, у адрозненне ад цыклу.
>> Ёсць - вы, хлопцы, ёсць якія-небудзь прапановы
, Чаму зрабі той час як цыкл можа быць больш карысным?
>> Ну, я думаю, што рабіць, у той час як завесы, калі вы хочаце карыстацкага ўводу,
таму што такім чынам вы можаце дазволіць ім
пакласці нешта ў адзін раз, калі гэта правільна,
мы можам перайсці да астатняй часткі праграмы,
Але калі гэта не правільна, то вы працягваеце запыту карыстальніка
пакуль вы не пакладзеце правую ўваход.
Так, сапраўды - сапраўды,
так робяць, у той час як цыкл карысны
таму што, калі запыты на ўвод дадзеных карыстачом
таму што вы павінны атрымаць ўвод карыстальніка, перш чым вы сапраўды можаце гэта праверыць.
Такім чынам, у PSET 1, у PSET 2,
дзе вы запыту на ўвод дадзеных карыстачом шмат,
гэта зручная рэч, каб выкарыстоўваць
у адрозненне ад простай цыкл час.
Калі вы выкарыстоўваеце нейкі час цыклу, вы можаце зрабіць тое ж самае -
Вы можаце зрабіць тое ж самае з нейкі час цыклу
як вы робіце з DO-цыклу.
Вы проста павінны мець выгляд гэтага дубліката працэсу
дзе вы атрымаеце ўваход, а затым пачаць свой цыкл.
Прымаючы пад увагу, зрабі той час як цыкл, вы проста павінны напісаць яго адзін раз
і гэта нашмат чысцей.
>> Добра.
Ёсць пытанні?
Сэнс?
>> Вяртанне 0 - гэта проста выгляд кабіны ці гэта -?
Так, так што мы можам -
Ну, мы разгледзім гэта крыху больш позні
але аказваецца, што
гэта вяртанне 0, пакладзем
У канцы асноўнага ўвесь час -
Вы можаце цікавае проста прыняць гэта як тое, што мы робім
у цяперашні час.
Тое, што мы пачалі гаварыць з функцыямі
выгляд у канцы мінулага тыдня, а затым зноў на гэтым тыдні
з'яўляецца тое, што функцыя
мае ўваходы, якія гэтыя рэчы ў дужках;
гэтыя 2 ўваходу, нашы аргументы або параметры,
што яны таксама называюцца да нашай асноўнай функцыі,
, А затым функцыя фармуе выхадны
, Які мы называем вяртаецца значэння.
І вяртаецца значэння ў выпадку галоўнае, гэта INT,
гэты лік,
і тое, як вы кажаце функцыі: "Гэй, гэта тое, што вашы выходныя
будзе "З гэтым словам« вяртанне »,
гэта ключавое слова, хутчэй,
і таму асноўная вяртаецца 0
ці галоўны выснову 0
з'яўляецца стандартным для праграм C
таму што вяртанне 0 з асноўных сродкаў, што
"Гэй, усё выканана з маёй праграмай проста выдатна."
Калі б мы маглі паставіць нешта выдатнае ад 0,
як 1, напрыклад,
які выкарыстоўваецца, каб паведаміць, хто запусціў гэтую праграму
, Што нешта пайшло не так.
Так як мы атрымліваем больш складаны з рэчамі на працягу семестра,
калі вы калі-небудзь мае патрэбу сказаць,
"Ой, вы ведаеце, что-то пайшло не так з гэтай праграмай",
замест таго, каб мая праграма аварыі, я хачу папярэдзіць
бягун з маёй праграмы, што нешта пайшло не так,
Вы можаце выкарыстоўваць вяртаецца значэнне,
як мы яго называем, гэта не 0.
>> Такім чынам, мы распавядзем, што крыху больш
Як толькі мы трапляем у функцыях.
Такога роду мае сэнс?
Добра.
Функцыі з'яўляюцца свайго роду дзіўным -
Я думаю, што для людзей, якія маюць шмат матэматыкі фону,
гаворка ідзе крыху лягчэй,
Асабліва калі ў вас ёсць трохі больш абстрактным матэматычным адукацыяй
і вы прывыклі казаць аб функцыях
і ўсё ў такім жа родзе.
Але мы паспрабуем ахапіць іх
і ісці прыгожа і павольна, як яны прыходзяць.
Акрамя таго, увесь гэты агдс INT,
сімвал * ARGV [],
для прама зараз, Вы таксама можаце прыняць гэта як пліце катла.
Мы пачалі ахопліваць тых, хто трохі ў лекцыі
калі мы кажам пра аргументаў, якія атрымліваюць перайшла ў праграмах каманднага радка,
але ў вашай праблеме мностваў і вашых праграм,
гэта цалкам нармальна толькі пісаць несапраўдным і трымаць яго простая.
І тое, што гэтая пустата азначае, што
"Гэй, асноўнай не збіраецца прымаць ніякіх уваходаў;
гэта ўсяго толькі праграма, якую мы збіраемся проста запусціць.
Мы не збіраемся даць яму любую дадатковую інфармацыю
кожны раз, калі мы пачынаем яго выкананні ».
Такім чынам, на дадзены момант, вы можаце зрабіць гэта;
Вы таксама можаце нават апусціць вяртанне 0
У канцы вашай праграмы, і яны будуць працаваць нармальна,
але я рэкамендую проста трымаць, што цаля
Праз пару тыдняў мы пачнем выгляд
пацягніце крышку трохі і зразумець больш аб
усе гэтыя розныя мала рухаюцца частак.
>> Добра, зараз давайце пагаворым аб нашай другое пытанне.
Такім чынам, што ж "неаб'яўленай ідэнтыфікатар" звычайна паказваюць на
калі выдаюцца Clang?
Я думаю, што мы, магчыма, бачылі, што ўжо сёння.
Можа хто-небудзь даць рэзюмэ, што гэта значыць?
Давайце паглядзім, Кэлі - адзін з Kellys.
>> Так што -
Так, тое, што робіць -
>> Я думаю, калі вы, напрыклад, не абвясціць зменныя, і вы спрабуеце выкарыстоўваць яго.
Так, сапраўды, сапраўды.
Так што калі вы калі-небудзь бачылі гэты выхад
калі вы спрабуеце скампіляваць праграму,
як сказаў Кэлі,
гэта азначае, што вы выкарыстоўвалі зменную, што вы не заяўляем,
так што калі я вярнуся ў нашу прастору,
і я раблю нешта накшталт
Е (
"Прывітанне% S")
і паспрабаваць запоўніць гэты% з
з пераменным тым, што я не заявілі аб любым
і я стараюся, каб запусціць яго,
Вы ўбачыце, што я спускаюся ў гэтай правым ніжнім тут:
"Выкарыстанне неаб'яўленай ідэнтыфікатар 'S'";
гэта проста азначае, што вы не абвясьцеце зменную.
Тое ж самае адбываецца, калі
ў вас ёсць х, і вы спрабуеце і захоўваць 7 у гэта
і я не заяўляю X.
Я разумею, што ж памылку:
"Выкарыстанне" х "неаб'яўленай ідэнтыфікатар".
>> Усё ў парадку,
так шыфр Цэзара, не будучы вельмі надзейнай,
Я паведамлю вам, хлопцы глядзець гэты кароткі, накшталт разумею, чаму,
і, спадзяюся, пасля выканання задачы на ​​гэтым тыдні ўстаноўлены
дзе вы на самой справе пісаць шыфр Цэзара, вы зразумееце, трохі больш
пра тое, што значыць быць бяспечным і небяспечным -
ці не бяспечна, я думаю, - небяспечны трохі адрозніваецца.
Іншая рэч была ў нас ёсць гэтыя іншыя пытанні тут
Пра функцыі
і тое, што функцыі,
і мы неяк казалі аб тым, што некаторы час, калі мы казалі аб вяртанні каштоўнасцяў;
для кагосьці, хто быў на лекцыі,
Вы можаце рэзюмаваць, хто быў чытаць лекцыю на сённяшні дзень?
Добра.
Давайце паглядзім, давайце - можа хто-небудзь сказаць нам, якія функцыі?
Кэлі?
>> >> Асноўным тое, што вы абапірацца на тое, што напісана ў бібліятэцы, што гэта
больш складаная там, а затым вы проста напісаць кароткую форму яго,
так як вы маеце на ўвазе, што назад у бібліятэку, выкарыстоўваючы
усё, што доўгі код і [неразборліва].
Так, сапраўды, а затым вы жадаеце нешта дадаць да гэтага?
>> Так, я думаю пра яго, як падобна на паняцце формулы па матэматыцы
дзе вы проста напісаць формулу, а затым вы можаце падключыць зменных у
і вось, што функцыя [неразборліва].
>> Так, такім чынам, мы атрымалі некалькі адказаў тут
, Якія адначасова з'яўляюцца сапраўды добрым і правільным на.
Там мае на ўвазе код, які быў запісаны ў бібліятэку дзесьці
, Што з'яўляецца больш складанай
а затым вы можаце абапірацца на гэты код
і фактычна выкарыстоўваць яго, проста пішу кароткай форме гэта -
ці, хутчэй, яе назва -
і тады ёсць таксама гэта параўнанне з формулай ў матэматыцы
ці фізіцы, усё ў такім жа родзе
дзе ў вас ёсць формула
а затым вы можаце падключыць
зменных, што формула
, Каб затым атрымаць вынік формулы,
так што вы думаеце пра яго, як як квадратнае раўнанне.
Уявіце, калі б замест таго, каб даведацца пра
што квадратычнай формула ў матэматычным класе,
Вы проста была маленькая праграма калькулятар, які зрабіў гэта за вас.
Хто-небудзь выкарыстанні калькулятар праграмы ў матэматычныя класы ў сярэдняй школе?
Так, фізіка класаў?
Дзе вы можаце проста сказаць: "Гэй, квадратычнай формулы.
Гэтыя зменныя, якія я хачу ўваходу.
Цяпер дайце мне адказ ".
Гэта накшталт таго, што функцыя.
Гэта спосаб для нас
выгляд запісу, як маленькія падпраграмы
ў межах нашай вялікай праграмы
і выкарыстаць яго зноў і зноў
так што мы не павінны скапіяваць і ўставіць код,
мы можам даць яму розныя ўваходы і атрымаць розныя выхады,
гэта супер зручна
калі вы спрабуеце пісаць розныя праграмы ў розны час.
>> Так, напрыклад, функцыі, якія мы выкарыстоўваем зноў і зноў і зноў
на працягу ўсяго курсу з'яўляецца Printf.
Printf само па сабе з'яўляецца функцыяй
і аказваецца, што на самой справе гэта даволі доўгі і складаны,
адваротны погляд, функцыю запісу.
Так жа проста, як нам здаецца,
друкаваць рэчы з на экран,
таму што ўсе мы толькі што зрабілі, што ў пачатку падзелу сёння,
Аказваецца, што гэта на самай справе, вы ведаеце,
добрая пара соцень радкоў кода.
Гэта не тое, што я ніколі не хачу пісаць, вядома,
але мы атрымліваем, каб выкарыстоўваць яго кожны дзень, гэта крута,
такім чынам, мы атрымаем падзяліцца адзін з адным,
з рознымі праграмамі,
так што мы будзем дайвінга больш у функцыі;
на дадзены момант, мы не -
Адзіная функцыя, мы збіраемся пісаць з'яўляецца асноўнай.
Галоўнае сама па сабе таксама функцыі,
і вы можаце бачыць ён атрымаў сваю прадукцыю,
яго уваходаў, як мы казалі,
і затым яго імя, якое з'яўляецца асноўным.
Галоўнае гэта свайго роду - гэта асаблівая функцыя ёсць.
У праграме C, там павінен быць асноўнай функцыяй,
і таму цяпер, у нас накшталт апушчаны пісьмовай
прататып, або дэкларацыя, асноўны.
Мы, улічваючы, што для вас,
і мы толькі што б вы запоўніце ў выглядзе нарыхтовак.
>> >> Так што для другога набору праблемы, мы не павінны
напісаць яго ў другі функцыі?
Я не веру ў гэта.
Я лічу, што ўсё тут.
Так, так Caesar Cipher,
Вам не трэба, гэта не падобна,
і Vigenere, вы не ведаеце як,
так - і аказваецца, што вы ніколі не на самай справе трэба напісаць
Функцыя, правільна?
Вы называеце заўсёды ставіць ўвесь свой код у галоўным,
і многія праграмісты робяць гэта.
Як мы рухацца далей,
мы пачынаем ўкараненне функцый у якасці спосабу
, Каб ачысціць ваш код,
каб зрабіць яго больш элегантным,
у выпадку, калі ў вас ёсць задачы - накшталт як калі мы казалі аб завесах,
як часам ёсць рэчы, якія вы хочаце зрабіць зноў і зноў, і зноў,
і ў вас ёсць выгляд наіўны спосаб -
або тое, што мы часта называем «саламянае пудзіла» рашэнні,
гэта проста скапіюйце і ўстаўце зноў і зноў -
Вы можаце зрабіць тое ж самае з функцыямі, дзе вы проста скапіяваць і ўставіць
той жа код зноў і зноў,
але раздзімае код -
ён заканчвае робіць код вельмі доўга -
і гэта таксама становіцца трохі заблытаным,
і гэта азначае, што вы не ў стане любіць -
калі вы жадаеце выкарыстоўваць гэты код яшчэ раз у іншай праграме,
Вы таксама затрымаўся капіяванне і ўстаўка яго зноў,
так што адна з рэчаў, мы будзем казаць пра тое,
від дызайну і стылю вашай праграмы,
і таму, калі мае сэнс выгляд
Пакет нешта і паклаў яго ў якасці асобнай функцыі,
Мы рэкамендуем вам зрабіць гэта,
і гэта тое, што, зноў жа,
няма жорсткіх правілаў.
Мы рэдка кажам, што вы павінны напісаць функцыю з імем гэтага
але гэта хутчэй адна з тых рэчаў, якія вы толькі што з цягам часу
як вы пішаце больш і больш праграм.
>> Ёсць яшчэ пытанні?
Такім чынам, давайце зараз
Вярнуцца да гэтага хлопца прама тут,
так што я яшчэ ў гэтым раздзеле пытанняў.
Мы гаварылі аб усіх гэтых розных,
што функцыя, таму пісаць функцыі,
калі вы можаце проста скапіяваць і ўставіць?
Спадзяюся, мы пераканалі вас, што напісанне функцый з'яўляецца добрай рэччу.
Такім чынам, цяпер давайце пяройдзем да гэтай праграме MySpace,
і мы будзем выдаткаваць трохі часу рабіць гэта.
>> Такім чынам, давайце паглядзім,
можа я кагосьці чытаць гэта для мяне?
Давайце Міхаіла - вы будзеце чытаць гэта для нас?
>> Ты маеш на ўвазе назад, калі MySpace -
Назад, калі MySpace было халаднавата.
>> "Назад, калі MySpace была прахалоднай,
ён быў у модзе, каб тып накшталт гэтага.
Можа быць, яшчэ ёсць? Я не зусім упэўнены.
У любым выпадку, выкарыстоўваючы CS50 Appliance,
CS50 Run, або CS50 прасторы,
напісаць праграму, якая запытвае ў карыстача паведамленне
і затым выводзіць паведамленне з першай літарай,
з усімі іншымі літарамі ў пераменным выпадку,
у адпаведнасці з узорам выхаду ніжэй,
дзе тлустымі тэкст ўяўляе сабою ўваход некаторых карыстальнікаў.
Для прастаты можна лічыць, што карыстач
будзе толькі ўваход малой літары і прабелы.
Разгледзім гэтую праблему магчымасць на практыцы;
Вам не будзе прапанавана прадставіць гэтую праграму ".
>> Awesome, дзякуй.
Так як Міхаіла сказалі,
Мы збіраемся напісаць праграму, якая MySpaces код.
Гэтак жа любы з вас, хлопцы выкарыстоўваюць MySpace?
Любы з вас MySpace рахункі?
Ах, так, так!
Гэта было даволі халаднавата.
[Смех]
Я ведаю.
Знаёмствы сябе.
Такім чынам, што мы спрабуем зрабіць, гэта напісаць праграму
, Якая праходзіць праз
і капитализирует першыя літары
, А затым кожную літару пасля гэтага -
або любога іншага лісты пасля гэтага, мне вельмі шкада.
>> Так што - і вы можаце бачыць у дадзеным прыкладзе,
гэта тое, як мы запусцілі праграму,
і так гэта проста кажа: "Мы працуе праграма пад назвай a.out.
Уваход, які мы збіраемся надаўшы яму
гэта будзе прапанавана.
Мы не збіраемся пастаўляць ўваходу ў камандным радку ".
Калі вы сачылі усе лекцыі
і слых аб аргументаў каманднага радка,
гэта збольшага ад таго, дзе тыя - што напалоханыя сінтаксісу
на галоўнай прыходзіць з внутр агдс, усе гэтыя рэчы,
так што тут мы не выкарыстоўваем, што, мы маем справу не з любым з гэтага.
Мы проста збіраюся атрымаць гэтую тыпізаваных ў карыстальнікам,
і тады гэта другая лінія з фанкі капіталізацыі
тое, што мы хочам, каб нашы праграмы на выхад.
>> Такім чынам, замест выкарыстання прыбора або Run, мы будзем выкарыстоўваць прабелы,
таму што ў нас прасторах,
і таму, калі б вы, хлопцы,
атрымаць код, каб выглядаць так,
так што я збіраюся захаваць гэты перагляд
проста так у цябе на пліце катла прама тут
, Што выглядае так, Int асноўных (несапраўднымі), нічога ў ёй.
На самай справе, тое, што мы будзем рабіць гэта мы будзем проста выдаліць усе, усе разам.
Мы хочам чыстага ліста,
таму што мы не збіраемся прыступіць да напісання кода;
Хутчэй за ўсё, мы будзем старацца пісаць некаторыя псевдокод
які на самай справе проста азначае, што мы збіраемся напісаць тое, што не код
такой апісвае тое, што мы хочам зрабіць,
накшталт як зрабіў Давід, у першы дзень лекцый,
ці я мяркую, што гэта быў другі дзень лекцыі, калі ён зрабіў усё дэма шкарпэткі.
Вы, хлопцы, памятаеце, што - бачачы шкарпэткі?
Іосіф быў там выгляд набраўшы на англійскай мове?
Так што мы збіраемся зрабіць тое ж самае.
>> Так што, калі я пачынаю пісаць псевдокод,
Я хацеў бы пачаць, гледзячы на ​​тое, што ўваход будзе.
І я даю сабе ўзору выпадку,
так як "дзякуй за дадаткі!"
А потым я таксама пішу, што я хачу быць выхад,
які ў дадзеным выпадку нешта накшталт гэтага.
І такая дае мне добры, як, пачынаючы з месца, каб думаць,
"Добра, я хачу ўзяць лінію 1
і я хачу, каб ператварыць яго ў радку 2 "
і такога роду дапамагае накіроўваць маё мысленне.
Гэта добрае месца для пачатку.
Іншы спосаб думаць аб гэтым, таксама, як мы цікавае рухацца далей
і як вы робіце гэта ў вашых уласных праграмах, з'яўляецца
думаць пра накшталт як, якія крайнія выпадкі на гэта?
Якія віды дзіўныя сцэнары?
Якія дзіўныя матэрыялы, якія мы маглі б атрымаць?
А што, калі гэтыя выхады выглядаць?
Напрыклад, адзін дзіўны ўваход
б гэтага,
стварэнне абсалютна нічога,
як тое, што мы павінны выводзіць у такім выпадку?
Тое, што мы хочам, каб думаць, таксама.
>> Гэтак жа, як пытанне,
што можа мы хочам выхад?
Калі мы не атрымаем любога ўваходу на ўсё, што павінна быць нашай праграмы высновы?
>> Нічога.
Нічога? Гучыць нядрэнна.
Такім чынам, мы хочам пераканацца, што мы не пішам нічога з
калі мы нічога не атрымліваем цалі
Cool. Добра.
Так
Я збіраюся патэлефанаваць на пару людзей, як мы праходзім
і проста высветліць, накшталт як, што агульны алгарытм
і мы будзем роду пачаць працаваць праз гэта разам.
>> Такім чынам, давайце паглядзім. Місіі.
Як вы думаеце, мы б пачаць?
Што б быць добрым месцам, каб пачаць тут
калі мы хочам пераўтварыць, скажам, лінія 1
у радку 2?
Ці можаце вы як-то проста растлумачыце мне, на англійскай мове, пра што ты думаеш?
Нават не турбавацца пра код.
>> Першая рэч, якую я хацеў бы зрабіць,
выгляд прамых карыстальнікаў, каб сказаць ім, што вы хочаце.
Добра, так, скажам,
"Гэй, карыстальнік. Хачу
Радок "- дзіўны.
Так што давайце гэта запісаць.
Падкажыце у карыстальніка радок.
Гэта гучыць, як добры старт.
Добра.
Давайце спытаем у Кэлі Ren гэты час.
Што б мы тады хочам рабіць далей?
Што накшталт нашага наступнага -
>> Збярыце свой уклад і захоўваць яго ў якасці зменнай.
Вялікі.
Так што збіраць радкі,
захоўваць яго ў зменнай.
Так ёсць нічога асаблівага, мы хочам зрабіць тут?
Хочам Ці мы, каб праверыць іх уклад
раней -?
>> Так.
Што можа мы хочам, каб праверыць?
>> Ну, вы сказалі, што мы не павінны праверыць, калі ён побач, дакладна?
Таму што будзем лічыць, што гэта маленькая?
Так.
>> Вось і атрымліваецца, што - так.
Так GetString гарантавана вяртае нам радок.
Ён не збіраецца вяртацца ліку да нас або што-небудзь падобнае.
Там могуць быць лічбы знакаў у гэтай радку, аднак.
І тыя, можна занядбаць, як мы рабілі капіталізацыі.
Але пустая радок цалкам нармальна,
так што справа тут, на лініі 4 і 5,
Права, дзе няма ўваходу,
і мы нічога не паклаў, як наш выхад.
Мы не павінны турбавацца аб тым, каб пераканацца, што ёсць нешта ў радок
або што радкі не менш за 4 знакаў;
усё ў парадку.
Так што гэта кантрастуе, напрыклад, з падобнымі праграмамі грошы, што вы напісалі
дзе вы павінны былі пераканацца, што вы атрымліваеце неадмоўных лікаў;
Вы павінны былі пераканацца, што вы атрымліваеце правільнае колькасць дзён у месяцы.
А як вы, хлопцы, робіце?
Як бы вы гэта зрабіць тэст?
Што гэта патрабуецца выкарыстоўваць?
>> Зрабі той час як завесы.
Зрабі той час як завесы, іншыя віды завес таксама, так.
Такім чынам, аказваецца, што мы не павінны выкарыстоўваць цыкл, у дадзеным выпадку,
калі мы запытам радок, якая з'яўляецца збольшага добра.
>> Добра, як рухацца далей.
Такім чынам, Стэла.
Ці можаце Вы расказаць нам крыху аб тым, што мы павінны рабіць далей?
Так што цяпер у нас ёсць радок, што ў нас ёсць яно захоўваецца ў зменнай;
Што мы павінны рабіць са радком?
>> Мы павінны -
вызначыць 2 -
Так, проста сказаць, што гэта на англійскай мове, што з'яўляецца дзіўным.
Вызначыць >> [неразборліва] сталіц - ці, у верхнім рэгістры.
Так, так што вам вызначыць, якія з іх з'яўляюцца вялікімі і малымі літарамі.
Мы не можам верхні або ніжні рэгістр іх, пакуль мы вызначылі, якія менавіта.
Такім чынам, мы пакладзем, што ў тут.
>> Так што, проста думаючы пра гэты працэс,
як мы робім гэта атаясненне?
Ці ведаеце вы, Дэн?
Выгляд таго, што мы - тое, што інструмент, які мы павінны былі б выкарыстаць з нашых інструментаў?
>> Я б паставіў яго ў чымсьці, як у масіве ці кожную лінію
з'яўляецца яго ўласнай маленькай скрынцы,
, А затым верхні яго адтуль ці не.
Такім чынам, адзін інструмент, мы можам выкарыстоўваць масіў.
Што мы павінны глядзець на ў радку,
хоць, каб высветліць - у нас было глядзець на знакі.
>> Так што ў вас ёсць, каб паглядзець на даўжыню радка?
Так, і частка, якая атрымлівае даўжыню радка.
Проста з цікаўнасці, што ж мы выкарыстоўваем, каб атрымаць даўжыню радка?
>> StrLen?
Так, StrLen, мы называем гэта "StrLen"
Усе гэтыя радкі функцыі, так StrLen з'яўляецца функцыяй,
і гэта супер зручна, таму што мы можам выкарыстоўваць яго, каб проста сказаць:
Гэй, StrLen: Вось радкі, скажыце мне, як доўга гэта.
У сённяшняй лекцыі, Дэвід шмат казалі пра тое, як StrLen будзе рэалізаваны,
што на самой справе адбываецца за кулісамі.
Але гэта адна з самых супер зручная іх.
Ёсць іншыя, якія таксама знаходзяцца ў радку бібліятэку,
такіх як STRCMP, якая пішацца "STRCMP»,
які выкарыстоўваецца для параўнання радкоў адзін з адным.
Іншы тыя, якія вы будзеце выкарыстоўваць, як strstr,
і гэта добра для знаходжання пад струны і гэтак далей.
Па большай частцы, усе яны пачынаюцца з вул а затым ісці далей быць нешта яшчэ.
Таму яны на самай справе не запісаць іх як радкі і г. д.
Таму як яшчэ ў першыя дні C,
калі людзі ўпершыню былі пісьмова і ўсё такое,
у іх былі абмежаванні на колькасць знакаў, якія можна выкарыстоўваць
для імёнаў функцый і пераменных імёны,
такім чынам, усе, як супер кандэнсаваных.
Але ў любы час вы бачыце тое, што пачынаецца з вул
Звычайна гэта азначае, што гэта мае нейкае дачыненне да радка.
>> Такім чынам, у вас ёсць, каб атрымаць даўжыню радка,
а затым, што мы будзем рабіць з героямі?
Ці ведаеце вы, Сэм?
>> Я паняцця не маю, я спрабаваў высветліць гэта.
Я сапраўды не ведаю, - я хацеў было нейкім чынам -
Я маю на ўвазе, я думаю, можа быць, мы маглі б зрабіць нешта з цотныя і няцотныя,
Але я не ведаю ні адной функцыі, як, што.
Так.
>> Але што - гэта не абавязкова будзе працаваць,
таму што тады вы атрымаеце прастору, каб быць -
Вы павінны былі б мець месца, каб атрымаць парады аб тым, як -
Добра.
>> Я не ведаю - я б страціў у гэтай кропцы.
Так - не, не, не, гэта добрыя акуляры.
Такім чынам, што мы павінны зрабіць, гэта, як сказаў Сэм,
мы павінны адсочваць, якія лісты з'яўляюцца няцотнымі літарамі,
і якія з іх нават літары.
Але мы хочам пераканацца, што мы не проста шукае
на цотныя і няцотныя
Індэксы ў радок,
а гледзячы на ​​цотных і няцотных літар у радку,
таму мы павінны мець свайго роду гэта адрозненне паміж
літар - як тое, што на самой справе A, B, C, D, або так далей,
і тое, што рэчы не з'яўляюцца літарамі, але па-ранейшаму ў нашых радок.
Напрыклад, тут, як гэта клічнік не з'яўляецца літарай,
але гэта ўсё яшчэ частка нашай радкоў, гэта па-ранейшаму знак.
Акрамя таго, усе гэтыя прасторы -
гэта не мае сэнсу для сваёй выгады прасторы, ці не так?
Такім чынам, мы хочам пераканацца, што мы нейкім чынам прапусціць тыя,
у той жа час адсочвання цотныя і няцотныя.
>> Так, відаць, у нашым праграмавання інструментаў
да гэтага часу, калі хочаце,
у нас ёсць цэлы шэраг розных інструментаў, якія мы ўжо абмяркоўвалі.
Так што, напрыклад, з'яўляюцца зменнымі,
як мы ўжо казалі тут.
Іншым інструментам, мы гаварылі пра функцыі.
Такім чынам, мы гаварылі пра зменных у нашым псевдокоде тут
як тое, што мы збіраемся выкарыстаць для захоўвання нашу радок.
Мы гаварылі аб функцыях, каб атрымаць даўжыню радка, як StrLen.
Мы гаварылі пра штосьці іншае, і мы гаварылі пра гэта
на шмат вышэй у раздзеле Сёння: завесы.
>> Што вы, хлопцы, думаеце аб выкарыстанні завесы ў гэтай праграме?
Джарэд, што ты думаеш?
Ці будзем мы выкарыстоўваць цыкл у гэтай праграме?
>> Напэўна, не, не, таму што вам не давядзецца прайсці праз гэта некалькі разоў.
Добра, вы не павінны прайсці праз тое, што больш за адзін раз?
>> Усю радок.
Права, так што вам не давядзецца прайсці праз усю радок адразу.
Выбачайце, што мела абсалютна ніякага сэнсу!
Вам не давядзецца прайсці праз усю радок некалькі разоў.
Добра.
Што вы думаеце?
>> Я думаю, што лепш іх выкарыстоўваць
так што мы можам зрабіць, як капіталізаваць у той час як
размяшчэнне гэта [неразборліва] ліку.
Вялікі, і таму выгады і што?
Такім чынам, мы кажам, што
Мы павінны выкарыстоўваць цыкл, таму што мы хочам
загалоўнай літары, хоць гэта не лік.
Так што - прабачце, вы хочаце дадаць?
>> Я хачу сказаць, што, як вы ставіцеся радком
і гэта [неразборліва] асобныя [неразборліва] на знакі?
Так.
>> І тады мы можам прысвоіць нумары -
або на аснове размяшчэння літар у радку?
Так.
>> А вызначыць, ці з'яўляецца гэта цотная ці няцотная і скарыстацца само ліст
у той час як размяшчэнне ліст [неразборліва] - прабачце.
Вялікі.
>> Так што рэзюмэ.
Ці можаце вы нагадваеце мне вашага імя яшчэ раз - прабачце.
>> Шарлота.
Шарлота, усё ў парадку.
Так што Шарлота кажа:
які цалкам маеце рацыю - божа, гэта любіць аўто водступ на мяне -
з'яўляецца тое, што калі мы паглядзім на радок
такіх як гэты уверсе -
"Дзякуй за дапаўненні", -
ў выглядзе паслядоўнасці сімвалаў
дзе знаходзіцца ў становішчы 0,
ч знаходзіцца ў становішчы 1.
А на 2, то мы атрымалі 3, 4, 5;
прастору знаходзіцца ў становішчы 6.
Прымаючы да ўвагі, - тое, што пазіцыя е?
7!
O? 8.
R? 9.
І тады ў нас 10, а затым я не магу пісаць без яго
свайго роду атрыманне брудна на экране.
Але гэта на самай справе, як мы можам казаць пра радках ў памяці.
Гэта радкі
ўяўляе сабой паслядоўнасць знакаў,
і калі мы гаворым аб асобных знакаў у радку,
Мы часта робяць гэта, спасылаючыся на пазіцыю, што персанаж
у радку,
Верагодна, гэтак жа, як мы кажам пра верасні
дзявятым месяцы года
ці ў панядзелак як першы дзень тыдня.
Такім чынам, гэта дае нам магчымасць
высветліць, якія з іх з'яўляюцца няцотнымі нават у параўнанні з
таму што вы можаце ўбачыць тут,
калі мы Супастаўляны яго з гэтай T,
Вы можаце бачыць, што ўсе тыя, капіталізаваць
знаходзяцца на цотных пазіцыях,
па крайняй меры, першае слова,
а потым усё становіцца скінуў раз мы патрапілі, што прастора,
таму што мы не лічым гэта прастора як ліст,
так што гэта як калі б мы пачалі
і пайшлі 0, 1, 2, 3, 4, 5,
прасторы, 6, 7, 8, прастора,
9, а затым 10, 11, 12, і так далей.
>> Cool, так што мы вызначана хочам выкарыстоўваць нейкі цыкл
перайсці на кожнага з персанажаў па чарзе.
Такім чынам, на дадзены момант,
мы вернемся да нашага старому псевдокод тут.
У рамках гэтага вызначэння, якія з іх
у верхнім рэгістры, а якія малымі літарамі,
мы хочам зрабіць гэта ў нейкай цыкл.
Loop, тоўстай кішкі.
Якія завесы, з відаў завес, якія ў нас ёсць,
здаецца добрым, каб выкарыстоўваць у гэтым выпадку?
>> Я думаў цыклу.
А чаму вы думаеце для цыклу?
>> Таму што ён пачынаецца з нуля, а затым
калі мы дасягаем даўжыні радка,
, А затым кожнай ітэрацыі можна [неразборліва], таксама?
Так, менавіта так.
Так, з розных варыянтаў завес,
у нас ёсць для завес, а завесы, і рабіць-то час завес.
Дзе цыклу асабліва карысна
калі вы хочаце ведаць,
выгляд, дзе вы знаходзіцеся ў цыкле,
колькі разоў цыкл быў выкананы да гэтага часу.
Якія менавіта тое, што мы хочам ведаць, у гэтай сітуацыі,
як сказаў Кэлі,
заснаваныя ад ранніх каментарыяў Шарлоты, што мы хочам ведаць становішча
знака ў радку,
і цыкл дасць нам толькі, што,
таму што, калі мы пачнем выгляд азіраючыся на нашу радок,
калі мы пачнем наш цыкл на 0,
і ідзем уверх па даўжыні ўсёй радкі,
Затым можна супаставіць літару Т
з 0 у наш цыкл,
Ліст з H 1 у нашым цыкл, і гэтак далей,
прайшоўшы ўвесь шлях да канца радка.
>> Такім чынам, давайце пачнем кадавання гэта проста трохі
толькі так вы, хлопцы, адчуць, на што гэта падобна.
Я збіраюся захаваць,
такім чынам, мы атрымалі нашы псеўда-код тут,
і я хачу выдаліць усе.
Так што ў мяне чыстага ліста.
Я збіраюся пачаць з напісання Int асноўных (несапраўднымі)
{
Я збіраюся паставіць вяртанне 0 у
, А затым}.
Так што звычайна, калі я пачынаю праграму, гэта тое, што я пачынаю з.
Я выратую яго так, што вы, хлопцы, ёсць.
Такім чынам, адна з першых рэчаў, пра якія мы гаварылі было
атрымання ўваходных дадзеных ад карыстальніка
і захоўваць яго ў радок.
Як мы можам атрымаць ўвод ад карыстача?
>> GetString.
GetString, усё ў парадку.
Так што, калі я друкую GetString ()
і кропка з коскі.
Давайце паспрабуем запусціць гэты, гэта будзе перспектыве, у першую чаргу?
А чаму не будзе гэтага бегчы?
>> Вы павінны абвясьціць зменную.
Я павінен абвясціць зменную. Добра.
>> Так як я магу гэта зрабіць?
Вы не пярэчыце, нешта пісаў, падзяляючы яго?
І тады мы можам пацягніце яго ўверх.
Давайце паглядзім, Дэн, права, добра.
Ці Данііл. Скапіюйце што ў Расеі, радок уводу = GetString ().
Awesome.
Ці будзе гэта працаваць?
Давайце паспрабуем.
Трапнасць перспектыве, загрузкі зыходнага кода, будаўніцтва, адбылася памылка.
Добра.
Так, што тут адбываецца?
Выкарыстанне 'радок' неаб'яўленай ідэнтыфікатар.
>> Мы павінны ўключыць бібліятэкі?
Так, так што Дэн кажа, што мы павінны ўключаць бібліятэкі.
Гэта тое, што вы збіраецеся сказаць, Стэла? Awesome.
Гэта ўзрушаюча, таму Стэла, ты можаш
скапіруйце код з касмічнага Данііла?
Калі вы націснеце на Daniel Roland Гі, скапіюйце яго,
і тады вы зможаце паставіць ўключаюць лінейны ўваход, а затым захаваць яго?
Дайце мне ведаць, калі вы будзеце гатовыя.
Так што гэты сінтаксіс ўключае таксама віды фанк;
там усё роўна, што хэш-тэг,
і там ўключаць, і тады гэтыя вуглавыя дужкі.
Вы памятаеце, як гэта працуе, ці я павінен пакласці яго на гэты код прама тут?
>> Я ў парадку.
Добра.
>> Я надрукаваў яго - я не быў упэўнены, які бібліятэкай, аднак.
Ну, добра - так, так што гэта CS50 бібліятэкі.
>> О, я паклаў STDIO бібліятэкі.
>> Ах, ён атрымаў - так, Не, гэта -
так атрымліваецца, што радок на самай справе тое, што з'яўляецца асаблівым для CS50.
Там на самай справе не з'яўляецца сапраўдным тыпам радок
, Таму што менавіта тут, радок у тып пазіцыі, -
Мы аб'яўленні зменнай завецца уваходам тыпу радок -
і мы змяшчаем ўнутр ўваход
значэнне, якое атрымлівае вярнуўся да нас: выхад гэтага GetString выкліку функцыі.
Вы можаце сказаць, што гэта выклік функцыі, таму што ў яго ёсць дужкі, як Printf робіць,
як StrLen робіць.
Але радок на самай справе не сапраўдная тыпу
У мове Сі.
Мы зрабілі гэта у тып, і мы будзем прымаць нешта большае, тое, што ёсць на самой справе
У C, таму што ёсць спосаб працы са радкамі;
мы толькі што зрабілі нешта, каб ён выглядаў трохі лепш.
>> Такім чынам, тут мы ідзем.
Вось код Стеллы.
Яна атрымала # ўключыць .
Іншыя людзі будуць называць гэта як хэш часам ўключаць або рэзкае ўключыць.
Цяпер мы можам запусціць яго, запусціць яго,
і мы ўсё яшчэ атрымліваеце паведамленне пра памылку.
Давайце паглядзім, што адбываецца.
"Без складнікаў зменныя" уваход ".
Такім чынам, гэта крута, гэта крута.
Я маю на ўвазе, гэта не вельмі выдатна,
таму што мы атрымліваю паведамленне пра памылку, і ён не працуе,
але тое, што гэта гаворыць, што
мы не выкарыстоўвалі нашы зменнай, якая мае сэнс.
Мы не спрабавалі нічога зрабіць з ім.
Гэта так, што
Clang спрабуе дапамагчы нам пераканацца, што мы не толькі з дапамогай зменных
а потым выпадкова называючы іх нешта яшчэ пазней у нашым кодзе,
дапамагае нам пазбегнуць памылак, якія шляхам.
>> Добра, у нас ёсць уваход ад карыстальніка,
Мы захавалі яго ў зменную.
Наступным крокам было тое
пачаць глядзець на ўсе сімвалы ў радку
і вызначэння, якія з іх павінны быць загалоўнымі
і якія з іх павінны быць у ніжнім рэгістры.
І, як Кэлі і Шарлота выхаваны,
Зробім гэта з дапамогай цыклу.
Так хто-небудзь памятае сінтаксіс для цыклу
і хацелі б прыняць ўдар на проста пісаць
Першы радок цыклу, толькі для біт?
Кэлі, ты хочаш паспрабаваць?
>> Так, так што вы павінны ініцыялізаваць першай,
так што я паклаў = 0,
а потым зрабіў я <StrLen ().
Ці ёсць у вашай Space - я магу выцягнуць яго?
>> Так, я аблажаўся трохі, але так.
>> Добра, давайце пацягніце яго ўверх.
Awesome.
>> Але тады я не ведаў, калі ў вас што -
Так, усё ў парадку.
Такім чынам, вось што Кэлі атрымаў: давайце паглядзім на гэта хутка.
Так што яна ўключаная CS50 бібліятэцы на самым версе.
Яна ўключана ў стандартную бібліятэку ўводу-высновы ў верхняй частцы,
і стандартнага ўводу-высновы мае такія функцыі, як Printf,
так што калі вы хочаце выкарыстоўваць Printf, трэба гэтую лінію.
А потым яна ўключаная радок бібліятэкі,
якіх мы будзем мець патрэбу,
таму што радок бібліятэцы StrLen функцыі,
якія мы атрымаем у толькі трохі.
Такім чынам, калі мы паглядзім на тое, што Кэлі зрабіў тут,
Вы можаце ісці з намі праз што ты зрабіў?
>> Так, так - я маю на ўвазе, у мяне ёсць памылкі, а значыць -
Так, Не, гэта -
>> Так я хацеў назваць радок, што я атрымаў толькі "радок".
Я хацеў, каб раздрукаваць радок
а потым -
Я хацеў бы хацела задаць радок як масіў кожнага знака
быць рознымі [неразборліва], правільна?
І тады я хацеў бы пачаць у пазіцыі 0
, А затым кожныя 2 месца,
Я збіраўся скарыстацца,
так што я проста апісаў яго як 23, так як я глядзеў на ASCII табліцы.
Дык вось што я думаю - я ведаю, што гэта не так.
>> Зразумеў, так што гэта выдатнае пачатак.
Я думаю, што шмат рамкі ў месца тут.
Давайце разгледзім віды радок за радком і паглядзець, што адбываецца.
Такім чынам, я хацеў бы зрабіць гэта толькі пачатак скампіляваць код
і дазволіць кампілятару скажы мне, як тое, што здарылася з маім кодам,
таму што кампілятар сапраўды добра кажу вам, што не так з вашым кодам.
Такім чынам, калі мы граем, будаўніцтва, і яно не будаваць.
Яна кажа, што была памылка,
таму, калі мы пракруціць ўніз і паглядзіце на першую памылку,
ён сказаў -
Мы пракруціць назад да самага верху,
мы бачым, ёсць 5 памылак, якія ўзнікаюць тут унізе.
На жаль, гэта сапраўды адрэзалі.
Я думаю, што проста не атрымаеце нічога лепшага.
>> Тут мы ідзем.
Такім чынам, існуе ўсяго 5 памылак, генераваных.
Тут я бачу толькі першыя 2,
так я магу рухацца да гэтага трохі, а затым выгляд пракруткі ўверх.
Гэта каманда, якая была запушчана для кампіляцыі кода,
, А затым першая памылка была ў file.c прама тут:
"Чакаецца вызначыць ці '('", і менавіта на гэтай лініі
дзе мы сказалі String = GetString ().
Вы можаце паглядзець прама тут, што гэта было на радок 8 file.c,
і тады я лічу, што гэта сімвал 12 - гэта памылка.
Так што ж адбываецца няправільна ў радку 8 - Кэлі?
>> Вам проста трэба называць гэта, быццам бы, ліст ці нешта,
як радок з або нешта?
Так, так атрымліваецца, што гэтыя спецыяльныя імёны тыпу,
так што радок, Int, Char, кароткія,
яны ўсе спецыяльныя ключавыя словы,
і вы не можаце выкарыстаць іх як імёны вашых зменных,
таму што кампілятар глядзіць на гэта і кажа:
"О, я ведаю, што гэта тыпу"
таму вы не можаце на самай справе ёсць радок зменнай радкі,
як я спрабую рабіць тут, гэта не будзе працаваць.
Але замест гэтага, мы можам назваць гэта нешта накшталт з і й або вул.
Мы таксама не маглі б назваць гэта Int.
Мы не можам ёсць радок называецца Int.
Мы не можам ёсць радок называецца сімвал, і ніхто з тых, хто будзе працаваць.
>> Так што мы проста называем гэта з у цяперашні час.
Awesome.
Так што ж далей адбываецца ў гэтым радку?
String - гэтая лінія выглядае даволі добра?
Давайце дамо яму яшчэ адзін шанец, давайце запусціць яго.
Такім чынам, мы па-ранейшаму атрымліваю памылкі.
На гэты раз, мы да 4 памылкі.
Такім чынам, мы атрымалі адну з іх.
Давайце рухацца ўверх.
"Нечаканы імя тыпу 'радок': чакаецца выраз" так?
>> Так, гэта таму, што я паспрабаваў назваць радок.
Так, так што, падобна, мы зараз павінны ісці выпраўленне
Усе гэтыя спасылкі на радка.
Вы можаце бачыць, што ёсць спасылка на радок, па адным, па адным тут,
так што мы можам перамясціць ўсе гэтыя ў с.
Вялікі. Добра, запусціце яго зноў.
Будаўніцтва - іншая памылка.
>> Добра, зараз мы да адной памылкі,
так Int I = S, а затым у квадратных дужках.
Такім чынам, вы можаце расказаць нам крыху аб тым, што вы робіце тут, Кэлі?
>> Так.
Гэта было на лініі 10.
>> Я не ведаю, калі мы мелі патрэбу ў ім усё,
Але я думаю, што я спрабаваў -
Я выратую яе, каб вы маглі сачыць разам.
>> Я думаю, што я быў
спрабаваў сказаць яму, каб пачаць у становішча 0
У пачатку майго цыклу,
так што я думаю, можа быць, казаў, было непатрэбным.
Так проста Нагадаем, што
Вы казалі, што гэта - Вы спрабавалі пачаць гэта ў пазіцыі 0
і атрымаць гэта - так,
таму я думаю, раней, таксама, калі вы ішлі праз код,
Вы казалі пра тое, як вы хацелі лячыць радок як масіў
так што мы можам атрымаць доступ кожнага персанажа ў асобнасці.
Я думаю, што Дэн згаданых масіваў, таксама спрабуе пераўтварыць радкі ў масівы.
>> Аказваецца, што выгляд пад капотам,
Радок на самай справе захоўваецца ў выглядзе масіва ўжо,
і вы можаце звяртацца да яго як масіў;
няма пераўтварэнні, якія вы павінны зрабіць.
Радок хіба - так -
Радок на самай справе не масіў,
але Вы можаце атрымаць доступ да яго як такога, паколькі ўсе сімвалы захоўваюцца
адно проста побач адзін з адным у памяці,
так што калі вы хочаце, каб атрымаць першы знак радкі,
гэта тое ж самае, як атрымаць першае чысло ў масіў цэлых лікаў.
Такім чынам, мы часта - МЫ
ставяцца да 2, як
ой, як радок, як масіў,
хоць на самай справе - яны вельмі розныя рэчы,
але вы можаце ставіцца да іх вельмі тое ж самае.
Вось і атрымліваецца, што гэтая лінія на самай справе -
нам не трэба рабіць якія-небудзь пераўтварэнні,
і на самай справе,
гэта на самай справе не з'яўляецца дапушчальным выразам,
што і наш кампілятар кажа нам.
Ён кажа: "Гэй, гэта чакалася выраз,
і што я атрымаў тут з'яўляецца тое, што гэта не словы ".
Каб абвясціць масіў,
Усё, што вам трэба зрабіць, гэта нешта накшталт гэтага з коскі,
а затым вы кажаце масіва, як доўга вы хочаце, каб ён,
такія як 5, так што гэтая лінія 10
будзе аб'явіць масіў завецца я з 5 лікаў у ім.
>> Гэта ў бок, гэта не з'яўляецца неабходным для кода,
Але гэта - гэта накшталт таго, што заява выглядае.
>> Як бы вам не выкарыстоўваць сімвал I [StrLen (ы)]?
Char я [StrLen (ы)]?
>> CHAR I, а затым у дужках, StrLen (ы).
Так, так што мы маглі -
Мы маглі б зрабіць гэта,
і гэта было б абвясціць - што б гэта зрабіць?
>> Я думаю, было б абвясціць масіў
з, напрыклад, - з -
Ах, вам не патрэбна я, - о,
Так, вы дакладна не патрэбна я.
Вы аб'яўляеце масіў сімвалаў
даўжыні з.
І тое, што Сэм кажа, што
гэты радок 10 - дазвольце мне некаторы прастору паміж ім і астатняй такім чынам мы можам ізаляваць яго -
гэты радок 10 будзе аб'явіць масіў
з сімвалаў, StrLen (ы) варта з іх,
але на самой справе нам патрэбна я,
і па гэтай прычыне мы маем патрэбу ў мяне, таму што мы павінны даць імя масіва;
У адваротным выпадку мы не мелі б спосаб звярнуцца да масіву пазней у кодзе.
>> Так што гэта прама тут з'яўляецца імя масіва
і ўнутры даўжыню.
Гэта дасць нам масіў,
Але гэта - зноў жа, гэта заяву.
Гэта не прызначэнне, гэта не ініцыялізацыі.
Калі аб'явіць гэты масіў, як гэта,
там на самай справе нічога ў змесціва масіва.
Гэта проста смецце - усё, што там.
І, як мы ўжо казалі,
мы на самай справе нават не трэба для гэтага пераўтварэнні,
таму што мы ўжо можам разглядаць радок як з масівам.
Я ведаю, што вы працуеце трохі доўга па часе,
але я хачу вельмі-вельмі хутка дабрацца да гэтага цыклу
і паказаць вам, як атрымаць доступ да асобных сімвалаў ў масіве,
таму што гэта ключавы для нашага задання.
І тады мы дамо вам ісці адтуль.
>> Дык вось, у нас ёсць цыкл
, Які выглядае амаль добра.
Што не зусім амаль няма?
Як там - тое, што гэта не зусім правільна пра гэта цыкле?
>> Няма фігурныя дужкі?
Няма фігурныя дужкі, напрыклад.
Хочаце пераканацца, што ў нас ёсць цела цыкла ў фігурныя дужкі.
На жаль, не квадратныя дужкі!
І што наступная рэч, якую мы павінны зрабіць з гэтай завесы?
Калі я спрабую і запусціць яго,
Што гэта памылка, што я атрымліваю?
Я атрымліваю усе гэтыя памылкі - у мяне ёсць для ініцыялізацыі я.
Вялікі.
Такім чынам, гэта будзе цыкл - гэта не зусім там,
але гэта становіцца вельмі блізкія.
Гэты код мы можам запускаць,
будаваць, памылка ўсё роўна ўзнікае.
Чаму ён да гэтага часу скардзіцца,
кажучы выраз не выкарыстоўваецца,
і гэта таму, што гэтая лінія не рабіць нічога.
Мы не захоўваць яго ў любым месцы, мы не захаваць вынік.
Дзе мы павінны быць захаванне гэтага выніку?
>> S ці я?
Цалкам дакладна, і гэта фанк сінтаксісу,
гэта з з квадратнымі дужкамі
азначае, што доступ да I-ы сімвал с.
Гэта будзе нешта, што сапраўды важна для выканання задання.
На жаль, мы збіраемся, каб спыняцца на дасягнутым,
так што Себасцьян раздзеле можна прыйсці,
але я шчаслівы застацца пасля звонку, так і будзе прадпрымаць ніякіх пытанняў.
Так што дзякуй вам, хлопцы, што прыйшлі.
Гэта павінна цяпер загружаць, ствараць, запускаць.
Мы можам увесці радок накшталт "прывітанне"
і гэта выводзіць "QOX".
[Смех]
>> Так што не зусім там, але перамяшчэнне, атрыманне на тых завес!
Дзякуй, што прыйшлі, і я буду звонку.