[Мусиц плаиинг] ЈАСОН Хирсцххорн: ОК, сви. Добродошли у члану. Ово је ЦС50, наш веома Први део Супер. Као што сви знамо, следеће недеље редовни секције ће почети, али ове недеље смо сви заједно. Постоји себе. Моје име је Јасон. Ја сам предавач информатике. Имамо Анди, који је на челу ТА на ЦС50. И Сцаз, професор Брајан Сцасселлати, Он је професор информатике. Ми смо ЦС50 главе на Иале. Увек можете емаил нас хеадс@цс50.иале.еду. Ми ћемо бити на предавањима. Бићемо у радног времена. Ако постоји нешто што можемо учиним за вас, све што је потребно, слободно да допру до нас. Па шта ћемо да радимо данас? Или пре тога, шта је долази ове недеље? Дакле радно време је понедељак, уторак, Среда и четвртак, 8:00 до 11:00. Ту је распоред на сајту. Секције, као што сам поменуо, почињу следеће недеље. И ти ћеш сазнати шта је ове недеље пут када секција је, који је дан, и ко ти је ТА. Проблем сет 1 је због у четвртак у подне, у петак у подне са крајем дана. Да, имате девет касне дана. А ту су и девет проблем поставе. И могу да користе само један касно дан по проблеме сету. Да, у ствари, сви Проблем сетови су због петка у подне. То је све. Све што детаљи су на градиву. Сваког петка, имамо ручкове. Ми волимо да се ово велико Наравно осећа мало мањи. Дакле, ви сте добродошли да одговорим. Бесплатан ручак са момком колеге и особље. цс50.иале.еду/рсвп. Све ове ствари које Имам на екрану, и више, можете наћи цс50.иале.еду или цс50.харвард.еду, ако идете на Харвард и гледају ову онлине. Такође, на тим сајтовима, постоје су тона средстава за вас. Свако предавање не само да има видео предавања, али и напомиње. Неко ће ватцх тхе предавање и записују за вас. Дакле, можете једноставно платити пажња током предавања, или можете користити своје белешке / Оур напомиње да допуни своје белешке. Постоје слајдове на мрежи. Извор цоде-- све Дејвид иде преко у предавању, или Сцаз иде преко предавања, да изворни код је доступан на Интернету као и, како је као и ја, поменути видео. Секције, исто тако, сви ће бити снимљен. Све те слајдова ће бити на располагању. Све то ће код бити на располагању за вас. Постоје гаћице на сајту где Особље ЦС50 проведу пет до 10 минута пролазе кроз теме за вас. Неки од оних које сте већ наишао на проблем поставе. Радног времена, као што сам поменуо, понедељком кроз четвртком, 8:00 до 11:00. ЦС50 Студија је фантастичан ресурс. Постоје проблеми праксе, сампле слајдови, познатих бугова да студенти воле да налетим, за практично у свим тема којом ће покрити на овом курсу. И на крају, на овом слајду барем, Референце50 који вам даје информације на свим функцијама Ц си икада могао да се надам да користе и много, много више. Опет, то Дот Дот Дот у дно екрана је да покаже да чак постоји више средстава у те две сајтовима: цс50.иале.еду, цс50.харвард.еду. Дакле, оно што радимо данас? Па, прво ћу дати погледате ресурсе. Већ је то урадио један. Погледајте нас. Сада ћемо да пређемо врсте података и оператори у Ц Онда Анди ће доћи овамо и прећи библиотеке у Ц, принтф (), функција са којом сте већ упознати или брзо ће постати врло познато. А такође ћете прећи Цондитионалс и петље. И на крају, Сцаз ће ићи преко ЦС50 ИД. Ако нисте дове у Већ у 1. сету Проблем, као и како да користе терминал и корисне команде и онда вам дати неке демонстрације и пракса кодирање у ЦС50 ИД. Пре него што скочите у томе Садржај на овој страни, да ли неко има било каквих питања до сада? Велики. ОК. Промена брзине. [Промени брзина] То је мени пребацује зупчаници у ручног кола. Дакле, типови података у Ц, не можеш само променљива Кс и имају било на линији 10, цео број, можда број 1, он лине 20, децимални број 10.5, и онда пар редова Касније стринг, волим ЦС50. У Ц, променљиве може бити само једна ствар, а само једна ствар. И тако морате да им дате врсте. И на овој плочи смо имате списак типова. Постоје знакова, који сталак за ликове. Дакле, то је један слово А, Б, Ц, Д. То такође може да буде простор, или да може бити нова линија карактер. Постоје целих, које су само бројеви, цео нумберс-- или целих бројева ратхер-- али без децимала. За децимале, имамо флоатинг поинт бројеве. Флоатинг бројеве тачака су бројеви са децимале. Затим, ту су чезне, који су у суштини дуже целих бројева. Приметићете да дуг је 8 док инт је 4. Ја ћу на то за секунду. То је зато што чезне може похранити чак више него цели бројеви инт може похранити. Дупли је дуг пловак. И на крају, имамо стринг, који је тип да сте вероватно користили раније. Ако укључите хасхтаг # инцлудеЦС50.х у изворном фајлу, онда можете користити тип стринг. Није заправо уграђен у Ц. Постоји неколико других врста као добро. Али ово су главне оне с коју ће користити и сусрести. Ц, као, опет сам поменуо, сваки је вариабле-- Може бити само један тип и само један тип. То је зато Ц је статички откуцани језика, за разлику динамички куцаних језика где ако креирате променљиву можете да промените оно што се чува у је како идете у вашем програму. Овамо на десној руци страна, имам различите величине ове врсте података у бајтова. Тако је лик је 1 бајт. То је 8 бита. А то значи, јер 8 бита има осам 0с и 1с. Видели смо те демонстрације у првом недеље да бинарних сијалица. Са 8 бита или 1 бајт, можемо представљају бројеве од 0 до 255. Jel tako. Ако су сви битови су 0 8 резултат је 0. Ако је први бит је 1, то је број један, и тако даље, па све до 255. И зато за ликове можете има суштински до 255 њих, али то је доста да покрије све ликови морамо да користимо. За целе бројеве, можете имати 0 и онда имате 2 до 32 минус 1. То су колико опције имате за целих бројева. За дуго, имаш 0 на 2 до 64 минус 1. Дакле, имате много, много, више опција за Лонгс. Жице, то је знак питања јер је то Цлиффхангер за касније. Да. Могао бих рећи сви на рубу њиховог седишта, као што је то знак питања? То је цлиффхангер. Ми на крају ће покрити величину жице и говорити више о жицама. Зато што је заправо низ један од точкова обуке ставимо у овој Наравно на почетку а затим скинути касније даље, јер стрингс у Ц заправо показивачи да карактера низова. Али опет, то је Цлиффхангер за касније. Пре него што пређемо на сва питања, коментари, забринутости око овом слајду? ОК. Морам бити фантастична Екплаинер. Такође, када програмирање, идете да користите ове операторе. Стварно једноставне знаци да могу да ураде једноставан операције, са којом вероватно сте већ веома познато. На пример, на десној страни стране, видимо додати. Да бисте додали, само урадите знак плус. И тако да можда има Две променљиве Кс и И. То можете да урадите Кс + И у вашем коду. Можда желите да-- вам кажем има број 7 и 3, желите да сачувате то у променљивом зове суме. То можете учинити инт за тип, простор сума, име променљиве, = 7 + 3; Шта би то радња у збиру? Bilo ko? Ако сам имао у збиру = 7 + 3. Шта би се чувају у збиру? Можете само да га викати напоље. ПУБЛИКА: 10. ЈАСОН Хирсцххорн: 10! То је потпуно тачно. Шта је у збиру = 7 - 3, Само користим ту дасх знак. Шта ће се чувати? ПУБЛИКА: 4. ЈАСОН Хирсцххорн: 4. Сума је вероватно погрешно име за да променљива, али 4 би се чувају. Да умножавају у Ц, користите мало Звезда карактер, не користите к. Да деле, користите Форвард Сласх не симбол дивизије. И да модулу, користите симбол одсто. Дакле, хајде да кажем да желим да видим инт з = 7% 3, шта би се чувају у з? Дакле, то је у суштини пита шта модулу радим? Да ли неко зна ста ради по модулу? Да. год 4. СПЕАКЕР 1: То је остатак. ЈАСОН Хирсцххорн: То је Остатак када поделите. Дакле, 7 подељено са 3 је 2 остатак 1. Дакле, 1 би се чувају. Ти си одузимање, али тако то ради. То је оно што оператер модулу ради. Потребно број се дели од још један број и враћа вам остатак. Дакле, опет, 7% 3 вам даје 1, јер 7 подељено са 3 је 2 остатак 1, и враћа остатак. Шта да се вратимо горе један корак у том знаку поделе. Ако сам 7 / подељено са 3 ради ико зна шта би то вратити? СПЕАКЕР 2: 2. ЈАСОН Хирсцххорн: Зашто 2, а не 2.333? Звучник 2: Мислим да сече искључује након целог броја. ЈАСОН Хирсцххорн: Па То је потпуно тачно. У Ц, ако урадите поделу два цела броја 7 подијељена 3, да добије одговор који у овом случају 2.3333 форевер и сматра да децималне тачке и касапи све искључује након децималног и то вам само враћа 2. Дакле, ако сам 8 подељено са 3. То у ствари, знамо да се врате 2.666, али касапи све са на декадну, све умањује, и само се враћа за вас 2. Дакле, 6 подељено са 3, 7 поделити од 3, 8 подељено са 3, Сви ће да се врате у вас 2. Да ли неко зна, или има гуесс, како сам заправо могао добити пуни одговор ако желим да децимала? Да. Хајде. Спеакер 3: Користите флоат? ЈАСОН Хирсцххорн: Како то мислиш? Спеакер 3: Зато што сте рекли пловак је за бројеве [неразумљиво] ЈАСОН Хирсцххорн: Тако је. Дакле, то је тачно. 7 је цео број. Али, ако сам хтео да се окрену да у покретним зарезом броја, Морао бих да сачувате да као 7.0 јер рачунару стварно глупи смо видели да са ПБ и Ј екампле-- то ће само учинити управо оно што је рекла. Дакле, ако сте написали 7, она Мислим да је цео број. Ако пишете 7.0, иако смо знам те ствари су еквивалентни, се третира као да је са покретним зарезом број. Дакле, ако сте урадили 7.0 подељена од 3 или подељено са 3.0, он би рекао, у реду, сада имамо посла са сплавова. Ја ћу се вратити вама 2.333333 заувек. Али не баш заувек, јер као што смо и видели у предавању, ови флоатинг поинт број нису баш прецизни. Дакле, ако желите да урадите децимала, или део те децимале, онда морате да Користи, један од њих мора да буде флоатинг поинт број а рачунар мора да разуме да је ово флоатинг поинт си бави, није цео број. Сва питања на том столу о десној страни, до сада? Или твој лијевој страни, твој лево, твоја лева страна. Да. СПЕАКЕР 4: Добро. За само као обична целих бројева, ти би врите-- би морате написати флоат? ЈАСОН Хирсцххорн: Да, тако. Па, ако желите да креирате променљива која је пловак, морате да кажете флоат З једнако нешто. СПЕАКЕР 4: У реду. ЈАСОН Хирсцххорн: Али, ако сам желео да до 7 подељен са 3 и добити тај децимала, Ја бих то флоат з = 7.0 / 3.0 би; и да би ми дао флоатинг поинт број. СПЕАКЕР 4: У реду. ЈАСОН Хирсцххорн: Ако сам нешто као инт з = 7 / резултатом 3, да би ми цео број, јер то су сви бројеви. Да ли то има смисла? СПЕАКЕР 4: Да. ЈАСОН Хирсцххорн: У реду. Велики. Неких питања у вези тог стола? Стварно? Тако сам узбуђен. ОК. Дакле, неке друге ствари које ћете користити, често у условима или петље, су ове врсте операторс-- ове врсте булевих израза. И као што смо научили, == је оно што користити да проверите да ли су две ствари једнаке. Дакле, овде сам проверавам ако је к == и хајдемо поново преузима да је к 7, а и је 3. Дакле, ако сам написао 7 == 3, што да ли би то вратити? Да ли је то тачно или нетачно? ПУБЛИКА: Нетачно. ЈАСОН Хирсцххорн: У реду. Осећам се као свако може добити овај један. Па сви, шта би то вратити? ПУБЛИКА: Нетачно. ЈАСОН Хирсцххорн: Нетачно. Велики. 7 није једнако 3. Дакле, 7 == 3 би ретурн фалсе. Ви немате нису знак једнакости, па ако цхецкед 7! = 3, шта би то вратити? ПУБЛИКА: Истина. ЈАСОН Хирсцххорн: Истина. Одлично. Неко је био веома одлучно леђа и то ценим. Онда имате мање од оператера, мање или једнако оператору, већи од оператера, већи од или једнако оператору. Дакле, још један чек разум. Ако сам имао 7 је већа од или једнака 3. Шта би то вратити? ПУБЛИКА: Истина. ЈАСОН Хирсцххорн: Истина. Да. То Бацк Роом, задња страна собе, фантастично. Можете комбиновати изрази ако хоћете, као и, са логичан и који је && Или логички или која је || ||. И тако сада можете тестирати два ствари заједно-- Да ли је то смешно? Зашто је то смешно? Дакле, ако сам желео, ја могу да кажем је 7 већи од 3 и 2 је мање од 4? Па, ако је већа 7 од 3, то је истина. 2 је мање од 4, то је истина. Дакле, цела ова ствар ће се вратити истина. Ако тестирао 7 је већи од 3 и-- Ја сам само брање случајних бројева овде- 4 је мање од 2, па, то је лажна. Дакле, тачно и нетачно лажне. И можете ићи даље и да комбинујете као много услова заједно као желите. Да ли неко има било каквих питања, коментари, бриге до сада? И видим неке од сликаш мене у екрану, што цијеним. Надам се, није Снапцхат. Надам се, да је за своје белешке. Али, све ово ће да буде доступан на мрежи. Дакле, не морате да сликати ово. Као што сам поменуо, све ће бити доступан на интернету за вас. ОК. Ја сам о да бину, тако се никоме Желим да кажем ништа пре се то деси? Питања? [Ставим Воицес] ЈАСОН Хирсцххорн: Ох, престани. Ви сте превише фина. ОК. Идем да означите напоље. Идемо. Анди Пенг: Идемо да радимо незграпна микрофон промена сада. ЈАСОН Хирсцххорн: Ја сам да скинем ово. Анди Пенг: Ценим подршку, момци. Да ли можеш да ме чујеш? Je to dobro? Савршен. Prelepo. Дозволите ми да ушушкаш то у. ОК. Дакле, ја сам хтео да урадим као џин Информације депонија сада на вама. И без бриге шта год, ако си не прате сваки мали линију шта Ја ћу да ти покажем. Као што је Џејсон рекао, све је потпуно на мрежи. Само ћемо покушати да уведе сви концепти покривени у неким од ових слајдова. Дакле, само пратите заједно. Без бриге, ако не разумеш све; међутим, ако у било ком тренутку осећате изгубљено, подигни рука, ми ћемо престати, нема бриге. Кул. Дакле, мислим да је Дејвид нешто већ врста помиње у предавању Јасон је некако алудирао до данас је што библиотека је. Дакле, у програмирању, имамо ове ствари називају библиотекама. Где, у суштини, све они су је само скуп функција, то је у суштини само код је то већ написао неко други да сви могу користити у оквиру наших програма. Па како то нормалан библиотека рад, зар не? Улазите на врата библиотеке. Имате све ово књиге можете извући и можете да приступите информацијама у тим књигама. Иста ствар у програмирању. Имате библиотеку која има већ је написан од стране других људи. И начин на који можете, као програмер или студент, може да добије приступ библиотеци је кроз хаштагот #инцлуде. На пример, у Ц Ми има три ц-- највише обично користе три Ц Стандард либрариес-- за улаз / излаз библиотеку, библиотека стринг и математика библиотека. Дакле, у оквиру ваша прва Пар проблем поставе, они ће бити три да, пре свега, користите. Дакле, као што је већ Давида објашњено у предавању, стандардни И / О библиотека, или стандардни улаз / излаз библиотека ради управо то. То вам омогућава, у вашем коду, на улазу ништа од корисника и излаз који на екрану, у суштини штампања на екран. И тако сваки пут када користите било коју функцију, на пример функцију принтф () који ћемо ићи преко следећем слајду, уверите се да укључи Стандардни И / О библиотека иначе нећеш да моћи да користе иф () функцију. Зато што, као програмер никада није написао ту функцију, само користите некога туђа код у свом коду. Да ли то смисла сви? Кул. И онда у суштини добити на стринг.х библиотека и матх.х библиотека, .х само означава библиотеку, остале библиотеке које сте на крају цу бе усинг унутар кода. Међутим, за потребе ове библиотеке, такође бих-- ове цласс-- и ми имамо оно што се зове ЦС50 библиотеку, цс50.х, где смо, за Ваш прелиставање створили многе важне и корисне функције. Тако да ви као програмер може прикачен са оно што смо већ написали, тако да Ова функција је доступна за вас за Вашу употребу. Ја ћу бити покрива неколико функције обично користи, али знам да су све гооглеабле мрежи. Слободно, повуците ЦС50 библиотеку и онда имате све функције тамо. Да. Звучник 5: Дакле, ако нисте били користећи софтвер који је пружена нам класа, да ли то Мислим да ћемо морати да преузмете и пронађу ово заглавље филе себе и реци компјутер где је? Анди Пенг: Велики питање. Baš tako. Дакле, то је као да ниси физички присутан у библиотеци, нема начина да заправо иду и приступите му. Дакле, иста ствар је и са програмирање у Ц, иоу морате да проверите да ли користите наше уређај јер је библиотека је већ инкорпорирана њу. И онда када хаштагот #инцлуде, библиотека је тамо. Да. Добро питање. Свако добро? Кул. У реду. Дакле, идемо да удари, у суштини, оно што је Прва функција која Ми као програмери су ће користити у нашој коду. Ово се зове иф () функцију. Дакле, иф () функција, као што сам Већ сам рекао у последњем слајду, је укључен у стандардну И / О, стандардни улаз / излаз, библиотека. Зато пазите шта год да усинг-- ох, хајде да узмем ласер поинтер-- кад год користите принтф () функцију, морате да укључите Стандардни И / О библиотека или друго, кад састави, ви ћете добити грешку јер рачунар ће бити као, Ох, не знам где је иф () је, нећеш ми рећи где иф () је. Па иф () је укључена у Стандардни И / О, тако да када користите принтф (), побрините се да имате то линија изнад кода. Тако на пример, принтф () Овде је функција. Све што ради је одштампани нешто унутар заграда до корисника. Да ли би ико желео да се убод на ком овој линији код права Овде ће се исписати? Дакле, одговор је на екрану. Bilo ko? Верди: дно. Анди Пенг: Верди, зашто не одеш напред и рећи целу изјаву? ВЕРДИ: Здраво, моје име је Анди, и ја сам 20 година. Анди Пенг Ах, дивно. Дакле, у овој линији ћемо одштампати, Здраво, моје име је Анди, и ја сам 20 година, који је у ствари истинита изјава. Синтакса. Дакле, неколико питања која синтаксичких ви желите да будете сигурни да знате. Цитати. Двоструки наводници рећи рачунар који је све унутра ће се штампати. Све у лименци јуст бе тачно како ти тип, осим обично на крају, ћемо желите да укључите хасх-- Ох је-- цртица бр. Тако цртица бр. Да ли неко жели да да претпоставите шта то ради наш код? Да. Звучника 6: Ставља га у новом реду. Анди Пенг: Управо тако. Дакле, све ово ради је дозволи год се деси Након тога, после ове изјаве, да се штампају на нову линију. Тако да када пишете код којег не случајно има ствари тацкед на крају да не желиш. То све постаје уредно штампани једну линију и онда ћемо почети на следећој линији. Да ли се ико сећа шта је зарез ради кад смо кодирање? Да. СПЕАКЕР 7: Изјава. Анди Пенг: Молим? СПЕАКЕР 7: Да ли је крај изјаву? Анди Пенг: Да. Дакле, у Ц или икаквог програмирања језик, зарез означава крај програмског линије. Тако на пример, у енглеском користимо период да кажем, ох ово је крај реченица. У програмирању, исто, имамо зарез да означи крај линије. Често, када сте почиње да програмира, ћете схватити вас заборавите да додате тачку и зарез а ви покушавате да покренете број и не ради. А ти си као Ах, не знам знам зашто, то треба радити. Шансе су вероватно заборавио зарез или носач или нешто негде. Дакле, то је важно запамтити. Кул. У реду, подигните руке, како многи људи овде икада узети АП Цомпутер Сциенце или програмирају у Јави пре, икада? ОК. Дивно. То неће бити примењиво онда, али у Јави, ви имају нешто што се зове Систем.оут.принтлн која не постоји у Ц. Дакле, у Ц, те кад желите да додате у променљиве у нешто желиш да одштампате, ту је специфичан синтакса ћемо користити. То се зове плацехолдинг-- суштини додамо симболе на месту о ентитета или променљиву да желите да одштампате. Дакле, као ви можете видети да смо укључени нова библиотека главом филе овде. ЦС50 библиотека. И садржане у тој библиотеци ЦС50 је заједничка функција ћемо користити у нашем наравно зове Затамњена (). Да ли неко жели да се убод у Шта Тоноване () може евентуално да се ради. ПУБЛИКА: [неразумљиво] Анди Пенг: Жао ми је. Нисам могао да те чује. Меди, било ко. Меди: Ох, пита сте за цео број. Анди Пенг: Управо тако. Дакле, ова функција, други функција која је већ је написао неко други да можемо позвати сада. Све што је је натерати вас, корисника, да унесете шта год желите, као код ради и чува вхатевер-- у овом случају ми смо Затамњена () - Инг, тако да значи да смо добијање цео број. И ми ћемо да сачувате који у другом интегер да смо управо направили под именом године. То има смисла свима? Кул. Дакле, сада када смо чувају овај цео број, које смо затражено од корисника, У овом променљиве, имамо створена типа инт зове старост, можемо да идемо напред и место да у нашој принтф () функцију. Дакле, синтакса обично принтф () ис да где год у вашем стварне физичке линију желите да укључите ту цео број, ти тај симбол тамо, проценат симбол, са тип променљиве коју желите. Дакле, у овом случају старости је цео број. Значи идеш да укључите % сам зато што је цео број. А онда после твоје изјава, идеш да урадите зарез и назив променљиве. Дакле, овде ћемо да одштампате вани, здраво, моје име је Анди, и ја сам бланко година. Хасхта-- или, је--, старост са било И улаз. Дакле, ако бих улаз 20 за моју Затамњена () овде, то би одштампати исту ствар. Али, ако желим да улазног нешто друго, као што можда 40 или 45, онда би видети да одражава сходно томе у коду. Дакле, ово је пример нечега у којој се исписује и изгледа да ви као да је то иста ствар, али испод хаубе рачунар заправо нема врло различите ствари дешавају. Кул. У реду. Па шта ако желимо више променљиве? Прилично једноставно. Иста ствар. Такође имамо нову функцију овде се зове ГетСтринг (), такође укључене у ЦС50 библиотеци, да све што ради је питати корисника за стринг, који се само скуп знакова, па као казну или као име. Дакле, у овом случају, имали бисмо два плацехолдер% с за гудачки и% и за цео број. И ми ћемо следити да према две варијабле Желимо укључени у циљу да се појављују у реченици. Тако, на пример, моје име је празно, желим тамо име, тако да ћу прво име. И онда после тога, желим старост, желе да имају старосну секунду. И тако, ако сам хтео да улаз, Здраво, моје име је Анди, и ја сам 20 година. Ако уноси Анди и 20, на иста ствар ће исписати; Међутим, сада имамо два сачувана варијабле име, као Инт. Да. Звучника 8: Да ли би било можете да покренете ако укључен име и старост на крају то? Анди Пенг: Да. То је стварно добро питање. Тако скратим причу, не. Због име и аге-- шта тип променљиве је име? Звучника 8: стринг. Анди Пенг: А шта тип променљиве је година? Звучника 8: Интегер. Анди Пенг: Дакле, овде имамо плацехолдер фор стринг и цео број, зар не? Дакле, ако сте били да укључите ово, рачунар неће знати. То ће да провери за низ, а ако покушате да му дају инт, то ће бити као чекај сам збуњена, хвала ми је рекао да би требало да буде доделу меморије за инт. И овде, када очекује цео број а ви му дати име и низ уместо тога, то је такође ће бити врло збуњујуће, то неће радити баш онако како треба. Па ево, именовање и синтакса је веома важно за покретање кода. Свако добро? Да. Меди. Меди: Ево, ја знам да смо погледали на пример у класи, где питају оно што је у твојим годинама, како се зовеш. Ево, да ли би то било то није-- ако смо били покренути овај код, не би питати за то? Али ти би само улазних два броја и онда ће ићи тако? Анди Пенг: Да, управо тако. Дакле, ако сте желели за то да дисплеј, унесите вашу године, можете само додати принтф () функцију То говори, унесите вашу године, изнад њега. То је добро питање. Да. СПЕАКЕР 9: Па, већ ће бити укључен у Тоноване () [неразумљиво]. Анди Пенг: Не, заправо није. Дакле, све ово ради само тражи празан екран кориснику да унесете нешто. Ако га желите, ако желите да одштампате од нечега што говори корисника као, молим вас дајте ми своје године, и онда ти ће морати да принтф () сами. Јер сви користе ово Функција за различите ствари, можете бити складиштење године, можете бити чување адресу, можете бити чување телефонских бројева. И тако је заиста до појединачне користи твоји момци ' за оно што желим да кажем да. Да. СПЕАКЕР 10: Дакле, само да разјаснимо, где Да ли навести име и старосна тако да се појави у месту% с? Анди Пенг: Као корисник? СПЕАКЕР 10: Да, као Како да да то-- где ја ставио Анди, и где да ставим 20? Анди Пенг: Да. Дакле, ако сте били да у ствари покренути овај код, Нисам заправо ради под код, ово је само овде. Ако бих да водим код, ја бих састави код, направи датотеку, покрените код, и онда би Само буди два места за мене на улаз ит. Да. Ви ћете видети када играте около са кодом сами. Добро ћемо да се креће у наредном одељку о томе шта ми ћемо се покрива и данас. Ми ћемо ићи преко оно условне изјаве. Дакле, ако сте се сетим и сећам из предавања, условне изјаве, сви су је сет инструкција на рачунар који, ако одређени услов је истина, извршите код унутар тог стања. Дакле, у суштини Сцратцх-- велики тема од данас је да ви имате већ све види логику свега да смо покрива. И све што радимо је превођење несто то је врло интуитивно у Огреби и тешко га кодирање у синтаксу ћемо користити за класу која је Ц. Па логично, све ово је блок је да део кода тамо. Да. ОК. Такође ући иф ... елсе исказ који је само додатна слој сложености у иф где рачунар има поглед на ово и види, ако овај услов је истина, зар без обзира да унутар ове две заграде, елсе-- тако нешто као подразумевани ако не испуњавају цондитион-- ово. То је као раскршћу. Ако пада киша напољу, пут на Кишна јакна, још нешто друго Ја не стављам на Кишна јакна. Да ли то логика има смисла да се свима? Кул. У реду. Дакле, као пример хард ово што ћемо видети у Ц је ако сам желео да створи променљиву названу домаћи сати. А ако домаћи сати мање од пет, кажем Живот је сјајан. То је дивно. Међутим, кажу Борба је реал-- што је оно што смо сви на овом понедељак поподне до Сциенце Хилл су Вероватно како треба сада-- ПУБЛИКА: [Лаугхинг] Анди Пенг: Они начин би, хвала вам на томе. Начин на који ће хардцоде ово Ц је ако-- претпоставимо већ имамо променљиву типа Инт позвао домаће сати овде. Ако домаћи сати је мање од пет иф (), Живот је сјајан. Не заборавите држати / н, јер желите нову линију после. Друго, принт, Борба је стварна. Да ли сви разумеју како Ја прешле из овог блока у овом блоку кода? Кул. У реду. Дакле, сада ћемо да погледамо Ако је више изјава у потпуности. Дакле, хајде да претпоставимо Циљ овог програма био ми питати корисника за разред. Ми промпта користећи Затамњена () за разред, а они улаз вредност, и желите да прикажете Који тип разреда су добили. Дакле, ако бих дизајнирати програм, значи типично у свим нашим очима, 90-100 је А, 80-90 је Б, и тако даље и тако даље. Шта није у реду са овим део кода да није радим оно што желим да уради. Да. СПЕАКЕР 11: Имају доње границе, али немају горње границе. Анди Пенг: Управо тако. Да ли су сви чули шта је рекао? Ту ће бити горња ограничења, али нема доње границе. Жао нам је, обрнуто, доња граница, нема горње границе. Дакле, желите да узети стаб да говоре шта ће бити штампан на ово екран ако су покренути овај код. СПЕАКЕР 11: Грешка? Анди Пенг: Грешка? Велики претпоставка, није сасвим у реду. Да ли неко има још један убод? Да, Арон. Аарон: Ако сте ставили у нешто веће од 90, то ће показати све оцене имаш. То ће показати да имаш петицу, имаш Б, имаш Ц. Анди Пенг: Да. То је потпуно тачно. Дакле, то би било дивно. Међутим, они су међусобно ексклузивни, мислим. Ако бих да покренем овај део кода. И онда хајде да кажем, уноси у разред 95. Дакле, 95 је сада чувају у ИНТ зове разред. И тако Ц је језик да иде до врха до дна, тако да ће увек рун до дна. Тако да ће доћи овде, прочитали ако оцена је већи или једнак до 90, иф () имаш је А. Велики сам има на 95, то је већи од 90. То ће штампати, Добио сам петицу иде да погледате ово ако иде кажу, и 95 је такође већи од 80, то ће штампати можете добио Гот а Б узвика, и тако даље и тако даље. Дакле, као што могу да виде, то је уобичајена буба која се може десити када смо писања кода да пази на. Свако, било каква питања о зашто је то дешава? Велики. ОК. Како ћемо ово поправити, је очигледно логично следеће питање. Па, имамо ове прелепо ствари које се зову ако иф друго иф елсе изјава. Тако можете видети, ако желиш промијенити тај проблем, сте хтели да сваки од Услови међусобно искључују, ти би додај друго ... ако саопштењу. А ово за цоурсе-- мисле о њима као мердевине, или као пречкама на ладдер-- можете додати као многи од њих као ти Желим онолико услове као што желите. Дакле, овде, ако уноси оцену да буде 95. Ако је оцена је већа од 95, иф (), имам А. Греат. То ће да види друго ... ако и да ће знати, О, не, Ја сам већ извршен први друго. Знам-- или први ако-- знам да Ја не морам да погледате било који од ових јер је један од њих је већ истина. Дакле, то ће трајати од врха на доле. Чим први је истина, онда да ће прескочити све остало од другог ... ИФС. Да ли то има смисла? Дакле, на овај начин имате различити нивои проверу и чим један од њих је неистинит, Остали су, такође, неће ни проверавати. Кул. У реду. Дакле, ово је пример другачији врста условног изјаве видимо ређе, али ћемо их видети и користити их. И они су често ефикасан за одређеним случајевима. Дакле, имамо оно што се зове прекидач изјава. Дакле, пре него што покрива оно што је остало изјава, иф ... елсе изјава. Ево, имамо шта су назива прекидач изјаве. Дакле, када користимо прекидач изјава је кључ? Дакле, у изјави свитцх, ви обично, типично, заправо могу само улазни целих бројева за ваше променљива да сте проверу. Дакле, ако сам хтео да проверим да видим ако одређени нумбер-- на пример разред, ако имам 90. Желим да видим да ли је А Б или Ц. бих могао да имам овде случај. Међутим, случај је да буде још једна константа. Дакле, у том смислу, прекидач изјаву могу само проверите за равноправност два броја. То не проверава ништа друго. Дакле, то је нешто што веома опрезни када користите ово. Дакле, овде, ако сам хтео да проверим да видим ако је мој разред 90 је једнак 90 или 80 или 70 или 60, а затим одштампајте одговарајући разред, Ја бих могао да напишем да у саопштењу свитцх. Тако да ће доћи овде, провера је ово цео број једнак овом константу? Ако не, да ће прескочити. Да ли је једнако константа два, и тако даље и тако даље, док не погодио дефаулт, Ако ниједан од њих су једнаки. Чим једна од њих се поставља да буде једнака, да ће то учинити линија кода и паузе. Што значи да ће ударити да рун, бреак, и само потпуно прескочите до дна кода. Дакле, у том смислу је врста функција Као иф иф иф изјава. Дакле, овде је бетон Пример за вас. Дакле, хајде да претпоставимо да сам желео да створити променљиву названу године основао. И желим да подстакне корисника на улаз године која је основана њихова школа. Тако да могу да створе изјаву прекидач овде. И рецимо да сам улаз 1636. Овај код овде ће се видети прекидач године основао која износи 1636. То ће види предмет 1636, о они су једнаки, иф () не би требало да си у тој школи северу? Зато што ми претпостављамо да не идите овде ако иду на Харвард, бреак и прескочите до краја. Ако бих улаз 1701, која Претпостављам да сви ми би улаз, то би прескочите овај случај, долази до случаја два који је 1701, и штампање Добродошли на Иале! Бреак, прескочите до краја. Друго вероватно узимају овај курс Онлине у којој цасе-- страшан добродошлицу да Иале-- да ће ићи до Уобичајено, принт, Добро интернет! И бреак. Да. СПЕАКЕР 12: Можете ли још користити уместо дефаулту тамо? Анди Пенг: Не, јер је начин да се цела ова функција прекидач изграђена, ти синтакса Потребно је да користите је случај случај подразумевани. То је као да ако иф, ово један је случај случај подразумевани. Да. СПЕАКЕР 13: сте можда већ рекао, али можете имати више од два случаја? Анди Пенг: Да, могао имати онолико предмета колико желите. Мислите о томе као баш као и бескрајно додавањем. СПЕАКЕР 14: Иф иоу замењен 1701 са 1636, то заправо не би разлика зар не? Само ће да проверавају за то. Анди Пенг: То је Стварно добро питање. И ми ћемо дотакнемо ово касније, али само Знам да је прекидач Изјава је инфинители-- је ефикаснији од њега и ако иф јер дјелује користећи различите врсте функције које Омогућава вам да у суштини, само да скок равно у случају морате да поседујете. Да. СПЕАКЕР 14: Кул. Хвала. Анди Пенг: Да СПЕАКЕР 14: И ниси могао урадите случајеви као и већи од. Анди Пенг: Не Дакле, то је оно што ограничава о прекидач изјава је да имате да константе само, само бројеви. Да. ОК. Дакле, ово је нешто што вас момци ће наићи ређе од, али сам само хтео да уведе га у случају. Ми овде имамо оно што је назива тернарни оператер. Где суштини, то је само као иф саставио у једну линију. Ево, ја ћу ићи на следећи линије, следећа страна, јер је лакше да се види. Дакле, сви смо видели ово право? Ово је прилично лако пратити. Да сам хтео да направим променљиву названу стринг именован с, уколико један број Дајем јој је мање од 100, ја желите да доделите ниско на стринг, друго Желим да доделите висок. Ово ради исту ствар те осам линија кода раде. Дакле, овде желим да створе променљива низ. И то је услов да сам провере, ако је број је мањи од 100, онда доделити вредност ниске, друго доделити вредност висока. Ови слајдови ће бити онлине, без бриге ако ви не ово доле. Ово је само једноставнији начин, а Више ефикасан начин писања кода. ОК. Дакле, сада ћемо унесите Шта, за већину људи су као веома, веома збуњујуће ствар коју треба размишљати о на први поглед. Секција петља. Дакле, данас ћемо да причамо око три врсте петљи. Ми ћемо почети са мало петља, онда говоримо о радити док петље, и онда причати петље. У суштини, за више визуелни ученици тамо, имамо, у суштини, а грапхицал приказ онога што вхиле петља ради. Дакле, у програмирању, ти би почети и ући у петљу у одређеном тренутку. Ти провери стање. А ако је услов је истина, извршите код унутра. А ти се вратити около и проверите. Ако ипак је истина да настави са радом овај код около и около у петљи. Међутим, други који услов постане фалсе, да ћеш сломити и завршити петљу. А ово је у суштини синтаксе ћеш користити. Док одређени услов истина ово, ако то није истина, ти ћеш прескочити до краја и кренути напред са својим програмом. ОК. Да ли неко има пример о томе шта може да се деси потенцијално ако покушам да покренем овај део кода? Успут, САЈ-- то је Сцаз, Анди, Јасон-- ћемо потписати са наше е-маилове, Љубав, САЈ. То смо ми. ОК. Свако има пример, или да идеја о томе шта би то принт? Врста трик питање. Ево, сећам се стање смо проверу је док истина. Дакле, док је ово истина, то је łтампања, волим САЈ! Има ли смисла у којима бисмо промените то било другачије? Не, зар не? Дакле овде имамо наишао шта је вероватно ће се мучи много ваши програми, бесконачна петља. Наћи ћете да ако покренути овај део кода, само ће задржати штампа, волим САЈ! Док ценимо подршку, не желимо своје компјутере да се сруши због тебе задржи штампање Волим САЈ! Зато молим те, молим, избегне бесконачну петљу јер се то никада неће проценити на фалсе и више никада нећеш да напусти петљу. И ти ћеш се усисава у заувек. Кул. ОК. Други тип петље причаћемо о данас је радити док петље, док петље уради. И то се зове радити док петља јер имате радите и времена. Дакле, ово је прилично сличан време петља, али мало другачије. Овде ћеш да урадиш без обзира да унутар овог док одређени услов је истина. Дакле, ако сам ја Ц и компјутер досадно трчи овај део кода, Погледам на врху. Идем на Ц, кажем радим ово. И онда сам провјерити, а ова је истина, морам да га поновим. Али, док је лажна, онда кренути напријед и никада вратити на ту петљу поново. Може ли неко узети убод у чему је разлика између овог петље и оне коју само погледао је практично. Да. СПЕАКЕР 15: Стање долази након што уместо раније? Анди Пенг: Управо тако. Дакле, она је рекла стање долази после, а не пре. На крају, разлика између овог и вхиле петље да ћеш само да урадите шта год је унутра, без обзира на да ли или не ваше стање је истина, а затим проверите стање. Дакле, у овом случају, ти си ми увијек на овај начин, ви увек пазећи шта год да је унутра ради најмање Једном пре него што се проверава Ако желите да поново покренути. И овде је пример од кад бисмо га користити. Тако на пример, ако сам желео да имам променљива типа инт по имену старост, и желим да подстакне корисник за њихов узраст, Ја ћу да урадим принтф () Колико имаш година? старост = Тоноване (), која је навело корисника. А неки људи ће бити заиста досадан. А ти не желиш бубе у вашој Програм некога унос као, Ох Ја сам негативна 4 година или шта већ. У том случају, ако то, то оцењује да истина, што значи да ћу морам да наставим даље уназад и радим ово. Дакле, ово ће задржати Поново је навело корисника да ти дам као прави старости број и то је Наставићу да иде назад и редоинг то док не вам дати прави године већа од један, или не нула. Тако наговештавају, наговештај. Ово ће бити веома, веома корисно за једну од ваше проблеме ПСет. Да. СПЕАКЕР 16: Упс, извињавам се. Анди Пенг: Да. СПЕАКЕР 16: Има ли, не да буде кретен, али- Анди Пенг: Без бриге. СПЕАКЕР 16: --аре тамо различита правила овде, или сте једноставно заборави ставити цитат? Анди Пенг: О Да. Жао ми је, то је потпуно моја грешка. То је дефинитивно требало да буде цитат. Добар улов. То не би покренути. ОК. Дакле, последњи тип петљи причаћемо о томе и, на крају, некако највише комплекс је за петљу. Не брините ако не Знаш шта то значи. То је прилично збуњујуће на први поглед. Идемо преко примјер. Све што се догађа у фор петљу је да имате три изјаве да идеш да укључите. Дакле, за одређену ствар, ти си ће да покрене променљиву. Идеш да додате услов да који ће ове петље наставити да ради. А онда, на крају овог петља, ти ћеш га ажурирати. Можете ажурирати променљиву да желите да пратите. Тако смо обично користе за петље за када смо желите да покренете петљу Фор а одређена количина времена а већ знамо, О желим Ова петља извршава као 10 пута, онда Па-- Идем преко пример на следећој страни. Па ево, на пример, у Сцратцх, ако вас хтео несто да понови 10 пута, све што је имао да кажем, поновите 10 пута И лове САЈ! што је прихватљивије Схов подршке за нас уместо инфините лооп. Ево, како би Прелазак на Ц и писати да је за инт-- ћу да креирате или прогласи променљиву типа инт по имену и. Идем да се покрене је на 0, па сам = 0; а ово ће бити моје стање. Па сам је мање од 10. А онда на енд-- последња изјава си ће имати је ажурирање шта се дешава са променљива и на крају ти за петље. Тако је некако збуњујуће, јер различити делови ове линије се дешава на другачији врсте петље. Али ја ћу више од Псеудокод примјер тога и можда објаснити само мало боље. Тако овде. То је петља смо управо видели. У суштини у псеудокоду, оно се дешава у овом програму, је први Ја стварање И, иницијализацију до 0. Гледам да видим да ли је мање него 10, у ком случају први пут је јер је 0 је мање од 10. Тако је петља ће се покренути. А онда ћу да одштампате ову линију. И онда на крају ове линије, зар не овде, ја ћу да урадим пораст Ја, ја ++, Све то значи је то се увецава за један. Па сам је сада 1. Зато што је некад био 0, ако прираст је, сада је 1. А онда ћу да се вратим на почетак петље и да проверим стање. Да ли је услов и даље истина? Да, 1 је и даље мање од 10. Тако да ће поново да одштампате ово, иди и онда сам прираст, и проверите услов континуирано, непрекидно, док се на крају добили до тачке где сам је 10. Идеш да одштампате 10 пута а онда сам се да једнака 10. Идеш да проверите стање. Да ли је 10 мање од 10? Не, то је погрешно. Дакле, ово петља се не иде да побегне, да ће сломити, и ти ћеш наставите са кодом. Дакле, као ви можете да видите, ово је стварно сјајан пример петље можете програмирати у томе траје одређени износ пута. Свако јасно? Да. Звучник 17: Како прираст експоненцијално, то је другачије кодирање? Анди Пенг: Ви можеш-- идемо због овога у следећем слајду. Добро питање. Да ли је анионе-- пре него што кренем ајде-- неко уопште збуњен, јер ово је заиста тежак концепт. Без бриге, ако ти си-- реду. Кул. У реду. Само опште слајд. Ово док петља у ствари ради иста ствар фор петље је. Само је написано другачије. Ви можете прегледати слајдове ат иоур цонвениенце касније. Али, само знам да има вишеструки начини писања исту ствар да се деси са различитим петљи. ОК. Дакле, сада смо добили у питању шта ако имамо петљу унутар петље. Одлазимо у реалном Инцептион тип ствари овде. Када желите да урадите ствари мултипле пута унутар о другим стварима да ствари више пута, хвала Желим оно што се зове угњеждени за петљу. За оне који први пут види ово и се веома збуњени, сви ми радимо овде има фор петљу где имамо променљиву реда. Али унутар ње, имамо и други фор петља променљиве назива колоне а. И веома предлажем свима вама који су збуњени да задржи прво трацк-- драв ово, извући ово. Не покушавајте да само разлог кроз њега, извући га. У твојој глави, на овом комаду папир, или шта год, пишу ред, пратити шта ред је једнака. Напишите колону, пратити онога што колона једнака. И пратити шта је штампање са сваким понављањем. Сваки итерација ове петље, сваки итерација тог већег петље, само настави да следећи логику. И гарантујем ти, ћете волети оно што видите, јер је такође веома применљив за ваш проблем поставе. Кул. У реду. Дакле, најважнија ствар да сте вероватно сви о томе мислим, су ваш проблем Сет 1с, који су због четвртак / петак. У вашем програму ватер.ц, хинт ћеш имати да подстакне корисника за улаз. У оквиру вашег програма марио.ц ћеш имати да користи угњеждени фор петљи, које је а за петљу унутар фор петљу, да одштампате блок пирамиде, у суштини као шта Марио има преко скок. А онда унутар ваше грееди-- или можда Макинг Цханге, ако неко од вас никада није цуо за то-- ти ћеш морати да буде веома опрезни првих покретном зарезу. Не заборавите флоатинг децимале и цели бројеви нису иста ствар. Пратите од којих је једна која. И ти ћеш користити условна исказа, као и. У реду, последња ствар. Имам пар минута. Стил. Дакле, ово је нешто што не заправо утиче на ефикасност, или стварна вођење кода. Међутим, нас ефекти као Ваши грејдери, као вашим читаоцима. То се утиче, ако сте покушавају да пронађу проблем. То утиче на читљивост кода. Тако стил, као када покушавате да стил есеј за енглески, ако није имао ставове, имате све кинд од испретурани заједно на једној линији, да чини заиста тешко за било кога да чита свој есеј, чак и ако Ваши поени су логички звук. Иста ствар у програмирању. Можете имати страшно нејасне Код која ће покрити Сцаз, и још увек може покренути и функција. Али за нас, тако да ваша дивна тас, који ће читати и евалуацију своје ПСетс, то није лепо. Зато вас молим, ради од нас и себе, када покушавате да поправите проблем у вашем коду, а ви покушавате да прочитајте свој код, направи Сигурно сте пратили неке конвенције да ћемо ићи преко. Дакле, прво. Дајте своје променљиве асоцијативна имена. Ако желите да сачувате цео број зове старост, молимо вас реците године. Не реци висину. Када покушавате да похрањује године у висини, чини све веома збуњујуће за нас. Ми не волимо да се збуњени. Не волим да се збуњени. Нико не воли да буде збуњен. Ако ћеш да створи нешто, назовите га нешто смислено. Међутим, у фор петљу, један променљиве знакова су обично добро. И у фор петљи, ако желите само ја, и Ј, К, слободно то да урадиш. Доследно иницијализација. Дакле, шта то значи? То значи технички, теоретски, можете покренути и створити више варијабле на истој линији. Тако, на пример, могу створити цео број се зове сцаз_аге, и цео позвао анди_аге = 20, и цео број се зове јасон_аге на истој линији. И такође може доделити само један од њима, а не други вредностима. Молимо вас молим те немој то да радиш. Јер, овде у суштини сте направили три променљиве, али само један од њих заправо има вредност. И онда када смо Покушавам да прочитам свој код, или ако покушавате да поправите проблем у вашем коду, то је врло збуњујуће пратити. Дакле, само за вашу читљивости, за наш читљивост, не ради то. Доследне цурли протезе. Неки људи воле да ставе цурли протеза на различитим местима. Није битно. Само се уверите да сте доследни у вашој властити код на којој желите да их. Доследно размак. Ако ставите размак после фор петља, увек то. Не баш као врста то на нека места, не ради то у другима. Само будите доследни. Друго, ако неко жели да прегледати на ЦС50 Стиле Гуиде, званично имамо водич стил који говори вас све од ових конвенција, Плус више. То је онлине. То је као цс50.нет/стиле~~побј или нешто слично. Можете га гоогле. Доследност је кључ. Дакле, не брините шта други људи раде, Само проверите да ли су у складу унутар своје коду. Свако има било каквих питања у вези с тим? Да. СПЕАКЕР 18: Дакле, права ствар у вези са иницијализација је само има их све у посебан линија, је ли то хоћете да кажете? Анди Пенг: Па ја ретко се ово догодило. Али, ако сте желели да, ако желиш да будем као уштеду простора у вашем коду, или шта год, можете да урадите ово. Молимо вас да једноставно не инитиализе једна ствар, а не други. Дакле, ако желите да урадите инт сцаз_аге инт анди_аге, Инт јасон_аге, то је у реду. Само не инитиализе један а не други је све. Питања? У реду. Ја ћу проћи Офф тхе микрофон, и ласерски показивач, и штафету Сцаз у овом тренутку. Ово је непријатно. Ево га. Бриан СЦАССЕЛЛАТИ: Хвала. Како је то за звук? Звук је добар? . Одлично. ОК. Дакле, здраво свима. Ја ћу покушати да раде преко практичан примјер са вама. И ми ћемо користити ЦС50 је развојно окружење, како се зове Интегратед Девелопмент Енвиронмент. А сте видели ово показано у предавању. У Проблем 1. сету, ти си ће имати прилику да га користи, и играти се са да, и да се навикао на то, јер ћемо га користити кроз краја семестра. Дакле, у овом ИДЕ, имате оно што изгледа као веома традиционални претраживача филе преко на једној страни. Имаш део горе Топ где идете да видим изворни код, ЦФиле, код које сте написали. А доле доле, ви ћете има прозор терминала који ћете користити за како саставити свој програм и да се покрене или изврши свој програм. ОК. Дакле, само да нам мало фондација, у том прозору терминала, ти ћеш бити користећи скуп команди које су стандардне команде широм већина Уник или Линук системима. И тако ако сте икада користили Било какав облик Уник, Убунту, или било ког другог укуса, ово ће изгледа познато. Ако нисте, не брините. Нема ништа компликовано о њима. Они само користе другачији синтакса, другачији именовање Конвенција од тебе сам и раније. Тако на листу од датотеке у оквиру одређеног директоријума, они ће да користи команда под именом лс, или листу. Ако желите да видите све са свим детаљима, ћете користити команду линија Аргумент са лс -л. И то ће вам показати све детаљније, укључујући дозволе за датотеку. Да бисте променили именик, ћете користити цд команду. И моћи ћете да промените директоријум како да одем у кућном директоријуму. То је само цд свега Сама, ЦД са два тачкице ће вас вратити до једног Ниво на претходни директоријум. А можете ЦД до А поддиректоријуму уписивањем цд а име тог директоријум. Такође можете креирати нове директоријуме. И ми ћемо ходати кроз ово за минут. Али само ставити све на екрану. Тако да можете да их видите. Такође ћете имати могућност да манипулишу фајлове директно из командне линије. Моћи ћете да их копирате, на преместите их, или да их уклоните, то јест, ефикасно, да их обрисали. ЦС50 ИДЕ вам даје пуну снага аргументе командне линије. А то значи да можете такође раде врло опасне ствари. ОК. На пример, можете уклоните, или да је брисање, фајл без питања за потврду. А можете чак и уклонити рецурсивели-- то црта Р флаг-- Читав поддиректоријум и све његове садржине. ОК. Они наведени у црвено, јер вас треба да "опасност" сваки пут видиш те ствари. ОК. У реду. Сада коначно, ствари које су Биће заиста вредно за вас, постоје неколико добрих трикова да знам како ви крећете кроз овај прозор терминала. Прво, можете обрисати екран у сваки пут тако да откуцате у јасно. И ти ћеш видјети ми то урадити врло често. Можете само приказати текст датотеке куцањем више и онда име датотеке. Тада ћете моћи да кретање уназад и амо да само са размак и стрелице. Ако имате, као што смо урадили данас у предавању, програм који је покренут у континуитету у бескрајној петљи, ви може да заустави тај програм да изврши тако што ћете унети у контроли, да се држите Цонтрол-Ц. А можда ћете морати да урадите ово више пута. Рачунар добија далеко испред вас. А некада је неопходно да дајте му пар покушаја пре него што ће заправо проћи. Такође ћете бити у могућности да врста кроз команди да сам откуцао користећи горе кључ, стрелице, а затим надоле. А шта је најкорисније је уместо куцања од дуге имена фајлова, моћи ћете да картицу користите да довршимо неколико упутства. Сада ћемо да покажемо свих оних који су само секунду. Дакле, ако се не сећате их, не брини. То су ствари које ћете покупити и користити као успут. ОК. Дакле, у ц-- за разлику од Сцратцх-- Ц је саставио језика. То значи да ћемо узети извор филе-- то је текст који сте написали, команде које пишем, принтф () изјава, петље, све елсе-- и идемо да тај фајл и предати га са програмом који се зове компајлер. Преводилац ће онда узми да текст који сте написали и превести га у бинарни упутства да је рачунар заправо догађа коришћење. То се зове објекат или извршни фајл. Ако погледате ове датотеке, идеш да видим код који сте написали. Ако погледате ове датотеке, идеш да види случајни низ знакова да би уопште нема смисла. То је зато што је бинарни. Није намењено да се чита. Међутим, сваки пут када желите да рун нешто, шта ћеш да се ради је овај објекат фајл. Дакле, када радимо са њима фајлова, ми ћемо написати датотеку у Ц. Затим ћемо га саставити, користећи команда као произвођача који ће позвати преводилац цланг за Ц језику. И то ће произвести објекат филе, као аута, или у овом случају, име, мој досије, да сам ставио у. У реду. Дакле, хајде да пробамо ово стварно. Тако сам смислио пример онога што сам хтео да пробам. А једна од ствари која фасцинира ме да је анимација. Тако ћемо покушати да урадимо мало анимације користећи само АСЦИИ знакова. Ликови можемо одштампати лако сада. Дакле, овде је мој најбољи покушај стварања за вас анимације једног зеца пролази кроз високу траву. Ево га. ОК. Дакле, он не ради увек, али је стајао у високој трави. Сада да сам аниматор, у старој школи верзија анимације, што сам урадио је да сам произвести слика овог зеку у трави. И онда бих производе друго ну слику друго оно што су назвали целл-- да је зека само мало померила. А онда трећи који је имао зека преселио мало даље. И ја бих произвести читав редослед ових ћелија. Неки где је зец преко на левој страни. А онда се полако помера, један по један према средини. А онда од средине у десно. А ако сам ја тада, заиста среће, могао бих га ставити заједно и ја могао да их анимира. А ту је и мој зека пролази кроз траву. То је моја велика Поверпоинт трицк за тај дан. ОК. Дакле, ово је добро као што добија. ОК. Дакле, овде још једном, овде је наша бунни пролази кроз траву. СПЕАКЕР 19: Опет. Бриан СЦАССЕЛЛАТИ: Један више времена, у реду. Ево ти зека. ОК. Дакле, данас шта ћемо да урадите је да идемо покушати да аутоматизацију процеса за производњу ових ћелија. Нећемо баш доћи до тачке бити у стању да их све заједно. Али, ми ћемо покушати да аутоматизују Процес стварања ове секвенце. И ово је много чега данас анимација је слично. То јест, не радим ствари нужно цртајући све по руци. Ми користимо рачунар за аутоматизацију делови тог процеса. ОК. Тако да ме пребацити Сада нашем ЦС50 ИДЕ. И ја сам створен за нас-- и нека ми зумирати овде мало бит-- сам створена за нас полазна тачка. Сваки пут кад смо вас да седнемо доле и написати део кода, оно што стварно вас да урадите се тражимо да реши проблем. И начин на који би требао размисли о то ради је по почевши са неким једноставно део тог решења. А онда градити из тог дела. И то је оно што ћемо да радимо данас. Дакле, уместо да одједном да напиши целу гомилу кода који је да произведе оне 10 анимација ћелије, ћемо уместо почети са једним делом који ради. А онда ћемо изградити мало око тога и мало више и мало више. Сада је добра ствар у вези Решавање проблема на овај начин је да ће вам омогућити да почнете увек са нечим што знате ради и увести један постепене промене. И то је одличан начин да науче како да кодирају, јер сваки пут када направите промена, видиш какав утицај то има. ОК. Дакле, овде је наша полазна тачка. ОК. Дакле, на почетку мом досијеу, Имам хасх #инцлудед стдио.х. То је тако да могу добити иф () функцију да ради. Онда имам главну функцију. И то још увек изгледа мало волшебни или нејасно да неки од вас. То је ок. Све што каже је да је Основна функција прихвата Не аргументс-- воид средства ништа у Ц. и ИТ враћа по конвенцији цео број. Главни увек враћа цео број, обично код говори ствари је добро или није добро иде. ОК. Али главна мора да има да форму за нас сада. Ја тада нисам ставио у три линије кода. И уз сваку линију код сам ставио коментар. Сада једна од ствари која ми ћемо инсистирати да радите, и то је тако важан програмирање пракса, је да увек коментарисати свој код. Увек записати у Енглески коментар нешто да ли мислите да је код је требало да уради. На тај начин, касније када се вратите у да, можете да погледате и може се рећи, Ох, сећам се шта сам покушавамо да урадимо са овим. Или када ТА седне са вама покушати да вам помогне у радног времена, могу погледати ово и иди, ја види оно што сте покушали да урадите, већ је ово шта се стварно дешава. ОК. Дакле, имам три дела мог кода, Ја ћу пре свега штампе од неких тачака на почетку. Тада сам отштампати мој изузетно фенси зека. А онда неки мало тачака на крају. И ове три изјаве треба принт ти познато у овом тренутку. Све што радим у сваки од њих је сам штампање низ знакова. Нема варијабле укључене. Све је равна. ОК. Дакле, ако одем доле у ​​мом терминал-- хајде да видимо да ли могу да добијем ово назад оут-- и ја ћу поново да куцате јасно. СПЕАКЕР 20: Да ли користимо двоструке косе коментар? Бриан СЦАССЕЛЛАТИ: Цан користити доубле-- да. Постоји више начина остављају коментаре у Ц. Оне начин је да користите двоструке косе. Други је да користите косе црте и звезду а затим затворите са звездом и косом цртом. У реду. Пре свега, ја ћу почнете са навигацијом овде. Дакле, ако одем у мом хоме директоријуму, Променио сам директоријума тамо, Идем да погледам и видим шта је у том директоријуму, ли, лист напоље. Идем да видим да имам Имам два подименика. Нека ово буде мало већи овде тако да сви могу да виде. Видим да имам Имам два подименика. Ја ћу променити директоријум да иде у радни простор. И ја ћу само откуцати део тога, а онда само притисните тастер Таб. И то ће завршити остатак за мене. Лепа. Ја ћу гледати и видети у радном простору. И сада, радим на СуперСецтион да ми предаје одмах. Зато идем у тај директоријум. И на крају, погледајте и видите. И ја имам ту слику бунни.ц. У реду пусти ме да још једном јасно. И ја ћу опет сам сада-- и даље остати у том директоријуму и то ми говори да сам у да СуперСецтион директоријум. Ја идем напред и да мој програм зеку. И то команда, да зеку, док звучи мало чудно, Такође се позива на Цланг компајлер. И то је произведен за ми излаз који је извршну духовито извршни фајл под називом зеку. ОК. Ја тада могу, и ово звучи што је још горе, изврши зеку. ОК. И да видимо шта ради. ОК. То је мало оно што сам очекивао. Имам свој буннифотографиа тамо, али све сам хтела сама по себи. Шта сам пропустио? СПЕАКЕР 21: Сласх л или смањити бр. Бриан СЦАССЕЛЛАТИ: Сласх н. ОК. Дакле, хајде да се вратимо овде. А ја ћу изаћи из тога. А ја ћу се вратити у овај. И хајде да погледамо сада из мог основну функцију овде. Дакле, шта да радим? Желим да завршим линију. Зато ћу ставити у коментару. Ставићу у принтф (). И шта ја имам да ставим унутра? / н. ОК. Оно што морам да га заврши са? Зарез. У реду. Сада, један од заиста важне ствари је бити сигурни сваки пут када направите промену у коду, да га спасе. Ако нисте сачували своју шифру, ти си да ли приметили мало звезду. И то са вас каже нису сачуване овај код. Ако га саставити сада, није да одражавају било који од тих промена, јер компајлер гледа у датотеци то је на диску, а не фајл који је отворити у вашем едитору. У реду. Дакле, хајде да га сачувате, а онда идемо право на доле, врати се. Дођи у моју терминала. И хајде да обришете поново простор. И можемо да идемо напред и још један Време чине наш бунни програм. И изврши зеку. То није успело ни. Погрешно Сласх. Дакле, ако се осврнемо на оно што имам, Ставио сам / н, тамо, али сам имао погрешну косу црту. Све што ваш рачунар Да ли је веома експлицитан. ОК? Једна мала грешка интерпункције, и изненада не добијете оно што желите. У реду. Дакле, хајде да поново увећали поново. Ми ћемо се вратити. Па да то врло брзо поправку. Ми ћемо ставити праву косу црту у. Ми ћемо га сачувати. Ми ћемо зоом назад. Из неког разлога, то није бити срећан, али идемо напријед па ћемо да се вратимо на терминалу овде. Очистите га. Ми ћемо увећање. И још једном, ми ћемо направити зеку. И сада сигурно довољно, ради. Ура. ОК. Дакле, хајде да покушамо да ово мало општији. Да видимо да ли уместо само штампање један посебан оквир, хајде да видимо да ли можемо да ово тако да можемо добити све 10 од тих анимираних оквира да смо хтели да имамо. Дакле, опет, узмимо ово корак по корак. Хајде прво да генерализујем, не тако да радим све оквире, али тако радим било кога оквир да можда желите. Дакле, шта је разлика између кадрова? Да ли је зека исто? ПУБЛИКА: Да. Бриан СЦАССЕЛЛАТИ: Да. Каква је разлика? ПУБЛИКА: Позиција. Бриан СЦАССЕЛЛАТИ: Његов положај, зар не? И како ја контролишете своју позицију? Колико тачака сам стављајући на почетку и колико тачака сам стављајући на крају. Дакле, имао сам пет На почетак и пет на крају. Хајде да замени ту пет са фор петљу. ОК. И ја ћу да се створи за петље сада да ће рећи, Идем да одштампате неки број од тачака на почетку. Ја ћу користити променљиву. Рецимо, како би било да као бројач у мојој петљи. И ја ћу да га прогласи одозго. А онда у фор петљу Морам да урадим три ствари. Прва ствар коју треба да урадите је Морам да ја покрене. Шта би требало да инитиализе је да почнете да буде? 0. ОК. Онда морам да кажем, шта је престанак услов? Када треба да престану? Па колико тачака зар не желите да одштампате на овоме? ПУБЛИКА: Пет. Бриан СЦАССЕЛЛАТИ: Пет поново? Како хајде да урадимо нешто другачији, јесмо пет. Покажимо да је другачије. СПЕАКЕР 22: Два. Бриан СЦАССЕЛЛАТИ: Два. ОК. Дакле, ако желим две тачке, Шта да радим овде ставио? ПУБЛИКА: Три. Бриан СЦАССЕЛЛАТИ: Три. ОК. Колико пута је то пролазити кроз? То ће проћи кроз три пута, 0, 1, 2 и, зар не? У реду, хајде да се вратимо до два. Сада ћемо добити две тачке. И шта желим да радим сваки Време идем кроз петљу? Оно што мора да се мења сваки пут кад одем кроз? СПЕАКЕР 23: Додајте тачку. Бриан СЦАССЕЛЛАТИ: Морам да наставим. Ја ћу додати тачку. Идем да одштампате тачку, сваки пут кроз петљу. Али како сам ја праћење како много пута сам кроз петљу? Ја користим ја, то променљива, да бројач. Дакле, сваки пут кроз, идем за повећање бројач за један. Дакле, то је исто за ја који је рекао и = и + 1. То је ок. Могао бих то да урадим то-- Свиђа ми се скраћеница, тако да ћу рећи и ++. ОК. Хајде да урадимо исту ствар доле на дну. Само ја јесам ту. Ја ћу са вама нека урадите ово у потпуности. У реду. Дакле, шта треба да пишем овде? Ево моје за петљу. Ја ћу да урадим принтф () и ја идем да се направи тако да сам само једну тачку штампање на том дну. Шта би требало да напишем унутар ове петље за сада? Па, пре свега што варијабле би требало да користим? СПЕАКЕР 24: Ј. Бриан СЦАССЕЛЛАТИ: Ја би ј. Могу ли да користим исти такав? Да ли могу да користим опет? Да. То је у реду, јер је Ис да ја користим овде, Ја их не поново када је потребно Ја се до ове тачке. Дакле, шта би требало да ја иницијализирати да? СПЕАКЕР 25: 10. Бриан СЦАССЕЛЛАТИ: 0. Шта да проверим? Колико тачака ја сад треба на крају ако имам две тачке на почетку? Морам осам на крају, па шта треба да проверим, ја мање тхан-- ПУБЛИКА: Седам, осам, девет. Бриан СЦАССЕЛЛАТИ: Чуо сам седам. Чуо сам осам. И чуо сам девет. ОК. Дакле, сви смо у праву балл-- Џејсон каже 10. ОК. Ако је потребно два тачке за први, колико радим Ја и морам осам тачака за последња једног-- Ставио сам два изнад, шта треба да спустим доле? ПУБЛИКА: Осам. Бриан СЦАССЕЛЛАТИ: Осам. Зато што ће се Цоунт Зеро кроз седам. И то је осам пута кроз петљу. ОК. И шта ја треба да урадим на крају? ПУБЛИКА: и ++. Бриан СЦАССЕЛЛАТИ: и ++. У реду. Тако да изгледа прилично добро тамо. Хајде да покушамо и да видимо шта ради. ОК. Дакле, идемо да га спаси. Лепо и спасио. Ми ћемо зоом напоље. Покушаћемо овде у терминалу. Ми ћемо увећање. Упс. Ми ћемо, још једном, чине наш бунни програм. И напред и извршити зеку. И то је то. Тако да је наш зека. Где има два тачке на почетку и осам тачака од крајем. Сви и даље са мном? ОК. Тако смо га изградили. Направили смо једну зеку, један посебан оквир. Сада смо били у стању да генерализовати да за изградњу више, различите врсте рамова. Сада идемо напред, и имају да генеришу не само један оквир, али хајде да генерише 10 оквири, где смо полако чине зека иде алл пут преко поља. У реду. Хајде да се вратимо. И ми ћемо покушати сада. Дакле, шта стварно морам да овде променим? Оно што ми је потребно да се промени? СПЕАКЕР 26: Прво треба да промените бројем тачака максимално у почетку. Јер ако радимо 10 тачака, то ће морати да до размери. Бриан СЦАССЕЛЛАТИ: Да. Тако да сада имам то на неки начин хардвиред да увек уради две тачке на почетку и увек осам тачака на крају. Желим да се изгради још једну петљу, зар не? Зато што не желим да изгради само један буннифотографиа, Желим да се изгради 10 Бунни Пицтурес. Дакле, ми треба да се изгради још једну петљу, и као што сам проћи кроз ту петљу, Желим да променим колико тачкице да штампам на почетку и колико тачака да штампам на крају, на основу које циклус кроз петљу Ја сам у. У реду. Дакле, идемо још један бројач. Неко је већ рекао ј па ћемо направити још један ј. А сада, идемо у изгради други за петљу. Шта се унутар тог петље? Ове ствари мора да иде унутар петље, зар не? Да ли има зека да уђемо у петљу? Да ли је потребно зеку у сваки од тих 10 рамова? ПУБЛИКА: Аха. Бриан СЦАССЕЛЛАТИ: Да. Желим зеку у сваком од 10 рамова, зар не? Како о тачкама у крај, ми треба то? ОК. Зато ћу да увучете свима њима. Ја ћу да истакнем све ово, а ја ћу да ударим Таб. И то ће да их гурнути свуда мало, тако да је лако за мене да видимо шта је у петљи. И онда ћу га завршити. Рецимо. ОК? Сада, у овом петљу да Ја сам буилдинг-- Упс, да тако можете видео-- Имам своју контра ј. Ја ћу га почео у 0. Колико пута желим проћи кроз ову петљу? ПУБЛИКА: 10 пута. Бриан СЦАССЕЛЛАТИ: 10 пута. Па шта број треба да ставите овде? ПУБЛИКА: 9, 10. БРИАН СЦАССЕЛЛАТИ: 9, 10, Неко мора да каже 11, зар не? Хтео сам два тачкице пред и пут и мање од 2. Хтео сам осам тачака, Ја сам ставио мање од 8. Сада желим да прођем кроз 10 пута, па сам ставио ј мање тхан-- ПУБЛИКА: 10. Бриан СЦАССЕЛЛАТИ: 10. Ево га. А шта да радим на крају до ј? ++ Повећајте га. ОК. Дакле, овде је тежак део, шта је ће се догодити одмах ако урадим ово? Да ли ћу да одштампате 10 фрејмова? СПЕАКЕР 27: Мислим да је сви они ће бити исти. Бриан СЦАССЕЛЛАТИ: они ће сви бити исти, зар не? Због свих њих још увек траје ставити две тачке на почетку. Али ја не желим да их све има две тачке на почетку. Колико тачке И радим Желим на почетку? ПУБЛИКА: Промена. Бриан СЦАССЕЛЛАТИ: Ја Желим да то промени, зар не? Дакле, шта имам овде да се мења сваки пут петља пролази кроз? ПУБЛИКА: Број тачака, Ј. Бриан СЦАССЕЛЛАТИ: Ј, број тачака. Тако да можете да промените да се ј. Први пут кроз петља, шта је то ће бити? Шта сет ј да на први поглед? ПУБЛИКА: 0. Бриан СЦАССЕЛЛАТИ: Колико пута ћу то учинити? 0. Други пут кроз петљу, Ј'С ће бити 1 јер сам га повећавати. Колико тачака ћу да одштампате? 1. Трећи пут кроз петљу, колико тачака ћу да одштампате? ПУБЛИКА: Три. Бриан СЦАССЕЛЛАТИ: Ј ће бити 3. Колико тачака ћу да одштампате? Ох, извините, Ј ће бити 2. Колико тачака ћу да одштампате? ПУБЛИКА: 2. Бриан СЦАССЕЛЛАТИ: 2. У реду, тако да ћу задржати инцрементинг да у ходу. Како доле? Шта се овде доле? Не желим 8 увек на крају више? СПЕАКЕР 28: 10. Бриан СЦАССЕЛЛАТИ: Хоћу 10 тачака? Желим да то промени. Како желим да то промени? ПУБЛИКА: [неразумљиво]. Бриан СЦАССЕЛЛАТИ: Па, ако има пет тачака на почетку, Колико тачка је да се на крају? ПУБЛИКА: Пет. Бриан СЦАССЕЛЛАТИ: Ако имам шест тачака на почетку, колико ћу добити на крају? ПУБЛИКА: Четири. Бриан СЦАССЕЛЛАТИ: Ако сам седам тачака на почетку, колико ћу добити на крају? ПУБЛИКА: Три. Бриан СЦАССЕЛЛАТИ: Ако сам Имам ј тачкице на почетку, колико ћу добити на крају? 10-Ј. ОК. Дакле, хајде да покушамо то. Зато ћу да спасим нашу бунни програм. Још једном ћемо умањили. Идемо до нашег терминала. Ми ћемо то јасно. И зоом ин. Направићемо нашу бунни програм, поново. И ми ћемо га погубити. Ух. Држи се, идемо зоом оут. Да ли сам добио 10 фрејмова? Па, колико зеке ја видим тамо? 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Имам 10 фрејмова. Јесу ли они сви исти? ПУБЛИКА: Да. Ne. Бриан СЦАССЕЛЛАТИ: Не То први, зека је далеко са леве стране. И овде, зека је далеко на СПЕАКЕР 29: Тако је. Бриан СЦАССЕЛЛАТИ: Па, шта сам заборавио да урадим? СПЕАКЕР 30: Започните нову линију. Бриан СЦАССЕЛЛАТИ: Заборавио сам да започне нову линију, поново. Иста грешка што сам раније направио. У реду, идемо поправити. Сада, ја сам увијек имам код тамо да направи нову линију. Зашто не ради? СПЕАКЕР 31: То није унутар петље. Бриан СЦАССЕЛЛАТИ: О, није унутар петље. Тако је. То је седи напољу овде. А за петљу је све то је у том тексту. Тако да ћу прећи ово унутар фор петље. И ја ћу Таб испред њега на показују да је на правом месту. И сада, ми ћемо га сачувати поново. Ми ћемо зоом оут. Ми ћемо прећи на нашу терминала. Увеличати. Ми ћемо ремаке нашу бунни програм. И сад, сад имамо своје 10 оквире. [Цлаппинг] Бриан СЦАССЕЛЛАТИ: У реду. Prema tome. Овде је наш угнијежђени за петље. Ми смо били у стању да генерише у Унутрашња петља колико сам желео тачака да одштампате на почетку, на крају. И спољни петља контролисана колико фрејмова сам градио. Почели смо са једну малу Језгро проблема, и изградили смо из те тачке. У реду. Хајде да урадимо још један корак. Јесте ли спремни? Има једна ствар у којој овде ми смо заправо некако имам више сложености него што је потребно. Хајде да погледамо. Тако је у нашем програму бунни, ако зоом овде, Ја стварно раде неке исто ствар изнова и изнова. Шта да радим да је то нека врста иста ствар понавља два пута? СПЕАКЕР 32: Принт тачке. Бриан СЦАССЕЛЛАТИ: Да Ја принт те тацке два пута. Стварно, треба да има Овај коментар овде. Ја принт неке тачке у почиње, одмах овде. А онда сам одштампате неке тачке на крају. И ја некако потпуно исту ствар. Шта ћемо да почне ради на у наредних неколико недеља је у стању да те блокове код које смо изнова и изнова користе поново, и кроз процес зове апстракција, ћемо их извући и напиши их некада тако да онда можемо поновно их изнова и изнова. Дакле, хајде да покушамо то. Спреман? Ми ћемо искористити ову блок кода. И ја ћу да га узмем одатле. И ја ћу да дефине-- доле на дну, Ја ћу да напишем нову функцију. Неће ништа да се врате. И ја ћу да га зовем принтДотс. То ће трајати један Аргумент, цео број који каже ховМаниДотс Требало би да штампа. И сада уместо штампања ј тачке, ја ћу принт реци ховМаниДотс би требало да штампа. И тамо је овде један мали проблем. Да ли неко зна шта је то? Шта ја имам да је наведена овде то није дефинисан? ПУБЛИКА: [неразумљиво] Бриан СЦАССЕЛЛАТИ: Па како много тачака је дефинисана одмах овде, али ја користим ту и променљиву. Зато ћу узети ту променљиву ја и ја ћу га дефинише овде доле уместо тога. Дакле, сада ће то стаи-- Д, Гот Тхе цапс лоцк на сомехов-- сам да држим овде доле. И сада ево мој мали функција или суб-рутина, и каже, колико тачака ћу да одштампате? И то ће проћи кроз ову петљу и принт их изнова и изнова. Тада сам може да измени свој програм овде. А шта ја то зовем функција? принтДотс. Тако да ћу звати принтДотс. Колико тачака желим да одштампате Први пут пред зеца? ПУБЛИКА: Ј. Бриан СЦАССЕЛЛАТИ: Ј. Колико тачака желим да одштампате На крају, после зеца? 10-Ј. И постоји једна ствар ми недостаје. Као што сте видели данас у предавању, ћемо прогласити принтДотс до изнад да би се добио прототип. ОК. Дакле, оно што сам урадио је да сам покушао да изолују да се поново користи део кода да сам урадио изнова и изнова. И ја сам покушао да га извуче, тако да све који се налази на једном месту. На тај начин, ако имам грешку негде, Имам само да га поправи на једном месту. У реду. Па хајде да га спаси. И да се уверим да ради. Дакле, идемо напоље. Ми ћемо поново ићи у нашу терминал. Ми ћемо увећање. Направићемо тај процес бунни. О. И то ми је дао упозорење. Шта је то ми говори? Па у било који од ових пута, увек желите да бисте се померили до првог еррор-- сада на овоме, имам само један. То ми говори у бунни.ц, он лине 8, колона 9, ту је проблем. Каже, да сте прогласили ово променљива и и нисте га користили. Сада нормално, то је није најгоре грешка. То је лако поправити. И у ствари, можемо да се вратимо у. Можемо да се вратимо на бунни. И у овом случају, сви смо треба да урадите је се отараси и, јер ми не користимо И у главни висе. Само га користите у оквиру нашег под-рутине. Дакле, хајде да спасе то. Ми ћемо се вратити. И зоом ин. Ми ћемо још једном да зеку. И опет су наши 10 фрејмова. ОК. Сваки пут ти је дато процедуре-- Да. СПЕАКЕР 33: Имам је-- сам збуњен. Можеш ли да се вратимо на коду? Бриан СЦАССЕЛЛАТИ: Да. СПЕАКЕР 33: Дакле, када сте написали ваш прототип је вас Аргумент је она названа звао ховМани? Али, белов-- Бриан СЦАССЕЛЛАТИ: О, да. СПЕАКЕР 33: им --цаллед несто другачије, не разумем. Бриан СЦАССЕЛЛАТИ: Зашто се разликују. Дакле, то је велико питање. Дакле, питање је било, до овде, написао сам ховМани, и доле, написао сам ховМаниДотс. Разлог је што се у вашем прототип, то заправо не обраћа пажњу на имена која сте доводећи у. Све што је заиста стало до је да је цео број. Он жели да зна форму шта ви износите у. Сада стилистицалли-- оопс-- оно што треба не, ја волим је да ове утакмицу. ОК. Зато што ће бити кееп ит лакше ми је да се сетим. Али то је била моја грешка Да. СПЕАКЕР 34: И тако за прототип за рад, само писања ту линију, писање прототип, омогућава ту функцију која долази одмах испод њега да иде до краја и преузели шта то значи? Бриан СЦАССЕЛЛАТИ: Шта то значи када преводилац пролази кроз, иде од врха Ваш код на дно. А шта је ово прототип је, је то у основи је обећање. Каже, ту ће бити функција дефинисана негде. То ће бити позвани принтДотс. И то ће трајати један аргумент који ће бити цео број и да ће да се врати ништа, празнина тип. ОК. Обећавам вам да ће бити дефинисано негде на путу. Али сваки пут кад видиш да, како идете доле кроз остатак мог Основна функција, хоћу да си према то као функција да траје један цео број улаз. И тако, када компајлер иде доље кроз ово, види то обећање. А када падне доле, наставља да иде, се наставља, нађе први пут принтДотс се помиње. И каже, О, дајете ја ово ј. Ј је цео број. Па ми је обећао да ће бити цео број и то је у реду. То је ок. И на крају, доле на самом дну, пре него што дођете до краја мог Филе, ја се добро на свом обећању и ја га дефинисати. ОК? СПЕАКЕР 35: Па, то савес-- Програм ће спасити празнине да вратим се и попуњава на крају? Бриан СЦАССЕЛЛАТИ: Није о расподели меморије. То је заправо само о ономе Тип очекујете да видите. Ако ова ствар имати једну Аргумент, или пет аргументи? Требало је да буде целе бројеве с обзиром на то, или стрингс? То је све што гледа да урадите је да проверите, ми то давањем Право врста аргумента. ОК? У реду. Дозволите ми да вас оставим са једна мало да погледамо. АСЦИИ арт није сјајан модел анимације као што је данас. Али, неки људи наравно узети ствари а они га гурају у своје крајности. Ово је, како је Дејвид је показао у предавању, део кода да би под каквим околностима покушати да себе дупликат. Зато што је страшно стилски. У ствари, то је дизајниран да буде као тешко је могуће читати. ОК. Дакле, поново уради, идемо зумирати овде. Ја ћу сада да идем, промена директоријум. Ја идем горе један ниво, до мог радног простора. Ја ћу тада променити директоријум у ово други директоријум који сам створио. И ово је Међународни Обфусцатед Ц програмирање такмичење. Обфусцатед средства као тешко могуће да разуме. Зато вас молим, немојте се бојати, ако се осврнемо ово и иди, ја не могу то да прочитам. То је поента тога. ОК? Али, имамо ово диван програм који сам да погледате тако да откуцате више. Да видимо да ли могу да удаљавање само мало, тако да га можете видети И то је програм. То је именован ендо.ц. И то изгледа овако кофу са врста слова П-л-У-сам-Д у њему. Ово је заправо програм. То је записано у већини нејасне начин на који су аутори могли евентуално напише. Али то је дивно мало комад који генерише модел динамике флуида. И тако ћемо дати Тај модел улазни који изгледа овако, олуја са стаиред сет контејнера са неким течности, неке течност, горе у врху. И ми ћемо то симулирају шта се дешава са њим. Зато ћу назвати ту функцију, Ендо. И ја ћу га дати да улазни фајл који сам имао. А ту је наша оличење АСЦИИ Арт. Пуна течност динамички Симулатор трчање у само неколико линија кода. Шта сад је заиста невероватно о овом малом програму је да желим да га сада зауставимо, па ћу шта команду коришћење? ПУБЛИКА: Цонтрол-Ц. Бриан СЦАССЕЛЛАТИ: Цонтрол-Ц. ОК. Зато ћу користити Цонтрол-Ц. Ц То ће га зауставити. Ја ћу опет јасно. А сада ћу да се позове на Програм, извршење програма, се користи као улаз. И ми ћемо видјети течности динамику симулација тога топи. ОК. Молим вас, не дозволите да програм бити ствар која вам збуњује. То је тако да можемо завршити на нешто цоол и интересантно. ОК. Најбоље од среће са својим проблематичним сетовима. Бићемо срећни да одговоримо питања после предавања. Хвала много, момци.