Джэйсан Hirschhorn: Сардэчна запрашаем у CS50 раздзеле, усё. Мяне завуць Джэйсан Hirschhorn. Я шмат ваш ТФ, але шмат людзей, мы спадзяемся, далучыцца да нас онлайн, пашырэнне студэнтаў або студэнтаў спрабуючы зазірнуць праз раздзел, калі яны выпусцілі свой раздзел, які тыдзень ці проста дагнаць, калі яны хочуць разгледзець некаторыя матэрыялы. Так, згодна з праграмай, якая ўсё з вас чыталі, правільна? Я бачу шмат галавы ківае. Раздзелы прадаставіць вам магчымасці для вывучэння курсу матэрыял у больш інтымнай абстаноўцы, , А таксама акунуцца ў практычныя заняткі. Так што гэта ў асноўным тое, што мы збіраюся рабіць кожны тыдзень. Мы збіраемся прайсці праз тое, што маем вызначаны як найбольш важныя Тэмы, закранутыя ў лекцыі, а тыя, таксама, верагодна, найбольш карысным і Хутчэй за ўсё, каб прыдумаць на хатніх заданняў і ў віктарынах, і ў Вашым кадаванні жыццё па-за CS50. Такім чынам, мы збіраемся ісці ў гэтыя тэмы, абмеркаваць іх, ідзіце за імі, адказаць на любыя пытанні вы, хлопцы, і Затым мы збіраемся рабіць шмат практыцы праблемы ў кадаванні. Вы прынеслі ўсе наўтбукі, , Які з'яўляецца фантастычным. Гэта клас інфарматыкі. Тым не менш, шмат практыкаванняў, якія мы робім, вам не трэба будзе для вашых наўтбукаў. Вы можаце зрабіць іх на лісце паперы. Вось як вы збіраецеся рабіць іх на віктарыны. І на самай справе, гэта выдатны спосаб ведаю, што вы, як гэта зрабіць нешта, калі ў вас няма Заезд 50 да належаць на Ці Зрабіць спадзявацца на, кажучы Вы былі дапушчаныя памылкі. Такім чынам, вы заўсёды можаце кода на Прыбор ці run.cs50.net, якая з'яўляецца іншы інструмент, які дазваляе кадаваць онлайн, але я таксама рэкамендаваў бы, калі вы яшчэ не спрабавалі яго, выкарыстоўваючы ліст паперы і спрабуюць гэтыя практыкі задачы на ​​аркушы паперы. Таму што зноў жа, гэта ў канчатковым рахунку тое, што вы збіраецеся быць папрасілі зрабіць на віктарыны. Такім чынам, давайце пачнем з нашай парадку дня на сёння. Мы збіраемся пайсці на некаторыя нормы наш раздзел, то мы збіраемся ныраць ў масівы, функцыі і каманднага радка аргументы, што і вы, хлопцы, пакрылі на мінулым тыдні ў лекцыйных а затым панядзелак, і што Вы распавяду больш заўтрашняга дня. І, нарэшце, мы збіраемся казаць пра pset2. Калі б я мог атрымаць ўзняццем рук, калі вы не глядзеў на праблему ўсталяваць два спецыфікацыі. Мы скажам кожнаму. Фантастыка. Мы будзем казаць аб праблеме мностваў ў біт, але калі вы прачыталі Пастаўленая задача спецыфікацыі, гэта Усё, што вам трэба рабіць. Калі вы чыталі, што, перш чым прыйсці да клас і падзел у аўторак, вы быць выдатнай пазіцыі. Мы можам прайсці праз праблемы мноства, што мы і збіраемся зрабіць у канцы. Мы збіраемся прайсці праз Логіка, пераканайцеся, ўсё на той жа старонцы. Я хачу, каб мець магчымасць пакінуць аўторак адчуваючы сябе вельмі камфортна з тым, што вы трэба зрабіць для праблемнай набору на гэтым тыдні, і калі вы гэтага не зробіце, я будзем шчасліва застацца пасля і працаваць з вамі. Але адна рэч, якую вы павінны зрабіць, але я думаю, што было б сапраўды разумны, толькі, каб прачытаць Пастаўленая задача спецыфікацыі класа ў аўторак, якой яна гучыць як Многія з вас, хлопцы зрабілі. Я пачну з парадку дня кожнага класа так што вы ведаеце, куды мы ідзем. Гэта таксама карысна для людзей, назіралых Інтэрнэт, таму што кожны раздзел мае каляровую маркіроўку, так што калі вы хочаце прыехаць назад і проста глядзець 10 хвілін, а чым увесь 90-хвілінны раздзеле можаце проста пайсці з каляровай маркіроўкай раздзеле і глядзець на гэтую частку. Так я спрабаваў разбіць іх у добрыя модулі, якія дазволяць вам - калі вы хочаце вяртацца і пераглядаць, або іншых студэнтаў, якія проста глядзець раздзеле можна праглядзець - знайсці канкрэтныя рэчы яны хачу звярнуць увагу на і даведацца больш аб. Салодкі. Нормаў. Я лідэр ФОП на тэрыторыі кампуса. Я не ведаю, калі хто-небудзь зрабіў ФОП. Хто-небудзь зрабіць ФОП? Адзін чалавек зрабіў ФОП. Два чалавекі зрабілі ФОП. Ўзрушаюча. Так ФОП з'яўляецца першым годам Адкрыты Арыентацыя праграмы. Возьмем першакурснікаў у лес і зрабіць Самы чароўны вопытам іх жыцця, правільна? Да. Падобна на праўду. Так што я проста хацеў пачаць наш самы першы раздзел з абмеркавання некаторых норм для класа, і нашы адносіны таму што я думаю яны вельмі важныя. У першую чаргу, як тыя з вас, хто мае раздзеле атрымалі і абмяркоўвалася ў які E-mail, я люблю гэта. Гэта мая любімая частка года. Я быў так ўсхваляваны. Я быў тут на працягу некалькіх гадзін сёння. Я не пакінуў гэты будынак за выключэннем пайсці паесці, таму што люблю CS50 раздзеле я люблю выкладаць, я люблю працаваць з вамі, хлопцы. Адна з маіх галоўных прыярытэтаў, калі не мая Прыярытэтам нумар адзін не толькі для гэтага класа, але ў тым ліку мае іншыя класаў і Extracurriculars, гэта падтрымаць вас, хлопцы, і дапамагчы вам, хлопцы, і зрабіць усё магчымае, каб пераканацца, што вы хлопцы, выдатна, весела, прадуктыўна, прывабным, захапляльным вопыт у гэтым класе. Гэта тое, што я цвёрда мае намер. Вось чаму я люблю рабіць гэта. Гэта мая рэч нумар адзін, падказаць вам хлопцы. Калі ў вас ёсць якія-небудзь пытанні аб лекцыі, Пастаўленая задача, частка, жыцця, нават калі вы хочаце гаварыць аб жыцця, калі ласка, не саромейцеся звярнуцца. У вас ёсць мой нумар сотавага тэлефона, ў вас ёсць мая электронная пошта адрас, у вас ёсць мой GChat. Вы можаце звязацца са мной у любы або ўсе кожны раз, калі тыя, але, верагодна, не атрымае адказ кожны раз, калі. Я спрабую вярнуць на працягу 24 гадзін. Часта гэта будзе ў межах 20 хвілін або 24 хвілін. Я павінен быў сказаць, што каб зрабіць яго паралельна. Але вы атрымаеце адказ даволі хутка. Калі вы мне тэкст за гадзіну да Праблема набору павінна, я супакоіць вас ўніз і рабіць практыкаванні па глыбокім дыханню з вамі, але калі вы яшчэ не пачалі, Вы, верагодна, не збіраецца да канца, і Я не магу дапамагчы вам там хоць я буду старацца з усіх. Таму я зраблю ўсё, Я магу падтрымаць вас. Калі ласка, не саромейцеся звярнуцца ці гэта ў раздзеле зноў, у офісе Гадзіннік Калі вы бачыце мяне, ці нават на вуліцы. Я шчаслівы наладзіць час, для задавальнення і працаваць праз праблемы з або перайсці матэрыялу. Так што гэта нумар адзін, падтрымка. Я зраблю ўсё ад мяне можа падтрымаць вас. Нумар два, сустрэча ў сярэдзіне. Столькі, колькі я хацеў бы быць, я не ўсемагутны або ўсемагутная або усёведны, так што я не ведаю ўсіх часу, калі, што я раблю становіцца у папярочніку, калі так, як я вучу тэма дапаможа вам даведацца гэта, або калі вы блытаюць па тэме, але не падніміце руку ці спытаць мяне або напішыце мне ліст. Ці нават калі вы, зноў жа, блытаюцца пра што-то на праблемы мноства. Калі вы не дацягнуцца да мяне, Я не магу ведаць гэтага напэўна. Я буду рабіць усё магчымае, каб праверыць у на вы, хлопцы, пераканайцеся, што ўсе ідзе добра, паспрабуем навучыць рэчы такім чынам, што будзе спрыяць большай частцы вашы стылі навучання, але калі ёсць што я магу зрабіць, дайце мне ведаць. У тым жа ключы, калі вы хочаце некаторую дапамогу з праблемай набору, я больш чым рады дапамагчы Вам з праблемай набору. Мы збіраемся рабіць шмат што да другога палова гэтага падзелу. Але калі вы не чыталі хатніх заданняў назад і не глядзеў хады да канца і не глядзеў шорты і чакае мяне, каб навучыць вас усё, што было відэазапіс онлайн або што вы можаце знайсці на CS50 даследаванне, гэта не зусім справядліва мне ці на іншыя вузлы. Таму, калі ласка, я больш чым шчаслівы дапамагчы вас, але вы, хлопцы, дабраўся, каб сустрэць мяне ў сярэдзіне. У нас ёсць тоны рэсурсаў для Вам даступна на CS50. Я згадаў пра некаторыя з іх. Калі ласка, скарыстацца імі. Калі вы збянтэжаныя, я больш чым шчаслівы каб дапамагчы вам растлумачыць іх іншаму, але гэта не справядліва, калі студэнты з'яўляюцца ў офісе гадзін, яшчэ не пачалі нічога, і гэта Чацвер ноччу, і яны чакаюць TF хадзіць іх праз кожны рэч для праблемы з наладай з-за апоўдні на наступны дзень. Сэнс? Зноў жа, калі ласка, сустрэцца з намі ў сярэдзіне. І, нарэшце, вялікія надзеі. Я збіраюся быць класіфікацыі ўсе, хто У маёй секцыі, або прысваення балаў Праблема мностваў. Вы не вярнуўся праблемы ўсталяваць нуль ці адзін яшчэ. На жаль пра гэта. Нам спатрэбілася некаторы час, каб, нарэшце, ўрэгуляваць секцыі і цяпер мы можам пачаць з класіфікацыі. Я атрымаю іх назад да вас як мага хутчэй. Такія некаторыя з маіх advisees там. Я атрымаю іх назад да вас як мага хутчэй. І праблема ўсталяваць два, мы будзем на планаваць і мы пачнем атрымліваць іх Вам даволі хутка пасля Вы ўключаеце іх сюды Калі вы атрымаеце вашу праблему ў баку, вы атрымае балы, як вы ведаеце з чытанне вучэбнай праграмы - правільнасць, Дызайн, аб'ём і стыль балы. Вы таксама атрымаеце каментары. Каментары з'яўляюцца больш важнымі, чым ацэнкі. Я думаю, можна з упэўненасцю сказаць, што. Вынікі проста нумар ад 04:59. Цяжка чытаць на тых. Цяжка палепшыць ад тых. Але каментары пакажу канкрэтныя рэчы, якія вы зрабілі добра ці вобласці Вы можаце змяніць да лепшага і даць вам некалькі ідэі на будучыню або альтэрнатыўнай спосабы вядзення спраў. Таму, калі ласка, калі ласка, калі ласка, прачытайце праз каментары. Я паклаў шмат часу ў гэтыя заўвагі. Калі ласка, азнаёмцеся з імі і не толькі пракруткі ўніз да ніжняй часткі PDF, паглядзіце на ваш рахунак, або выходзіць у інтэрнэт і знайсці свой рахунак, а затым ігнараваць каментары. Гэта не так, як вы зменіцца да лепшага. Гэта не як вы збіраецеся павялічыць Вашы вынікі ў канчатковым рахунку, усяго гледзячы на ​​балы. Калі ласка, паглядзіце на гэтыя заўвагі. І па лініі высокіх чаканняў, зноў жа, як я сказаў, вы можа быць забіты з першай па пятую. Двойкі, тройкі, і чацвёркі з'яўляюцца Пераважная большасць балаў Вы будзеце атрымліваць. Адны пяцёркі і абодва сапраўды рэдка. Там заўсёды рэчы мы можам зрабіць лепш. Кожны раз, калі я код праграмы, ёсць Я заўсёды нешта мог бы зрабіць лепш. Таму замест таго, кажуць, што вы атрымаеце пяць ўвесь час на ўсё і зрабіў ўсё ідэальна, я не думаю, што любы з нас сапраўды лічу, што мы - ці Будзем спадзявацца, што мы не будзем рабіць усё, удасканальваць ўвесь час. Так што не хвалюйцеся, калі вы не атрымліваў пяць. Пяты не адлюстраванне на, чатыры ня адлюстраванне на B, робіць тры Ці не адлюстраванне на C. Гэта не як працаваць балаў. Як Давід шмат разоў казаў, па крайняй семестр скончыць усе свае акуляры і ўваходныя ад мяне, вашага TF, сабраліся разам і вызначыць выніковую адзнаку для вас. Але зноў жа, гэта не пяць, , Чатыры, B, і гэтак далей. Так што я збіраюся мець высокія чаканні для вас, хлопцы. Я збіраюся чакаць добрых праблемы садзіцца, і я збіраюся даць Вам зваротную сувязь як такую. І гэта не будзе азначаць, што ты збіраецца атрымаць горш класе. Вы ацэньваюцца з пункту гледжання за прасоўваннем ад тыдня нуля да канца курса. І, нарэшце, з пункту гледжання высокай чакання ў класе, я люблю, калі людзі ўдзельнічаюць. Я разумею, некаторыя людзі адчуваюць сябе больш- менш камфортна ўдзельнічаюць. Іншыя людзі ўдзельнічаюць ня падняць руку і ўвесь час кажу. Але мы ў гэтым класе будзе рабіць шмат дробных праблем, шмат міні пытанні, а затым некаторыя з вялікія праблемы з кадаваньне. Так вызначана працуюць гэтыя практыкаванні з калі мы робім іх на вашым кампутары ці на аркуш паперы. Але я таксама дамо вам некаторы час, перш Хто-небудзь павінен адказаць на некаторыя з пытанняў, я прашу. Такім чынам, таму што я дам вам некаторы час, каб думаю пра гэта, таму што мы збіраемся зрабіць нешта ў партнёры часам, Я буду чакаць ўсіх займацца некалькі. І за адсутнасцю лепшага тэрміна, ёсць , Верагодна, будзе халодных званкоў, якія тое, дзе ў кожнага будзе шанец думаць над адказам, а затым Я заклікаю вас, а затым Вы скажаце адказ. Не хвалюйцеся або баяцца пра гэта. Я рабіў гэта ў мінулым, і мы выявілі, што гэта значна больш паспяховым, Таксама чытаў даследаванні ў галіне адукацыі на яе, каб вызначыць, ці сапраўды гэта было добрая тактыка. Гэта вельмі карысна, асабліва калі вы даць студэнтам час падумаць аб адказы і ня робяць іх толькі што і сказаць з месца ў кар'ер. Але калі вы не адчуваеце сябе камфортна адказаўшы, я таксама даволі добра адчуваючы, што, і мы не збіраемся паставіць вас на месца, асабліва на камеру, хоць ні адна з Вы знаходзіцеся на камеру прама цяпер. Такім чынам, тыя нормы ў мяне ёсць. І яшчэ адзін момант па лініі сустрэчы ў сярэдзіне. Я збіраюся даць вам хлопцы шмат водгукаў. Калі ласка, дайце мне зваротную сувязь, а таксама. Там у вэб-сайт, sayat.me/cs50. Так што гэта сумленную зваротную сувязь. Калі вы хочаце, каб даць яму на секцыях, Я атрымліваю электронную пошту кожны раз, калі гэта адбываецца. Мы возьмем перапынак у трохі, так што я праглядаць вынік ўздзеяння пасля гэтага. Калі вы заўсёды маеце любую зваротную сувязь, калі ласка, дайце мне яго там. Калі вы дасце мне зваротную сувязь на Q, гэта выдатна, але гэта кіраўніцтва што вы робіце ў канцы. Але гэта будзе ў канцы семестра так Я не буду ў стане прыняць ніводнага з гэтага зваротную сувязь і ператварыць яго ў навучанні вы, хлопцы, лепш. Таму, калі ласка, калі ў вас ёсць зваротную сувязь, даць яго мне. Я люблю зваротнай сувязі. Назад да ФОП, мы атрымліваем зваротную сувязь ўвесь час. Вы можаце даць мне плюсы, добрыя рэчы, дэльт, што я магу палепшыць. Вы можаце каментаваць мае ўборы. Гэта не будзе, як карысныя, але вы можаце пакінуць каментары да любой і ўсё. Калі ласка, калі ласка, дайце мне зваротную сувязь. Я цаню гэта шмат, і гэта вельмі шмат значыць для мяне. Яшчэ адна норма, весела. Мы збіраемся, каб мець шмат весялосці. Спадзяюся, у гэты курс, вы будзеце ёсць шмат весялосці. Давядзецца цукеркі на частцы. Давядзецца музыкі. Мы будзем, мы спадзяемся, пазнаючы адзін Некалькі іншую, так што я хачу гэта будзе весела, прыцягненне вопыту. Я ведаю, некаторыя з вас заснуў у лекцыі ў вас было сёння раніцай, так што спадзяюся, што не будзе мець месца цяпер. І калі гэта мае месца зараз, проста ня храпуць таму што гэта можа быць злоўлены на камеру. Салодкі. Любыя пытанні, каментары ці заўвагі перад тым, як рухацца далей пра ўсё, што мы казалі? Вялікі. Такім чынам, мы збіраемся пайсці ў масівы, у першую чаргу. Гэта, як вы зрабіць масіў. Мы бачылі гэта раней. У вас ёсць тып дадзеных, у вас ёсць імя, а затым у вас ёсць памеры. Прама тут, я ствараю два масіва. Першы з іх уяўляе сабой масіў сімвалаў, і яна мае 26 месцаў. Другая ўяўляе сабой масіў балаў, і ён мае тры месцы для трох цэлых лікаў. Да? Студэнт: Ці з'яўляюцца ўсе гэтыя слайды даступна дзе-небудзь для нас? Джэйсан Hirschhorn: Добры пытанне. Пытанне ў тым, ці ўсё Гэтыя слайды даступныя? Да. Усе гэтыя слайды будуць даступныя, і ў будучыні, я буду іх па электроннай пошце Вы перад раздзелам. Але сёння, таму што гэта першы тыдні, у нас быў позні старт. Так звычайна, вы атрымаеце гэтыя слайды, але яны будуць даступныя ў Інтэрнэце і Я буду адправіць іх да вас адразу пасля класа. Любыя іншыя пытанні? Такім чынам, яшчэ раз, масівы скрынкі, з-за адсутнасці лепшага слова, якія трымаюць некалькі Элементы аднаго тыпу дадзеных, і яны побач адзін з адным у памяці. І вось зноў жа, гэта, як вы можаце Ўключаны два тыпу масіваў. Такім чынам, пасля вы зрабілі свой масіў з што першы радок - Алімпійскія балы, кранштэйны тры, якая зачыняе дужку - вы хочаце ініцыялізаваць яго. Вы хочаце, каб паставіць некаторыя значэння ў там. І гэта, як вы выказаліся некаторыя значэння ў там, проста выбар і Indice напісанне лік. Давайце намалюем гэта на дошцы. Ці ўсё могуць паглядзець? Гэта ўсё бачаць. Салодкі. Так што гэта будзе мой масіве вынікі. Як вы можаце бачыць, гэта памер тры. Ёсць тры скрынкі ў там. Кожная з іх можа падыходзіць тое, што тып тып дадзеных? Студэнт: Integer. Джэйсан Hirschhorn: цэлае ў гэтым. Мы напісалі дзесятковага балаў, і першае слова гэта тып дадзеных, які збіраецца Заходзім у скрынкі ў гэтым масіве. Так што я магу адпавядаць тром. Чаму я павінен нуля да там на борце? Чаму сказана лікам нуль роўна 1? Нагадаеце мне ваша імя. Студэнт: Курт. Джэйсан Hirschhorn: Курт. СТУДЭНЦКАЯ: Так. Джэйсан Hirschhorn: Чаму? СТУДЭНЦКАЯ: Таму што першы індэкс нуля, мы пачынаем лічыць з нуля. Джэйсан Hirschhorn: Такім чынам, мы пачынаем адлік з нуля. Гэта абсалютна дакладна. Гэта частка заблытанай і адключыцца вас, асабліва калі вы спрабуе перабраць масівы, які мы зробім у няшмат. Мы пачынаем адлік з нуля. Так што, калі я хачу звярнуцца да першага скрынкі, гэта не адно акно. На жаль, гэта акно нуля. Другое акно адзін, і ў гэтым выпадку, трэці з'яўляецца скрынцы два. Як наконт поле тры? Дзе поле тры? Ці, калі я хачу зрабіць ацэнкі, кранштэйны тры, якая зачыняе дужкі, што гэта такое? Так вы сказалі, што гэты знак. Любыя іншыя думкі? Што такое ачкоў тры кранштэйна? Студэнт: Гэта на самай справе не існуюць, таму што Вы толькі вызначаецца як ацэнкі, Кранштэйн тры. Джэйсан Hirschhorn: Дык вы кажаце, на самай справе не існуе. У некаторых выпадках, калі мы маем справу з радкоў, увогуле мы змесцім нулявы знак у канцы. Мы вернемся да гэтага ў секунду. Аднак у гэтым выпадку існуе Трэцяга не дадзена скрынкі тут. Так што апошняе поле ў любым масіве з'яўляецца памер мінус 1. Так што, калі ў нас ёсць масіў памерам N, першае поле на нулі, апошні з якіх з'яўляецца у N мінус 1. І ў гэтым выпадку не існуе. Існуе што-то тут, у памяці, але гэта не наша. Мы не з'яўляецеся яго ўладальнікам. Мы не прасілі яго. Так што, калі мы спрабуем атрымаць да яго доступ, які мы зрабіць у трохі, мы, верагодна, будзе трапіць у бяду. У гэтым выпадку, я ініцыялізацыі майго масіў з трыма зменнымі. Мы пакласці адну ў скрынцы нуля, два у скрынцы адзін, і тры ў скрынцы два. Хто-небудзь ёсць якія-небудзь пытанні аб ініцыялізацыі масіва? І мы пайшлі па гэтаму толькі цяпер. Вынікі, кранштэйны тры, якая зачыняе дужку, што не існуе. Мы нуля індэксавацца ў галіне кампутарных навук, так мы пачынаем лічыць з нуля. Апошні скрынкі даступныя для нас, гэта трэцяя скрынка, але гэта называецца скрынцы нумар два. Там трохі, гэта альтэрнатыва спосаб ініцыялізацыі масіваў. Такім чынам, замест стварэння масіва на адзін лініі, запаўняючы першую скрынку, то другое поле, то трэцяя скрынка, Вы можаце зрабіць гэта ўсё ў адной радку. Такім чынам, у гэтай лініі, як масівы. Гэта стварае сапраўды такі жа масіў тое, што мы стварылі прама тут, але гэта проста робіць гэта ў адной радку. Цяпер мы стварылі масіў. Звычайна, як толькі вы ствараеце масіў, вы хачу зрабіць што-то з ім, няхай гэта будзе што Папоўніць яе ці атрымаць рэчы з яго і раздрукаваць іх на экране. У гэтым выпадку, мы збіраемся праз нашу ацэнкі масіва, які мы ініцыялізавацца Першая лінія тут, у шэрым. А потым на другой лініі, мы пачынаем ітэрацыі па масіве. Хто-небудзь ёсць якія-небудзь пытанні аб структура для цыклу? Так што гэта пятля для. У нас ёсць пачатковая ўмова, а затым наша канчатковае ўмова, і тады мы ітэрацыі, я, кожны цыкл. І ў фігурных дужках у гэтым для завесы, што адбудзецца, калі я павінен быў працаваць гэтая праграма? Хто-небудзь можа сказаць мне, што мы атрымаем? [? Мату? ?] MATU: Друк ўсіх балаў на кожнай радку. Было б друкаваць кожны кошт на асобнай радку. Джэйсан Hirschhorn: Што менавіта б гэта надрукаваць? Студэнт: Было б надрукаваць адзін, потым два, потым тры. Джэйсан Hirschhorn: Цалкам дакладна. Было б надрукаваць адзін, потым два, затым тры, кожны на асобнай радку, так як мы збіраемся праз масіў, і вы будзеце бачыць, што другое, Е заявы, ацэнкі я. Так што на першы тур праз наш для пятлю, я роўная нулю, што азначае, што мы атрыманне значэння ў нулі Ацэнка - якая, калі мы вернемся да наша дыяграма, адна - і запаўненне - О, гэта кажа ў. Гэта павінна быць% D. Я дапаможа гэта выправіць трохі, калі Я руку, якая да вас, хлопцы. Але мы ўяўляем цэлае так што павінен быць% D прама тут, а не C%. Што такое% для C? Студэнт: Характар. Джэйсан Hirschhorn: Характар, менавіта так. Што такое іншы? Калі вы не жадаеце зрабіць для% D цэлае, што яшчэ вы можаце зрабіць? Студэнт: я. Джэйсан Hirschhorn:% I, дакладна. Так што любыя пытанні аб пераборы праз масіў? Што здарыцца, калі мы гэта робім? Замест таго каб рабіць я менш тры, мы я менш чым або роўна трох. Што адбываецца, калі мы запускаем гэты код? Так, Эні? Студэнт: Яны збіраюцца, каб раздрукаваць дзіўныя рэчы на ​​чацвёрты радок. Джэйсан Hirschhorn: Дык вы сказалі, гэта збіраецца раздрукаваць дзіўныя рэчы на Чацвёртая радок? Хто-небудзь ёсць адказ на сваё пытанне? Так што цалкам верагодна, што, калі мы дабіраемся да - так па чацвёртага раунда праз наша для завесы, як вы думалі, Эні, гэта будзе тры ацэнкі кранштэйн, які Мы ўжо зразумелі, не існуе, і мы збіраемся, каб паспрабаваць і доступ да гэтага, раздрукаваць яго з, выкарыстоўваць яго якім-небудзь чынам. Так кампутар, верагодна, злавацца на нас. Вы цалкам маеце рацыю. Гэта магло б выйсці з праграмы ў цэлым. Гэта можа раздрукаваць нешта сапраўды дзіўна. Вы не можаце сказаць напэўна. Цалкам верагодна, гэта хутчэй за ўсё будзе злы на Вам і проста кінуць адразу. Але гэта агульная памылка, якую вы павінны будзеце дзе вы знаходзіцеся ў непасрэднай блізкасці ад адной на канца, і гэта памылка, якая будзе чума вас на працягу ўсяго кадавання. Адзін спосаб, якім я хацеў бы зрабіць, гэта проста на дошкі, прайсці кожнай ітэрацыі з пятлі на руцэ або на паперы, каб убачыць тое, што адбываецца, і тады вы звычайна разумеюць, Ой, пачакайце, я не павінен пайшлі ў меншы або роўна трох. Я павінен быў спыніцца на двух, якая з'яўляецца Што адбудзецца, калі ваш стан менш чым тры. Ёсць пытанні да гэтага часу? Салодкі. Так што ў вас ўсіх ёсць кампутары адкрытым. Мы збіраемся даць вам 02:58 хвілін, каб напісаць праграму, якая стварае масіў цэлымі аднаго праз пяць, а затым раздрукоўвае кожны цэлае з новага радка. І калі ў вас ёсць якія-небудзь пытанні, падніміце руку. Я шчаслівы прыбыць. Як я сказаў, давайце тры хвілін, каб напісаць гэта. Ці ўсё добра, калі я іду ў новае акно і закрыць гэта? Мне шкада, калі ў вас не было шанцу да канца, але мы збіраемся зрабіць гэта разам прама цяпер. Так на экране, я # ўключыць cs50.h, # Уключыць stdio.h. Можа хто-небудзь сказаць мне, што гэтымі двума радкамі рабіць? Майкл? Студэнт: Яны ўключаюць у сябе бібліятэкі CS50, што зроблена і што Стыў захаваны для вас выкарыстоўваць, каб зрабіць вашу жыццё прасцей. Джэйсан Hirschhorn: Такім чынам, вы сказалі, што яны ўключаюць у сябе бібліятэкі, якая CS50 зроблена, cs50.h, і той, які проста стандарт, пастаўляецца з Пакет C, stdio.h. Што вы маеце на ўвазе ўключаць бібліятэк, праўда? Ці можаце вы быць трохі больш канкрэтна? Студэнт: ён робіць так, што вы можаце выкарыстоўваць пэўныя кодавыя словы, каб мець функцыянаваць адбыцца без таго, каб ісці і зрабіць функцыю з сябе. Джэйсан Hirschhorn: Ці можаце вы даць мне прыклад? Студэнт: Як і Е той, які вы можаце выкарыстоўваць. Джэйсан Hirschhorn: Printf. Так вы сказалі, Е з'яўляецца адным з тых функцый, дзе замест таго, каб напісаць Е на свой уласны, Е з'яўляецца ўключаны фактычна ў stdio.h, так што вы можаце проста выкарыстоўваць яго і выкажам здагадку, што ён будзе працаваць. У stdio.h, калі вы адкрылі гэты файл, б уключыць як Е работ, увесь код для Е? Чаму вы пампуеце галавой? Студэнт: таму што загаловак файла проста якое ўключае ў сябе функцыі дэкларацыі. Джэйсан Hirschhorn: Цалкам дакладна. Выява загалоўка ўключае ў сябе толькі Аб'яву функцыі. Так у асноўным, пры кампіляцыі гэтага, Зрабіць ўдарыў графа, які мы зробім у Па-другое, кампілятар ведае, што, калі Вы карыстаецеся Е, Е існуе. Гэта збіраецца быць вызначаны недзе. Гэта не праблема для вас выкарыстаць. І потым пазней, ён будзе ўключаць у сябе нулёў і адзінак, што на самой справе ўтрымліваюць Е ў рэалізацыі і аб'яднаць іх з вашым кодам. Як вы пераканайцеся, што яна ўключае ў сябе нулёў і адзінак, скажам, узяць вяроўку? Студэнт: Атрымаць радок у cs50.h. Джэйсан Hirschhorn: Дакладна. Так кажа, што ўзяць вяроўку існуе, Аб'яву функцыі. Але тады адзінак і нулёў, двайковы файла, які на самай справе ўключае ў сябе ажыццяўленне ўзяць вяроўку? Як вы пераканайцеся, што ідзе з вашай праграмай? Студэнт: Перадайце ў кампаноўнік Аргумент каманднага радка. Джэйсан Hirschhorn: Pass кампаноўнік у аргуменце каманднага радка. Як вы гэта зрабілі? Студэнт: Гэта-L лініі ў ляскам Джэйсан Hirschhorn: Цалкам дакладна. Вы кажаце, што L-CS50, праўда? Гэта ўключае ў сябе адзінкі і нулі. Студэнт: Але пераканайцеся, робіць што для вас, ці не так? Джэйсан Hirschhorn: Цалкам дакладна. Зрабіць зробіць гэта за вас, але ў рэшце рэшт, Вы не будзеце ёсць зрабіць, ці Вы павінны будзеце зрабіць зрабіць па сваім меркаванні, так што гэта Добрая рэч, каб памятаць. Калі вы збіраецеся выкарыстоўваць адну з гэтых іншых бібліятэк, не толькі ў вас ёсць напісаць # уключыць і Затым бібліятэку. Акрамя таго, неабходна звязаць яго цалі І гэтыя дзве рэчы розныя. CS50-L адрозніваецца # Чым ўключаць cs50.h. Тады ў нас ёсць тап_п пустэчу фігурныя дужкі, і зараз мы збіраемся код ўнутры асноўнага. Першая лінія ў мяне тут ёсць каментар , Які кажа, стварыць масіў з цэлымі з першага па пяты. Што такое добрае слова, каб апісаць тое, што я ёсць зараз на экране, проста каментары ўнутры асноўнага? Як мы называем гэта? Студэнт: псевдокод. Джэйсан Hirschhorn: псевдокод. Дзякуй, Джэфры. Цалкам дакладна. Псевдокоде. Хлопцы, вы бачылі псевдокод раней? Падніміце руку, калі вы выкарыстоўвалі псевдокод перад праблемай ўсталяваць адзін. Каля паловы з вас. Я вельмі рэкамендаваў бы выкарыстанне псевдокод, каб зламаць праблемы ў меншыя, больш лёгка адкусіць кавалкі. Акрамя таго, калі вы робіце псевдокод, вы вашыя заўвагі ўжо ў значнай ступені убудаваная, так што вам не прыйдзецца вярнуцца назад і паспрабаваць высветліць, тое, што вы рабілі. Так можа хто-небудзь даць мне гэтую першую лінію Для стварэння масіва цэлых лікаў з адной праз пяць? Вы? Студэнт: Int, а затым вы можаце патэлефанаваць незалежна ад колькасці, а затым квадратныя Кранштэйн пяць. Джэйсан Hirschhorn: Так дзесятковага ліку, квадратныя дужкі пяць. Студэнт: роўных і Затым фігурныя дужкі. Джэйсан Hirschhorn: роўна, фігурныя дужкі. Студэнт: Раз, два, тры, чатыры. Джэйсан Hirschhorn: Раз, два, тры, чатыры, пяць. Студэнт: А потым фігурныя дужкі а затым з коскі. Джэйсан Hirschhorn: і кучаравыя дужкі і кропка з коскі. Выдатна. Раздрукуйце кожнага дзесятковага з новага радка. Ці можа хто-небудзь даць яшчэ мне, што код, калі ласка? [? Мату? ?] Ідзем далей. Студэнт: Для ( Джэйсан Hirschhorn: Для ( Студэнт: Int I = 0 Джэйсан Hirschhorn: Int I = 0 Студэнт: кропку з коскі я менш за пяць. Джэйсан Hirschhorn: кропка з коскі, я менш за 5. Студэнт: кропку з коскі, я + +. Джэйсан Hirschhorn: кропку з коскі, я + +. Студэнт: Закрытае дужках, Затым якая адкрывае фігурнай дужкі. Джэйсан Hirschhorn: Закрытае дужках і дзве дужкі. Усярэдзіне брекеты? СТУДЭНЦКАЯ: І тады Е "% D / N" Джэйсан Hirschhorn: Выбачайце, трымайся. Printf "% D / N, закрытая цытаты. Студэнт: А потым закрытая цытаты, коскі, граф, я кранштэйна. Джэйсан Hirschhorn: коска, Колькасць, кранштэйны я. СТУДЭНЦКАЯ: Прабачце, я нумары кранштэйна. Джэйсан Hirschhorn: Лікі, кранштэйны я. Студэнт: Выбачайце. , А затым зачыняецца дужках, коскі. Джэйсан Hirschhorn: Зачынена дужкі, кропка з коскі. Я іду, каб выратаваць гэта. Мы збіраемся зрабіць рахунак. І як мне запусціць разлічваць? Студэнт: Зваротная касая рыса. Студэнт: Dot касую рысу - Джэйсан Hirschhorn:. / Адлік, менавіта так. Дзякуй. . / Адлік. Адзін, два, тры, чатыры, на пяць новых ліній. Падобна на тое, гэта спрацавала. Так, Ной? СТУДЭНЦКАЯ: Вы таксама можаце зрабіць менш або роўным чатыром, як я менш або роўна чатырох? Ці ёсць якія-небудзь перавагі, каб рабіць менш чым пяць гадоў, ці проста іншы спосаб запісаўшы яго? Джэйсан Hirschhorn: Так што пытанне вы мог бы зрабіць я менш або роўнай чатыром замест Я менш за пяць. Б гэта працавала тое ж самае? Студэнт: ён павінен. Джэйсан Hirschhorn: Так. Гэта цалкам б працаваць гэтак жа. Стылістычна, гэта як правіла, менш, і вы ўбачыце, у другім, калі мы радкамі, вы можаце выкарыстоўваць што-то называецца StrLen, якія вы бачылі раней, каб атрымаць даўжыню струны. І вы не можаце зрабіць менш або роўная StrLen. Вы маглі б зрабіць менш або роўным StrLen мінус адзін. Так што гэта проста прыемней зрабіць менш, чым StrLen. Да? Студэнт: І ў рэальнай віктарыны, зрабіць мы павінны прадставіць свае заўвагі па нашай код, а? Джэйсан Hirschhorn: пытанне быў у віктарынах, вы павінны даць каментары? Такім чынам, мы будзем гаварыць больш пра віктарынах, калі яны прыходзяць, але ў цэлым, добрае правіла: кожны раз, калі вы напісанне кода, прадставіць свае заўвагі. Калі вы атрымаеце код няправільна, але каментар, для гэтага, вы можаце атрымаць некаторыя крэдытавання, як ад мяне, калі я быў класіфікацыі Вы на праблему набору або на віктарыну. Так што каментары заўсёды добра, каб забяспечыць. Салодкі. Граф. Выдатная праца. Давайце рухацца далей. Strings. Strings. Мы бачылі гэта раней ў лекцыі. Гэта падарваў мой погляд, калі я першы даведаўся пра гэта. Гэта, верагодна, не падрываў нічыім ўвазе, але гэта нармальна. Радкі масівы знакаў, а яны сканчаюцца, як Вы сказалі раней, нулявой сімвал, які гэта / сімвал 0. Калі мы збіраемся прыцягнуць у радок на дошка, мы будзем маляваць яго сюды. Такім чынам, як доўга гэта радкі? Прабачце. Як доўга доўжыцца гэты радок? Студэнт: [неразборліва]. Джэйсан Hirschhorn: чатыры? Чаму чатыры? СТУДЭНЦКАЯ: Таму што на пятым месцы з'яўляецца для нулявога знака. Джэйсан Hirschhorn: Так пятае месца з'яўляецца для нулявога знака. Так што, калі б я павінен быў працаваць на StrLen гэтым, што гэта дасць мне чатыры. Правільна. І масіў, хоць, калі б я быў ініцыялізаваць гэты масіў, колькі прабелаў я павінен быў бы папрасіць? Студэнт: пяць. Джэйсан Hirschhorn: пяць. Я павінен быў бы папрасіць пяць, але не магу толькі паставіць чатыры сімвала тут таму што мне трэба паставіць, што нулявы тэрмінатар на канцы. Такім чынам, мы збіраемся пісаць у "Ohai» і паставіць у нулявы канчатак у канцы. Мы скажам, што гэты радок з роўным гэтаму. Што такое кранштэйн з нуля? з кранштэйнам нуля, Эні? Студэнт: О. Джэйсан Hirschhorn: О, дакладна. Кранштэйн з адным? з кранштэйнам пяць? з кранштэйнам пяць? Студэнт: Не існуе. Джэйсан Hirschhorn: Не існуе. Цалкам дакладна. Крута. Любыя пытанні аб разуменні Радкі як масівы знакаў? Добра, тады. Яшчэ адна праграма для вас, хлопцы. Напішыце праграму, якая запытвае ў карыстальніка для струннага Затым друкуе кожны характару на новы радок. Такім чынам, давайце тры хвіліны, каб напісаць гэтую праграму, і тады мы будзем яго код ў групе. Прабачце. Вы павінны бачыць гэта? СТУДЭНЦКАЯ: Няма Джэйсан Hirschhorn: OK. Давайце яшчэ адна хвіліна, каб закадаваць гэта, ці, прынамсі, пачаць працу на ім. Так што вы можаце працягваць працаваць, але я збіраюся пачаць хадзіць праз яго. Так, як раней, у мяне на экране # Уключыць cs50.h, # Уключыць stdio.h. Int асноўных несапраўднымі. У фігурных дужках асноўнага аўтара, у мяне ёсць два каментара, псевдокод. Адным з іх з'яўляецца папрасіць радок ад карыстальніка. Другі раздрукоўваць кожны характару на новы радок. Так Ганна, вы можаце даць мне спытаць для радка ад карыстальніка? Студэнт: Printf. Джэйсан Hirschhorn: Printf? СТУДЭНЦКАЯ: Так. ( Джэйсан Hirschhorn: ( Студэнт: "дайце мне радка. Джэйсан Hirschhorn: "даць Мне вул - ой - радок. Студэнт: / п ") кропку з коскі. Джэйсан Hirschhorn: Канец радка, закрытай дужкі, кропка з коскі. СТУДЭНЦКАЯ: Так. А потым наступны радок, радок S = атрымаць радок. Джэйсан Hirschhorn: String S = атрымаць радок. СТУДЭНЦКАЯ: Так. І тады () Джэйсан Hirschhorn: () Студэнт: кропку з коскі. Джэйсан Hirschhorn: кропку з коскі. Фантастыка. Так што я іду, каб атрымаць радок і Я збіраюся захаваць яго ў чым? Якая пераменная з імем што вы стварылі? Студэнт: String с. Джэйсан Hirschhorn: пераменная называецца с. Гэта тып радок. Менавіта так. Наступная рэч, якую мы хочам гэта раздрукаваць кожны знак з новага радка. Хто можа даць мне гэты код? [Неразборліва]? Ці можаце вы даць мне яго? СТУДЭНЦКАЯ: Вядома. Джэйсан Hirschhorn: Давайце зробім гэта. А шкада. Я не хацеў бы паўтарыць тое, што вы кажаце, таму што вы атрымаць гэта права, але я прыйдзецца паўтарыць яго так, што, калі яны транскрыбаваць гэта, яны могуць атрымаць усе Тэкст на транскрыпцыі. Такім чынам, вы можаце проста працягваць казаць. На жаль, у мяне ёсць сказаць, што гэта над вамі. Мне вельмі шкада, але - Студэнт: Гэта добра. Для INT I = 0 Джэйсан Hirschhorn: Для INT I = 0 Студэнт: Я менш - Джэйсан Hirschhorn: кропку з коскі. СТУДЭНЦКАЯ: Да гэтага мы можам пакласці зменную так што вы атрымаеце дзесятковага даўжыня імя? Джэйсан Hirschhorn: О, вы не хачу паставіць кропку з коскі? ОК. Так што ж вы будзеце рабіць пасля нуля? Студэнт: Я хачу, каб даўжыня радка з і Устаноўлена, што ў зменнай? Джэйсан Hirschhorn: Добра, так як я магу гэта зрабіць? Слухач: То бок вы робіце дзесятковага даўжыня = Джэйсан Hirschhorn: даўжыня = Int Студэнт: S-T-R-L-E-N. Джэйсан Hirschhorn: S-T-R-L-E-N - Студэнт: З с. Дужкі. Джэйсан Hirschhorn: (а). СТУДЭНЦКАЯ: І тады я думаю, што трэба паставіць кропку з коскі паміж двума цэлымі. Джэйсан Hirschhorn: Кропка з коскай пасля нуля? СТУДЭНЦКАЯ: Так. Затым паставіць кропку з коскі пасля гэтага, і вы кажаце, я менш даўжыні. я менш, чым даўжыня, якую з'яўляецца зменнай. Студэнт: А потым коскі. Джэйсан Hirschhorn: кропку з коскі. Студэнт: Я + +. Джэйсан Hirschhorn: Я + +. Там у нашым цыкле. Добра, усярэдзіне цыклу. Студэнт: І потым Е. Джэйсан Hirschhorn: Printf. Студэнт: дужкі. Джэйсан Hirschhorn: дужкі, двукоссі. Студэнт: дужкі, двукоссі,% C / N. Джэйсан Hirschhorn:% З, ОК. Студэнт: / N. Джэйсан Hirschhorn: / N. Студэнт: Закрытае двукоссі. Джэйсан Hirschhorn: Закрытае двукоссі. Студэнт: коску. Джэйсан Hirschhorn: коску. Студэнт: С. Джэйсан Hirschhorn: С. Студэнт: Кранштэйн я. Джэйсан Hirschhorn: Кранштэйн я. Студэнт: А потым зачыненыя дужках. Джэйсан Hirschhorn: Закрытае дужках. Студэнт: А потым коскі. Джэйсан Hirschhorn: кропку з коскі. Фантастыка. Дык давайце захаваем гэта. Зрабіць загавор. Аб хлопчык. У мяне ёсць пара памылак. Першая памылка ў радку 11, ён кажа, Чакаецца выраз, і гэта дае мне памылку, што другі Інтэлект, ёсць памылкі. Там некаторыя памылкі вакол там. Хто-небудзь ведае, што гэта памылка? Курт? Студэнт: Я думаю, гэта павінна быць коска, а не кропка з коскі. Джэйсан Hirschhorn: Добра, коска замест коскі. Так што ў тым, што ўсё, што трэба выправіць? СТУДЭНЦКАЯ: Няма Джэйсан Hirschhorn: Што яшчэ нам трэба выправіць? Студэнт: мы павінны ўключыць string.h. Джэйсан Hirschhorn: ўключыць string.h. Куды я павінен ўключыць гэта? Студэнт: Тое ж месца вы ў тым ліку іншыя рэчы, правільна Пасля ўключае stdio.h. Джэйсан Hirschhorn: Давайце паглядзім, калі гэта працуе першае, таму што ў цэлым, мне падабаецца змяніць нешта адно, а затым запусціце яго, а затым убачыць памылкі, якія мы атрымліваем. Такім чынам, мы збіраемся, каб ачысціць тэрмінал з кантролем N, давайце зробім зрабіць загавор. Такім чынам, іншая памылка ў радку 11. Чаканыя коскі. І я ўсё яшчэ атрымліваю Памылкі на гэтай лініі. Так што ён не даў мне памылку кажучы, што гэта не разумее, што StrLen ёсць, але гэта дае мне памылкі на гэтым лініі, так што яшчэ не так? Маркам? Маркус. Студэнт: У вас ёсць, каб выдаліць другі дзесятковага дэкларацыі? Джэйсан Hirschhorn: Выдаліць другі Int. Давайце паспрабуем гэта. Цяпер ясна тэрмінала. Зрабіць загавор. Памылка. Няяўным аб'яўленні бібліятэкі Функцыя StrLen. Так што цяпер мы бачым гэтую памылку. Што нам трэба, каб уключыць? Студэнт: string.h. Джэйсан Hirschhorn: ўключыць string.h, зробім # ўключыць string.h у верхняй частцы экрана. Выратуем, зрабіць загавор. Зараз складзены. Такім чынам, яшчэ раз, тое, што мы павінны памятаеце лініі 12 у нашым цыкле, калі мы ўсталёўваем яго, INT I = 0, даўжыня = StrLen (ов). Гэта фантастычная стратэгія. Стыль гэтага вялікая, Дызайн гэта выдатна. Мы можам пайсці ў гэтыя прычыны праз, але такім чынам вы дастаткова патэлефанаваць па тэлефоне StrLen аднойчы, а кожны запуску праз пятлю. Аднак, вам трэба выкарыстоўваць коску там і вам не трэба дзесятковага зноў. Калі вы і тыя, абвясціўшы зменныя разам, вы ня трэба дзесятковага зноў. І потым, калі вы збіраецеся выкарыстоўваць StrLen, што з'яўляецца яшчэ адной бібліятэкі функцыя не ўключана ў stdio.h або cs50.h, пераканайцеся, што вы ўключаеце string.h. Курт? Слухач: Гэта значыць тады, калі вы не трэба сказаць, які тып даўжыні, ці значыць гэта азначае, што яна павінна быць цэлалікавай? Вы не маглі б мець два розных тыпу там? Джэйсан Hirschhorn: Так што вы можаце маюць два розных тыпаў. Даўжыня цэлалікавай тут, аднак. Даўжыня цэлалікавай таму што гэта коска , А затым тое ж самае. Слухач: То бок, ён мяркуе, што гэта будзе такі ж, як і першы? Джэйсан Hirschhorn: Цалкам дакладна. Мы не збіраемся рабіць гэтага цяпер, але вы можа ўключаць у сябе два зменных на адной лініі з выкарыстаннем аднаго тыпу дадзеных. Так дзесятковага х, у створыць двух зменных. Так дзесятковага х, у, калі мы зробім гэта, гэта дае Мне невыкарыстоўваемых зменных х і у, таму што Мы імі не карыстаецеся. Так пакласці пустэчу перад проста фантазіі трук, калі вы не выкарыстоўваеце нешта, каб выкарыстоўваць яго. Але, як бачыце, я ствараю х і ў на той жа радку праз коску. Гэта стварае два цэлых колькасці прама там. Так так, цалкам магчыма стварыць дзве рэчы, на той жа лініі падзеленых коскамі. Давайце пазбавімся ад тых, аднак. Такім чынам, ёсць загавор. Дзякуй хлопцам за кадаваньне для нас. Давайце зробім гэта яшчэ раз, запусціце яго. Дайце мне радка. [Неразборліва], вы зрабілі большую яго частку. Што радкі? Студэнт: Добры дзень. Джэйсан Hirschhorn: Добры дзень. H-E-L-L-O, кожны знак у адным радку. Выглядае выдатна. Давайце запусцім яго зноў. Заўсёды збіраюся праверыць для кутніх выпадкаў. Што такое добры выпадак куце, каб праверыць? СТУДЭНЦКАЯ: колькасць? Джэйсан Hirschhorn: колькасць. Так я пакладу ў 1, і яна выведзе 1. Ён не просіць, для лістоў, так здаецца, што праца лікаў. Добры выпадак куце, каб праверыць. Што яшчэ адным добрым кутом выпадак, каб праверыць? СТУДЭНЦКАЯ: пустая радок. Джэйсан Hirschhorn: Хм? Студэнт: як пустая радок. Джэйсан Hirschhorn: пустая радок. Так што давайце не ставіць ні ў чым. І тое, што можна раздрукаваць? Студэнт: Нічога. Джэйсан Hirschhorn: Нічога. Здаецца, што гэта працуе. Вы можаце паспрабаваць больш выпадкаў кут, але звычайна нумары, розныя дадзеныя выдатна паспрабаваць, а нічога няма. Нічога, нуль, негатыву не заўсёды вялікія рэчы, каб паспрабаваць і рэчы, якія вы варта праверыць, ці ўсё, вядома, мы пратэстуем Праверце і для 50 будзе правярацца. Любыя пытанні аб spell.c? Добра, давайце галаву назад. У мяне ёсць яшчэ адна праграма для вас, хлопцы, каб пісаць. Яна называецца students.c. Гэта праграма, якая запытвае ў карыстальніка пяць імёнаў, а затым выпадковым чынам выбірае і выводзіць адно з імёнаў. Гэтая праграма ўяўляе сабой трохі больш актыўны ўдзел, чым у апошнія два мы пісалі, Дык чаму б нам не пяць хвілін, каб закадаваць яго індывідуальна, і тады мы будзем кадавацца як група. Гэтая праграма таксама ўключае некаторыя рэчы вы не маглі бачыць раней, так што калі ў вас ёсць пытанне аб, як рабіць Я раблю гэта, падніміце руку. Я прыеду і паказаць вам у правільным кірунку. Але мы таксама робім гэта, таму што гэта будзе добры спосаб ўвесці некаторыя тэмы, якія складана. Так ён працуе, ці не так? СТУДЭНЦКАЯ: Так. Джэйсан Hirschhorn: Кожны раз, калі вы ўключаеце ў Праблема набору, ёсць шмат спосабаў зрабіць , Але некаторыя з іх больш Элегантны, чым іншыя. Давайце апусканне цалі # Уключыць cs50.h. # Уключыць stdio.h. тап_п пустэчу, фігурныя дужкі. У фігурных дужках, У мяне ёсць два заўвагі. Першы з іх, спытаеце карыстач на працягу пяці імёнаў. Другі адзін, выпадковым чынам выбіраць і раздрукаваць адно з імёнаў. Так давайце зробім першы, спытаеце карыстач на працягу пяці імёнаў. Хто спытаў у карыстальніка пяць імёнаў і можа сказаць мне, як гэта зрабіць? Толькі два чалавекі зрабілі першую частку. Тры чалавекі зрабілі першую частку. Чатыры, пяць. Таго, як вы гэта робіце? Студэнт: можна аб'явіць радок а затым імя, кранштэйны пяць. Джэйсан Hirschhorn: String Кранштэйн назваць пяць. Дык што ж гэта робіш лінію, імя радкі кранштэйны пяць? Студэнт: можна аб'явіць масіў радкоў. Джэйсан Hirschhorn: Гэта масіў радкоў. Колькі радкоў збіраюцца каб адпавядаць тут? Студэнт: пяць. Джэйсан Hirschhorn: пяць. Выдатна. Мы збіраемся называць імёны, таму што ён Мы збіраемся, каб атрымаць некалькі. Добра, а далей? СТУДЭНЦКАЯ: І тады вы ёсць цыкл - Джэйсан Hirschhorn: для завесы. Студэнт: - для I = 0. Джэйсан Hirschhorn: для (INT = 0. Студэнт: кропку з коскі. Джэйсан Hirschhorn: кропку з коскі. Студэнт: Я менш за пяць. Джэйсан Hirschhorn: Я менш за пяць. Студэнт: кропку з коскі. Джэйсан Hirschhorn: кропку з коскі. Студэнт: Я + +. Джэйсан Hirschhorn: Я + +. Студэнт: А потым зачыненыя дужках. Джэйсан Hirschhorn: Закрытае дужках, , А затым некаторыя фігурныя дужкі. У фігурных дужках? Студэнт: А потым Е. Джэйсан Hirschhorn: Printf. Студэнт: Адкрытыя дужках, імя% D. Джэйсан Hirschhorn: Прабачце? СТУДЭНЦКАЯ: Імя. Джэйсан Hirschhorn: Імя. Студэнт: А потым прабел, а затым% D. Джэйсан Hirschhorn: Імя, прастора,% D. Студэнт: А потым / N, а затым зачыняецца. Джэйсан Hirschhorn: Так называюць, прастора, % D / N, зачыненыя дужкі. Студэнт: коска, я + 1. Мне вельмі шкада. Закрытая цытата, а затым коска, я +1. Джэйсан Hirschhorn: Зачынена цытаты, коска, я +1. СТУДЭНЦКАЯ: Так. А потым наступная радок - Джэйсан Hirschhorn: I + 1. СТУДЭНЦКАЯ: Так. А потым на наступны слайд гэта імёны кранштэйны я. Джэйсан Hirschhorn: Наступная радок гэта імёны кранштэйны я. Студэнт: = атрымаць радок. Джэйсан Hirschhorn: = Get - капіталу G-E-T - радок. Ой, прабачце. Студэнт: адчыненыя, зачыненыя дужкі , А затым - Джэйсан Hirschhorn: адкрытая, закрытая дужка. Студэнт: кропку з коскі. Джэйсан Hirschhorn: кропку з коскі. Такім чынам, вы ініцыялізаваць масіў радкоў, імёны, а затым прайсці праз цыкл, і ў пяць разоў раздрукаваць некаторыя падкажа карыстальніку, а затым захаваць пяць радкоў. Хто-небудзь ёсць якія-небудзь карэктывы ў гэта? Том, я думаю, што ўсе згодны з вамі. Выглядае даволі добра. ОК. Навошта ты гэта зрабіў я +1, праўда? Студэнт: Я маю на ўвазе, не мае быць, але я +1 так, каб гэта Назавіце адну назваць пяць. У адваротным выпадку было б назву нуля назваць чатыры. Джэйсан Hirschhorn: Дык што вы зрабілі я +1 таму што інакш гэта будзе мець раздрукаваў ад нуля да чатырох, таму што вось як кампутары думаць, але людзі ня чытаю падобнае. Гэта іншая справа Вы сутыкнецеся. Часам, калі вы нешта раздрукаваць для карыстальніка, вы хочаце, каб зрабіць яго крыху прыгажэй, і рабіць +1 У гэтым выпадку спосаб зрабіць яго прыгажэй. Я таксама бачу пяць двойчы, імя радкі у пяць, я менш за пяць. Я ведаю, дзе вы атрымалі пяць. Вы атрымалі гэта ад мяне гаварыць вам пяць імёнаў. Але калі б мы хацелі, каб зрабіць код трохі больш надзейным, адзінае, што мы можаце зрабіць, гэта тут, за межамі Інтэлект, мы маглі б зрабіць нешта накшталт гэтага, # Вызначыць, і мы маглі б зрабіць ІМЁНЫ 5. Увогуле, ўсюды, дзе я пішу капіталу N, капіталу, капіталу M, літары Е, капіталу S, гэты радок, ён заменіць што з 5 ў кодзе. Ці давайце проста называць яго - мы будзем проста назваць яго нумар. Так я вызначаю ўсе загалоўныя літары Нумар, які будзе 5. Так што цяпер там, дзе ў мяне ёсць нумар 5, я можаце замяніць яго з усімі НУМАР шапкі. І цяпер, калі я хачу, каб змяніць колькасць імёнаў, усё, што мне трэба зрабіць, гэта гэта адна лінія, чацвёртая радок, дзе ў мяне ёсць # Вызначыць нумар 5, змяніць гэта да 10, або змяніць яго на 4. Калі код становіцца больш, вы не збіраюцца, каб успомніць ўсе месцы, якія вы паклаў, колькі імёнаў вы хацелі, і ў Для таго, каб не прапусціць адну, гэта Добры спосаб зрабіць гэта, каб знайсці што-то наверсе, а затым проста выкарыстоўваць гэтую фразу ўсюды ва ўсім кодзе. Маркус? Студэнт: Гэта стылістычна пераважным ня глабальна вызначальным пастаянная N? Джэйсан Hirschhorn: Так у тым, што стылістычна пераважнымі, чым глабальна вызначэнне пастаяннай N? Дык вы кажаце, вы маглі б рабіць, унутр лік = 5? СТУДЭНЦКАЯ: Ці ёсць у іх зычных Не ў C ці не? Джэйсан Hirschhorn: Ці будаўніцтва - роўнымі. Дык вы кажаце, проста глабальная пераменная? СТУДЭНЦКАЯ: Так. Джэйсан Hirschhorn: Так стылістычна, Там не абавязкова адно права адказаў, але абодва гэтыя лепш чым проста кідаць гэтыя выпадковыя нумары ва ўсім кодзе. Мы называем іх магічнымі лікамі. Калі я гляджу на код ці калі Хто-небудзь чытае праз яго, яны не жадаюць проста гэтых выпадковых лікаў , Якія не мае сэнсу. Нават лік 26, што ў цэлым з'яўляецца колькасць літар у алфавіце, лепш вызначыць алфавіт наверсе і захавайце нумар 26 у гэтай радку, калі гэта мае сэнс. Або на пытанне, пастаўлены адным, а ня - зноў жа, мы не гаворым пра гэта ў часу, але замест таго, каб проста кідаць У 25 усюды або 10, вы можаце захаваць нумар 25 у квартал або 10, як Дзіма, і што робіць яго лягчэй для той, хто чытае праз ваш код разумею, чаму ты абраў менавіта гэты нумар. А таксама для вас, калі вы хочаце, каб абнавіць код, ён робіць яго трохі больш надзейнай. Да? Студэнт: Гэты код таксама збіраецца быць даступным для нас пасля? Джэйсан Hirschhorn: Усе гэтыя коды , Што мы напісалі разам, будзе адпраўлены да вас Хлопцы і даступным. Да. Дык спытайце ў карыстальніка пяці імёнаў. Выпадковы выбар і друк адно з назваў. Хто гэта зрабіў лінію? Гэта найбольш складаны лінія тут. На жаль, Том. Вы зрабілі сапраўды добрую працу, але гэта крыху больш складана. Маркус, ісці наперад. Студэнт: Ну па-першае, вы збіраецеся неабходна ўключыць stdlib.h і time.h. Джэйсан Hirschhorn: Дык вы кажаце, на верхняй часткі, ўключаюць дзве бібліятэкі. Ты хочаш, каб ўключаць у сябе S-Т-Д-Л-Я-B кропку H, стандартнай бібліятэкі, і тое, што быў іншы? Студэнт: Time.h. Джэйсан Hirschhorn: # Уключыць time.h. Такім чынам, гэтыя два некалькіх бібліятэк. Я мяркую, што зараз мы будзем выкарыстоўваць Функцыі, якія ўтрымліваюцца ў гэтых два, і менавіта таму вам трэба уключыць іх? Слухач: То бок, то, па-першае, вы збіраецца хочаце напісаць srand. Джэйсан Hirschhorn: Srand. Студэнтаў: (часу (0) Джэйсан Hirschhorn: Выбачайце. Srand (час ( Студэнт: 0. Джэйсан Hirschhorn: 0. СТУДЭНЦКАЯ :)), кропка з коскі. Джэйсан Hirschhorn: Яшчэ адзін хлопец закрытай? Кропка з коскі. Я збіраюся проста замяніць Вам нулявы з NULL. Ён будзе рабіць тое ж самае, але Як правіла, вы ўбачыце пустое значэнне, што Мы пагаворым пра гэта лініі ў секунду. Студэнт: Стылістычна лепш? Джэйсан Hirschhorn: Як правіла, людзі Права NULL, але тое ж самае. Студэнт: А потым дзесятковага імя. Джэйсан Hirschhorn: Int імя. Студэнт: = Джэйсан Hirschhorn: = Студэнт: Рэнд. Джэйсан Hirschhorn: Рэнд. Студэнтаў: () Джэйсан Hirschhorn: () СТУДЭНЦКАЯ: модуль колькасці. Джэйсан Hirschhorn: Што такое модуль? Характар? Сімвал адсоткі? СТУДЭНЦКАЯ: знак адсотка. Modulo НУМАР якога вы вызначылі наверсе. Джэйсан Hirschhorn: Modulo лік. Студэнт: А потым коскі. Джэйсан Hirschhorn: кропку з коскі. СТУДЭНЦКАЯ: І тады новая лінія, Е. Джэйсан Hirschhorn: Printf. Студэнтаў: ( Джэйсан Hirschhorn: ( Студэнт: " Джэйсан Hirschhorn: " СТУДЭНЦКАЯ:% S / N Джэйсан Hirschhorn:% S / N Студэнт: " Джэйсан Hirschhorn:% S / N " Студэнт: коска, прабел імёны. Джэйсан Hirschhorn: Космас - Студэнт: О, я думаю, што ж мы называем яго тут? Джэйсан Hirschhorn: Мы назвалі яго імем. Студэнт: якая адкрывае дужка, імя. Джэйсан Hirschhorn: якая адкрывае дужка, імя. Студэнт: Закрытае кранштэйна. Джэйсан Hirschhorn: Закрытае кранштэйна. СТУДЭНЦКАЯ :) Джэйсан Hirschhorn :) Студэнт: кропку з коскі. Джэйсан Hirschhorn: кропку з коскі. Добра, давайце эканоміць. Давайце зробім гэты код. Студэнтаў. Давайце запусцім гэты код. Студэнтаў. Ці не. / Студэнта. . / Студэнтаў. Імя аднаго. Мы скажам, Давіда. Назавіце два, RJ. Назавіце тры, Роб. Назавіце чатыры, Лукас. Назавіце пяць, Язэп. А потым яна выводзіць Джозэф зноў. Такім чынам, дазвольце мне запусціць гэта зноў. Дазвольце мне зрабіць тое ж самае імёны. Дэвід, RJ, Роб, Лукас, Джозэф. І гэта дало мне Давіда, на гэты раз. Так я і зрабіў тое ж самае, але гэта дало мне іншая справа, і гэта таму што, вядома, мы просім для выпадковага імя. Так што я думаю, заснаваны ад мяне блукаючы па пакоі, што большасць людзей верагодна, атрымаў першую правую частку, стварэнні гэтага масіва, а затым атрымаць усе імёны. Я кажу пра радках з 10 па 16. Але лініі 18 праз 21, верагодна, некаторыя рэчы, якія вы раней не бачылі, так што давайце пойдзем праз гэтыя. Гэтая лінія, srand час NULL па сутнасці - На жаль, давайце прапусцім ўніз лініі, RAND (). Гэта дае вам выпадковае лік, выпадковае цэлае. І калі вы патрапілі чалавека Рэнд, якая Многія з вас зрабілі - М-Н прастору R-N-D - ў тэрмінале так, M-A-N прасторы R - N-D, націсніце Enter. Вы падышлі б да кіраўніцтва і зможа прачытаць, што Рэнд каманда выводзіць Num псеўдавыпадковых байтаў пасля пасева выпадковы лік генератар адзін раз. Так што гэта апісанне. Гэта тое, што Рэнд робіць, дае Вы выпадковае лік, калі вы называеце гэтую функцыю. На жаль, гэта не зусім выпадковым таму што калі вы проста патэлефануйце выпадковай без атрымання яго некаторых насення, некаторыя Адпраўной кропкай, ён заўсёды будзе выбіраць той жа самы, і ён выкарыстоўвае формула Для вызначэння наступнага. Так што калі вы тэлефануеце Рэнд, гэта будзе проста даць вам тое ж самае. Гэта будзе вельмі прадказальным. Гэта на самай справе не будзе выпадковым. Такім чынам, што нам трэба зрабіць, за Маркуса Інструкцыя для мяне, былі насенне Рэнд з чым-то яшчэ, што і Функцыя srand робіць. Гэта насенне Рэнд з чым-то трохі больш выпадковымі, чым тое ж самае, і ён пасеву яна з часам NULL, якое ёсць, толькі па пагадненні, бягучае час у секундах. Так што Вы мяркуеце, што ўсё гэта не збіраецца запусціць код ў дакладнай Другая ж, так што гэта бяспечная стаўка, што Час NULL будзе розным кожны раз, калі гэты код выконваецца. Упэўненасцю сказаць, што такім чынам, будзе srand Рэнд насення з чымсьці іншым кожны адзін раз. Так што па дамове, калі мы хочам выпадковае лік, мы пішам гэтую лінію, srand NULL час, каб даць нам значна больш выпадковых насення, а затым мы запускаем Рэнд, якая дае нам выпадковы лік. Да? СТУДЭНЦКАЯ: Ці можаце вы сказаць, што Вы разумееце пад насеньне? Джэйсан Hirschhorn: насенне, як і ў - так Рэнд збіраецца забраць некаторыя колькасці і ён збіраецца выкарыстоўваць некаторыя формулу, каб атрымаць там. Так ён збіраецца пачаць з чагосьці , А затым ператварыць яго ў нешта, заснаванае ад гэтай формулы. Калі вы заўсёды даць яму тое ж самае, гэта заўсёды збіраецца ператварыць яго ў тое ж самае. Так што першае, што вы даць гэта насеньне. Такім чынам, вы хочаце, каб даць яму нешта розных, каб пачаць з, і такім чынам гэта ператворыць яго ў нешта іншае. І, нарэшце, радок 20, гэта% называецца па модулю, і што збівае з панталыку. Гэта тое, што крыху тут па-іншаму, што вы сапраўды не сутыкаемся ў рэальным жыцці матэматыку. Але па сутнасці, калі вы бераце гіганцкая нумар, і вы падзеліце на С, што адбываецца з астаткам? Студэнт: Гэта застаецца ўсечаным. Джэйсан Hirschhorn: Гэта застаецца ўсечаным. Так што 20 дзеліцца на 3 і што? Што гэта вярнуцца да Вы, 20, падзеленыя на 3. На жаль, 10 падзяліць на 3. Што гэта вернецца да вас? Студэнт: [неразборліва]. Джэйсан Hirschhorn: 10 падзяліць на 3 усяго вяртае 3, а не 3 рэшту 1. Так што 10 па модулю 3 вяртае гэта толькі рэшта, 1. Так што калі вы хацелі даведацца, што 10 падзелены на 3 на самай справе было, вы б зрабіць 10 падзяліць на 3, вы атрымаеце вашыя 3, а затым вам трэба зрабіць 10 па модулю 3, і Вы атрымалі б 1. Такім чынам, вы б зразумелі, што 10 падзелены на 3 на 3, рэшта 1. І ў гэтай лініі, можа быць рэнд любы цэлы лік, па сутнасці. Так кажа модулю, падзеліце яго на лік, якое з'яўляецца ў дадзеным выпадку 5. І калі вы калі-небудзь падзяліць на лік, цэлае заўсёды павінна быць менш, чым гэты лік. Так што калі вы дзялення на лік 5, рэшту заўсёды будзе ад нуля да чатырох. Вось толькі, як матэматыка працуе. Такім чынам, вялікая колькасць moduloed па меншай колькасць заўсёды будзе вяртацца астатку і заўсёды будзе вяртаць некаторыя лік, якое менш, чым колькасць вы падзеленае на. Хто-небудзь ёсць якія-небудзь пытанні аб модулю, таму што яна прыйдзе вельмі, вельмі зручна, таму я хачу, каб пераканацца, усе разумеюць гэта? Крута. І мы ўбачылі, што гэтая праграма працуе. Добра, як рухацца далей. Так што ў наступны, мы збіраемся ісці ў функцый, і мы збіраемся пайсці да канца гэты артыкул даволі хутка, таму што я хачу, каб дабрацца да аргументы каманднага радка. Так функцый па сутнасці, як вы бачылі, чорныя скрыні. Яны прымаюць рэчы ў называюцца параметрамі, яны робяць нешта для іх, альбо змяніць іх ці стварыць некаторыя пабочныя эфекты, І, нарэшце, яны плююць нешта, што з'яўляецца вяртаецца значэння. Хто-небудзь можа даць мне хоць адну прычыну Таму мы будзем выкарыстоўваць функцыі? Хто-небудзь? Адна з прычын, чаму мы павінны выкарыстоўваць функцыі? Любы? Я ўбачыў двух рук. Што такое добрая прычына? Маркус? Студэнт: Калі ў вас ёсць, каб выклікаць той жа самы блок кода некалькі разоў. Джэйсан Hirschhorn: Добра, калі вам трэба каб выклікаць той жа самы кавалак код некалькі разоў. Джэф, у вас было па іншай прычыне? Студэнт: проста так, што вы можаце напісаць менш. Джэйсан Hirschhorn: Вы можаце кадзіраваць менш. Права. Калі вы хочаце зрабіць што-то шмат - У папярэднім кодзе, я мог бы напісана атрымаць радок у пяць разоў, але цыкл робіць яго прыгажэй і Вы павінны пісаць менш кода. Функцыі падобную ідэю. Калі я хачу зрабіць тое ж самае шмат, перамясціць яго ў функцыю і называюць гэта функцыянаваць кожны раз. Гэта зробіць гэта для вас. Гэта выдатная нагода выкарыстоўваць функцыі. Так анатоміі функцыі. Функцыя ў асноўным выглядаць наступным чынам. Гэта пачнем з Вяртаюся тыпам, то вы атрымаеце імя. Гэта зойме аргументы, у адваротным выпадку Вядома, што і параметры, а ўнутры гэтыя фігурныя дужкі, вы напісаць свой код. Мы бачылі адну функцыю шмат. Гэта асноўныя. Вось асноўныя накладваецца на анатоміі, што ў мяне было раней. Што дзесятковага прама тут азначае? Што дзесятковага значыць? Калі я пішу тап_п (несапраўднымі). СТУДЭНЦКАЯ: Вяртанне тыпу? Джэйсан Hirschhorn: Прабачце? Студэнт: тып якое вяртаецца значэння. Джэйсан Hirschhorn: Int з'яўляецца тып якое вяртаецца значэння, дакладна. Галоўная вяртае Int. Што з'яўляецца асноўным? СТУДЭНЦКАЯ: Імя функцыі. Джэйсан Hirschhorn: галоўнай з якіх з'яўляецца імя функцыі. Цалкам дакладна. І пустэчу? Што такое пустата ўнутры дужак? Студэнт: Гэта не зойме любое знешняе значэнне. Джэйсан Hirschhorn: Так пустата - права. У дужках, пакладзем параметры або аргументы Функцыя прымае, што адбываецца ўнутры чорнай скрыні. Калі вы пішаце пустэчу, вы кажаце, гэта нічога не бярэ цалі Так тап_п азначае пустэчу ў асноўны Ці не прымаючы нічога цалі У фігурных дужках, у нас ёсць код, а затым мы бачым, у канцы вярнуць нуль. Што азначае вяртанне нуля азначае? Ну, мы гаварылі пра вяртаецца тыпу. Галоўнае неабходна вярнуцца Int. Гэта тое, што робіць гэтую лінію. Яна вяртае цэлае, нуль. Вядома, мы не бачылі, што шмат таму што у праграмаванні мы робім з Машыны, якія мы робім, і кампілятары мы выкарыстоўваем наш час, вы ня трэба гэтую лінію. Галоўная асаблівы досыць таго, што ён ведае, калі вы дойдзе да канца асноўнага, проста вярнуць нуль, калі ўсё прайшло добра. На самай справе, калі што-то пойдзе не так, Асноўны часта вяртаюцца розныя лік, якое азначае, што нешта пайшло не так з вашай праграмай. Так наогул, калі вы бачыце код, не пішыце вяртання нуля, але гэта добра ведаць, што гэта адбываецца за сцэны, таму што калі вы пішаце іншы тып функцыі Вы будзеце мець патрэбу, каб ўключаюць зваротнай лініі. Калі вы кажаце, што я збіраюся вярнуцца Інтэлект, вы павінны вярнуць нешта напісаць. Калі вы кажаце, пустата тут на пачатку, сілы асноўных пустэчу, для Напрыклад, то гэта не вяртаюцца нічога - пустата нічога не значыць - так што вам не трэба, што зваротнай лініі. Але вы калі-небудзь напісаць тое, што не якія на дадзены тып якое вяртаецца значэння, неабходна радок, якая кажа вяртання, і вы трэба пакласці што-то там , Які адпавядае тыпу. Ёсць пытанні з гэтай нагоды? Салодкі. Scope. Гэта тое, што мы закранулі таксама. Кожная зменная, як мы ведаем, мае некаторага аб'ёме, і гэта ў асноўным казаць пра тое, дзе пераменная можа ці не можа быць паказаны. І я хацеў бы сказаць, што адбываецца у фігурных дужках застаецца ў фігурных дужках. Так, напрыклад, калі мы паглядзім на гэты код, мы вызначаем глабальную зменную за межамі асноўнага, Інтэлект, тут на самым версе. Мы называем іншае Int ўнутры асноўнага. У нас ёсць яшчэ некалькі фігурныя дужкі, і мы выклікаем іншую INT A. У нас ёсць тры ў кодзе. Гэта не тое ж самае. Я стварыў тры розныя зменныя. Тады ўнутры гэтых ўнутраных фігурных падцяжкі, я кажу = 4. Які ў тым, што кажаш, Першы, другі, ці трэці? Студэнт: трэці. Джэйсан Hirschhorn: Гэта кажуць аб трэцяй. Усе гэтыя на самай справе можа быць казалі ў дадзеным Напрыклад, таму што іх аб'ём усё ідзе у гэтыя ўнутраныя фігурныя дужкі. Аднак, калі вы называць рэчы той жа імя, ёсць тое, што называецца хаваецца. Такім чынам, вы мець справу толькі з або выправіць або выкарыстаць апошніх зменнай або адзін бліжэйшы да вас. Так што тут ўнутры, гэта трэцяе бліжэй на гэтай лініі, а = 4, так што гэта ўплывае на трэцюю. І апошняя радок, = 2, што з'яўляецца што казаць аб, першы, другі, ці трэці? СТУДЭНЦКАЯ: Другі. Джэйсан Hirschhorn: Гэта кажуць аб другім. Вядома, трэці знаходзіцца бліжэй за ўсё да у кодзе, але трэці не існуе па-за гэтыя фігурныя дужкі. Як толькі вы атрымаеце, што ў фігурныя дужкі, гэта як ён пайшоў, па сутнасці. Такім чынам, толькі два вы пакінулі тыя Першыя два, і, вядома, у цяперашні час гэта бліжэй да другога. Так што гэта добрая рэч, каб памятайце аб размаху. Напрыклад, я ўпэўнены, што вы сутыкнуліся гэта ў той час як зрабіць пятлю. Пры ініцыялізацыі зменнай ўнутры рабіць падчас цыкла, а затым вы спрабуеце доступ да яго на вуліцы, вы, верагодна, атрымаў некалькі папярэджанняў, як гэта зменная не існуе. Гэта таму, што сферы ідэяй, што рэчы існуюць толькі ўнутры гэтых фігурных дужках. Фігурныя дужкі як гіганцкі абдымкаў Вы даеце ў кодзе, з'яўляецца яшчэ адным спосаб думаць пра гэта. Так што гэта яшчэ адна функцыя, то для вас, хлопцы код, hellofunction.c. Мы збіраемся, каб прапусціць на дадзены момант, але гэта тое, што я заклікаю вас практыцы па сваім меркаванні. Напісаць праграму, у якой асноўнай званкі іншую функцыю, якая выводзіць прывітанне для карыстальніка. Гэта, па сутнасці прымаючы прывітанне свет і абстрагавання, што ў Е іншай функцыі. Але мы не збіраемся зрабіць гэта прама цяпер таму што мы не так шмат часу пакінуць як мне б хацелася. Так што аб'яву функцыі. Мы бачылі гэта раней, а таксама. Калі вы хочаце напісаць яшчэ адну функцыю, Вам трэба, каб кампутар і ведаю Асноўны ведаем, што яна існуе. Такім чынам, што мы робім, над галоўнай, мы пішам які вяртаецца тып, імя і імя параметры, а затым ўнізе асноўнага, тут, мы фактычна скапіяваць гэты радок , А затым напісаць фактычны код. Так што гэты шлях, калі вы выклікаеце функцыю ў галоўным у верхняй частцы, ведае, што асноўная прывітанне існуе, напрыклад, калі б я быў патэлефанаваць прывітанне, а затым ён глядзіць на ажыццяўленне ўнізе. Што адбудзецца, калі я не ўключаю гэтую лініі наверсе, анулявання прывітанне (несапраўднымі)? Калі я не ўключыць гэты радок і асноўныя званкі Добры дзень, я збіраецца атрымаць памылку. Я збіраюся атрымаць паведамленне пра памылку, таму што кампілятар не ведае, што гэтая рэч існуе. Гэта падобна на тое, чаму робім # ўключаюць cs50.h. Тое, што істотным cs50.h робіць ставіць ўзяць вяроўку там. Ён апранае атрымаць Int там. Гэта пакласці ўсе гэтыя функцыі Прататыпы перад асноўнай, так што калі Вы называеце іх у асноўныя, асноўныя ведае што гэтыя рэчы існуюць. Гэта тое, што тых. Ч файлаў робяць. І таму, калі вы збіраецеся зрабіць свой уласны функцыю, вы павінны пераканацца, што вы паклалі, што прататып там. Ёсць пытанні пра гэта да гэтага часу? Аргументы каманднага радка. Гэта тое, што мы збіраемся скончыць на, а затым, спадзяюся, мы ўціснуць у некаторых PSET. Я не ведаю, калі мы зможам выціснуць што з-за часу, але з вамі, хлопцы, якія знаходзяцца тут, і калі вы хлопцы хочуць сказаць пасля трохі, мы можа пайсці па ёй звонку. Але мы збіраемся, каб скончыць з аргументы каманднага радка На працягу апошніх 15 хвілін. Мы прачнуліся, Майкл? Ты не спіш? Добра. Я не ведаю, калі вы спіце з зачыненымі вачыма. Было б складана. Аргументы каманднага радка. Тыя, з'яўляюцца адным са спосабаў перадачы інфармацыі ў праграму. У рэшце рэшт, мы будзем сутыкацца з іншымі. Але па сутнасці, мы збіраемся, каб спыніць напісанне тап_п (несапраўднымі), калі мы хочам прыняць некаторыя аргументы каманднага радка. Мы збіраемся напісаць гэтую рэч называецца тап_п (INT ARGC, Радок ARGV, кранштэйны. Гэта збівае з толку. Гэта вельмі шмат лістоў, якiя не знаходзяцца ў чалавека англійскай мове, таму мы збіраемся распакаваць іх прама цяпер. ARGC азначае колькасць аргументаў - і зноў жа, усё гэта будзе будзе даступная ў Інтэрнэце - і гэта лік аргументаў. Argv пазначае вектар аргументаў, і тыя самі аргументы. Гэта масіў радкоў. Мы на самай справе бачыў масіў радкоў да сённяшняга дня. Мы стварылі адну ў апошнім Праграма, якую мы закадаваныя. Такім чынам, вось прыклад. Я пішу. / Ohai CS50 раздзеле на маёй каманднага радка. ARGC ў гэтым выпадку роўна 3. Argv кранштэйны 0 Ohai, агду кранштэйны 1 з'яўляецца CS50, агду падвеска 2 падзелу. Зноў жа, ARGC з'яўляецца лік аргументаў, і збіць вас з толку мала біт, заўсёды лічыць назву функцыі ў якасці першага аргументу. Такім чынам, у гэтым выпадку, ёсць тры аргументаў, імя функцыі а затым гэтыя два, што я ўвялі цалі Далей, мы збіраемся, каб выратаваць тых самі аргументы ў ARGV. І зноў, як мы бачылі раней, мы зрабілі гэта ў апошняй праграме мы напісалі. Вы можаце перамяшчацца па масіве Argv і атрымаць гэтыя радкі. Вось, па сутнасці тое, што мы зрабілі ў ў канцы нашай апошняй праграме. Мы выбралі выпадковым імем, а затым адправіўся ў усе імёны кранштэйн і друкаваных Радок з размешчаных там. На вяршыні толькі адзін масіў, так радкі самі масівы, як казалі, вы можаце мець масівы масіваў, якая з'яўляецца па сутнасці, што з'яўляецца ARGV. Адзін са спосабаў вы можаце думаць аб гэта радкоў і слупкоў. Я магу намаляваць гэта прама цяпер. Так ARGV - гэта не выдаленне. Давайце намалюем пад Ohai. Дык вось, калі я пісаў у раздзеле Ohai CS50, Я збіраюся абрэзаць падзел для гэтага прыкладу. Але па сутнасці, мая шматмерных Масіў, Ohai CS50, Мы збіраемся зрабіць секту. Дык вось, я магу атрымаць доступ - калі я прывяду агду адно лік - гэта няправільна. Што не так у гэтай схеме? Студэнт: пачынаюцца з нуля. Джэйсан Hirschhorn: яно павінна пачынаць з нуля. Я, верагодна, варта таксама круціць яго, але так як я ўжо звяртаў на гэта, я збіраецца пакінуць яго там на дадзены момант. Але гэта пачынаецца з нуля. Гэта дакладна. Мне шкада, калі гэтага малая. Можа вы, хлопцы збольшага бачыць? Таму, калі я агду 0, я буду атрымаць усе Ohai. Калі я раблю агду 1, я атрымаю ўсё CS50. Калі я раблю агду 2, я атрымаю ўсё секты. Але цяпер, як мы ўжо казалі, струны самі з'яўляюцца масівамі. Дык што ж я магу зрабіць, я магу ставіцца да гэтага як мнагамерны масіў, і я можа зрабіць што-то ўздоўж ліній ARGV 0, 0, што дае мне толькі Персанаж 0. Argv 0, 1, што дае мне ўсяго гадзіну. Argv 1, 3, што дае мне проста 0 гэта тут, у CS50. Такім чынам, таму што самі радкі з'яўляюцца масівамі, мы змяшчаем што ў іншым масіве. Цяпер у нас ёсць масіў масіваў, і мы індэксе, для чаго наш першы масіў і Затым індэкс ў нашым другім масіве. І, як і варта было чакаць, мы гэта зробім, проста пакласці на гэтых двух - мы робім толькі квадратныя дужкі побач адзін з адным. Такім чынам, у гэтым прыкладзе ARGV 1 CS50 і ARGV 1, 2, як мы ўжо казалі, знаходзіцца ўсяго ў 5. Хто-небудзь ёсць якія-небудзь пытанні аб шматмерныя масівы? Вы, хлопцы, робіце дзіўным. Салодкі. Такім чынам, мы маем іншую праграму прама тут, і гэта апошняе, што мы збіраецца зрабіць прама цяпер. Таму я хачу, каб вы напісалі праграму, якая прымае поўнае імя карыстальніка, два і толькі два аргументу каманднага радка, і, нарэшце, раздрукаваць прывітанне карыстальнік, які акрамя імя. Так чаму б вам не ўзяць тры ці чатыры хвілін, каб зрабіць гэта, і тады мы будзем ісці над ім, як група, і тады мы будзем закручваць? І зноў жа, тут, калі мы кажам, прыняць поўнае імя карыстальніка ў апісанні дадзенай праблемы, яна павінна быць камандай радкі, не карыстаючыся атрымаць радок. Так, Маркус? Слухач: То бок, калі вы кажаце, дзве каманды радкі, з'яўляецца тое, што ў дадатак да . / Бегчы, ці - Джэйсан Hirschhorn: Добры пытанне. Лі, у тым ліку. / Run, тры аргументы каманднага радка. Ці ў тым ліку. / Персаналізаваныя, у гэтым выпадку, таму што гэта Імя гэтага файла. Так ARGC будзе тры. Але я хачу толькі два аргументу дадзенай праграмы. Я павінен паказаць, што. Я зраблю, што змены перш чым я вывешвае і дашліце іх нам з вамі, хлопцы. Студэнт: Што рабіць, калі вы ёсць іншае імя? Джэйсан Hirschhorn: Калі ў вас ёсць сярэдні імя, вам не пашанцавала. Мне вельмі шкада. Ці, калі вы толькі ідзяце Шакіры, Вы таксама не пашэнціла. Да? Слухач: То бок, калі людзі не маюць cs50.h, а не яны вызначаюць агду як знак зоркі агду? Ці гэта да гэтага часу называецца радком агду? Джэйсан Hirschhorn: Так. Так радок, зноў жа, мы маску на тое, што менавіта там адбываецца. Гэта збіраецца быць распакаваны, можа быць, у сераду, але ў бліжэйшы час. Гэта як дадатковыя колы. Таму што па сутнасці, гэта тое ж самае. Такім чынам, давайце яшчэ хвіліна, каб праграма гэта, а затым мы разгледзім яго ў якасці групы, а затым як я сказаў, загарнуць. І я думаю, што яны ўсё яшчэ дадатковыя цукеркі, Так вы, хлопцы, будзем спадзявацца, прыняць , Што, калі ласка, ці што. Выбачайце, калі вы ўсё яшчэ пішу, але я хачу, каб нырнуць, і мы можаце скончыць яго разам. Так што я напісаў у, # ўключыць cs50.h, # Уключыць stdio.h. тап_п (несапраўднымі), фігурнай дужкі, фігурныя дужкі, усярэдзіне тры лініі псевдокод, прыняць поўнае імя карыстальніка, два і толькі два каманднага радка Аргументы, раздрукуйце прывітанне карыстальнік, які акрамя імя. Такім чынам, першы, прымаць поўнае імя карыстальніка. Хто можа дапамагчы мне прыняць поўнае імя карыстальніка? Як мне гэта зрабіць, што частка? Хлопцы, вы робіце, што першая частка? Вазьміце поўнае імя карыстальніка. Ну, для гэтага адной каманднага радку Аргумент, што я павінен напісаць? Што я павінен змяніць у маё аб'яву функцыі? СТУДЭНЦКАЯ: Вы не хочаце яго несапраўдным больш. Джэйсан Hirschhorn: Цалкам дакладна. Я не хачу, каб гэта было пустаты. Што я хачу, каб ён быў? Студэнт: ARGC Int. Джэйсан Hirschhorn: ARGC Int. Студэнт: String ARGV. Джэйсан Hirschhorn: String ARGV. Студэнт: кранштэйны, кранштэйны. Джэйсан Hirschhorn: кранштэйны, кранштэйны. Вось менавіта, і гэта на самай справе, як я іду, каб атрымаць поўнае імя карыстальніка. Яны збіраюцца, каб пакласці яго ў там. Так што адно робіцца. Так што цяпер я хачу два і толькі два аргументы каманднага радка. Так Ной, што з'яўляецца адным са спосабаў я магу праверыць колькасць каманд радкі ў мяне ёсць? СТУДЭНЦКАЯ: Вы робіце заяву, калі. Джэйсан Hirschhorn: Калі заяве, менавіта так. Што я хачу ў якасці ўмовы? Студэнт: Калі ARGC больш за 3. Джэйсан Hirschhorn: Калі ARGC больш за 3. Калі ARGC больш 3, што мне рабіць? СТУДЭНЦКАЯ: вяртанне 1. Джэйсан Hirschhorn: Вяртанне 1. Ці будзе гэта гарантаваць, што я ёсць два і толькі два? СТУДЭНЦКАЯ: Няма Калі агдс больш 3 і менш 2. Джэйсан Hirschhorn: Калі ARGC больш чым 3 і агдс менш 2. Што адзін са спосабаў я магу напісаць гэта ўсяго адной лініі, або без выкарыстання якія і лагічны аператар? Студэнт: Гэта не роўна 2. Джэйсан Hirschhorn: Калі ARGC ня роўна 2. Менавіта так. Такім чынам, калі агдс ня роўна 2, то дасць мне гэтую праграму, персаналізаванай, калі я запускаю яго, і , Што дасць мне колькі аргументы каманднага радка? Колькі я буду праверыць? Прабачце. Дазвольце мне перафразаваць гэта. Калі ARGC = 2, як шмат зрабіў Карыстальнік напісаць у лінію? Студэнт: Адзін. Джэйсан Hirschhorn: Толькі адзін. Таму, перш чым, вы мелі рацыю, Ной. Што мне на самай справе трэба паставіць там? Студэнт: Гэта складае 3. Джэйсан Hirschhorn: ARGC ня роўна 3. Я хачу роўным 3, таму што я хачу персаналізаваныя плюс два іншых. Так што калі ARGC ня роўна 3, вяртаюць 1. Чаму ты сказаў вяртаць 1? СТУДЭНЦКАЯ: Таму, што азначае, што гэта не так. Джэйсан Hirschhorn: Гэта азначае, што гэта няправільна, А гэта што збіраецеся рабіць? Студэнт: Re-прапануе карыстальніку. Джэйсан Hirschhorn: Гэта будзе кінуць праграмы, так што прыйдзецца пабегаць зноў, але мы нічога не маю сюды, каб папрасіць іх зноў. Я не прасіў за гэта. Так што гэта цалкам правільна. Вяртанне 1 проста выхад з праграмы. Вялікі. І раздрукаваць прывітаннем да карыстальніка , Што акрамя імя. Як я магу гэта зрабіць? Ганна? Студэнт: Printf. Джэйсан Hirschhorn: Printf. Студэнт: (" Джэйсан Hirschhorn: ( Студэнт: "прывітанне Джэйсан Hirschhorn: "прывітанне СТУДЭНЦКАЯ:% S Джэйсан Hirschhorn:% S Студэнт: / N Джэйсан Hirschhorn: / N Студэнт: ", Джэйсан Hirschhorn: ", Студэнт: Argv Джэйсан Hirschhorn: Прабачце? Студэнт: Argv Джэйсан Hirschhorn: Argv Студэнт: Квадратныя дужкі 1. Джэйсан Hirschhorn: Квадратныя дужкі? СТУДЭНЦКАЯ: 1. Джэйсан Hirschhorn: 1. СТУДЭНЦКАЯ: А) кропка з коскі. Джэйсан Hirschhorn :) коскі. Зараз давайце паглядзім на гэта. Зрабіць персаналізаваным. . / Персаналізаваныя. Ён толькі што сышоў. Чаму гэта кінуць? СТУДЭНЦКАЯ: Вы не паказалі ніякіх аргументаў. Джэйсан Hirschhorn: Я не пакласці любыя аргументы цалі Выглядае выдатна. Вы, хлопцы, прыбіў яго. Такім чынам, яшчэ раз, вы ўвайшлі ў ARGV і вы правяраецца ў пачатку ARGC. Гэта два важных рэчаў, каб памятаць. Такім чынам, у нашых апошніх двух хвілін, перш чым мы з'ехаць, мы не дзенецца PSET два, але як я ўжо сказаў, калі вы хочаце застацца пасля на працягу 10 хвілін, я быў бы ён рады пайсці больш з вамі, хлопцы логікі Праблема для гэтых мностваў. У нас было шмат, каб пакрыць сёння так што я не дабрацца да іх. Наогул, я хацеў бы ўключыць што ў канцы. Таму калі вы хочаце, каб застацца, застацца на 10 хвілін. Мы зробім гэта. Тады, як я ўжо казаў у пачатку, PSET нулём і адзінкай, то мы атрымаем, што зваротнай сувязі з Вамі мага хутчэй. Мэта складаецца ў тым, каб атрымаць зваротную сувязь PSET адной, частка каментароў, Перад PSET два тлумачыцца. Так што калі вы дапусцілі некалькі памылак або Стылістычна рэчы маглі быць лепш, вы будзеце мець гэтую інфармацыю, каб вы не будзе рабіць тое ж самае ў PSET два. І тады ў будучыні, вы атрымаеце ўсе вашыя водгукі і каментары PSET яшчэ да наступнага тлумачыцца. Нарэшце, калі я мог бы паставіць у іншай раз'ём для зваротнай сувязі. Гэта ваш першы раздзел. Гэта быў мой першы падзел навучанне ў гэтым годзе. Адпраўляйцеся туды. Напісаць матэрыял, добрае і дрэннае, і я буду выкарыстоўваць яго, каб зрабіць раздзел лепш у наступны раз. І апошняе, зноў жа, калі вам трэба нічога, дайце мне ведаць. Я больш чым шчаслівы дапамагчы вам, хлопцы. Калі вы проста хочаце цукерку, я будзе мець дадатковыя цукеркі. Я шчаслівы, каб прывесці яго да вас. Гэта збіраецца быць дзіўным вядома. Гэта адзін з самых, калі не самы мой любімы Вядома, я ўзяў за ўсё сваё жыццё, і я спадзяюся, што гэта будзе тое, што выдатна для вас. Так што я хачу зрабіць усё, што ў маіх сілах каб зрабіць яго, што велізарная для вас. Я збіраюся адправіць электронную пошту, калі Вы ў маёй секцыі або Ной, і збіраюся паспрабаваць і запланаваць з кожным з вы, хлопцы, час, каб праверыць у больш чым бліжэйшыя пару тыдняў, каб я мог атрымаць адчуванне таго, што ваша CS фон, і гэта таксама дапаможа мне прыстасаваць гэтыя раздзелах у адпаведнасці з Вашымі патрэбамі. Дык вось што ў мяне сталі. Зноў жа, я ўбачу цябе на вуліцы Калі вы хочаце быць там. Гэта было тыдня дзве секцыі. Дзякуй, хлопцы так шмат.