[Мусиц плаиинг] Давид Малан: У реду. Ово је ЦС50, а ово је крај недеље 2. Тако ми је жао што не могу бити ту са свима вама данас, али ти си у добрим рукама. Дозволите ми да вам представим ЦС50 сопствене Роб Боуден. Роб БОВДЕН: И наравно, онда морамо да направимо забаву на чињеницу да нам је послао вертикално видео и покажемо. [ВИДЕО РЕПРОДУКЦИЈА] [Мусиц плаиинг] [ФООТСТЕПС] -Ова Видео није морам да гледам на овај начин. Могло је бити спречена. Саи но то вертикалним видео. -вертицал Видеа догодити када вас држите ваш фотоапарат на погрешан начин. Ваш видео ће се завршити изгледати као срање. - [ГРУНТ] -Постоје Више и више људи зависни томе да вертикалне видеа сваки дан. То није црацк или ништа, али је и даље веома лоша. Постоје две различите врсте људи који су захваћене ВВС. Прва група третира Видео пуцају као слика. Они не значи ништа лоше. Они једноставно не разумем док можете претворити слику, ви стварно не могу окренути видео. [Црасх] - [Мајмун СОУНДС] -У Друга група су људи који не дају [БЛЕЕП]. -вертицал Видео синдром је опасан. Мотион пицтурес хаве одувек била хоризонтална. Телевизори су хоризонтално. Компјутерски екрани су хоризонтално. Људски очи су хоризонтално. Ми се не граде на ватцх вертикалне видео. -Волим Вертикалне видеа. Нико стало до тебе. -Ако Овај проблем је лево неконтролисано, и ти ће почети приказивати четири видео одједном само да спасе пропусни опсег. -Леттербокед Вертикалне видео би бити величине поштанске марке. -И То ће се ширити на све стране. Мовие екрани имају одувек била хоризонтална. Ако вертикалне видеа постати прихваћено, биоскопи ће морати да буде висок и мршав. -И Све биоскопе би морати да се срушена и обновљена. И док су обновљене, Мила Кунис ће бити стара и ружна. -Бирдс Ће пасти на њих и умру. -Морају Све добити крут вратови од гледања. -А Нико неће седети у први ред икада поново. Георге Луцас ће ре-релеасе Звезда Ратови Поново: на мршавог издање. -Ја Никада није био у стању да каже прича коју сам хтео да кажем. Ово је велика шанса за мене да експериментишу са новом технологијом. Ти си кретен. -Сваки Пут када мобилни уређај се користи за Снимање видео, искушење је ту. Само реци не. Саи но то Џорџа Лукаса. Саи но то стари Мила Кунис. Саи но то вертикалним видео. А ако видиш да неко то ради, рецимо, "Не снимате да прави будалу!" [Мусиц плаиинг] [Крај репродукције] [АППЛАУСЕ] [АУДИО ОУТ] Роб БОВДЕН: --симпле облик криптографије, што је у суштини шифровање и дешифровање тајних порука. Дакле, овде имамо врло једноставну играчку. Идеја је спољни прстен ротира око унутрашњег прстена. И можете да видите, можда ако зоом у, то-- то је тешко видети. Али, као, број 1-- добро, што се кретало. Број 1 пресликава у писму Кс, број 2 мапе за писма Ј невероватно тешко да не прескочите напред. Писмо 2 мапс на Ј. Број 3 мапе до Д. Дакле, са овим прстеном можете дати неко порука 1, 2, 3. Из неког разлога иоу Желим да им кажем КСЈД. Али можете их дати нека порука бројева, и све док они имају овај прстен, они може да дешифрује шта покушаваш да кажеш. Дакле, можда сте видели ово Посебно пример криптографије пре ако око Божића сте гледали А Цхристмас Стори. Ако никада нисте видели је раније, сада само укључите ТБС у дословно сваки пут на Бадње вече, јер само показују бацк то бацк враћа се бацк то бацк цео дан. И релевантни видео је ово. [ВИДЕО РЕПРОДУКЦИЈА] Буди се зна да све и разноврстан да је Ралпх Паркер је овим именован за члана Мали Орпхан Анние Сецрет Цирцле и има право на све почасти и бенефиције јављају њу. Потписан Литтле Орпхан Анние. Потпише Пиерре Андре мастилом! Признања и предности Већ у доби од девет! [ИЕЛЛИНГ из радио] -Хајде. Хајде да завршимо са тим. Не треба Алл Тхат Јазз о шверцерима и пиратима. Слушај сутра увече са завршни авантура Црног Пирате Схип. Сада је време за Анние је тајна порука за вас чланови Сецрет Цирцле. Ремембер кидс, само чланове од Анние Сецрет Цирцле да декодира Анние тајну поруку. Запамтите, Ени зависи од тебе. Подесите пинова на Б2. Овде је порука. 12. 11. 2. -Ја Сам у свом првом тајном састанку. -25. 14. 11. 18. 16. Ох, Пјер је у великој гласовном вечерас. Могао бих рећи да је вечерас Порука је заиста важно. -3. 25. То је порука од Анние сама. Запамтите, немој никоме рећи. -Пет Секунди касније, ја сам у само Соба у кући у којој дечак од девет могу да седим у приватност и декодирањем. Аха! Б! Отишао сам до следећег. Е. прва реч је "бити". С Долазило је лакше сада. У. 25. То је Р. Хајде, Ралпхие! Морам да идем! Одмах се доле, мама! Бого мој. Т. О. "Будите сигурни да" - будите сигурни да шта? Шта је Литтле Орпхан Ени хоћете да кажете? Будите сигурни да шта? -Ранди Мора да оде! Хоћете ли изаћи? -У Реду, мама! Бићу одмах! Ја сам се сада ближе. Напетост је била страшна. Шта је било? Судбина планете може држати у равнотежи! -Ралпхие, Ранди морам да идем! Одмах се напоље, забога! Скоро тамо! Моји прсти летели. Мој ум је био челика замка. Сваки пора вибрира. Било је готово јасно! Да. Да. Да. Да. Будите сигурни да пије свој Овалтине. Овалтине? Бедан комерцијални? Курвин сине. [Крај репродукције] Роб БОВДЕН: Па тако је Овалтине односи на криптографију. У суштини ЦС50 само рекламирају Овалтине, тако да смо могли бити бедан реклама за Овалтине. У реду. Дакле, сада актуелна компјутерских наука. Запамтите понедељак смо стали роњење дубље у жицама. Тако да смо се бавили стринг "Замила." И ми смо признајући чињеница да можемо да третирамо "Замила" као низ знакова. И сјећам се да смо научили носач нотација. Дакле, ако ово су чувани у низу "с", онда ако смо рекли ова носач 0, да би указују на словом З. И ако смо рекли а носач 1, да указује први мала слова а, и тако даље до с брацкет 5, која би указивала на трајати. Сада запамтите да је Дужина овог низа је 6, али индекси во низа су 0 до 5 З кроз то трајати. Дакле, ово сада уклапа у већу слику меморије рачунара, РАМ меморије. Дакле, негде програм који бежиш рачунар треба да запамтите Замила негдје у меморији. Могу ли добровољац? Да молим. А како се ти зовеш? Декан: Деан. Роб БОВДЕН Деан? Драго ми је, Деан. Зато дођите овамо, и ћемо имати цртате на нашем лијепом изванредан распоред меморије. Сада волим да мислим меморије као једну дугу траку бајтова, али само за потребе приказивања ћемо само немој лева на десно, одозго на доле. ОК? Зато ћу да покажем програм-- Гетстрингс.ц. И тако све то програм ради се тражи четири жице из корисника са ГетСтринг а затим штампање ма шта то први низ ушла је. Ми смо игноришући два кроз четири. ОК. Дакле, овде сада-- када Ја први захтев С1. Дакле, ти си компјутер. А ви се спроводи ГетСтринг. Дакле, затражити вам низ од ја, и ја кажем, у реду, Деан. Дај стринг "Деан". Дакле, негде у меморији си треба да запамтите "Деан". Дакле, пишу у меморију негде. Савршен. ОК. Дакле, сада смо с2. И С2 ће бити захтев за ГетСтринг. Зато ћу да унесете стринг. Идем да уђе у "Хану." Тако унесите "Ханнах" негде у меморију. Да. А-Х. У реду, тако да сада С3. И то ће бити још један тражити да ГетСтринг. И сада унесите "Марија". У реду. А ту је и последњи Захтев за ГетСтринг, С4. Дакле, ја не знам. Како би било да одемо са антидисестаблисхментарианисм. Дакле, унесите је у меморију. Да. Дакле, само уради "Роб". ОК. Тако сада објасним зашто оставите ове просторе? Зашто имаш ово празно простор овде, овде и овде? Да. Тако приметити када одем штампање с1-- тако да ако смо Имао "Хана" Руннинг Право се поред "декана," Како да знамо када стринг "декан" завршава? Дакле, штампање стринг с1 може имати само штампани "ДеанХаннахМариаРоб" ако нема појма од када је "декан", заправо завршава. У реду. Дакле, у меморији смо заправо начин представља овај крај низа је са обрнуте косе црте нула. Дакле, тај простор је управо оно што смо желели. То би требало да буде обрнута коса црта нула. Ово ће бити обрнута коса црта нула, и то ће бити обрнута коса црта нула. И можете имати феноменалне награде зато што је савршен добровољац. Узмите стрес лопту! ОК. Дакле, ово карактер обрнута коса црта нула како указују на крај низа. Тако када је било дати програм жели да одштампате стринг, Сећам се да је како-- смо научили стрлен функција прошле недеље? Дужина стринг? Тако дужина стринг у стању да утврдити колико дуго стринг. Само држи итератинг над ликовима док не открије да је Бацксласх нула карактер. Дакле, оно што је важно да схватимо о обрнута коса црта карактера нула да ли је то представља све нуле у бита. Дакле, приметите да је ово различита од нула карактера. Дакле, знак нуле, ако се сећате у примеру који је дао на крају предавања којој ликови мап да-- као капитал А мапе на 65. Мала слова а карте до 97. Мала слова Б ће бити 98. Дакле, број 0 мапе да-- не знам знам са врха моје главе. 44 или 45. Негде у том региону. Дакле, карактер 0 је стварни број. Али, обрнута коса црта нула Карте за све нула бита. Дакле, постоји разлика између обрнуте косе црте нула, који ћемо назвати нулл терминатор. Постоји разлика између обрнута коса црта нула и карактер нула. У реду. Дакле, говоримо мало више о жицама. Онда смо овде видимо како да би се постављени у меморији. Дакле, ова идеја жица као секвенце од цхарацтерс-- тако да је званични рачунар сциенци термин за секвенцу је низ. Тако бисмо ми назвали низ низ знакова. А заправо постоје други подаци Врсте које можемо направити низове од. Тако да мотивише ово, погледај пример. Ми ћемо то назвати агес0.ц ћу копирате наш шаблон. ОК. Дакле, у овом програму оно што смо Желим да урадите је да зграбите године три ученика у току. Дакле, знамо ИНТ аге-- а сада ћу да кажем 0. Дакле, можда ћете желети да кажете аге1, али за потребе видећемо врло брзо, Рећи ћу Инт аге0 једнака Тоноване. Дакле, исти позив на Тоноване да смо користили И не догоди да се навело говорећи: "дај ми године." Али само захтева. И аге1 једнако Тоноване. И Инт аге2 једнака Тоноване. Дакле, опет, три ученика, али На крају крајева, променљиви индекси су аге0 кроз аге2. ОК. Дакле, овај програм ће учинити све желимо са аге0, аге1, и аге2, али овај програм на крају ради за три студента. ОК. Па шта сад ако желим четири студента? Па, ја ћу да се вратим у мом коду, промените коментар, а сада имамо инт Аге3 једнако Тоноване. ОК. Па ко овде види проблем? У чему је проблем са овом врстом подешавања? Да. Да. Тако смо стварање променљива за сваког студента. Сада то ради, али на крају шта ако сам сада кажу, "Желим да зграбите старост Осам ученика или 16 студената или су ипак многи студенти стотине ученика у ЦС50 или хиљаде студената у кампусу или милијарде људи у свету? Дакле, на крају крајева то није одрживо. Сваки пут када видите себе копирање и лепљење код овако, сте генерално треба да се осећају да постоји бољи начин. Дакле, ово је место где уводимо низ декларација. Дакле, када прогласи низ, то је оно што општи формат ће изгледати. Ми ћемо рећи тип. а онда ћемо дати име тог низа, као што смо дефинисали сваку дату променљиву. И на крају користимо опет овај носач нотација али у другачијем контексту од како смо га користите раније. Дакле, овде то изгледа као нормална променљива изјава да смо видели. Дакле, видели смо инт тачка зарез раније. Па сад можемо видети нешто као инт к заградама 5. И ставља ову идеју у Тоноване програм који смо бих-- тако да можемо имплементирати то у исти начин. Рецимо у ЦС смо склони да користе Н као број нечега. Дакле, овде ћемо складиштити четири ученика. И сада можемо рећи инт године носач не н-- сасвим схватам иет-- да прогласи низ од четири ученика. Па како ће то изгледати у меморија ће бити сличан овоме. Очистите ово. И ми ћемо имати негде у мемори-- Ставићу ово горе. Дакле, негде у меморији. Један два три четири. Имамо четири цела броја заредом за низ од четири целих бројева. Дакле, сада, шта је величина једног од ових кутија? Да. То је четири бајта. То је 32 бита. Дакле, сада ово је другачије од низа који смо Видела раније, низ знакова. У низу свака кутија је само један бајт, јер је лик је само један бајт. Али са низом целих бројева, сваки кутија мора да буде четири бајта у циљу да стане цео цео. Дакле, ово је оно што низ Четири ИНТС би то изгледало. А онда назад у коду. Сада желимо да заиста продавница цели бројеви у тај низ. Дакле, сада је ово веома, веома, веома заједнички образац који ће у неком тренутку постају мишића меморије. Дакле, инт и износи 0. И мање од н. И плус плус. Старост носач сам једнако Тоноване. Дакле, ово петље, овај формат, требало би да врло навикли. Дакле, ово је генерално како ћемо Посматрајте преко скоро сваки низ. Сада обратите пажњу на ову врсту објашњава зашто од почетка нисмо имали петље за одлазак на инт и једнако 1, и мањи или једнак до 10. Разлог је да је почев од нула чини овај посао добро са низовима. Дакле, низови су нула индексиран. Ако је ово низ је дужине 4, индекси су 0 до 3. Дакле, кроз први итерација ово петље ћемо бити постављање године носач 0 једнака позив на Тоноване. Дакле, шта год да се десило да уђе на тастатури. У другом пролазу, ми смо постављање аге1 једнака Тоноване. Треће додавање, аге2. Завршни додавање Аге3. Дакле, ако у првом пролазу петље Улазим у број 4 на тастатури, онда ћемо убаците 4 овде. Ако на другом пролазу сам улазак 50, ми ћемо ставити 50 овде. На трећем пролазу сам могао унесите негативан 1, негативна 1, и онда на крају ако унесете 0-- и Сад се сећам да је ово била индекс три. Након што смо петље леђа, и је ће се додавати до 4. и је више није мања од н, што је 4. И ми избијају из петље. Па шта би било у реду са овим? [Неразумљиво]? ПУБЛИКА: [неразумљиво] Да. Дакле, низ има само четири места, што значи као индикатори 0 до 3.. Дакле, ако је то случај, ја бих преузму вредности 4 у неком тренутку. старост носач 4 ће бити постављање шта год се деси да буде овде шта имам да кажем, унесите 6. То ће бити ово постављање до 6. Али ми не знамо шта је овде. Ово није меморије да смо имали приступ. Дакле, ако се сећате из претходна предавање, Он је штампање вредности Замила и у једном тренутку је ударио ове сегментације кривица. Дакле, вероватно ће бити видјети многи сегментације грешке као што сте спроведу неке од проблема сетова. Али ово је један од начина на који можете наићи на сегментацију фаулт, када почнете да приступате меморија на начин који не би требало да. Дакле, нисмо имали приступ ова локација и то је грешка. Дакле, ово је боље. Сада још увек постоји мала проблем са овим кодом. И то је у суштини да смо још увек заглави на четири ученика. Сада ако желим да користим осам ученика, у реду. Није то тако велика ствар. Могу да идем у, промените цоммент, и промените бр. Сада ће радити са осам ученика. Ако саставити ово и покренути ово, оно ће показати мене-- она ће затражити цели бројеви за осам студенти и то само ће радити. Али то је мање од идеалне морати да рекомпајлирате програм сваки пут Желим да променим број ученика да желим да унесете узраста за. Дакле, коначни напредак у односу на ово, као што ћемо видети овдје-- смо ће затражити број људи. Овде имамо број људи у собама или било старости људи у просторији. Али ћемо затражити број људи у просторији од стране корисника. Дакле, ово је потпуно исти ДО-а петље које смо раније видели. То је потпуно исти до-вхиле петље да може се примени на проблем сету. Дакле, докле год они улази у н мањи од 1, тако да мора да буде у најмање једна особа у просторији. Докле год они улази у н мањи од 1, онда ћемо задржати опет питам. Молимо Вас да унесете број људи у соби. Сада, када имамо број људи у роом-- тако да сам могао ући да су 200 људи у овој просторији. Онда овде ћемо доћи и прогласити низ величине 200. Ми смо изјављујући низ који је довољно велика да држи 200 узраста. Силазак, то је за петљу да ћете се врло навикли. Дакле, итератинг над овим низа, додељујући свакој локацији У том низу цео број, и онда на крају овде смо само се пример итератинг преко тог низа, не додељује вредности, али да приступи вредности. Дакле, овде видимо да кажу, за годину дана, Особа% и вилл бе% И година, где је први% и е и плус 1. Па сам је овај индекс променљива. А друго% сам ће бити вредност чувају у низу узраста, плус 1. Дакле, ово плус 1 је само зато што смо кажем-- ову плус 1, старости и плус 1. Ово, плус 1 је само зато што смо говорећи годину дана од сада особе ће бити овај стари. Дакле зашто је ово и плус 1? Зашто имамо плус 1 тамо? Да. Да. Дакле, запамтите низови су индексирани нула. Дакле, ако смо штампање ово за неко да прочитам излаз, онда вероватно желе да виде нешто као особа једном, особа број један, ће бити 20 година. Особа број два ће бити 15 година. Они радије не видим особу број нула је 15 година. Дакле, ово састављање и само да видимо шта Изгледа као-- Направите мало простора. Направи узраста саставља. Руннинг узраста. Видимо број људи у соби. Зато ћу рећи да су три особе у соби. Старост особа број један, рецимо 15, 20, 25. А сада ћу рећи годишње од сад ће бити 16, 21, 26. Да видимо да то ради са н који није једнака 3. Дакле, ако ја кажем број људи је 5, један, два, три, два, један, за годину дана они ће бити два, три, четири, три, два година. Тако да сам могао само као лако су је н 10.000. Сада ћу седети овде доста неко време уласка доби, али то ради. Тако сада у меморији негде смо има низ величине 10.000, па на крају 40,000 бајтова, јер постоје четири бајта за сваки од тих целих бројева. Дакле, постоји низ Величина 10,000 где можемо складиштење старост тих 10.000 људи. У реду. Питања о било шта од овога? Да. Шта ако сте дали негативан број? Хајде да видимо шта се дешава. Дакле, у овом конкретном цасе-- број људи у соби, негативан. Он је одбио да, јер овде смо се деси да руковање чињеницу да ако је н мање од једног ћемо поново питати. Ако покушате да прогласи низ негативних величине, генерално не ради. Дакле, хајде да пробамо. Хајде да игноришемо год вредност су улаз за н и само да кажем Инт узраста негативни. Да видимо да ли још саставља. Нисам сигуран. Ne. Дакле, узраста је проглашен као низ са негативним величином. Дакле, унапред признаје низ не може бити негативног величине и одбацује га. Сада, ако нисмо хандле ово урадили-вхиле петље правилно, ако нисмо проверу ако је н мање од 1-- хајде да кажемо да само нисмо имали уопште и уместо тога само зграби цео број. Без обзира шта је цео број је, изјављујемо низ те величине. Тако компајлер не могу вероватно се жале сада. Ако саставити ово-- тако да не могу да се пожалим, јер не могу да знам да ли сам да унесете негативан број, која би могла бити неважећа. За све то зна, могао бих унесите позитиван број, што је савршено важећа. Дакле, претпостављам да уђем негативна 1 људи у соби, Сегментатион фаулт. Дакле, у реду. Дакле, хајде да додам вратим кееп ит шта је првобитно било. Тако да старост. Сада ако желим да пробамо негативна аге-- Па хајде кажу да је пет људи у соби. Старост особа број један је негативна 4, особа три је нула, особа три-- реду. Па ево, годину дана од сада, особа број Нико неће бити негативан 3 године. Дакле, вероватно нема смисла. Али то је само зато што тражи у коду све што радимо тражи Тоноване. Сада, ако смо имао Функција ГетПоситивеИнт или смо једноставно то учинио врста истог вхиле петље доле, онда би то раде савршено у реду. Али у овом конкретном случај, ми само не случајно руковање негативне вредности. Неких питања у вези низова? ОК. Дакле, сада смо видели низове. И ми ћемо морати да користимо ово командне линије аргумената. Дакле, у проблему сет два-- Знам да многи од вас можда још радити на проблем сет једна, али проблем поставити два долази. У Проблем сет два, ти ћеш треба да се бави Стрингс, низовима, и командне линије аргументи. Па шта су командне линије аргументи? Сада, можете видети овде доле мало теасер за оно што је ће да се деси. Видимо инт маин, инц аргц, стринг аргв заградама. Дакле, прво да пробамо да тумачи шта то хоће да каже. Сада, у реду. Дакле, у командној линији требало би да навикавање на неке од ових команди сада, а вероватно сте покренути ЦД у терминалу пре. Дакле, ако кажемо цд псет1, знате да треба будемо мењали у псет1 директоријум. Сада приметити да никада нисте написан програм овако. Сваки програм који сте написали, ти би покренути, рецимо, дот сласх Марио, дот сласх похлепан, а затим га Можда вас упитати за унос. Сада, то није оно што Промена директоријум ради. Када покренете ЦД, не онда каже, који директоријум желиш да ЦД у? Уместо тога, само реци, ЦД псет1, и то само иде у псет1 директоријум. Дакле, на сличан начин имамо друге примере. да здраво. Када покренете да, не онда каже, који програм желите да? Само реци, на командна линија се здраво. Покрет је још један пример. Ово ми се померање марио.ц филе до једног директоријума. Дакле, сада знамо са овим примером стварно смо пролазу два аргумента. Има марио.ц као први аргумент, и Дот је други аргумент. И онда када покренете се, ти видим ту стварно дуг команду лине-- то је стварно дуго команда штампан у командној линији. Дакле, толико дуго заповијест ово је само кратак део тога, али сада имамо три командне линије аргументи. Дот Дасх нула, здраво, и хелло.ц. Дакле, то су командне линије Аргументи, аргументи да си пролазу На командна линија тако да не мора да буде затражено када покренете програм. Било би фрустрирајуће ако при ви ран Цланг је рекао: "У реду, која програм-- који Филе сте састављању? Хелло.ц. Шта заставе зар не волим да уђе? Дасх вл. Шта би сте волели фајл који се зове? Zdravo. Не, само покрените Цланг дасх О хелло хелло.ц. Дакле, гледајући на све ово. Сада аргц-- аргц је аргумент рачуна. То је број командне линије аргументи ушао у командној линији. Па, технички аргв-- Тхе В означава вектор, што у основи значи низ. Али можете игнорисати то. Аргв-- имамо стринг аргв, тако ниска аргв заградама. Дакле, ово је још један облик заграда нисте видели. Дакле, видели смо носач Ознака када смо рекли, као, Стринг с једнако Замила. ова носач 0 приступа З. карактера Такође смо видели заградама, када смо рекли инт узраста изједначи 5. То прогласио низ величине 5. Дакле, овде је верзија од заграде нисмо видели раније. Дакле, ова врста стринг аргв који ће бити потпуно упознат да би само бити стринг. Сада заграде указују да је ово низ. Дакле низ аргв заграде средства да аргв је низ низова. Сада технички стринг је низ знакова. Дакле, ово је сада низ од низа знакова. Али то је много лакше да размишљају о ово као само низ низова. Па зашто би заграде бити празан? Као, зашто не можемо да кажемо, конзола 5, носач н? Да. Да. Не знамо колико улази тамо ће бити. Дакле, ако погледамо Цланг пример, кажемо цланг брз О хелло хелло.ц. У овом конкретном случају, тамо се деси да буде три командне линије аргументи. И тако брацкетс-- ћемо видети у други то не би било троје. То би било технички четири. Али заграде, да би рецимо, има их три. Али сада, ако бисмо гледали покрету марио.ц Дот, заграде желели да стави два у њима. А има и много команди које имају различит број командне линије аргументи. Дакле, шта ова верзија од носач нотација указује да аргв је низ низова. Али не знамо колико жице су у том низу. И како онда знамо како многи су жице у низу? То је поента аргц. аргц нам говори колико је аргв. Дакле, последња ствар коју треба имати у Ум је да, технички, сама команда броји као један од аргумената командне линије. Тако цд псет1, постоје два командне линије аргументи. Програм у себи, ЦД, а затим стварни аргументи део тога, псет1. Сваки програм који сте до сада написали је имао један командне линије аргумент-- дот сласх Марио. То је једини аргумент командне линије. Дакле, сада гледамо кланг дасх О хелло хелло.ц. Дакле, шта је аргц? 4. Тако је аргц 4. Кланг, тако да аргв носач 0 је цланг. аргв носач 1 је црта 0. аргв носач 2 је здраво, и аргв носач 3 је хелло.ц. ОК, дакле питања о овоме, и онда ћемо погледате неке програмске примере. ОК. Дакле, ми ћемо да погледамо хелло3.ц. Дакле, ово би требало да буде упознат са један од првих ц примера имали смо где смо управо би рекли, здраво свет, али сада је то више уопште. Дакле, овде се говори здраво % с обрнута коса црта Н аргв носач 1. Нотице-- па до до ове тачке, ово је шта је мој шаблон фајл је изгледао. Имао сам инт маин (воид), а онда бих уради нешто у основну функцију. Сада уместо тога, кад почнемо посла са командне линије аргумената, треба да наведе другачији облик главни. Дакле, гледајући хелло3 Опет, главни иде да два аргумента сада-- инт аргц, број аргумената командне линије, и низ аргв загради, стварни жице ушао у командној линији. Зато ћу промијенити шаблон да одражавају ту чињеницу. Сада кад сте написали програм, ако не треба да предузму било какве командне линије аргументи, онда само користити инт маин (воид). Али сада, када пишете командне линије аргумент програми, који ћеш радити за проблем сет два-- па сад да бежиш програми који треба да командне линије аргументи, морате да имате главни у том облику. Дакле, овде-- ово је велика употреба од командне линије аргумента. Дакле, штампање аргв 1. ОК, хајде састави и покренути овај програм. Маке хелло3. Израђује. Дот сласх хелло3. И рецимо, "Роб". Поздрав Роб. Ако кажем "Здраво Марија" Здраво Марија. Здраво Марија. Хана даље каже: "здраво Марија, "јер ја нисам ради ништа са нашим аргв 2. Аргв 2 сада ће бити "Хана". Аргц ће бити 3. Шта ако сам урадио ово? Тако здраво нулл. Он је кратко дотакао на чињеници да, технички, ГетСтринг Можда ретурн нулл, али ћемо добити много више у оно што је заправо нулл. Али узмите то као питање Чињеница да ни је генерално лоша. Урадили смо нешто погрешно, ако то је штампање "здраво нулл." А разлог смо Нешто није у реду је-- добро, Налетео сам дот сласх хелло3, аргц је 1. Дакле, то значи да је дужина аргв је 1. Ако је низ дужине 1, једини валидан индекс је нула. И ево аргв 1 ван домет ове низа. Слично је било и раније, када сам покушао за смештање 6 изван крај низа. Дакле, ја покушавам да приступите нешто изван аргв тачака, а ми смо се нулл. Дакле, боље верзија ово побољшање, експлицитно проверу аргц. Дакле, ако аргц једнако 2, то значи да смо трчали нешто као тачка Сласх хелло3 Роб. И то ће принт "Здраво Робе." Ако аргц није једнако 2, онда је само иде да игноришу шта год ставиш на командне линије аргумента као аргумената командне линије. Или ако нисте ставили било уопште, то је само да игнорисати то и кажеш, "Хвала здраво." Тако састављање ово. Маке хелло4. И руннинг хелло4. Овако Руннинг, Шта треба да се штампа? "Хвала Здраво." Здраво ти. Шта је хелло4 Роб? "Здраво Робе." И на крају, здраво Роб Марија је само "здраво ти" поново, јер нисте заиста ући нешто што се очекује. Унели сте још имена него што је могла да поднесе, тако да само по основној је Хелло сте понашање. Дакле, питања о томе? Или командне линије аргументи? У реду, тако да узимајући поглед на пар примера коришћења више командне линије аргументс-- први смо аргв цртица 1 дот ц. Тако су коментари дати оно Овај програм би требало да ради. Али приметите сада-- ово петље, ово одговара тачан образац Ја сам говорио раније. Управо смо случајно коришћење аргц уместо н. Сада аргц је заиста бр. То је дужина низа аргв. Тако су итератинг преко аргв Арраи иф-инг сваки аргв вредност. Дакле, ако направим ово. Направи аргв 1. То саставља. Дот сласх аргв 1. Само ради тога, да штампа дот сласх аргв 1 јер је то био једини командне линије аргумент-- име програма. Увек ће бити у леаст-- аргц не може бити мањи од један, јер увек постоји ће најмање бити име програм покренути. Дакле, аргв 1 Роб ће исписати аргв 1 а потом на новој линији "Роб". Дакле, у првој итерацији ове петље, и је 0. Аргв 0 је име програма. Дот сласх аргв 1. А онда аргв 1 је мој први командне линије аргумента, који је Роб. У овом тренутку, ми смо једнаки аргц. Ми избијају из петље и готови смо. Дакле, ово ће радити за произвољна број аргумената командне линије. Обратите пажњу на то штампа аргв 0, аргв 1, аргв 2, аргв 3, аргв 4. И нема аргв 5. аргц! је једнак 5. Дакле, аргц-- на сам износи 5, побегнемо из петље. ОК. Дакле, питања о да пре него што погледај сложеније пример? Дакле, аргв 2. У реду. Дакле, ми још увек штампање командне линије аргументи. Али сада приметили смо угњеждену за петљу. Дакле, шта то ради? Дакле, први петља се ради управо оно што раније. Још увек петље преко свака командне линије аргумента, али сада овај други лооп-- имамо такође види нешто овакво. Када је итератинг преко Замила штампање Ж-А-М-И-Л-А. Дакле, ова друга петља за инт ј једнако 0, н једнако стрлен од аргв конзоле и. Дакле, хајде да прво размислите који-- идемо кроз хода. Размислимо шта је компјутер би радим ако водио овај програм као само дот сласх аргв Дасх 2. Дакле, ако сам водио овај код, а затим аргц ће бити једнака 1. И низ аргв-- постоји само је ће бити један индекс у аргв, као и да ће бити једнака дот сласх аргв 2-- име програма. У реду, тако да сада ја једнако 0, ја мање од 1, и плус плус за Ј једнако 0, н једнако стрлен од аргв конзоле 0, тако да у прва итерација ове петље. аргв носач 0 је тачка Сласх аргв 2. Дакле, шта је дужина тог низа? Па, дот сласх А-Р-Г-В Дасх 2. Дакле, стрлен то ће бити 8. Дакле, Ј једнако 0, н једнако 8. Докле год ј је мање од 8, ј ++. И са тим ћемо бити штампање један знак који је аргв носач И изједначи ј. Дакле, само сам је нула. И даље само један командне линије аргумента. У тој првој итерацији од петље за, ми смо ће бити штампање аргв конзола конзола 0 0. А онда ј ће се повећавати. И идемо у штампи аргв конзола конзола 0 1. А онда аргв носач 0 брацкет 2. Дакле, ово је наш први сусрет мулти-дименсионал низова. Запамтите раније да сам рекао да аргв је технички низ низова карактера. Па овде ако сам рекао нешто слично Стринг с једнако аргв брацкет и, и онда сам рекао, а носач Ј, ово ће бити остваривање исту ствар. Ви сте видели ова конзоле ј раније. То је само приступ ј-тог карактер овог низа. Тако је и са овим, ми смо добијање ј-ти карактер и-тог аргв. Дакле, шта треба ово на крају излаз? Направи аргв 2. То саставља. Дот сласх аргв 2. "Роб Марија Хана," и дај нам мало простора. Дакле, видимо да је ово оутпуттинг тачка у свом реду и сласх на сопствену линија и на сопственој линији. То је ван сваке штампање индивидуални карактер сваког командне линије аргумента. А онда између њих, због ове нове линије смо штампање овде, у између њих то ће штампати нову линију. Дакле, ово је слично претходно аргв цртица 1, која штампана сваки командне линије аргумента, али сада смо штампање командне линије аргументи а затим итератинг кроз сваки карактер сваког командне линије аргумента да се ово излаз. ОК? Дакле, питања о томе? Једна ствар је напоменути да командне линије аргументс-- тако да су раздвојени размацима као ти би природно очекивати да буду. Дакле, низ може имати простора у њему. Није је супер важно, али ако Хтео трећи аргумент командне линије да има простора у њој, онда сам Могло би се рећи овако нешто. ОК? Дакле, ово сада још увек има само три командне линије аргументс-- добро 4. Дот сласх аргв цртица 2, Роб Марија, и Ханнах Блумберг. ОК. Питања о томе? Нема ништа специјално о карактеру простора. То се једноставно деси да буде да командне линије третира карактер простора како си одвојите сваки аргумент. У реду. Дакле проблем скуп два-- ћеш бити гледајући тајна-криптографских кључева. Дакле, сличан том примеру смо видели из А Цхристмас Стори, ћеш се примени неки алгоритми који, с обзиром на поруку, ћеш моћи за шифрирање ту поруку да само неко са том тајном тастер, са тим Децодер Ринг, треба да буду у стању да дешифрује. Дакле, то је стандардно издање. Идеш да се примени две различите верзије. Ако вам се деси да погледате На хакер едитион-- сада, ћемо дати ти стринг овако, што представља шифровану лозинку. Дакле, ваш циљ је да схватим шта је децриптед лозинка. Ово је заправо колико лозинке се чувају у много рачунара, и то само чува ово случајни низ знакова. Морате да схватите како да из овог случајног низа знакова да оно што је оригинални лозинка је. И коначно, након овога Проблем скуп, требало би бити у стању да разуме шта то значи. Тако ћете научити како да дешифрује ова врста случајног низа. Слично томе, ако се сећате из седмице 0, можда сте видели ову УРЛ адресу. И требало би да можете да дешифровање то на крају. Можда нећете бити срећни када вас дешифровање га и кликните на линк. У реду. То је све за данас. Дакле, видимо се следеће недеље! [ЕЛЕКТРОНСКИ мусиц плаиинг]