>> [Мусиц плаиинг]
>> СПЕАКЕР 1: Ово је ЦС50 и ово је почетак недеље два.
Дакле, хајде да зароните право у нешто да је луд, да тако кажем.
Дакле, овде је ЦС50 ИДЕ и ја сам зауставио унапријед ово сцреен-- проклети
to.
Спојлер упозорење.
У реду.
Ја сам извукао овај екран овде, која има веома једноставан програм.
Ако спустимо, већина ово је само коментарише,
али овде у редовима од 13 до 17 имамо програм.
>> То је синтактички важи, што значи да ако Ја сам саставити, она ће саставити и покренути,
али је луд.
Овај програм тврди да у коментарима до врха да би требало да одштампате 10 звезда,
али се то не деси.
И на основу вашег искуства, или ће ускоро бити искуство са Ц,
можете логички разазнати зашто је то, у ствари, Бугги?
Да?
ПУБЛИКА: Иде од нуле до 10.
То је 11 итерација.
СПЕАКЕР 1: Да.
Дакле, иде од нуле се кроз и једнак 10,
што је, наравно, 11 итерација.
Дакле, то ће штампа, заиста, 11 звезде.
Дакле, компјутерских наука конвенција у већини програмским језицима
је, заиста, само да почети да броји од нуле,
али не рацунајте до, али не кроз Вредност коју ти је стварно стало.
>> Дакле, то је једна ствар која Потребно је мало навикавање
па чак Сцратцх, намењен јер је за регистроване програмера или не рачунару
Научници и за децу углавном, је дизајниран да
почнете рачунајући углавном на једном.
И то је у реду.
Ви апсолутно може почети да броји на једном ако је то удобније.
И броји до и преко 10, али схватићете посебно ове недеље
и више од тога тако многе ствари у програмирању
претпостављају да 0 први цифре са којом сте рачунати,
да ћеш да лакше само да би у овом навику покретања
од нуле и бројања до вредности ти је стало до сада од
да иду.
>> Дакле, то је фиксна је.
Променили смо мање од или износи само мање него.
Хајде да погледамо Други пример овде.
>> Дакле, овај програм такође тврди се у коментарише на врху који треба одштампати
десет звезде, али то није то.
Шта је буба овде?
>> Дакле, шта-- и извини, будимо јасни.
10 старс.
Један по линији, али то није то.
Дакле, у ствари, дозволите ми да само напред и саставити ово зато што је мало мање
јасно на основу тог описа.
Пусти ме у наш извор директоријум.
Маке Бугги једну тачку косу црту, Бугги један.
ОК, видим 11 звезде, који је и даље проблематична,
али су сви у једном реду.
Шта је проблем овде?
Да.
ПУБЛИКА: [неразумљиво].
СПЕАКЕР 1: Да.
Дакле, ово је суптилност да могу сећам се да што кратко помиње.
Иако све изгледа лепа, и то је лепо разведена,
и некако изгледа као Сцратцх у тој линији 16 и 17 су,
Заиста, увучен испод тога за петљу.
То је небитно.
Рачунар не знам да постоје бели простор.
Бела простор само за нас људи, стилски.
Рачунар не зна када имате цурли протезе, које би заиста
решили овај проблем.
>> Дакле, ако смо отишли ​​у и експлицитно ставио у заграда
да би решили овај проблем што јасно компајлер
да ја заправо желим да изврши две линије кода опет,
и опет, и опет.
Али шта је основни објашњење?
Jel tako?
Ми не треба стриктно заграда све време,
иако је вероватно најбоље пракса да се у ту навику у сваком случају
иако додаје два ликови то иоур код. zašto?
>> ПУБЛИКА: [неразумљиво]?
СПЕАКЕР 1: Да, тако је то друго решење заједно.
Jel tako?
Поготово ако на први поглед не раде Стварно ценим шта се дешава.
Па, сигурно смо могли само уради две ствари одједном
и само избегавајте проблем у потпуности.
И то је у реду, али сада, за данашње потребе, што
је објашњење за буг?
Зашто су све те звезде на једној линији?
Да?
>> ПУБЛИКА: Чини се да, ако имате једну линију кода,
можете то урадити без њих.
СПЕАКЕР 1: Тачно.
Ово је само људско конвенција.
Људи схватите да је то мало досадан или заморно
морати да стави витичасте све времена да све што желите да урадите
је извршити једну линију кода.
Дакле, људи одлучили неке Време пре да је то у реду.
Ако желите да поставите све ваше петље на само ту једну линију овако,
то је у реду са синглом зарез на крају.
Али то можете учинити само један такав линија без заграда.
>> Дакле, када ЦС50 стил водич јер ће вам указати на,
видећете да генерално то је добра навика
да се у ово док си ти сасвим удобно Страиинг
од ове врсте конвенција и ради свој ствар.
Докле год ви себе си доследан.
И причаћемо више о стил мало касније данас.
>> Дакле, дозволите ми да отворим један други програм.
Наравно, треба фик да је 10 као добро.
Пусти ме само напред и пишу прави Брзо програм који ћу звати,
рецимо, петља дот Ц Дакле, петља дот Ц У петље дот Ц ћу имати,
укључују стандардне И / О тачка В инт маин празнину.
А сада хајде да урадимо, заиста, петља.
Дакле, 4 инт и добија нула.
И је мање од, рецимо, 50.
И плус плус.
А онда овде хајдемо само напред и не штампају Ф.
И онда желим да одштампате И и нова линија, зарез.
>> И то би требало да одштампате све бројеве од нула до 50?
Неколико глава клима главом.
Неколико нос.
Шта је већ буба?
Шта је лако грешка сам направио?
Да.
>> ПУБЛИКА: [неразумљиво].
СПЕАКЕР 1: Да.
Дакле, иако изгледа овако је оно што намеравам,
сећам се да сам је и само АСЦИИ карактер.
>> Дакле, ако кажем, штампа "ја"
То је буквално да И. штампање Дакле, ако
Желим да плуг-ин плејсхолдером вредност заправо треба да урадите ово
а затим прикључите-у вредност И динамички.
Иначе Идем само да добити 50 И је на екрану.
>> Дакле, пусти ме само напред и чине ову петљу, покрените га,
и, заиста, сви ми имамо начин на који се кроз 49.
И ако се вратим дођите на време видим број нула на почетку.
>> Па, шта ако некако зезнути?
Шта ако урадим ово?
Само зато што не мислим.
Шта је овај програм.
Када поново састављен и покренути, да логички радим?
>> ПУБЛИКА: Ништа.
>> СПЕАКЕР 1: Ништа.
Зашто је то?
>> ПУБЛИКА: Ја је дизајниран за нулу.
Дакле, услов је неистинит.
СПЕАКЕР 1: Да, управо тако.
Све је код исправан, синтаксически.
Ово ће саставити, ово Код ће радити, али то није
урадити ништа корисно јер сам иницијализујемо сам на нулу.
Онда смо проверили, је да сам већи од 50?
Очигледно, не, није.
Дакле, петља никад извршава уопште.
>> Шта ако урадимо нешто мало неопрезан?
Па, шта ако то урадимо као инт и добија нула.
И сада пусти ме да користе време петља, која је још један услов.
И док ја кажем, док сам је већи од или једнаке нули, а затим у овде сам
само напред и спремити датотеку, направи петљу.
И ја сам хтео да га покренете.
Шта ћу да видим ово Време са вхиле петље?
Да.
>> ПУБЛИКА Ан Инфините Лооп?
>> СПЕАКЕР 1 Ан Инфините Лооп?
Да, и зашто?
ПУБЛИКА: Зато што је увек нула.
СПЕАКЕР 1: Да.
Дакле, ја се покрене као нула.
Наравно да је увек већи од или једнако 0 као резултат.
Дакле, ја ћу да види ово бескрајно.
И сада, ово је дошао једном или два пута на главама току је.
Шта се дешава када вас има бесконачну петљу?
>> ПУБЛИКА: Контрола Ц
СПЕАКЕР 1: Да.
Дакле, контрола Ц ће на крају одговорити.
Нажалост, ми смо одштампан милиони и милиони нула већ
па рачунар има врста добила испред мене.
Дакле, то ће игнорисати ја за мало.
Али, ако само ударио цонтрол ц неколико пута на вашем Мац или ПЦ тастатуре,
на крају би требало, заиста, раскинути.
А ако не, ми ћемо вам показати неке Технике пре дуго где си
заправо може насилно убити програма, налик на Виндовс и Мац ОС,
ако је потребно.
Али хајде да пробамо нешто друго.
Хајде да заправо повећавати И. је ово ће и даље бити бесконачан?
Дозволите ми да покренете ово.
А сада можете некако види шта се дешава.
Ово је, такође, представља Инфините Лооп.
Али ово је мало трик питање.
Да ли ће то штампају бројеве заувек?
>> ПУБЛИКА: Не
СПЕАКЕР 1: Не
Zašto?
Чуо сам неке нос овде.
Некога-- Да.
ПУБЛИКА: Немате довољно бита да стварно настави.
СПЕАКЕР 1: Добро.
Тако да немам довољно бита да наставим.
Дакле, шта ће се десити?
Само ће престати?
>> ПУБЛИКА: У једном тренутку да ће затворити до--
СПЕАКЕР 1: То ће затворити петља доле, али зашто?
Шта ће се догодити на Сам крај њених граница?
Да?
ПУБЛИКА: То ће циклус назад на негативне бројеве.
СПЕАКЕР 1: Да негативних бројева, или ако смо били лечењу позитиван,
нула најмање.
Тако да, апсолутно.
Подсетимо се да смо видели последњи пут да ако инкрементирање ваши бита један превише пута,
и тамо предњим прекорачење капацитет вашег инт
или шта год тип података, ти си да обавије око, вероватно,
два негативна броја.
Или ако сте навести да ваш Опсег требало да буде само позитивно,
што можете да урадите, али нисмо видели али да смо,
можете завршити барем врати на нулу.
Иако је, заправо јесте.
У овом случају, негативна бројева, у ком случају
петље ће да раскине зато што не је, у ствари,
већи или једнак нула ако је негативан.
>> Дакле, нажалост, како дуго ћемо морати чекати?
Сада смо до оно, 2 милиона иш?
Ми смо као 2 милијарде, ћемо морати да сачека
док ми у ствари видимо овај симптом.
Али можемо видети мало брже, маибе-- да видимо да ли можемо прекинути.
Хајде.
Чак су менији се полако појављују.
У реду.
Дакле, ми ћемо се вратити на то убрзо.
То је добра времена-- готово Проклетство, штенци.
>> То је добро време за неким најавама.
Дакле, ако свиди да се укључе у ИХацк,
што је догађај био спонсоред би нашим пријатељима у Јејл.
И, заиста, неки курс је Поздрав ат Иале су укључени у ово.
ИХацк је међународна хацк-А-Тхон домаћин и држала
ат Иале, окупити 1.500 као настројених хакера и креативце свих
целом свету.
Ако је то од интереса, се овде погледати.
Ако је сувише кратко на екран, погледајте данашње слајдова
за УРЛ за ихацк.орг.
Дакле, и неколико брзе најаве.
Дакле, званично ће почети секције следеће недеље и овде и Нев Хавен.
Имајте на уму да ћете бити добивање Е-маил касније овај викенд највероватније.
Потребно је дуго времена за ЦС50 Члана,
Имајући у виду све људе у класа и сви кретали.
И све наставе стипендисти ' распореди су такође и даље учвршћивање,
али будите у току за е-маил и ако је потребно да, можете поново секцију тамо после.
>> Студи.цс50.нет.
Дакле, чак и ако сте стални учесник на деоницама, схватите да скоро сви
ресурса које користимо у секцијама су јавно доступни на ЦС50
Студија на овој адреси овде.
Дакле, ако сте икада желели да поново бих преглед материјал из секције или прочитајте напред,
или не можете да неки недеље бити, схвате да су слајдове узорака,
и проблеми, и дефиниције, и више су ту као добро.
>> Радно време наставити данас, и сутра и среду,
и четвртак проверите Наравно да сајт за распоред.
>> Такође, сада покретање Данас је ЦС50 Дисцусс.
Дакле, ако и када имате питања за једни друге или за особље у току је,
и генерално су раде на неки проблем сету,
схватите да не нужно морају да се окрену на човека поред себе.
Ако тамо нема нико, можеш допре до нас и друговима из разреда
онлине преко ЦС50 Дисцусс.
Дакле, ово је дискусија Одбор за курс,
и схвате да је ово је можда најбољи
место за почетак када имате Питања када изван радног времена
нарочито.
>> Ручак ће почети ове недеље превише.
На Фире анд Ице [Неразумљиво] у Њу Хејвену.
Погледајте курс је сајт како да одговорим.
Први, служе за то.
Ако не добијете ове недеље урадићемо то највише сваког петка
у току трајања.
>> У реду, а сада реч о оцењивању.
Посебно јер улазимо проблем сет једна, која је од ове недеље,
и проблем поставити два и након тога.
Како идемо о евалуацији П комплета и оцењивање квалитета истих?
Дакле, то је четири осе које користимо у ЦС50, и овде су ова четворица.
>> Обим, која снима на нумерички Основ само колико је П скуп
Да ли сте прекршају.
То је отприлике поклапа са напор, а то је наш начин хватања
да ли сте покушали пола П сет, сав П сета.
Ово је лако да се савршен резултати на ако, заиста,
пробајте сваки аспект П сета.
Дакле, имајте то на уму.
>> Исправност је управо то.
Да ли свој код рад као спецификацијом и као узорка раствора штабова "
указују на то да ваш код би, у ствари, радити.
Проверите 50, ако нисте срели ипак, није у П поставити једну спецификацију
и генерално да ти дам да / не одговоре
да ли ти код исправан.
Барем тако далеко ћемо Да би се проценила се заснива на тестовима
да трчимо у оквиру тог програма.
>> Дизајн је много више субјективно.
Ово је колико добро написан је ваш број.
И то је нешто што ћете добити бољи током времена,
и то је нешто што ћемо обезбеди квалитетније повратне информације о.
И по дизајну бих могао значи пре него што сте дуго
може бити у искушењу у неком П сет да уради нешто лоопингли,
али да можда три или четири, или пет угнежђене предњи петље или угнијежђени док
петље.
То генерално треба почети да вас пузати
и да ће генерално Сматра лош дизајн.
А ти ћеш почети да виде у разреду и из класе добрих начина вршења ствари,
бад начина да се то ствари које Можда све буде тачно, али не
нужно добро осмишљен.
Као писање есеја.
Можда ћете моћи ставити речи на страница која су граматички исправно,
али је есеј или теза да су у само
потпуно неразумљиве ствари или унперсуасиве.
И тако то би могло бити аналогно у писани свет лошег или доброг дизајна.
>> И стил, такође, је прилично субјективна.
Али барем очекујемо доследност.
Овако лепа је ваш број.
Да ли се ствари лепо увучен?
Да ли су вам променљиве и названа / ли сви ваше заградама и заграда
поравнати како треба?
Имамо водич ЦС50 стил као проблем скуп ће вам указати на.
Они су удобније велцоме то одлутају од тога
докле год сте доследни себи.
И ово је, такође, лекција ћемо ојачати у одељку.
Дакле, ако је све то било мало брзо, схватају П скуп и профили
ће ићи у више дубине пре времена.
>> Али генерално имамо врло мало кашике за ЦС50.
Резултати су генерално на скали од једне до три или један до пет.
Ми смо литералли-- и не могу да кажем ово довољно у првој недељи.
Три је добар.
Дакле, иако, да, три од пет нормално, математички,
може бити 60 одсто или као Д минус.
Три је, у ствари, добро.
И, у ствари, очекујемо већина ученика у разреду
за почетак термин око паровима, и тројке, четворке и.
Вероватно није толико петице.
Не превише онес.
Али генерално да почне у да слатко место у кривини
тако да је време напредује, заправо има места за,
и могућности за напредовање. горњи
Дакле, молим вас, не изједначавају три са 60%.
То је много више од тога апстрактно.
Формула са којима смо израчунали разреда је пондерисан на следећи начин.
Исправност вреди највише.
Дизајн вреди мање.
Стил вреди мање.
И то углавном обухвата временски период
да иде у добијање сваког од ових праваца баш како треба.
Стил је супер једноставно, треба бити супер брз,
али то је једноставно навика да се лењ о томе.
Исправност може трајати највише времена.
Цхасинг доле мало буг моћ Таке Тхат додатни сат или више,
па је бодовање на крају осваја то.
И тако, сада озбиљније реч.
Пошто ЦС50 има разлика, за боље
или још горе, да буду можда боље упознају
са питањима академски искреност од већине било који други наравно.
И заиста, то је према мојим сазнањима која шаљемо више студената, нажалост,
у дисциплинске сврхе сваке године као резултат. Prema tome,
у интересу пуне обелодањивање, хајде да разговарамо на кратко
о томе шта се дешава у ЦС50, и шта вас може да уради, и шта можете бити свесни.
>> Дакле, овде од 2007, када је Наследио сам курс,
је број огласа одбора случајева.
Оглас одбор је Харвардова дисциплински тело, или сада суде адвокат,
на њих упућује случајеви када студенти раде нешто што је курс
Наставни план и програм сматра неразумним.
Нема праве образац овде, рекао бих.
То варира над године, али генерално
ово је број случајеви који су наведени.
Број студената који су укључени?
То такође варира.
Типично, прошле године Рецимо, 29 ученика на Харварду
Оглас били укрцали, да тако кажем.
29 њих садашњих студената, Двојица од њих претходних студената,
Ко су били сарадњу на неки нежељени начин.
А онда во однос на проценат, обично је око 3%
класе која, нажалост, чини ове врсте одлука.
>> Дакле, прошле године био је 3,5% од ЦС50 је студентског тела
који је био Оглас укрцали, да тако кажем.
>> Дакле, шта све ово значи?
А шта ми заправо радимо?
>> Дакле, за потпуно обелодањивање, ми апсолутно, као компјутерских научника,
има софтверске алате на располагању и то је врло лако за нас, да будемо фер,
да други је колеге који нису преласка ове линије прећи упоредите
свака тврдња ове године против сваког подношење за последњих осам година.
Софтвер ради.
И на крају је људске очи да одлучују
да ли или не односи нека битно за даљу суђење,
али свакако помаже софтвер.
И то, искрено, зато мислим да имамо тако велике бројеве у ЦС50.
То није зато ЦС50 студенти или ученици ЦС више
генерално су мање искрени него било које друге студенте,
то је само имамо алати и технике
са којом да се овај први пас.
>> Али пазите на све ове ствари
као и, опет, у интереси признајући рад који се ставља
у од стране већине супер класе.
И политика курса је на академском искрености,
иако је гомила ст дуго са гомилом метака
које су надамо се прилично читљив, то заиста своди да будемо разумни.
А најбоље правило да нудимо горе у програму
је ово суштина свих радова који вас
достави овом курсу мора да буде ваш.
И заиста, у скоро свим онима случајеви из за дисциплинске мере
то је због неког студента касно једне ноћ обично окренуо своју шифру
преко отворено на друга из разреда, који онда га усвојили
у целини или значајно соли.
>> Али стварно, ово је у реду.
И заиста, у канцеларији сати, цедуљица
сте предали ако сте дошли канцеларије сати прошле недеље охрабрује колико.
Апсолутно си поздравио и охрабрио
да разговарају проблем поставе са друговима из разреда.
Да помогнемо једни другима када спотицања.
Али генерално правило треба бити овако, "када траже помоћ,
можете показати свој код другима, али не можете њихов видели. "
Дакле, другим речима, ако сам бори са неким П сет
а ја сам седео у трпезарија, или у библиотеци,
или у учионици покушава да пронађе неку грешку,
Ја свакако могу показати мој код на екрану
до особа која седи поред за мене, свакако особље,
али и колега.
Али, ако је решење које мог другара нуди је, ох,
овде само да погледамо шта Ја сам, да пређе линију.
>> И ја бих се усудио рећи да је то генерално разумна ствар за већину људи
да врло лако уочити линију.
И тако, погледајте план и програм за више детаља.
А сада једна од више контроверзни аспекти
од ЦС50 наставног плана и програма које сам сам мислио би говоре да у закључку овде
је тзв жаљење клаузула.
Дакле, овде је све ситним словима.
Али, генерално смо видели у протеклих 8 година плус
да, заиста, скоро све ЦС50 је случајеви академског неискрености
су резултат само сиромашни што касно ноћу одлука.
Резултат стреса, резултат недостатка исхране, недостатак сна,
превише П сетова, превише рокови, превише обавеза.
Стрес изградње у 2:00, 3:00 ПМ, 4:00 ПМ, са рок назире.
Већина ученика у овим случајевима Управо је лоше одлуке
да би они врло добро зажалити Следећег јутра ако не минута касније,
али до прошле године није било Вентил да ови студенти могу
заправо отвара се заправо обратити Проблем глава на без страха од
покренули из колеџа у потпуности.
>> И, заиста, представили смо ово жаљење клаузула прошле године,
који каже да ако у року од 72 сата, три дана,
од преласка неке линије прописано у програму
дођете напред да један од курса је главе и имаћемо разговор о томе.
Ту су још увек постоји неки исход, супротно ономе што је
је пријавио да је супротно.
Још увек постоји неки исход који је делотворан је, наравно,
генерално зероинг А п сет или узимање неке друге радње,
али хоћемо, заиста, Хандле Ит сами, а не
погледајте што већи су исход може бити много тежа.
И, заиста, да деле оно што се догодило прошле године, у осам година, а сада
девет година, наставе овај курс и после петљао са разним потенциометара,
окретање разним бирање преко прошлости неколико година академске поштења,
и види по подацима без икаквог утицај, чак и говора као што је ова,
ово је руке доле најбоља ствар ми смо увели педагошки
За осам година заједно ове линије у ЦС50.
>> 19 ученика иступили у складу са овим клаузуле прошле године.
Узели смо никакве акције за седам од тих студената,
утврдило да су непотребно забринути.
Нису је, у ствари, прешли линију, али је
Била је то добра чат да ипак има.
Нулу смо 11 од резултата који су достављени.
И у једном случају, питали смо Студент да уради проблем сет.
Али више убедљив, искрено, са овим 19 ћаскања,
што је много више од мене очекује да имају, сваки од њих
10 минута до Можда је сат дуго, такође донела
на видело низ питања у вези породичне питања, фриенд питања,
менталног здравља питања да онда ангажовани,
са студентом благослов, резидент декан, или пријатељи, или било који други број
за подршку ресурса.
Тако да је ово далеко један од најбољих употреба нашег времена
и један од најбољих интервенција.
>> Уз то је рекао, није имао Улаз на стопу откривања
академског непоштења уопште.
И ако смем да кажем, овај подскуп ученика прошле године
је демографском да претходно никада нису идентификовани пре
и никада није повезан са раније.
И тако, то су били вондерфул приче о успеху
иако су изнети на светло дана у мање од оптималним околностима.
Дакле, имати то на уму као што се, можда,
неке лоше одлуке се касно ноћу,
да прибегне постоји толико дуго као студент у тој ситуацији
поседују горе и иступе тако да можемо има ту врсту цхат и њиме се баве
на начин да је образовна, а затим можемо да оставимо иза нас сутрадан.
>> Дакле, без даљег одлагања, узмите едге са овог разговора,
разлог штенци су до јест само да пробије лед за тренутак.
И, нажалост, они су сви спавају, али оно што је требало да се деси овде
је свако требао да страхопоштовањем и мало опустити
након тог тешког разговора.
Али изгледа да сам ставио штенад на спавање.
Али ако одете на ЦС50 је сајт Сласх штенци,
можете их гледати цео дан.
Посебно можда 2:00, или 3:00, или 4:00 ноћу
да видим мало стреса тамо.
Тако да је сласх штенади.
У реду.
Зар није било забавно?
ОК.
Дакле, вратимо се неким рачунаром наука, ако могу.
>> Дакле, сећате тог последњи пут смо почели гледа не само на главни, који
био подразумевани функција, када зелена застава кликнули еквивалент,
али смо такође почели кратко писање неке од наших функција.
И до сада ниједна од ових функција посебно су велики или месни.
Добићете на оне веће функције вероватно П сет 2, н сет 3,
Дефинитивно н сет 4 и надаље.
Сада већина ваших програма, ако не и сви, свакако за П
Сет 1 може бити у потпуности урађено у главни.
Ако ваш програм је само пет линија, 10 линија,
дугачак је чак 20 линија, савршено разумно да напишем
све у главни, а не да се претјерано компликује ваш код, али оно што радимо данас
и даље, покушава да се увести неке добре технике дизајна
тако да је ваш код добија више компликован и као проблема
желите да решите све теже и занимљивији имате, некако,
алатке у својој кутији за алат са којим дизајнирати добра решења за њих.
>> Дакле, хајде да бацимо поглед уназад на овај програм из мог прошле недеље, која
је функција нула тачка Ц И приметити да, једноставно,
то изгледа овако са два функције, главни и име штампање.
И мислећи назад или можда реверсе енгинееринг данас,
шта је био мотив за увођење функција у складу 28 зове,
Име штампа?
Или шта је то пример у Услови принципу или понети,
ако хоћеш.
Неки жамор.
Шта?
>> Да тако Функционална разлагања је врста у фенси начин да се каже,
децомпосе свој програм у своје саставне делове
а затим користите оне делове да окупи једну целину.
Дакле, то је такође некако од једног гутљаја већ,
али ово је можда чак и бољи пример нечега
управо звао апстракција.
Jel tako?
Апстракција ће бити један од теза на ту тему у ЦС50
као и информатика генерално јер је
техника са којом можете решити Проблеми ефикасније, јер вас
може да напише решења више интуитивно и на начин који вага
и разумљиво је од других људи.
Шта хоћу да кажем?
>> Дакле, вероватно је много читљив да погледате програма као што је овај,
Супер кратко иако је.
Када видите на линији 22 да има функција зове, име штампа.
Сама та назив каже шта ради.
Та функција очигледно узима Улаз између својих заграда,
и очигледно ради нешто, вероватно исписује име.
И тако, иако смо апсолутно може имати
учињено оно што смо урадили пре недељу дана, што је узми ову стварну линију кода,
ријеши се, и добити ослободити све ово заједно,
некако смо далеко захваћене појам штампања име.
Баш ме брига ако користите за штампање Деф.
Не занима ме ако имате посто С и обрнуту косу црту Н. То
су невероватно волшебни детаља.
Оно што ми је стало до као програмер штампа име.
И тако, шта бољи начин да то урадите него позивање функција, име принт?
И тако, то је био један од мотива за то нешто овако.
Израда код више читљив више, вишекратну употребу, као и само описно.
Сада, хајде да погледамо још један пример,
која је функција оне, које смо имали овде.
>> Дакле, ово је можда још убедљив, јер у том случају,
Не желим само да добијем инт.
Желим да добијем позитиван инт.
И испоставило се да је позитиван инт морате да урадите гомилу трчкарање.
Jel tako?
То није једноставна линија звати као име отисак,
која је додуше мање убедљив.
>> Да бисте добили позитиван инт, логицалли-- пусти ме дођите доле да се сакрије ово.
Шта треба да урадите?
Као и свим алатима смо имају у овом тренутку се
ствари као што су штампање деф од стандардних Библиотека као и из ЦС50 библиотеке
имамо Гет Инт, и Гет Флоат, Гет Лонг Лонг, Гет Стринг,
али само један, Германе, сада је Гет Инт.
Дакле, ако је једини алат имате у кутији за алат је Гет Инт,
како идемо о имплементацији да добије позитивну инт?
>> ПУБЛИКА: Критике дневник и проверим да ли је улаз који су дали
била позитивна или не.
>> СПЕАКЕР 1: Савршено.
Baš tako.
Још један алат имамо у нашој Алати од недељу или две пре
је само лоопинг конструкт.
И тако, да, ако користите време петља, или раде док петље, или Форе
петља вероватно могао да побегнем са било којим од онима у неком облику.
Можемо да спроведу идеју гет Позитиван Инт користећи само Гет Инт,
и онда само наставите назвавши опет и задржи гњавити корисника
док он или она заправо даје нам оно што желимо.
>> И сада, ова апстракција процеса
добијања позитивног инт у функцији зове
Гет Позитивна инт је мало више убедљив јер погледај ово.
Ово је као 10 плус линија кода који
су укључени у добијању позитиван инт, а ја стварно не занима ме како ви то радите.
Све ми је стало да вас могу то да урадим, па сам сам
скривена сви ови детаљи иза функција названа Гет Позитивна Инт тога,
Заиста, има ту радити док петље.
>> И види прошле недеље за синтаксу тамо, али то је само проглашава Н,
и исписује упутство кориснику.
Он позива Гет Инт а онда проверава опет овај услов, и опет,
и поново све док корисник не сарађује.
>> Дакле, сада, неколико Санити провере.
За оне који можда упознати са неким програмима,
Зато је проглашен Н, зашто да направим Н изван радити док петља?
Зашто је на линији 29, а не он осећај 33, на пример.
>> ПУБЛИКА: Јер кад вас прогласи га напоље, некако
на више, веће сцопе--
>> СПЕАКЕР 1: Добро.
>> ПУБЛИКА: --анд ако прогласи се унутар петље, [неразумљиво]
јер не зна ништа о томе.
СПЕАКЕР 1: Тачно.
Ако могу симплифи-- то је питање обима.
И обим односи на контекст у којој су промењљива постоји или је употребљив.
И лепо правило овде је да углавном када прогласи или отворите
променљива можете га користити само унутар од најближи прихвата витичасте.
Дакле, шта то значи?
Ако, уместо тога, поништити и идите са нешто што се осећа мало једноставније.
Jel tako?
>> Линија 32 само гледа чистач за мене сада.
Радим обе ствари у једном, а затим додељивање
десна рука на левој руци.
Проблем је сада на основу да дефиниција обима
је да Н може да се користи у редовима 31 и 32 унутар ове петље,
али где по тој дефиницији може да не се користи?
У складу ста?
Да.
>> ПУБЛИКА: 35.
>> СПЕАКЕР 1: 35.
Дефинитивно не 35.
Такође где другде?
ПУБЛИКА: 34.
СПЕАКЕР 1: Чак 34 је проблематично зато што је
изван заграда.
И тако, у ствари, хајде да видимо шта се дешава.
Jel tako?
Ово може изгледати мало интуитивно или не може,
али хајде да видимо шта је преводилац има да каже када
идемо у данашњем изворни директоријум.
Направите једну функцију.
О боже.
Па, коначно сам завршио да, успут.
У реду.
А шта је овде проблем?
Врло волшебни да погледате.
Али ево шта сам типед-- да једну функцију.
Ево шта се индукује, која је заправо
коришћењем преводилац Цланг са неким од тих застава
да ћемо поново видети пре времена.
И опет, увек изгледају на првој грешке,
само зато што можда има каскадни бесмислено ефекат на другим линијама.
>> Дакле, шта то значи је да је Проблем је у функцији 1.ц.
То је на линији 32.
И то је у колони, или карактером, 13.
Дакле, када ваш уредник текст који могу помоћи да се идентификује где је проблем.
Дакле, ако сам крећите се горе, шта је линија 32?
То је заиста ова који је већ истакнут
Право овде-- неискоришћени променљива бр.
Али то није неискоришћен.
Ја га користим.
Али преводилац је збуњена, јер она постоји само унутар овог обима.
И тако ја не могу га користити овдје.
Не могу га користити овдје.
А преводилац, дакле, не чак ни стало да покушавам.
Чини се да је неискоришћени у оквиру њене стварне обима.
>> Дакле, можемо проширити обим радећи управо оно што смо започели са-- инт бр.
И мада се то не догоди изгледа као елегантан, можда,
и водимо додатну линију Овде, сада је у оквиру свуда.
Па хајде да пробамо поново.
Тако да једну функцију.
Lep.
И сада, ако И ако сам покренути функцију један, хајде да га дају негативан 10,
негативна 1, 0, 1, и то је заиста функционише.
>> Дакле, постоји друго решење овде.
Знаш шта?
Шта ако стварно сам борио са овим?
Ја не знам где је Н је требало да иде.
Знаш шта?
Само ћу да га стави све начин на врху мом досијеу овде.
Шта би то урадили, шта мислиш?
Да?
>> ПУБЛИКА: [неразумљиво].
СПЕАКЕР 1: Да.
Тако сам направио да глобална, да тако кажем.
Ако имате променљиву која је изван све своје функције које је дозвољено,
а код треба саставити, и н сада ће бити доступна не само у гет
позитивна Инт, али иу којем маин-- је мало забрињавајуће, јер постоји
већ представља н у главни, тако да више о томе у само тренутак--
али би се сматрало лош дизајн.
У реду.
Ако имате да прибегне нешто као, Ох, ја ћу
само стави овде, јер код изгледа да састави
углавном није најбоља пракса.
Уместо желите да изаберете најужи могући обим
за своје варијабле, што би значило иде са наше почетне дизајн, који
је овде.
>> Сада као на страну, ако нисам имао идентичних назив променљива овде,
начин на који би се бавио Ц ово-- иако то неће десити превише офтен--
је да је ово још увек савршено добро овде.
Али ова дефиниција од н у складу 22 ће схадов глобалну један.
Дакле, ово ће радити у оквиру Главни, а глобална
ће заправо примењују када сте у добити позитиван Инт Али више о томе
други пут, али само за оне који су радознали.
>> Дакле укратко, да поправимо ово овде.
Хајде сада да задиркују, осим два комада Пре него што погледамо последњу линију кода
у овом програму.
Гет позитиван инт.
На левој страни његова реч је реч Инт.
Шта то значи мислиш?
До сада смо углавном смо видели неважећим.
Да?
>> ПУБЛИКА: То је тип променљива да питате.
>> СПЕАКЕР 1: Да, то је тип, пусти ме Не кажем променљива, али је тип вредности
да питам вратити.
И заиста, то је интуитиван овде, надам се.
Jel tako?
Ако желите да бисте добили позитивна Инт, шта је то што
Желим фунцтион-- као наш волонтера из прошле недеље
да вам предају комад папира са инт на њему?
И тако смо је прецизирао да тзв повратак тип ове функције
је да позитивно инт.
Ако нисмо желе да ништа се врати, ви кажете празнина.
Ако желите да се врати стринг, ви кажете стринг.
Ако желите да се врати флоат, флоат кажете.
Али само један који се односи овде логично, јер ја користим гет инт,
иако сам га ограничава на позитивне вредности, је да се врати инт.
>> Дакле обрнуто, шта то значи да постоји празнина у загради?
Шта заграде генерално дефинисати?
Да?
>> ПУБЛИКА: То значи да је функција је Не заправо добити.
>> СПЕАКЕР 1: То значи да је функција је заправо не добија оно?
>> ПУБЛИКА: Улазна.
>> СПЕАКЕР 1: Улазна, уопште.
И заиста, ако заграда Овде можете навести празнина,
то само значи да не желим никакву улаз.
Ја ћу се бавити проблемом лично.
И заиста, не морате да реци да позитивно инт ништа.
Само реци, да позитивно инт, као и да функција ће отићи и радити свој посао.
>> Али ту је мало трик који сам сам играо овде сво време
да се уверите овај код саставља.
Приметите да инт-- добити позитиван Инт воид-- је на линији 27.
Али из неког разлога чудан наизглед то је такође овде на линији 16.
И само за добру меру ћу поновити то тако да је савршено идентична.
И ја сам рекао прототип са један мали линија коментар.
Шта се дешава ако избришем то, и Сада поновљени маке функција 1, ентер.
Упс.
Сачекај минут.
Где је моја картица?
Ха?
Причекати.
Направи функцију 1.
Ево га.
ОК.
Да не спасила правилно.
Дакле, мислим да је мало буба овде где ја нисам
види име картица у овом тренутку.
Дакле, шта се овде дешава?
Имплицитна декларација функције добити позитиван инт је неважећа у Ц99.
Дакле, опет збуњујући.
Па шта је ово показатељ?
Па, испада да Ц је прилично глупо.
Па, то је програмирање језика, односно преводилац је.
Она зна шта имаш учио га, и то само је
сазнати нешто ако га пре него што је научио.
Другим речима, у Главни у овом тренутку, ја сам
покушава да позове функцију зове се позитивно инт.
Али компајлер не иде приметити да се позитивно инт
постоји док линији 26.
И шта преводилац ради само грешке чим стигне у реду 17,
рекавши имплицитно декларацију од добити позитивну ИНТ, који
је само фенси начин да се каже, не знам Знаш шта се позитивно инт је још.
>> Остали језици као што су Јава и Питхон и Руби може гледати напријед.
Ц не.
И тако је начин на који смо поправимо Ово је један од два начина.
Или се, уколико је проблем у томе што се позитивна Инт није и раније,
Па, дозволите ми да га померите до врха.
То би решили овај проблем.
Али генерално, то је Сматра боље техника
да ставите главну функцију на самом Топ тако да човек чита свој код
зна шта програм ради, јер главна није сахрањен све
начин на дну или у средини.
То је на самом врху.
Тако да не осећа идеално.
А заправо можете добити у ситуацијама гдје
ако се позива функција друго, која позива другу,
можете добити у питању, где ни могу изнад другог, логично.
То једноставно није могуће.
>> И тако је начин рада око овога је да само узмите
потпис функцију, тако да спеак-- прва линија где је децларед--
и само цопи, пасте га На врх, али не и са коврџавом брацес--
само са зарезом.
То је као мали хинт онога што ће доћи.
И, у ствари, све ово време када смо Видели ствари као што су стандардне ио.х
и цс50.х, исто тако, у оне тачка х фајлови постоје друге прототипови.
А видећемо да је пре дуго.
>> Дакле укратко, када имате програм у датотеци са више функција
Осим тога главни, скоро Увек желим да их прогласи
само путем њихов први линија, праћено зарез,
на самом врху датотеке.
То је много одједном.
Неко питање?
У реду.
>> Дакле, идемо онда нешто попут кашља.
О.
Како монтажу.
У реду.
Кашаљ.
Дакле, овде је Ц имплементација програма
ми смо пре неки дан у Огреби да, једноставно, само
каже кашаљ, кашаљ, кашаљ.
У реду.
И неко је рекао неколико пре дана да постоји
начин већ чишћења овај код горе.
У реду?
Чим сте копирање и лепљењем вероватно лош дизајн.
Барем једном стигнемо до четири или пет или 20 кашља, осећа лоше праксе.
Ми само наставите копију, лепљења.
Шта је очигледно решење да чишћење овог програма горе?
>> ПУБЛИКА: петље.
>> СПЕАКЕР 1: Да.
Зато користите петљу.
И можемо да користимо за-петље, а време петља, било који број приступа.
И заиста, ето шта радимо у верзији овде.
Ја сам га поново написана уместо у верзији један од цоугх.ц
да буде само кашаљ оквиру за петље.
У реду, али ту је прилика сада врсти старт
да ово мало више личи дизајн лекција коју је научио малопре,
која је ово-- претпоставити да сам желео да створи функцију под називом кашаљ,
Размотримо за тренутак шта ће то изгледати.
Дакле, ако желим нешто да кашље, само ми треба
користити штампање ф унутар функције.
И заиста јесам.
И у ствари, све ово време, сваки пут када сте
штампа нешто екран, програмер
бих назвао нуспојава.
Није ми предаје назад неко вредност.
То ме води неку акцију то би могло бити визуелно очигледна.
Али ова функција кашаљ, то врати ништа на основу своје прве линије?
Не, јер тог типа повратка је празнина, што само значи
Није ми предаје ништа назад.
Можда се ради нешто визуелно, али није ми предаје
подржати комад папира као прошле недеље.
>> Да ли је потребно било улаз?
Ne.
И тако је празнина овде.
Тако је и ово нека врста над-инжењеринг овај проблем.
Jel tako?
Направио сам програм више сложенија, више линија кода,
Нисам га направио ниједну више функционална, али ово
би био одскочна даска, можда, за шири
Контекст са компликованије кода.
Али шта о овоме?
Шта сам доне-- само погледавши ово без гледања у коментару
на самом врху филе-- што имају Ја фундаментално учинио овде са мојим кашља
имплементација то је другачије?
Да, позади?
>> ПУБЛИКА: Нека буде тако можете имају карактер искључити.
СПЕАКЕР 1: Да.
Дакле, ово изгледа лепо.
Jel tako?
То је као додавање функцију за свој програм или ваша функција, у овом случају.
Још увек враћа ништа.
То можда има визуелни ефекат стране, јер зове принт ф.
Али сада сам параметризед функција, која
значи да сам указано узети унос типа инт и назовите га н
али би се могло назвати нешто што желим.
У ствари, могао би бити пута да буде још јаснији.
И онда сам могао да промени ово овде.
Али поента је да је ово како сам направите функцију која узима улаз.
А ако се сећате окретањем кроз можда мрежи у једном
од корацима је Четврти и последњи пример кашаљ,
ћете приметити овде сам генерализовати мој код фуртхер-- врста захваћене
што даље.
Као кашаљ и кијање, оба су о као да кажеш нешто или прављење
нека врста звука.
Саве би био одговарајуће Сцратцх блок.
И оно што сам урадио у овој верзији, које можемо само поглед на,
је кашаљ је као говорећи, [Кашаљ], кашаљ, ау међувремену, кијавица је
као да кажеш, [Ацхоо].
И тако сам генерализовати имплементација оних
до сада имплементацију ово буи функција,
кажу, што је занимљиво за данашње потребе
само зато што још увек нема повратни тип.
Али колико улаза има ли?
ПУБЛИКА: Два.
СПЕАКЕР 1: Два.
И тако, ако желите да узме у два аргумента,
само их раздвојити зарезом.
А ако желите да онда позовите ту функцију,
приметити да сте управо звати рецимо, цитат, под знацима навода,
за први аргумент, заједничка н за други аргумент.
Дакле, опет, имамо само сада блокови, тако да можемо да
спроведе неке од наших функција.
У реду.
Сва питања на овоме?
>> Дакле, хајде да вратимо огулити слој ако је тако.
А циљ, на крају, Проблем је скуп следеће недеље
ће бити на цриптогропхи-- уметност кодирање информација.
Конкретно, информације ће вас шифровање или дешифровање
ће бити текст.
И тако та врста позивнице питање данас као добро,
шта се дешава испод хаубе са текстом ван АСЦИИ од недељу нула,
и како можемо да почнете да га манипулишу?
Дакле, овде је име Замила екипе.
У тексту, који би могли бити унете у као функцију гет стринг.
И од сада, када видим низ као ово-З-А-М-И-Л-а--
почнете да размишљате о томе као да сваки тих знакова је у кутији њеног
сопствени.
И заиста, у недељу или тако је време, сваки од ових кутија
ће представљати веома специфично блок мемори-- залогај меморије.
Тако да сваки од ових слова, на крају, ће представљати 8 битова.
И ми ћемо заправо видети шта се дешава на испод хаубе у свом компјутеру.
>> Али није довољно само да погледате Замила
кроз овај објектив, при чему сваки од ова писма је у својој кутији.
И лепо довољно Ц можемо приступ сваком од ових кутија директно.
Дакле, ако желите да добијете први слово њеног имена, супер једноставно у Ц.
Ако желите да се последњи писмо, супер једноставно као и
са комадом новог синтаксе.
>> Зато ћу ићи напред у ЦС50 ИДЕ и отвори стринг нула тачку Ц.
У овом примеру овде, постоје пар нових ствари дешава.
Дакле, први у реду 19, имамо видели ову пре-- гет низ.
Дакле, као брз проверу исправности, ако неко могао понудити вербално
Објашњење лаик је од шта се дешава у реду 19.
Као само да преведете на Енглески да цимер није у ЦС50
могли разумети.
Да.
>> ПУБЛИКА: Да ли корисничког инпут А стринг и чувајте га на променљиве с.
СПЕАКЕР 1: Добро.
Да ли је улаз кориснику стринг и чувајте га у променљивом с.
Одлично.
Дакле, на десном страна, зовемо гет низ.
То враћа вредност да не се доделени
од десне стране на лево-руке страна у променљиву названу с који је
дизајниран за складиштење стринг.
Baš tako.
>> Дакле, сада ред 22. по коментар у реду 21,
Очигледно штампа ту серију један лик по линији.
Али како?
Пре свега, ми сам да 0 покрене.
И како онда дођемо до крај имена Замила је?
Па, на крају Име Замила је, да могу
ручно укуцајте у последњем карактера њено име некако, или број од тога.
Jel tako?
Ако се вратимо овдје-- З-А-М Л-- И-л-А-- да бих могао да укуцајте.
Шта је индекс Замила последње писмо?
Ако је ово 0-- говори као да је программер-- 0, 1, 2, 3, 4, 5,
Ја чуо-- тако заиста, у последње писмо у име Замила је шести,
али ако рачунамо од 0, то ће бити број 5.
Дакле, имајте то на уму.
>> Испоставило се да постоји функција у Ц позвао стрлен, и назад у дану
и до данас још увек, Много програмера
изабрати за синхронизацију имена за њихово функције које звуче као речи
они покушавају да кажу.
Дакле, стрлен је дужина низ.
И шта би дужина низ С вратити када Замила је улаз?
>> ПУБЛИКА: Пет.
>> СПЕАКЕР 1: З-А-М-И-Л. Шест.
Jel tako?
Шта је дужина име Замила је?
Jel tako?
И само у стварности, шест слова.
Jel tako?
И шта то значи за нашу петљу?
Ми ћемо ићи од 0 до шест, што
ће нам дати пет итерација.
Шта да радимо на свакој итерацији?
Па, посто Ц неко погодили неки дан,
значи чувар места за шта?
>> ПУБЛИКА: Цхар.
СПЕАКЕР 1: Само инт.
Дакле, један цхарацтер-- не више карактера као стринг.
А онда ту је нова линија да имамо штампање.
А онда ту је нови синтаксе.
Ако желите да одштампате и-тог лик у Стринг с, да тако кажем,
можете једноставно рећи назив Стринг с,
а затим отворите квадратних брацкет, и онда затворена квадратних носач, са и
средина.
И то је некако лепо у томе некако изгледа као квадрат
баш као и трговима у којима је Замила ликови постоје на тој слици тамо.
>> Дакле, ако сам заправо покренути ово Сада, хајде да видимо шта се дешава.
Направите стринг 0 дот сласх гудачки 0, а онда сам
ће укуцати име Замила екипе.
Нема брза, јер нисам користити за штампање ф, али то је у реду.
Ја само знам шта да радим.
И заиста, исписује Име Замила, један по линији.
>> Сада будимо мало неопрезан.
Претпоставимо да нисам знао о стрлен и ја схватио,
У реду, нико неће да имају наме већи него као 50 знакова.
Идемо напред и рецомпиле ово и поновљени га, а затим укуцајте Замила
Опет.
Логично, што је Програм ће покушати да штампају?
З-А-М-И-Л-А онда као 45 непознати бајтова меморије.
И заиста, ми ћемо се вратити на ту идеју меморије.
Али логично, ако Име Замила је тако дуго,
по слици овде, шта говоримо
се задржи штампање, штампање држи, држи штампање, штампање задржи, задржи штампање,
све до 50. карактера, који ко зна шта ће се догодити.
Дакле, хајде да заправо да погледамо.
Идемо укуцајте Замила.
Занимљиво.
Имамо среће.
Само гомила белог простора.
О.
Постоји један функи карактер.
Изгледа некако као чудан питање означите тамо, али постоји име Замила екипе.
Идемо заиста несмотрено.
Како би било да одштампате 500 блокови у непознато?
Идемо напред и чине овај као и затим поново покренете.
И да на целом екрану, јер морамо да видимо више простора.
Замила.
Имам поново среће.
>> Даре смо добили више безобзирни?
Идемо више несмотрено.
50.000 карактера.
Ово је веома сигурно није добра идеја.
У реду.
Направите стринг 0.
Ово ће бити наш последњи демо.
Замила.
Ух.
ОК.
Дакле, моја меморија је заиста празна сада, који је заправо нека врста згодно.
Оно што покушавам да да-- све у реду.
И сада ћу да се несмотрено.
500.000.
Маке-- идемо преко целог екрана га.
Ентер.
Замила.
Ево га.
Немам појма шта је то је, али звучи лоше.
У реду.
И у ствари, ускоро, ако сте међу те среће ретких у радног времена
и проблем поставити једну, хвала Можда добро сусрести ово.
Сегментатион фаулт заправо ради имају добро дефинисано значење.
То значи неку врсту грешке која се односи на сегмент меморије.
И у лаички, то значи да дотакли
мемори-- смо користили РАМ-а у мом компјутеру да не би имао приступ.
И то је оно што је и моћан и опасан и
о Ц јеси ли то ти стварно имају несметан приступ
у целини меморији програма или бајтова или РАМ-а, тачније.
>> Дакле, иако је име Замила има само шест знакова,
И даље могу да идем нигде у меморији желим.
И успут, ако сте икада прочитао неки чланак
током година о неким сервер или неки програм
узимајући напукла или хакован је то искористио нешто
назива бафера искористи да смо заиста ћу
говорити о у наредних неколико недеља, то је углавном се односи на неки начин преварио
компјутер у иде добро изван граница меморије
да би требало да има, и проналажење нешто сочно
у томе мемори-- лозинка, можда, начин
од заобилазећи неки серијски број цхецк, или само генерално у стању
да превари рачунар извршава Код који није био намењен.
Али хајде да се вратимо на реалност за тренутак
где је програм био реализује уз стрлен,
и увести једну ствар овде.
Шта је ново код ових првих три линије?
>> Тако ниска тачка х.
Испоставило се да постоји ова библиотека зове Стринг Дот Х, или Стринг библиотека,
чији је заглавље датотеке, да тако кажем, је низ тачака Х да ми даје
приступ овом стрлен функцију.
Ако изоставите да, преводилац је да вичеш на мене у неком облику.
Али знаш шта?
Сада идемо стварно нијансиранија.
У складу 22, има нешто врста од инеффициент-- лоше дизајниран,
аргуабли-- о овој линији кода.
Сетите се како за-петље се спроводе
и које кораке поновити и опет и Поново: иницијализације,
услов, код које добија погубљен, затим пораст
или промена, онда је услов, затим код, онда је промена, а затим
услов, онда код, онда је промена, и тако даље.
Дакле, шта би могло бити мало Забрињавајуће или лоше урадили овде?
Да, у плавом.
ПУБЛИКА: стрлен је назива много, много пута.
СПЕАКЕР 1: Да.
Дакле, стрлен се зове много пута, али оно што је
дужина имена Замила је Први пут се петља извршава?
>> ПУБЛИКА: Шест.
>> СПЕАКЕР 1: Шест.
Па, шта је дужина њеног имена други пут код извршава?
>> ПУБЛИКА: Шест.
>> СПЕАКЕР 1: Добро.
Још увек је шест.
Jel tako?
Име Зарла је нема променило, чак и ако гледам
на само део слова у њено име.
И тако је чињеница да сам ја ефикасно постављам ово питање, шта је
дужина Замила, шта је дужина од Замила, шта је дужина Замила,
шест одвојених пута, или седам чак је глупо,
јер то је непроменљиво да одговор.
И оно што сам заправо могао урадите је ово-- у низу једном
Имам овде незнатно бољу верзију.
Такоо вхоопс-- низ два Имам маргинално боља верзија где
Ја ово-- уместо да само инитиализинг И до 0, сам и са зарезом
прогласити другу променљиву названу н-- Ја не морам да поновим инт.
Не би требало, у ствари.
Али ја кажем н.
А онда сам иницијализирати н да стрлен од н, тако да сада
колико пута се стрлен се погубљен у укупно?
Само једном.
И то је оно што подразумевамо Раније о бољем дизајну.
Заправо кад ти код исправан, враћам и размишљања кроз,
Ја сам користећи што мање меморија или као неколико секунди
или милисекунди времена рачунар као могуће спровести неки проблем?
И ја ћу да се крећете горе и само споменути
да је ово помињање нулл у овој верзији,
али ћемо се вратити на то убрзо.
Јер за сада, хајде да погледамо у куда ово води да нас води.
Дакле, један, испада да сада када имамо могућност
да погледате појединачне ликове, можемо искористити нешто
од недеље 0 да је веома волшебни и врста незанимљив у то време.
Али сада, а посебно када се доћи до Криптографија у недељу,
то ће бити прилично моћна.
Испоставило се да код неких Дата-типес-- ИНТС и плута
и слова и жице и отхер ствари-- неки од њих
се може веома лако конвертују у другу.
>> На пример, када смо разговарали о АСЦИИ неко време аго-- ево
великим словима кроз М, тачка, тачка,
дот-- смо рекли да постоји мапирање између ових слова и бројева.
И, у ствари, то важи за мала слова, као.
Мала слова а је 97, капитал а је 65.
И ту је број у АСЦИИ, што је само ово мапирање
систем за све те других писама.
Дакле, шта то значи?
Па, ја идем напред и отворен до реална брзо нешто што се зове
АСЦИИ 0, од ​​којих је већина је коментара.
И опет мрежи увек можете поглед кроз коментаре.
>> И погледајте шта ово це да уради.
Тако да има главну функцију.
Ја сам хард-цодед бројеве само за Сада, јер знам шта радим.
Знам шта хоћу да видим овде.
И ја сам ја иницијализују на 65.
И Бројим до до 26 слова тотал.
А шта ћу ја принт једну линију у исто време
ако можете да тумачите ово је нагласио линију?
Шта бива одштампан?
Да.
>> ПУБЛИКА: Да ли ћете да одштампате писмо које
одговара мапа Писмо вредност и цео вредност?
СПЕАКЕР 1: Тачно.
Идем да одштампате писмо одговара целобројну вредност,
и обрнуто, као што следи.
Па то, неко раније рекао, је само чувар места за знак.
Још увек је.
Ово је, наравно, је чувар места Да би се инт-- није нова линија.
А сада приметити, мој први вредност која Ја сам укључивања у за то плацехолдер
не само ја говорим, у загради, символ И,
који је у загради Чар је говори преводилац, третирају И
не као шта је, што је број.
Приуштите га као стварног карактера.
Док друге вредности ја зачепљења у-- Ја само треба да буде број.
>> Дакле, ако сам саставити ову програм-- тако да је ово направити АСЦИИ 0,
тачка Сласх АСЦИИ 0-- само да добијем Овај практични мали графикон који
ми показује све могуће мапирања без потребе да размислим
кроз или смислите сама.
И Ја сам такође штампање, приметимо мала слова,
јер неколико редова касније, Такође одштампати ову мапирање
као и, што је само да кажу да кад схватите
шта се дешава испод је хауба, зар не
аутоматски претворити напред и назад.
У ствари, ако неко од вас икада радили у основној школи
или чуо о некоме митски узимајући белешку
и то пролази до његовог или њена пријатељица у разреду,
али спржила сва писма као постаје Б
и Б постаје Ц, или нешто компликованије од тога, добро,
како би се бавите имплементацију да као дете?
Па, само некако знам Постаје Б, Б, Ц постаје,
али математички, шта је то дете ради?
Шта сте додајући да свако слово?
Ефективно, 1.
>> Дакле, када промените А до тачке Б, то је нешто као мијења 65 до 66,
што математички значи само додати 1.
И тако, ако сте били да спроведе та мала варљива техника
за свог учитеља у коду, ви могао да уради управо то само
додавањем једно слово заједно.
Дакле, пре него дуго смо да видимо како ћемо
може искористити то заправо истински јагма и размрсити
информације.
У међувремену, знам да смо почели да уведе пар других библиотека
овдје-- стринг данас.
И веома користан сајт надам се да ћеш наћи
се зове референце.цс50.нет, која наставно особље су саставили,
тако да ако желите да погледати како стрлен радова,
можете почети са куцањем Име ове функције,
кликните стрлен тамо, а затим мање удобан објашњење
ће се појавити.
Или, ако желите службеника Линук базиран објашњење,
можете да кликнете удобније у горњем десном углу, и њега
ће представити исту информацију, али у сложенијим условима.
То је користан извор за Заправо знам шта све ради.
>> Следећи пут ћемо Погледајмо Овалтине
и више, и да се представимо на свету криптографије.
Пре тога, видећемо се касније ове недеље.
А сада, Колтон Огден.
Видимо се у среду.
>> [Мусиц плаиинг]
>> СПЕАКЕР 1: Шта је [БЛЕЕП] радиш?
>> СПЕАКЕР 1: Једем мој десерт?
Како вам се једе?
Са рукама?
>> [Мусиц плаиинг]