РОБ БОВДЕН: Ово је удобнији секција, али то не значи да ако осећате као да ниси удобније нећете научити ствари овде. Зато, хајде да почнемо. Имате ли слајдове иде право у ствари. Ја о да издржим сада? Свитцхинг лаптопа. АЛЛИСОН: Ти не желиш да представите се, Роб? РОБ БОВДЕН: Ох, ја сам Роб. Ово је моја пета година ТФ-Инг ЦС50. Габриел: Ја сам Габриел. Ја сам шеф ТФ за ЦС50. Био сам ТФ прошле и ове године. АЛЛИСОН: И ја сам Алисон, и ово ми је друга година ТФ-Инг ЦС50. РОБ БОВДЕН: У реду, тако да ово са леве стране, надам се да сте га видели раније. Ако не због тебе преузмите за себе, требали сте га видели у предавању. Дакле, ово је ЦС50 апарат, а он јесте донекле опис њега у предавању. Али у суштини то је само ти трче функционалног Систем у свој оперативни систем, тако да можемо да вам дам Програми без потребе да бринеш, ох је ово ће радити на Виндовс и Мац, или ако неко од вас већ користе Линук, Линук. То је само требало да бити заједнички играње поље тако да свако има Исто тачан окружење. Дакле, ако немате преузето је већ, треба да га преузмете, јер си ће то требати за проблем сет. И то је два гигабајта скидање, тако да би могло да потраје. На Харварду је идем брзо. Тако ЦС50 Апплианце. Сада на почетку, идемо у говорити о само гомила командне линије ствари, а тако тиме, мислим ради у овом малом окружењу овде. И приметите све ствари Кажем Ригхт Хере Ригхт Нов ће радити ако си унутар терминала унутар апарата, или ако сте унутар прозор гедит терминала унутар уређаја. Дакле, те средине су идентични. Али ја ћу да идем трећи пут. И приметите овде ово Мало ИП адреса овде. Тако да не морате да ово, али ово ИП аддресс-- сада ако и-- осим то блокира ову ствар. У реду, тако да је ИП адреса више у терминалу овдје-- па Овај терминал преко Овде је терминал у мом Мац. Дакле, ово никако није тренутно повезан са уређајем уопште. А ако сте на Виндовс, онда си морати да преузмете нешто посебно за ово, а нарочито Људи су склони користе Путти, П-У-Т-Т-И. Па шта ћу да урадим је тип ССХ и тада ИП адреса. Па, јхарвард на тој ИП адреси. Тако 192.168.24.220. Ово застрашујуће поруке, игноришу. Само укуцајте: Да. Ово је ЦС50 у кутији. Она тражи лозинку. И тако у многим од ових контекста где она пита за лозинку, [неразумљиво]. Имамо доста питања на која она каже да није заправо куцање. То не вам показати знакове лозинка док куцате, ако ништа, за безбедносну функцију, јер ако неко гледа преко рамена и они виде стар стар стар, онда Знам да је ваша лозинка је четири карактера. Дакле, идеја је да ће питати сте за своју лозинку, тип. Неће показати ви ликови, али заправо их прихвате. У том случају, било вам време икад видети унос лозинке суочавање са апаратом, Лозинка ће бити Цримсон. Тако Цримсон. А сада овде у ово прозор који је у мом Мац, Ја сам у основи имају исти тачан поглед као унутар терминала у уређају. Тако да не морате да урадите. То можете да урадите све што сте Желим унутар уређаја. Скоро никада заправо радим нешто у уређају. Ја готово увијек минимизирају да и сад Радим ССХ у уређај. Ако ишта, ти ако имају спорији рачунар, можда ћете приметити разлику. Радим ово јер сам волео Овај терминал прозор. Она има неке функције као што су Ја могу поделити прозор, и сада могу да ССХ у преко апарата. Имам два ССХ се дешава у једном. Ако је ваш рачунар је посебно спор и радите у уређају, и схватите да је ово Заиста лагги, како год. Тежи да буде много бржи ако сте ССХ-ур у. Али иначе можете да радите у било ком смеру. ПУБЛИКА: Шта значи ССХ? РОБ БОВДЕН: Сецуре гранате, тако нешто? Шта значи ССХ? Габриел: Сецуре Схелл. АЛЛИСОН: То је само Сецуре Схелл. РОБ БОВДЕН: Сецуре Схелл. То је протокол који је би-- безбедносни протокол, тако кодиран. Људи не могу да Снооп мрежу и види шта ви кажете на све ти си ССХ-ед за. И у ствари, у Олден Дани ЦС50, тако у 2009. години кад сам био бруцош, начин на који ви радили на ЦС50 проблем поставе, је ли ССХ-ед на неком серверу да смо дали приступ, а ви радили тамо. Значи, нисте имали ово Графички Апплианце. Ви нисте имали гедит. Ви нисте имали све те ствари које можете визуелно тачке и кликните на дугме. Морали сте да радите у овом интерфејсу. Ја више волим да радим у овом интерфејсу. Дакле, део онога што ћемо да ће преко одмах су гомила команди које треба да почињу да се упознају са што идете заједно у току. И искрено, једном навикнете на њих, то је тако много брже рад у овој средини него да се ради са Финдер, повлачењем и кликом ствари. Дакле, ту смо. Сада сам ССХ-ур у, и тако Уобичајено вас лоцатион-- видео неке од ових команди у класи, али ићи ћемо преко свих њих. Уобичајено локација смо у је дом директоријум. И директоријум, само друга реч за фолдер. Дакле, ми смо у хоме директоријуму. Укуцајте лс, листу фајлове у овом директоријуму. Очигледно сам створио блах.ц раније. Тако да имамо десктоп директоријум. Ви приметили синтаксе? Лигхт Блуе истицање указује директоријум и равна бела означава обичан фајл. Тако да ће бити неке друге боје те видим. Извршна датотека ће вероватно да буду зелене или нешто слично. Ок, тако да смо у хоме директоријуму. Сада ако желим да идем у другачији директоријум, ЦД је команда желим. Дакле мењају директоријум, а онда пасс име директоријума да желите да идете у. Дакле, овде имамо четири опције. Могу да идем у преузимања, а сада видимо Овде је ажуриран ово у загради да кажем да сам у ~ / Преузимања. Дакле, шта је Тилде? То је скраћеница за ваш дом директоријум. Дакле, скоро све што радите ће бити у вези са кућном директоријуму, и ОСИ је само команда Једном сам користим у години која Управо штампа тренутни директоријум. И тако видимо да ~ / Преузимања заиста решава да / хоме / јхарвард / преузимања. Значи / Хоме / јхарвард је мој дом директоријум. Тако да можемо ЦД Дот. Сада Дот је посебан директоријум који увек се односи на један директоријум изнад. Дакле, ако сам у ~ / Довнлоадс, онда цд ДОТ тачка ће ме довести до Тилде. Шта мислимо ЦД Дот ће ме довести до сад? То ће ми донети / хоме. Дакле, Тилде у штампаним радном именику, Ја сам у Нов / хоме / јхарвард. један директоријум се од тога, сада се овде каже / кући. Сада ЦД Дот. Сада сам у роот директоријуму, и не могу то да урадим поново. Само ћеш остати у Роот директоријум заувек. Роот директоријум има гомилу ствари које, ако желите да погледате у, можете. На пример, ако ја одем у смеће, који садржи Све ове бинарне, као што је ЛС, и ЦД, и све те ствари. Дакле, ове команде треба да постоје негде у систему, а то је у / бин директоријуму. Али скоро све ти је ће бити са кућном директоријуму. И ЦД без аргумената разлога, могло би се рећи ЦД ~, не треба да. ЦД ће вас довести назад на кућну директоријум. Један последњи. ЦД - ће вас вратити у последњи директоријум који сте били у. Па сам цд'д два пута за редом, тако да је мој Ласт директоријум је лични директоријум. Ако одем да смање бин, и сад идемо горе и у корисника. Усер удео. Идемо у корисничком акцији. Сада Сада сам у корисничком акцији. ЦД -, назад у посуду. Дакле, ово постаје нарочито корисни кад бих-- и да ће Архива анкета. Тако да корисник акцији, леђа бин, бин схаре. Дакле, то постаје користан. Можете нађете има много, много, много Нестед директоријуме. И желите да урадите нешто Реал брзо у горњем директоријуму. Идеш у тај директоријум, да промене и такве ствари, а сад хоћеш да идеш тамо где сте били. ЦД -. Увек сам фрустриран када се деси да одем И у тај директоријум желео да раде у. Увек се фрустриран када сам она у два корака уместо један корак, јер то значи да ЦД - иде да би у тај средњи локацији уместо где желим да идем. Дакле, видимо све фајлове са листе. Ми знамо како да заобиђу сада. Па сад, хајде да разговарамо о мењање фајлова. Дакле, у овом курсу, ти си скоро увек очекује да користи гедит. Ако желите, можете узети следећи корак и почети учење текста командне линије уредник. Дакле, постоје различите опције. А оне које су вероватно ће бити релевантна за вас, имамо нано, вим, и Емацс. Дакле, Нано је почетници командна линија текст едитор. Дакле Нано идемо на блах.ц сам створио раније. То је само овај стандард Ц фајл. И видите гомилу ствари догађа на дну екрана, и очигледно блах.ц садржи тај Ц код. Дакле, у овом конкретном едитор, оно што је говорио у боттом-- Сада овај симбол Царет, видимо ту ^ Г, ^ Кс, ^ о. Тако да је у скоро свим контекст који видиш, можда ћете видети тај симбол царет у Остала онлајн, на Стацк Оверфлов, тако нешто. Скоро увек се односи на контролу. Дакле, за излазак ја желим да радим Контрола Кс. Контрола Кс, излази. И ја могу да користим свој стрелицом тастери за кретање. Обратите пажњу да не могу да укажу и кликните лако. Потребан вам је користите стрелице тастери за кретање. Можда има подешавање да се укаже и кликните. Али хајде да направимо неке измене. Сада Контрола Кс ићи излаз. То ће рећи Саве модификованом бафер. Сада брза, И за да, н за бр. Контрола Ц за отказ. Само ћу рећи да. Филе наме за писање. Уобичајено је фајл да је већ. Хит Ентер. У реду. Сада сам управо едитед тај фајл, спасио га, а он се мења. Дакле, Нано је најлакше текст едитор навићи. Алтернативе су Вим и Емацс. Они су текст едитори виши ниво да имају веома стрму криву учења. Дакле, мој лични избор је Вим. И има широк спектар опција. И кад се навикнете на њега, никада нећеш Желим да идем на било који други текст едитор због тебе само имају толико ствари вам на располагању у овим, али је потребно заиста дуго времена да научите. Па можда само желите да примора се сада да се навикне на то, али ја бих рекао да је то вредело. Али је тешко. И онда Емацс. Увек се боре, јер Емацс Знам како да урадим апсолутно ништа. Очигледно Емацс није подразумевано инсталирана на уређају. Вероватно ће додати да као подразумевани инсталација. Када једном научите један од Вим или Емацс, ту је Но мотиватор икада научити друге, али то је потпуно другачије стил. У реду, тако да је уређивање текстуалне датотеке. ПУБЛИКА: Ако сте заглављени у Вим сада, како да смо-- РОБ БОВДЕН: Тхере аре више начина у вим, а постоје и читав туторијала на учење Вим. Дакле, ако вам се деси да буде у инсерт моду како би да куцате текст, који можете подесити да на различите начине, али сам је како се у инсерт мод. У или изаћи из било које специјалне режим да си унутра, само Есцапе. И само басх Есцапе то гет из било ког режима угнежђених ваш у. Само ОК, сад сам се вратио у нормалном режиму. И тако у нормалном режиму, дебелог црева. Ви видите да се појави на дну. И онда К. Дакле, К ће одустати ако сте направили промене, који су направили Ја-- ја промене? Ја сам направио измене очигледно. Дакле, ако сте направили промене, то ће кажу можете ставити знак узвика. Ја ћу га назвати прасак. Тако да можете ставити забрану само отказ без икаквог, или дебелог црева ВК ће спасити и отказ. Дакле, В је генерално писати. Дакле, пишу датотеку. Могу да напишем и отказ. Или сте могли само Кк слем, К банг управо да одем тамо, без обзира о било каквим променама које сте направили. У реду, па хајде да се ја-- можемо креирати фајлове. Почнимо уклањање фајлова. И ја ћу бацити у једном Куицк Нова команда, додир. Тако тоуцх фоо. Тоуцх-бар. Додирните Баз. Ако сам ЛС, сад видимо да су ти фајлови постоје. Они су потпуно празне. Дакле, додир је само лак начин једног, [неразумљиво]. Два, техницки само стање она, она ажурира временске ознаке. Тако било који фајл који сте креирали има Време у вези са њим. Дакле, Баз је створено 14. септембра у 16:21. Сада је 16:22, па ако Ја тоуцх поново Баз, ми видим да Баз је највише недавно модификована у 16:22. Али иначе сам скоро никада погледате тиместампс на фајловима. Дакле додир, овде сам само користећи је да се створи неке брзе фајлове. У реду, тако да је сада РМ је команда да нам је стало овде. И можемо рм боо. Саи уклонити редовно празан фајл Боо. И можемо тип и, а сада је уклања. РМ Баз. Уклоните редовну празну датотеку БАЗ и Тип Н за не. Сада није уклоњен. Дакле, бар и БАЗ још увек постоје. Фоо је нестао. Габриел: Наставите разговор. РОБ БОВДЕН: Одлично. Дакле, Тхе Анноиинг поруке Овде, ремове редовну емпти-- Шта радиш тамо доле? Уклоните редовну празну датотеку. Дакле, ако ми не желимо да будемо сметало те поруке, можемо бацити у овом -Ф застава, па то је сила. А сада, ако ми -ф РМ, то неће кажу да ли желите да уклоните ову датотеку. То ћу урадити. И ЛС, ја не видим више бар тамо. Сада је то потенцијално опасно команда. Она тежи да се не тако лоше. Ми ћемо се вратити у другом како може добити стварно опасно. И хајде да створе неку темп директоријум. мкдир, друга команда. Дакле мкдир је команда која чини директоријум. А сада лс видимо ову сјајну светлост плави истакао темп директоријум. Ја могу да ЦД у темп. И ја могу да мкдир фоо. ЦД у фоо. мкдир бара. ЦД у бар. Дакле, видимо да лако добити у прилично дубоко гнежђење. Сада Како да уклоним директоријум? рмдир. Дакле, ако сам одмах покушати да РМ, као што смо урадили са редовним датотеке, РМ трака ће кажу не може уклонити бар. То је директоријум. Постоји посебна команда за уклањање директоријума, некако. Тако рмдир бара. Сада бар је нестао. У реду, тако да сам прилично рмдир никада не користим. Разлог беинг-- Хајде сада да направи бар редовно датотеку овде. Тако рмдир боо. рмдир. Фаилед то ремове фоо. Директоријум није празан. Тако да не можете да користите уклонити Дир на директоријум који има ствари у њему. Дакле, имате неке опције. Можете ући у тај директоријум, уклоните све ручно, а онда изађе и рмдир директоријум. То очигледно звучи нервира. Шта ако постоје хиљаде фајлова тамо? Па, можете РМ *. Причаћемо о * у секунди. То практично значи све ствари. Али још боље, тако РМ -р. Дакле, РМ -р-- у многим контекста, -Р значи рекурзивни, које ћемо разговарати о томе шта рекурзивне средства у неколико недеља. Али то у суштини значи Траверсе целина овог директоријума и уклоните све. Дакле, РМ -р Фоо је рећи сићи у директоријум Фоо? Да. Уклоните редовну празан фајл Фоо / бар? Да. Уклоните директоријум Фоо? Да. Тако да сада фоо и све оквиру је уклоњен. Сада то може бити посебно узнемирујући вхен-- идемо Тоуцх 1, Тоуцх 2, додирните 3. Могу имати гомилу фајлова. Да сам хтео, могао сам да створи хиљаде фајлова овде. РМ -р Фоо иде да буде прилично досадан. Да, да, да, да, да, да. Са много више датотека брзо видети колико пута Ја бих да се да тип. Па, управо смо видели пре него колико можемо уклоните потребе да куцате Да, -Ф. Дакле мкдир Фоо Фоо ЦД Тоуцх 1 2 3. У реду, тако да РМ рф Фоо ће слепо уклонити фоо потпуности. Но брз. Но ништа. Фоо је нестао. Тако да имају тенденцију да користе ово командује све време. То је рекао, то је веома опасно команда, јер ако урадим нешто слично ово, то вас неће питати. Она ће нестати. И то се дешава прилично често, па чак и у вишем рангу ЦС курсева. Понекад ћемо видети нешто где неко каже да случајно наш РМ РФ-ед мој дом директоријум и све моје П сета је нестао. И то је поражавајуће, али нема канта за смеће. Нема ништа за вас да преузмете. То је само нестао. Још горе би било нешто као РМ рф /. Тако да смо управо разговарали то роот директоријум. Она има све датотеке на вашем систему. Ствари имају тенденцију да се прилично неуредан Када уклоните ствари као лс, и ЦД, и сви они. ПУБЛИКА: Која је разлика између РМ, РФ, и РМ * РОБ БОВДЕН: Па РМ * - АЛЛИСОН: Питање је шта је Разлика између РМ, РФ, и РМ *. РОБ БОВДЕН: Па РМ *. Звезда у општој значи све садржај овог директоријума. Покушавам да мислим на друге начини показује Стар. Па, у ствари стар генерално значи одговара сваком образац. Тако да ако имам фајл под називом дог1, тоуцх дог2, додирните Цат1, додирните Цат2. Дакле, ЛС * 1 ће штампати и цат1 дог1, јер то може бити испуњен звезда у са-- потребно да буде тамо, али звезда може бити мачку или пса. То је дивља картица. То је реч коју тражим. Џокер. Или могу ЛС Дог *, и Ја сам да видим дог1, дог2. Дакле, то су листинг фајлове који се поклапају тај конкретни образац. Можете користити лс на овај начин. ЛС * Стар утакмице ништа. Тако да ће се штампати све садржај овог директоријума јер сви слажу. Неће да штампа ништа у горњим директоријума нивоу. Ако имам под директоријум, Фоо, и тоуцх 1 2 3-- Тако сада, ако РМ * Стар, ремове цат1, Цат2, дог1, дог2. Не може уклонити фоо. То је директоријум. Дакле, звезда проширује на све датотека у директоријуму. Дакле, технички РМ * је као да кажеш РМ цат1, Цат2, дог1, дог2, Фоо. Док рм -рф, технички звезда би постигли оно што желимо, али РМ -рф-- ако одем из овога директоријум, РМ рф темп, који ће ићи у темп и рекурзивно уклоните све. Дакле, звезда је посебна по томе што Подразумева по-- Значи ова ствар да трчим у, ова ствар који ме је навело на команде а затим извршавање и раде их, ја зовем мој оклоп. Па ово шкољка је сама програма. А ако хоћу, ја могао покренути у / бин / басх. Схелл се зове Басх. И сада смо приметили нешто незнатно променила, а то је зато што подешавањима за Схелл је нешто другачија. Али сада сам технички трчање граната у мом првобитном љуске, и ја могу да изађете гранату, а сада Вратио сам се у мој топ ниво љуске. Сврха кажем који је-- звезду. Дакле, звезда је нешто разумети басх. Дакле рм рф, рф застава разумети само РМ. Она зна да када вас донесе рф која вас Желим да то рекурзивно уклони Све датотеке без подстицања. Звезда је нешто разуме по басх да када кажете РМ *, Басх неће да каже Хеј РМ *, уклоните звезда. Басх се рећи РМ * ремове цат1, Цат2, дог1, дог2. То аутоматски ће да се прошири све датотеке у директоријуму. И слично Тилде је друга Симбол који Басх разуме. Када кажете ЦД ~, басх шири то кућну директоријум. Друга питања до сада? ОК, идемо кренути брзо. Таб завршетак. Само да га баци тамо. Многи људи не схвате постоји. Дакле, ако сам тип цд Дов, ја Желим да идем у преузимања. Не треба да куцате нлоадс. Ја само да притисните Таб. Тако да признаје да Дов је префикс који не подудара ништа друго у овом директоријуму, тако да ће завршити за тебе. Сада могу ући. Такође сам то рекурзивно. Тако мкдир Фоо. Идемо у фоо. мкдир бара. Дакле, вратимо се мојој кући директоријум, видим преузимања. Сада опет ударање таб, аутоматски ће се попунити фоо. То је једини директоријум. Таб Ударање поново, аутоматски ће попунити бар. Дакле, сада сам у (~ преузимање / фоо / бар). Тако да завршетак Таб, кад год сам се радног времена, а ја стојим нечији раме, и они ће РМ Д-О-Б-Н-Л-О-А-Д-С, умирем. Само табулатор, табулатор. Дакле, дефинитивно се користи картицу. И слично се и доле, много људи само да се десило Никада нисам ударио горе и доле. То ће проћи претходна команде, тако да ако само побегао нешто, и желите да га покренете поново, Само стани док не дођете до њега. У реду. Тако брзо, неке друге ствари. Хајде да се вратимо у темп. Хајде да створи неке фајлове. Дакле овде, ја сам ће навести неке речи. Пас, мачка, Меов. Урадимо пса, рибу. Дакле, сада је реп веома корисне команде које сте користити за претрагу кроз фајлова за одређени текст, и технички можете да урадите заиста сложени изрази за њега да одговара. Па ево, ако ја греп, и шта желим да тражите? Рецимо ја сам у потрази за мачке, и Желим да тражи све ове датотеке. Дакле, како да радим све ове датотеке? Звезда. Дакле, у једном фајлу, имам мачку. Вероватно могла то нешто боље зове, јер то изгледа Бројеви линија или нешто. Али у једном фајлу имам линију са мачком. У досијеу два имам линију са мачком. Тако да сада могу да погледам унутра поднесе једну и види ох иеах, то Филе имао мачку. Обавештење датотека три није упарен јер мачка није тамо. Могу греп за Меов. Само два филе хас мијау. Дакле, то можете да комбинујете, поново, са -р, који као што сам рекао раније често значи рекурзивно. И тако ја могу доћи овамо, греп -р за било пример од-- идемо уређивати ово само да баци мачку тамо. Дакле, греп -р за било инстанцу Мачка у овом директоријуму. И то ће рекурзивно тражили подименика. Дакле, у Баз, ту је мачка. У Темп / 2, има Кат. А у температури / 1 има мачка. Тако да је тражи у датотеке. Сада можете користити откриће. И тако се наћи конкретно о потрази за фајлове са датим именом. Па хајде да направимо још. Идемо у преузимања. Додирните дог1. Додирните Цат2. Додирните цат_дог. Додирните ЦатЦат. Дакле, желим да нађем све датотеке са псом у имену. Дакле пронађу, а за најдужи пут никад сетио Како наћи радила, док сам коначно прочитајте нешто што направљен тако јасно. Дакле наћи, аутоматски рекурзивни. Ви не треба да се донесе -Р. Тако наћи тачку. Нисмо разговарали о ДОТ још. Док Дот увек значи један директоријум изнад. Дот увек значи тренутни директоријум. Тако да сам могао рм -р тачку на Исто тако могу рм рф *. На крају су постигне исту ствар. РМ рф тачка ће уклонити читав тренутни директоријум. У реду, који не желим да тамо радим. Али наћи тачку. Тако да рекурзивно претраживање струја директоријум, а сада све Након овога су гомила застава коју користе да искључи ствари из повратка. Дакле, наћи тачка врати све што је може наћи у тренутном директоријуму. Они су сви фајлови рекурзивно претраживање. Видећемо неке од њих у секунди. Али у случају да се питате како да урадим да, па команде К, у најмању руку у мојој терминалу у Мац га угаси. Контрола Л генерално чисти је за било коју врсту терминала. Такође можете да упишете јасно. И ако икада у чудан сценарио-- то ми се десило пар времена-- готово где су боје ваших упутстава су све збркано, или ти нису у стању да види ништа се откуцан када куцате, јер Понекад као позадина сет исто као и боју предњег плана а сада не могу да виде фонтове. Ресет је нешто што једноставно ресетује да подразумевани црној позадини, Бела Предњи, или било шта друго поставите их на. Па, где смо стали? Финд тачку. Дакле, сада све преко овога Поинт ограничава резултате на нешто што одговара дат образац. Па ево ја желим да тражи све са именом мачком. Немам ништа. Зашто је то тако? Па, ја сам само у потрази за нешто са потпуно именом мачке. Ако желим да тражи нешто да има неки образац, и цат-- цитати технички нису потребне, али ја их бацају тамо. Дакле, сада налази ЦатЦат сљедећих разлога То је једина ствар која има неке произвољно Паттерн затим мачка. Ја могу ставити Цат, и сад финд ЦатЦат, цат_дог, Цат2, јер су све ствари са мачком на почетку следи ништа. Можете комбиновати ово. Ако желите да претражите све фајлове Ц да имате, можете да ураде * .ц. Ми смо овде блах.ц. Дакле, то је да нађе радове. Можете да претражујете. Има гомилу застава за даље ограничења. И један од њих, рецимо -Д. Тако депрецатед. Ох, то није оно што ја желим. Не -Д. Тип Д. Дакле, наћи тачка - тип Д. Дакле, шта је управо урадио је да сам у потрази за све датотеке у текућем директоријуму са је-- Д је дирецтори-- тип директоријум. То враћа све директоријуме у тренутном директоријуму. И тип Ф је све Регулар фајлова, сви не директоријуме. Дакле, то је само Пример други начини могу ограничити претрагу други него само име фајла. Прошло је 30 минута. Ипак иде. АЛЛИСОН: Ја ћу бреезе кроз. То ће бити у реду. РОБ БОВДЕН: Па неке друге ствари. Сада банг, знак узвика. Тако да генерално меанс-- Па, хајде да видимо пример. Дакле Ф!, Шта је то да уради? Па изгледа да има поновио налаз тачка -типе Ф. Шта је са! Г? То само греп -р Цат. Тако да можете да користите банг да поновите недавно урадио команда. Дакле, ако сам тип! ГРЕ, то ће ре-рун команде, која је почела са највише ГРЕ Недавно. И можете да видите све ово команде са историјом. Тако историја. То су све команде сам покренути данас. И добро, то није буквално ограничена на данас, али ја сам користио само ово Примена од данас. То је твоја укупност Историја вашег басх схелл, осим што прекида у неком тренутку. ПУБЛИКА: Шта се дешава ако радите Хистори [неразумљиво] команде и грешке у резултат и даље ће штампати до-- РОБ БОВДЕН: Да, ако постоји грешка у једном од ових цоммандс-- па рецимо, да је командна грешка није пронађен. И даље појављује у историји. У реду. Остала питања о било чему? Тако да је прасак. Сада, заиста корисна команда, човече. Тако да вам даје Упутство за дату команду. Рецимо човек лс, тако Ово ме показује лс. Она наводи садржај директоријума. И ово је место где видим да има су ови различити заставе које постоје. Дакле, видимо да постоји лс -л Ако бисмо били да прочитате то. лс -л даје ми ову комплетну листу именик са који поседује фајл, величина датотеке, модификовани тиместамп. Дакле, ЛС -а је још један да би ти заправо користе нешто често. -ал је мој најчешћи застава Овог ЛС. Дакле -а, приметити има много више датотека него само лс. ЛС -а. Шта је заједничко са свим тим фајловима? Они почињу са тачком. Дакле, ово је Конвенција у Линук који фајлови који почињу са тачком су скривени. Дакле, то само значи да када се само праве ЛС, или смо у потрази овај директоријум користећи Финдер еквивалент, или Виндовс Екплорер еквивалент, то смо ми не желе да виде ове дот фајлове. Они само загађују поглед на ствари. Дакле, они су скривени осим ако изричито затражити да их нечим попут -а. Тако да могу да ЦД у .лоцал, и ја видим да је само по себи директоријум са схаред директоријум, и апликација, и бла бла бла. Дакле дот, датотеке су само скривене. У реду, тако да остали важни они. Имам пар могу прескочити. Хајде само да јако брзо разговарати о датотеку преусмеравања ствари. Тако да је цео комплекс серија ствари које можете да урадите са овим, већ само да их видим, рецимо, ехо. Још једна команда. Стварно глупо команда. Све што ради је штампање оно што је рекла да. Тако ецхо здраво. Једноставно одјекнула здраво екрану. Хелло ворлд. Одјеци хелло ворлд. Дакле, једна команда или једна Симбол који Басх разуме је ово већа од симбола и то је излаз за симбол датотеке. Дакле, ако сам ово излаз Фоо, сада је фајл звао Фоо, унутар што је здраво свет. Тако приметио да када сам ехо Хелло Ворлд цеви у фоо, није ецхо Хелло ворлд. Уместо тога је пуштен у датотеке фоо. И још једна команда само да га бацим на тебе, мачка. То је једноставан начин да само потпуно список садржај датотеке тако да не морате да отварате едитор текста да бисте је видели. Тако да је садржај Фоо Филе је здраво свет. И могао бих Цат блах.ц, садржај су ово. Опет, то су команде, зар не Очекујем да их све запамтио. Идеја је да сте их видели. Можда радите на нешто, и ти си као да ми је отварање ове датотеке. Волео бих само да изгледам на садржају јако брзо. Могао би то, онда осврнути се и рећи Ох запамти нешто слично да постоји, а то је мачка. Тако да се иде у фајл. Сада не постоји баш било добро Пример читања из датотеке још. Шта је нешто што треба нешто од стандарда у? Било једноставно Линук Цомманд? Када дођемо до њега, у пару недеља сви пиеце-- добро, ове недеље имате комад Вхере Иоу почнете да унос од корисника. Па обично куцате да улаз на тастатури. Уместо да куцате улаз на тастатури, Умјесто тога, цев из датотека тако да када радите Марио, ./марио, цев у од било ког датог датотеке, анд која ће покренути програм марио. Не очекујем улаз у тастатура, уместо тога је Само ћу да прочитам линије са фоо датотеке. Дакле, већи од Фоо каже у Фоо датотека, а мање од Фоо узима ствари из фоо датотеке и користи то као инпут за овај програм. И само да га види, могли бисмо ецхо Фоо Бар Баз, а затим уместо једног већи од, хајде да урадимо две у фоо. Шта да радим? То само додаје на фајл. Дакле, уместо да приметите, ако ја ецхо бла у Фоо затим Цат Фоо, то је само бла. Дакле, када сте излаз у датотеку је, потпуно замењује тај фајл. Ако желите само да се додаје, Доубле [? грејдер. ?] И последња је цев. Пипе добија много компликованије, где је потребно излаз једном командом и храни га у следећем команде. Дакле, нека уобичајена ствар, историја. Дакле, Ух, ја не желим да гледам ово. Покажите ми све команде у мојој историји где греп-ед за нешто. Не, то је збуњујуће. Покажите ми све команде где да нађем. Све команде финд сам водио. Тако историја. Сада историја излази на сцреен ову листу команди, али ја не желим да се излаз га на екран. Уместо тога ћу Пипе Ит у греп. Па хајде да греп за све инстанце налаза. Тако да сада, уместо узимања греп улаз, уместо од-- греп је у стању да обради као инпут-- смо коришћењем греп мало другачије овде. Дакле, уместо да куцате листу ствари које смо желели да траже и рекао греп изводи као улаз. Дакле, ако ја само греп финд ит, чека да тип ствари. Дакле, Цат здраво наћи. Здраво. Финд. Обратите пажњу на сваки пут кад укуцате наћи препознаје да сам откуцала откриће. Дакле, уместо тога, ће Тражи датотеке за наћи. Дакле, историја ће сада излаз списак свих команди. Ми смо стављањем тог излаз, а ми смо се да се храни греп, и тако да се пљује Сви случајеви наћи. Разлог због којег сам рекао да ћу бити збуњујуће је ако Ја-- је још збуњујуће. Ако сам за греп греп. Обратите пажњу на то прилично много увек показује команду и јуст побегао јер те команде Сам има греп унутар њега. У реду, тако да било која питања о било чему? И ја ћу га пребацити у у овом тренутку. Надамо се да је ово лепо Преглед свих команди да не треба да имају запамтио, али они чине чврста 95% од онога што сам уради у командној линији. Такође, имајте на уму да командна линија Сама, басх је програмски језик, па када се до њега, Можда желите да урадите заиста комплексне ствари. И тако је ствари као што су петље, и ИФС, а сви они да ћеш да се навикнете на са својим програмским језицима. Али, то је изван обим ове секције. У реду, тако да нема питања? АЛЛИСОН: Нема? Габриел: Идеш да-- АЛЛИСОН: Ја могу то да урадим на мине ако желите. Можемо да видимо шта се дешава. РОБ БОВДЕН: Искључено Аллисон. АЛЛИСОН: Воо. Ти си тешко чин пратити, Роб. Да ли желиш да се пребаците са тобом? Или имаш, добро. Ја ћу покушати, а не тако бити дуготрајан тамо. Хајде да видимо да ли ће ради како ја желим да. Можда? Хаха! Да. Тако да сам само ћу врло брзо отићи кроз променљиве, петље, уређаја, и мало о компајлер. Ако имате питања на сваки пут, молим те престани. Ови момци ће ме подсетити да понови Ваше питање у случају да заборавим, али не би требало да буде лоше. Дакле варијабли, да. Ми немамо један од ваших Сцратцх комада овде. Сигуран сам да већина вас, ако сте имали неку врсту игре које сте направили са Сцратцх, сте имали пратити нешто као резултат, или време, или нешто слично. Тако да они светло наранџасте комада које смо тамо видели само Огреби облик варијабле, и дефинитивно ће бе коришћење променљивих кроз своје програме. Ако ниси, нисам баш сигурни шта радите. Али у сваком случају, велика ствар, дефинисање варијабли. Са Ц сваки променљива има да су прогласили тип, па сам ти дала веома Генерал једна на врху. Дакле, имаћете тип и онда шта год одлучите да позовете променљиву. Дакле, у овом случају, типу у вашој листи променљиве. Имамо три примера. Цхар неког разреда, једног А, која је оно што Сигуран сам да сви желе да се у овој класи. Можете да дефинишу више варијабле на једној линији док су они сви исти тип, који је наш други примјер тамо где имате три варијабле, к, и, и з. Они су сви плута. А онда можете, у овом последњем Пример са инт резултатом и број тимова, можете инитиализе их тамо. Дакле, у средњем примеру где смо само флоат к, и и з, они се још увек није покренут. Они немају никакву вредност. Или имају вредности за смеће. И ако покушате и користити их, компајлер ће викати на тебе. Мораш да и прогласе и инитиализе променљивих. Дакле, у овом последњем, радимо обоје. Ми се проглашавајући варијабле за резултат и број тимова, а ми их иницијализација, дајући их њихови почетне вредности 7 и 4 респективно. Цоол. Сви добро? Страва. У реду, тако да неке конвенције. Ако ви прочитали кроз стил 50, ови су само ствари које бих да да спроведе у вашем стилу. Дакле, асоцијативна имена. Ако почнете зовете ствари Само к, и, и з, нарочито као што сте добили у Дужи програме, ти си Вероватно ће се збуни се и бити Као што је то варијабла односи на. Немам појма шта то значи. Дакле, ако је то значило да се одржи резултат, позовите резултат. Ако то треба да задржи неки одговор или довести, дајте му име тако. За петље, које ћемо ући у следећем слајду, Појединачне писмо променљиве су у реду. РОБ БОВДЕН: И, Ј, К и су само конвенције за за петље да свако их очекује да се зове И, Ј, К и. Можете позвати томе-- да видим ред колона или ред позив понекад за два уклопљене петље, и то је такође врста стандардна. Али ја и ј потпуно разуме. АЛЛИСОН: Да, ја и Ј си потпуно у реду. Зарад јасноће као у неким од ваших П сетова, можда смисла да има више дескриптивни ствари у ту само пратити њега. Али мислим да, Ј и К мислим огромна већина свих нас користе. РОБ БОВДЕН: Са овим конвенције, па стил је важно. То је један од четири осе на којој сте оцењује, и то је тако лако да се једноставно прећи Ваша П сет на крају и уверите се да не постоје стилских грешака. Дакле, проверите да ли сте правилно таббинг. Уверите се да се зову варијабле. Оставите неке коментаре. Веома је лако добити те тачке. Ви не морате да размишљате о нешто како би добили те тачке. Не мораш да схватим шта се. То је само да изгледа лепо. АЛЛИСОН: У ствари, ми има стил 50, који ће вам рећи где сте мессинг горе ако се зезам на стил и да ће вам рећи тачно шта вам треба поправити и како треба да га поправи. Такође је само добар да споменем то је то, наравно политика да ако сте у канцеларији сати и Ваш број је у хаосу, можемо одбити да помогне ти док не изгледа лепше. Дакле, почните праву, држати конзистентан стил, ти и само да би Ваши животи много лакше када Ви покушавате да прође кроз дебуг. Ако покушавате да схватите где сте недостаје коврџаву браце и они су свуда, ти си Само што свој живот теже. Тако да буде у складу са стилом. Обећавам да ћу учинити ваш живот лакшим. То ће бити наш живот лакшим. Сви ће бити много срећнији. И то је оно што желиш. Габриел: Ваша оцена ће бити већа. АЛЛИСОН: Да, и твој разред. Ако ваш ТФ је као ти, тенденцију да буде повољна. У реду, а онда само Друга ствар овде. Конзистентне инитиализатионс. Дакле, као што смо видели, можете да прогласи и иницијализујемо ствари. Вишеструки варијабле на истој линији. Једна ствар коју бих вас замолио да да урадите је да се прогласи неке варијабле а не да их иницијализовати на истом линија које сте иницијализацију друге. Дакле, у случају да је нема смисла уопште, имамо пример овде где смо изјављујући интс у варијабли кварталима Димес и пенија, али смештај и пенија немају почетну вредност. Нисмо их инитиализед, али право у средини већ инитиализед димес до 0. Дакле, или урадите квартала, Димес, пенија. Или четвртине једнака 0. Димес једнака 0. Паре једнака 0, или било шта друго те почетне вредности. Велика ствар са стилом, будите доследни. Када сте у недоумици, будите доследни. Али пратите и наш Стиле Гуиде. Цоол. Сви добро тамо? ПУБЛИКА: Гдје је водич стил? АЛЛИСОН: водич стил је ајде-- шта је сајт? Габриел: Мислим да је мануал.цс50.нет/-- АЛЛИСОН: стил? Габриел: Стиле. Да. АЛЛИСОН: Да. Дакле питање, где је стил 50. мануал.цс50.нет/стиле. Да? ПУБЛИКА: Ако смо дефинисања варијабле, то је у реду ако ставимо као [неразумљиво] као Инт резултат и онда Инт циљ. Дакле, да ли бисте рекли да сада имамо Морам да их дефинишу заједно? АЛЛИСОН: Дакле питање, треба имате вишак код када дефинисања варијабле попут инт бодова и у наредни ред инт игре? РОБ БОВДЕН: Дефинитивно аре случајеви где сувишан број је лоше. Ја не бих у обзир то сувишан код. Скоро никад изјављујем Мултипле варијабле на истој линији икада. А ако ништа друго, то је зато што Обично одем неки коментар објашњавајући шта променљива је за. Тако да ћу рећи Инт резултат Сласх Сласх. Прати шта год. У укупном Сласх Сласх. Тако да је много грубље на тај начин да их стави на истој линији. Само нисам их на истој линији. АЛЛИСОН: Осећам се као да је то особне преференције у овом тренутку. ПУБЛИКА: Да ли то ићи за петље и ствари исто? РОБ БОВДЕН: Као унутра? Лике инт и једнако 0 зарез Дужина једнако нешто? Да немате избора. Са за петље иницијализације парт-- тако да можда само видели Инт И једнако 0 зарез И мање од онога зарез сам плус плус. То инт и једнако 0, Технички можете такође оно што смо видели раније са зарезом синтаксе. ИНТ И једнако 0 зарезима ј једнако 3 зарез К износи 5. Ви немате избора да се раздвојимо који се у више линија, и то је стандардна. Гледајући је у реду. АЛЛИСОН: Авесоме. Па, згодан Сегуе у петље. Тако да, овде имамо неке примјере петљи које ви видели у нуле. И наравно све ово могу само да се поново у Ц. И они су у основи те дозвољавају да поновим неке део кода све док одређеним условима се срели, који ћемо ући у праву после разговора О петље са уређаја. Дакле, имамо три главне врсте. Јер, док је, и радити док, који Ми сви ће проћи кроз одмах. Дакле, прво је за петље. Дакле, за неке стање, изврши овај блок кода. Ми имамо овај кул Литтле дијаграм овде на дну. Али у основи имате у Ваша Јер, то прве линије, ћеш инитиализе променљивих. Дакле, као што смо причали, ја је једнак 0 или И је једнак 10. Шта год да је потребно да се променљива бити да је то ће бити тамо иницијализован, прогласио и враћене на неку вредност. Па онда имамо мало стање које се дешава да се провера наше променљива против нечега. Дакле, у случају типичан случај када Можда желите овај део кода извршити пет пута. Тако да би имали инт и једнако 0, а ми Желим да то буде кад је мање од 5. Дакле, то је само стање ће да се провери да сваки пут. Ако је то услов вредност труе, то је ће покренути код, што је тачно Шта овај мали дијаграм показује. И тако да га извршава. Она ажурира променљиву, што је оно што видимо У последњем делу наше ФОР петља иницијализација тамо. Тако да ћу радити ово док се тај услов није испуњен, а онда ће излазак петља и настави наставља са остатком вашег програма. Сви добро тамо? Цоол. Дакле, ево примера, веома сличне нешто сам управо говорио. Дакле, ми само желимо да штампате Ово је ЦС50 10 пута. Дакле, видите овде имамо наш за, а онда иницијализовати променљиву И да буде једнака 0. Наш услов цхецкинг да је мање од 10. Тако процењују да истина прво када смо старт, а затим ажурира наше променљиве Сваки пут када је заправо извршава и исписује ово је ЦС50. И да ли ће прекинути након 10 пута. Цоол. Дакле, иако су се поред петље. И као што видите овде, имамо само мало док овај цондитион-- питање? ПУБЛИКА: Како могу скочити заправо само не један број, али два броја [неразумљиво] И плус плус плус? АЛЛИСОН: Дакле, питање је како можете да ажурирате променљиву више од једне у једном тренутку. Па сам плус плус ће Упдате за један сваки пут. Ако желите да га Упдате би два, можете да урадите и плус једнако 2. РОБ БОВДЕН: Јеси ли видео плус једнако у предавању још? ПУБЛИКА: [неразумљиво]. АЛЛИСОН: То је ефикасно Исто као што сам ја једнако плус 2. Тако да ће то узети и упдате га два сваки пут. Плус једнако је само нешто зовемо синтаксичку шећер. РОБ БОВДЕН: Да, они постоје отприлике све аритметичке оператери. Па сам пута на једнак дуплира број. Ј подела једнака 3 је иста као Ј Ј једнако подељено са 3. АЛЛИСОН: или минус 2 једнако би смањите сам до два сваки пут. РОБ БОВДЕН: Чак Мод једнаки. Ви нисте видели БИТВИСЕ оператора, али Царет једнако и Амперсанд једнако, сви они постоје. АЛЛИСОН: Дакле, много пута, нарочито са првим П сетова, бићете вероватно увецава од један, па сам плус плус, Ј плус плус су све ствари које идете да обично буде користи. Али то стање ажурирање потпуно унутар ваше контроле. Можете га ажурирати на било корацима или на било који начин да се одлучите да. Можда чак желите да буде Рандом Нумбер понекад. Али да, има много ствари које можете да урадите са тим. Ниси ограничена И плус плус. РОБ БОВДЕН: Само да Знам да постоји, такође постоји у другом облику, плус плус сам. Дакле, ако сте икада тражите на мрежи и деси да видим плус плус И, прилично значи исто. АЛЛИСОН: Цоол. Добро? Страва. Дакле, док петљи. Врло слично. Имаш стање. Главна ствар приметити Овде је умјесто три различита дела да подесите, имамо једну. Ми само мало стање који је у току провера. И на исти начин, док да услов има вредност труе, Ваш код ће да ради. И ако је лажна, то ће прекинути, потез на следећи део вашег програма. Дакле, ово је врста као-- шта је Добар пример провере за неке нормално стање? Габриел: Док истина. АЛЛИСОН: Могао би док истина. Па, 1 је једнак 1. РОБ БОВДЕН: Можеш да радиш вхиле-- само уместо за петљу, увек можете да кодира за петљу на време петљи, тако да већи од 0 или Док сам мање од 10. АЛЛИСОН: Авесоме. А онда смо радили док Лоопс, који је одличан за корисника валидацију, где желите да добијете нешто од Ваше упутство, видим да је важећа, а затим наставити одатле. Дакле, једна од ствари које треба знати је са урадите док је да ће да изврши, а онда ће поново извршити Ако се овај услов испуњен. Вероватно најбољи начин да се то уради само да видим пример овде. Дакле, као што сам поменуо, корисник Валидација је заиста усефул-- или су стварно Докле корисно са корисничким валидације. Дакле, ово је само иде да поново подстакне неке корисник док не унесете позитиван број, што може бити корисно за вашу П сет ове недеље. И тако у овом случају, када смо почетку покренути овај програм, да ће штампати унесите позитиван број. То ће набавити улаз од корисника, а онда ће проверити да улаз против стања да сте поставили за то. Дакле, у овом случају то ће проверити. То ће рећи, у реду, је наш улаз негативан, или 0 или негативан је, који ће бити неважећи. Онда би поново брз. Питање? ПУБЛИКА: Да ли је то исто као и тада док петљи ако само копирали тај код и стави га [неразумљиво] док петља? АЛЛИСОН: Дакле, питање је би ово буде исти као време петља ако бисмо само копирајте вхиле петље изнад. Дакле, у овом случају, ваша док петља ће прво проверити стање. Дакле, у овом случају, ако бисмо покушали да напише само као вхиле петље, то ће рећи време улаз је мање од једног. Али ми немамо улаз за њу. ПУБЛИКА: ако [неразумљиво] док петља укључујући овај код, али онда изборила код изнад вхиле петље такође. Само је имао овај код [Неразумљиво] док петља. АЛЛИСОН: Било би исто, да. Тако да можете само да врите-- умјесто да урадиш-- Да. Габриел: Али то је још елегантно. АЛЛИСОН: Да, то је више елегантан. Можете добити у дизајну и ситница, али да, можете потпуно да урадимо. Има ли још питања? У реду, кул. Тако да смо доста говорили о условима са свим тим петљама које имамо, тако да заправо добијамо у услови у булевих изразима. Опет, користите их у Ц, тако некако транзицији из више графичког интерфејса да стварно кодирање. Цоол, тако да велики, ако је. У основи само нам омогућава да се уведе нека логика у наш програм и проверу сис услови. Дакле, у овом случају, у реду, е н већи од 0? Да, јесте, тако да можете да извршите ово. То је само провјерити Услов је да имате сет, који мислим да смо сви ми угодно проверу услова. Цоол. Дакле, ако је још ваша друга, можете рећи у реду, ако је то истина, Урадите ово прва ствар. У супротном сам желите да Уобичајено и нешто друго. Као у овом случају, или узети позитиван број или негативан број. Имате само две опције. Вам је потребно је да се изврши без обзира онога свој кориснички улази. Тако да можете да кажете добро, да ли је већи од 0! Цоол. Испис позитиван број. Ако није, штампају негативан. Сви добро? И онда једна ствар је да призна да ако ако услов је испуњен, још никада ће извршити. Само један од њих ће извршавају истовремено. Тако да је компромис. Ти не да обоје. Или имате први услов. Или имате ли или друго, не обоје. Које онда могу да ствари још компликованији, јер можете урадити ако, друго је, а онда остало. Дакле, у овом случају, ми има три услова. И опет, само један од њих је завршити погубљења. Дакле, можда се питате Па, шта ти ако Имам нешто што може да испуни два од ових. Можда год си уноса испуњава оба услова Јер ако и друго, ако. Једина ствар која ће да ради АЛЛИСОН: Чим нађе нешто да испуњава услов за то вредност труе, то је шта да ће покренути и ништа друго. Дакле, ако сте имали је овај број између 0 и 5 за ваш први, или је овај број од 3 и 5 за иф део, а ви улаз нумбер-- Рекао сам 0 и 5 и-- 4. То ће да удари први. То ће рећи у реду, ово број између 0 и 5. Извршава и оставити. Она никада неће погодити ту другу опцију. Цоол? Страва. У реду имамо и свитцх наредбе ако желите да добијете још море-- или жао, прекидач је следећа. Ја идем испред себе овде. Опет, Мултипле ако блокова где као што сам рекао је чим нађете услов који је упознао и ако иф друго, оставља. Ако вам је потребно да проверите више ствари, ти си хтети да користите ову, јер он ће проверити сваки пут овде. Тако ће ова покренути кроз и ако је већи или једнак до 90, да ће то принт. И то ће трајати до и проверите сваки од њих. ПУБЛИКА: Дакле, ово би било више од Бугги [неразумљиво]. Да ли би то било као [неразумљиво]? АЛЛИСОН: Питање је да ли би то било Бугги или се ово ради шта хоћеш. То је заиста зависи од тога шта желите од вашег програма. ПУБЛИКА: Мислим као да сте ставили 90 в. АЛЛИСОН: Ако ставите 90-- ПУБЛИКА: [неразумљиво]. Габриел: Ти ћеш добити две ствари. АЛЛИСОН: Ти ћеш добити две ствари. Да, два. РОБ БОВДЕН: Два? АЛЛИСОН: Не РОБ БОВДЕН: Четири. Ако ставите 90, то ће те рећи Добио А, имаш Б, имаш Ц, имаш Д. ПУБЛИКА: [неразумљиво]. АЛЛИСОН: Добро. Тако да зависи од тога шта желим од вас програма. Понекад морате да се проверите више ствари. Добићете много дубље у оно Добар дизајн је као идете напред. Важно да се схватају да је ово ће проверити све четири услова овде. А ако је ово друго, ако иф ако друго, то би погодио да је први случај, би принт имаш петицу и да се уради. РОБ БОВДЕН: Чак и ако одлучио да промени то, ако и већа од или једнака 90, ако је и већа од или једнака 80, и мање од или једнак 89, ако н веће од или једнако 70, и н мање од или једнака 79, тако да ће бити тачно. То ће учинити оно што желимо, али ипак проверава сваки је сингл. Дакле, док је у првом сценарију, ако се ентер 90 са само ако иф иф, и улазимо у 90, а затим да ће исправити. Он ће проверити први један, штампање имаш петицу, прескочите све, јер Већ се онај који ради. Сви предмети су међусобно искључују на основу ако иф иф. Тако да ће извршити Прво, ако, онда је готово. То ће ићи до краја. А ако се мења да је ово што сам био говорећи са мање од или једнако 89. То ће да проверите први. То ће принт. То ће проверити другу. Неће се штампати. Проверите трећи. Не иде то принт. Проверите четврту. Сада ће се штампати. Дакле, у том случају, ако је друго верзија, пошто ови случајеви међусобно искључују, то је Боље коришћење ако иф иф, јер ће имати мање провера услова од ове верзије. АЛЛИСОН: Авесоме. Дакле, још једна ствар коју можемо урадите је прекидач изјаве. Основи изјава прекидач узима у неком променљиве, у овом случају то је н и одређује ком случају извршити. Дакле, ово је такође један где твоји предмети би требало да буде нека врста међусобно искључују. Дакле, у овом случају, уколико ми смо добили један, то је ће да одговара без обзира на то вариабле-- год вредност Н је једном од ових случајева, тако 1, 2 или 3, и одштампати одговарајуће праве. И онда ако се овде приметите, имамо и подразумевану, којима можете од сматрамо ваше друго. Дакле, ако одаберете било који други број Поред 1, 2 и 3 у овом предмету Управо ће штампати неважећим. Одлучивање када користити ИФС Версус ако Елсес наспрам прекидача иде да буде нешто што ви ће види дизајн мудри као почнете да пишете компликованије програма, и да нема чврстих и брза правила од када да их користе. То је заиста зависи од вашег контекста. РОБ БОВДЕН: И само да га баци тамо јер је удобније секција. Прекидачи, они имају тенденцију да се-- па сте ограничени у броју начина сте да их користе, јер ИФС, услов може бити прилично много шта хоћеш. Са прекидачима случајеве морају бити бројеви, или технички могу бити цхарс, али знакова, као што ћемо видети, су само бројеви. Дакле, они морају да буду бројеви, али прекидачи су заиста ефикасније него да иф иф, јер чак узимајући пример пре-- добро, оцјена пример изгледа добро. Па хајде да овде кажу, да уместо тога радимо ово као да иф иф сценарија. Дакле, ако је н једнако једнако 1, принт си изабрао мали број. Ако иф н једнако једнако 2, да си изабрао средњи број. Иф једнаки износи 3, висока. Елсе неважећи. Дакле, хајде да кажемо да је наш сценарио. Дакле, рецимо да уђе 4, тако да очекујемо неважећи. Тако да ако иф друго ако приступ ће радити је проверава први услов. То није задовољан. Тако да проверите други услов. То није задовољан. Проверите Трећи услов. Није задовољан. Дакле, идемо на друго и принт неважећим. Начин на који Пребаците рад да ли је саставља доле у шта ћемо позвати скок сто. Основна идеја је када унесете 4, она одмах може ићи у подразумевано. То не треба да се провери сам ја Случај 1? Не није то. Цасе 2? Не. Цасе 3? Не. Уобичајено. У реду, то мора да буде, где сам желе, а затим изврши то. Не, она одмах прелази на подразумевано. Или је сам ући 2, то је Одмах ће ићи у 2 без потребе да се прође кроз случај 1. Дакле, на тај начин, реално данас да је није баш неки добитак ефикасности. Обично рачунари су прилично брзо, а то није тако добро. Али је тачно да прекидачи су бржи. Ако сте заиста покушавате оптимизирати, користите прекидач. АЛЛИСОН: Цоол. И онда имамо троструки оператера. Тако да знам што сам раније споменуо реч синтаксичких шећера. Тако да је само ствари које чине Ваш код много више концизан. Тако да је ово један од оних случајева. Дакле, тројни оператор је знак питања Цолон као што видимо у линијском низу а једнако н већи од 100 вопрос висока дебелог ниска. Дакле, у основи како ово функционише је да је н већи од 100 је услов. Дакле, мислим да има смисла. То је као да питате питање. Она каже Ох, је н већи од 100. Ко зна? И ако се оцијени да Истина, то ће вам дати прва ствар која је тамо наведена, која је висока. У супротном то ће вам дати ниске. Дакле, ово је само веома једноставна и ефикасан начин да се не свиђа када други. То је све ово. И ако смо да напише ово као да други условно, било би да је н веће од 100, вратити висока. Друго, повратак ниска. Ово је само много концизан начин то писања. РОБ БОВДЕН: Па овај пример се сваки пут када радите нешто овако, ово је образац где сам користим тернерних врло често. Тако да нисмо разговарали о обиму још, Али мрзим видим Стринг зарез. Ако је н веће од 100, а једнако висока. Друго, с једнако ниска. Тако да узорак, те пет линија кода буквално 100% времена могу пренети у шта био тамо са тернарни. Дакле тројни, једна линија кода. Ако друго, пет. То је пример и точка од сваки пут. Ово би сјајно место за троструког оператера. Тако је чиста. Али, људи имају тенденцију да никада не користи. АЛЛИСОН: Склони то Габе. Габриел: Сада сте сви научио у предавању ове недеље да је све у Рачунар је бинарна, зар не? Баш као лампе овде. Можете бити укључен и искључен. И по свему, мислим буквално све. Неки бројеви, слова и, и, Стрингс па чак код који пишете када она ће бити састављен на машину код и тако то, тако да све се своди на 0, а 1 ". И тако, када имамо посла са бројева који је нешто што је технички веома једноставно, требало би да будемо у стању да уради ствари као што их, што је вероватно један од најједноставнијих ствари можете да урадите на два целих бројева, зар не? Дакле, сабирање и одузимање функционише као што ради у децималном запису, осим овде је бинарни, зар не? Тако да је у основи два. Па додајте 1 плус 1. То даје 0, а 1 носи преко. И само наставите да радите то, Сада долази још занимљиво питање. Ми знамо како да представљају све природни бројеви у рачунару, али нека ово вежба. Претварати ви сви у 1960. или нешто покушава да створи рачунар, и морате да се чине начин чувања минус 1, на пример, или минус било цео по том питању. Како би ти то? Било који идеја? Само баци све на мене. Да? ПУБЛИКА: [неразумљиво] одредити посебан ако ваш [неразумљиво]. Габриел: Можете да одредите Посебан битни, који ће бити 0 или 1. Рецимо један ако је позитиван и 0 ако је негативан. А онда остатак бита је само да сачувате број. Цоол. Дакле, то је веома добра идеја. Ми имамо, не знам, 200. А ако је први бит је укључен, онда је то плус 200. Ако је искључен, то је минус 200. Цоол. Постоји само један мали проблем са овим, која је ако покушамо да сумирамо ствари. Замислите имамо 11111 овде, и ми сумирањем са 00100 слично. Ако то двоје су позитивни, то је у реду. Али онда ако један од њима је негативан, као рецимо да је то мало овдје је онај који је одговоран за-- Идем да направим сепарате-- Дакле, ово је један да се тај број овде значи је позитивно. Ова значи да овај број овде је негативан, зар не? Али онда када сте ће их сум, ти треба иф рекавши Ох ако је 0, онда мој сума ће бити нешто друго, зар не? Тако да је мало паметнији начин да се да, што се назива Комплемент двојке. Дакле, у основи оно што урадите је да дефинишемо минус 1 да ствар да, ако додамо до 1 УС 0 даје. Дозволите ми да поновим да. Дакле, хајде да кажем да је ово овдје је 1. Шта је оно што наравно у позитивном бројева Осим тога, УС 0 даје? Шта ако се трудимо да га додате на овај број? Идемо у бих-- реду, па хајде да додамо. Ми ћемо имати 1 плус 1 је 0, и онда носи готово. А онда ћемо поново добити 0. Идем збуњен. И ти ћеш добити 0 и 0 и 0 и 0 и 0 и 0. Много 0-их. На последњем један, нисмо ће бити у стању да га пренети, јер рецимо да само имамо посла са једним бајт, тако да је само 8 бита. Дакле, шта рачунар ради по дефаулту само заборави да [неразумљиво], У реду? Дакле, то је оно што се зове Њих двојица комплемент. Ми једноставно дефинисати минус 1 буде ствар овде да ако додате то 1 ће вам дати 0. И то је прилично кул јер ми не баш треба касно за имплементацију другачији тип суме у зависности од тога да ли је то негативан или позитиван број. Да ли то има смисла? Дакле, једна ствар коју радимо овде ради претварања између позитивног и негативног цео се онда флип све, а онда додати 1 до тог броја. Ако покушате да то сами урадите на парчету папира, ћеш видети да има смисла. Али ако узмем тај број Ево, ово је пет. Дакле, ако сам флип све овде, тако 1, 1, 1, 1, 1. Флип, флип, Флип. И онда сам додати 1 до њега. Ја ћу тачно минус 5 има. У реду? Ова врста има смисла, јер ако покушате да сумирамо ово са бројем да смо раније имали, која било-- идемо опет флип ово. То је било 101, а много је 0. Ако покушате да додате ове два броја заједно, ћеш тачно 0 имати. У реду. Има ли питања? ПУБЛИКА: [неразумљиво] Габриел: Како то мислиш? ПУБЛИКА: Негативно се Позитиван [неразумљиво]. Габриел: Не, ти флип и додати 1 Увек. Да. У реду, тако да ликови и кодирани бинарне. Имамо АСЦИИ табелу, као и ти такође видео у предавању, зар не? Дакле, то је у основи мапирање ствари. И ту ја не могу довољно да нагласим да је за компјутер, и 65 су буквално иста ствар. Дакле, ако пишем нешто као цхар ц једнако, могао сам да у исто време напишите 65 овде, и то би исто, у реду? Нема разлике уопште. Ми обично имају тенденцију да ликови у варијабли типа. Чар, не зато што су у суштини направљен за то, него зато што људске конвенције. Али само да се позабавимо бројева уместо варијабли типа цхар, и ти ћеш бити у реду. Једина стварна разлика између цхар ц и инт и је да има четири инт бајтова у већини системи, док Чар има један бајт. Они у суштини су исто у погледу података. Дакле, шта ће штампати овде? Овде смо штампање цифру помоћу принтф са плус 1, а баш као и целих бројева, слова се може сажети, тако знакови могу се сабирају. Дакле, ово је тачно 65. Тако да ће бити 66, а овде имамо 65 плус мали минус велики, који ће бити, ја стварно не знам. Али то ће бити управо јаз између словима а и мањим словима, тако ћемо добити малу А, зар не? Да. Дакле, ово ће штампати лик који је управо овај. Добро? Има ли питања? Овде имамо гомилу различитих Типови за нумеричке варијабле. Ми смо већ причамо о инт. Флоат је само начин да-- ово је стварно смешно, јер кад сам први пут сазнао програмирање назад у дан са Питхон, прво сам икада програма покушао да пишем, видео сам да је Тип позвали и типа под називом флоат. А пловак је за све реалне бројеве. Онда сам питао зашто Ја икада користити онда инт? Јер ако ја могу да користим све реални бројеви са Флоат, Ја бих само престану да користе интс, зар не? Јер реални бројеви Слично као још Генериц. Испоставило се да је ово није случај у рачунарима јер су у суштини су различите ствари. Дакле, бројева и сплавова, Операције које радите на њима битно разликују, јер на начин на који су ускладиштени, у реду? Ми ћемо мало да разговарамо мало више о томе у секунди. Дакле, двоструки је само већи пловак. Обично у већини система, флоат је четири бајта, баш као инт. И двоструки је осам бајтова. Лонг Лонг је заправо само симбол да додајте на типу као Инт. Дуго сте рекли лонг инт овако. Лонг Лонг инт да га направи дуже. Дакле, у већини система, да ће дати осам бајтова уместо уобичајених четири. А заправо може пасти у, тако да само могу да кажем дуго дуго, и која ради исто, у реду? Такође можете да урадите и друге ствари као што је грозен Инт, или опет само непотписани ће такође радити. А да би је Кс променљива Као да је све позитивно, тако да не могу да имају негативан Бројеви на начин на који смо видели овде. Дакле након дивно флоатинг поинт и прецизност. То је један од разлога зашто Желим да користе интс уместо сплавова, јер интс су 100% прецизни, зар не? Управо је тај број. За плутајуће тачке, ти ако кажу одговор једнако 1 над 10-- Случајно имам ово тачан програм овде, флоат.ц. Који исписује до 20 децимале. 1 подељено са 10 и да Обично је 0,1, зар не? Али овде, ако правимо флоат а онда смо га воде, видимо да то није баш 0.1. То је нешто 0.149. А зашто је то? Зато што не могу да представљају сваког Сингле могуће стварни број у меморији јер постоје унцоунтабли многи од њих. Тако да смо у стању техницки само представља коначан износ њих са ограниченом количином података. Али то је заиста занимљиво. Сада ово намеће питање како би ићи око представља ово са битова, зар не? Дакле, како се чувају плута? Са бројева је било лако. Али са пловцима желите како би се повећала опсег, и желите да будете у стању да представља огроман број и врло мали број лике 0.000001 у исто време. Дакле, опет, иста игра. Да ли неко има било какву идеју како бисмо могли ићи око представља плива у меморији? Само баци нешто. Да, молим те. ПУБЛИКА: [неразумљиво] као ако је два интс и један као [неразумљиво] и један биће Све после децималног зареза. Габриел: У реду, кул. Дакле, два различита цела броја. Можете имати 12.45, тако да је 12. и 45. Лепо. Шта Ере си хтео да кажеш? Иста ствар? Да? ПУБЛИКА: [неразумљиво] нотација где сте одвојите базу. Габриел: Научни нотација, Да, то је обично оно што се дешава. Дакле, то је оно што се назива Мантиса. То је оно што је заправо број, а затим експонент је само где зарез је, зар не? Дакле, ово ће бити нешто обрасца 1, 2, 3, 4, 5 пута 10 на минус 4. Управо сам схватио да-- Да, тачно. А онда 10 до минус 4 је ће дефинисати где зарез је, у реду? У Бразилу користимо зарез. Овде ви користите тачку. Дакле, тачка. А ово је кул, јер тада можете фоцус пуно ваших битова овог момка Овде, на мантисе, а онда је то ће бити стварна прецизност. И ви можете да урадите било у децимале или у систем базиран бинарном. Постоје различити начина да спроведе ово. Питања? Да? ПУБЛИКА: Колико места после децималног [неразумљиво]? Габриел: То је компликовано питање, зато што је никада није 100% прецизан, јер као овде, за видети Неки бројеви је 100% прецизан. Верујем да ставимо 0,5 овде, то ће бити 100% прецизна. То ће бити 0,500000. Дакле, у том случају, то је савршено. Али у другим случајевима, то је много мање савршена. По мом искуству, као и до четири, пет децималних места је прилично прецизна. Ако користите двоструко, то ће бити прецизнији начин од тога, у реду? РОБ БОВДЕН: Дакле, само да баци још контекст у сплавова, Никад се не сетим како је 100% Спец од сплавова стварно ради, али ја увек сећате да почну пловци постаје неуредна. Дакле, идеја је да када се заиста, Заиста велики број или стварно мали број, почнемо све гори и гори у разликовање између два блиска сплавова. Дакле, како волим да мислим само о са покретним зарезом непрецизности, постоје два флоатс које ако покушам да их наведете ин Ц, упркос чињеници да су различите бројеве, они ће бити тумачи као истог броја, јер не можемо да их ускладишти другачије. Морамо да користимо исте битове. Па кад стигнемо у Стварно, стварно велики број, говорим као 10. са 300 или нешто, то је у том тренутку да 10 до 300 или 5 пута 10 до 300 не могу разликовати од 7 пута 10 до 300. Дакле, то је прилично велика разлика између два броја. Али онда када се доле са уобичајеном ствари, Ви имају тенденцију да буду веома добро разликовање. И онда кад дођеш доле заиста мали, Такође добијате прилично лоше поново. Дакле, као гомила 0.0000, постаје прилично лоше. Габриел: Да, па брзо напомена. То никад не раде. Никада не покушавајте да упоредите плута користећи екуалс једнакима јер чак и ако су скоро су исто, скоро исто не исти. Дакле, оно што обично радите је да одузмете им, узети апсолутну вредност која, и види да ли је то мање од 0.0001 или тако нешто, у реду? И цоол. Знам да многи људи имају нека позадина у Јави, посебно оних који су радили АП Цомпутер сциенце, зар не? И Јава је језик који углавном заснована на Ц, она има неколико веома велике разлике. Али за петље, и ИФС, и ствари као што су да, они су сви исти синтаксу. Имам неколико програма овде да покажем ово. Тако, на пример, једноставно здраво свет. Ово је Хелло Ворлд у Ц, што вас момци су дефинитивно упознати са, и овај један је у Јави. Тако да у Јави хаве тхис јавни час, хелло ворлд, а публиц воид главни, и Стринг аргс. Стринг аргс иду да се појави у Ц врло кратко. Али хајде да не идемо тамо још. Сада имамо овде празнина, што значи да је главни се не узима никакве аргументе. И онда имамо Систем.оут.принтлн, и то је врста еквивалента за принтф. Овде не баш потребан косе црте н јер штампање У то ради за вас. Он додаје да косу црту н на крају линије. Али, ако идете у нешто као Јер, види се да су прилично иста ствар. Дакле иницијализација, и стање, а ажурирање је-- Пропустио сам простор овдје-- су прилично иста ствар, осим Јава има као још неколико ствари на високом нивоу. Овде можемо да урадимо да и плус Јава ће се аутоматски чине овај овде, што је цео, у низ, а затим додајте две жице заједно. Овде у Ц треба да урадимо и% Д. , Линија овде за изгледа потпуно исто. И ако погледамо ако, ИФС Такође изгледају потпуно исто, зар не? Дакле, прави велике разлике у оним стварима које овде видите. Публиц статиц, воид, и онда јавни час, ако. Дакле, Јава има оно што је зове виртуелна машина. И то је веома тешко на основу чега се назива објекат оријентисан програмски, која је веома, веома чест парадигма за програмирање данас. И ова класа ствар је оно што видите, нешто из објекта оријентације, је да направите класу и онда може извести објекте из те класе. Нећемо да разговарамо много о томе у ЦС50, али то је дефинитивно нешто стварно цоол, посебно ако желите да идете у софистициранији Веб девелопмент на крају курса, Као предате свој завршни пројекат и неке лепе ствари и оквири. Дакле, у основи је идеја да се ти Не желим да поново спроведе нешто, тако да направимо нешто што је Веома Генериц, као и облика, а онда правите различити облици од тога, а затим из сваке од Ови облици, направите неке више специфичних облика у три димензије или нешто слично. И они имају ту су хијерархију наследио од оних других, тако да Све функције и све варијабле које велики облик овде има, сви ови ће имати, и сви су ће имати, и тако даље и тако даље. Дакле, то је основна идеја. Ц нема, али Ц ++ нема ту врсту функције. И Јава је под великим утицајем од објекта оријентације, па зато видиш све време класе овде. А друга ствар је Овај Јава Виртуал Мацхине. Тако да, мислим да је веома паметна идеја. Дакле, шта су људи који су измислио Јава урадио је нису хтели да саставити свој код двапут ако су морали да га покренете на Виндовс, или Мац или Линук, па шта раде се они буквално воде нешто попут апарата, али стварно не видим да се то дешава. Па су покренути виртуелну машину унутар вашег рачунара, који је у основи као Мини оперативни систем. И да ли је радни сврха система у животу је само да покренете оно што се назива бајт кода. Дакле, уместо у Ц, на начин на који би саставити ово је учинити ако, и покрените ./иф. Заборавио сам косу црту у. У Јави, би прво урадити Јава, Ц то саставити, иф.ц. Није Ц. То је тачка Јава. А онда морате да покренете није ./. Добићете ову нову слику иф.цласс, али не могу да рун иф.цласс сада само као што смо раније. Ово није извршна. Морате да покренете. Морате да га увуче Програм под називом Јава, а тај програм је виртуелна машина, и онда ти иф.цласс, или ако. Да. И онда то ради. ОК, ово је мало Виртуал Мацхине дешава. Ц нема да, па ако бих ставио овај програм у Виндовс машини, то не би радили у Ц. У Јави то ради. Питања? Цоол. То је ако је за супер одељак за данас.