ЈАСОН Hirschhorn: Добредојдовте CS50 дел, секого. Моето име е Џејсон Hirschhorn. Јас сум многу твое TFS, но многу од луѓе се надевам дека ќе ни се приклучи онлајн, продолжување студенти или студенти обидувајќи се да се погледне преку делот ако тие пропушти нивната делот кој недела или само се израмни ако сакаат да ги видиш некои материјал. Значи, како на наставната програма, која сите на кои сте ги прочитале, точно? Гледам многу од главата движења. Секции ви овозможи со можности да се истражуваат на курсот материјал во повеќе интимна животната средина, како и се нурне во рацете на активности. Па тоа е во основа она што ние сме случува да се прави секоја недела. Ние ќе треба да се оди преку она што го имаме решена да биде најважниот теми се опфатени во предавањето, и на оние веројатно, исто така најмногу корисни и најверојатно, да се излезе на проблемот сетови и во квизови, и во вашата кодирање живот надвор од CS50. Па ние ќе треба да одат во овие теми, да дискутираат за нив, одат над нив, одговори на сите прашања вие момци имаат, и тогаш ние ќе треба да направи многу пракса проблеми во кодирањето. Сите вас донесе лап-топ компјутери, што е фантастично. Ова е компјутерски науки класа. Сепак, многу од вежбите што го правиме, ти не ќе треба вашата лап-топ компјутери за. Можете да ги направите на лист хартија. Тоа е како сте ќе треба да направи нив на квизови. И навистина, тоа е одличен начин да се навистина знаат дека вие како да го направите нешто ако немаат Проверете 50 до потпрат на, или Направете да се потпрат на, кажувајќи сте го направиле било какви грешки. Па ти си добредојде на кодот на апаратот или run.cs50.net, што е уште една алатка која ви овозможува да кодирате интернет, но јас, исто така, ќе им препорачаат, ако не сте се обиделе, со помош на лист на хартија и се обидуваат овие пракса проблеми на лист хартија. Бидејќи повторно, тоа е во крајна линија што ви се случува да биде побарано да се направи на квизови. Значи, да почнеме со нашите агенда за денес. Ние ќе треба да се премине некои норми за нашата секција, тогаш ние ќе треба да се нурне во низи, функции, и командната линија аргументи, што е она што вие момци се опфатени минатата недела во предавање а потоа Понеделник, и она што ќе ги покрие повеќе од утре. А потоа конечно, ние ќе да се зборува за pset2. Ако би можел да добие со кревање раце ако не погледнав на проблемот сет две спецификација. Ние ќе каже секого. Фантастично. Ние ќе разговараме за проблемот поставува во малку, но ако ја прочитате проблемот сет спецификација, тоа е сите што треба да направите. Ако читате дека пред да дојде до класа и делот во вторникот, ќе биде голема позиција. Можеме да одиме преку проблемот собата, што е она што ние ќе да се направи на крајот. Ние ќе треба да поминат низ логиката, бидете сигурни секој е на истата страница. Сакам да биде во можност да ја напушти вторник чувствувајќи се многу удобно со она што го треба да се направи за проблемот сет оваа недела, и ако не, јас ќе среќно остане после и да работат со вас. Но, тоа е едно нешто што треба да се се направи, но мислам дека ќе биде навистина паметни, само да го прочитате проблем сет спецификација од страна на класа во вторникот, кој звучи како многу од вас момци го. Ќе почнам со агенда секоја класа па да знаете каде одиме. Ова е исто така корисен за луѓе гледаат онлајн, бидејќи секој дел Боја кодиран, па ако сакате да дојдете назад и само да се види 10 минути, а од целото 90-минутната секција, можете само може да оди на боја кодирани секција и гледам во тој дел. Па јас сум се обидел да ги раздели во Ница модули кои ќе ви овозможи да - ако сакате да се врати и да видиш, или други студенти кои се само гледајќи дел за да видиш - да го најде специфичниот нешто што тие сакате да се обрне внимание на и да научат повеќе за него. Слатка. Норми. Јас сум лидер ФОП на кампусот. Јас не знам дали некој го ФОП. Дали некој направи ФОП? Едно лице не ФОП. Двајца луѓе не ФОП. Страшни. Па ФОП е прва година на отворено Ориентација програма. Земаме бруцоши во шумата и да повеќето магичен искуства на нивните животи, точно? Да. Звуци за право. Па јас само сакав да се започне нашата прва делот со разгледување на некои норми за класата и нашиот однос бидејќи мислам дека тие се многу важни. Прво и основно, како оние од вас кои се мојот дел се добиени и беше разговарано во кои e-mail, јас го сакам тоа. Ова е мојот омилен дел од годината. Сум бил толку возбуден. Сум бил тука со часови денес. Јас не го напуштиле овој објект, освен да одат јадат затоа што сакам CS50 дел, љубов настава, сакам работат со вас момци. Еден од моите приоритети, ако не ми број еден приоритет, не само за оваа класа, но вклучувајќи ја и мојата други класи и extracurriculars, е да се поддршка на вас момци, и ќе ви помогне момци, и дадам се од себе за да бидете сигурни дека ќе момци имаат прекрасен, забава, продуктивни, ангажирање, возбудливи искуство во оваа класа. Тоа е она што јас сум посветена. Тоа е зошто јас сакам да го направам ова. Тоа е мојот број еден работа, можете поддршка момци. Ако имате било какви прашања во врска со предавање, проблемот собата, дел, живот, дури и ако сакате да се зборува за живот, ве молиме да се чувствуваат слободни да допрат. Имаш мојот мобилен телефонски број, имаш мојот е-мејл адреса, ја имате мојата Gchat. Можете да ме контактирате во било или сите од оние кога, но веројатно нема да добие одговор кога. Се обидувам и да се вратат во рок од 24 часа. Честопати тоа ќе биде во рамките на 20 минути или 24 минути. Јас треба да се рече дека да се направи паралела. Но ќе се добие одговор прилично брзо. Ако мене ме Текст еден час пред Проблемот сет е поради, јас ќе ви ги смири надолу и направи длабоко дишење вежби со вас, но ако не се започнати, ти си веројатно нема да заврши, и Јас навистина не може да ви помогне таму иако јас ќе се обидам мојот најдобар. Па јас ќе стори сé што е Јас да може да ви помогне. Ве молиме слободно да допрат дали тоа е во делот повторно, во Работно време ако ме види, па дури и надвор. Јас сум среќен да се постави време за да се исполнат и работа преку проблеми со или одат над материјал. Па тоа е број еден, поддршка. Јас ќе направам сè што да може да ви помогне. Број два, на состанокот во средината. Колку што јас би сакал да биде, јас сум не е семоќна или семоќен или сите знаат, па јас не знам сите време, ако она што го правам е добивање на среќаваме, ако начинот на кој јас сум предавање на тема ви помага да го дознаат, или ако се збунети на тема, но не подигне својата рака или да го замолите мене или пратете ми е-маил. Или дури и ако, пак, се збунети за нешто во врска со проблемот во собата. Ако не допре до мене, Не можам да знаете дека за сигурен. Одам да дадам се од себе за да се провери во на вас момци, бидете сигурни дека сè е одвиваат добро, обидете се да ги учат работите на некој начин која ќе биде погодна за повеќето од Вашиот стилови на учење, но ако има нешто можам да направам, да ме известите. Заедно оние линии, ако сакате некаква помош со проблемот во собата, јас сум повеќе од среќни да ви помогнат со проблемот во собата. Ние ќе треба да направи многу дека кон втората половина од оваа секција. Но, ако не сте ги прочитале на проблемот поставува врати и не гледав прошетка преку и не гледав шорцеви и очекуваме ми да ви ги учат сето она што е videotaped онлајн или кои можете да ги најдете во CS50 студија, тоа не е навистина фер да се мене или до другите врсници. Затоа ве молам, јас сум повеќе од среќни да ви помогнат вас, но вие момци морате да се запознае со мене во средината. Имаме тони на ресурси за можете достапни на CS50. Јас спомнав некои од нив. Ве молиме да ги искористат предностите од нив. Ако сте збунети, јас сум повеќе од среќен да ви помогне да ги објасни во друг начин, но тоа не е фер ако студентите се појавиш на работното време, не почна ништо, а тоа е Четврток вечер и тие се очекуваше на ТФ да ги прошетка низ секој нешто за проблемот постави поради на пладне следниот ден. Смисла? Повторно, ве молиме задоволи ни во средината. И, конечно, со високи очекувања. Одам да биде оценување секој кој е во мојот дел, или постигнувајќи вашиот Проблемот комплети. Не сте го вратиле проблем постави нула или еден уште. Ние сме жал за тоа. Ни требаа некое време конечно да реши делови, а сега можеме да почнеме оценување. Јас ќе им се вратам на вас што е можно поскоро. Тоа се некои од моите advisees таму. Јас ќе им се вратам на вас што е можно поскоро. И за проблемот сет две, ќе биде на распоред и ќе почнеме да се натераат да ви прилично брзо по ќе ги претвори внатре Кога ќе го добиете вашиот проблем поставите назад, можете ќе добиете резултати, како што знаете од читање на наставната програма - коректност, дизајн, обемот и стил резултати. Вие исто така ќе добие коментари. Коментарите се поважни од оценките. Мислам дека тоа е безбедно да се каже тоа. Резултати се само број од една до пет. Тоа е тешко да се прочита во нив. Тешко е да се подобри од оние. Туку коментарите ќе укаже специфични работи си направил добро или области можете да се подобри на и да ви даде некои идеи за иднината или алтернативни начини на вршење на работите. Затоа ве молам, ве молам, прочитајте преку коментари. Јас вложувате време во овие коментари. Прошетајте низ нив и не само движете надолу кон дното на PDF, барате вашиот резултат, или одат онлајн, и да се најде вашиот резултат, и потоа игнорирајте коментари. Тоа не е како сте ќе се добие подобар. Тоа не е како ви се случува да се зголеми вашите резултати на крајот, само од страна гледајќи во оценките. Ве молиме да се погледне во овие коментари. И по должината на линијата на големи очекувања, повторно, како што реков, можете може да се постигнат од една преку пет. Twos, тројца, и четири се Огромното мнозинство на резултати ви се случува да бидат намалени. Оние кои и петки и двајцата се навистина ретки. Секогаш има работи можеме да направиме подобро. Секогаш кога ќе шифра A програма, има секогаш нешто што би можеле да имаат направено подобро. Така, наместо велејќи дека ќе добие пет цело време на сè и не сето совршен, јас не мислам дека било од нас навистина веруваат дека ние - или се надевам, ние не стори сé што е пречека сите на време. Па не се загрижени ако не добие пет. А пет не планирам излез на А, четири не планирам врз Б, три не не мапа врз Ц Тоа не е како резултати работат. Како Дејвид изјави дека многу пати, во семестар крајот на сите ваши резултати и влез од мене, вашиот ТФ, доаѓаат заедно и да се утврди конечната оценка за вас. Но, повторно, тоа не е пет, А, четири, Б, и така натаму. Па јас ќе одам да имаат високи очекувања за вас момци. Одам да очекуваат добар проблем поставува и јас ќе одам да даде можете повратни информации како таква. И тоа нема да значи дека сте ќе добие уште полошо одделение. Ќе се оценува во однос на вашиот напредок од недела нула за крајот курсот. И, конечно, во однос на високо очекувања во класа, сакам кога луѓе учествуваат. Јас разбирам некои луѓе се чувствуваат повеќе или помалку удобно учествуваат. Други луѓе се вклучени не со зголемување на нивните рака и зборувам цело време. Но, ние во оваа класа ќе бидат прават многу мали проблеми, многу на мини прашања, а потоа некои поголеми кодирање проблеми. Па дефинитивно работат овие вежби надвор кога ќе им го правите на Вашиот компјутер или на лист хартија. Но јас, исто така, ќе ви даде некое време пред некој некогаш мора да одговори на некои на прашања прашувам. Па затоа јас ќе ви даде некое време да се размислите околу тоа, бидејќи ние ќе да се прават работите во партнери понекогаш, Јас ќе очекуваат сите да бидат ангажирани малку. И поради недостаток на подобар термин, таму најверојатно ќе биде ладно повик, кој е местото каде што сите ќе имаат шанса да се размислува за одговорот, а потоа Ќе му се јавам на вас, а потоа ќе каже одговорот. Не грижете се или ќе бидат исплашени за тоа. Сум го направи во минатото и ние Наидовме дека тоа е многу поуспешна, исто така, прочитајте образовни истражувања на него за да утврди дали или не тоа беше добра тактика. Тоа е многу корисно, особено ако им даде на студентите време да се размислува за одговори и не ги прават само дојде надвор и го кажам право надвор од лилјак. Но, ако не се чувствуваат удобно одговарање, јас сум исто така доста добар во Чувствувајќи дека надвор, и ние нема да стави сте на самото место, на особено камерата, иако никој од вие сте на камера во моментов. Значи тоа се норми што го имам. Уште една работа по должината на линиите на состанокот во средината. Одам да ви даде момци многу повратни информации. Те молам дај ми фидбек, како и. Има еден веб-сајт, sayat.me/cs50. Така, тоа е чесен повратни информации. Ако сакате да го даде за време на секција, Јас добиете е-маил кога тоа се случува. Ние ќе се одмори во малку, па ќе се се погледне преку повратни информации тогаш. Ако некогаш имате било какви повратни информации, Ве молиме да ја даде на мене. Ако ми дадеш повратни информации за П, тоа е прекрасно, но тоа е водич што правиш на крајот. Но, тоа ќе биде на крајот семестар така Јас не ќе бидат во можност да се земе било кој од кој повратни информации и да ја претвори во настава вие момци подобро. Затоа ве молам, ако имате било какви повратни информации, да го даде на мене. Сакам повратни информации. Вратете се на ФОП, ние се добие повратна информација цело време. Може да ми даде предности, добри нешта, делти, нешта што може да се подобри по. Можете да коментира за моите тимови. Тоа нема да биде толку корисен, но ти си добредојдени да се коментира за тоа каква и сè. Ве молиме, молам дај ми фидбек. Јас го цениме многу и тоа значи многу за мене. Уште една норма, забава. Ние ќе треба да имаат многу забава. Се надевам дека во овој курс, ќе имаат многу забавно. Ние ќе мора бонбони на секција. Ние ќе мора музика. Ние ќе се надевам да се запознаеш со еден уште нешто добро, па сакам ова да биде забавна, ангажирање искуство. Знам дека некои од вас имаат заспана во предавањата сте имале порано и денес, па се надевам дека ќе не да биде случај сега. И ако тоа е случај сега, само не 'рчи, бидејќи тоа може бидат фатени на камера. Слатка. Било какви прашања, коментари или прашања пред јас да се движат на околу ништо што ние сме зборуваше за? Одлично. Па ние ќе да се оди во низи во прв план. Ова е како да се направи низа. Ние сме виделе досега. Имате тип на податок, имате име, а потоа имате големина. Токму тука, јас создаде две низи. Првиот е низа од карактери, и има 26 простории. Вториот е низа на композиции, и тоа има три простори за три цели броеви. Да? СТУДЕНТСКИ: Дали сите овие слајдови располагање некаде за нас? ЈАСОН Hirschhorn: Велики прашање. Прашањето беше, сите се на овие слајдови на располагање? Да. Сите овие слајдови ќе биде достапен, и во иднина, јас ќе ги e-mail на можете пред секција. Но, денес, затоа што ова е првиот недела, имавме крајот на проектот. Па обично, ќе добиете овие слајдови, но тие ќе бидат достапни на интернет и Јас ќе ги мејл за да ви веднаш по класа. Било какви други прашања? Значи, повторно, низи се кутии, поради недостаток на подобар збор, кои имаат повеќе елементи на еден тип на податоци, и тие се до еден на друг во меморијата. И така еднаш, ова е како можете да направи два вида на низи. Па откако сте направиле вашиот низа со дека првата линија - ИНТ резултати, држач три, блиску заграда - вие сакате да се иницијализира. Сакате да се стави некои вредности во таму. И ова е како да се стави некои вредности во таму, само изборот на indice и пишување на број. Ајде да се подготви овој на табла. Секој може да се види? Секој може да се види. Слатка. Така што се случува да ми биде низа наречен рејтинг. Како што можете да видите, тоа е големината три. Постојат три кутии во таму. Секој еден може да одговара на она што тип на податочен тип? СТУДЕНТСКИ: Integer. ЈАСОН Hirschhorn: Целобројна во оваа. Ние напиша int композиции, и првиот збор е тип на податоци што се случува да одат во кутии во таа низа. Па јас може да се вклопат три. Зошто имам нула до таму на форумот? Зошто го кажам резултат нула е еднакво на 1? Ме потсетува на вашето име. СТУДЕНТСКИ: Курт. ЈАСОН Hirschhorn: Курт. СТУДЕНТСКИ: Да. ЈАСОН Hirschhorn: Зошто? СТУДЕНТСКИ: Бидејќи првиот индекс е нула, ние почне пребројување на нула. ЈАСОН Hirschhorn: Значи ние почнуваме броење на нула. Тоа е точно во право. Ова е збунувачки дел и волја патување те, особено кога сте се обидува да iterate преку низи, што ние ќе направиме во малку. Ние почне пребројување на нула. Па ако сакам да се однесуваат на првиот кутија, тоа не е кутија еден. За жал, тоа е кутија нула. Вториот е кутија една, и во овој случај, третиот е кутија две. Што е со кутија три? Каде е кутијата три? Или ако сакам да направам резултати, држач три, блиску заграда, што е тоа? Па ти рече дека нула карактер. Сите други мисли? Она што е резултат заградата три заградата? СТУДЕНТСКИ: Тоа навистина не постои, бидејќи можете само дефинирана како резултати, заградата три. ЈАСОН Hirschhorn: Значи велиш тоа не е навистина постои. Во некои случаи, кога ние сме се занимаваат со стрингови, генерално ќе се стави нула карактер на крајот. Ние ќе дојдеме до дека во една секунда. Но, во овој случај, постои трета кутија тука. Па во последните кутија во која било низа е големината минус 1. Значи, ако имаме низа од големината n, првата кутија е на нула, а последната е од n минус 1. И во овој случај, тоа не постои. Има нешто тука во меморија, но тоа не е наша. Ние не го поседува. Ние не не праша за тоа. Значи, ако ние се обидуваме да го пристап, кои ќе стори во малку, ние сме веројатно нема да невоља. Во овој случај, јас сум иницијализацијата ми низа со три променливи. Ние сме ставање на еден во кутија нула, две во кутија една, а три во кутија две. Дали некој има било какви прашања за иницијализацијата низа? Па отидовме во текот на овој само сега. Резултати, држач три, блиску заграда, дека не постои. Ние сме нула индексирани во компјутерски науки, па ние почне пребројување на нула. Последната кутија достапни за нас, тоа е третата кутија, но тоа се вика кутија број два. Долу, ова е алтернативен начин на иницијализацијата низи. Така, наместо на создавање на низа на една линија, пополнување на првата кутија, а потоа втората кутија, а потоа третата кутија, можете да го направите сето тоа во една линија. Па во таа линија, двете низи. Ова создава истата точно низа како она што ние направивме токму тука, но тоа само го прави тоа во една линија. Сега ние направивме нашата низа. Обично откако ќе се создаде низа, може сакате да направите нешто со него, без разлика дали тоа е тоа пополнете или се работи надвор од неа и да ги испечатите на екранот. Во овој случај, ние сме минува низ нашата резултати низа, која ние се иницијализира на на првата линија до тука во сива боја. А потоа на втората линија, ние почнуваме процесирањето преку низа. Дали некој има било какви прашања во врска со структурата на за телефонска линија? Па ова е за телефонска линија. Ние имаме првобитна состојба, а потоа нашата крајна состојба, а потоа ние iterate, јас, секоја јамка. И во кадрави загради во оваа за јамка, што ќе се случи ако јас се да се кандидира оваа програма? Некој може да ми каже што ние ќе добијам? [? Matu? ?] Matu: Печати ги сите резултатите на секоја линија. Тоа ќе се печати секој резултат на посебна линија. ЈАСОН Hirschhorn: Што точно тоа ќе се печати? СТУДЕНТСКИ: Тоа ќе испечати по еден, потоа две, а потоа три. ЈАСОН Hirschhorn: Токму така. Тоа ќе печати, а потоа две, потоа три, секоја на одделни линии, затоа што ние сме минува низ низа и ќе види дека вториот, на printf изјава, резултати i. Па на првиот круг преку нашите за јамка, јас еднаква на нула, што значи ние сме добивање на вредност на резултат нула - кои, ако ние се вратиме на нашите дијаграм, е една - и пополнување - ох, се вели в. Кои треба да бидат% d. Јас ќе го поправи тоа во малку кога Јас раката што надвор за да ви момци. Но, ние сме презентирање на цел број така што треба да бидат% d токму тука, не% c. Што е% c за? СТУДЕНТСКИ: карактер. ЈАСОН Hirschhorn: карактер, точно. Што е другиот? Ако не сакате да го направите% d за цел број, што друго можете да направите? СТУДЕНТСКИ: i. ЈАСОН Hirschhorn:% i, точно. Значи какви прашања во врска процесирањето преку низа? Значи она што се случува ако го правиме тоа? Наместо да го прават i е помал од три, ние можам е помалку од или еднакво на три. Што се случува кога ќе ја извршите оваа код? Да, Ени? СТУДЕНТСКИ: Тие се случува за печатење чудни работи на четвртата линија. ЈАСОН Hirschhorn: Значи ти рече, тоа е случува да испечатите чудни работи на четвртата линија? Дали некој има одговор да нејзиното прашање? Па шансите се дека кога ние дојдеме до - па на четвртиот круг преку нашите за јамка, исто како што мислев, Ени, тоа ќе биде голем заградата три, кои ние сме веќе сфатиле не постои, а ние ќе се обидеме и пристап до тоа, печати надвор, користете некој начин. Така што компјутер веројатно ќе се налути на нас. Ти си точно во право. Тоа би можело да ја завршите програмата заедно. Тоа би можело да испечатите нешто навистина чудно. Вие не може да се каже со сигурност. Шансите се тоа најверојатно ќе се налути на вие и само да престанам веднаш. Но, ова е честа грешка ќе имате каде сте само надвор од една во На крајот, и ова е бубачка дека ќе мачат вас во текот на вашиот кодирање. Еден начин ми се допаѓа да направите е само на таблата, да помине низ секоја итерација од циклусот на рака или на хартија за да ја видите она што се случува, а потоа ќе генерално се реализира, чекај, јас не треба да се качил на помала или еднаква на три. Јас требаше да го сопре на две, што е она што се случува ако вашата состојба е помалку од три. Било какви прашања досега? Слатка. Така што сите имаат вашите компјутери отворени. Ние ќе ви даде 02:58 минути за да се напише програма која создава низа со цели броеви еден преку пет, а потоа печати секоја цел број во нов ред. И ако имате било какви прашања, подигне својата рака. Јас сум среќен да се дојде од. Како што реков, ајде да ги трите минути да ја напишам оваа. Е секој ред ако одам на нов прозорец и да го затвори ова? Жал ми е ако не сте имале шанса до крај, но ние ќе треба да го направи тоа заедно токму сега. Па на екранот, имам # include cs50.h, # вклучуваат stdio.h. Некој може да ми каже што овие две линии направам? Мајкл? СТУДЕНТСКИ: Тие вклучуваат библиотеки дека CS50 направени и дека Стив има снимени за вас да се користи за направат вашиот живот полесно. ЈАСОН Hirschhorn: Значи ти рече тие вклучуваат библиотеки, оној кој CS50 направени, cs50.h, и оној што е само стандард, доаѓа со пакетот Ц, stdio.h. Што сакаш да кажеш вклучуваат библиотеките, иако? Можете да бидете малку поконкретни? СТУДЕНТСКИ: Тоа го прави така што ќе може користат одредени кодот зборови да имаат функционира случи без да одат и направи функција в себе. ЈАСОН Hirschhorn: Може да ви ми даде пример? СТУДЕНТСКИ: Како printf е една можете да го користите. ЈАСОН Hirschhorn: Printf. Па ти рече printf е еден од оние функции каде што наместо да пишуваат printf на свој, printf е вклучени всушност во stdio.h, така што само може да го користи и да се претпостави дека тоа ќе работат. Во stdio.h, ако отвори таа датотека, тоа ќе вклучуваат како printf дела, сите на кодот за printf? Зошто сте тресење вашата глава? СТУДЕНТСКИ: Бидејќи хедер датотека само вклучува функцијата декларација. ЈАСОН Hirschhorn: Токму право. Хедер датотека само вклучува функција декларација. Значи, во основа, кога ќе се собере, хит Направете грофот, која ќе го направи во Вториот, компајлерот знае дека ако го користите printf, printf постои. Тоа се случува да се дефинира некаде. Тоа не е проблем за вас да го користите. А потоа подоцна, тоа ќе го вклучите оние кои и нули, кои всушност ги содржат printf е имплементацијата и се спојат нив со вашиот код. Како да бидете сигурни дека тоа го вклучува оние кои и нули за, да речеме, да добијат стринг? СТУДЕНТСКИ: Земете стринг е во cs50.h. ЈАСОН Hirschhorn: Право. Така што вели добијат низа постои, функција декларација. Но, тогаш на оние кои и нули, бинарната датотека која всушност ги вклучува имплементација на Get стринг? Како да бидете сигурни дека оди со вашата програма? СТУДЕНТСКИ: Лозинка linker во на командната линија аргумент. ЈАСОН Hirschhorn: Лозинка linker во командната линија аргумент. Како го правиш тоа? СТУДЕНТСКИ: Тоа е-ј линија во ѕвекот ЈАСОН Hirschhorn: Токму право. Велиш-л cs50, нели? Кој ги вклучува оние кои и нули. СТУДЕНТСКИ: Но Направете го прави тоа за вас, нели? ЈАСОН Hirschhorn: Токму така. Направи го прави тоа за вас, но на крајот, не сте ќе се направи, или ќе мора да се направи Направете на свој, така што е Добрата работа е да се запамети. Ако си одеше да користите една од овие други библиотеки, не само што ќе имаат да се напише # вклучи и тогаш библиотека. Исто така ќе треба да ја водат внатре И тие две работи се различни. -Л cs50 е различен од # вклучуваат cs50.h. Тогаш имаме int главната неважечки големи загради, и сега ние ќе код внатре главната. На првата линија имам тука е коментар која вели, се создаде низа со ints една преку пет. Што е добар збор за да се опише она што јас имаат право сега на екранот, само коментари внатре Главната? Што ние го нарекуваме тоа? СТУДЕНТСКИ: pseudocode. ЈАСОН Hirschhorn: pseudocode. Ви благодарам, Џефри. Тоа е точно во право. Pseudocode. Дали сте момци се гледа pseudocode и пред тоа? Кренете рака ако сте користеле pseudocode пред проблемот се постави еден. Околу половина од вас. Јас високо ќе им препорачаат на користење pseudocode да се прекине проблеми во помали, повеќе лесно да отхапвам парчиња. Исто така, ако го направите pseudocode, можете Нека вашите коментари бидат веќе во голема мера изградена во, така да не мора да се врати се назад и обидете се да дознаам она што го правевте. Значи некој може да ми даде оваа прва линија да се создаде низа со ints еден преку пет? Вас? СТУДЕНТСКИ: инт а потоа можете да се јавите без оглед на бројот, а потоа плоштад заградата пет. ЈАСОН Hirschhorn: Значи int броеви, квадратни загради пет. СТУДЕНТСКИ: еднакво, и тогаш големите загради. ЈАСОН Hirschhorn: еднакво, кадрави загради. СТУДЕНТСКИ: Еден, два, три, четири. ЈАСОН Hirschhorn: Еден, два, три, четири, пет. СТУДЕНТСКИ: И тогаш големите загради а потоа запирка. ЈАСОН Hirschhorn: И кадрава протези и точка-запирка. Одличен. Печати од секоја int во нов ред. Некој друг може да даде мене тој код, ве молам? [? Matu? ?] Оди напред. СТУДЕНТСКИ: За ( ЈАСОН Hirschhorn: За ( СТУДЕНТСКИ: int i = 0 ЈАСОН Hirschhorn: int i = 0 СТУДЕНТСКИ: Точки и запирки з помалку од пет. ЈАСОН Hirschhorn: точка-запирка, з помалку од 5. СТУДЕНТСКИ: Точки и запирки, i + +. ЈАСОН Hirschhorn: Точки и запирки, i + +. СТУДЕНТСКИ: Затворено загради, потоа отворете голема заграда. ЈАСОН Hirschhorn: Затворено загради и две загради. Внатре во загради? СТУДЕНТСКИ: И тогаш printf "% d / n" ЈАСОН Hirschhorn: За жал, се издржи. Printf "% d / n, затворен цитат. СТУДЕНТСКИ: И потоа затворен цитат, запирка, брои, заградата јас. ЈАСОН Hirschhorn: запирки, брои, заградата јас. СТУДЕНТСКИ: За жал, броеви заградата јас. ЈАСОН Hirschhorn: Броеви, заградата јас. СТУДЕНТСКИ: Извини. А потоа затворен загради, точка-запирка. ЈАСОН Hirschhorn: Затворено загради, точка-запирка. Одам да се спаси. Ние ќе се направи брои. И како можам да се кандидира брои? СТУДЕНТСКИ: обратна коса црта. СТУДЕНТСКИ: Дот напред коса црта - ЈАСОН Hirschhorn:. / Избројат, точно. Ви благодарам. . / Се брои. Еден, два, три, четири, пет нови линии. Изгледа како да работел. Да, Ноа? СТУДЕНТСКИ: Можете исто така можеше да стори помала или еднаква на четири, како што е помалку од или еднаква на четири? Дали има некој предност да прави помалку од пет, или само поинаков начин на пишување на тоа? ЈАСОН Hirschhorn: Значи, прашањето е што би можеле да имаат направено i е помала или еднаква на четири, наместо на i е помал од пет. Би кои работеле на истиот? СТУДЕНТСКИ: Тоа треба. ЈАСОН Hirschhorn: Да. Таа целосно се ќе работи на истиот. Стилски, тоа е генерално се помалку од, и ќе видите во секунда кога ние се стрингови, можете да го користите нешто наречен strlen, кои сте виделе пред, за да се добие на должина на стрингот. И не можете да го направите помалку од или еднаква strlen. Можете да го направите помала или еднаква strlen минус еден. Па тоа е само поубаво да направи помалку од strlen. Да? СТУДЕНТСКИ: И во конкретната квизови, направете го ние мора да обезбеди коментари за нашите код, како? ЈАСОН Hirschhorn: Прашањето беше во квизови, дали мора да обезбеди коментари? Па ние ќе разговараме повеќе за квизови кога тие доаѓаат, но генерално, е добра правило е секогаш кога сте пишување на код, да обезбеди коментари. Ако добиете код погрешно, но на коментира право, може да се добијат некои кредитни и од мене, ако јас бев оценување ви на проблемот во собата или на квизот. Па коментари се секогаш добро да се обезбеди. Слатка. Смета. Одлична работа. Ајде да се движат натаму. Жици. Жици. Ние сме виделе ова пред на предавање. Ова дувна мојот ум кога Првиот најдов ова. Тоа веројатно не воодушеви никого ум тука, но тоа е во ред. Стрингови се низи од карактери, и тие завршуваат со, како што реков претходно, на нула терминатор, која е ова / 0 лик. Ако сакаме да се подготви во низа на одборот, ние ќе го нацрта тоа овде. Значи колку е долг овој стринг? Жал. Колку е долг овој стринг? СТУДЕНТСКИ: [нечујни]. ЈАСОН Hirschhorn: Четворица? Зошто е четири? СТУДЕНТСКИ: Бидејќи петото место е за ништовни карактер. ЈАСОН Hirschhorn: Значи петото место е за ништовни карактер. Значи, ако јас требаше да се кандидира strlen на ова, тоа ќе ми даде четири. Поправи. И на низа, иако, ако јас се да иницијализирате овој низа, колку простори Јас ќе мора да побара? СТУДЕНТСКИ: Пет. ЈАСОН Hirschhorn: Пет. Јас ќе треба да прашам за пет, но можам само стави четири карактери овде затоа што треба да се стави дека нула терминатор на крајот. Па ние ќе да се напише во "ohai" и стави null терминатор во на крајот. Ние ќе кажам дека ова е низа Додади еднакво ова. Она што е на заградата нула? Додади заградата нула, Ени? СТУДЕНТСКИ: О ЈАСОН Hirschhorn: О, точно. Додади заградата еден? Додади заградата пет? Додади заградата пет? СТУДЕНТСКИ: Не постои. ЈАСОН Hirschhorn: Не постои. Точно во право. Кул. Какви прашања во врска разбирање низи како низи од карактери? Во ред, тогаш. Уште една програма за вас момци. Напишете програма која го прашува корисникот за низа тогаш отпечатоци од секоја карактер на нова линија. Па ајде да три минути да се напише оваа програма, а потоа ние ќе го кодот како група. Жал. Дали треба да се види ова? СТУДЕНТСКИ: Не ЈАСОН Hirschhorn: OK. Да го земеме уште една минута да се код ова, или барем да започнете на неа. Па можете да продолжиме да работиме, но јас ќе одам да се започне минува низ неа. Па како порано, јас имам на екранот # Вклучуваат cs50.h, # вклучуваат stdio.h. int главната неважечки. Внатре големи загради главната е, јас имам два коментари, pseudocode. Една од нив е да побара низа од корисникот. Вториот е печатење на секоја карактер на нова линија. Така Ана може да се даде мене ме прашувате за низа од корисникот? СТУДЕНТСКИ: Printf. ЈАСОН Hirschhorn: Printf? СТУДЕНТСКИ: Да. ( ЈАСОН Hirschhorn: ( Студент: "ми даде стринг. ЈАСОН Hirschhorn: "даде ме ул - Упс - стринг. СТУДЕНТСКИ: / л ") запирка. ЈАСОН Hirschhorn: крај на стрингот, затворена заграда, точка-запирка. СТУДЕНТСКИ: Да. А потоа следната линија, стринг s = добиете стринг. ЈАСОН Hirschhorn: Стринг s = добиете стринг. СТУДЕНТСКИ: Да. И тогаш () ЈАСОН Hirschhorn: () СТУДЕНТСКИ: Точки и запирки. ЈАСОН Hirschhorn: Точки и запирки. Фантастично. Па ќе одам да се добие стринг и Одам да го зачувате во што? Што е променлива наречена кои сте ги креирале? СТУДЕНТСКИ: Стринг а. ЈАСОН Hirschhorn: Променливата се нарекува s. Тоа е тип стринг. Токму така. Следното нешто што сакате да е печатење секој лик во нов ред. Кој може да ми даде овој код? [Нечујни]? Може да го даде за мене? СТУДЕНТСКИ: Секако. ЈАСОН Hirschhorn: Да го сториме тоа. И жал. Не ми се допаѓа да се повторува она што го велат затоа што ти си го добива право, но јас мора да го повтори така што кога ќе транскрибирам тоа, тие може да ги добиете сите од текстот надвор на транскрипции. Така што само може да зборуваме. За жал, морам да се каже тоа над вас. Жал ми е, но - СТУДЕНТСКИ: Тоа е во ред. За int i = 0 ЈАСОН Hirschhorn: За int i = 0 СТУДЕНТСКИ: Јас помалку од - ЈАСОН Hirschhorn: Точки и запирки. СТУДЕНТСКИ: Пред ова, ние може да се стави променлива, па ќе го добиете int име должина? ЈАСОН Hirschhorn: О, вие не сакате да стави точка-запирка? OK. Па што сакаш да правиш, откако нула? СТУДЕНТСКИ: Сакам да го добиете стринг должина на s и сет кој на променлива? ЈАСОН Hirschhorn: Добро, па како да го направам тоа? СТУДЕНТСКИ: Така ли int должина = ЈАСОН Hirschhorn: инт должина = СТУДЕНТСКИ: S-Т-Р-Л-Е-Н. ЈАСОН Hirschhorn: S-Т-Р-Л-Е-Н - СТУДЕНТСКИ: на С. Голема заграда. ЈАСОН Hirschhorn: (а). СТУДЕНТСКИ: И тогаш мислам дека треба да се стави запирка помеѓу двете ints. ЈАСОН Hirschhorn: А точка и запирка по нула? СТУДЕНТСКИ: Да. Тогаш стави точка-запирка после тоа, а ти што велиш, јас помалку од должина. з помалку од должина, што е променлива. СТУДЕНТСКИ: И тогаш запирка. ЈАСОН Hirschhorn: Точки и запирки. СТУДЕНТСКИ: i + +. ЈАСОН Hirschhorn: i + +. Таму е нашата за телефонска линија. Добро, во внатрешноста на за телефонска линија. СТУДЕНТСКИ: И тогаш printf. ЈАСОН Hirschhorn: Printf. СТУДЕНТСКИ: голема заграда. ЈАСОН Hirschhorn: загради, наводници. СТУДЕНТСКИ: загради, наводници,% c / n. ЈАСОН Hirschhorn:% c, ОК. СТУДЕНТСКИ: / n. ЈАСОН Hirschhorn: / n. СТУДЕНТСКИ: Затворено цитати. ЈАСОН Hirschhorn: Затворено цитати. СТУДЕНТСКИ: запирки. ЈАСОН Hirschhorn: запирки. СТУДЕНТСКИ: С ЈАСОН Hirschhorn: С СТУДЕНТСКИ: Држач јас. ЈАСОН Hirschhorn: Држач јас. СТУДЕНТСКИ: И потоа затворена заграда. ЈАСОН Hirschhorn: Затворено загради. СТУДЕНТСКИ: И тогаш запирка. ЈАСОН Hirschhorn: Точки и запирки. Фантастично. Па ајде спаси ова. Направи магија. О момче. Имам неколку грешки. Првата грешка на линија 11, што се вели, очекува израз, а тоа е давање на мене грешка дека вториот int, тука е грешка. Постојат некои грешка околу таму. Дали некој знае она што грешка е тоа? Курт? Студент: Мислам дека би требало да да биде запирка и не точка-запирка. ЈАСОН Hirschhorn: Добро, се става запирка наместо на точка-запирка. Така е дека сите ние треба да се поправи? СТУДЕНТСКИ: Не ЈАСОН Hirschhorn: Што друго ние треба да се поправи? СТУДЕНТСКИ: Ние мора да вклучуваат string.h. ЈАСОН Hirschhorn: вклучи string.h. Каде ми е потребно да се вклучат тоа? СТУДЕНТСКИ: истото место сте вклучувајќи на други работи, право по вклучуваат stdio.h. ЈАСОН Hirschhorn: Ајде да видиме дали ова работи Прво, бидејќи генерално, ми се допаѓа за да го надминете едно нешто прво, а потоа се кандидира неа, а потоа ја видите грешки добиеме. Па ние ќе да се расчисти терминал со контрола n, ајде да го прават магија. Значи уште една грешка на линија 11. Очекува запирка. И јас сум уште добивање грешки на оваа линија. Па тоа не ми даде грешка велејќи дека тоа не се разбере она што strlen е, но тоа е ми дава грешки на овој линија, така што друго не е во ред? Одбележи? Маркус. СТУДЕНТСКИ: Дали треба да ги отстраните вториот int декларација? ЈАСОН Hirschhorn: Отстрани вториот Инт. Ајде да се обидеме ова. Сега чистење на терминалот. Направи магија. Грешка. Имплицитно наведува библиотека функцијата strlen. Па сега гледаме дека грешка. Што треба да се вклучат? СТУДЕНТСКИ: String.h. ЈАСОН Hirschhorn: вклучи string.h, Ние ќе направиме # вклучуваат string.h на врвот на екранот. Ајде да се спаси, да пишува. Сега состави. Па уште еднаш, она што ни е потребно да се се сеќавам линија 12 во нашата за телефонска линија кога ние сме го поставувањето, int i = 0, должина = strlen (а). Ова е фантастична стратегија. Стилот на ова е голема, Дизајнот на оваа е одлично. Можеме да одиме во тие причини подоцна, но на овој начин вие само треба да се јавите strlen еднаш, наместо на секој пат кога ќе ја стартувате преку телефонска линија. Меѓутоа, треба да се користи запирка таму и не треба int повторно. Ако сте прогласување и оние променливи заедно, можете не треба int повторно. А потоа, ако си оди за да го користите strlen, што е уште една библиотека функција не се вклучени во stdio.h или cs50.h, бидете сигурни дека го вклучите string.h. Курт? СТУДЕНТСКИ: Па тогаш, ако не треба да се велат каков тип должина е, не дека значи, тоа треба да биде int? Вие не може да има две различни видови постојат? ЈАСОН Hirschhorn: па може да имаат два различни видови. Должина е int тука, иако. Должина е int, бидејќи тоа е запирка а потоа истото. Студент: Значи тоа се претпоставува дека тоа се случува да биде ист како првиот? ЈАСОН Hirschhorn: Токму така. Ние нема да го стори тоа сега, но вие може да вклучува две променливи на истата линија со користење на еден тип на податок. Па int x, y ќе создаде две променливи. Па int x и y, ако се направи тоа, таа дава мене неупотребуван променливата x и y, бидејќи ние не ги користите. Па стави празнина пред е само фенси трик, ако не го користите нешто, да го користам. Но како што гледате, Јас создавам x и y на иста линија со запирка. Тоа е создавање два цели броја право таму. Така да, сосема е можно да се создаде две работи на иста линија одделени со запирка. Ајде да се ослободи од оние, иако. Значи има магија. Ви благодарам момци за кодирање него, за нас. Ајде да се направи тоа уште еднаш, да го стартуваш. Ми даде стринг. [Нечујни], што направи најмногу од него. Што е стринг? СТУДЕНТСКИ: Здраво. ЈАСОН Hirschhorn: Здраво. H-Е-Л-Л-О, секој карактер на една линија. Изгледа одлично. Ајде да се кандидира повторно. Секогаш ќе провери за агол случаи. Што е добар агол случај да се провери? СТУДЕНТСКИ: Голем број? ЈАСОН Hirschhorn: Голем број. Па јас ќе ги ставам во 1, и тоа отпечатоци од 1. Тоа не е барање за писма, па ми се чини дека броеви работа. Добар агол случај да се провери. Она што е уште еден добар агол случај да се провери? Студент: А празна низа. ЈАСОН Hirschhorn: Hm? СТУДЕНТСКИ: Како празен стринг. ЈАСОН Hirschhorn: Празен стринг. Па ајде да не се стави во ништо. И она што добива печатено надвор? СТУДЕНТСКИ: Ништо. ЈАСОН Hirschhorn: Ништо. Се чини како тоа функционира. Вие би можеле да се обидат повеќе агол случаи, но генерално броеви, различни податоци е голема да се обиде, како и не е ништо. Ништо, нула, негативи се секогаш големи нешта за да се обиде и работи што треба тест, работите сигурно ќе се тестира за и Проверете 50 ќе тестира за. Какви прашања во врска spell.c? Добро, ајде да главата назад. Јас имам уште една програма за вас момци да пишувам. Таа се вика students.c. Ова е програма со која го прашува корисникот за пет имиња, а потоа случајно избира и отпечатоци од еден од имиња. Оваа програма е малку повеќе вклучени од последните две што напиша, па зошто да не земеме пет минути за да законик поединечно, а потоа ние ќе законик како група. Оваа програма, исто така, вклучува и некои работи не може да се гледа пред тоа, па ако имате некое прашање во врска со, како да Јас го правам тоа, кренете ја раката. Ќе дојдат и да ви укаже во вистинската насока. Но ние сме, исто така, го прави тоа затоа што ова ќе биде добар начин да се воведат некои теми кои се слабо. Така тоа функционира, нели? СТУДЕНТСКИ: Да. ЈАСОН Hirschhorn: Секогаш кога ќе го вклучите во Проблемот сет, има многу начини да го направите тоа, но некои се повеќе елегантна од другите. Дозволете ни да се нурне внатре # Вклучуваат cs50.h. # Вклучуваат stdio.h. int главната празнина, кадрави загради. Внатре во големи загради, Имам две забелешки. Првиот е, да побара од корисникот за пет имиња. Втората е, случајно изберете и печатење на еден од имиња. Па ајде да направиме првиот, прашајте на корисникот за пет имиња. Кој побара од корисникот за пет имиња и може да ми каже како да го направите тоа? Само двајца луѓе го правеле првиот дел. Три лица го првиот дел. Четири, пет. Том, како да го направам тоа? СТУДЕНТСКИ: Вие ќе прогласи низа а потоа името, држач пет. ЈАСОН Hirschhorn: Стринг именува заградата пет. Значи она што е оваа линија прави, Стринг име заградата пет? СТУДЕНТСКИ: Вие ќе прогласи низа на стрингови. ЈАСОН Hirschhorn: Ова е низа на стрингови. Колку жици се случува да се вклопат во овде? СТУДЕНТСКИ: Пет. ЈАСОН Hirschhorn: Пет. Одличен. Ние ќе го наречеме Имиња бидејќи ние ќе ја добиеме повеќе деца. Добро, следно? СТУДЕНТСКИ: И тогаш имаат за телефонска линија - ЈАСОН Hirschhorn: За јамка. Студент: - за i = 0. ЈАСОН Hirschhorn: за (int i = 0. СТУДЕНТСКИ: Точки и запирки. ЈАСОН Hirschhorn: Точки и запирки. СТУДЕНТСКИ: Јас помалку од пет. ЈАСОН Hirschhorn: Јас помалку од пет. СТУДЕНТСКИ: Точки и запирки. ЈАСОН Hirschhorn: Точки и запирки. СТУДЕНТСКИ: i + +. ЈАСОН Hirschhorn: i + +. СТУДЕНТСКИ: И потоа затворена заграда. ЈАСОН Hirschhorn: Затворено загради, а потоа некои големи загради. Внатре во големи загради? СТУДЕНТСКИ: И тогаш printf. ЈАСОН Hirschhorn: Printf. СТУДЕНТСКИ: Отворен загради, име% d. ЈАСОН Hirschhorn: Молам? СТУДЕНТСКИ: Име. ЈАСОН Hirschhorn: Име. СТУДЕНТСКИ: И тогаш простор, а потоа% d. ЈАСОН Hirschhorn: Име, простор,% d. СТУДЕНТСКИ: И тогаш / n, а потоа затворена. ЈАСОН Hirschhorn: Значи името, простор, % D / n, затворен загради. СТУДЕНТСКИ: запирки, i + 1. Жал ми е. Затворен цитат, а потоа запирка, јас 1. ЈАСОН Hirschhorn: Затворено цитат, запирка, јас 1. СТУДЕНТСКИ: Да. А потоа на следната линија - ЈАСОН Hirschhorn: i + 1. СТУДЕНТСКИ: Да. И потоа на следниот слајд е имиња заградата јас. ЈАСОН Hirschhorn: Следна линија е имиња заградата јас. СТУДЕНТСКИ: = добиете стринг. ЈАСОН Hirschhorn: = добивате - капитал Г-Е-Т - стринг. Упс, извинете. СТУДЕНТСКИ: Отворени и затворени загради а потоа - ЈАСОН Hirschhorn: Отворени и затворени paren. СТУДЕНТСКИ: Точки и запирки. ЈАСОН Hirschhorn: Точки и запирки. Добро, па можете иницијализира низа на стрингови, имиња, и потоа оди преку за телефонска линија, и пет пати печати од некои поттикне на корисникот и потоа продавница пет жици. Дали некој има било прилагодувања за ова? Том, мислам дека сите се согласува со вас. Изгледа прилично добро. OK. Зошто го правам 1, иако? Студент: Мислам, не мора да биде, но јас 1, така што тоа е името на еден да го именува пет. Во спротивно, тоа ќе биде името нула да се именува четири. ЈАСОН Hirschhorn: Значи вие го направив 1 бидејќи во спротивно тоа ќе има отпечатени нула преку четири, бидејќи тоа е начинот на компјутери мислам, но луѓето навистина не чита како тоа. Тоа е друга работа ќе се судрите. Понекогаш кога ќе печати од нешто на корисникот, ќе сакате да го направи тоа малку поубава, и прави i +1 во овој случај е начин да се направи тоа поубава. Јас, исто така види пет двапати, стринг име е пет, i е помал од пет. Знам каде што доби пет. Ти ја доби од мене кажувам можете пет имиња. Но, ако сакавме да го кодот на малку повеќе робусни, едно нешто што можеше да стори е овде, надвор од int, можеме да направиме вакво нешто, # Define, а ние не можеше да стори ИМИЊА 5. Значи, во основа, каде што јас пишувам капитал N, главниот град на А, главниот град на М, капитал Е, Големата С, дека стринг, ќе го замени дека со 5 во кодот. Или ајде да го наречеме - ние ќе само ја нарекуваат БРОЈ. Па јас сум дефинирање сите капи БРОЈ да биде 5. Па сега каде и да имаат број 5, јас може да го замени со сите БРОЈ капи. И сега, ако сакам да го промените бројот на имињата, сите што треба да направите е оваа линија, линија четири, каде што имам # Define број 5, промените кои до 10, или промена која до 4. Кога вашиот код добива подолго, вие не сте ќе се сетам на сите места каде што можете стави колку имиња ти го посакуваше, а во за да можете да не се пропушти една, ова е добар начин да го направи тоа, да се најде нешто до врвот, а потоа само ја користат таа фраза насекаде низ вашиот код. Маркус? СТУДЕНТСКИ: Дали е тоа стилски склопот на од глобално дефинирање на постојана n? ЈАСОН Hirschhorn: Така е тоа стилски најпосакувана од глобално дефинирање на постојана n? Па ти си велејќи дека би можеле да направи, int број = 5? СТУДЕНТСКИ: Дали тие имаат согласки во C или не? ЈАСОН Hirschhorn: Или const - во еднакви. Па ти си велејќи дека само глобална променлива? СТУДЕНТСКИ: Да. ЈАСОН Hirschhorn: Значи стилски, нема нужно во право одговори, но и на оние кои се подобро од само фрлање овие случајни броеви во текот на вашата код. Ги нарекуваме магија броеви. Кога ќе се погледне во вашиот код или кога некој е читање преку неа, тие не сакаат само овие случајни броеви кои не го прават смисла. Дури и бројот 26, кој обично е бројот на букви во азбуката, тоа е подобро да се дефинираат ALPHABET до врвот и зачувување на бројот 26 во тој стринг, ако тоа го прави смисла. Или на проблем постави еден, наместо - повторно, ние не зборуваме за тоа во времето, но наместо само фрлање во 25 секаде или 10, можете да зачувате бројот 25 бидејќи четвртина или 10 како DIME, а тоа го прави полесно за кој е читање преку вашиот код да се разбере зошто ве избрав тој број. А исто така и за вас, ако некогаш сакате да надградба на вашиот код, тоа го прави малку поцврсти. Да? СТУДЕНТСКИ: Дали овој код, исто така, ќе да бидат достапни за нас по? ЈАСОН Hirschhorn: Сите од овие кодови дека имаме напишано заедно се ќе биде испратена до вас момци и располагање. Да. Па побара од корисникот за пет имиња. Случајно изберете и печатење еден од имиња. Кој го направи ова линија? Ова е trickiest линија тука. Жал ми е, Том. Ти го направи навистина добра работа, но ова е малку сложени да ја формира. Marcus, повелете. СТУДЕНТСКИ: Па прво, си оди за да треба да се вклучат stdlib.h и time.h. ЈАСОН Hirschhorn: Значи си ти што зборуваш на на врвот, вклучува уште две библиотеки. Сакаш да вклучуваат С-Т-Д-Л-I-Б точка Ж, стандардната библиотека, и она што беше другиот? СТУДЕНТСКИ: Time.h. ЈАСОН Hirschhorn: # include time.h. Значи овие се уште две библиотеки. Претпоставувам сега ние ќе биде со користење на функции кои се содржани во овие два, која е причината зошто ви се потребни да ги вклучи? СТУДЕНТСКИ: Па тогаш, прво ти си ќе сакаат да пишуваат srand. ЈАСОН Hirschhorn: Srand. СТУДЕНТСКИ: (времето (0) ЈАСОН Hirschhorn: Извини. Srand (време ( СТУДЕНТСКИ: 0. ЈАСОН Hirschhorn: 0. СТУДЕНТСКИ:)), точка-запирка. ЈАСОН Hirschhorn: Уште еден затворени paren? Точка-запирка. Одам да само ја замени Вашиот нула со нула. Тоа ќе го стори во врска со истото, но генерално, ќе видите NULL, кои ние ќе разговараме за ова линија во една секунда. СТУДЕНТСКИ: Стилски подобро? ЈАСОН Hirschhorn: Општо земено, луѓето право NULL, но истото. СТУДЕНТСКИ: И тогаш int име. ЈАСОН Hirschhorn: инт име. СТУДЕНТСКИ: = ЈАСОН Hirschhorn: = СТУДЕНТСКИ: Ранд. ЈАСОН Hirschhorn: Ранд. СТУДЕНТСКИ: () ЈАСОН Hirschhorn: () СТУДЕНТСКИ: modulo број. ЈАСОН Hirschhorn: Што е modulo? Ликот? На проценти карактер? СТУДЕНТСКИ: Процент карактер. Modulo број, кој сте го дефинирале до врвот. ЈАСОН Hirschhorn: modulo БРОЈ. СТУДЕНТСКИ: И тогаш запирка. ЈАСОН Hirschhorn: Точки и запирки. СТУДЕНТСКИ: И потоа нова линија, printf. ЈАСОН 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 е во суштина - Жал ми е, ајде да го прескокнете надолу линија, ранд (). Кој ви дава случаен број, случаен цел број. И ако го погоди човек ранд, која многу од вас не - М-А-Н простор Р-А-Н-Д - во терминал вака, М-А-Н простор Р-А-Н-Д, притиснете Enter. Ќе дојде до прирачникот и ќе бидете во можност да го прочитате дека ранд команда излези num псевдо случаен бајти по засејување на случаен број генератор еднаш. Па тоа е опис. Тоа е она што ранд прави тоа, дава можете случаен број, кога ти се јавам таа функција. За жал, тоа не е навистина случаен избор бидејќи ако само повик случаен избор без добивање на тоа некои семе, некои почетна точка, таа секогаш ќе го избере истиот и тоа го користи формула за да се утврди следниот. Значи, ако ти се јавам ранд, тоа ќе само ви даде истото. Тоа ќе биде многу предвидливи. Тоа всушност нема да биде случаен. Значи она што треба да направам, за на Marcus инструкции за мене, беа семе ранд со нешто друго, што е она што функцијата srand прави тоа. Тоа семиња ранд со нешто малку повеќе случаен отколку истото, и тој не ја засејување со текот на времето NULL, кои е, само со конвенцијата, сегашната време во секунди. Па ти си под претпоставка дека сите не е случува да се кандидира на кодот на Марс истата секунда, па тоа е сигурен облог дека време NULL се случува да се биде различен секој пат кога овој код се извршува. Безбедно обложувам дека со тоа, srand ќе семе ранд со нешто различно секој едно време. Значи со конвенцијата, кога правиме сакаат случаен број, ние пишуваме на оваа линија, srand време NULL, да ни даде многу повеќе случајни семе, а потоа трчаме ранд, што ни дава случаен број. Да? СТУДЕНТСКИ: Можете ли да се каже она што да кажеш со семе? ЈАСОН Hirschhorn: семе, како и во - па ранд се случува да ги собереш некои број и тоа се случува да го користите некои формула за да одам таму. Па затоа се случува да се започне со нешто а потоа ја претвори во нешто врз исклучување на таа формула. Ако секогаш го даде истото, тоа е секогаш се случува да го вклучите во истото. Така што првото нешто што им даде на тоа е семето. Па сакате да го даде нешто различни да се започне со, и така тоа ќе ја претвори во нешто различно. А потоа, конечно, линија 20, овој% се нарекува modulo, а тоа е збунувачки. Тоа е нешто што е малку различни тука дека навистина не би имаат во реалниот живот математика. Но во суштина, кога ќе се земе гигант број и ќе подели во C, она се случува со остатокот? СТУДЕНТСКИ: Станува скратени. ЈАСОН Hirschhorn: Станува скратени. Па 20 поделено со 3 е она? Што значи дека се вратат во ти, 20 поделено со 3. Жал ми е, 10 поделено со 3. Што значи дека се врати за вас? СТУДЕНТСКИ: [нечујни]. ЈАСОН Hirschhorn: 10 поделено со 3 само се враќа 3, Не 3 Остатокот 1. Па што 10 modulo 3 се враќа е само потсетување 1. Па ако си сакал да знам што 10 поделени од 3, всушност, беше, што би направи 10 поделено со 3, ќе ја добиете вашата 3, и тогаш ќе направите 10 modulo 3, и што би се добие 1. Па ќе сфатат дека 10 поделена од 3 е 3, остатокот 1. И во оваа линија, ранд би можело да биде секој цел број, во суштина. Па modulo е велејќи дека, го делат со број, кој е во овој случај 5. И ако некогаш подели со бројот, цел број секогаш мора да биде помала од на тој број. Значи, ако сте делење со голем број 5, остатокот е секогаш ќе биде четири нула преку. Тоа е само како математика работи надвор. Па голем број moduloed со помал број секогаш ќе се врати остатокот и секогаш ќе се врати некои број кој е помал од бројот што поделено со. Дали некој има било какви прашања во врска со modulo, бидејќи тоа ќе дојде во многу, многу корисна, па сакам да бидете сигурни дека сите тоа го разбира? Кул. И видовме дека оваа програма работел. Добро, се движат натаму. Па следниот, ние ќе треба да одат во функции, и ние ќе треба да се оди преку останатиот дел од овој материјал прилично брзо затоа што сакам да се дојде до командната линија аргументи. Па функции се во суштина, како што видовме, црни кутии. Тие ги презеле работите во наречен параметри, тие се направи нешто за нив, или ги промените или создади некои несакани ефекти, и, конечно, тие плукаат нешто, што е на повратната вредност. Некој може да ми даде една причина зошто ние би го користите функции? Никого? Една од причините зошто ние би го користите функции? Некој? Видов две раце. Што е добра причина? Маркус? Студент: Ако треба да се јавите на истиот парче од код повеќе пати. ЈАСОН Hirschhorn: Добро, ако ви треба да се јавите на истиот парче од кодот неколку пати. Џеф, ги имате друга причина? СТУДЕНТСКИ: Само така што можете да го кодот помалку. ЈАСОН Hirschhorn: Можете да кодот помалку. Во право. Ако сакате да се направи нешто многу - во претходниот код, што би можеле да имаат напишано добиете низа пет пати, но на за телефонска линија прави да изгледа поубаво и ќе мора да пишуваат помалку код. Функции се слична идеја. Ако сакам да го прават истото многу, преместете ја во функција и повик дека функционира секој пат. Тоа ќе го направи тоа нешто за вас. Тоа е голема причина да се користи функции. Па анатомија на функцијата. А функција генерално ќе изгледа вака. Тоа ќе се започне со враќање тип, а потоа ќе добиете името. Тоа ќе потрае аргументи, во спротивно познат како параметри, внатре и оние големите загради, да ќе напишете ја вашата код. Видовме една функција многу. Тоа е главната. Тука е главниот надредениот излез дека анатомија имав порано. Што значи int токму тука значи? Што значи int значи? Кога пишувам int главната (празно). СТУДЕНТСКИ: Враќање тип? ЈАСОН Hirschhorn: Молам? СТУДЕНТСКИ: Враќањето тип. ЈАСОН Hirschhorn: инт е врати видот, токму во право. Главната враќа int. Што е главен? СТУДЕНТСКИ: Функција име. ЈАСОН Hirschhorn: Главни е името на функцијата. Точно во право. И неважечки? Што е празнина во внатрешноста на загради? СТУДЕНТСКИ: Тоа не презема било каков надворешен вредност. ЈАСОН Hirschhorn: Значи празнина - во право. Внатре во заграда, ќе стави параметри или аргументи функција се она што оди во внатрешноста на црната кутија. Кога пишувате празнина, си ти што зборуваш ова е потребно ништо внатре Па int главната неважечки значи главните е не земајќи ништо внатре Внатре во големи загради, имаме некои кодот, и тогаш можеме да видиме на крајот се врати нула. Што значи враќање нула значи? Па, ние разговаравме за враќање тип. Главната треба да се врати int. Тоа е она што оваа линија не. Го враќа int, нула. Се разбира, ние не сме виделе дека многу затоа што во програмирање што го правиме со машини што го правиме и на компајлери ние ги користиме денес, можете не треба таа линија. Главните е посебен доволно тоа што знае кога ќе стигне до крајот на главната, само се врати нула ако сето мина добро. Всушност, ако нешто не оди добро, Главната честопати ќе се врати на различни број означувајќи дека нешто беше во ред со вашата програма. Значи генерално, кога ќе видите код, не пишувам враќање нула, но тоа е добро да се знае дека тоа се случува зад сцени бидејќи секогаш кога ќе се напише друг вид на функција, ви се случува да треба да се вклучуваат враќање линија. Ако си ти што зборуваш јас ќе одам да врати int, мора да пишуваат вратат нешто. Ако ви кажам празнина до тука во почетокот, void main празнина, бидејќи пример, тогаш тоа не е враќање ништо - празнина не значи ништо - така да не треба дека враќањето линија. Но некогаш сте се напише нешто, тоа не е поништат за враќање тип, треба линија која вели дека враќањето и треба да се стави нешто таму која одговара на типот. Било какви прашања во врска со тоа? Слатка. Опсегот. Ова е нешто што сум осврна и на, како и. Секоја променлива, како што знаеме, има одреден обем, а тоа е во основа зборува за тоа каде променливата може или не може да се референцира. И ми се допаѓа да се каже она што се случува во големи загради останува во внатрешноста на големите загради. Така на пример, ако се погледне на овој законик, ние сме дефинирање на глобалната променлива надвор од главната, int a, до тука на врвот. Ние сме повикува друг int a внатре главната. Имаме некои повеќе големи загради, и ние сме повикува друг int a. Имаме три во во код. Овие не се иста работа. Јас направивме три различни променливи. Потоа внатре во овие внатрешна кадрава загради, велам = 4. Кој е дека зборуваме, првиот, вториот, или третиот? СТУДЕНТСКИ: На третиот. ЈАСОН Hirschhorn: Тоа зборува за третиот. Сите оние кои една е всушност може да биде зборуваше за во конкретниов пример поради нивниот обем се оди во овие најскриената големи загради. Сепак, кога ќе се јавите работите на истиот име, има нешто што се нарекува крие. Па ти само се справи со или поправат или да користите Најновите променлива, или оној најблиску до вас. Па во внатрешноста тука, овој трет на е најблиску на таа линија, а = 4, така што влијае на третиот. И последната линија, а = 2, кој е што зборуваме, првата, втората, или трет една? СТУДЕНТСКИ: Второ. ЈАСОН Hirschhorn: Тоа зборува за вториот. Се разбира, третиот на е најблиску до тоа во кодот, но третиот на не постои надвор оние големите загради. Откако ќе стигнете до оваа затворена кадрава заграда, тоа е како тоа го нема, суштина. Па само два сте го напуштиле се оние првите два, и се разбира, сега тоа е најблиску до втората. Па тоа е добра работа да се се сеќавам за опсегот. На пример, сигурен сум дека сте наишле ова во направите додека јамка. Ако се иницијализира на променлива внатре на не додека јамка, а потоа ќе се обидат да пристап до неа надвор, веројатно добив неколку предупредување како, овој променлива не постои. Тоа е затоа што на обемот идеја, дека работите постојат само во оние големите загради. Големите загради се како џиновски прегратка дека ти си даваат за вашиот код, е уште една начин да се размислува за тоа. Значи ова е уште една функција, нешто за вас момци да кодот, hellofunction.c. Ние ќе треба да го прескокнете дека сега за сега, но ова е нешто јас ве охрабруваме да практикуваат на свој. Напише програма во која главната повици друга функција која отпечатоци од една поздрав до корисникот. Тоа е во суштина преземање Здраво светот и abstracting дека printf во друга функција. Но ние нема да го направат тоа во моментов бидејќи ние немаме онолку време остави како што јас би сакал. Така функција декларација. Ние сме виделе ова, пред, како и. Ако сакате да напишете друга функција, што треба да ги пуштам на компјутер знае и Главната знаат дека тоа постои. Значи она што го правиме е над главната, ние пишуваме на враќање тип, име и параметри, а потоа долу главната, долу тука, ние всушност го копирате таа линија и потоа напишете вистински код. Па на овој начин, ако се јавите на функцијата во главниот на врвот, главната знае дека Здраво постои, на пример, ако јас се да се јавите здраво, а потоа тоа изгледа на спроведувањето долу. Што се случува ако не се вклучи оваа линија до врвот, неважечки здраво (празно)? Ако не се вклучи оваа линија и главните повици Здраво, јас сум ќе добиете грешка. Одам да добиете грешка, бидејќи на компајлерот не знае дека тоа нешто постои. Ова е слично на тоа зошто ние се # вклучуваат cs50.h. Што суштински cs50.h прави е ставање добиете низа таму горе. Тоа е ставање добие int таму горе. Тоа е ставање на сите оние функција прототипови пред главната, така што кога ќе им се јавам во главната, главната знае дека овие нешта постојат. Тоа е она што оние. Ж фајлови направи. И така ако си оди за да направите свој функција, имаш да бидете сигурни дека ќе се стави дека прототип таму горе. Било какви прашања во врска со овој досега? Командната линија аргументи. Тоа е она што ние ќе треба да заврши на, а потоа се надевам дека ние ќе притисне во некои pset. Јас не знам дали ние ќе бидеме во можност да се притисне дека во затоа што на време, но со вас момци кои се тука, и ако момци сакате да се каже после за малку, ние може да оди преку него надвор. Но ние ќе се заврши со командната линија аргументи во последните 15 минути. Ние будни, Мајкл? Ти си буден? Добар. Јас не знам дали спиеш со затворени очи. Тоа ќе биде незгодно. Командната линија аргументи. Оние кои се еден начин да се помине информации во една програма. На крајот, ние ќе се сретнеме со другите. Но во суштина, ние ќе треба да престанат пишување int главната (празно), ако сакаме да да потрае некое командната линија аргументи. Ние ќе треба да ја напишам оваа работа наречен int главната (int argc, низа argv, загради. Која е збунувачки. Тоа е многу писма кои не се во човечки англиски, па ние ќе се отпакува нив во моментов. Argc се залага за аргумент брои - и повторно, сите тие ќе бидат достапни на интернет - и тоа е број на аргументи. Argv се залага за аргументот за векторот и оние кои се аргументите себе. Тоа е низа од стрингови. Ние сме всушност, се гледа низа на стрингови пред денес. Ние направивме еден во последните програмата ние кодирана. Па еве еден пример. Јас пишувам. / Ohai cs50 секција на мојот командната линија. Argc во овој случај е еднаква на 3. Argv заградата 0 е ohai, argv заградата 1 е cs50, argv заградата 2 е секција. Повторно, argc е бројот на аргументи, и да патувањето по малку малку, ние секогаш се смета името на функција како прв аргумент. Значи во овој случај, постојат три аргументи, името на функцијата а потоа оние две што јас внесе внатре Следниот, ние си оди за да се спаси оние аргументи себе во argv. И повторно, исто како што видовме претходно, ние го сторивме ова во последните програмата ние кодирана. Можете да се движите низ низа од argv и да се оние жици. Тоа е во суштина она што ние го сторивме на на крајот од нашиот последен програма. Беревме случаен име, а потоа отиде во имиња заградата што и печатени надвор стрингот наоѓа таму. На врвот на само една низа, бидејќи жици и самите се низи, како зборуваше за, може да имаат низи на низи, што е во суштина она што argv е. Еден начин можете да размислувате за ова е редови и колони. Јас може да нацрта тоа токму сега. Па argv - тоа не е бришење. Ајде да привлече под ohai. Значи, ако јас го напишав во, ohai cs50 дел, Одам да ја намалит делот за овој пример. Но во суштина, мојата мулти-димензионален низа, ohai cs50, ние ќе треба да направите секта. Значи тука, можам да влезам - ако јас само им даде argv еден број - ова е погрешно. Што не е во ред во овој дијаграм? СТУДЕНТСКИ: Започни од нула. ЈАСОН Hirschhorn: Требаше почнуваат со нула. Јас треба да веројатно, исто така, го ротираат, но бидејќи јас сум веќе го подготви за, јас сум ќе го оставиме таму сега за сега. Но тоа започнува на нула. Дека е во право. Жал ми е ако ова е мал. Може да ви момци вид на се види? Значи, ако го направам argv 0, јас ќе ги добиете сите од ohai. Ако го направам argv 1, јас ќе ги добиете сите од cs50. Ако го направам argv 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, дали тие се дефинираат argv како знак ѕвезда argv? Или е тоа уште се нарекува низа argv? ЈАСОН Hirschhorn: Да. Па стринг, повторно, ние маскираат над она што точно се случува таму. Тоа ќе биде уште неотпакувани можеби во средата, но наскоро. Тоа е како обука тркала. Затоа што во суштина, тоа е истото. Па ајде да земе уште една минута за да програма ова, а потоа ние ќе одиме во текот тоа како група, а потоа како што реков, заврши. И мислам дека тие се уште дополнителни бонбони, па вие момци се надевам дека треба да се тоа, или посетете го преземе тој. Извинете ако сте се уште пишување, но сакам да се нурне во и ние да го завршиме заедно. Така имам напишано во, # вклучуваат cs50.h, # вклучуваат stdio.h. int главната (празно), кадрава голема заграда, кадрави заграда, во внатрешноста на три линии на pseudocode, да преземе целосно име и презиме на корисникот, два и само два командната линија аргументи, печатење поздрав до корисникот кој ги вклучува нивното прво име. Па првиот, се корисничко име и презиме. Кој може да ми помогне да се земе на корисникот полно име? Како да го направам тој дел? Дали вие момци го направи тоа прв дел? Преземе целосна име на корисникот. Па, за таа една командната линија аргумент, она што треба да се пишува? Она што јас треба да се менува за мојата функција декларација? Студент: Вие не сакате тоа да биде неважечка веќе. ЈАСОН Hirschhorn: Токму така. Не сакам тоа да биде неважечки. Што сакам тоа да биде? СТУДЕНТСКИ: инт argc. ЈАСОН Hirschhorn: инт argc. СТУДЕНТСКИ: Стринг argv. ЈАСОН Hirschhorn: Стринг argv. СТУДЕНТСКИ: конзола, заграда. ЈАСОН Hirschhorn: конзола, заграда. Тоа е токму во право, а тоа е всушност како јас ќе одам да се добие корисничко име и презиме. Тие се случува да го стави во таму. Така што е направено. Па сега сакам два и само два командната линија аргументи. Па Ное, она што е еден начин можам провери бројот на команда линија аргументи имам? СТУДЕНТСКИ: Правите ако изјава. ЈАСОН Hirschhorn: Ако изјава, точно. Што сакам како услов? Студент: Ако argc поголема од 3. ЈАСОН Hirschhorn: Ако argc е поголем од 3. Ако argc поголем од 3, она што можам да направам? СТУДЕНТСКИ: Враќање 1. ЈАСОН Hirschhorn: Враќање 1. Кои ќе обезбедат имам два и само два? СТУДЕНТСКИ: Не Ако argc е поголема од 3 и помалку од 2. ЈАСОН Hirschhorn: Ако argc е поголема од 3 и argc е помалку од 2. Што е еден начин можам да ја напишам оваа во само една линија, или без користење дека и Булова оператор? СТУДЕНТСКИ: Тоа не е еднаква на 2. ЈАСОН Hirschhorn: Ако argc не е еднакво на 2. Токму така. Па ако argc не е еднакво на 2, кој ќе ми даде оваа програма, персоналните, кога ќе се стартува, и дека ќе ми даде колку командната линија аргументи? Колку јас ќе провери за? Жал. Дозволете ми преформулира тоа. Ако argc = 2, колку многу нешта не корисникот пишуваат во линија? СТУДЕНТСКИ: Еден. ЈАСОН Hirschhorn: Само еден. Па пред, сте биле во право, на Ное. Што ми е, всушност, треба да се стави таму? СТУДЕНТСКИ: Тоа е еднакво на 3. ЈАСОН Hirschhorn: argc не е еднакво на 3. Сакам да изнесува 3 затоа што сакам персоналните плус на другите две. Па ако argc не еднакви 3, врати 1. Зошто велиш врати 1? СТУДЕНТСКИ: Затоа што тоа значи тоа е погрешно. ЈАСОН Hirschhorn: Тоа значи дека не е во ред, и што е тоа што ќе направам? СТУДЕНТСКИ: Ре-извести корисникот. ЈАСОН Hirschhorn: Тоа се случува да се откажат од на програмата, така што ќе мора да се кандидира повторно, но ние немаме ништо тука да прашам за нив повторно. Јас не не праша за тоа. Значи тоа е точно во право. Врати 1 само поднесе оставка на програмата. Одлично. И печатење поздрав на корисникот кој ги вклучува нивното прво име. Како можам да направам тоа? Anna? СТУДЕНТСКИ: Printf. ЈАСОН Hirschhorn: Printf. СТУДЕНТСКИ: (" ЈАСОН Hirschhorn: ( Студент: "Здраво ЈАСОН Hirschhorn: "Здраво СТУДЕНТСКИ:% s ЈАСОН Hirschhorn:% s СТУДЕНТСКИ: / л ЈАСОН Hirschhorn: / л СТУДЕНТСКИ: ", ЈАСОН Hirschhorn: ", СТУДЕНТСКИ: argv ЈАСОН Hirschhorn: Молам? СТУДЕНТСКИ: argv ЈАСОН Hirschhorn: argv СТУДЕНТСКИ: Средни загради 1. ЈАСОН Hirschhorn: Средни загради? СТУДЕНТСКИ: 1. ЈАСОН Hirschhorn: 1. СТУДЕНТСКИ: И) запирка. ЈАСОН Hirschhorn:) запирка. Дозволете ни да ја извршите оваа. Направат персонализирани. . / Персоналните. Тоа само се откажам. Зошто го напуштите? СТУДЕНТСКИ: Вие не стави никакви аргументи. ЈАСОН Hirschhorn: Јас не стави било аргументи внатре Изгледа одлично. Вие момци го заковав. Па уште еднаш, ќе отиде во argv и проверено на почетокот argc. Тоа се две важни работи кои треба да се запамети. Па во нашата последните две минути пред да напушти, ние нема да се стигне до pset два, но како што реков, ако сакаат да останат по за 10 минути, јас би тој среќни да одат со над вас момци на логиката за овие проблеми комплети. Имавме многу да се покријат денес па јас не сум стигнат до нив. Генерално, ми се допаѓа да се вклучат дека на крајот. Значи, ако сакате да се држиме наоколу, држи околу 10 минути. Ние ќе го направи тоа. Потоа, како што споменав на почетокот, pset нула и еден, ние ќе добиете дека повратни информации вратам на вас како е можно поскоро. Целта е да се добие pset еден повратни информации, коментари дел, пред pset две се должи. Значи, ако сте го направиле некои грешки или стилски, работите може да биде подобро, ќе имате тие информации, па можете нема да ги прават истите работи во pset две. А потоа и во иднина, ќе ги добиете сите на вашиот pset повратни информации и коментари назад пред следниот се должи. Конечно, дали би можел да го стави во друга приклучок за фидбек. Ова е ваша прва секција. Тоа беше мојот прв дел настава оваа година. Одат таму. Напиши нешта, добри и лоши, и Јас ќе го користат да заработат делот подобро следниот пат. И последно, повторно, ако ви треба ништо, дозволете ми да знам. Јас сум повеќе од среќни да ви помогне да момци. Ако само сакате бонбони, јас ќе имаат дополнителни слатки. Јас сум среќен да го донесе до вас. Ова се случува да биде неверојатно разбира. Ова е една од, ако не ми е омилен Се разбира, јас сум се направени во целиот мој живот, и се надевам дека тоа ќе биде дека прекрасно за вас. Па сакам да стори сé што е во моја моќ да се направи тоа дека одличен за вас. Одам да се испрати е-мејл ако сте во мојот дел или на Ное, и ќе се обидат и распоред со секоја од вие момци време да се провери во текот на следните неколку недели, па можам да добијам смисла на она што вашиот CS позадина е, а исто така ќе ми помогне да се прилагоди на овие делови за подобро да одговараат на вашите потреби. Значи тоа е она што имам построи. Повторно, јас ќе се видиме надвор ако сакате да бидете таму. Ова беше недела две секција. Ви благодариме момци толку многу.