[Гуляе музыка] Джэйсан Хиршхорн: ОК, усё. Сардэчна запрашаем у профіль. Гэта CS50, наш вельмі Першы супер падзелу. Як вы ўсё ведаеце, на наступным тыдні рэгулярныя раздзелы пачне, але на гэтым тыдні мы ўсе разам. Існуе сам. Мяне завуць Джэйсан. Я выкладчык інфарматыкі. У нас ёсць Эндзі, хто тут кіраўнік ТАЯ CS50. І Scaz, прафесар Браян Scassellati, ён прафесар у галіне камп'ютэрных навук. Мы з'яўляемся CS50 кіраўнікі ў Ельскім універсітэце. Вы заўсёды можаце звязацца з нам heads@cs50.yale.edu. Мы будзем на лекцыях. Мы будзем у працоўны час. Калі калі-небудзь, што мы можам зрабіць для вас усё, што вы павінны, не саромейцеся звярнуцца да нас. Так што мы будзем рабіць сёння? Або да гэтага, што ідзе на гэтым тыдні? Так прыёмныя гадзіны: панядзелак, аўторак, Серада, чацвер і, з 8:00 да 11:00. Там жа графік на сайце. Раздзелы, як я ўжо згадваў, пачынаюць наступным тыдні. І вы знойдзеце на гэтым тыдні, што Час вашага раздзел, у які дзень гэта, і хто ваш ТАЯ. Праблема Set 1 вырабляецца пры чацвер на апоўдні, у пятніцу апоўдні з канца дня. Так, у вас ёсць дзевяць дзён позна. І ёсць дзевяць хатніх заданняў. А можа выкарыстоўваць толькі адзін ў канцы дня за праблемы набору. Так, у сутнасці, усе праблемы наборы з-за пятніцу апоўдні. Вось і ўсё. Усё, што дэталі на праграме. Кожную пятніцу, у нас ёсць абеды. Мы хацелі, каб гэты вялікі Вядома адчуваць сябе крыху менш. Такім чынам, вы заўсёды можаце RSVP. Бясплатны абед з калегамі аднакласнікі і супрацоўнікі. cs50.yale.edu/rsvp. Усе гэтыя рэчы, якія У мяне на экране, і больш, вы можаце знайсці cs50.yale.edu або cs50.harvard.edu, калі вы ідзяце ў Гарвардзе і глядзець гэта онлайн. Акрамя таго, на гэтых вэб-сайтаў, там тона рэсурсаў для вас. Кожны лекцыя не толькі відэа лекцыі, але таксама адзначае ,. Хтосьці будзе глядзець лекцыі і рабіць нататкі для вас. Такім чынам, вы можаце проста заплаціць ўвага ў ходзе лекцый, ці вы можаце выкарыстоўваць свае нататкі / Нашы адзначае дапоўніць свае ўласныя нататкі. Ёсць горкі ў Інтэрнэце. Крыніца code-- ўсе Дэвід пераходзіць у лекцыі, або Scaz пераходзіць лекцыі, што Зыходны код даступны онлайн а таксама, як як і я, згадаў відэа. Раздзелы, таксама, усё будзе зняты. Усе гэтыя слайды будуць даступныя. Усё, што код будзе быць даступныя для вас. Ёсць шорты на сайт, дзе Супрацоўнікі CS50 правесці пяць да 10 хвілін, якія праходзяць праз тэмы для вас. Некаторыя з тых, вы ўжо сустракаюцца ў праблемных мностваў. Офісныя гадзіны, як я згадаў, панядзелках праз чацвяргах, з 8:00 да 11:00. CS50 даследаванне ўяўляе сабой фантастычны рэсурс. Ёсць праблемы практыкі, ўзор слайдаў, вядомыя памылкі што студэнты любяць бегчы ў, для кожнага сутнасці тэму мы будзе ахопліваць у гэтым працэсе. І, нарэшце, на гэтым слайдзе Прынамсі, Reference50 якая дае вам інфармацыю на ўсе функцыі C Вы маглі калі-небудзь магчыма спадзяюся выкарыстоўваць і многія, многія іншыя. Зноў жа, кропка кропка кропка на у ніжняй частцы экрана гэта паказвае, што ёсць нават больш рэсурсаў на гэтых двух сайтах: cs50.yale.edu, cs50.harvard.edu. Такім чынам, што мы робім сёння? Ну, па-першае, я збіраюся даць вы паглядзіце на рэсурсы. Ужо зрабіў гэта адзін. Паглядзіце на нас. Зараз, мы збіраемся перайсці на тыпы дадзеных і аператары ў З Затым Эндзі прыйдзе сюды і перайсці бібліятэк C, Е (), функцыя, з якой вы ўжо знаёмыя або хутка стане вельмі знаёмыя. І вы таксама перайсці ўмоўныя і завесы. І, нарэшце ,, Scaz пойдуць на CS50 ID. Калі вы не нырнуў у ўжо ў задачы Набор 1, а таксама як выкарыстоўваць Каманды тэрмінала і карысныя а затым даць вам некалькі дэма і практыка кадавання ў CS50 ID. Перш, чым я скокнуць у гэтую Змест на гэтым баку, Хто-небудзь ёсць якія-небудзь пытанні да гэтага часу? Выдатна. ДОБРА. Змена перадач. [Пераключэнні перадач] Гэта быў я зруху перадачы ў ручным аўтамабілі. Так тыпы дадзеных у C, вы не можаце проста пераменная х і ён будзе на лініі 10, цэлы лік, можа быць, нумар 1, у радку 20, дзесятковы лік 10,5, а затым пару радкоў пазней радок, я люблю CS50. У C, зменныя могуць быць толькі Адна справа, і толькі адна рэч. І таму вы павінны даць ім тыпы. І на гэтай дошцы, мы ёсць спіс тыпаў. Ёсць сімвалы, якія для абазначэння знакаў. Дык вось адна літара А, B, C, Д. Гэта таксама можа быць прастору, або, што таксама можа быць новая лінія характару. Ёсць цэлыя лікі, якія проста нумары, уся numbers-- або цэлыя rather-- але няма знакаў пасля коскі. Для знакаў пасля коскі, у нас ёсць лікаў з якая плавае коскі. Колькасці з якая плавае кропкай з'яўляюцца колькасці знакаў пасля коскі. Тады ёсць прагне, якія істотна больш лікі. Вы заўважыце, што доўга 8 у той час як INT 4. Я вярнуся да гэтага ў секунду. Гэта таму, што прагне можа захоўваць яшчэ больш, чым цэлыя Int можа захоўваць. Двухмесны доўгі паплавок. І, нарэшце, у нас ёсць Радок, якая з'яўляецца тыпам што вы, верагодна, выкарыстоўвалі раней. Калі ўключыць хэштэгу # IncludeCS50.h ў зыходным файле, то вы можаце выкарыстоўваць радковы тып. Гэта на самай справе не пабудаваны ў С. Ёсць некалькі іншых тыпаў, а таксама. Але гэта з'яўляюцца галоўнымі з які вы будзеце выкарыстоўваць, і сутыкнуцца. З, як, зноў я згадаў, кожны переменная-- яго можа быць толькі адзін тып і адзін тып толькі. Гэта таму, што З з'яўляецца статычна тыпізаваных мова, у адрозненне дынамічна тыпізаваных мовах дзе, калі вы ствараеце зменную Вы можаце змяніць тое, што захоўваецца ў гэта, як вы ідзяце ў вашай праграме. Сюды на правай руцэ бок, у мяне ёсць розныя памеры з гэтых тыпаў дадзеных у байтах. Такім чынам, характар ​​1 байт. Гэта 8 біт. І гэта азначае, што з-за 8 біты ёсць восем 0 і 1. Мы бачылі гэтыя дэма ў першы тыдзень з таго, што бінарныя лямпаў. З 8 біт або 1 байт, мы можам прадстаўляць лікі ад 0 да 255. Права. Калі ўсе 8 біт 0, гэта 0. Калі першы біт роўны 1, гэты лік , І гэтак далей, усё, аж да 255. І вось чаму для сімвалаў, якія можна ёсць, па сутнасці да 255 з іх, але гэта шмат, каб ахапіць усе сімвалы мы павінны выкарыстоўваць. Для цэлых лікаў, вы можаце мець 0 і то ў вас ёсць 2 да 32 мінус 1. Тыя, як шмат варыянтаў ў вас ёсць для цэлых лікаў. Для доўга, у вас ёсць 0 да 2 да 64 мінус 1. Такім чынам, вы павінны шмат, шмат, Дадатковыя параметры для доўгіх. Радкі, гэта знак пытання таму што гэта кульмінацыя пазней. Так. Я мог бы расказаць усё гэта на краі сваіх месцаў, як тое, што, што знак пытання? Гэта кульмінацыя. Мы ў канчатковым рахунку ахапіць памер Радкі і казаць больш пра радках. Таму што на самой справе радок адзін з навучальных колаў мы апранаем у гэтым Вядома, у пачатку а затым зняць пазней на, таму што радкі ў C фактычна з'яўляюцца паказальнікамі у знакавых масіваў. Але, зноў жа, гэта Скалалаз на потым. Перш чым я перайду па любых пытаннях, каментары, пытанні па гэтай нагоды? слайда ДОБРА. Я павінен быць фантастычным, які тлумачыць. Акрамя таго, калі вы программируете, Вы збіраецеся выкарыстоўваць гэтыя аператары. Сапраўды простыя прыкметы таго, што можа зрабіць просты аперацыі, з якой вы, верагодна, ўжо добра знаёмыя. Напрыклад, у правай бок, мы бачым дадаць. Каб дадаць, вы проста зрабіць знак плюс. І таму вы, магчыма, прыйдзецца двух зменных х і у. Вы можаце зрабіць X + Y ў кодзе. Можа быць, вы хочаце сказаць, вас, мэтай якіх ёсць нумар 7 і 3, Вы хочаце, каб захаваць, што ў зменнай называецца сума. Вы можаце зрабіць Int для тыпу, прастору сума, назва зменнай = 7 + 3; Што б, што краму ў суме? Хто-небудзь? Калі б я быў у суме = 7 + 3. Што будзе захоўвацца ў суме? Вы можаце проста крычаць яго. АЎДЫТОРЫЯ: 10. Джэйсан Хиршхорн: 10! Вось менавіта. Што пра суму ў = 7 - 3, Я проста выкарыстоўваць гэтую працяжнік знак. Што будзе захоўвацца? АЎДЫТОРЫЯ: 4. Джэйсан Хиршхорн: 4. Сума, верагодна, няправільна назву пераменная, але 4 будзе захоўвацца. Для множання ў З, выкарыстоўвайце маленькі Зорка характар, вы не карыстаецеся х. Каб падзяліць, выкарыстоўваць наперад Slash не знак падзелу. І па модулю, выкарыстоўвайце сімвал адсоткі. Такім чынам, давайце скажам, я хачу, каб убачыць INT г = 7% 3, што будзе захоўвацца ў г? Так, што па сутнасці прасіць што ж па модулю рабіць? Хто-небудзь ведае, што робіць модулю? Так. у 4. СПІКЕР 1: Гэта рэшту. Джэйсан Хиршхорн: Гэта Астатняя калі вы падзеліце. Так 7 дзеліцца на 3 лютага 1. рэшту. Так 1 будзе захоўвацца. Вы зрабілі адніманне, але гэта, як гэта працуе. Гэта тое, што аператар па модулю робіць. Гэта зойме некалькі дзеліць яго на іншы нумар і вяртаецца да вас астатнія. Такім чынам, яшчэ раз, 7% 3 дае 1, паколькі 7 дзеліцца на 3 студзені 2 рэшту, і вяртае рэшту. Што пра давайце вернемся на адзін крок да гэтага знака дзялення. Калі б я зрабіў 7 / дзеліцца на 3 робіць Хто-небудзь ведае, што гэта вернецца? СПІКЕР 2: 2. Джэйсан Хиршхорн: Чаму 2, а не 2.333? СПІКЕР 2: Я думаю, што гэта скарачае ад пасля цэлага ліку. Джэйсан Хиршхорн: Так гэта дакладна. У C, калі вы дзяленне два ліку, падзеленыя 3 ліпені, ён атрымлівае адказ, які у гэтым выпадку 2.3333 назаўжды і ён знаходзіць, што дзесятковую кропку і сячэ усё, што ад пасля коскі і ён проста вяртае вам 2. Так што, калі я зрабіў 8 дзеліцца на 3. Гэта на самай справе, мы ведаем, што для вяртання 2,666, але сячэ усё, што ад ў дзесятковай, абразае ўсе, і проста вяртае вам 2. Так 6 дзеліцца на 3, 7 дзеліцца на 3, 8 дзеліцца на 3, усе збіраемся вярнуцца да вас 2. Хто-небудзь ведае, ці здагадка, аб тым, як я мог на самай справе атрымаць поўны адказ, калі я хачу што дзесятковай? Так. Ідзіце наперад. СПІКЕР 3: Выкарыстоўвайце паплавок? Джэйсан Хиршхорн: Што вы маеце на ўвазе? СПІКЕР 3: Таму што вы сказалі, Паплавок для лікаў [неразборліва] Джэйсан Хиршхорн: Дакладна. Так, што гэта цалкам правільна. 7 уяўляе сабой цэлы лік. Але калі б я хацеў, каб ператварыць гэта у лік з якая плавае кропкай, Я б захоўваць, што а 7,0, так як кампутар сапраўды stupid-- мы ўбачылі, што з PB і J example-- гэта будзе толькі рабіць тое, што вы кажаце гэта. Так што, калі вы пішаце 7, думаю, што гэта цэлы лік. Калі вы пішаце 7.0, хоць мы ведаеце, гэтыя рэчы эквівалентныя, ён разглядае, што падобна лік з якая плавае кропкай. Так што, калі вы зрабілі 7.0 дзеліцца на 3 ці падзеленая на 3,0, было б казаць, добра, цяпер мы маем справу з паплаўкамі. Я вярнуся да вас 2.333333 назаўжды. Але на самой справе не назаўжды, таму што як мы бачылі таксама ў лекцыі, гэтыя лікі з якая плавае кропкай не зусім дакладным. Так што, калі вы хочаце, што дзесятковай, або часткай гэтага дзесятковай то вы павінны use-- адзін з іх павінен быць лікам з якая плавае кропкай і кампутар павінен зразумець што гэта з якая плавае кропкай вы справу, не з'яўляецца цэлым лікам. Любыя пытанні па гэтай табліцы на правая, так далёка? Ці ваша левы бок, ваш злева, з левага боку. Так. СПІКЕР 4: Добра. Для як звычайны цэлыя лікі, вы б write-- Вы павінны былі б напісаць плаваць? Джэйсан Хиршхорн: Так, так. Ну, калі вы хочаце стварыць пераменная гэта паплавок, Вы павінны сказаць паплавок г роўная сёе-тое. СПІКЕР 4: Добра. Джэйсан Хиршхорн: Але калі б я хацеў, каб зрабіць 7 падзелены на 3 і атрымаць, што дзесятковай, Я хацеў бы зрабіць паплавок г = 7,0 / 3,0; і што дасць мне плавае кропкай лік. СПІКЕР 4: Добра. Джэйсан Хиршхорн: Калі б я зрабіў нешта накшталт INT г = 7 / на 3, што дасць мне лік, таму што тыя ўсе цэлыя лікі. Ці мае гэта сэнс? СПІКЕР 4: Так. Джэйсан Хиршхорн: ОК. Выдатна. Любыя іншыя пытанні аб гэтай табліцы? У самай справе? Я так ўсхваляваны. ДОБРА. Такім чынам, некаторыя іншыя рэчы, якія вы будзеце выкарыстоўваць, часта ва ўмовах або завес, гэтыя тыпы operators-- гэтыя тыпы лагічных выразаў. І, як мы даведаліся, == з'яўляецца тое, што вы выкарыстоўваць, каб праверыць, калі дзве рэчы роўныя. Дык вось я правяраю, калі х == у, давайце зноў лічыць, што х 7 гадоў 3. Так што, калі я напісаў 7 == 3, тое, што б, што вярнуцца да мяне? Гэта праўда ці хлусня? АЎДЫТОРЫЯ: Хлусня. Джэйсан Хиршхорн: ОК. Я адчуваю, што кожны можа атрымаць гэта. Такім чынам, усё, што б гэта вярнуць? АЎДЫТОРЫЯ: Хлусня. Джэйсан Хиршхорн: Хлусня. Выдатна. 7 ня роўнае 3. Так 7 == 3 вернецца ілжывым. Вы значыць не знак роўнасці, так што калі я Праверана 7! = 3, то што б гэта вярнуць? АЎДЫТОРЫЯ: Праўда. Джэйсан Хиршхорн: Праўда. Выдатна. Хтосьці быў вельмі рашучым ў спіна і цаню гэта. Тады ў вас ёсць менш, чым аператар, менш або роўна аператара, больш, чым аператар, больш ці роўным аператара. Так што яшчэ здаровае праверка. Калі б я быў 7 больш чым або роўна 3. Што б гэта вярнуць? АЎДЫТОРЫЯ: Праўда. Джэйсан Хиршхорн: Праўда. Так. Гэта заднім пакоі, задняя бок пакоя, фантастычнае. Вы можаце камбінаваць гэтыя выразы, калі вам падабаецца, а таксама, з лагічным і які && Ці лагічнае АБО які || ||. І вось зараз вы можаце праверыць два рэчы together-- Гэта смешна? Чаму гэта смешна? Так што, калі я хацеў, я магу сказаць, гэта 7 больш, чым 3 і 2 менш, чым 4? Ну, калі 7 больш чым 3, што гэта праўда. 2 менш, чым 4, што гэта праўда. Так усё гэта справа будзе вернутая ісціна. Калі я тэставаў 7 больш, чым 3 и-- Я проста выбіраючы выпадковых лікаў here-- 4 менш, чым 2, добра, што гэта хлусня. Так праўдзівым і ілжывым ілжывых. А можна пайсці далей, і вы, як аб'яднаць многія ўмовы разам, як вы хочаце. Хто-небудзь ёсць якія-небудзь пытанні, каментары, праблемы да гэтага часу? І я бачу, некаторыя з вас здымкам З мяне на экране, які я цаню. Спадзяюся, гэта не Snapchat. Спадзяюся, гэта для вашых нататак. Але ўсе яны збіраюцца будзе даступная анлайн. Такім чынам, вы не павінны сфатаграфаваць гэта. Як я ўжо казаў, усё будуць даступныя ў Інтэрнэце для вас. ДОБРА. Я збіраюся атрымаць сцэны, гэтак жа нікога хачу сказаць што-небудзь перш чым гэта адбудзецца? Пытанні? [Рэле ГАЛАСЫ] Джэйсан Хиршхорн: О, спыніцца. Вы, хлопцы, занадта добра. ДОБРА. Я збіраюся пазначыць па-за. Давайце ісці. ANDI Пэн: Мы збіраемся зрабіць няёмка мікрафон змяненне ў цяперашні час. Джэйсан Хиршхорн: Я збіраецца зняць гэта. ANDI Пэн: Шануеце падтрымку, хлопцы. Ці можаце вы мяне чуеце? Гэта добра? Ідэальны. Прыгожая. Дазвольце мне проста падвярнуць, што ў. ДОБРА. Такім чынам, я збіраюся зрабіць, як гігант Інфармацыя звальваць на вас, хлопцы, прама цяпер. І не хвалюйцеся, калі наогул вы не не пасля кожнага мала лінію, што Я збіраюся паказаць вам. Як сказаў Джэйсан, усё цалкам онлайн. Проста мы збіраемся, каб паспрабаваць ўвесці усё з паняццямі пакрыта У некаторых з гэтых горак. Так што проста прытрымлівацца. Не турбуйцеся, калі вы не разумееце усе; Аднак, калі ў любы момант Вы адчуваеце сябе страчаным, падніміце рука, мы не будзем спыняцца, не варта турбавацца. Прахладны. Таму я думаю, тое, што Дэвід ужо накшталт згадваў у лекцыі і Джэйсан выгляд спасылаўся да сённяшняга дня гэта тое, што бібліятэка. Такім чынам, у праграмаванні, мы павінны гэтыя рэчы называюцца бібліятэкі. Дзе, па сутнасці, усё яны проста набор функцый, гэта значыць па сутнасці проста код, які ўжо былі напісаныя хтосьці яшчэ, што мы ўсе можам выкарыстоўваць у нашых праграмах. Так як жа нармальная Бібліятэка праца, праўда? Вы ўваходзіце ў дзверы бібліятэкі. У вас ёсць усе гэтыя кнігі, якія вы можаце выцягнуць і вы можаце атрымаць доступ да інфармацыі ў гэтых кнігах. Тое ж самае ў праграмаванні. У вас ёсць бібліятэка, якая ўжо былі напісаныя іншымі людзьмі. І тое, вы можаце, праграмістам або студэнта, можа атрымаць доступ да гэтай бібліятэцы праз хэштэгу #include. Напрыклад, у C мы ёсць тры C-- найбольш звычайна выкарыстоўваецца тры стандарту C libraries-- ўводу / высновы бібліятэкі, радок бібліятэка, і матэматычная бібліятэка. Такім чынам, унутры ваш першы пара праблема ўсталёўвае, Гэта будуць тры што вы ў першую чаргу з дапамогай. Так як Давід ўжо растлумачыў у лекцыі, стандарт ўводу / вываду бібліятэкі, або стандартны ўвод / выснова бібліятэка менавіта гэта і робіць. Гэта дазваляе, у кодзе, для ўводу нічога ад карыстальніка і вываду, што на экран, па сутнасці, друку на экран. І так кожны раз пры выкарыстанні якіх-небудзь функцый, Напрыклад функцыя Е (), які мы збіраемся перайсці на наступны слайд, пераканайцеся, што ўключаюць у сябе стандарт ўводу / вываду Бібліятэка, інакш вы не збіраецеся быць у стане выкарыстаць функцыю Е (). Таму што вы, як праграміст ніколі не пісаў гэтую функцыю, вы карыстаецеся толькі нехта Код-небудзь у вашым ўласным кодзе. Ці мае гэта сэнс усё? Прахладны. І тады мы, па сутнасці атрымаць на бібліятэка string.h і math.h бібліятэка, .h проста азначае бібліятэку, іншыя бібліятэкі, якія вы ў канчатковым выніку выкарыстоўваць у кодзе. Тым не менш, для мэт гэтай бібліятэкі, мы таксама have-- гэтага class-- ў нас таксама ёсць тое, што называюць бібліятэку CS50, cs50.h, дзе мы, Ваш прачытанне стварылі шматлікія важныя і карысныя функцыі. Так што вы, як праграміст можа контрейлерные ад тое, што мы ўжо напісалі, так што гэтая функцыя даступная для вас для Вашага карыстання. Я буду якія ахопліваюць некалькі функцыі звычайна выкарыстоўваецца, але ведаю, што гэта усе googleable анлайн. Не саромейцеся, падцягнуць бібліятэку CS50 і то ў вас ёсць усе функцыі там. Так. СПІКЕР 5: Так што, калі вы не былі з дапамогай праграмнага забеспячэння, што прадастаўляецца нам клас, робіць, што азначае, што мы павінны былі б загрузіць і знайсці гэты загаловак файла сябе і сказаць кампутар, дзе гэта? ANDI Пэн: Вялікае пытанне. Дакладна. Бо калі вы не фізічна прысутнічае ў бібліятэцы, няма ніякага спосабу для вас на самай справе пайсці і адкрыць яго. Такім чынам, адно і тое ж з Праграмаванне на З, вы павінны пераканацца, што вы карыстаецеся наш Прыбор, таму што бібліятэка ўжо былі ўключаныя ў яго. А потым, калі вы хэштэгу #include, бібліятэка там. Так. Добры пытанне. Усё добра? Прахладны. Добра. Такім чынам, мы збіраемся, каб ударыць, сутнасці, тое, што першая функцыя, якая Мы, як праграмісты збіраецеся выкарыстоўваць у нашым кодзе. Гэта называецца функцыя Е (). Так, функцыя Е (), як я ўжо сказаў у апошні слайд, ўваходзіць у стандартную I / O, стандартны ўвод / выснова, бібліятэка. Таму пераканайцеся, што ўсё, што вы using-- ой, дайце мне захапіць лазер pointer-- кожны раз, калі вы карыстаецеся функцыя Е (), Вы павінны ўключыць стандартны ўвод / выснова бібліятэкі ці яшчэ, пры кампіляцыі, Вы збіраецеся атрымаць памылку таму што кампутар будзе як, о, я не ведаю, дзе Е () з'яўляецца, ты ня кажаш мне, дзе Е () ёсць. Ну Е () уваходзіць у Standard I / O, так што, калі вы выкарыстоўваеце Е (), пераканайцеся, што мець, што Лінія над кодзе. Так, напрыклад, Е () вось функцыя. Усё гэта робіць што-то для друку у дужках для карыстальніка. Хацелі б хто-небудзь прыняць ўдар на якім гэты радок кода справа тут будзе раздрукаваць? Такім чынам, адказ знаходзіцца на экране. Хто-небудзь? Вердзі: Ніжняя. ANDI Пэн: Вердзі, чаму б табе не пайсці наперад і сказаць усю заяву? Вердзі: Добры дзень, мяне завуць Эндзі, і я 20 гадоў. ANDI Пэн: Ах, мілыя. Такім чынам, у гэтай лініі мы збіраемся раздрукаваць, Прывітанне, мяне завуць Эндзі, і я 20 гадоў, які на самай справе з'яўляецца сапраўдным заявай. Сінтаксіс. Так пара сінтаксічных пытанняў, якія Вы, хлопцы, жадаеце, каб пераканацца, што вы ведаеце. Каціроўкі. Падвойныя двукоссі расказаць кампутар, усё, што ўнутры збіраецца быць надрукаваныя. Усё ўнутры банкі проста, як менавіта вы будзеце набіраць яго, за выключэннем Звычайна ў рэшце рэшт, мы збіраемся хочаце ўключыць hash-- аб sorry-- працяжнік п. Так працяжнік п. Хто-небудзь хоча зрабіць здагадку на тое, што робіць, што да нашага коду? Так. СПІКЕР 6: Ставіць яго на новай лініі. ANDI Пэн: Точно. Такім чынам, усё гэта робіць дазваляюць усё, што адбываецца пасля гэтага, пасля гэтай заявы, для друку на новым радку. Так што, калі вы пішаце вашыя код не выпадкова ёсць рэчы, прымацаваў да канца што вы не хочаце. Гэта ўсё становіцца акуратна надрукаваны адзін радок і тады мы пачынаем на наступным радку. Хто-небудзь памятае, што гэта коскі робіць, калі мы кадавання? Так. СПІКЕР 7: Заява. ANDI Пэн: На ​​жаль? СПІКЕР 7: Ці ёсць у канчатковым заяву? ANDI Пэн: Так. Такім чынам, у C, або якога-небудзь праграмавання мова, кропка з коскі пазначае канец праграмавання лініі. Так, напрыклад, у англійскай мове мы выкарыстоўваем перыяд сказаць, О, гэта канец прысуд. У праграмаванні, тое ж самае, у нас ёсць кропка з коскі, каб пазначыць канец радка. Часта, калі вы пачынаючы праграмаваць, Вы разумееце, што вы забудзьцеся дадаць кропку з коскі а затым паспрабуйце запусціць свой Код і яна не працуе. І вы, як Ах, я не ведаю, чаму, яна павінна працаваць. Хутчэй за ўсё, вы, верагодна, забыўся кропка з коскі або дужка ці нешта дзе-небудзь. Так, што гэта важна, каб памятаць. Прахладны. Добра, ўзняццем рук, як многія людзі тут калі-небудзь прынятыя А.П. Кампутарныя навукі або запраграмаваны ў Java, перш чым, калі-небудзь? ДОБРА. Выдатны. Гэта не будзе прымяняцца то, але ў Java, вы ёсць нешта, званае System.out.println якія не існуюць у C. Такім чынам, у C, калі вам Каб дадаць ў зменных у што-небудзь Вы хочаце раздрукаваць, ёсць спецыфічны сінтаксіс мы збіраемся выкарыстаць. Гэта называецца placeholding-- сутнасці дадаць запаўняльнікі на месцы цэлага ліку або зменнай што мы хочам раздрукаваць. Такім чынам, як вы, хлопцы, можаце бачыць, што мы ўключаныя новы загаловак файла бібліятэкі тут. Бібліятэка CS50. І, якая змяшчаецца ў межах гэтага CS50 бібліятэцы агульная функцыя, якую мы будзем выкарыстоўваць у нашым курсе называецца GetInt (). Ці хоча хто-небудзь прыняць ўдар на што GetInt (), магчыма, будзе рабіць. АЎДЫТОРЫЯ: [неразборліва] ANDI Пэн: На ​​жаль. Вас не чую. Мэдді, хто. Мэдді: О, гэта падахвочвае Вы для цэлага. ANDI Пэн: Точно. Такім чынам, гэта функцыя, іншы функцыя, якая ўжо было напісана кімсьці іншым што мы можам заклікаць у цяперашні час. Усё гэта з'яўляецца заахвоціць вас, як карыстальніка, для ўводу, што вы хочаце ў якасці кода працуе і захоўвае whatever-- у гэтым выпадку мы GetInt () - ING, так што азначае, што мы атрыманне цэлае. І мы збіраемся захоўваць што ў іншае цэлы лік што мы толькі што зрабілі пад назвай ўзросту. Гэта мае сэнс для ўсіх? Прахладны. Так што цяпер мы захавалі гэты цэлае, што мы заахвоцілі ад карыстальніка, ў гэтай зменнай, мы створана тыпу Int называецца ўзрост, мы можам ісці наперад і месца што функцыя ў нашай Е (). Такім чынам, сінтаксіс звычайна на Е () з'яўляецца што там, дзе ў рэальных фізічных лінія вы хочаце, каб уключыць гэтую цэлае, вы што сімвал прама, Сімвал адсотка, пры гэтым тып зменнай, што вы хочаце. Такім чынам, у гэтым выпадку ўзрост з'яўляецца цэлым лікам. Такім чынам, вы будзеце ўключаць % Я, таму што гэта цэлы лік. І тады пасля вашага Заяву, што вы збіраецеся зрабіць коску і Імя зменнай. Дык вось, мы збіраемся, каб раздрукаваць з, Прывітанне, мяне завуць Эндзі, і я пустыя гадоў. Hashta-- або sorry--, ўзрост з любой I ўваход. Так што, калі б я быў на ўвод 20 для майго GetInt () тут, было б раздрукаваць тую ж самую рэч. Але, калі б я хацеў, каб нешта уваходнага яшчэ, як магчыма 40 або 45 гадоў, то вы ўбачыце, што адлюстраванне адпаведна ў кодзе. Такім чынам, гэта з'яўляецца прыкладам пра нешта, у якім ён друкуе і выглядае Вы як быццам гэта адно і тое ж, але пад капотам кампутар ёсць на самай справе вельмі розныя рэчы адбываецца. Прахладны. Добра. Так што, калі мы хочам некалькі зменных? Даволі лёгка. Тое ж самае. У нас таксама ёсць новыя функцыі тут называецца GetString (), таксама ўключаны ў бібліятэцы CS50, што ўсё гэта робіць прапануе карыстачу для радкі, якая проста набор знакаў, бо прысуд ці як імя. Такім чынам, у гэтым выпадку, мы б два запаўняльнікі% S для струннага і% I для цэлага ліку. І мы збіраемся прытрымлівацца што двух зменных мы хочам ўключаны ў парадку, што яны з'яўляюцца ў сказе. Так, напрыклад, мяне завуць пустым, я хачу там імя, так што я збіраюся мець імя першым. А потым пасля гэтага, я хачу, ўзрост, хочуць мець узрост секунду. І таму, калі я хацеў, каб увесці, Прывітанне, мяне клічуць Эндзі, і я 20 гадоў. Калі я ўводзяцца Эндзі і 20, Дакладнае ж самае будзе друкаваць; Аднак, зараз у нас ёсць двухпавярховы зменныя імя, а таксама Int. Так. СПІКЕР 8: было б магчымасць працаваць, калі вы перайшлі імя і ўзрост, у канцы, што? ANDI Пэн: Так. Гэта сапраўды добры пытанне. Так Карацей кажучы, няма. Таму што імя і тое, што age-- тып зменнай імя? СПІКЕР 8: Радок. ANDI Пэн: А што тып зменнай ўзрост? СПІКЕР 8: Цэлае. ANDI Пэн: Так вось у нас ёсць запаўняльнік для радкі і колькасці, ці не так? Так што, калі вы былі, каб перайсці іх кампутар не будзе ведаць. Гэта адбываецца для праверкі радкі, і калі вы паспрабуеце даць яму Int, гэта будзе, як чакаць я заблытаўся, вам сказаў мне, што я павінен быць выдзялення памяці для Int. І вось тут, калі ён чакае цэлае і вы даеце яму імя і радок замест гэта таксама будзе вельмі заблытанай, гэта не будзе працаваць менавіта так, як вам гэта трэба. Дык вось, называючы і сінтаксіс вельмі важна для выканання кода. Усё добра? Так. Мэдді. Мэдді: Вось, я ведаю, мы глядзелі на прыкладах у класе, дзе яны просяць што ваш узрост, што ваша імя. Вось, гэта было б яго doesn't-- калі мы павінны былі выканаць гэты код, ён не будзе прасіць за гэта? Але вы проста ўводу двух лікаў а затым яна будзе працаваць, як, што? ANDI Пэн: Так, менавіта так. Так што, калі вы хацелі за гэта дысплей, калі ласка, увядзіце свой узрост, вы можаце проста дадаць функцыю Е () што кажа, калі ласка, увядзіце свой узрост, над ёй. Гэта добры пытанне. Так. СПІКЕР 9: Так, ужо будзе ўключаны ў GetInt () [неразборліва]. ANDI Пэн: Не, на самай справе гэта не так. Такім чынам, усё гэта робіць толькі падахвочвае пусты экран каб карыстачу ўвесці нешта. Калі вы хочаце, калі вы хочаце, каб надрукаваць што-тое, што кажа карыстачу, як, калі ласка, дайце мне свой узрост, то вам прыйдзецца Е () самі. Таму што кожны выкарыстоўвае гэта функцыя для розных рэчаў, Вы маглі б быць захоўвання ўзрост, Вы маглі б быць захоўвання адрас, Вы маглі б быць захоўвання тэлефонных нумароў. І так гэта сапраўды да індывідуальныя выкарыстання вашых хлопцаў за тое, што вы хочаце, каб сказаць. Так. СПІКЕР 10: Так, толькі для тлумачэнні, дзе зрабіць вам ўвесці назву ўзросце так, што яна паказваецца ў месцы% S? ANDI Пэн: Як і ў карыстальнік? СПІКЕР 10: Так, як як я зрабіць it-- дзе я паклаў Эндзі, і дзе я магу пакласці 20? ANDI Пэн: Так. Так што, калі вы былі на самай справе запусціць гэты код, Я на самой справе не выканаўшы Код, гэта толькі тут, прама цяпер. Калі б я быў для запуску кода, я б скампіляваць код, зрабіць файл, запусціць код, і тады б толькі два месцы для мяне, каб увесці яго. Так. Вы, хлопцы, будзеце бачыць, калі вы гуляеце з гэтым кодам самі. Усе правы мы будзем рухацца у наступным раздзеле, што мы будзем пакрыцця сёння. Мы збіраемся пайсці па тым, што ўмоўныя зацвярджэння. Так што, калі вы, хлопцы, памятайце, і ўспомніць з лекцыі, ўмоўныя аператары, Усе яны ўяўляюць сабой набор інструкцый да кампутара ў якая, калі некаторы ўмова праўдзіва, Вы выконваеце код ўнутры гэтага стану. Такім чынам, у асноўным Scratch-- вялікі тэмай з сённяшняга дня з'яўляецца тое, што вы, хлопцы, ужо ўсё бачыў логіку ўсе што мы пакрыцця. І ўсё, што мы робім, пераклад нешта што было вельмі інтуітыўна ў Драпіны, і цяжка яго кадавання у сінтаксісе мы будзем выкарыстоўваць для класа, які С. Так лагічна, усё гэта было блок з'яўляецца тое, што кавалак кода прама там. Так. ДОБРА. Мы таксама трапіць у, калі ... яшчэ заяву, якое з'яўляецца толькі дадатковым пластом складанасці ў заяве, калі дзе кампутар займае зірнуць на гэта і бачыць, калі гэта ўмова праўдзіва, рабіць ўсё ўнутры гэтых двух кранштэйнаў, else-- так накшталт як па змаўчанні, калі гэта не адпавядае condition-- гэта зрабіць. Гэта як развілкі. Калі ідзе дождж звонку, я паклаў на дождж куртку, інакш нічога я яшчэ не паставіў на дождж куртку. Што логіка сэнс ўсіх? Прахладны. Добра. Так як жорсткі прыкладзе гэта, што мы хацелі б бачыць у C калі я хацеў, каб стварыць Пераменная званыя хатнія гадзін. І калі хатняя гадзін менш чым пяць, я кажу Жыццё выдатная. Гэта выдатна. Тым не менш, кажуць, што барацьба real-- што тое, што мы ўсе ў гэты панядзелак днём да Навука Хіл верагодна, робіць прама now-- АЎДЫТОРЫЯ: [смяецца] ANDI Пэн: Яны, як мы будзе, дзякуй вам за гэта. Тое, як мы б жорстка гэта ў З if-- давайце выкажам здагадку, у нас ужо ёсць пераменная тыпу INT называецца хатняй гадзін прама тут. Калі хатняя гадзін менш, чым пяць Е (), Жыццё выдатная. Памятаеце трымаць / п, таму што Вы хочаце новы радок пасля. Астатняе друку, барацьба рэальная. Ці разумее ўсё, як Я перайшоў з гэтага блока у гэты блок кода? Прахладны. Добра. Так што цяпер мы збіраемся, каб зірнуць на некалькі аператараў, калі наогул. Такім чынам, давайце выкажам здагадку, што Мэтай гэтай праграмы было, мы прапануе карыстачу для гатунку. Мы радок, выкарыстоўваючы GetInt () для класа, і яны ўводзяць значэнне, і вы хочаце, каб адлюстраваць які тып класа яны атрымалі. Так што, калі б я быў распрацаваць праграму, я значыць, як правіла, ва ўсіх нашых вачах, 90-100 з'яўляецца А, 80-90 з'яўляецца B, і гэтак далей, і гэтак далей. Што не так з гэтым кавалак кода, які гэта не рабіць тое, што я хачу гэта рабіць. Так. СПІКЕР 11: Яны маюць больш нізкія межы, але яны не маюць верхніх межаў. ANDI Пэн: Точно. Чуў усё, што яна сказала? Там будзе верхняя межы, але не ніжэй межаў. На жаль, наадварот, ніжнія межы, верхнія межы ня. Дык вы хацелі б прыняць ўдар на кажучы што б быць надрукаваныя на гэты Экран, калі б я, каб запусціць гэты код. СПІКЕР 11: памылка? ANDI PENG: памылка? Вялікі думаю, не зусім правільна. Хто-небудзь ёсць яшчэ адзін удар? Так, Аарон. Аарон: Калі вы паклалі ў нешта большае, чым 90, было б паказаць усе ацэнкі, якія вы атрымалі. Было б паказаць вам атрымаў A, Вы атрымалі B, вы атрымалі С. ANDI Пэн: Так. Вось менавіта. Так, што б вельмі добра. Тым не менш, яны ўзаемна Эксклюзіўны, я думаю. Калі б я быў запусціць гэты кавалак кода. А потым давайце проста сказаць, я ўводзіцца гатунак 95. Так 95 цяпер захоўваецца ў ИНТ называецца гатунак. І так З мовы які працуе наверсе данізу, так што гэта заўсёды працаваць да дна. Так што прыйдуць сюды, чытаць, калі гатунак больш або роўная 90, Е (), вы атрымалі А. Вялікі, я ёсць 95, гэта больш, чым 90. Гэта будзе друкаваць, Я атрымаў А. Гэта будзе зірнуць на гэта, калі гэта будзе кажуць, добра 95 таксама больш, чым 80, ён збіраецца надрукаваць вы таксама атрымалі Got Па-клічнік, і гэтак далей, і гэтак в. Такім чынам, як мы можам бачыць, гэта агульная памылка што можа адбыцца, калі мы напісанне кода, каб выглядваць. Любы, якія-небудзь пытанні па Таму, што адбывалася? Выдатна. ДОБРА. Такім чынам, як мы гэта выправіць, відавочна, наступны лагічны пытанне. Ну, у нас ёсць гэтыя прыгожыя рэчы, названыя калі яшчэ, калі яшчэ If Else справаздачнасці. Такім чынам, вы можаце бачыць, калі вы хацелі змяніць гэтую праблему, Вы хацелі, каб кожны з Умовы ўзаемавыключальныя, Вы б дадайце яшчэ ... калі заяву. І гэта з course-- думаць пра іх, як лесвіцы, або, як прыступкі на ladder-- Вы можаце дадаць як многія з іх, як вы хачу столькі умоў, як вы хочаце. Дык вось, калі я ўводзіцца клас будзе 95. Калі адзнака больш, чым 95, Е (), я атрымаў А. Вялікага. Гэта адбываецца, каб убачыць, калі яшчэ ... і гэта будзе ведаць, О, не, Я ўжо споўнілася першы яшчэ. Я знаю-- або першы if-- Я ведаю, што Я не павінен глядзець на любы з іх таму што адзін з іх ўжо было дакладна. Так што збіраецца бегчы зверху ўніз. Як толькі першая праўдзіва, то ён збіраецца прапусціць над усімі астатнімі з яшчэ ... IFS. Ці мае гэта сэнс? Так, у гэтым выпадку ў вас ёсць розныя ўзроўні праверкі і як толькі адзін з іх з'яўляецца ілжывым, Астатнія таксама, яны нават не праверыць. Прахладны. Добра. Такім чынам, гэта з'яўляецца прыкладам іншы накшталт ўмоўнага аператара мы бачым радзей, але мы ўбачым іх і выкарыстоўваць іх. І яны часта больш эфектыўным для некаторых выпадкаў. Такім чынам, мы маем тое, што называецца перамыкач заяве. Таму, перш чым мы разгледзелі, што яшчэ больш яшчэ Заяву, ПЧ ... Else. Тут, у нас ёсць якія называецца перамыкач заявы. Так што, калі мы выкарыстоўваем перамыкач справаздачнасць з'яўляецца ключавым? Такім чынам, у заяве перамыкача, вы Звычайна, як правіла, на самай справе вам можа толькі ўваходныя колькасці для вашага пераменная, вы правяраеце. Так што, калі я хацеў, каб праверыць, калі пэўны number-- напрыклад гатунак, калі б я атрымаў 90. Я хачу, каб убачыць, калі гэта А, B, або C. Я мог бы выпадак тут. Тым не менш, справа мае будзе іншы сталай. Такім чынам, у гэтым сэнсе, Перамыкач заяву можа толькі праверыць роўнасць двух лікаў. Гэта не правярае што-небудзь яшчэ. Так гэта тое, што вельмі асцярожныя, калі вы выкарыстоўваеце гэты. Дык вось, калі б я хацеў, каб праверыць, калі мой клас 90 роўная 90 або 80 або 70 або 60, а затым раздрукаваць адпаведная ацэнка, Я б мог напісаць, што ў размеркавальным заяву. Так што прыйдуць сюды, праверка гэта цэлы лік, роўнае гэтай пастаяннай? Калі няма, то збіраецца прапусціць. Гэта роўна пастаяннай два, і гэтак далей, і гэтак далей, пакуль вы не націснеце па змаўчанні, калі ні адзін з іх не роўныя. Як толькі адзін з іх усталёўваецца роўным, ён збіраецца зрабіць гэта радок кода і перапынак. Гэта азначае, што гэта збіраецца ўдар бегчы, перапынак, і толькі цалкам прапусціць у ніжняй частцы кода. Так што ў гэтым сэнсе, якія функцыі як ПЧ-то, калі яшчэ, калі заяву. Дык вось канкрэтны прыклад для вас, хлопцы. Такім чынам, давайце выкажам здагадку, што я хацеў, каб стварыць зменную з імем годзе заснаваў. І я хачу, каб падказаць карыстачу ўвесці год, што іх школа. Так што я магу стварыць перамыкач заяву тут. І давайце проста сказаць, я ўводу 1636. Гэты код тут ўбачыце перамыкач Год заснавання роўная 1636, які. Гэта адбываецца, каб убачыць справу 1636, пра тых, роўныя, Е () Хіба ты не павінен ў гэтай школе, на поўначы? Таму што мы мяркуем, што яны не ідзі сюды, калі яны ідуць у Гарвард, разбіць і прапусціць да канца. Калі б я быў на ўвод 1701, які Я мяркую, усе мы ўваход, было б прапусціць гэты выпадак, прыйшоў да двух выпадку, які з'яўляецца 1701, і друк Сардэчна запрашаем у Ельскім універсітэце! Перапынак, прапусціць да канца. Інакш вы, верагодна, гэты курс онлайн, у якім case-- дзіўны прыём каб Yale-- ён збіраецца ісці да друку па змаўчанні, Прывітанне Інтэрнэт! І зламаць. Так. СПІКЕР 12: Ці можна выкарыстоўваць яшчэ замест дэфолту там? ANDI Пэн: Не, таму што так, што ўся гэтая функцыя Перамыкач пабудаваны, сінтаксіс вам трэба выкарыстоўваць, кейс па змаўчанні. Гэта як калі яшчэ, калі гэта адным гэта кейс па змаўчанні. Так. СПІКЕР 13: Вы, магчыма, ужо сказаў, што гэта, але вы можаце мець больш двух выпадках? ANDI Пэн: Так, вы маглі б ёсць столькі спраў, як вы хочаце. Думайце пра гэта як раз падабаецца бясконца дадання на. СПІКЕР 14: Калі вы ўключаецца з 1701 1636, гэта не рэальна зрабіць розніца не так? Гэта проста будзе яго праверцы. ANDI Пэн: Гэта вельмі добрае пытанне. І мы будзем дакранацца гэта пазней, але толькі ведаю, што гэта перамыкач зацвярджэнне infinitely-- гэта больш эфектыўным, чым яго, і калі інакш, калі ён працуе, таму што выкарыстоўваючы іншы тып функцыі, дазваляе, па сутнасці, толькі скакаць прама да выпадку вам трэба быць у. Так. СПІКЕР 14: Прахладны. Дзякуючы. ANDI Пэн: Так СПІКЕР 14: А вы не маглі зрабіць выпадкі, як і больш. ANDI PENG: Няма Так, гэта тое, што абмежаванні аб Перамыкач зацвярджэнне, што ў вас ёсць мець пастаянныя толькі, толькі цэлыя лікі. Так. ДОБРА. Так што гэта тое, што вам Хлопцы будуць сутыкацца менш часта, але я проста хацеў, каб ўвесці яго ў справу. Мы маем тут тое, што называецца патройны аператар. Дзе, па сутнасці, гэта проста як калі заява складзены ў адну лінію. Вось, я пайду на наступным радку наступная старонка, таму што гэта лягчэй ўбачыць. Такім чынам, мы ўсе бачылі гэта права? Гэта даволі лёгка прытрымлівацца. Калі б я хацеў, каб зрабіць зменную радок з імем s, калі пэўную колькасць Я даю гэта менш, чым 100, я Каб прызначыць нізка да радка, яшчэ я хачу, каб прызначыць высокі. Гэта тут робіць тую ж самую рэч гэтыя восем радкоў кода робяць. Дык вось, я хачу стварыць пераменная радком. І гэты стан я праверкі, калі лік менш 100, то вы прысвоіць значэнне нізкае, яшчэ прысвоіць значэнне высокай. Гэтыя слайды ня будзе онлайн, не турбуйцеся калі вы, хлопцы, не атрымаць гэта ўніз. Гэта проста больш просты спосаб, больш эфектыўны спосаб напісання кода. ДОБРА. Так што цяпер мы збіраемся Увядзіце тое, што для большасці людзей , Як вельмі, вельмі заблытанай рэч, каб думаць аб на першы погляд. У раздзеле завесы. Такім чынам, сёння мы будзем казаць тры тыпу цыклаў. Мы збіраемся пачаць з час цыкл, то казаць пра спраў у той час як завесы, а затым гаварыць аб для завес. Так па сутнасці, для больш візуальныя вучні там, у нас ёсць, па сутнасці, графічны апісанне таго, што робіць той час як цыкл. Такім чынам, у праграмаванні, вы б пачаць і ўвядзіце пятлю ў пэўнай кропцы. Вы правяраеце стан. І калі ўмова праўдзіва, Вы выконваеце код ўнутры. І вы вернецеся вакол, і вы праверыць. Калі гэта ўсё ж такі праўда, што вы трымаць працуе Гэты код па крузе ў цыкле. Тым не менш, другі, што стан становіцца ілжывым, Вы збіраецеся зламаць і скончыць цыкл. А гэта, па сутнасці, Сінтаксіс вы збіраецеся выкарыстоўваць. У той час як пэўны ўмова праўда гэта зрабіць, калі гэта не так, Вы збіраецеся перайсці ў канец і рухацца наперад з вашай праграмай. ДОБРА. Хто-небудзь ёсць прыклад на тое, што патэнцыйна можа здарыцца калі я спрабую запусціць гэты кавалак кода? Дарэчы, SAJ-- гэта Scaz, Анди, Jason-- мы падпісаць нашы лісты, Каханне, Сай. Гэта мы. ДОБРА. Хто-небудзь ёсць прыклад, або ідэя аб тым, што гэта было б надрукаваць? Выгляд пытанне з падвохам. Дык вось, памятайце, стан мы праверка гэта пакуль так. Такім чынам, хоць гэта праўда, то гэта да друку, я люблю Сай! Ці ёсць кропка, у якой мы б змяніць што-небудзь у адваротным выпадку, каб? Не, не так? Так тут, у нас ёсць сустракаецца, што, верагодна, будзе падслухоўвання шмат Вашы праграмы, бясконцы цыкл. Вы ўбачыце, што калі вы запусціць гэты кавалак кода, гэта проста будзе трымаць друк, я люблю Сай! У той час як мы цэнім падтрымку, мы не хочам, кампутары да краху, таму што вы трымаць друк Я люблю Сай! Так што калі ласка, калі ласка пазбегнуць бясконцага цыклу таму што гэта ніколі не збіраецца ацаніць хлусня і вы ніколі не збіраецеся для перапынення цыкла. І вы збіраецеся ўсмоктваецца ў назаўжды. Прахладны. ДОБРА. Другі тып контуру мы будзем казаць аб сёння гэта зрабіць, пакуль завесы, у той час як завесы рабіць. І гэта называецца рабіць, пакуль цыкл таму што ў вас ёсць зрабіць і нейкі час. Так што гэта вельмі падобна на нейкі час цыкл, але трохі адрозніваецца. Тут вы збіраецеся рабіць ўсё ўсярэдзіне гэтага у той час як некаторы ўмова праўдзіва. Так што, калі б я быў C і кампутар я цяклі гэты кавалак кода, Я зірнуць на вяршыні. Я іду ў C, я кажу гэта зробіць. А потым я праверыць, а гэта Праўда, я павінен паўтарыць яго. Але ў той час гэта няправільна, то я рухацца наперад і я ніколі не вярнуцца да гэтай завесы зноў. Можа хто-небудзь прыняць ўдар у чым розніца паміж гэтай пятлёй і адным мы проста глядзеў на практычна. Так. СПІКЕР 15: Стан прыходзіць пасля, а не раней? ANDI Пэн: Точно. Так яна сказала, што стан прыходзіць пасля, а не да. У канчатковым рахунку, розніца паміж гэтым і час цыклу з'яўляецца тое, што вы толькі збіраецеся зрабіць усё гэта ўнутры, незалежна ад ці не ваш стан праўда, і затым праверце стан. Такім чынам, у гэтым выпадку, вы always-- такім чынам, Вы заўсёды пераканаўшыся, ўсё ўсярэдзіне працуе, па меншай меры аднойчы правяраючы калі вы хочаце, каб працаваць зноў. А вось прыклад , Калі мы будзем выкарыстоўваць яго. Так, напрыклад, калі б я хацеў, каб мець пераменная тыпу Int назваў ўзрост, і я хачу, каб падказаць карыстальнік для іх ўзросту, Я збіраюся зрабіць Е () Ваш узрост? ўзрост = GetInt (), якая падахвочвае карыстальніка. І некаторыя людзі будуць сапраўды раздражняе. І вы не хочаце памылкі ў вашых Праграма кагосьці, як ўвод, О, я адмоўна 4 гадоў або любы іншы. У гэтым выпадку, калі яны зрабіць гэта, гэта ацэньвае ісціна, што азначае, што я збіраюся павінны працягваць ісці назад і рабіць гэта. Такім чынам, гэта будзе трымаць Re-запыту карыстальніка каб даць вам як сапраўдны Колькасць ўзрост, і гэта працягваць ісці назад і перарабіць гэта, пакуль яны не даюць вам рэальны ўзрост больш чым адзін, ці не роўны нулю. Так намякнуць, намёк. Гэта будзе вельмі, вельмі карысна для аднаго з вашых праблем Pset. Так. СПІКЕР 16: Упс, прабачце. ANDI Пэн: Так. СПІКЕР 16: Ці ёсць, ня быць мудака, но-- ANDI Пэн: Не турбуйцеся. СПІКЕР 16: --are ёсць розныя правілы, ці ты проста забыцца паставіць цытату? ANDI Пэн: О, так. На жаль, гэта цалкам мая дрэнна. Гэта было вызначана Мяркуецца, што цытата. Добры ўлоў. Гэта было б не працаваць. ДОБРА. Такім чынам, апошні тып цыкла мы пагаворым аб і, нарэшце, выгляд найбольш Комплекс для цыклу. Не хвалюйцеся, калі вы не ведаю, што гэта значыць. Гэта даволі заблытанай на першы погляд. Мы пойдзем на працягу, напрыклад. Усё, што адбываецца ў цыкле з'яўляецца тое, што ў вас ёсць тры заявы што вы збіраецеся ўключыць. Такім чынам, для пэўнай рэчы, вы збіраецца ініцыялізаваць зменную. Вы збіраецеся дадаць ўмова якія гэты цыкл будзе працягваць працаваць. А потым, у канцы цыкл, вы ідзяце, каб абнавіць яго. Вы можаце абнавіць зменную што вы хочаце, каб адсочваць. Такім чынам, мы, як правіла, выкарыстоўваюць для завес, калі мы хачу, каб запусціць цыкл для А пэўную колькасць разоў і мы ўжо ведаем, О, я хачу гэты цыкл, каб выканаць, як у 10 разоў, то вы do-- я пайду прыклад на наступнай старонцы. Дык вось, напрыклад, у пустым, калі вы хацеў нешта, каб паўтарыць 10 разоў, усё, што вам сказаць, было Паўтарыць 10 разоў, я люблю Сай! які з'яўляецца больш прымальным дэманстрацыя падтрымкі для нас замест бясконцага цыклу. Тут, як вы б пераход да C і запісы што для int-- я збіраюся стварыць або абвясціць зменную тыпу Int імя я. Я збіраюся ініцыялізацыі гэта 0, так што я = 0; і гэта будзе мой стан. Так я менш 10. А потым на end-- апошняе зацвярджэнне вы прыйдзецца гэта абнаўленне што адбываецца з зменнай I ў канцы ваш цыкл. Так што гэта свайго роду зман, таму што розныя часткі гэтай лініі адбываюцца ў розны тыпы цыклу. Але я пайду больш псевдокод прыклад, што і, магчыма, растлумачыць гэта проста трохі лепш. Дык вось. Гэта цыкл мы толькі што бачылі. Па сутнасці ў псевдокоде, тое, што што адбываецца ў гэтай праграме, спачатку я ствараю я, яго ініцыялізацыі 0. Я правяраю, каб убачыць, калі я гэта менш, чым 10, і ў гэтым выпадку першы раз гэта таму што 0 менш, чым 10. Такім чынам, цыкл будзе працаваць. А потым я збіраюся надрукаваць гэты радок. І тады ў канцы гэтага радка, прама тут, я збіраюся зрабіць прырашчэнне я, я ++, Усё гэта азначае, павялічваючы яго на адзінку. Так я цяпер 1. Таму што калі-то быў 0, калі я павялічыць гэта, цяпер 1. А потым я збіраюся вярнуцца да пачатку цыкла і я праверыць стан. Гэта стан па-ранейшаму дакладна? Так, 1 па-ранейшаму менш, чым 10. Так што гэта ў друк гэта зноў, пайсці і затым павялічыць ўводу, і праверыць стан бесперапынна, бесперапынна, пакуль вы ў канчатковым выніку не атрымаеце да кропкі, дзе я 10. Вы збіраецеся друкаваць гэта 10 разоў а затым я маю намер раўняцца 10. Вы збіраецеся, каб праверыць стан. Ёсць 10 менш за 10? Не, гэта няправільна. Такім чынам, гэты цыкл ня будзе бегчы, ён збіраецца зламаць, і вы збіраецеся працягваць з вашым кодам. Такім чынам, як вы, хлопцы, можаце бачыць, гэта гэта сапраўды выдатны прыклад завесы можна запраграмаваць, што працуе на працягу пэўнага колькасці разоў. Кожны ясна? Так. СПІКЕР 17: Як наконт прырашчэння ў геаметрычнай прагрэсіі, ён адрозніваецца кадаваньне? ANDI Пэн: Вы can-- мы пойдзем з-за гэтага на наступным слайдзе. Добры пытанне. З'яўляецца anyone--, перш чым я рухацца on-- хто наогул заблытаўся, таму што гэта вельмі цяжка паняцце. Не турбуйцеся, калі you're-- ОК. Прахладны. Добра. Проста наогул слайд. Гэта ў той час як пятля робіць тое сапраўды такі ж рэч для цыклу было. Гэта проста напісана па-рознаму. Вы, хлопцы, можаце азнаёміцца ​​слайды у зручны для Вас пазней. Але дакладна ведаю, што ёсць некалькі спосабы напісаць тое ж самае адбудзецца з рознымі завесамі. ДОБРА. Так, у цяперашні час мы атрымліваем у пытанне аб тым, калі ёсць цыкл ўнутры цыклу. Мы ўваходзім у рэжыме рэальнага Першапачатковы тып рэчы тут. Калі вы хочаце, каб рабіць рэчы кратнае раз ўнутры іншых рэчаў што рабіць рэчы некалькі разоў, вам хочуць, што называецца укладзеным цыкл. Для тых з вас, хто ўпершыню бачыце гэта і атрымаць вельмі блытаць, усё, што мы робім тут аказвае цыкл дзе у нас ёсць пераменная запар. Але ўнутры яго, у нас таксама ёсць іншае цыкл калоны пераменнага называецца. І я настойліва рэкамендую ўсім вам якія блытаюць спачатку трымаць track-- звярнуць на гэта, намалюйце гэта. Не спрабуйце проста прычыне праз яго, маляваць яго. У тваёй галаве, у гэтай частцы папера, ці нешта, запісы шэраг, адсочваць тое, што шэраг роўны. Напісаць калонку, адсочваць што калона роўная. І сачыць за тое, што пячатку з кожнай ітэрацыі. Кожная ітэрацыя гэтага цыклу, кожная ітэрацыі гэтага цыклу павелічэння, проста трымаць вынікаючы логіцы. І я гарантую вам, Вы будзеце любіць тое, што вы бачыце, таму што гэта таксама вельмі выкарыстоўваецца і ў дачыненні для вашых праблемных мностваў. Прахладны. Добра. Так самае галоўнае што вы, хлопцы, верагодна, усё думаць аб прама цяпер, Вашы Праблемныя паказаны 1с, якія з-за чацвер / пятніцу. У праграме water.c, САВЕТ Вы будзеце мець каб заахвоціць карыстальніка для ўваходу. У праграме mario.c Вы будзеце мець выкарыстоўваць укладзены цыкл, які з'яўляецца для цыклу ўнутры для цыклу, друкаваць блок піраміды, па сутнасці, як што Марыё скакаць праз. І тады ў вашым greedy-- або, магчыма, Ўнясення змены, калі якія-небудзь з вас, хлопцы калі-небудзь чуў пра that-- Вы будзеце мець, каб быць вельмі асцярожныя першых лікаў з якая плавае кропкай. Памятаеце, плаваюць дзесятковых і цэлыя лікі, не тое ж самае. Сачыце, адзін з якіх ёсць што. І вы збіраецеся выкарыстоўваць ўмоўныя аператары, а таксама. Добра, апошняя справа. Я атрымаў пару хвілін засталося. Стыль. Так што гэта тое, што не на самай справе ўплывае на эфектыўнасць, або фактычны прабег вашага кода. Тым не менш, гэта ўплывае нас Вашы грэйдэр, як вашыя чытачы. Гэта ўплывае сябе, калі вы спрабуючы знайсці праблему. Гэта ўплывае на чытальнасць кода. Так стыль, як, калі вы спрабуеце стыль эсэ для ангельскай, калі вы не маюць пункты, ў вас ёсць усё добрае з перамяшаныя разам на адной лініі, гэта робіць яго вельмі цяжка для каго чытаць ваша эсэ, нават калі Вашы пункты лагічна гук. Тое ж самае ў праграмаванні. Вы можаце мець жахліва незразумелым код, які будзе ахопліваць Scaz, і ён усё яшчэ можа працаваць і функцыянаваць. Але для нас, як вашыя выдатныя ТП, якія будуць чытаць і ацэньваць вашыя PSets, гэта не вельмі прыемна. Таму, калі ласка, дзеля нас і сябе, калі вы спрабуеце выправіць праблема ў кодзе, і вы спрабуеце прачытаць свой уласны код, пераканайцеся, што вы будзеце прытрымлівацца некаторых пагадненням што мы збіраемся перайсці на. Такім чынам, спачатку. Дайце зменныя значныя імёны. Калі вы хочаце захаваць цэлае называецца ўзрост, калі ласка, назваць гэта ўзрост. Не завіце гэта вышыня. Калі вы спрабуеце захоўваць ўзрост у вышыню, Ён робіць усё вельмі заблытаным для нас. Мы не хацелі б быць у замяшанні. Вы не хацелі б быць у замяшанні. Ніхто не любіць быць у замяшанні. Калі вы збіраецеся стварыць нешта, назваць гэта нешта значнае. Тым не менш, на працягу цыклу, аднаго характар ​​зменных, як правіла, добра. І на працягу цыклу, калі вы хочаце проста я, і J, K, не саромейцеся, каб проста зрабіць гэта. У адпаведнасці ініцыялізацыі. Такім чынам, што ж гэта значыць? Гэта азначае, што тэхнічна, тэарэтычна, Вы можаце пачаць і стварыць некалькі зменных у адным радку. Так, напрыклад, я магу стварыць цэлы лік называецца scaz_age, і цэлае, званае andi_age = 20, і цэлае называецца jason_age на той жа лініі. І я магу таксама прызначыць толькі адзін з іх і не іншыя да значэнняў. Мы просім вас, калі ласка, не рабіце гэтага. Таму што тут вы істотна створана тры зменныя, але толькі адзін з іх на самай справе мае значэнне. А потым, калі мы спрабуе чытаць ваш код, або калі вы спрабуеце выправіць праблема ў кодзе, гэта вельмі заблытаным, каб прытрымлівацца. Так што для вашага зручнасці чытання, для наш чытальнасць, не рабіце гэтага. Паслядоўныя фігурныя дужкі. Некаторыя людзі любяць, каб змясціць іх Фігурныя дужкі ў розных месцах. Гэта сапраўды не мае значэння. Проста пераканайцеся, што вы паслядоўныя ў сваіх уласны код ад таго, дзе вы хацелі б паставіць іх. У адпаведнасці адлегласць. Калі паставіць прабел пасля цыкл, заўсёды робяць гэта. Не проста падабаецца выгляд зрабіць гэта ў некаторыя месцы, не робяць гэта ў іншых. Проста быць паслядоўным. Па-другое, калі хто-небудзь хацеў бы каб праглядзець Кіраўніцтва CS50 стыль, мы афіцыйна маюць стыль кіраўніцтва, што кажа вам усё з гэтых канвенцый, плюс больш. Гэта онлайн. Гэта як cs50.net/style~~pobj ці нешта падобнае. Вы можаце Google гэта. Паслядоўнасць з'яўляецца ключавым. Так што не хвалюйцеся, што іншыя людзі робяць, проста пераканайцеся, што вы адпавядае ў межах вашага ўласнага кода. Хто-небудзь ёсць якія-небудзь пытанні па гэтай нагоды? Так. СПІКЕР 18: Такім чынам, правільнае справу рабіць з ініцыялізацыі проста мець іх усё ў асобную лінія, гэта тое, што вы кажаце? ANDI Пэн: Так што я рэдка такое бывае. Але калі вы хочаце, каб, калі вы хочаце каб быць як захаванне месца ў кодзе, ці нешта, вы можаце зрабіць гэта. Мы просім, каб вы проста не ініцыялізаваць адно, а другія ня. Так што, калі вы хочаце зрабіць Int scaz_age, INT andi_age, INT jason_age, гэта нармальна. Толькі не ініцыялізаваць адзін а не іншыя ўсё. Пытанні? Добра. Я збіраюся прайсці выключэнне мікрафон, і лазерны паказальнік, і эстафету Scaz ў гэтай кропцы. Гэта нязручна. Вось. Браян SCASSELLATI: Дзякуй. Як гэта для гуку? Гук добры? , Выдатна. ДОБРА. Так, прывітанне ўсім. Я збіраюся паспрабаваць працаваць праз практычны прыклад з вас. І мы збіраемся выкарыстоўваць CS50-х асяроддзе распрацоўкі, тое, што называецца Інтэграванае асяроддзе распрацоўкі. І вы бачылі гэта паказана ў лекцыі. І ў задачы Набор 1, вы будзе мець магчымасць каб выкарыстоўваць яго, і пагуляць з гэта і прывыкнуць да яе, таму што мы збіраемся выкарыстаць яго да канца семестра. Такім чынам, у гэтым IDE, вы ёсць тое, што выглядае як вельмі традыцыйнай файлавай браўзэры набок. У вас ёсць частка да топ, дзе вы збіраецеся каб убачыць зыходны код, ваш CFile, код, які вы пішаце. І ўніз дно, вы будзеце ёсць акно тэрмінала якія вы будзеце выкарыстоўваць, каб як скампіляваць праграму і запусціць або выканаць праграму. ДОБРА. Так што проста даць нам крыху падмурак, у гэтым акне тэрмінала, Вы будзеце выкарыстоўваючы набор каманд што стандартныя каманды да большасць Unix або Linux сістэм. І таму, калі вы калі-небудзь выкарыстоўвалі любая форма Unix, Ubuntu, або любой з іншых араматызатараў, яны збіраюцца, каб паглядзець знаёмыя. Калі ў вас няма, не турбуйцеся. Там няма нічога складанага пра іх. Яны проста з дапамогай іншай Сінтаксіс, іншая імёнаў Канвенцыя, чым вы бачылі раней. Такім чынам, каб пералічыць файлы у межах канкрэтнага каталога, яны збіраюцца выкарыстоўваць Каманда называецца LS, ці спіс. Калі вы хочаце, каб убачыць усе з усімі падрабязнасцямі, Вы будзеце выкарыстоўваць каманду Аргумент радок з Ls -l. І пакажу вам усё Больш падрабязна, у тым ліку дазволаў для файла. Каб змяніць каталог, Вы будзеце выкарыстоўваць каманду CD. І вы зможаце змяніць каталог і ісці да вашай хатняй дырэкторыі. Вось толькі кампакт-дыск за ўсё Сам, кампакт-дыск з двума пункту верне вас на адзін Узровень да папярэдняга каталогу. І вы таксама можаце кампакт-дыска на падкаталог, набраўшы ў кд і імя гэтага падкаталога. Вы таксама можаце ствараць новыя каталогі. І мы збіраемся ісці праз гэта ўсяго за хвіліну. Але толькі, каб пакласці усё на экране. Так што вы можаце бачыць іх. Вы таксама будзеце мець магчымасць для працы з файламі непасрэдна з каманднага радка. Вы зможаце скапіяваць іх, перамяшчаць іх, або выдаліць іх, гэта значыць, фактычна, каб выдаліць іх. CS50 IDE дае вам поўны Сіла аргументаў каманднага радка. І гэта азначае, што вы таксама можаце зрабіць вельмі небяспечныя рэчы. ДОБРА. Напрыклад, вы можаце выдаліць, або, што выдаленне, файл, не пытаючыся для пацверджання. І вы можаце нават выдаліць recursively-- гэта працяжнік г flag-- ўвесь каталог і ўсе яго змесціва. ДОБРА. Яны пералічаны ў чырвоны, таму што вы варта думаць, "небяспека" кожны раз, Вы бачыце гэтыя рэчы. ДОБРА. Добра. Цяпер, нарэшце, рэчы, якія з'яўляюцца будзе вельмі каштоўным для вас, ёсць некалькі добрых трукі ведаць, як вы навігацыі праз гэты акне тэрмінала. Па-першае, вы можаце ачысціць экран у у любы час, проста набраўшы ў ясна. І вы ўбачыце, мне зрабіць, што даволі часта. Вы таксама можаце проста адлюстроўваць тэкст файла набраўшы больш і затым імя файла. Затым Вы зможаце пракручваць назад і наперад з, што як раз з прабелу і стралкі. Калі ў вас ёсць, як мы рабілі сёння ў лекцыі, праграма, якая працуе бесперапынна ў бясконцым цыкле, вы можа спыніць гэтую праграму ад выканання набраўшы ў кіраванні, што утрымліваючы Control-C. І вы, магчыма, прыйдзецца зрабіць гэта некалькі разоў. Кампутар атрымлівае далёка наперадзе вас. І часам неабходна даць яму пару спроб перш, чым гэта будзе на самой справе прыйсці да канца. Вы таксама зможаце Сартаваць па камандам што вы толькі што ўвялі, выкарыстоўваючы клавішу уверх, Стрэлка, а затым клавішу са стрэлкай ўніз. І тое, што найбольш карысна значыць замест ўводзіць з доўгіх імёнаў файлаў, Вы зможаце выкарыстанне Tab для аўтазапаўненне некалькі інструкцый. Цяпер мы збіраемся, каб прадэманстраваць усе тыя, усяго на секунду. Так што, калі вы не памятаеце, ім, не хвалюйцеся. Гэта рэчы, якія вы будзеце падабраць і выкарыстоўваць, як мы ідзем разам. ДОБРА. Такім чынам, у адрозненне ад C-- Scratch-- З кампіляваная мову. Гэта азначае, што мы збіраемся ўзяць крыніца file-- гэта тэкст, які вы пішаце, каманды, якія вы пішаце, тым Е () заявы, завесы, усе else--, і мы збіраемся ўзяць гэты файл і перадаць яго у праграме называецца кампілятар. Кампілятар будзе прымаць што тэкст, які вы напісалі і перавесці яго ў двайковыя інструкцыі што ваш кампутар на самай справе адбываецца выкарыстанне. Гэта называецца аб'ект ці выкананы файл. Калі вы паглядзіце на гэты файл, вы збіраецеся каб убачыць код, які вы напісалі. Калі вы паглядзіце на гэты файл, вы збіраецеся каб убачыць выпадковую паслядоўнасць знакаў што не мае сэнсу наогул. Гэта таму, што гэта двайковы код. Гэта не азначала, каб вы чытаць. Тым не менш, у любы час вы хочаце, каб запусціць што-тое, што вы збіраецеся каб быць запушчаны гэты аб'ектны файл. Так што, калі мы працуем з імі файлы, мы напішам файл у C. Мы затым скампіляваць яго, выкарыстоўваючы Каманда, як макіяж, які будзе выклікаць кампілятар ляск для мовы C. І будзе вырабляць аб'ект падаць, як па-за, ці ў дадзеным выпадку, імя, мой файл, што я паклаў у. Добра. Такім чынам, давайце на самай справе паспрабаваць гэта. Так што я прыйшоў з, напрыклад што я хацеў паспрабаваць. І адна з рэчаў, якія зачароўвае мяне анімацыя. Такім чынам, мы збіраемся, каб паспрабаваць зрабіць трохі анімацыі выкарыстоўваючы толькі знакі ASCII. Персанажы мы можам надрукаваць лёгка прадпрыемствам. Дык вось мой лепшы спроба на стварэнне для Вас анімацыя трусік працуе ў высокай траве. Там ён. ДОБРА. Такім чынам, ён яшчэ не працуе, але ён стаяў у высокай траве. Цяпер, калі б я быў аніматар, у старой школе версія анімацыі, тое, што я будзе зрабіць, гэта я б вырабіць карціна гэтага труса ў траве. І тады я б вырабіць іншы picture-- іншы, што яны называюць cell--, што што трусік нязначна перамяшчаецца. А потым трэцяя, што калі б трусік пераехаў крыху далей. І я б вырабляць увесь Паслядоўнасць гэтых клетак. Некаторыя, дзе трусік над на левай баку. А потым павольна рухаецца, адзін адзін да сярэдзіны. А потым з сярэдзіны на правы. І калі б я тады, сапраўды пашанцавала, я мог бы паставіць яго разам і я мог ажывіць іх. І мой трус працуе па траве. Гэта мая вялікая PowerPoint падмануць на працягу дня. ДОБРА. Так што гэта так добра, як ён атрымлівае. ДОБРА. Такім чынам, вось яшчэ адзін момант, вось наш трус праходзіць праз траву. СПІКЕР 19: Ізноў. Браян SCASSELLATI: Адзін больш часу, усё ў парадку. Там твой зайчык. ДОБРА. Такім чынам, сёння, што мы збіраемся зрабіць, мы збіраемся каб паспрабаваць аўтаматызаваць працэс вырабляць гэтыя клеткі. Мы не будзем дастаткова дабрацца да кропкі будучы ў стане змясціць іх усіх разам. Але, мы збіраемся, каб паспрабаваць аўтаматызаваць Працэс фарміравання гэтай паслядоўнасці. І гэта шмат што з таго, анімацыя сёння, як. Гэта значыць, вы не рабіць рэчы абавязкова абапіраючыся усё ўручную. Мы выкарыстоўваем кампутар для аўтаматызацыі часткі гэтага працэсу. ДОБРА. Такім чынам, дазвольце мне перайсці Цяпер да нашага CS50 IDE. І я стварыў для us-- і хай мне маштабу тут трохі bit-- Я стварыў для нас адпраўной кропкай. Кожны раз, калі мы просім вас, каб сядзець ўніз і напісаць кавалак кода, тое, што мы сапраўды прашу вас зрабіць з'яўляецца мы просім, каб вырашыць праблему. І тое, як, што вы павінны думаць пра тое, што рабіць гэта, пачынаючы з некаторых просты часткай гэтага рашэння. А потым пабудаваць з гэтай часткі. І гэта тое, што мы збіраемся зрабіць сёння. Такім чынам, замест таго, каб спрабаваць усё адразу напісаць ўсю кучу кода, які будзе вырабляць тыя 10 анімацыя клеткі, мы збіраемся, каб пачаць, а з адной частцы, якая працуе. І тады мы будзем будаваць трохі вакол, што і трохі больш і крыху больш. Цяпер добрая рэч аб Рашэнне праблем, так з'яўляецца тое, што гэта дазволіць вам пачаць заўсёды з чымсьці, што вы ведаеце работ і ўвесці адзін паступовае змяненне. І гэта выдатны спосаб каб даведацца, як кадзіраваць, таму што кожны раз, калі вы зрабіць змена, вы бачыце, што ўздзеянне яна аказвае. ДОБРА. Дык вось наша адпраўная кропка. ДОБРА. Такім чынам, у пачатку майго файла, У мяне хэш #included stdio.h. Гэта так, што я магу атрымаць Е (), каб працаваць. Я тады ў мяне асноўную функцыю. І гэта па-ранейшаму выглядае трохі таямніцай або незразумелым для некаторых з вас. Гэта нармальна. Усё гэта кажа, што асноўная функцыя прымае няма arguments-- несапраўднымі сродкі нішто ў З і яго вяртаецца па канвенцыі цэлы лік. Галоўная заўсёды вяртае цэлы лік, Звычайна код кажучы рэчы прайшло добра ці не добра. ДОБРА. Але галоўная павінен мець, што сфармаваць для нас прама цяпер. Я затым пакласці ў тры радкі кода. І разам з кожнай лініі Код, я паклаў каментар. Цяпер адна з рэчаў, якія мы будзем настойваць на тым, што вы робіце, і гэта такі важны практыка праграмавання, гэта заўсёды каментаваць свой код. Заўсёды запісваць у Англійская каментар то што вы думаеце, Код павінен рабіць. Такім чынам, пазней, калі вы вернецеся да гэта, вы можаце паглядзець на яго, і вы можаце сказаць, О, я памятаю, што я быў спрабуе зрабіць з гэтым. Ці калі ТАЯ садзіцца з вамі, каб паспрабуйце, каб дапамагчы вам у працоўны час, яны могуць паглядзець на гэта і ісці, я бачыць, што вы спрабавалі зрабіць, але замест гэтага тое, што адбываецца на самай справе. ДОБРА. Так што я атрымаў тры часткі майго кода, Я збіраюся ў першую чаргу друк з некаторых кропак у пачатку. Я затым раздрукаваць мой надзвычай модны трусік. І тады некаторыя трохі кропак у канцы. І гэтыя тры зацвярджэння друку павінны вам знаёмым ў гэтай кропцы. Усё, што я раблю ў кожны з іх я друк з паслядоўнасці знакаў. Там няма зменных. Усё проста плоскі. ДОБРА. Так што, калі я іду ўніз цяпер мой terminal-- давайце паглядзім, калі я магу атрымаць гэта назад out-- і я збіраюся зноў ўвесці ясна. СПІКЕР 20: Ці ёсць у нас выкарыстоўваць двайны слеш каментар? Браян SCASSELLATI: Можа выкарыстоўваць double-- так. Там жа некалькі спосабаў пакідаць каментары C. Адзін спосаб складаецца ў выкарыстанні двайны слэш. Іншы заключаецца ў выкарыстанні рысу і зорка а затым зачыніце з зоркай і рысы. Добра. Перш за ўсё, я збіраюся пачаць навігацыю тут. Так што, калі я іду ў маёй хатняй дырэкторыі, Я змяніў каталогі там, Я збіраюся глядзець і бачыць тое, што у гэтым каталогу, Ls, пералічыць. Я збіраюся бачыце, што я атрымаў дзве тэчкі. Давайце зробім гэта крыху больш тут, так што мы ўсе можам бачыць яго. Я бачу, што я атрымаў дзве тэчкі. Я змяню каталог перайсці ў працоўную вобласць. І я збіраюся толькі ўдрукавалася частка яго, а затым проста націсніце Tab. І гэта будзе завяршыць астатняе для мяне. Незвычайныя. Я буду глядзець і бачыць у працоўнай вобласці. І зараз, я працую на SuperSection што мы вучым цяпер. Так што я пайду ў гэты каталог. І, нарэшце, глядзець і бачыць. І я атрымаў гэты файл bunny.c. Усе правы, таму дазвольце мне ясна яшчэ раз. І я збіраюся зноў now-- Я застаючыся ў гэтым каталогу і гэта кажа мне, што я знаходжуся ў што SuperSection каталог. Я збіраюся ісці наперад і зрабіць свой праграмны труса. І, што каманда, каб трус, у той час як гучанне трохі дзіўным, Таксама выклікае кампілятар ляск. І гэта вырабляецца для мне выхад, які выкананы funny-- выкананы файл называецца труса. ДОБРА. Затым я магу, і гэта гучыць яшчэ горш, выканаць труса. ДОБРА. І давайце паглядзім, што ён робіць. ДОБРА. Гэта крыху тое, што я чакаў. Я атрымаў маю карціну труса там, але я накшталт хацеў усё гэта само па сабе. Што я прапусціў? СПІКЕР 21: Slash л або скараціць п. Браян SCASSELLATI: Слэш п. ДОБРА. Так давайце вернемся сюды. І я выйсці з гэтага. І я вярнуся ў гэты. І давайце цяпер паглядзіце ад маёй асноўнай функцыі тут. Так што я павінен рабіць? Я хачу скончыць лінію. Так што я паклаў у каментары. Я пакладу ў Е (). І тое, што я павінен паставіць у? / П. ДОБРА. Што я павінен скончыць яго з? Кропка з коскі. Добра. Цяпер, адзін з сапраўды важныя рэчы, гэта пераканацца, кожны раз, калі вы ўносіце змены у кодзе, што вы захаваеце яго. Калі вы не захавалі свой код, вы заўважыць трохі зорак там. І, што зорка кажа, што вам не захоўваюцца гэты код. Калі я скампіляваць яго прама зараз, гэта не збіраецца адлюстроўваць гэтых змен, таму што кампілятар глядзіць на файл гэта на дыску, а не файла, што гэта адкрыць у рэдактары. Добра. Такім чынам, давайце захаваць яго, а затым мы пойдзем прама на сюды, прыходзяць назад. Прыходзьце да мяне ў тэрмінале. І давайце яшчэ раз ачысціць прастору. І мы можам ісці наперад і яшчэ адзін Час зрабіць нашу праграму труса. І выканаць труса. Гэта не працуе. Няправільны слеш. Так што, калі вы паглядзіце на тое, што я атрымаў, я паклаў / П там, але я быў няправільны рысу. Усе, што ваш кампутар робіць вельмі выразна. ДОБРА? Адна маленькая памылка пунктуацыі, і раптам вы не атрымаеце тое, што вы хочаце. Добра. Такім чынам, давайце маштабу назад. Мы вернемся. Ну што зрабіць вельмі хутка рамонт. Мы пакласці правую касую рысу. Мы выратуем яго. Мы маштабу назад. Па нейкай прычыне, гэта не быць шчаслівым, але давайце ісці наперад і мы вернемся да тэрмінала тут. Ачысціце яго. Мы маштаб. І яшчэ раз, мы будзем рабіць труса. А цяпер вядома, ён працуе. Ўра. ДОБРА. Так давайце паспрабуем зрабіць гэта трохі больш агульны. Давайце паглядзім, калі замест таго, каб проста друк аднаго канкрэтнага кадра, давайце паглядзім, калі мы можам зрабіць гэта так што мы можам атрымаць усе 10 з тых анімацыйных кадраў што мы хацелі б мець. Такім чынам, яшчэ раз, давайце Гэты крок за адзін раз. Давайце спачатку абагульніць, ня так што я ўсё кадры, але так я нікога кадр, які я мог бы. Так якая розніца паміж кадрамі? Ці з'яўляецца трусік тое ж самае? АЎДЫТОРЫЯ: Так. Браян SCASSELLATI: Так. Якая розніца? АЎДЫТОРЫЯ: Пасада. Браян SCASSELLATI: Яго пазіцыя, праўда? І, як я кантраляваць сваю пазіцыю? Колькі кропак я пакласці ў пачатку і колькі кропак я пакласці ў канцы. Так што мне прыйшлося пяць на пачатак і пяць у канцы. Давайце заменім, што пяць з для цыклу. ДОБРА. І я збіраюся стварыць для пятля цяпер, скажа, Я збіраюся друкаваць некаторы лік з кропак у пачатку. Я збіраюся выкарыстоўваць зменную. Давайце казаць, як пра I у лічыльнік ў маім цыкле. І я збіраюся аб'явіць яго наверсе. А потым у цыкл Мне трэба зрабіць тры рэчы. Першае, што мне трэба зрабіць, мне трэба для ініцыялізацыі I. Тое, што я павінен ініцыялізаваць гэта пачаць, каб быць? 0. ДОБРА. Тады я павінен сказаць, што спыненне стан? Калі я павінен спыніцца? Ну, колькі кропак вы робіце хочаце надрукаваць на гэтым? АЎДЫТОРЫЯ: Пяць. Браян SCASSELLATI: Пяць раз? Як наконт давайце што-то рабіць розныя, мы зрабілі пяць. Пакажам, што гэта па-іншаму. СПІКЕР 22: Два. Браян SCASSELLATI: Два. ДОБРА. Так што, калі я хачу дзве кропкі, што я павінен пакласці тут? АЎДЫТОРЫЯ: Тры. Браян SCASSELLATI: Тры. ДОБРА. Колькі раз у тым, што збіраецца прайсці? Вось збіраюся прайсці праз у тры разы, 0, 1, 2 і, правільна? Добра, давайце вернемся да двух. Цяпер мы атрымаем дзве кропкі. І тое, што я хачу, каб рабіць кожны раз я іду праз пятлю? Што павінна змяніцца кожны раз я прайсці? СПІКЕР 23: Дадаць кропку. Браян SCASSELLATI: Я павінен працягваць ісці. Я збіраюся дадаць кропку. Я збіраюся надрукаваць кропку, кожны раз праз пятлю. Але як я адсочваць, як шмат разоў я быў праз пятлю? Я выкарыстоўваю я, што Пераменная, што лічыльнік. Такім чынам, кожны раз праз, я збіраюся для павелічэння лічыльніка на адзінку. Цяпер, гэта тое ж самае для мне, як кажуць I = + 1. Гэта нармальна. Я мог бы зрабіць гэта that-- Мне падабаецца скарачэнне, так што я збіраюся сказаць, я ++. ДОБРА. Давайце рабіць тое ж самае тут унізе. Толькі я накшталт зрабіў гэта адзін. Я збіраюся даць вам, хлопцы зрабіць гэта адзін цалкам. Добра. Так што я павінен напісаць тут? Вось мой цыкл. Я збіраюся зрабіць Е (), і я збіраюся зрабіць так, што я толькі раздрукаваць адну кропку на гэтым дні. Тое, што я павінен напісаць ўнутры гэтага цыкл цяпер? Ну, у першую чаргу тое, што зменныя я павінен выкарыстоўваць? СПІКЕР 24: J. Браян SCASSELLATI: Я мог бы выкарыстаць J. Ці магу я выкарыстаць той жа адзін? Ці магу я выкарыстаць я зноў? Так. Гэта нармальна, таму што Is што я выкарыстоўваю тут, Мне не трэба іх зноў, калі Я да гэтага моманту. Так што я павінен ініцыялізаваць я да? СПІКЕР 25: 10. Браян SCASSELLATI: 0. Што я павінен праверыць? Колькі кропак я зараз трэба ў канцы калі я атрымаў дзве кропкі ў пачатку? Мне трэба восем у рэшце рэшт, так, што я павінен праверыць, я менш than-- АЎДЫТОРЫЯ: Сем, восем, дзевяць. Браян SCASSELLATI: Я чуў, сем. Я чуў, восем. І пачуў я дзевяць. ДОБРА. Так што мы ўсе ў праве ball-- Джэйсан кажа 10. ДОБРА. Калі мне трэба дзве кропкі для першы, як многія робяць Я-- і мне трэба восем кропак для Апошняе одно-- я паклаў два наверсе, што я павінен пакласці ўніз? АЎДЫТОРЫЯ: Восем. Браян SCASSELLATI: Восем. Таму што збіраецца разлічваць нуля да сямі. І гэта ў восем разоў праз пятлю. ДОБРА. І тое, што я павінен рабіць у канцы? АЎДЫТОРЫЯ: я ++. Браян SCASSELLATI: я ++. Добра. Так што выглядае даволі добра там. Давайце паспрабуем і паглядзім, што ён робіць. ДОБРА. Такім чынам, мы збіраемся, каб выратаваць яго. Ніца і захаваны. Мы аддаліцца. Мы пастараемся тут у тэрмінале. Мы маштаб. Ай. Мы будзем, яшчэ раз, зрабіць нашу праграму труса. І ісці наперад і выканаць труса. І гэта так. Так што наш трусік. Дзе ён мае дзве кропкі ў пачатку і васьмю кропкамі ў канцы. Ўсё яшчэ са мной? ДОБРА. Такім чынам, мы пабудавалі яго. Мы пабудавалі адзін трусік, адзін канкрэтны кадр. Цяпер мы змаглі абагульніць, што будаваць больш, розныя віды рамак. Зараз давайце ісці наперад, і маюць гэта генераваць не толькі адзін кадр, але давайце ствараць 10 кадры, дзе мы павольна зрабіць труса перанесьці ўсе шлях праз поле. Добра. Давайце вернемся. І мы пастараемся сёння. Так што я на самой справе трэба змяніць тут? Што мне трэба змяніць? СПІКЕР 26: Спачатку трэба змяніць колькасць кропак максімуму у самым пачатку. Таму што, калі мы робім 10 кропак, гэта будзе неабходна з дакладнасцю да маштабу. Браян SCASSELLATI: Так. Так што цяпер у мяне гэта свайго роду жорстка заўсёды рабіць дзве кропкі ў пачатку і заўсёды рабіць восем кропак у канцы. Я хачу, каб пабудаваць яшчэ адзін цыкл, праўда? Таму што я не хачу, каб пабудаваць толькі адзін трусік карціну, Я хачу, каб пабудаваць 10 труса фатаграфіі. Таму мне трэба, каб пабудаваць яшчэ адзін цыкл, і, як я іду праз гэтага цыклу, Я хачу змяніць, колькі пункту раздрукаваць ў пачатку і колькі кропак раздрукаваць у рэшце рэшт, на падставе якіх цыкл праз пятлю Я знаходжуся ў. Добра. Такім чынам, давайце яшчэ лічыльніка. Хтосьці, перш чым сказаў J, такім чынам, мы будзем рабіць яшчэ J. А цяпер, мы збіраемся пабудаваць яшчэ цыкл. Тое, што адбываецца ўнутры гэтага цыкла? Гэты матэрыял павінен ісці ўнутры цыклу, ці не так? Ці ёсць у труса ісці ўнутры цыкла? Мне патрэбен трусік ў кожны з гэтых 10 кадраў? АЎДЫТОРЫЯ: Угу. Браян SCASSELLATI: Так. Я хачу труса ў кожнай з 10 кадраў, праўда? Як наконт кропак на канец, мне трэба гэта? ДОБРА. Так што я збіраюся зрабіць водступ ўсіх з іх. Я збіраюся вылучыць ўсе гэта, і я збіраюся стукнуць Tab. І што адбываецца, каб падштурхнуць іх на ўсім працягу трохі, так што гэта лёгка для мяне каб убачыць, што ў цыкле. І тады я скончу яго. Давайце сказаць. ДОБРА? Цяпер, у гэтым цыкле, які Я building-- воклічы, зрабіць гэта такім чынам Вы можаце see-- Я атрымаў свой лічыльнік J. Я пачаў яго ў 0. Колькі разоў я хачу прайсці праз гэты цыкл? АЎДЫТОРЫЯ: 10 разоў. Браян SCASSELLATI: 10 разоў. Так што нумар, які я павінен паставіць тут? АЎДЫТОРЫЯ: 9, 10. Браян SCASSELLATI: 9, 10, хто-то павінен сказаць, 11, праўда? Я хацеў дзве кропкі, перш чым і паклаў я менш 2. Я хацеў восем кропак, Я паклаў я менш, чым 8. Цяпер я хачу, каб прайсці праз 10 раз, так што я паклаў J менш than-- АЎДЫТОРЫЯ: 10. Браян SCASSELLATI: 10. Там мы ідзем. І тое, што я раблю ў рэшце рэшт да J? ++ Павялічваць яго. ДОБРА. Цяпер, вось хітрая частка, што адбудзецца прама зараз, калі я гэта зрабіць? Я збіраюся друкаваць 10 кадраў? СПІКЕР 27: я думаю, усе яны будзе тое ж самае. Браян SCASSELLATI: Яны Усё тое ж самае, ці не так? Таму што ўсе з іх па-ранейшаму будзе пакласці дзве кропкі ў пачатку. Але я не хачу іх усіх ёсць дзве кропкі пачатку. Колькі кропак зрабіць I хачу ў пачатку? АЎДЫТОРЫЯ: Змена. Браян SCASSELLATI: Я хачу, каб гэта змяніць, праўда? Так што ў мяне ёсць вось што мяняецца кожны раз, калі цыкл праходзіць праз? АЎДЫТОРЫЯ: Колькасць кропак, да. Браян SCASSELLATI: J, лік кропак. Так што я магу змяніць, каб гэта было да. У першы раз праз цыкл, што, што будзе? Што я магу ўсталяваць J, каб у першую чаргу? АЎДЫТОРЫЯ: 0. Браян SCASSELLATI: Дык колькі раз я збіраюся гэта зрабіць? 0. У другі раз праз цыкл, Джэя будзе 1, таму што я яго павялічыць. Колькі кропак я збіраюся надрукаваць? 1. У трэці раз праз пятлю, колькі кропак я збіраюся надрукаваць? АЎДЫТОРЫЯ: Тры. Браян SCASSELLATI: J будзе 3. Колькі кропак я збіраюся надрукаваць? О, прабачце, J будзе 2. Колькі кропак я збіраюся надрукаваць? АЎДЫТОРЫЯ: 2. Браян SCASSELLATI: 2. ОК, так што я буду трымаць павялічваючы, што, як мы ідзем разам. Як наконт ўнізе? Тое, што адбываецца тут? Я не хачу 8 заўсёды ў канцы больш? СПІКЕР 28: 10. Браян SCASSELLATI: Я хачу 10 кропак? Я хачу, каб змяніць, занадта. Так як я хачу, каб гэта змяніць? АЎДЫТОРЫЯ: [неразборліва]. Браян SCASSELLATI: Ну, калі я пяць кропак у пачатку, колькі кропка-х я атрымліваю ў канцы? АЎДЫТОРЫЯ: Пяць. Браян SCASSELLATI: Калі ў мяне ёсць шэсць кропак у пачатку, колькі я магу атрымаць у канцы? АЎДЫТОРЫЯ: Чатыры. Браян SCASSELLATI: Калі я атрымаў сем кропак у пачатку, колькі я магу атрымаць у канцы? АЎДЫТОРЫЯ: Тры. Браян SCASSELLATI: Калі я атрымаў J кропкі ў пачатку, колькі я магу атрымаць у канцы? 10-J. ДОБРА. Так давайце паспрабуем гэта. Так што я іду, каб выратаваць нашу праграму труса. Мы зноў будзем выдаляць. Мы пойдзем да нашага тэрмінала. Мы ачысціць яго. І павялічыць. Мы зробім нашу праграму труса, зноў. І мы будзем выконваць яго. Ой-ой. Трымайся, давайце памяншэння маштабу. Я атрымліваў 10 кадраў? Ну, колькі трусы я бачу там? 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Я атрымаў 10 кадраў. Ці з'яўляюцца яны ўсё тое ж самае? АЎДЫТОРЫЯ: Так. Няма. Браян SCASSELLATI: Няма Гэта першая, то зайчык далёка злева. І тут, трусік далёка на СПІКЕР 29: Права. Браян SCASSELLATI: Такім чынам, тое, што я забыўся зрабіць? СПІКЕР 30: Пераход на новы радок. Браян SCASSELLATI: Я забыўся каб пачаць новую лінію, зноў. Тое ж самае я зрабіў памылку раней. Добра, давайце выправім гэта. Зараз, я ўсё яшчэ атрымаў код там, каб зрабіць новую радок. Чаму гэта не працуе? СПІКЕР 31: Гэта не ўнутры цыклу. Браян SCASSELLATI: Аб, гэта не ўнутры цыклу. Гэта дакладна. Гэта тут, седзячы звонку. І для завесы ўсе што ўнутры гэтага тэксту. Так што я збіраюся пераехаць гэта ўнутры цыкл. І я Tab перад ім на паказваюць, што ён знаходзіцца ў правільным месцы. А цяпер, мы выратуем яго зноў. Мы маштаб малюнка. Мы пераключыцца на нашым тэрмінале. Павялічыць. Мы перарабіць нашу праграму труса. А цяпер, цяпер у нас ёсць нашы 10 кадраў. [Пляскаючы] Браян SCASSELLATI: ОК. Такім чынам Вось наша укладзенымі для завес. Мы былі здольныя генераваць ў Ўнутраны контур колькі кропак я хацеў друкаваць у пачатку, у канцы. І кіруецца знешні контур колькі кадраў я будаваў. Мы пачалі з аднаго маленькага Ядро праблемы, і мы пабудавалі з гэтай кропкі. Добра. Давайце зробім яшчэ адзін крок. Вы гатовыя? Там адна рэч, у тут, дзе мы на самай справе выгляд атрымаў больш складанасць, чым нам трэба. Давайце зірнем. Такім чынам, у нашай праграме труса, калі я маштабу тут, Я на самой справе некаторыя з ж рэч зноў і зноў. Што мне рабіць, гэта свайго роду тое ж самае паўтараецца двойчы? СПІКЕР 32: Друк кропкі. Браян SCASSELLATI: Так Раздрукаваць гэтыя кропкі ў два разы. Сапраўды, я павінен гэты каментар тут. Раздрукаваць некаторыя кропкі на пачатак, прама тут. І тады я надрукаваць некаторыя кропкі ў канцы. І я накшталт тое ж самае. Тое, што мы збіраемся пачаць працавалі ў бліжэйшыя некалькі тыдняў з'яўляецца магчымасць узяць гэтыя блокі код, які мы выкарыстоўваем зноў і зноў, і з дапамогай працэсу называецца абстракцыя, мы збіраемся, каб выцягнуць іх і запісаць іх адзін раз, так што мы можам затым выкарыстоўваць іх зноў і зноў. Так давайце паспрабуем гэта. Гатовыя? Мы збіраемся ўзяць гэты блок кода. І я збіраюся ўзяць яго адтуль. І я збіраюся define-- на дне, Я збіраюся напісаць новую функцыю. Гэта не збіраецца нічога вяртаць. І я буду называць яго printDots. Гэта зойме адзін Аргумент, цэлы лік, кажа howManyDots я павінен надрукаваць. І зараз замест друку J пункту, я буду друкаваць сказаць howManyDots я павінен надрукаваць. І ёсць адна маленькая праблема. Хто-небудзь ведае, што гэта такое? Што я, што пералічана тут гэта не вызначана? АЎДЫТОРЫЯ: [неразборліва] Браян SCASSELLATI: Ну, як многія пункту вызначаецца аж тут, але я выкарыстоўваю гэтую зменную я. Так што я збіраюся ўзяць гэтую зменную я і я збіраюся, каб вызначыць яго ўніз тут замест гэтага. Так што цяпер гэта будзе stay-- ой, атрымаў шапкі заблакаваць на somehow-- Я будзе трымаць я вось тут. Так што цяпер вось мая маленькая функцыя або падпраграма, і яна кажа: колькі кропак я збіраюся надрукаваць? І ён будзе ісці праз гэтую пятлю і друкаваць іх зноў і зноў. Я магу змяніць маё, то праграма тут. І тое, што я называю гэта функцыя? printDots. Так што я буду называць printDots. Колькі кропак я хачу, каб надрукаваць першы раз, перш чым трусік? АЎДЫТОРЫЯ: J. Браян SCASSELLATI: J. Колькі кропак я хачу, каб надрукаваць У рэшце рэшт, пасля трусік? 10-J. І ёсць адна рэч, я не хапае. Як вы бачылі ў лекцыі сёння, мы збіраемся аб'явіць printDots да вышэй, з атрыманнем прататыпа. ДОБРА. Так што я зрабіў гэта, я паспрабаваў ізаляваць ўжыванай частка кода што я зрабіў, зноў і зноў. І я паспрабаваў выцягнуць яго, так што усё, што змяшчаецца ў адным месцы. Такім чынам, калі ў мяне ёсць дзе-небудзь памылку, У мяне толькі, каб выправіць гэта ў адным месцы. Добра. Такім чынам, давайце захаваць яго. І давайце пераканайцеся, што ён працуе. Такім чынам, давайце выходзіць на вуліцу. Мы пойдзем зноў у наш тэрмінал. Мы маштаб. Мы зробім гэты працэс труса. Ох. І гэта дало мне папярэджанне. Што гэта кажа мне? Ну ў любым з іх раз, вы заўсёды хочаце для пракруткі да першага error-- Цяпер на гэтым, я атрымаў толькі адзін. Ён кажа мне, у bunny.c, на лініі 8, калонка 9, ёсць праблема. Гэта сведчыць, вы Пра гэта заявіў Пераменная я, і вы не выкарыстоўвалі яго. Цяпер, як правіла, гэта не самы горшы памылка. Вось лёгкім выправіць. І на самай справе, мы можам вярнуцца ў. Мы можам вярнуцца да труса. І ў гэтым выпадку, усё, што мы трэба зрабіць, гэта пазбавіцца ад I, таму што мы не выкарыстоўваем я ў галоўнай больш. Мы проста выкарыстоўваць яго у нашай падпраграме. Такім чынам, давайце выратаваць. Мы вернемся. І павялічыць. Мы яшчэ раз зрабіць труса. І вось ізноў нашы 10 кадраў. ДОБРА. Кожны раз, калі вы далі procedure-- Так. СПІКЕР 33: У мяне ёсць a-- я заблытаўся. Вы можаце вярнуцца да кода? Браян SCASSELLATI: Так. СПІКЕР 33: Такім чынам, калі вы пісалі Ваш прататып, аргумент Вам што яго назвалі назвалі howMany? Але, below-- Браян SCASSELLATI: О, так. СПІКЕР 33: --called ім нешта розныя, я не разумею. Браян SCASSELLATI: Чаму яны адрозніваюцца. Так што гэта вялікае пытанне. Такім чынам, пытанне было, да тут я напісаў howMany, і ўнізе, я напісаў howManyDots. Прычына ў тым, што ў вашым прататыпа, гэта на самай справе не звяртаючы ўвагі з імёнамі, якія вы ставіце ст. Усё гэта на самай справе клапоціцца аб тое, што гэта цэлы лік. Яна хоча ведаць выгляд што вы кладзеце ст. Цяпер stylistically-- oops--, што я павінен зрабіць, гэта мне падабаецца, каб зрабіць гэтыя матч. ДОБРА. Таму што будзе трымаць яго мне лягчэй запомніць. Але гэта было маёй памылкай Так. СПІКЕР 34: І так для Прататып на працу, проста пісаць гэтую лінію, пісаць прататып, дазваляе гэтую функцыю, якая пастаўляецца прама пад ёй ісці да канца і вярнуць тое, што гэта значыць? Браян SCASSELLATI: Што гэта азначае калі кампілятар праходзіць, яна ідзе ад верхняй часткі код на дно. І тое, што гэты прататып з'яўляецца, гэта ў асноўным абяцанне. Гэта кажа, што гэта будзе функцыя, пэўная недзе. Гэта будзе называцца printDots. І гэта зойме адзін аргумент што будзе цэлы лік і ён збіраецца вярнуцца нічога, пустата тыпу. ДОБРА. Я абяцаю вам гэта будзе вызначаецца дзесьці па дарозе. Але ў любы час вы бачыце што, як вы ідзяце ўніз да канца мой Асноўная функцыя, я хачу Вы для лячэння, што ў якасці функцыі які прымае адно цэлае лік ўваходных дадзеных. І таму, калі кампілятар ідзе ўніз праз гэта, ён бачыць, што абяцанні. І калі ён атрымлівае ўніз, працягвае ісці, працягвае ісці, ён знаходзіць у першы раз printDots згадваецца. І гэта кажа, Аб, вы даяце мне гэта да. J Вось цэлае. Ну вы мне абяцалі, што будзе цэлы лік, і гэта правільна. Гэта нармальна. І, нарэшце, аж на самым дне, перш, чым я да канца маёй Файл, я раблю сваё абяцанне і я вызначыць яго. ДОБРА? СПІКЕР 35: Такім чынам, гэта saves-- Праграма захавае прабелы што ён ідзе назад і запаўняе ў канцы? Браян SCASSELLATI: Гэта не аб размеркаванні памяці. Гэта на самай справе проста аб тым, што тып вы чакалі ўбачыць. Калі гэтая рэч ёсць адзін Аргумент, ці пяць аргументаў? Калі ёсць гэта цэлыя лікі будзе дадзена яму, ці радкоў? Гэта ўсё, што яна глядзіць зрабіць, каб праверыць, вы даяце мяне Правільны выгляд аргументу. ДОБРА? Добра. Дазвольце мне пакінуць вас з адзін біт, каб глядзець на. ASCII Art не вялікая мадэль анімацыі, як сёння. Але некаторыя людзі, вядома, узяць рэчы і яны штурхаюць яго да крайнасці. Гэта, Давід паказаў, у лекцыі, кавалак кода што вы павінны ні пры якіх абставінах паспрабуйце, каб дубляваць сябе. Таму што гэта страшна стылістычна. На самай справе, ён прызначаны, каб быць, як складана, як можна прачытаць. ДОБРА. Такім чынам, каб зрабіць зноў, давайце маштабу тут. Я збіраюся ісці, каталог зменаў. Я збіраюся падняцца на адзін Ўзровень, да майго працоўнай вобласці. Затым я змяніць каталог, у гэты іншы каталог, што я стварыў. І гэта міжнародны Заблытаны праграмавання C Конкурс. Заблытаны сродкі, як цяжка як можна зразумець. Так што калі ласка, не палохайцеся, калі вы паглядзіце на гэта і ісці, я не магу чытаць гэта. Гэта кропка. ДОБРА? Але ў нас ёсць гэта выдатная праграма, што я будзем глядзець на проста набраўшы больш. І давайце паглядзім, калі я магу паменшыць проста трохі, так што вы можаце бачыць гэта І гэта праграма. Ён названы endo.c. І, падобна, гэтага вёдры з выгляд літар Ж-Л-У-І-D у ім. Гэта на самай справе праграма. Яна напісана ў самы цёмны спосаб, што аўтары маглі б напісаць яго. Але гэта цудоўны маленькі кавалак, які генеруе мадэль гідрадынамікі. І таму мы збіраемся даць што мадэль, што ўваход Падобна на тое, гэта, staired ўсталяваць кантэйнераў з невялікай колькасцю вадкасці, некаторыя Вадкасць, наверсе. І мы будзем мець яго імітацыі тое, што адбываецца з ім. Так што я буду называць гэтую функцыю, энда. І я дам яго, што Ўваходных файл, які я меў. І наша увасабленнем ASCII мастацтва. Поўны гідрадынамічны сімулятар працуе ў некалькіх радкоў кода. Цяпер тое, што на самой справе вельмі Дзіўна, пра гэта мала праграмы з'яўляецца тое, што я хачу, каб спыніць гэта зараз, так што я збіраюся выкарыстоўваць тое, што каманды? АЎДЫТОРЫЯ: Control-C. Браян SCASSELLATI: Control-C. ДОБРА. Так што я буду выкарыстоўваць Control-C. З Гэта будзе спыніць яго. Я ясна зноў. А цяпер я іду для выкліку Праграма, выканаць праграму, выкарыстоўваючы ў якасці ўваходных дадзеных. І мы ўбачым дынаміку вадкасці мадэляванне яго плаўкі. ДОБРА. Калі ласка, не дайце гэтую праграму быць рэч, што вас бянтэжыць. Гэта так, што мы можам скончыць на то крута і цікава. ДОБРА. Жадаем поспеху ў вашых праблемных мностваў. Мы будзем рады адказаць на пытанні пасля заняткаў. Дзякуй вялікае, хлопцы.