>> [Мусиц плаиинг]
Давид Ј. Малан: У реду.
То је ЦС50, и ово је крај недеље 2.
Дакле, данас, идемо да наставимо изглед
како ми представљају ствари испод хоод-- удаљава
од бројева попут целих и покретном зарезу
и фокусирајући се на жице и на крају још занимљивих програма.
Али ми такође ћемо да погледамо неколико домена специфичне проблемс--
првог који ће бити укључујући криптографије,
уметност пењања информација, у којој изнад видети овде
је слика радио Орпхан Анние тајна Децодер прстен од прошла.
>> То је заправо врло примитиван облик и дете-пријатељски облик цриптопграпхи
при чему овај прстен има два дискс-- један унутар и један споља.
И окретањем један од оних, можете да у суштини се построје писма као
до З са другим словима као Б до А. Другим речима,
можете буквално да ротирате абецеду, чиме долази са мапирањем из
писма писма, тако да, ако се хтео да пошаље тајну поруку
некоме као Ени, можете да пишете доле своју поруку, а затим окрените
слова, при чему, ако мислите да каже "А," ви кажете уместо тога "Б"
Хоћете да кажете "Б" ви кажете уместо тога "Ц" -
или нешто мало више паметнији него да-- а онда, на крају,
докле год има тај Ени декодер прстен, она може да декодира поруку.
Сада, ви се сећате, у ствари, да је ово је коришћен у веома познат филм који
игра ад наусеум током Божић сезоне.
Хајде да погледамо овде.
Ралпхие ПАРКЕР: "То Бе Познато је да све у свему
да се именује Ралпх Паркер члан Литтле Орпхан Анние Сецрет
Круг и има право на све почасти и бенефиције јавља њу. "
>> Ралпхие ПАРКЕР (приповедања): Потписан Литтле Орпхан Анние.
Потпише, Пјер Андре!
Мастилом.
Почасти и бенефиције, Већ у узрасту од девет.
>> [Мусиц плаиинг]
>> [РАДИО ЦХАТТЕР]
Ралпхие ПАРКЕР: Хајде.
Хајде да завршимо са тим.
Не треба Алл Тхат Јазз О шверцерима и пиратима.
Радио Анноунцер: Слушај сутра ноћ за закључном авантуру
црног гусарског брода.
Сада је време за Анние Тајна порука за вас чланове
Тајне круга.
Запамтите децо, само чланови Анние Сецрет Цирцле
може да декодира Анние је тајну поруку.
>> Запамтите, Анние зависи од вас.
Подесите ваше пинове да Б-2.
Ево Мессаге-- 12, 11, 2--
Ралпхие ПАРКЕР (приповедања): И сам у свом првом тајном састанку.
Радио Анноунцер: --25, 14, 11, 18, 16--
Ралпхие ПАРКЕР (приповедања): Ох, Пјер је био у великој гласовном вечерас.
Могао бих рећи да вечерас порука је заиста важно.
>> Радио Анноунцер: --3, 25.
То је порука од Анние лично.
Запамтите, никоме не говори.
>> [Задихан]
Ралпхие ПАРКЕР (приповедања): Деведесет секунди касније, ја сам
у јединој соби у Кућа у којој дечак од девет
могао да седи у приватност и декодирати.
Ах.
"Б"
>> [Смех]
>> Ралпхие ПАРКЕР (приповедања): Отишао сам у другу.
"Е."
Прва реч је "бити".
Да!
Долазило је лакше сада.
"У."
>> [Смех]
>> РАНДИ ПАРКЕР: Ма, хајде, Ралпхие.
Морам да идем!
>> Ралпхие ПАРКЕР: Бићу доле, мама.
Бого мој.
"Т." "О." "Будите сигурни у. "" Будите сигурни да "шта?
Каква је била Литтле Орпхан Анние покушава да каже? "Будите сигурни да" шта?
МАЈКА: Ралпхие, Ранди мора да оде.
Хоћеш ли молим те изаћи?
>> Ралпхие ПАРКЕР: У реду, мама!
Одмах напоље!
Ралпхие ПАРКЕР (приповедања): Ја сам се сад ближе.
Тензија је била страшна.
Шта је то било?
Судбина планете може виси у равнотежи.
>> МАЈКА: Ралпхие, Ранди мора да иде!
>> Ралпхие ПАРКЕР: Ја ћу бити у праву се, забога!
Ралпхие ПАРКЕР (Приповедања): Скоро тамо!
Моји прсти летео!
Мој ум је био челика замка.
Свака пора вибрира.
Је било скоро јасно!
Да!
>> Ралпхие ПАРКЕР: "Будите сигурни да пије своју Овалтине. "
Овалтине?
Бедан Цоммерциал?
>> [Мусиц плаиинг]
>> Ралпхие ПАРКЕР: Курвин син.
>> [Лаугхинг]
>> Давид Ј. Малан: То је, дакле, Осврт на којој криптографије
може бити за ово-А пију из прошла.
Тако брзо најава.
Ако сте слободни ово Петак у 1:15 ПМ и би
воле да нам се придруже на ЦС50 ручак, иду у ову УРЛ адресу овде.
Први дошао, први служе као и обично.
Али током времена, ми ћемо бити сигурни да већина свако ко би желео да учествује
може заказати-мудар.
>> Со Стрингс.
Имамо Замила-- кога сада сте вероватно срео
у проблему Сет 1-- чији име је тако написано.
А претпостављам да сте укуцали њено име у компјутерском програму који је
користите нешто као гетСтринг.
Да би се преузели Те куцање на тастатури, како
идемо о представља стринг, реч, став,
или више слова попут ових овде?
>> Разговарали смо последњи пут Абоут целих бројева и проблеми
који настају са целим преливом и покретном зарезу
и проблеми који настају унутар прецизности.
Са стрингс, ми смо барем имају мало више флексибилности
јер управо стрингс-- у стварном ворлд--
може бити прилично произвољне дужине.
Прилично кратко, прилично дуго.
Али чак и тада, идемо на да пронађу рачунари могу понекад
понестане меморије и ни меморисање довољно велики низ.
>> Али за сада, почнимо да замислите стринг као нешто у овим кутијама
овде.
Тако шест овакве кутије, од којих сваки представља знак или "Пост."
Тако подсетити да је "знак" - Ц-Х--р-- је један од уграђених типова података у Ц.
И оно што је лепо је да можете да користите такве као грађевински блок,
Слагалица комад, ако хоћете, да се формира већи врста података које ћемо наставити
да распише "стринг".
>> Сада, шта је корисно о размишљању о стварима као што је жице на овај начин?
Па, испада да можемо заправо искористи ову структуру
да стварно приступ појединачних карактера на прилично директан начин.
Идем да иде напред и створити фајл који се зове "стрингзеро.ц,"
али га можете назвати како год желите.
И на сајту курса је већ овај пример унапред,
тако да не морате да типа све напоље.
>> И ја ћу ићи напред и први уради маин празнину.
И у року од неколико дана, ћемо почети да задиркује Апарт
оно што је овде празнина, зашто је то инт поред маин, и тако даље.
Али за сада, хајде да наставимо да копирате налепите то.
>> Идем да прогласи стринг зове с.
И ја ћу да се вратим из ГетСтринг без обзира на типове корисник у.
Ово ће бити једноставан Програм, никаква упутства,
Ја ћу само да слепо Очекујем да корисник зна
шта да урадите да то буде једноставно.
>> А сада ћу имати за петљу.
И у мом за петље сам ће имати инт и добија нула.
И ја је, опет, само конвенција, индекс променљива за бројање,
али сам могао да зовем како год хоћу.
Ја ћу да урадим да је мање тхан-- добро Име Замила је дугачак шест слова.
Па ћу напорно код да има за сада.
>> А онда сам ++.
И сада у ових Цурли протеза Ја ћу да урадим принтф,
и желим да одштампате једну лик у исто време.
Па ћу користити% Ц за можда први пут.
А онда желим да одштампате сваки лик на сопственој линији.
Па ћу да ставим Мало бацксласх н тамо.
Цлосе цитат.
>> А сада желим да урадим нешто овде.
Желим да одштампате одређеним словом у низу,
е, као што сам итератинг од нуле на до шест.
Другим речима, желим да одштампате и'тх карактер с.
Сада како да урадим ово?
>> Па налик кутијама у Ова репрезентација овдје,
некако, дочаравају појам бокс слова, можете да урадите да на сличан начин
синтаксички ин Ц једноставно наводећи, Желим да одштампате С: и'тх карактера.
Користећи квадратних заграде на тастатури рачунара
да на САД тастатури су уопштено изнад тастера повратка.
>> Дакле, то није сасвим у реду Ипак, као што сте можда приметили.
Али ја ћу се врсти слепо полако напредују овде.
И ја ћу да урадим да стринг 0.
Али пре него што ово радим, хајде да видимо да ли можемо не може да предвиди неке уобичајене грешке.
Ће ово да састави?
Не, ја недостаје гомилу ствари.
Библиотеке сам чуо.
>> Дакле, који хеадер филес Можда Желим да додам овде?
Да.
>> ПУБЛИКА: Треба ти Стандардни И / О [неразумљиво]
>> Давид Ј. Малан: Одлично.
Тако да је потребно Стандардни И / О. За шта Сврха желим Стандардни И / О?
За принтф.
Тако укључују стдио.х.
И такође предлажу да укључују ЦС50 библиотека из ког разлога?
Да има конце.
Па ћемо видети шта Библиотека ЦС50 је ради
да створи овај појам стринга.
Али за сада, само могу да замислим о томе као стварне тип података.
>> Тако да се чини да се мало очисти.
А сада ћу ићи напред и заиста праве стринг 0.
Саставио.
Дакле, то је добро.
Па ./стринг0 дозволите ми увећате тако да можемо види ближе шта се дешава.
Ентер.
З-А-М-И-Л-уђе.
А ми смо одштампан имену Замила екипе.
>> Дакле, то је прилично добро.
Тако да сада идемо напред и покренете овај програм поново,
и откуцати Давен Име и презиме.
Изненађење, изненађење.
Ентер.
Хмм.
Нисмо штампане Давен је Пун име исправно.
Сада то треба да буде очигледно у Ретроспецт због чега,
врста, глупо дизајн одлука?
>> Да, фиксирана шест у мом за петље.
Сад сам то само зато Знао сам име Замила а
је требало да буде шест слова.
Али сигурно то није Опште решење.
Тако испада да динамички можемо схватим дужину стринга
позивањем функцију зове стрлен.
>> Опет, намерно језгровито имену само
да би се лакше да куцате.
Али то је синоним за добијање дужину стринга.
Идем да се вратим у моју терминал прозор и поново покрените компајлер.
Али то је да виче на мене.
Имплицитно изјављујући библиотека функција стрлен са типом инт цонст--
Изгубио сам се.
Потпуно.
>> Дакле, посебно зато што ваш очи почињу да преврћу
са порукама о грешкама као што је овај, фокус Искрено на првих неколико речи.
Ми знамо да је проблем у линија 8, као што је наведено овде.
И то је у Стринг-0.ц.
Имплицитно изјављујући Библиотека функција стрлен.
Тако да се генерално ће бити образац поруке о грешци.
Имплицитно изјављујући нешто.
>> Дакле укратко, шта сам се чинило да су урадили у односу на ред 8, овде.
Шта би могло да буде решење бити још ако никада нисте користили стрлен себи?
>> ПУБЛИКА: Део другачијег библиотеке?
Давид Ј. Малан: Парт другачијег библиотеке.
Тако да је проглашена, да тако кажем.
Помиње се у неки фајл осим стдио.х и ЦС50.х.
А где је то дефинисано?
Да будем искрен, морате или да само Знам да са врха главе,
или вам Гоогле ово и сазнати.
Или знате, ја сам отворио у ЦС50 Примена терминала програм, који
је само велики, преко целог екрана верзија оно што је у дну прозора гедит екипе.
>> И испоставило се да постоји Слично језгровит команда, под називом
човек за употребу, где ако откуцате име функције и притисните Ентер,
ћете се вратити прилично волшебни документација.
То је само текст који се углавном изгледа нешто овако.
То је мало неодољив на први поглед.
Али искрено ћу нека моје преврћу очима
и само се фокусирају на делу Стало за тренутак.
>> Што је ово.
Који изгледа као структурално нешто што сам упознат са.
Заиста човек страница, тако да да говори, ће вам рећи
у ономе што заглавље датотеке функције као стрлен је дефинисан.
Тако да ћу да се вратим сада гедит.
И ја ћу да иде напред и додати овде #инцлуде
и сачувајте датотеку.
>> Идем да обришете екран Контрола • Ако сте питате.
И ја ћу да поново покретање маке стринг.0, саставља овај пут.
./стринг.0 Замила.
Је изгледало да раде Пусти ме напред и то реприза са Давенпорт.
Ентер.
И да је, такође, изгледа да ради.
>> Тако да можемо да урадимо нешто боље од овога, ипак, можемо да почнемо да се среде ствари
до само мало.
И ја ћу да се заиста увести сада једна ствар.
Идем да иде напред и сачувати ово у другу датотеку.
И ја ћу да позовем овај фајл стринг1.ц само
да буде у складу са Кодексом ћете моћи да нађете на мрежи.
>> И хајде да се фокусирамо на исто код.
Испоставило се да имам била врста узимања
здраво за готово чињеницу да мој лаптоп, и заузврат, ЦС50 апарат
има много меморије, много РАМ, доста бајтова простора
у којој могу чувати конце.
>> Али реалност ако ја откуцао дуго довољно и довољно тастера,
Могао бих у типу теорији у више знакова
него мом компјутеру физички има меморију за.
И ово је проблематично.
Слично као инт могу само цоунт тако висока, у теорији,
можете само стрпати толико ликова у РАМ рачунара или случајни
Приступ меморији.
>> Дакле, имао сам боље да предвиде чак и овај проблем,
иако то може бити редак Цорнер случај, да тако кажем.
Не дешава тако често, може да се деси.
А ако се то деси, а ја не предвиди и програм за њу,
мој програм може да уради ко зна шта.
Замрзавање, виси, рестарт, како год.
Нешто предвидео може да се деси.
>> Дакле, шта ћу да радим сада, убудуће заиста,
је пре него што сам слепо користите променљиву слично с да
је додељена повратну вредност неку другу функцију као гетстринг,
Идем да се уверите да је њена вредност је важећа.
Тако да знам само из прочитавши ЦС50 је документација за гетстринг,
што је на крају ћемо вам указати на, који гетстринг враћа посебан симбол
зове НУЛЛ, Н-У-Л-Л у свим цапс, ако нешто крене наопако.
>> Тако нормално, враћа стринг.
Али иначе, ако врати Н-У-Л-Ја-- ћемо на крају ћемо видети шта је заиста
меанс-- То само значи нешто лоше десило.
Сада то значи, слично као у Огреби, Ја могу да проверим стање овде у Ц,
ако с не деси једнак НУЛЛ.
Дакле, ако нисте видели раније, То само значи не једнако.
>> Тако да је супротно од једнаке једнаки, који, подсетимо,
се разликује од сингле једнако, што је задатак.
Дакле, ако ова не једнако НУЛЛ, тек онда
Желим да изврши ове линије кода.
Другим речима, пре него што сам зароните у слепо
и старт итератинг преко с, и третирањем
јер иако је низ ликови, ја ћу прво да проверим,
чекај мало, није дефинитивно није једнака овој посебне вредности, НУЛЛ?
>> Јер ако је, лоше ствари могу десити.
А за сада, претпостављам да лоше ствари дешава значи свој програм црасхес,
а ви не можете да се опорави нужно.
Тако искрено, изгледа ружније.
То је врста збуњујуће сада поглед на.
Али ово ће постати познато пре дуго.
>> Али ја ћу да предложим Сада једна друга побољшања.
То је побољшање у исправност.
Мој програм је сада више тачно, јер у ретким случају да није довољно меморије
постоји, ја ћу то средити, а ја ћу учинити ништа.
Ја се бар неће срушити.
>> Али хајде да урадимо коначну верзију овде.
И датотеку стринг2.ц.
Идем да налепите да Исто код за тренутак,
а ја ћу да истакнем ово линије, 11, овде на тренутак.
Сада реалност је да паметне Цомпилерс Као Цланг могло поправити за нас
иза кулиса а наше никад не зна.
Али хајде да размислимо о овоме фундаментално као проблематична дизајн.
>> Ова линија кода је, наравно, говорећи, покрените неку променљиву сам 0.
То је прилично једноставан.
И шта је то опет изјаву, овде, ја ++, ради?
Ми смо то видели, али смо није баш причам о томе.
>> Публика: увецава И.
>> Давид Ј. Малан: увецава сам.
Тако на свакој итерацији путем Ова петља, сваки циклус,
ви ја се увецава за један.
Тако да постаје већа, и већи, и већи док петља завршава.
Како то прекине?
Па ту је овај средњи услов који смо раније користили.
Ви сте видели и на валктхроугхс у П сету.
>> Али шта је то изрека?
Урадите следеће петљу тако Док сам је мање од чега?
ПУБЛИКА: дужина низа.
Давид Ј. Малан: дужина низа.
Тако да преводи прилично чисто на енглеском језику у том смислу.
Сада проблем је што сваки пут кад Посматрајте кроз ову петљу у теорији,
Питам ово питање.
Је да мање од дужине низа с?
>> Сада се сам мења на сваке итерације?
То је.
Због ++.
Тако да сваки итерација да је све већи.
Али је с све већи, или мањи, или промена уопште?
Бр
Дакле, у погледу дизајна, једне од оса дуж којих покушавамо да се процени код
у класи, ово изгледа глупо.
>> Као што си ти буквално, на свакој итерацији
ове петље пита Опет исто питање Проклетство,
и опет, и опет, и буквално никада се неће променити.
Барем ако ја не додирује с и покушава да промени садржај с.
Тако да могу да урадим нешто боље од овога.
>> И шта ћу да урадим није изјавити само један променљива и,
али друга променљива и произвољно ћу, али је конвенционално, га зову н.
Додели н једнако Дужина низ с.
А онда овде, ја ћу урадите паметан мало оптимизацију, тако да
да говоре, да се на крају дана више није тачно или не мање тачна
него раније.
Али је боље дизајна.
У чињеници да ја користим мање времена, мање ЦПУ циклуса, тако да
да говори, да одговорим исто питање, али само једном.
>> Сва питања о том општем принцип да се побољша,
кажу, ефикасност програму је?
Да?
ПУБЛИКА: Зашто и ти користите [неразумљиво]?
Давид Ј. Малан: Добро питање.
Па зашто смо ставили ++ на крају И уместо да почетак И?
У овом случају, има Не функционална утицаја.
И уопште, имам тенденцију да користите оператор Постфик
тако да је мало јасније, као када операција се дешава.
>> За оне који нису упознати, постоји још једна изјаве где можете да урадите ++ сам.
То су функционално еквивалент у овом случају
јер не постоји ништа друго око тог Инкрементација.
Али можете доћи до случајева и линија кода
у којој који чини разлику.
Дакле генерално, ми не чак и говорити о овој.
Јер искрено, што чини ваш код секси, и некако Слицкер,
и мање знакова.
Али реалност је да је много теже, Мислим да је, чак и за мене да заврши свој ум
око ње Понекад, редослед операција.
Дакле, као страну, ако заиста не свиђа ми се ово,
иако је ово врста секси лоокинг, можете да урадите и + = 1,
која је ружнији верзија иста идеја за Постфик Инкрементација.
>> Кажем ово и вас треба да забаве,
али ћете доћи да виде код као нешто лепо пре дуго.
>> [СМЕХ]
>> Давид Ј. Малан: Зар не?
Да.
Питање у средини.
>> Публика: Да ли је потребно да кажете инт н?
Давид Ј. Малан: Уради Не треба да кажем инт н.
Зато што смо већ рекли инт, не морате да га поново рећи.
Цака је у томе да се н има бити исти тип података као и.
Дакле, то је само погодност овде.
Да.
>> ПУБЛИКА: Можеш ли прећи носач да штампам знакова опет?
Давид Ј. Малан: Апсолутно.
Дакле% Ц, сећам из прошле време, је само чувар места.
То значи стави цхар овде.
бацксласх н, наравно, само средства ставио овде ред.
Тако да је само оставља, сад, Овај комад нове синтаксе.
И то је буквално рекао, граб стринг зове С и одемо његово
и'тх карактер, да тако кажем.
>> И ја стално говорим и'тх карактер јер на свакој итерацији ове петље
то је као да смо се штампају , прво ова конзола 0,
као програмер би се рећи.
Затим с носач 1, а затим с носач 2, онда 3, затим 4.
Али наравно то је променљива, па сам га изразим са И.
>> Кључ је, међутим, да схвате, поготово ако не си
био аццлиматинг на овом свету програмирања, где смо све
изгледа да рачунају од нуле, морам почети да броји од нуле сад.
Јер Стрингс, први карактер, З у Замила је за добру иу злу
ће живети на локацији број нула.
>> У реду, па да ми донесе САД овде да Замила
и види шта се стварно дешава на испод хаубе.
Тако да је тај појам типа ливења.
Можда ћете морати стварно играо са овим већ,
Можда за хакера издање П сет један.
Али тип ливење само односи способност у Ц и неке друге језике
да конвертујете један тип података у другу.
>> Дакле, како бисмо могли видети лепа искрено?
Тако да је ово, Подсетимо, почетак енглеског алфабета.
И контекст, подсетимо, од као и пре недељу дана је АСЦИИ.
Америцан Стандард Цоде за размену информација.
Што је само веома дуг пут каже мапирање из писама
бројевима, и од бројева до слова.
>> Па кроз сам овде, Дот Дот дот, линије са, подсетимо,
децимални број 65 горе.
А нисмо разговарали о томе експлицитно,
али сигурно постоји слична бројеви за мала слова.
И заиста, постоје.
Свет је одлучио неколико година Пре тај мали, мала слова,
ће бити 97.
И мало Б иде да буде 98, и тако даље.
>> И за било коју другу кључа тастатура, ту је
ће бити сличан образац бита.
Или еквивалентно, децимални број.
Дакле, питање при руци, онда, како можемо
заправо видимо испод хаубе?
Тако да ћу да одем у гедит поново.
И уместо типа ово од нуле,
Идем да иде напред и само отвори нешто
из данашње кода зове АСЦИИ нула.
>> И АСЦИИ нула изгледа овако.
Па хајде да преломити умове око овога.
Дакле, прво, ја сам прокоментарисао код, што је лепо.
Зато што је то буквално ми говориш шта да очекујем,
приказати мапирање за великим словима.
Сада не баш знају шта тиме хтели да кажете, па хајде да закључимо.
>> На енглеском, можда донекле Тецхие Енглески,
шта линија 18 појављује да радим за нас?
Само ред 18.
Шта је то изазивање?
Шта ће то кицк офф овде?
>> Публика: петља.
>> Давид Ј. Малан: петља.
И колико пута је који ће се поновити?
ПУБЛИКА: [ставим ВОИЦЕС] шест пута.
Давид Ј. Малан: Не шест пута.
Публика: 26 пута.
Давид Ј. Малан: 26 пута.
Да, извини.
26 пута.
Зашто?
Па, то је мало чудно, али је Ја сам почео да броји од 65 година.
Што је чудно, али не и погрешно.
Није лоше по Саи.
И ја радим је само јер је, за овај пример,
Ја сам некако очекујући да је капитал је био 65.
Сада то није најелегантнији начин да се то уради, врсти хард кода
езотеричне вредности које нико не се није очекивало да се сетим.
>> Али за сада, приметити да сам овај начин се кроз 65 плус 26.
Јер очигледно ја не желим да уради аритметичку у мојој глави.
Па ћу дозволити компајлер то уради.
Али онда на свакој петљи, сваке итерације петље, ја се увецава и.
>> Тако да сада ово изгледа помало загонетан.
Али ми треба да имају основне зграду блокови са којима се разумеју.
% Ц је само чувар места за цхар.
% И је чувар места за Инт.
И испоставило се да коришћењем овог Нова синтакса, то у загради, тако
да говори, тако да врсте података унутар заграда,
Ја могу да натерају компајлер за лечење и није цео број, али као цхар.
>> Чиме ми показује карактер еквивалент од тог броја.
Сада овде, овај код је прилично идентичан.
Само сам хтео да Супер експлицитно чињеница
да сам са почетком у 97, која је мала слова.
Он се кроз море 26 слова.
И ја опет доинг--, ливење И, да тако кажем.
Или типа ливење сам, да тако кажем.
>> Од инт до цхар.
Тако да крајњи резултат ће бити, Искрено, информације већ знамо.
Идем да АСЦИИ-0 не дот-- дот ц.
Обавештење, вероватно одлука да грешка као што сам управо учинио случајно.
Направите асции-0.
Сада ћу да урадим ./асции-0.
Ја ћу зумирате, и нажалост то ће дођите ван екрана.
Али ми видимо целу табелу где мапе до 97, Б мапе до 98,
а ако се крећите се горе даље Наравно, мапе на 65.
Тако да је ово само да кажем да Шта смо проповеда,
постоји та еквиваленција, се у ствари, случај у стварности.
Тако брзо модификација овога.
Дозволите ми да отворим асции-1.Ц.
И приметите Ова паметна, врста о, разјашњење овога.
То је АСЦИИ-1.ц, и приметили ову луду ствар.
>> И то стварно стигне до срца шта компјутери раде.
Иако смо људи би не рачунају у смислу леттерс--
Ја не почну да размишљају, У реду онда Б,
и користе оне рачунају физичке објекте.
Ви свакако могу рећи да желим да инитиализе неку променљиву названу ц--
али сам могао да се зове ово све-- Дакле, Ц је иницијализован на капитала А.
>> Јер на крају дана, рачунара није брига шта складиштење,
само брине како желите да представи ту информацију.
Како желиш рачунар на тумачи да је образац бита?
Дакле, то није нешто што бих препоручио генерално раде.
То је заиста само један пример да преносе да апсолутно могу
инитиализе цео број ка цхар.
Јер испод Поклопац од цхар, наравно,
је само број од 0 до 255.
>> Тако да сигурно можете стави га у једног Инт.
А шта је ово, такође показује је да смо
да конвертујете из једне у други тип, овдје,
коначно штампање исту ствар.
А у ствари, то ћу поправити онлине-- је требало да кажем ово, опет, овде.
Дозволите ми да очисти ово мрежи, а ми ћемо види у онлине описом по потреби,
шта се тамо намеравао.
>> У реду.
Па последњи пример сада укључује А и Б, а затим ћемо
узети ствари у зарез.
Дакле, са А и Б и ц је у капитализације
а еквиваленције истог, хајдемо погледај овај пример, овде.
Још један пример код.
Ми ћемо отворити ону која је већ направили, тако да смо
не морају то да куцате све из почетка.
>> И приметити у очекивању ми користимо вишеструко заглавље
фајлова, међу којима је и Наш нови пријатељ, стринг.х.
Сад ово изгледа, на први поглед поглед, мало загонетан.
Али, хајде да видимо да ли можемо да расуђује кроз оно што се овде дешава.
Први пут сам се низ од корисника, и ставио сам ту серију у променљивој
зову с.
Цопи Пасте од раније.
У реду 22., ја сам очигледно ради управо оно што
Сам малопре, ја итератинг над ликова с.
>> И нове трикове користе дужина стринг, малолетник оптимизација
чувања дужину стринг у Н, уместо Цаллинг опет стрлен,
и опет, и опет.
И само проверавам да сам је мање од н.
Сада овде, ствари се мало занимљив.
Али то је само апликација те истог новој идеји.
Оно што на енглеском ради с носач Ја представљам?
>> ПУБЛИКА: Бројање Еацх карактер [неразумљиво].
>> Давид Ј. Малан: Бројање сваки карактер.
И још више језгровито, с носач Ја представљам шта?
Да ли бисте рекли.
Да те не стави на лицу места овде.
>> ПУБЛИКА: Па--
Давид Ј. Малан: Дакле, ако је реч је-- ако стринг Замила, која стартс--
ПУБЛИКА: --иоу бавити ликови сепаратели--
Давид Ј. Малан: Добро.
Тачно.
Скуаре заграда Ознака вам омогућава да приступите сваки карактер појединачно,
па ова носач 0 ће бити Први карактер у низу.
а носач 1 ће бити други, и тако даље.
Дакле, питање питам, Овде, у овом стању је шта?
Је и'тх карактер с већа од или једнака мала слова?
И шта то значи, овде, са дуплим амперсандс?
Публика (заједно): И.
Давид Ј. Малан: И.
То је само еквивалент за ово.
И није кључна реч у Ц, морате употреба, досадно, амперсанд амперсанд.
И то је, насупрот томе, тражи се С: и'тх карактер мања или једнака
у мала слова З?
И опет, ту где разумевање основни
примена компјутер има смисла.
Приметити да, иако имам Дот Дот Дот тамо,
изгледа до З малим словима се Све суседне вредности се из 97 горе.
>> И исти за велика слова, са почетком у 65.
Дакле Такеаваи, онда, је да је на енглеском,
како бисте описали Која линија 24 ради?
Да?
>> Публика: 24. то проверава да види да ли је сваки лик је малим словима.
Давид Ј. Малан: То је провера да ли Сваки лик је мало слово.
Па чак и више језгровито, јесте и'тх карактер с мала слова?
То је све што смо изражавајући овде логично,
мало загонетно, али на крају прилично искрено.
Је С је и'тх карактера мала слова?
>> Ако је тако, а ево где ствари добити мало ум савијање
само на тренутак, ако је тако, иди напред и одштампате карактер.
Дакле, ово је само чувар места, Али шта лик?
Зашто ја радим с брацкет И минус Овај израз овде?
>> Добро приметити образац.
Стварни бројеви не битно толико.
Не приметим да је 97 колико далеко од 65?
>> Публика: 32.
>> Давид Ј. Малан: 32.
Колико далеко је 98 од 66?
>> Публика: 32.
>> Давид Ј. Малан: Мали Ц из Биг Ц?
32.
Тако да је 32 хмеља из једно писмо другу.
Па искрено, могао поједноставити то то.
Али онда сам некако тешко кодирања Овај низак ниво разумевања
да ниједан читалац никада ће да разуме.
Па ћу то генерализовати као ја знају да мала слова су веће.
Знам да су велика слова су мање вредности, иронично.
>> Али ово је ефективно еквивалентно рекавши одузмите 32 од држача а И.
Дакле, у контексту ових слова, ако је у писму
се дешава да се, мала слова , а ја одузети 32,
Какав утицај то има, математички, на мала слова?
ПУБЛИКА: Цапитализес--
Давид Ј. Малан: га искористи.
И заиста, то је наш Програм се зове искористи нула.
Било Овај програм капитализује писмо,
после провере ако је заиста мало слово.
У супротном, у реду 30, шта да радим ако то није мало слово да сам
гледа на одређеној итерација у петљи.
Само га одштампате.
>> Тако да не мењају ствари то није ни мала слова.
Ограничавају себе да мало кроз мало з.
Сада је то прилично волшебни.
Али на крају дана, ова Тако смо, некада давно,
је морао да спроведе ствари.
Ако сам уместо тога отварају капитализује један, ох хвала Богу.
Постоји функција позван да горњи које могу
учинити све што смо управо урадили на прилично ниском нивоу.
>> Сада да горњи је занимљиво јер је декларисана у датотеци,
а само да знате провером документације,
или речено, рецимо, у класи, где је постоји, у фајл под називом цтипе.х.
Дакле, ово је још једна нова наш пријатељ.
И да горњи ради управо како његово име сугерише.
>> Можете да прође, као аргумент, између ови заграде, неки лик.
Идем да прође у и'тх карактера од с користећи наш фенси нови запис
укључујући угласте заграде.
И да претпоставка, шта је повратак вредност на Уппер очигледно иде
да буде?
Великим словом.
>> Дакле, ако сам проћи малим словима А, надамо се, по дефиницији у горњи,
то ће да се врате велика слова А. У супротном,
Ако то није слово прво место, само сам га одштампате.
И заиста, приметити Други пријатељ.
Не само да постоји горњи, али је нижа, што
заправо одговара да питање за мене.
>> Сада свако ко је написао ове ствари, 10с од пре неколико година, знаш шта?
Спроводе на горњи и смањи коришћење код овако.
Али опет, у складу са Ова идеја апстраховањем далеко,
врста, доњи ниво Детаљи имплементације.
И стоји на раменима људи који су дошли пре нас, користећи функције
изгледа горњи и доњи, која дивно довољно су лепо
именован да кажу оно што они раде, јесте дивно парадигма за усвајање.
>> Сада испада да ако ја прочитам ман странице за, рецимо, да се горњи,
Учим нешто друго.
Тако човек тоУппер.
То је мало неодољив.
Али обавештење, овде је то помињање хеадер фајл који би требало да користим.
Као страну, јер је то је погрешан, функција
користи Интс уместо знакова због проверу грешке.
Али, можда ћемо доћи Назад на то у будућности.
>> Али приметите, овде, на горњим преобраћеника слово Ц у велика слова, ако је могуће.
Дакле, то је прилично једноставно.
А сада будимо мало прецизнији.
Погледајмо делу ман страница под повратну вредност.
Вриједност враћена је да о промењеним писма.
Или Ц, уколико конверзија није било могуће,
где је Ц је оригинални улаз.
Што ја знам одавде, из аргумент да да горњи.
>> Дакле, шта је понети ово?
Вриједност враћена је да о промењеним писма,
или ц, оригинално писмо, ако конверзија није било могуће.
Шта побољшање Зато могу направи дизајн мој код је?
Да?
>> Публика: Можете да уклоните друго.
Давид Ј. Малан: Могу уклоните изјаву другог,
а не само друго саопштењу.
>> Публика: Можете уклонити [неразумљиво].
>> Давид Ј. Малан: Могу уклоните цео виљушку
на путу, ако је друго потпуно.
Дакле заиста, дозволите ми да отворим Финална верзија ове,
капитализује-2 и приметите колико, ако ћете, секси, код сада све,
у томе сам смањио са неких седам или тако линија само четири,
функционалност коју сам намеравао једноставно позивање на горњи,
пролази у С конзолу И, а штампање се, уз плејсхолдер% Ц,
то специфичан карактер.
>> Сада вероватно, постоји буг, или барем ризик од грешке,
у овом програму.
Па само да се врати са ранијом понети,
Шта треба да вероватно учинити у Овај програм да би га више робустан,
тако да нема шансе да може црасх, чак иу ретким случајевима?
ПУБЛИКА: Уверите није НУЛЛ.
Давид Ј. Малан: Уверите није НУЛЛ.
Дакле стварно, да би ова супер Правилна, да треба да урадим нешто слично,
Ако с није НУЛЛ, онда само напред и извршавање
ове линије кода, који Ја онда могу алинеја тако,
а затим ставити у мојој непосредној браце.
Тако добро повезивањем две идеје.
Да?
Публика: Да ли користите уради док петља, уместо тога?
Давид Ј. Малан: Цоулд Радим радим док петље?
ПУБЛИКА: --иоу желите да се уверите да заправо [неразумљиво].
Давид Ј. Малан: Цоулд користите радите док?
Кратак одговор, не.
Јер си о томе да увести још један корнер случај.
Уколико стринг нулте дужине.
Ако се, на пример, управо сам ударио Ентер, а да никада куцање Замила.
Ја ћу те вратити стварни стринг, као што ћемо видети на крају,
који има нула знакове.
То је још увек ниска, то је само супер кратка.
Али ако користите радите док, ћеш да слепо
покушати да уради нешто са вези с тим стринг,
и ништа ће бити тамо.
>> Публика: Па, ако јеси до [неразумљиво] док ка--
Давид Ј. Малан: Схватам, стално добијања стринг од корисника.
Тако кратак одговор, ви могао, и држе гњавим
им да вам дају ниску која је довољно кратак да стане у меморију.
Апсолутно.
Само је одлучио да не.
Ако они не ми дају стринг И Желим, одустајем, ја одустајем.
Али апсолутно, у ту сврху, апсолутно могу да урадим.
>> Тако је библиотеке заглавље датотеке које сада смо упознати са овим се, овде.
Стандард И / О, ЦС50.х, стринг.х, цтипе.х, а ту су, заиста, остали.
Неки од вас су открили математике библиотека у матх.х.
Али дозволите ми да вам представим, сада, да овај ресурс који ЦС50 особље, Давин,
и Роб, и Гејб посебно су саставили.
То ће ускоро повезати на Курс поруку.
То се зове ЦС50 референца.
>> Који је само да вам дам брз укус тога, ради на следећи начин.
Пусти ме да идем у референце.цс50.нет.
Видећете на левој руци страни неодољиву листу
функција које долазе са Ц.
Али ако ми је стало, за сада, нешто попут стрлен,
Могу да га типа тамо.
То изфилтрира листу само оно што ми је стало.
Ја ћу да га кликнете.
И сада са леве стране, ћете видети шта се надамо
је јаснија, људски пријатељски објашњење како
Ова функција ради.
>> Враћа дужину стринга.
Ево синопсис, ево како можете користите га у смислу тај фајл,
и у погледу онога што функције изгледа у смислу његових аргумената.
А онда овде, враћа дужина низа.
Али за оне од вас удобније, ви у ствари можете да кликнете више удобан,
и садржај овог Страница, сада, ће се променити
да су подразумеване вредности онога добијате коришћењем ман страницу.
>> Другим речима, ЦС50 референца је поједностављење
од ман странице од стране особља, за студенте.
Нарочито, они мање удобна и између, тако да
не морају да покушају да оконча Твој ум око, искрено,
неке прилично Цриптиц синтакса и документација понекад.
>> Па имајте то на уму у данима који долазе.
И ево, опет, је Замила.
Хајде сада поставим питање које је мало људско приступачан.
Захваљујући Цханг, ко је био штампање више слонове
нонстоп у последњих неколико дана.
Имамо прилику да најмање један од њих далеко.
Ако бисмо могли да добијемо само једну волонтера да дођу горе да скрене на екрану.
А овде?
>> Дођи горе.
Како се зовеш?
Алекс: Алекс.
Давид Ј. Малан: Алекс.
У реду.
Алек, хајде горе.
Ми смо о томе да видимо ваше рукопис на екрану овде.
У реду, драго ми је да смо се упознали.
>> Алекс: Драго ти да смо се упознали.
>> Давид Ј. Малан: У реду.
Дакле, Супер једноставна вежба.
Бар није висока за добити слона данас.
Играте улогу гетстринг.
И ја ћу да вам само рећи Стринг који сте стечен.
И претпоставимо да вас, гетстринг, позвани.
И људски, као и ја, има откуцан Замила, Ж-А-М-И-Л-А.
Само напред и пишу на Замила екран као да сте га добили
и да га чувају негде у меморији.
>> Остављајући простор за шта ће бити неколико Други вордс-- то је у реду, наставите.
>> [СМЕХ]
>> Дакле Замила, одлично.
Дакле, сада претпоставимо да, гетстринг, поново звао.
И због тога, ја дати вам, у тастатура, са другим именом, Белинда.
У реду.
И сада следећи пут гетстринг ис звао, куцам у нечему, као Габе,
Г-А-Б-Е. Ти стварно узимаш срца радне меморије.
Што је цртање све потпуно насумично.
У реду.
>> [СМЕХ]
Алекс: Жао ми је мој рукопис је лоше.
Давид Ј. Малан: Не, то је у реду.
А како би било да Роб, Р-О-Б. У реду.
Добро.
Па нисам очекујете да врста лежи ствари на овај начин.
Али можемо направити овај посао.
Па како идете о полагању ових карактера у меморији?
Другим речима, ако мислимо на Овај правоугаони црни екран
као да представљају рачунара РАМ или меморија.
>> И сећам се да је само РАМ гомила бајтова,
и бајтова гомилу битова.
А бита су некако спроводи, углавном
са неком врстом Струја у хардверу.
Дакле, то је нека врста Раслојавање смо причали о
и сада може узети здраво за готово.
Како сте то одлучују где да пишу
Роб против Габе против Белинда против Замила?
>> Алекс: Управо сам то урадио у нареди да си ми рекао.
>> Давид Ј. Малан: И то је истина.
Али оно управља, где сте ставили Име Белинда је и име Габе се?
>> Алекс: Ништа?
Давид Ј. Малан: [Смех] Тако то ради, то је у реду.
Дакле, компјутери су мало више уредно од тога.
Па кад смо имплемент-- останемо тамо за само тренутак-- када смо заправо
спроведе нешто слично гетстринг у рачунару,
Замила можда изнео прилично као што сте радили на екрану, тамо.
>> И шта је кључ приметити овде, шта је Алек урадио,
је да постоји нека врста разграничења међу свака од ових речи, зар не?
Нисте написали З-А-М-И-Л-А-Б-Е-Л-И-Н-Д-А-Г-А-Б--
другим речима, постоји нека врста разграничења која изгледа као да се,
врста, Рандом размак између ових различитих речи.
Али то је добро, јер ми људи могу сада
визуализују да су четири различита Стрингс.
То није само једна секвенца од много карактера.
Дакле рачунар, а затим, у међувремену, може потрајати стринг као што Замила,
стави сваки од тих писама унутар бајт меморије.
Али тај број је много већи, наравно, од шест знакова.
>> Постоји читава гомила РАМ.
Па одсада, ово Грид кутија иде
да представља оно што Алекс управо учинио овде на екрану.
А сада, Алекс, можемо да вам је понудити плаве или наранџасте слон из Цханг.
Алекс: Ја ћу узети Блуе Елепхант.
Давид Ј. Малан: Блуе Елепхант.
Тако велики аплауз, Ако будемо могли, за Алек овде.
>> [АППЛАУСЕ]
>> Алекс: Хвала.
Давид Ј. Малан: Хвала.
Па Такеаваи је да, иако Паттерн врста променила током времена, овде
на табли, било је то демаркација између различитих жице
да Алекс добио за нас.
Сада компјутери, искрено, могао да уради исту ствар.
Они су могли да некако плоп Стрингс било где у РАМ.
Овамо, овамо, овде, овде.
>> Они су могли да ураде управо то.
Али, наравно, то је вероватно није најбоља планирање.
Зар не?
Ако ја стално питао да Алек добити имена, вероватно бих му
стави још овде, можда горе овде, овамо, овамо, на крају
овамо.
Али са мало више планирања, свакако, могли бисмо да постави ствари више чисто.
И заиста, то је оно што компјутер ради.
>> Али цака је у томе Ако је следеће стринг сам се
после Замила је нешто као Белинда,
предложи где смо могли писати слово Б у вези са овим мрежу?
Где би ти?
Са десне стране А, испод З, испод А?
Шта би твој први инстинкт бити?
ПУБЛИКА: Испод З.
Давид Ј. Малан: Па испод З.
И то је прилично једноставно, зар не?
То је врста уредан, то је оно што ми радимо на тастатури, када смо погодили Ентер,
или е-маил приликом набрајања списак ствари.
Али реалност је да компјутери покушавају да буду ефикаснији,
и уклопе свакако толико Подаци у РАМ је то могуће,
тако да не губите бајтова.
Тако да не губите било ком екрану некретнина.
А проблем, међутим, јесте да ако се буквално ставили писмо
Б после, како ћемо знам где име Замила завршава
и име Белинда почиње?
Тако да само људи предложио, па, хит Ентер, у суштини.
Спусти га доле.
Или чак као Алекс учинио, само почетак писање Следеће име испод претходног,
и испод оног, и онда испод оног.
То је визуелни знак.
>> Рачунари још један визуални траг, али је мало више сажето.
То је тај лик фанки.
Бацксласх 0, што је можда подсећа на знак обрнуте косе Н,
и тако даље, сад.
Посебне Есцапе секвенце.
Бацксласх 0 је начин представља осам нула битова у реду.
0000 0000.
>> Начин на који изражавају то не погодио број нула на тастатури,
јер је у чињеници да је АСЦИИ знак.
Изгледа као број, али је заправо децимални број
који представља кружног глиф, кружни фонт.
У међувремену, бацксласх нула значи, буквално
ставио осам нула бајтова овде због мене.
>> Дакле, ово је донекле произвољна.
Могли смо користили сваку образац битова, али свет
одлучио неколико година Пре, то представља
крај низа у меморији, само стави гомилу нула.
Зато можемо открити то.
Сада то значи да нема писмо писмо може бити представљена са нула.
>> Али то је у реду, ми смо већ видели да смо са 65 на горе у 97 на горе.
Нисмо добили нигде близу нуле све.
Дакле, Белинда у меморији рачунара заправо ће ићи овде.
Ја сам га извући само у жутом да скрене пажњу на то.
И обавештење, такође, ово је потпуно произвољна.
Ја сам га нацртана као матрице.
Као, РАМ-а је само нека физички објекат.
То не мора нужно редове и колоне, по себи.
То је само има гомилу бајтова имплементиран у хардверу некако.
Али, ако после Белинда И откуцан у име Габе-а,
он ће се завршити овде у меморији, и ако сам откуцао у име Давен-а,
На пример, он ће завршити овде.
И ја могу да наставе да пишу још више имена.
>> Нажалост, ако покушам да написати супер дуго име,
Можда сам на крају понестало меморије.
У ком случају, гетстринг је ће да се врати НУЛЛ, као што смо рекли.
Али на срећу, бар у овом визуелном овде, нисмо добили баш тако далеко.
>> Оно што је лепо време је да ова Генерална идеја третирања ствари
као у кутијама представник карактеристика Ц
и много језика, познат као низ.
Низ је још један тип података.
То је структура података, ако хоћете.
Структура у смислу заиста, некако, изгледа као кутија, барем
у својој глави.
Низ је суседни редослед истих врста података,
бацк то бацк у леђа уз леђа.
>> Дакле стринг, у другим речи, је низ карактера.
Низ знакова.
Али испоставило се да можете имати Низови гомиле ствари.
У ствари, можемо чак ставити Бројеви у низу.
Тако форми у којој ћемо почети
изјављујући ове податке Структура познат као низ
такође ће користити угласте заграде.
Али ови квадратних заграде ће имају другачије значење у овом контексту.
>> Па да видимо како следи.
Претпоставимо да сам отворио нову фајл овде.
И ја Сачувај као агес.ц.
А ја ћу спасити у мојој фасцикли овде.
А сада ћу ићи напред и почните да куцате нешто
као и укључују ЦС50.х, укључују стдио.х, маин празнину.
И онда унутар овде, желим прво имати Инт зове старост.
>> И ја ћу да користим да би добио инт од корисника за свој узраст.
Али овај програм има за циљ да се користи од стране више људи, за било ког контекста.
Имам линију људи.
Сви они треба да куцате њихове старосна граница за можда неки, не знам,
конкуренција, или догађај да су они стигли на.
Дакле, следећи човек, ја потребан још један променљиву.
>> Јер ако сам радим старост добија Тоноване, то је
ће разбије, или преписати старост претходне особе.
Тако да није добро.
Дакле, мој први инстинкт може бити, Ох, у реду,
ако желим да се више народној агес-- Назовимо овај аге1,
инт аге2 добија инт, инт Аге3 добија Тоноване.
А сада ћу користити неки Псеудокод код овде.
>> Уради нешто са тим бројевима.
Ми ћемо оставити за неки други дан оно ми радимо тамо, јер ми само
брига за тренутак О аге1, аге2, Аге3.
На жалост, када сам саставити овај програм
и ставио га испред стварних корисника, шта је у основи лошег дизајна
Одлука Изгледа да сам направио?
Да?
ПУБЛИКА: [неразумљиво]
Давид Ј. Малан: Да, Нисам ни покушао
да схватите како многи старости ја стварно стало?
Ако имам мање од троје људи овде, а самим тим мање од три века,
Ја сам и даље слепо очекујем три.
Боже сачувај четворо људи појавили.
Мој програм једноставно неће ни да их подржати.
>> И тако то, дуга прича Укратко, није добра навика.
Зар не?
Био сам у суштини копирање и налепите код и само прилагођавати
имена променљивих.
И, мој Боже, ако сте имали, а не три годинама, али 10 или 100, или чак 6.500
студенти, на пример.
Ово неће бити нарочито елегантан кода или одрживо.
Идеш морати да Препишете програма сваког пут
Ваш број људи промене.
>> Тако на срећу, у нашој стварна агес.ц фајл за данас,
имамо паметнија решења.
Прво, ја ћу да позајмим изградити смо користили неколико пута,
ово урадили док петље, како би се број људи у соби.
Ја ћу само да малтретира корисника, поново и опет, све док он или она ми даје
вредност н то позитиван цео број.
>> Могао сам користио, последњи Време је да позитивно инт.
Али ми немамо то стварно, па сам отишао напред
и поново реализује ову идеју.
Сада овде доле, то је нови трик.
У складу 27, као и коментаре у ред 26 сугерише,
прогласити низ у коме за чување свачији узраст.
>> Дакле, ако желите да добијете, а не један ИНТ, не два интс, али цела гомила интс.
Конкретно н целих бројева, н су можда бити три, можда 100, можда 1000.
Синтакса, једноставно, да се рецимо, који тип података хоћеш?
Шта желите да позовете да комад меморије?
Шта желите да позовете мрежу да изгледа овако сликовито?
>> И у загради овде, ви кажете колики желите да низ да буде.
И тако раније, када сам рекао синтакса је мало другачија овде,
ми и даље користимо угластим заградама, али када сам декларисање низ,
број унутрашњост угластим заградама средства
колики желиш низ да буде.
>> Насупрот томе, када смо користили с носач сам малопре, с, стринг,
је заиста низ карактера, али кад не декларисање променљиву,
као и овде ову кључну реч, једноставно добијате
специфичан индекс, специфична елеменат из тог низа.
Једном када знамо да, остало ово је једноставан.
Ако нови сам први пут ћу да одштампате шта је старост особа број И.
Где сам само да кажем човек број један, Лице број два, човек број три.
>> А ја само радим аритметику, па да као нормални људи,
рачунамо од један за ово програма, а не од нуле.
Онда зовем Тонированние, али ја чувати одговор у векове заграде и.
Што је и'тх старост у низу.
Па док смо задњи пут били лечењу ове кутије као карактера за име Замила а,
и други.
Сада, ови кутије представљају 32 бита, или четири бајта
у којем можемо да ускладишти инт, инт, инт.
Сви који, опет, су иста врста података.
>> Сад урадим нешто глупо, Као време пролази, само
да оправда писања овог програма.
А онда овде, опет поновити преко низа говорећи годину дана од сада,
Лице број један воља бити нешто година.
И да схватим да матх-- Мислим, ово
није веома компликована аритхметиц-- Ја само додајте једну њиховом узрасту.
Само да покажу, опет, ово.
>> Баш као што могу индекса у стринг, с, Могу ли индекса у матрици векова,
као да постоји.
Па где ће то да нас воде?
Тако да ћемо видети, на крају, Неколико ствари у данима који долазе.
Један, све ово време, када је писања своје програме,
као Марио, похлепан, кредит.
Сте куцате име Програм и ударају Ентер.
А онда постаје улаз корисника.
>> Са гетСтринг, Тонированние, гетЛонгЛонг, или слично.
Али испоставило се да је Ц носача нешто што се зове командна линија
аргументи, који ће нас пустити заправо добити на речи које куцате,
На линији трепери, после име вашег програма.
>> Дакле, у наредним данима, те Можда откуцате нешто попут Цезара,
или ./цаесар број 13, након тога.
Видећемо како се то ради.
Јер је заиста, у Проблем поставили две, ми смо
ће да вас упознам на мало нечега
подсећа на Ралпхие је изазов раније картографије.
Уметност кодирање информација.
Ово, у ствари, је веома подсећа шта Ралпхие урадио.
>> Ово је пример шифровања алгоритам се зове РОТ13, Р-О-Т 13.
Што једноставно значи окрените слова у алфабету 13 места.
И ако то урадите, видећете сад оно што је, можда, позната фраза.
Али начин на који ћемо користити То, на крају, више уопште.
>> У П подесити два, у стандардној издању, ћете спровести неколико шифрама,
једна се зове Цезар, једна се зове Вигенере.
Обојица су ротациона шифре, у то некако
претворити једно слово у различитом писму.
И Цезар је супер једноставна.
Сте додали један, додати 13, или неки број до 26.
Вигенере то ради на по писму основа.
Дакле Вигенере, као што ћете видети у спец, је много сигурније.
>> Али на крају дана што ћете бити спровођење и П подесити два,
је то кључ који сте оба користе за шифровање и дешифровање.
Позивајући се на процес окретања обичан текст, неки Оригинал Мессаге,
у ципхер текст, који је нешто шифроване.
А затим га поново дешифровања.
>> У хакерске издању, У међувремену, бићете
задатак са нечим сличним у духу, где ћемо вам дати
Филе, из типичног Линук, или Мац, или УНИКС зове Етси
лозинка, која садржи читав гомила корисничких имена и лозинки.
И те лозинке имати све били шифровани или хасх,
да тако кажем, више правилно као што ћете видети у спец.
>> А хакер издање ће изазов ти са узимајући улаз овако,
и пуцање лозинку.
То је, фигуринг шта Пассворд људске заправо била.
Јер, заиста, лозинке генерално нису сачуване у јасан,
и генерално лозинке би требало да буде тешко погодити.
То није чест случај.
>> И оно Мислио сам да урадимо је закључи са пар минута
поглед на посебно лош избор лозинки
из филма можда сећате нежно.
А ако не, треба да изнајмите.
>> [ВИДЕО РЕПРОДУКЦИЈА]
>> -Хелмет, Ви Фиенд, шта се дешава?
Шта то радиш са мојом ћерком?
>> -Пермит Ми да представим сјајне младе пластични хирург,
Доктор Филип Сцхлоткин.
Највећи човек посао нос Цео универзум и Беверли Хилс.
>> Твоја Височанство.
>> -Носе Посао?
Не разумем.
Она је већ је имао нос.
То је била њена Свеет 16 присутна.
>> Не, то није оно што мислите.
То је много, много горе.
Ако ми не дају комбинација ваздуха штиту,
Лекар Сцхлоткин ће дати свој ћерку њен стари нос.
- [Гаспс] Нооооооооооооо.
Одакле ти то?
>> У реду.
Рећи ћу, ја ћу рећи.
>> Не, тата, не.
Не смете.
>> У праву си драга моја.
Ја ћу пропустити свој нови нос.
Али нећу их рећи Комбинација Без обзира на све.
>> Врло добро.
Лекар Сцхлоткин, радите свој најгоре.
>> Мој задовољство.
>> Не!
Чекај, чекај.
Рећи ћу.
>> -Ја Знао да ће радити.
У реду, дај ми.
>> -тхе Комбинација је један.
>> Један.
Два.
Три.
-Четири.
Пет.
Па Комбинација је једна, два, три, четири, пет.
То је најглупља комбинација Сам икада чуо у животу.
То је врста ствар коју идиот ће имати на свом пртљагу.
>> Хвала, Ваше Височанство.
>> [РЕМОТЕ мишем]
>> Шта сте ви урадили?
>> -Ја Искључен зида.
>> Не, ниси, ти искључен цео филм.
>> -Ја Мора притиснуо погрешно дугме.
>> Па, га врати се!
Ставите филм поново!
>> Да, господине!
Да, господине.
Идемо, Арнолд.
Дођи, Гретцхен.
Наравно да знам да ћу да ти рачун за ово.
Па?
Да ли то ради?
Где је краљ?
>> -То Радили, господине, ми смо имају комбинацију.
Одлично.
Сада можемо узети све последњи дах свежег ваздуха од планете Друидиа.
Која је комбинација?
>> Један, два, три, четири, пет.
>> Један, два, три, четири, пет?
Да.
То је невероватно.
Имам исти Комбинација на мом пртљагу.
Припремите Спацебалл 1 за Непосредни одлазак.
>> Да, господине.
>> -И Промените Комбинација на мом пртљагу.
[ВРАТА ЗАТВАРАЊЕ СОУНД]
[Цлинк врата удара шлем]
Ах.
[ЕНД ВИДЕО РЕПРОДУКЦИЈА]
Давид Ј. Малан: То је то за ЦС50, видимо се следеће недеље.
НАРАТОР: А сада, Дееп Мисли, према Давен Фарнхам.
>> Давен ФАРНХАМ: Цодинг ин Ц је много теже него нуле.
принтф, Огреби је лаж.
>> [СМЕХ СОУНДБИТЕ]