>> [Мусиц плаиинг]
>> Анди Пенг: Ово је ЦС50, и велцоме то недељу две деонице.
Ово је заправо док седмице двојица наших цласс-- заправо,
прве недеље смо имали секцију.
Покажи руке, колико вас све дошао у супер делу прошле недеље?
У реду, то је ОК.
То је ок.
Колико сте гледали Супер секција прошле недеље?
ОК.
А ви момци урадили добро о проблему сет једну?
Зато ћу да га узмем да имамо гомила заиста интелигентних деце
у овој класи и ствари ће бити у реду.
ОК.
Тако фирст--
>> Прво, ми ћемо само да укратко ићи преко дневног реда за данас.
Причаћемо о курсу логистике.
Многи од вас вероватно има питања у вези
како ствари имају на овом курсу.
Ми ћемо на њих одговорити.
Идемо на кратко прећи петље у случају
Ако неко од вас пропустили супер секцију.
Причаћемо о АСЦИИ мапирање.
Причаћемо о низовима, функције, командне линије аргументи.
И на крају, шта ви вероватно све Заиста желим да будем овде да уче о,
је ваш псет2.
Имаћемо неке лепе трикове и савети о томе како да то урадите.
>> ОК.
Такође, друго, имамо пуно слаткиша овде.
Свако ко воли слаткише, само дођи овамо.
Зграби мало.
Имам гомилу.
Имамо тону у канцеларији.
Ја стварно не желим једу слаткише за цео дан.
Ви треба да једу све бомбоне, јер сам га довео овде за вас.
Само јести слаткише.
Биће бомбоне сваки део.
>> Дакле, прво, ко сам ја?
Моје име је Анди Пенг.
Ја сам глава ТА на ЦС50 овде на Иале.
А поред да, и ја ћу бити--
ако би неко као-- свој трчање друже, твоје раме за плакање.
Ако је ноћ прије рока вашег псет је, немате појма шта се дешава,
хит ме уп.
Ми ћемо саосећају заједно, и тако даље.
Само знам да сам овде као ресурс за вас као на фронту
у помагању ви схватите како за решавање проблема у ЦС50 и шире.
>> Мој емаил је анди.пенг@иале.еду.
Такође ћу послати неког појединца емаил са мојим бројем телефона у њој
тако да нису сви на Интернет може да види свој број телефона.
Слободно ме позове у било ком тренутку.
Озбиљно, мој телефон је обично везан за моју руку.
Ја не могу одговорити У року од неколико минута.
Ја не могу одговорити у року од пар сати.
Али могу да вам гарантујем, ако сте е-маил ме, ако ме звати,
тект ме, ја ћу одговорити у року од 24 сата.
Често, ја ћу одговорити пре да, јер сам схватио
да свако има неких проблема, и желите своје одговоре
да се одговори веома брзо.
>> Међутим, ако позовете ме 30 минута пре
тај комад који је због четвртак нигхт-- бити као Анди, помози ми,
Нисам стартед-- ја могу дати сте да раме за плакање.
Али, можда је време да размислите о како да не да следећи пут.
ОК.
Упс.
Како да се вратим?
Ево га.
>> Дакле, у овом курсу, имамо тона помоћи за свакога.
Поред на нешто секције овде, који вам
Сваке недеље провести 90 дивне минута са мном,
Такође имамо радно вријеме.
Колико вас има вец био у радног времена за помоћ?
Велики.
То је стварно добро да видимо, јер смо ми има особље од преко 45 Таш и ЦАС
обучени за овај курс који се овде за помоћ се момци са својим псетс.
>> Понедељком се одржавају у теал учионица у 17 Хилл Хоусе овде
на Јејлу.
Уторком и четвртком, они одржана у добрима.
8:00 до 11:00 прилично много радним данима.
Уђите, изађи.
Сваки проблем, не мали проблем само хајде у,
и онда ћемо вам помоћи око тога.
>> Друго, поред радног времена и секције, имамо и гаћице.
Да ли је ико икада видио са пар шорц или ВАЛКТХРОУГХ у видео
на сајту?
ОК.
Дакле, они су стварно корисно.
Наша дивна Харварда производња теам тамо на тој школи
севера, они су снимљен у продукцији Ове невероватне Валктхроугх видеос.
>> Они ће узети вас корак по корак кроз како да о решавању проблема.
Често, ако сте збуњени о једноставан концепт, једнина концепт,
Погледајмо, јер вероватно има кратак о томе негде на нашем сајту.
И то је обично велики ресурс да траже када сте први пут си
Изгубио о томе како управљати проблем.
>> Треће, имамо и студи50 и референце50.
Дакле, студира 50 на Сајт је само карика.
То је, мислим, студи.цс50.нет или нешто слично.
Само Гоогле.
Имамо пуно слајдова припремљене.
Имамо пуно шорцу и валктхроугхс-- ствари се састављају
врло лепо и уредно за све вас момци преко претражујете, видим никакве концепте
да сте збуњени у вези.
Вероватно бих да буде покривено тамо у студи50.
>> Референце50-- слично.
Имамо много различитих нота лако доступна за ваш располагању.
И на крају, имамо оно што је зове ЦС50 Разговарајте,
форум у којем, ако вече пре радите своје проблеме, кажу,
Имате питање.
Пријавите се на ЦС50 Дисцусс.
Поставите питање.
А онда је један од хундредс-- можда, тхоусандс-- вршњака
узимајући ову класу на мрежи ће лог ин.
А можда неко може добити Ваш одговор пред ТА конзерви.
То је у суштини само Онлине форум који можемо сви
користе како би разговарали наше проблеме.
То је кул.
>> ОК.
Дакле, проблем поставе.
Ми смо о праву у дебљине проблема сет два.
Многи од нас су већ борила кроз проблем поставити један.
Већ знамо да можда чека за синоћ да радите свој псет
није најпаметнија ствар коју треба урадити у ЦС50.
>> Савети и савети за суштински Успех се прочита цео спец.
Колико вас има вец прочитајте спец за псет 2?
ОК.
То је солидна количина.
Знам да сте вероватно препознали До сада су спецификације су заиста дуго.
Они стварно, стварно дуго.
>> Заиста је тешко прочитати сваку линију те пажљиво реч по реч.
Желиш да само ским где то говори да урадиш нешто.
Ја могу да вам гарантујем, не ради то.
Ако то урадите, вероватно сте да негде пропустити
где вам говори како почети проблем
или ти говори шта да име проблем или вам говори,
ово је вероватно најбољи начин да почнем да радим свој проблем.
И онда ћеш бити изгубљен.
>> Када покушате да прочитате твој спец пола,
много је важно информатион-- у томе ниси
ће бити у стању да заиста приступ.
Дакле, прочитајте цео спец.
Покушајте да прочитате цео спец пре него што дођете у одељку,
јер тада, када смо говорити о псет,
сви можемо имати идеју шта се дешава.
>> Друго, ово је концепт да ћу бих да референце
Много током курса семестра.
Али у суштини, упознајте нас на пола пута, зар не?
Ја, као ваш ТА и Јасон као наравно менаџер и Сцаз као ваш професор
Давид као ваш професор и сви други ловели тас на овом курсу,
асистенти у овом цоурсе-- ми ћемо се потрудити
како би се осигурало да су постављени до успети у овом курсу.
Ми ћемо одржати дио.
Ми ћемо одржати радног времена.
Ми ћемо одговорити ваш телефон позиви, одговорити на ваша е-маилове,
учинити све што можемо да Сигуран Ваша питања су одговорио.
>> Међутим, помозите нам превише.
Упознајте нас на пола пута.
Ако сте дошли до радног времена Не отишавши у одељку, не
Видевши предавања, немајући појма шта се дешава, бити као, помози ми.
Ја ћу да будем као, добро, жао ми је.
Можда је време да позајмљују који раме за плакање,
јер нисам сигуран шта могу да урадим да ти помогнем
ако не покушате да најмање помоћ себи мало у почетку.
Упознајте нас на пола пута.
Знате, молим те спреман да одговори и да
спремни да се укључе у материјалу.
То чини ствари много лакше за све укључене.
Да, то је прилично је много.
>> Градинг.
Дакле, на градиву, то је прилично дубински о како смо разред.
Али у суштини, слом у ово је 50% свог разреда
ће бити псетс, које је дивно, јер је то
где трошите огромна Већина вашег времена курса на.
Квизови 40%, и ваше коначни пројекат ће бити 10%.
Ту ће бити два квизови широм ток семестра.
Мислим да су времена и датуми су такође наведена на градиву.
>> Начин на који ћемо се оцењивање своје псетс
је да смо у суштини имају четири вриједности које смо доделите сваком разреду.
Имамо вредност обима, исправност, дизајн и стил.
Дакле, као што видите, то је нека врста нашег Формула за израчунавање псетс.
Три дајемо највише тежина у исправност,
Јер очигледно твојим тренером треба тестирање за случајеве
да желимо да тестирамо.
>> Ви сви имају цхецк50 на располагању.
То је веома корисна функција да ви сви могу
поставите свој код нашим серверима, где ћемо да проверимо за вас.
А сте видели оне фровни лица, насмијана лица.
Они су стварно, стварно корисно.
Молим вас, немојте бити Студент који воле покушаја
да хардцоде у свим одговорима на њих.
Ја дефинитивно нисам видео псет где неко видео све вредности цхецк50
и они само фиксирана у-- ако овај број, одштампајте овај број.
Ако тог броја, одштампајте тог броја.
Немој то да радиш.
>> Иако технички цхецк50 је то тачно,
твој начин решавања Проблем није тачно.
Дакле, само користити цхецк50 штедљиво.
Али и будите сигурни да разумем како то функционише,
Програм функционише поред цхецк50,
јер не можемо да тестирамо сваки могуће случај цхецк50.
Ми ћемо се тестира неке од њих.
>> Дизајн је у суштини, како добро осмишљен је ваш број?
Ако сте цопи-лепљење вишеструки линија кода много пута.
Можда немате баш најбољи дизајн у вашем коду.
Можда је време да додате петљу.
У суштини, овде је само све о покушају да ураде свој код,
Покушавам да што ефикасније пишу код могуће, тако да ваш програм ради
што је брже могуће.
>> На крају, ми имамо стила.
Дакле, стил је нека врста произвољно, субјективна термин.
Знам да смо званично стил 50 водич за ЦС50,
где си то каже, ох, треба да овде простора.
Требало би некако формату Ваш број на овај начин.
Требало би да именује ствари на тај начин.
>> Ја стварно не занима, само по себи, како одлучите да стил своју шифру,
Све док останете доследни.
На пример, ако желите да оставите размак после четири ваш
пре вашег четири петље, управо то сваки пут.
Немојте врста то.
Немој то да радиш друге пута.
Ако желите да задржите Цурли протеза простор на одређени начин,
само увек то тако.
Немојте врста то негдје ту и тамо негде не.
Када смо оцењивање, то је стварно тешко
ако немам појма како ви форматирање свој код,
ствари су уврнуто и ван места.
Ако га држати у складу, то је много лакше за мене као већи
бити у стању да прочита свој код.
Много је лакше за вас као студент да би могли да погледате кроз кода
и види шта није у реду са то сласх зашто је питања.
Стил је једна од најлакших ствари ви можете да урадите да бисте добили пуне резултате.
У суштини, ако само стало, ако плаћате пет минута пажње
да ваш код сваке недеље, требало би бе геттинг пуне стил поена.
>> На крају, имамо нешто што се зове мултипликатор обима.
Сцопе-- Знам да је велика Реч, поготово у овој класи.
Али обим, све то значи да покушавате
су псетс то најбоље што можете.
Ако укључите у три од ваше проблеме четири
и чак и не покушају последњи, вероватно сте
ће изгубити неке бодове на обиму.
>> Чак и ако почнете да проблем, дајте све од себе да хода кроз њу.
Чак и ако то не успе, окрените га у, јер то показује и доказује
да нам да покушавате да сте покушали проблем сет
да најбоље што можете.
И онда можемо вам дати фулл поена за обиму.
>> Обим је такође веома важно када смо говоре о најнижој псет скор кап.
Тако у току семестар, момци имају девет псетс.
И ми заправо ће бити пада најнижи резултат од оних девет,
али само ако имате пуном обиму бодова.
>> Дакле, ако сте окренути у непотпуном псет, на жалост, не можемо да баци тај један,
јер иоур оквиру тачке нису завршени.
Дакле, чак и ако имају страшно недеље где умиреш и ти си болестан
или ваш пас умре, твоја мачка умире, а ти си преоптерећена са домаћим задацима,
само покушају псет.
Да ли је то најбоље што ваше способности.
Ако то не успе, то није битно.
Само га укључите у.
Барем можемо дати сте поена за труд.
>> А за труд у овој класи.
У најмању најнижи резултат пада за труд.
Тако да.
То је прилично је много.
Да ли неко има питања тако далеко од тога како ми разреда у разред?
Или било који од ових?
Било који од ових со фар-- профили, радно време?
Кул.
ОК.
>> Дакле, ово је тема која нема једна стварно воли да прича о томе.
Ја стварно не волим да причам о томе.
Ви не желе заиста да чују да причам о томе.
Али, нажалост, сви смо морамо да разговарамо о томе.
Дејвид провео 20 минута предавање говори о томе.
И то је предмет академског искрености.
>> Тако смо сви овде вероватно написано есеј негде у нашој Иале каријери.
Вероватно смо добили разговор где смо је речено да не плагирати нашу есеј,
јер тај посао није наш.
У информатике, имамо иста врста концепта.
Сви радови који пошаљете, све код који сте написали
требало би да буде код који сте написали.
Зар не би требало да буде код који сте копиран из негде другде.
Зар не би требало да буде код који ти си гуглао и гурнуо у
и ви стварно не знам да ли ради.
Некако имам осећај шта ради, али не и стварно.
Када сте у недоумици, у суштини, то је само будите разумни.
На нашем програму, имамо цео списак ствари
видимо као разуман насупрот није разумно.
>> На пример, разумно је ли и твој пријатељ
расправља који је најбољи начин да иде о логично решавање проблема.
То је прилично разумно.
Оно што не би било разумно је да вас момци су заједно, откуцао исти код,
и окренуо у истом коду.
То није разумно.
Иста ствар, нека врста есеја.
Ако желите да разговарају са својим пријатељем, хеј,
то је оно што желим да пишем о томе.
Ово су кораци желим да се писати о томе, сјајно.
То је дивно.
Молимо вас да сарађују једни с другима.
Ако ви почнете писања исту ствар,
окренути у истом есеју, то је мање у реду.
Дакле, када сте у недоумици, само не то.
>> Овде смо у ЦС50, имамо скрипте да низ за аутоматизацију за тестирање
не само исправност кода, али и јединственост кода.
Дакле, молим вас, немојте нас ставити у позицију од потребе да се односи ваш случај ЕКСЦОММ.
Молим те за све, хајде да чине ово дивно искуство.
Свако учи боље, сви смо срећнији,
и сви смо се подесити до успети у овом курсу.
Нешто што је веома јединствена о овој класи
мислим да свако треба да стварно обратите пажњу на то што имамо
оно што се зове кајање клаузула у нашем програму.
У суштини, року од 72 сата, ако ви верујете да сте урадили нешто
нисте баш сигурни је прикладно, молимо вас да долазе код нас.
Обећавамо вам да у року од 72 сата ћемо средити случај сами
без позивања на виши орган у администрацији.
>> Дакле, ако сте дошли код мене и кажу, Анди, хеј, стварно ми је жао,
али мислим да има пар линија у мојој Код синоћ да сам мало гуглао,
изашли из Стацк Оверфлов, копирати и налепити,
и ја сам стварно, стварно ми је жао о томе, јави ми.
Молим вас, не само пустити да буја и само се надам да ћу га ухватити.
Ми ћемо га ухватити.
Само дођи код мене.
Дозволите ми да знам у року од 72 сата.
Ми ћемо смислити решење.
И ми обећавамо да нећемо односи на универзитетске власти у суштини.
Дакле, то је у вашем најбољем интересу само да будем искрен са свима
укључени у току.
>> ОК.
ОК.
Дакле, сада, брзо пре Ја кренемо даље, да ли ико
има питања у вези логистике о томе како курсевима ћемо покренути,
Како секције иду да бежи, нешто од тога?
ОК.
Да.
>> ПУБЛИКА: [неразумљиво]?
Анди Пенг: Да.
Дакле, куиззес-- колико вас је у понедељак / среда делу?
Колико сте ви у Уторак / четвртак?
У реду, тако да је добар Сплит овде.
Дакле, начин на који водимо то ат Иале је да смо
ће имати два одвојена куиззес-- један за сваку сецтион-- да
ће се узети током часа.
Мислим да је октобар, крајем октобра, тако нешто, као један недељно
квиза.
Да, само долазе на наставу.
На тој понедељак или среда, ћете узети квиз.
На тој уторак или четвртак, ви ћете узети другу квиз.
Али исти материјал ће бити покривени.
Да.
Добро питање.
Да.
>> ПУБЛИКА: Где и ми идите на проверимо наше оцене?
>> Анди Пенг: Да.
Зато ћу слати Е-маил год сваке недеље
када су квизови градед-- или, Жао ми је, када се оцењује псетс.
Псетс обично се у до поднева или петак.
Дакле, обећавам да ћу покушати да их вратимо вама
од подне следећег петак.
>> Кад год сам разред а псет, ја ћу послати од обавештења о разред књиге
који вам говори резултат можете погледати на мрежи.
Дакле, право ове недеље, након што сам завршити оцењивање псетс Прошле недеље је,
ви ћете добити е-маил Обавештење ти,
хеј је ово где си идите да видите своје оцене.
И можете да видите сваки слом твоје оцене.
Можете видети коментаре.
Ох, брзо ствар такође.
Секција коментар у велики Књига је где ћу вероватно
провести већину свог времена оцењивања.
Дакле, једна ствар која је заиста важно када
ви се прегледају Ваше оцене о својим псетс
не само гледа на физичком резултат
али и узимање времена за заиста чита моје коментаре.
>> Често који вам даје повратну информацију како сте решавање проблема.
Ако треба да урадите нешто мало боље,
конструктивна критика је обично најбоље дати у тих коментара делу.
Зато молим те, молим, ја идем да проводите време писања коментаре.
Молим вас, стварно бих ценила ако ви би читао те коментаре.
ОК.
Кул.
>> У реду.
Дакле, ми ћемо да проговори и само разматрање брзо
неки од материјала из недеља нула тако да смо
на правој страници за почевши проблема ове недеље је.
Дакле, док је петља је једна од три типа петље
смо разговарали раније у овој класи.
>> Неко време петља у суштини је написано у синтакси
где је, док је одређеног услова, ово више пута, зар не?
Размислите о томе у овом графику овде.
Идеш да почињу са одређена тачка у вашем коду.
Идеш да уђе у стање лооп ако-- Не знам-- к је мања од један.
>> Ако је то тачно, идеш да изврши тело петље.
А ти ћеш да наставиш да радиш то поново, поново, поново,
изнова и овер-- због чега је то лооп-- док ваше стање постане
лажна.
Дакле, на овај начин, а вхиле петље је један од начина једноставнијих
да напише било какву врсту условом да треба да поновим изнова и изнова и изнова.
Само будите пажљиви кад пишеш било какву врсту петље
да имаш излаз услов као и као упдате Вхатевер Ит
тако да ваш петља не само прегазити и преко бескрајно.
У сваком случају, идеш да желите да се уверите
да мењате неки аспект ваш код или на крају петље
само да се уверите да имате начин од напредује ка стању
да желите да испуни до краја.
Да ли то има смисла свима?
Само не желим да будем ухваћени у овој спирали где
идемо около и около и нема шансе да се пробије петљу.
И сваки петља у суштини има начина да се то уради.
ОК.
>> Друго, многи од вас у вашим Марио псетс
Вероватно је морала да запосли ова врста петље.
То се зове радити док петљи.
Пре свега, може ли ми неко рећи каква је разлика између До
вхиле петље и петље, док је?
Да.
>> ПУБЛИКА: Тхе До вхиле петља ради на први [неразумљиво].
>> Анди Пенг: Да, управо тако.
Дакле, радим док петља увек ради оно је унутар До, унутар заграда
постоји и ради тај услов Пре контроле за до-- је,
да ли то код пре проверу за стање.
А ово је посебно важно за нас овде у овој класи, јер је већина времена
ћемо желети да подстакну корисник за неку врсту улаза.
И онда, у зависности од улазни нам дају,
онда можемо проценити, па уради морамо да их опет навести?
>> Дакле, у Марио, ако корисник вам је дао негативни висине, на пример,
идете на прву линији и све што је унутра.
Онда ћеш да проверите време.
Знате, негативна 1, да ли је то позитиван број?
Ако није, ја идем назад и поновите радимо и понављање
и поновите и поновите док не напокон вам дати број који вам се допада,
да сви могу да запосле у нашој коду.
Прилично је важно за у суштини било који улаз корисника.
Ја могу да вам гарантујем било Време у псет где
молимо вас да унесете свака врста кода, ми смо
Вероватно ће вам дати тест предмет у којем смо
да ти дам нешто лоше што је ће покушати да се пробије свој код.
>> Ако покушамо да вас замолим да улазног ан цео број, можемо само да вам дати стринг
па да видимо како би то средити.
Ако вас молимо да запосли године, можемо вам дати негативан број
да видим како ће то да поднесем.
Само се побрините да ви се тестирају за случајеви у којима не добијете најбоље
улаз, рецимо.
И До вхиле петља је често најбољи
начин да дизајнирате код тако да испуњава ту обима.
ОК.
>> ОК.
Дакле, ово је вероватно комплекс петља из три
да смо гледали до сада.
И чини врло застрашујуће на први поглед.
Али ја вам гарантујем, када вас докучити како се користи за петље,
то је један од најкориснијих ствари, најкориснији алата у вашем арсеналу
за напредовање у овој класи.
>> Тако, на пример, у Сцратцх, имали смо врло једноставну блок
да је управо рекао да поновим ово сигурно пхрасес одређени број пута.
Узгред, САЈ-- То је Сцаз Анди Џејсон.
Ми често знак наше е-маил поруке САЈ.
Ако кажемо САЈ, не буди збуњен.
То је само нас.
>> Дакле, у Сцратцх, били у стању да имамо блок који је рекао, понављам волим САЈ!
10 пута.
Врло једноставно.
Логика иза тога је врло, врло једноставно, зар не?
Желим да прво проћи кроз први време и видим ту, други пут
и видим ту, трећи пут, и тако даље и тако даље, све док не удари до 10.
>> И начин на који бисмо представља да је у Код је само уз помоћ једноставног за петљу.
Дакле, за, идете да се изјасни Ваш променљива овде, у овом случају,
са инт.
Ми ћемо то сам име.
Ми ћемо то иницијализовали на 0.
А заустављање издање је ће ја бити је мања од 10.
И ажурирање ће бити и ++.
>> А у оквиру петље, иде да извршава све док на крају га
погађа крај цондитион-- у којем случај, то ће прекинути петљу.
Ту би требало да буде ствари које вас момци су све врсте раније
и морао је да уради за ваш проблем поставити један.
Да ли неко има било каквих питања у вези за петље сада?
ОК.
Велики.
>> ОК.
Дакле, за оне који имају прочитајте псет спец за ову недељу
знам да ћемо морати да запосли нешто што се зове АСЦИИ и АСЦИИ табела.
И Давид у предавању отишао накратко како рачунари ессентиалли-- све
кодирана у компјутеру у бинарни, у нуле и јединице.
И начин на који рачунари су у стању да сачувате различите вредности поред
да нуле и јединице су кроз мапирање те бројке представљају друге цифре
или суштински други ликови.
>> Дакле, у овом случају, АСЦИИ табле-- све што ради
је мапа знакова, слова или бројева, то.
Дакле датотеке изворног кода у Ваш цомпутер-- види,
хеј, гомила нула и јединица, нула и јединица, нула и јединица.
То је оно што чува у количина меморије вашег рачунара.
>> Али када ми људи желе да комуницира са рачунаром,
се желим-- рећи, на пример, ако желим да велико А,
Идем да треба неки начин причања рачунар, о,
кад куцам велико А, мислим ово заступљеност у бинарном.
>> И тако је начин на који смо то је бацио произвољно ствар која се зове АСЦИИ табеле,
где смо, као људи, као и програмери, пре извесног времена,
произвољно смо одлучили да су да додели ове број
Вредности ових знакова.
>> Дакле, ви можете да гоогле ову онлине.
Мислим да је веза у Вашем псет-- само АСЦИИ карта табела, АСЦИИ
сто.
Само преводи бинарни бројеве у ликовима.
И то ће бити веома корисно за ваше проблеме сет
кад год желите израчунати ништа или ако
желите да прикажете сигуран карактера или целих бројева
или манипулишу одређене знакове.
То ће бити веома важно да сви
знате како да се крећете АСЦИИ табелу.
>> Тако на пример, у великим словима А је представљена од броја 65.
А мала слова а заступа 97.
Дакле, важно је да знате да је Разлика између две вредности
је 32.
Често, ако треба да претворити један до другог, разлика је 32.
И не брините ако сте љубазни збуњена о овоме на први поглед.
Идемо преко како би запошљавају ово у стварном кода.
>> ОК.
Дакле, за оне од вас са лаптоповима од, слободно подигне АСЦИИ табеле,
јер то ће вероватно захтевају да ви референце
шта су ликови.
ОК.
>> Дакле, знајући да сигурно ликови мап одређених бројева,
ако бих покренути само први линија која цоде-- принтф А,
мала слова а, минус Да ли неко велико О
има погодим шта ће бити штампање екрана сада?
>> Дакле, пре свега, шта мала слова а представља?
Који је то број кодирана у АСЦИИ табели.
Молим?
>> ПУБЛИКА: 97?
>> Анди Пенг: 97, супер.
А шта је велика А?
>> ПУБЛИКА: 65.
>> Анди Пенг: Па шта је 97 минус 65?
>> ПУБЛИКА: 32.
Анди Пенг: У реду.
Па шта ви мислите ће се десити када сам улаз који линија кода
у мом компјутеру?
>> ПУБЛИКА: [неразумљиво].
Анди Пенг: Жао ми је, проговорите.
Без бриге.
Ово је врло безбедна окружење, минус камера.
Сви ћемо да-- без бриге.
Само сви ћемо се претварати као то је само нас цхиллинг у овој соби.
Без бриге.
Нема сумње је глуп.
Без одговора је глуп одговор.
Вероватно ћу направити грешке у току мог предавања.
Озбиљно, момци, само га испалите.
Будите сигурни у себе, знаш?
Дакле, шта је то?
Ко је то рекао последњи одговор?
ОК.
Схоут то лепо и јасно.
>> ПУБЛИКА: 32?
>> Анди Пенг: 32.
ОК, хајде да води овај код и видим да ли је то оно што се дешава.
ОК.
Дакле, као што ви можете некако види, типичан запис сам
сместимо колико бисмо запослити било каква врста програма у нашем рачунару.
Ми имамо главну функцију у нашем главном функције.
Ја ћу само да копирате и пасте ову линију кода.
Такође будите пажљиви када ви копирате и налепите код.
Понекад одређене оператори не налепите преко исправно.
У том случају, је минус знак је заправо црта.
И тако рачунар није га покупи.
Тако да сам морао да се вратим и физички Повторете то.
Само будите пажљиви када момци то раде.
>> ОК.
Ми ћемо покренути ово овде.
Тако да ћемо цд у наш Поглавље 2.
Звао сам овај програм асцииматх.
Запамтите, када смо сваки покренути Програм, желимо да је прво саставити
покретањем је кроз наше производње.
И онда ми желимо да заиста покренути Програм радећи дот-сласх.
Тако ћемо ./асцииматх.
>> Добро, идемо.
И видимо 32.
Браво.
Ви заслужујете комад слаткиша.
Слаткиш за вас.
Извините.
У реду.
ОК.
Дакле, можемо да се вратимо на наш пример.
Ах, не.
Ааа.
ОК.
Само ћу да остане тако.
ОК.
Дакле, као ви можете да видите, можемо да урадимо много веома интересантних ствари,
доста врло кул ствари, много врло компликоване ствари које укључују
АСЦИИ знакова и бројева.
Када пређемо на линију пет, То је много да пратите.
Нећемо ићи кроз секције.
Слободно, ако можете, разлог зашто се на папиру
прво на шта треба дешава када унесете такав низ вредности.
На пример, у тим последњим линији, имамо з-- што представља одређени нумбер--
је-- што такође представља неке нумбер-- плус 1 модулос 26
, плус мала слова а.
>> Ако ви наставите да читате кроз њих, те
може видети образац дошао у како смо манипулише код.
Ја врло, врло сугеришу после део свих вас
момци само напред и улаз они све у вашем рачунару
и видимо какве Бројеви излазе
и образложење зашто су то кроз догађа, јер за своје псетс
то ће бити веома важно за вас да разумете
зашто неке ствари се дешавају.
Све ове слајдова ће бити онлине.
Значи нема бриге око покушавајући да физички записујем белешке.
Све је на мрежи.
Ово само по себи део ће бити онлине.
Све моје изворног кода који Трчим ће бити онлине.
Да.
Да ли још увек имате питање?
ПУБЛИКА: Шта је модулос?
Анди Пенг: У реду.
Дакле, по модулу је оператер који ће бити веома важно да псет твоји момци екипе
овде.
Дакле, начин на који оператери у Ц и програмирање рада
да ли имате оно што се зове подела симбол и симбол модул,
који је баш као знак одсто.
>> Дакле, у Ц, када радите цео број подељен цео број са косом цртом,
Ц има тенденцију да смањи са све децималне тачке,
јер цео број хоће претворити у цео број.
Неће да желим да будем дупло са гомилом децимала све после тога.
>> Дакле, ако ја 3 подељено са 2, иде да пресече 0.5 и само вам дати 1.
Дакле, то је нешто да буде врло опрезни када си
прави било какву врсту математике у програмирању, је да бројеви добијате
не може бити бројеве да сте мислили,
због чега је заокруживање у вашем последња псет је толико важно.
>> Модуло вам даје остатак.
Тако на пример, ако јесам 3 модулу 2-- тако 3 посто знак 2--
то би вам дати остатак тога.
Дакле, 3 подељено са 2 је 1,5.
То је 1 остатак 1.
То би вам дати 1, који је остатак тога.
>> Па кад сте се креће кроз АСЦИИ табеле,
модулу ће завршити као нешто што је веома важно,
па ћемо разговарати о томе касније.
>> ОК.
Дакле, нешто што је прилично, прилично ново и прилично јединствен
да смо разговарали ове недеље се концепт онога што је низ.
Дакле арраи је први тип података
да ћемо сусрећу у овој класи.
Сви структура података је је неки произвољан,
буквално ствари као што су структура да ми као програмери створили,
да смо ставили у нашем коду који може садржати и друге делове кода.
>> Дакле, у том смислу, као арраи-- мислите о томе као кабинета датотека,
где ако отворите другачији полице за ваш фајл кабинета,
можете приступити различите ствари.
У знак сећања, низ је само ради иста ствар на рачунару.
Можете имати различите блоцкс-- смо позовите их индицес-- од низа.
То је баш као блок, полица меморије
да смо створили у твом рачунар који можете унети
неке ствари у различитим просторима.
>> Тако је и са низом сте Увек треба да специфи--
морате да одредите проглашење арраи у следећем формату.
Идеш прво одредити врсту података
да желите да креирате од низа.
Ако желим низ целих бројева, Ја ћу ставити инт тамо.
Ако желим низ жице, Ја ћу ставити жице тамо,
име вашег поља, а затим ћеш имати квадратних заграда.
И у средњим заградама, ти си ће имати величину низа.
>> Нешто што је заиста важно имајте на уму приликом креирања низова је
да, једном када створити Арраи, да величина не може да промени.
Дакле, ако знате да сада имате низ величине 10,
знаш да ћу имати 10 ћелија унутар или 10 индекса у овој низа,
и да никад неће да се прошири или умањи
без обзира на све, и да нема Тренутно само 10 блокова простора
издвојила у вашем сећању да можете сачувати до 10 ствари од онога што сте ставили.
>> Дакле, на овај начин, низ тип података, структура података која је низ
је веома разликује од неких других ћемо се покрива касније у овом курсу.
Да.
На пример, ако желите да створити низ величине 3 који
садржане варијабле интегер-- Ох, извините, од температуре--
и температуре, оф Наравно, је цео број.
>> Тако да би се створили инт, који је тип података о томе шта желимо да сачувате.
Ми ћемо назвати ову температуре ради номенклатуре именовања
нешто што смо сви разумели.
И ми ћемо имати квадратних заграда.
И ми желимо три броја.
Тако ћемо ставити три унутра.
>> Нешто што је стварно важно је имати на уму
је да су низови нула индексиране.
Све то значи да вас почнете са индексом од 0,
и си побегао кроз величина низа минус 1.
Тако, на пример овде, има низ величине 3.
То ће бити у стању држати три вредности.
Али бројеве које тхемселвес-- број, низ, тај индекс,
низа, су 0 до 2.
Зато момци, будите стварно пажљиви када идете кроз ваше проблеме постављеним
и стварање било какву врсту низа, јер много времена је то
Заиста, заиста лако заборавити.
Ја заправо немају индекс 3, да сам тренутно само
има индекс 2.
А ако покушате да приступ трећи индекс,
то ће бити оно што је зове се нулл Терминатор.
Неће да стварно постоје у низу.
А рачунар неће свидети.
Дакле, будите опрезни кад ви приступате ствари само
како би се осигурало да се сећате да низови нула-индексиране.
>> ОК.
Дакле, први пример је само Један од начина стварања низ.
Други пример имам испод је само посебан начин
стварања што је исти подаци структура које смо управо уноси.
Дакле, уместо да физички ради кроз и стављање на температури од 0
једнако шта год, температура 1 једнако како год, температуре 2 једнако
шта год, ја заправо могу само директно све стварају у једној линији
у температуре угластим заградама једнак.
>> И обавештење у овом случају, не треба да прецизира колика ти низ је,
јер рачунар ће пролазе кроз и видим да нема
Три елемента у тим заграда.
И то ће знати, у реду, Морам низ величине 3.
Нећеш морати да улаз је на следећи начин.
>> Такође, да, на тај начин.
Да ли неко има питања о томе како направити низове ми
или како је структура низа ради?
Да.
>> ПУБЛИКА: [неразумљиво]?
Анди Пенг: Да, управо тако.
Дакле, ако сте били да прогласи и иницијализујете читав низ је следећи поступак,
који је други начин, можете само да остављате.
И рачунар аутоматски зна да је
треба да рачунају колико елемената су у тим заграда, одвојен
зарезима.
>> Дакле, овде виде 65, 87, 30.
Дакле, компјутер зна, о, има три цели бројеви.
Знам да створи име арраи температура са три елемента у њој.
Добро питање.
Да.
>> ПУБЛИКА: Зар је могуће да се створи низ са различитим типовима података
да се уноси у њега?
На пример, са целих [неразумљиво]?
Анди Пенг: За сврхе ове класе, не сада.
Када креирате податке структурирају као низ,
говориш рачунар, хеј, требам те
да издвоји толико меморије у мом хард диску,
са сваким ћелија бити одређени број битова.
>> Запамтите смо научили у недељу нула толико различити подаци
типови имају различите величине?
Тако на пример, низа је различит износ
простора него цхар, који је другачија количина простора
од целог броја.
И тако, ако не наведете и комбинујете и које врсте варијабли
имате, компјутер ће бити јако збуњена.
И то неће знати колико меморије да ти дам.
Дакле, за сврху права Сада, рачунари могу само
признају једну врсту низа.
Добро питање.
ОК.
>> Дакле наравно, Друго питање имамо
је, добро, сад кад смо организовао Арраи а ми смо ставили све ове ствари
у низу, како смо ће моћи да јој приступе?
Дакле, типична структура која смо увек приступају низу је наша дивна за петљу.
Обећавам момци да ћемо бити види доста овог момка овде.
>> У суштини, кад год желите да унесете вредности у матрици
или желите да им приступите, Тхе Најбољи начин да се то уради је за петљу,
јер у фор петљи, ви знам колико пута сте
хтети да пролазе кроз низ, јер имате стоп издање, зар не?
И сваки пут када покренете кроз, можете приступити
другачији елемент низа.
>> Такође, ово је разлог зашто обично Спремни смо за петље на 0 вриједности,
јер када приступате низова, можете да приступите индекс нула.
И тако је паралела веома лепо.
Ви сте можда желели да писати за инт и једнако 1.
и је мања од или једнака 3.
>> Али то не би ишло баш тако добро овде, јер је вама само
имају елементе 0, 1, и 2.
И тако, ако сте били да почне Ваш сам на елемент 1, 2 и 3,
ћеш завршити руннинг од граница вашег поља,
и лоше ствари ће се десити.
>> Надам се да сте видели прелаз зашто у ранијим часовима
ми смо вас учи момке како покренути и форматирати фор петљу начин на који смо били.
То је зато што, сада имамо прешло у низовима,
можете видети зашто је 0 даје Сама веома лепо у приступу.
>> Дакле, начин на који смо то је то-- сам само штампање овде ради
штампе га.
Али имам чувара места, зарез.
А стварна Приступање део се дешава.
Име низа звала температура.
Дакле, то је температура и и-ти елемент низа.
>> Дакле, као што је за петљу пролази кроз, то ће се крећу од 0.
То ће одштампали 0тх индекс овог низа.
Онда ће штампати од првог елемента.
Онда ће штампати од друге.
А онда ћемо да се пробије.
Да ли је свима јасно о како се то дешава?
Велики.
>> У реду.
Дакле, овде имамо начин да, ако нисмо хтели
на хард-код мене у-- као програмер.
Нисам желео да заиста физички стави у сваком појединачном елементу
овог низа.
Да сам хтео да уместо имају вредности улазне корисника,
Који је најбољи начин да то урадите?
>> Па, овде сам створио ово дивно функција,
у којој могу прогласити низ.
Дакле, Инт сцорес-- хајдемо само да желимо да
низ који је држао разреда свих 18 ученика овде у овом одељку.
Мислим да имамо мало више од 18 деце данас.
Али зарад пример је, хајде да претпоставимо смо имали 18 година.
Ја би се створили низ имена резултате са инт, због бодова, наравно,
су бројеви.
И ја ћу имати 18 у угластим заградама,
јер је то колико студената сам Желим да будем у могућности да сачувате мноштво.
>> И начин на који бих насељавати Низ је да сам
покрените га кроз фор петљу, од Наравно, при чему је 0 моја место 0 индекса.
А онда са 18 бити мој заустављање издање, јер је
18 елемената у низу.
А онда ћу да урадим принтф, Ентер екипа студент-- Иада Иада Иада.
>> Може ли ми неко рећи зашто сам овдје штампање и плус 1, а не?
То је нека врста трика питање, не баш.
Не значи заправо физички утичу покретање кода.
Да.
>> ПУБЛИКА: [неразумљиво] 0?
Анди Пенг: Да, управо тако.
То је мало незгодно да кажем, хеј, ти си место 0 ученик у овој класи.
То је мало чудно.
Тако нас, као људи, стварно не волим да размишљају о томе како компјутери мисле.
Дакле, иако у рачунар, то је чување вредности
у 0-ог индекса, када ми смо људи, не морамо баш
волим да се односи на себе као нула.
Дакле, када сам одштампате да, Идем да одштампате и додати
1 само због јасноће.
Дакле, када сам принт, ја ћу бити могу да штампају студенте од 1 до 18.
Не у ствари утиче вођењем кода
на било који начин, онако како ја штампање.
>> Али будите опрезни када си заправо приступ низ.
Када видите резултате сам, приметити овде сам стварно
приступ место 0 индекса и не 1, плус 0-- или 1, плус 1,
у овом случају, индекс со да је у ствари јасно.
Да ли су сви некако ОК на како се то ради кроз
и са сваким индексом сам стављањем вредност у низу
и стварање низ са 18 бројева да корисник ће улаз?
ОК.
Кул.
>> ОК.
Сада прелазимо на нешто што је прилично релевантно за овај комад постављен као добро.
Знам у предавању, Давид-- Жао ми је, имали сте питање?
>> ПУБЛИКА: Можеш ли га увећати?
>> Анди Пенг: Да, тако сам пробао.
Али ја не знам.
Из неког разлога, ово верзија ПоверПоинт
стварно не ради добро са екрана.
Дакле, ми ћемо само да остане овако.
Све ово ће бити уплоадед мрежи.
Жао ми је, момци.
Да.
ОК.
>> Тако можемо имати везе.
Дакле, ако сте заправо ви нотице-- И знам Роб је због овога у том предавању
да дид-- стринг је заправо само низ карактера,
ако мислите о томе, зар не?
Стринг је име или реченица или реч, зар не?
>> Ако бих да се створи низ по имену Анди-- само моје име, А-Н-Д-ја.
Мислите о томе као само једне променљиве.
Али, у ствари, то је оборио у само низ карактера.
Тако да има карактер меморисаних у низу вредности.
Има карактер н ускладиштен у други индекс и тако даље и тако даље.
>> Тако је у такав начин, заправо имају ову врсту
структуре сет у поставите за наше стрингс.
Дакле, овде, ако бих улаз у Реч "једу" - тако ниска реч једнако
гет стринг.
Да сам ја да унесете реч "јести", да је физички начин на који мој компјутер
смешта ту серију у мом сећању.
>> И ако сам хтео да тече кроз који и принт да оут-- тако за у И
једнака нули, запамтите, у предавању смо покривено нешто што се зове стрлен,
или дужина стринга.
Јер ја заправо не знам колика је низ је
од било ког инпуттинг-- корисника
>> На пример, уноси реч "јести", а ја знам
То је дуга три карактера, зар не?
Тако сам могао ставити у три тамо и све ће бити у реду.
Али ако ваше корисник улазни нешто то је различит број вредности,
ти ћеш моћи да стварно знам да када програмирали код.
>> Дакле, начин на који се носимо тестова тако да имамо нешто
зове стрлен, која је само функција који вам говори колико је стринг.
Дакле, стрлен речи.
Моја реч је јести.
н једнако стрлен од речи.
Може ли ми неко рећи шта је то вредност заправо је тамо?
Шта Н представља праву Сада, у овом примеру, ако сам имао јести?
>> ПУБЛИКА: 3.
>> Анди Пенг: 3, тачно.
Дакле, имамо за инт и једнако нула, н једнако 3, у суштини.
И ја се иде за покретање док је мање од 3и ++.
И то ће суштински иде кроз и учинити исту ствар.
То ће исписати свака вредност и дати вам
Е-А-Т. То је само означава другачији начин да га пишем.
То ће бити од велике помоћи.
Да.
ПУБЛИКА: Шта је предности стављања Н једнака стрлен реч унутар које
за петљу [неразумљиво]?
Анди Пенг: Да.
Дакле, ако сам ја да-- рећи, на пример, ако бих то да урадим, а онда
Па-- ооп-- да у мом коду, то би заправо бити прави као исту ствар.
Међутим, начин на који објашњава Дејвид је током предавања, ако неко од вас момци
сећам, био је, као људи, као програмери,
ми заиста покушати да наш програм Код тако да је наш рачунар има
да раде као минимална могуће, тако да је наш код је врло ефикасан.
>> Дакле, ако сам имао да је, шта ће се десити кроз фор петљу
је да прво бих прогласи променљива по имену сам ће бити 0.
Ја ћу да проверим, ох, Шта је стрлен речи?
Ох, стрлен је 3.
Па сам је мање од три?
Да,јесте.
Ја ћу да идем.
>> А онда други пут вратио око петља, ја ћу то и прираст.
Ја ће бити један.
И ја се иде да провери, о, али оно што је стрлен речи?
Ох, то је три.
Да ли то чини мало расипање, сваки пут када пролазе кроз петљу,
да се провере функције, иако су стрлен речи
никада није мења?
>> Дакле, то је додатна снага за рачунар.
Када почнете да говорите о стварима да су милијарде и милијарде
и милијарде места дуго, замислите рачунар
потребе да физички пролазе кроз и Провери све то сваки пут.
Зато, да би само зарад ефикасности,
имамо тенденцију да само уради ово, јер на тај начин можемо само ми
позива функције једном у почетку,
и да сваки пут је пролази кроз иде
да сачувате вредност 3 тамо, да не
морају да стално проверите сваки пут.
Да.
>> ПУБЛИКА: Извињавам се.
Само [неразумљиво].
Можете ли да инт н једнако стрлен и ставити да изнад спољне стране фор петље
као?
Анди Пенг: Да.
Могао би то, апсолутно.
Разлог због којег смо га овдје је јер је начин на који петље за радове
је да се зове локалну променљиву у смислу
да је све си стварајући унутар петље за
постоји само унутар фор петље.
>> Тако је променљива и једини постоји у тим заградама.
И овде варијабле н такође постоји само у оним заградама.
Дакле, ако сте били да користите стрлен од Реч више пута доле,
Апсолутно најбољи начин да то урадите би био да га прогласи до врха
тако да не морате то да урадим једном.
Да.
ПУБЛИКА: Зашто имам Нова линија након одсто
види ако желите да ставите све писма поред засебно?
>> Анди Пенг: О, хтео сам да принт их на свакој линији.
Није битно.
Да, то је форматирање.
То је добро питање, мада.
Да, ако сам хтео да одштампате све на само једној линији,
Ја не бих имао цртицу у.
ОК.
Свако добро?
ОК.
Кул.
>> Дакле, мислим да сам довољно говорио.
Ред момци да пролазе кроз број и реци ми шта није у реду.
Где је буба?
Дакле, као што видите, ја сам проглашен нев Арраи типа стринг по имену класе.
И ја сам уноси Сам, Џес, и Ким у њега.
И ја покушавам да одштампате сви елементи низа.
Може ли ми неко рећи зашто ово ће ми дати проблема?
Ја ћу вам дам 10 секунди да мислим о томе.
>> ОК.
Да?
>> ПУБЛИКА: Да ли је лева центар једнак 3 или [неразумљиво]?
Анди Пенг: Тако је.
Колико пута је то уствари ће проћи кроз ову петљу?
>> ПУБЛИКА: Четири.
>> Анди Пенг: Управо тако.
То ће кроз четири пута.
То ће трајати до на 0, 1, 2, и 3,
јер је њихова елемент је сам је мањи од или једнака 3.
Неће да престане када је 2.
То ће задржати иде док не удари 3.
И као што знамо, постоје само три елементи у нашој стварној низу.
>> Ако покушате да приступите четврти елемент или индекс 3,
идете негде хит у меморији да не постоји.
То се зове нулта Терминатор.
Ништа неће бити тамо.
Рачунар се не иде бити јако срецна са тобом.
Да.
Да ли неко има питања зашто да се дешава?
То је заједнички простор да се избегне.
Да.
>> ПУБЛИКА: Зар први слиде такође имају низ 2?
Анди Пенг: Не
У суштини, када правите низ,
да носач десно тамо, да нумбер-- све
то говори вам како многи елементи имам.
Није заправо говори ми се индекси ништа.
Дакле, у овом случају, ја знам хоћу да пишу са три места,
са три физичка места за држите све што желим да држим.
Зато је број три је тамо.
Међутим, ако сам желео да заправо приступ,
ако сам хтео да кажем, иф класа носач број, а затим
ћеш стварно ставити физичко индекса тамо.
Да, добро питање.
>> ПУБЛИКА: Тако је физичка Индекс требало да буде [неразумљиво]?
Анди Пенг: Жао ми је.
Можеш ли мало гласније?
>> ПУБЛИКА: Тако је физички индекса [Неразумљиво] сваки од кутије?
[Неразумљиво]?
>> Анди Пенг: Да.
Зато ћу да се вратим на овде.
Размислите о овде.
Имамо низ од величине 3.
Постоје три места, као, физичке плацехолдер овде.
Али они имену 0, 1, и 2.
Дакле, ако сам желео да им приступите, начин на који сам им приступите
је иф у шта хоћу овде.
Морали бисте да одштампате од име тога,
јер тада на рачунару зна, ох, морамо погледати
у овом низу за 0-тог индекса.
Да.
Али величина од тога не мења.
Величина је 3, без обзира како их обележите.
ОК.
Свако добро?
ПУБЛИКА: Па сваки пут кад [неразумљиво]?
Анди Пенг: У реду.
Дакле, у овом случају, не морамо баш улазимо у то сада у току.
Али знам да је стринг-- као И раније рекао, стринг је у суштини
низ знакова.
Дакле, ако сам створити низ жица, некако
има низ низа карактера, зар не?
>> Дакле, у овом случају, јер ја има низ жице,
ако сте били на улаз заиста дуго реч, да и даље заузима само један простор,
јер је то један низ.
Али, ако сте били да мислимо о ликови тог низа,
онда је то заузима много више ликови од било које друге речи
су.
Није веома важно за сада.
Али то је само генерално како се ради.
>> ОК.
Дакле, ово је нешто што ћу ти пуно током семестра.
Морам да се одморим мој глас.
Ви треба да стимулише себе.
Многи од вас вероватно морају одмах да спавам.
Ја уноса рандом проблеме где смо као класа или сте
са партнером поред тебе иду да проведете неколико минута разговарали
како бисмо отићи о решавању или стварање програма као што је овај.
>> Тако сада, желимо да створи програм--
ћемо назвати уппер.ц-- који претвара
мало слово речи на више класе стринг-- велика, жао ми је.
Реч у стрингс, извини, је синоним.
Идем да их промени да значи исту ствар.
>> Да.
Узмите пар минута.
То не мора да буде написан на било ком језику.
Само у Псеудокод кода или логично како би још
ићи око радиш такав проблем.
Да.
>> [Сиде РАЗГОВОР]
>> Такође сам приметио да ви момци можеш-- Некако видим вец програма.
Мислим да мој недостатак водитељ режим је проблем.
Али то је у реду.
>> [Сиде РАЗГОВОР]
Да, молим вас, момци.
Хајде да слаткише.
>> Публика: Да!
>> [Сиде РАЗГОВОР]
Анди Пенг: Такође, да, Ја ћу почети бацати бомбоне
на људе који не одговоре на питања.
Тако да сви треба да одговорите на питања.
Или Претпостављам да људи који Не одговарам на питања.
Да, обрнуто.
>> [Сиде РАЗГОВОР]
ПУБЛИКА: [неразумљиво]
>> Анди Пенг: Да.
Да.
>> [Сиде РАЗГОВОР]
>> У реду, момци.
Узмите, рецимо, још 10 секунди.
>> [Сиде РАЗГОВОР]
>> У реду, момци.
Дакле, пре него што почнемо да покушавамо да заправо физички написати код,
добра навика да се развију да желимо да прве врсте разлога
од логично како би ми то радимо.
Ви желите да се уверите, пред вама физички
почети покушава да кодира у Марио да направите
Проверите да ли имате свој Псеудокод.
То вас води кроз шта вам је потребно да то створе
да, када вас физички Касније напиши свој програм,
ви сте боље да ухватим грешке у коду и такве ствари.
>> Тако ћемо да почнемо по-- на енглеском, у псеудокоду,
да ли неко жели да добије ми генерички објашњење
како бисмо ићи око радиш ово?
Да.
>> ПУБЛИКА: [неразумљиво].
Анди Пенг: Наравно, без бриге.
ПУБЛИКА: Можеш ли га замолити да или питајте неко да стринг 1-- Да, стринг,
и онда--
>> Анди Пенг: Да, тако да је ово добар почетак.
Ја ћу почети да куцате, жао ми је, као што говориш.
Prema tome--
>> ПУБЛИКА: --Тхе мала слова Бројеви су већи, зар не?
Или су мала слова имају велике бројеве?
Анди Пенг: Управо тако.
ПУБЛИКА: Онда смо одузмите 32 из било ког [неразумљиво].
>> Анди Пенг: Одлично.
Тако смо некако имају општи осећај како да раде о овом проблему.
Знајући да смо некако научио физички начин на који Стрингс
се чувају у меморији, Шта радиш већ
знам да ћеш вероватно морају да пишу у коду
како да се креће кроз низ?
>> ПУБЛИКА: За петљу.
Анди Пенг: А за петљу, тачно.
Велики.
Тако смо некако има генерички Псеудокод записана
та врста даје ти наводи о томе како сте
би се кретали о решавању проблема.
Сада када имате ово, хвала да га референце за касније
када покушавате да заправо пишу код.
Тако да можемо да идемо овде.
И ја имам функцију која се зове уппер.ц-- тамо је је- од само празан образац
сада да ви идете на помози ми да схватим како писати
ова линија цоде-- није линију кода.
Биће више линија кода.
>> Приликом покретања било какве од бланк псет, шта је
прва ствар коју треба да се сетите да радим?
>> ПУБЛИКА: [неразумљиво].
>> Анди Пенг: Велики Да.
Укључите.
стдио.х.
Често ово је један од највише еаси грешака људи
учиниће када су писање, јесте да ће
заборави да инцлуде ан важно библиотека им је потребно.
Дакле, ако је радно време, а ви сте као, Не знам зашто мој број не ради.
Можете ли ми рећи зашто не ради?
Ми ћемо рећи да ли сте #инцлуде?
Требало би да #инцлуде.
ОК.
>> Дакле, имамо стандард И / О овде.
Да ли је то само библиотека ћемо морати овде?
Шта друго ћемо да радимо?
Извините.
Неко само вришти?
>> ПУБЛИКА: [неразумљиво].
Анди Пенг: Изволите.
ОК.
И како ја одем о покретању било какве функције, било која врста основне функције
у оквиру нашег програма?
Инт маин.
ОК.
Шта ја ставио унутра?
Шта је прва ствар коју желите да урадите?
Ако желимо да добијем низ од корисника,
шта ћемо имати да радим на овој првој линији?
Жао ми је, момци само осећам слободно говорити и гласно.
Само схоут оут шта год.
>> ПУБЛИКА: Питајте корисник?
Анди Пенг: Како то да урадимо?
Аск-- ћу да откуцате "питати корисника"?
>> ПУБЛИКА: принтф.
>> Анди Пенг: У реду.
Принтф.
Оно што желим да принтф?
>> ПУБЛИКА: Тип у нешто.
>> Анди Пенг: Овако?
Момци, претварати као да сам рачунар.
Физички ми реци сваки корак да морам да укуцате овде?
Радим нешто погрешно?
Да ли сам откуцао нешто?
>> ПУБЛИКА: Треба цитати.
>> Анди Пенг: Морам цитате?
ОК.
>> ПУБЛИКА: А онда нова линија.
Зарез.
Анди Пенг: зарез?
ОК.
Dobro.
>> ПУБЛИКА: А можда навести да ли га желите малим словима?
>> Анди Пенг: Одлично.
Ви ми се смејеш заборављајући да стави тачку и зарез.
Ја вам гарантујем негде у току ове класе,
ћете заборавите да ставите зарез, и то
ће вам требати три сата да схватим зашто ваш број не ради.
То се догодило свима нама.
Вероватно ће се десити са вама.
Улази у добром навику коришћења зарез.
ОК.
>> ПУБЛИКА: Да ли желите да ураде обрнуту косу црту у?
>> Анди Пенг: Наравно.
Да ли желите да урадите косу црту у?
>> ПУБЛИКА: Да.
>> Анди Пенг: Одлично.
ОК.
Шта даље да радим?
>> ПУБЛИКА: Гет стринг.
Анди Пенг: Гет стринг.
Па шта ја тип?
Неко?
>> ПУБЛИКА: Стринг.
>> Анди Пенг: Стринг.
ПУБЛИКА: ГетСтринг.
Анди Пенг: Неко, можете ли ми рећи где
Ова функција ГетСтринг долази из?
>> ПУБЛИКА: стринг.х.
>> Анди Пенг: стринг.х?
Мислиш да је од стринг.х?
>> ПУБЛИКА: [неразумљиво].
>> Анди Пенг: Изволите.
То је из ЦС50.х.
Ако сте увек збуњени о где библиотека фајл је или заглавље датотеке је,
Гоогле буквално стринг.х, и ја ћу ти рећи
шта су све функције који су у стринг.х.
ОК.
>> Дакле, сада када сам створио низ и ја сам питати корисника за њу,
Ја сам га чува у променљивој намед а, оно што ми је потребно сад да радим?
>> ПУБЛИКА: Проверите да ли је у малим словима.
Анди Пенг: Молим?
ПУБЛИКА: Проверите да ли је у малим словима.
Анди Пенг: У реду, хајде да урадимо то.
Kako da uradim to?
Заправо, ради класе сада,
ми ћемо само да Претпостављам да је све
да улаз је већ у малим словима.
Ако желите да проверите, ти би једноставно додајте условну наредбу
да провери, која је трајала преко сваки елемент низа
и проверава да ли је између одређених вредности.
Заборавио сам који је број вриједности мала слова су.
Можете га погледати на АСЦИИ табели.
Али да, то је стварно добра ствар.
Али сада, ми ћемо само да претпоставити да све конце смо улаз
су малим словима.
ОК.
>> Па како бих ја идем о Овај проблем је следеће?
ПУБЛИКА: За петљу.
Анди Пенг: За петљу?
ОК.
Реци ми шта да куцате.
>> ПУБЛИКА: За инт и износи 0.
>> Анди Пенг: У реду.
>> ПУБЛИКА: Ох, у ствари, онда урадите зарез и да н једнако стрлен.
>> Анди Пенг: Па важна ствар мислим да је она приметила овде
да нисмо имали да кажу инт Н други пут смо ово урадили.
Само да знаш да у фор петља кад декларисање,
ви заправо не треба инт о други пут ти променљиву.
Можете рећи н стрлен.
>> ПУБЛИКА: Од с.
>> Анди Пенг: а.
ОК.
>> ПУБЛИКА: Онда зарез.
>> Анди Пенг: Наравно.
>> ПУБЛИКА: А онда [неразумљиво] н.
Онда сам ++.
>> Анди Пенг: Одлично.
У реду.
Шта желимо унутра ово за петље сада?
Запамтите, ако ћемо да трче кроз стринг и покрените кроз низ,
желимо да проверимо ствари у њој.
Шта ћемо требати?
То је врста теском дела сада.
Свако има претпоставку?
>> ОК.
Дакле, прво, како смо чак приступити?
Како да чак и први чек или приступити елемент у низу?
Како ми то радимо?
Шта је нотација користимо за то?
Како се зове овај низ се зове?
То се зове ова, зар не?
>> Запамтите, свака стринг увек низ.
Дакле, ова конзола сам, зар не?
Зато што је тренутна вредност или вредност индекса смо проверу.
И ми ћемо поставити да једнако да-- желимо малим словом вредност, зар не?
Желимо да се окрену да ловер-- Жао ми је, желимо велико.
Желимо да укључите мала слова вредност у велико.
И тако као-- жао ми је, Које је твоје име?
>> ПУБЛИКА: Хајди.
>> Анди Пенг: Молим?
>> ПУБЛИКА: Хајди.
>> Анди Пенг: Хајди.
Као Хајди рекао у почетку, смо вероватно
Требаће до-- смо Вероватно ће морати да одузмемо
32 из било ког цхарц који је, зар не?
Зато што на АСЦИИ табле, разлика
између мало слово и велико слово је 32.
Дакле, када ово радимо, смо вероватно хтети да одузмемо 32, зар не?
>> Тако ћемо да радимо с И.
Да ли сви разумеју зашто сам то урадио?
Јер, управо сада, у нашој низу, Сада проверавамо место 0 индекс, зар не?
И у 0-тог индекса ниска, то је први знак.
И тај лик идемо претпоставити да је мала слова.
Ако желимо да буде велика, ми морају да одузмемо 32 од своје вредности,
јер у нашем АСЦИИ сто, тако смо га добити
на следећи одговарајући вредност која чини велика.
Да ли су сви разумели?
Да.
>> ПУБЛИКА: Да ли можете да не мала слова а минус--
>> Анди Пенг: Да, тако је то заправо веома добра.
Ја ћу се вратити на то питање након радимо.
Да.
И онда ако желим да видим шта се дешава,
Вероватно ћу желите да одштампате, зар не?
Нека ми неко рећи шта Желим да овде штампа.
>> ПУБЛИКА: иф одсто Ц обрнута коса црта [неразумљиво].
То је вредност [неразумљиво] С и.
>> Анди Пенг: С и, извини?
ПУБЛИКА: [неразумљиво].
Анди Пенг: Не знам.
Шта мислиш?
>> ПУБЛИКА: Па, ја би-- Мислим да не бих бринг--
Ја бих га извадите унутра, јер [неразумљиво].
Анди Пенг: Ох, ти би то урадио?
ПУБЛИКА: Да.
Анди Пенг: Хајде да напусти пут је, а ја ћу објаснити зашто касније.
Запамтите, чак и када има држач место,
желите да ставите заграде око ње.
У реду.
Дакле, ово би требало да буде чврста функцију овде.
Хајде да пробамо и да видимо да ли саставља.
Направите горњи.
Uh Oh.
То не изгледа добро.
Зашто се ово дешава?
Као и код било које грешке, желите ићи назад и почети са првим,
јер типично једна грешка узрока много других грешака после тога.
Овде видимо уппер.ц: 18: 25, који говори ја у овом програму под називом уппер.ц,
он лине 18, грешка имплицитно изјављујући библиотека функција стрлен са типом
унассигнед-- бла, не знам шта се дешава након тога.
>> Све што ми говори сада је да се нешто догађа у стрлен.
И рачунар је збуњен, јер То је као, не знам шта је стрлен?
Шта то вероватно рећи ти недостаје?
>> ПУБЛИКА: Недостаје ти [неразумљиво].
>> Анди Пенг: У праву си.
Baš tako.
Дакле, ово је место где је важно да се уверите
да свака функција користите у вашој Код има исправну заглавље
филе за библиотеку, иначе ви ћете добити много грешака
и ваш број неће да знају шта се дешава.
Тако ћемо укључити стринг.х овде.
>> Сада када покушавамо да саставити горњи.
Преведите исправно.
Хајде да води овај програм.
Тако откуцате нешто у мала слова.
Шта ви желите да куцате?
Схоут несто.
У реду, Чарли је управо ушао.
Ми ћемо упишите име Цхарли.
>> Цхарли малим словима.
И надамо се, надамо се, ово је ће викати напоље и испљунути
Цхарли у великим словима.
То, бре!
не сви схвате колико Отишао сам у вези решавања томе?
Начин на који ја могу манипулисати користећи природни бројеви
да реши нешто што Ја желим да радим у жице,
јер ликови и цели бројеви могу може указати у исти начин, јер
од АСЦИИ мапирања.
>> Дакле, да се вратим на поенту, ако хтео да стави овде уместо 32
велика А минус мала слова а као то, то би радио подједнако такође,
јер то је једноставно само Разлика између те две вредности.
Ако желим да ово Поново: Цхарли.
О, не.
Мислим да смо отишли ​​у погрешном правцу, зар не?
>> ПУБЛИКА: [неразумљиво] мала слова а.
>> Анди Пенг: Изволите.
Да.
И од пљује Цхарли.
Зато будите пажљиви када ви одузимањем вредности
да се сетим којих је један већа од друге.
На пример, овде сам заборавио да мала слова а је уствари
већи од великим словима А. Дакле, када сам покушао да им одузмемо на другу страну
око, имам негативан 32.
И мој рачунар је био као, Ја не знам шта је то.
То је вероватно само неки случајни вредност која није баш добро.
И тако се уверите да сте одузимањем у одговарајућу дужину
да пронађете знак који желите.
ОК.
Да ли је неко збуњен о томе како отишао у писању ову функцију?
ОК.
Уствари, већ функција постоји у библиотеци под називом цтипе.х.
Библиотеци се зове цтипе.х.
Ова функција је заправо већ написан за вас.
То се зове у горњи.
>> И тако за потребе ово псет, идеш
да пронађете да ли заиста желите да користите доста функција садржи
у ЦТипе библиотеци.
За горњи, смањити, је горња, је ловер-- то су све функције
да ћете бити у прилици да користе, врло брзо у својој кодом који
ради управо оно што ово ради.
Написали смо како то претворити стринг у велика слова.
Али ово је у ствари код да је неко други написао
и да можете приступити преко другачију функцију.
Да?
>> ПУБЛИКА: Дакле, само копирате је тамо и уради то за свако појединачно слово?
>> Анди Пенг: Да, јер ја не знам брига о вредностима.
Само ми је стало да је разлика међу њима је 32, зар не?
Разлика између мала слова б и великим словима Б такође је 32.
А разлика између ц и великим словима Ц је увек 32.
>> Само морам да бринем о Разлика између та два,
јер су сви слова прате исти образац, зар не?
Ако имам разлику између једног од њих,
Знам шта је разлика измедју свих њих јесте.
Добро питање.
Да.
Свако добро?
ОК.
Ооп.
>> ОК.
Дакле, још један концепт који је ће бити веома корисна као ти
наставити да се развија Ваш код је ова идеја
стварања функције или апстракције.
Тако сада, сви смо узети алгебру.
У алгебре, ви учили да постоји ова дивна ствар зове функцију
машине, где ти ако улаз једна врста броја,
пролази кроз ове дивне функције а од попс другачији излаз, зар не?
У коду, иста ствар се дешава у било којој врсти функције.
>> Тако сам могао физички пишем на мом телу мог кода
главни исказ заправо је без обзира на тело кода ради.
Али изван тога, и ја могу пишу много различитих функција
да многе различите ствари.
На пример, већ смо почели да користе неке од њих.
Принтф-- то је функција која неко други
већ написао да можемо назвати у нашем коду.
Да уппер-- у овом случају, уппер-- је још једна функција
ми смо написали да смо ми могу позвати у нашем коду.
И тако претпостављам зашто чак имамо функције?
Зашто не бисмо га плоп све у истој линији кода?
То га чини лако за свакога.
>> Па, резоновање иза тога је, пре свега, организације.
То је стварно досадан иде кроз нечију код
и једна функција као принтф.
Ако сте стварно знао шта Функција иф подразумијевало да пишем,
то је, као, 1000 линија кода.
>> Ако сваки пут сам хтео да принтф нешто,
Морао сам да пишем 1.000 линија кода, да би било стварно досадан за читање,
jel tako?
Зато смо управо створио овај апстрактни функцију
да ми већ имамо некога друго је написао негде другде.
И сваки пут кад треба да га користите у наш код, само морам да кажем принтф.
И то је у стању да користите функцију неко је написао у нашем коду.
То олакшава организационо за читање кода.
>> Друго, то је поједностављење.
То поједностављује кораке које имамо да да реши наш проблем.
Принтф, функције као принтф, Функције воле да горњи
све су то ствари које нас дозволити да поједноставити наш код доле, тако да је лакше.
И последња ствар је употребљивости.
>> Дакле, чињеница да имамо функција се зове иф
да можемо назвати много различитих пута и дозвољава да буде поново употребљив.
Ако бих да пишем принтф, Само сам једном напишем.
То постоји само у том једном месту.
Да сам хтео да то уради поново, ја бих треба да копирате све то
у мом другу линију кода.
Зато, ако ми стварамо функцију који постоји изван нашег главног,
можемо да позивамо она и поново га кад год
смо тако да је много лакше треба за нас и програми за писање.
>> Дакле, начин на који смо заправо ће писати функција је веома слична, зар не?
То је врста први инстанца у којој ћемо
види неку функцију преузме стил разликује од нашег маин празнину.
У том случају, ако желим да написати функцију која се зове К, зар не?
>> А Инт вредност овде је све ми говори,
шта хоћу ово функционисати да се врате у мене?
Ако желим да цубе цео број, Идем да жели да улаз.
То су параметри.
Идем да улази вредност типа инт.
И ја ћу да се вратим други тип вредности инт.
И овде, вама као видим, све што радим
је Цубинг год мој улаз је као мој излаз и да га врате.
>> Дакле, све ова функција ради се узима неку врсту цео број.
То је само по себи два пута умножава тако да се кубов на снази.
А онда се враћа шта год да је излаз.
Дакле, у овом случају, то је две линије Код који смо морали да пишу екстра.
Али, ако желимо да позове Након тога више пута,
то је много лакше да куцате да је један линија овде да је у коцки од
Морам да идем кроз више пута.
>> Дакле, начин на који у суштини било форматирање за било какве функције
ће постојати је као овде.
Дакле, имамо име функције.
У овом случају, то се зове коцка.
И ми реци коцку сљедећих разлога то је лако запамтити.
Можете име је квадрат и може заправо бити на куб.
Није битно.
Само име које сте доделите функцију.
>> Ово овде, инт је Тип параметра вам је потребна.
Дакле, шта ту функцију потребно како би деловала?
Па, потребно је улаз.
Назвао сам га улаз.
Можете га именовати шта год хоћеш.
Али морам нешто типа инт.
То ће заиста погубити оно што је унутар овде,
тело функције.
И онда је повратни тип овде, ово инт--
све што ми говори се да је ова функција
ће да се врати са мном инт.
Тако да ће се у инт и то ће вас вратити инт.
Да ли сви разумеју како форматирање ове врсте радова?
Кул.
>> ОК.
Дакле, немојте се забринути ако ово изгледа мало апстрактно сада.
То је нешто што ћемо разговарати о томе.
Ми ћемо ронити у дубље касније у току.
Начин на који свака врста виши ниво Апстракција ове ствари раде
је да се у меморији, рачунар, све
се чува у овој врсти димњака, да тако кажем.
>> Дакле, горе на врху.
Ја не знам да ли момци могу видети тако добро.
Ја ћу покушати да зумира.
Овде на врху, ми имати психицку текст
шта је рачунар интерпретинг-- све нуле и јединице које
постоје у нашем рачунару.
И онда имамо инитиализед података и неиницијализованој података,
оно што ми зовемо глобалне променљиве.
Тако варијабли које постоје у свим програмима
и преко вашег целокупног, у суштини, код.
Без бриге, ако сте ви момци врста нејасно о овоме.
То није битно сада.
>> И онда имамо оно што је назива гомила наслагане једна на другу.
Размислите о стека буквално као баш као и гомилу ствари,
гомила другачији ствари гурају на врх
једни од других да чувате разних варијабле и синтакса у оквиру кода.
А онда овде на самом дну, имамо променљиве окружења
онога што се у извршавању само твој мали линија кода.
>> И ми ћемо само то зоом у на стварном стацк део.
Дакле овде, да смо то зоом у само на овом подручју стека,
ово је оно што изгледа.
И ово је заправо веома важно када сте причали функцијама,
јер обавештење да је меморије рачунара
је чување варијабле и функције
и параметри и ваше функција и ваши главни варијабле
на различитим местима.
>> Тако сада, главни је стварни фунцтион
да си извршава у коду.
Ви сте њени параметри чувају овде и њене локалне променљиве чувају овде.
Локална променљива само значи било променљива да постоје само у тој функцији.
И поврх тога, имате ово посебна функција се зове коцка.
Имате то параметри као и оних мештана.
>> А разлог можете погледајте овде је оно што
се дешава када коцка води на вредност од свог главног функције
јесте да заправо копира да преко.
Дакле, ако сам желео да коцке 2 и повратак 8, која 2
заправо уноси као параметар и то је
копира наопако, тако да имате да постојећи на два различита места у меморији.
И морате бити врло опрезни на сећања која један од оних
ви заправо манипулише.
А пример онога што се догодило то би било веома, веома лоша
постоји овде.
>> Дакле овде, имам, у теорији, програм овде, главни функција
да сам проглашење инт к једнако 1.
Ја проглашавајући још инт и износи 2.
И онда сам га води кроз ову функцију
зове замена, где претпостављам да то је замене две вредности.
А онда ћу принт их, зар не?
То је оно што ја желим је овај програм да уради.
>> Дакле, хајде да сиђе и да погледам.
Дакле, ако сам стварно пише другачије функција, као што видите,
имамо овде наш главни функцију.
И онда имамо своје Друга функција овде.
Воид свап.
Празнина само значи да је неће ништа да се врате.
Име функција је зове свап, и то је
да улазне две варијабле, инт а и инт б, из вашег [неразумљиво] функцији.
>> У суштини овде, ми смо пролази к и и у ову функцију.
А ако бисмо створити ово-- тако желимо
да створи привремену вредност, зар не?
Ми ћемо доделити да на а.
А онда ће сада једнаке б.
И Б ће се вратити где је температура вредност била,
што је, зато што када желите да мењате ствари,
не можеш баш као замене их.
>> Мораш да одржиш једно оут овде тако да памти
шта је то, јер када ви мењате један, заборави
шта је оригинална вредност је, зар не?
Дакле, у теорији, овај програм треба да ради, зар не?
Да сам хтео да мењате два, требало би да замени.
Па хајде да пробамо и да видимо да ли ради.
>> Дакле, као ви можете видети к је некада 1 и и је некада био 2.
А ако га одштампати, к је још увек 1, а и је 2.
Хм, овај програм не чини се да ради на начин на који желим да ради.
Да ли неко жели да преузме пуцао на Претпостављам зашто се ово дешава?
То има везе са начином да различите ствари су
складиште на различитим местима у меморији.
>> ОК.
Дакле, ви не морате да бринете превише о томе сада.
Али знам да је локална коцка варијабле биле а и б,
јер овде у нашој функцији, ми смо прогласили А и Б
као варијабле које постоје у коцки, да функција.
Али као што можете видети, параметре који то је узимајући у су се складишти овде.
Али ми нисмо били у ствари враћа ништа.
Нисмо били у ствари мењају к и и.
Само су се мењали а и б.
>> Ми смо копирали к и и у нешто што се зове а и б.
Али ми никада није манипулисати Кс и И сами.
Момци видите како се то дешава?
Да ли је то једноставно смо га копирао преко, али нисмо заправо води
колосек где су били у меморији.
>> И сада се рачунар гледа, Ох, ја сам
покренути ову ствар ово дивно функција.
Али к и и су увек Кс и И.
Ништа се није догодило да их због чињенице
да ових параметара и локалне променљиве
се чувају у другачији поставите у меморији.
И ово је вишег нивоа Концепт да ћемо
почети видети касније у току.
Али само знам да је ово проблем који може да се деси
и да ћемо смислити начине како да ово средити касније у току.
ОК.
У реду.
Дакле, последњи концепт смо стварно да покрије
то ће бити корисно за псет ове недеље
су оно што се зове командне линије аргументи.
Дакле, Роб у свом предавању прошли врста укратко о томе како ови раду.
У суштини знају да кад пишеш
као основну функцију, када смо написао функције пре него што у прошлости,
имали смо инт маин празнину.
А разлог зашто смо тамо имали празнина било зато што наши програми нису
треба да улазних вредности да ради, зар не?
Када сам водио Марио, нисам потребна да заиста само укуцајте у нечему
када сам водио Марио.
Могао бих навести корисника касније.
Али то неће увек бити случај.
>> На пример, у овом Проблем недеље поставља,
ћеш бити затражено да у додатак ради свој програм,
ћеш желети да улаз неке ствари у право као и ти
покренути свој програм.
Дакле, начин на који смо то се зове командна линија аргумент који
је као аргумент можете унети директно
као што покушавате да покренете програм.
>> Дакле, нотација за ово, је прилично сложен изгледа,
али то заиста није тако тешко. Дакле, Инт маин--
То је само твоја главна функција.
У аргц! Запета струна аргв заградама.
Дакле, све што је рекао је да је ово Инт аргц-- све што говори вас
је да они представљају број аргументи рачунар треба очекивати.
>> Дакле, једна ствар која је стварно важно пратити
је физички име вашег програма рачуна се као једна од тих аргумената.
Дакле, ако сам желео да имам програм рун плус један додатни командну линију
Аргумент, ја сам уствари ће имати два.
Аргц заправо ће бити два.
А онда низ аргв брацкет-- све што ради,
то ме је даје низ стрингс то
да само приказ и чувате оно све те аргументе командне линије су.
>> Тако на пример, ако сам желео да имам ово Програм, ./цопи инфиле оутфиле, зар не?
То је само типичан команда за Линук.
Шта је заправо аргц?
Колико командне линије аргументи постоје ствари у овоме?
Све ово ради је направити копију инфиле назива једној датотеци
па их копира у неки други фајл, зар не?
То је све ово ради.
Као што можете видети, ја то радим на једној линији без заправо потребе програма.
>> Шта је наша аргц у овом случају?
Колико аргументи имамо?
ПУБЛИКА: Три?
Анди Пенг: Имамо три, тачно.
Тако да је врло интуитиван за Само мислим да је то само
инфиле и оутфиле.
Али знам да је физички име од Програм бежиш броји као један.
Дакле, у овом случају, аргц је заправо три.
Како би било, шта је аргв 0?
Запамтите, све од командне линије аргументи
су чувани у низу низова.
Дакле, ако покушам да јој приступе, оно би аргв носач 0 ми дати?
>> ПУБЛИКА: [неразумљиво].
Анди Пенг: Управо тако.
То би ми дај дот сласх копију, јер је то
место 0 елемент, Први елемент моје низа.
Шта је аргв 1?
>> ПУБЛИКА: инфиле.
Анди Пенг: инфиле, тачно.
Шта је аргв 2?
ПУБЛИКА: оутфиле.
Анди Пенг: оутфиле.
Ово је мало зезнуто сада.
Шта ви мислите аргв 3 биће ми даје
ако сам покушао да одштампате да се?
>> ПУБЛИКА: [неразумљиво]?
>> Анди Пенг: Да ли сте имали руку?
Да.
>> ПУБЛИКА: Алтернатива.
>> Анди Пенг: Управо тако.
Дакле, запамтите у предавању које смо имати на крају трке нечега
назива нула Терминатор?
Ми ћемо ући у ово исто даље у класи.
Али знам да је у нотацији, начин ваш рачунар
зна да је то крај од низа то је то
ставља нешто што се зове нула Терминатор или цртица нула.
>> Дакле, ако покушате да приступите аргв 3, ћеш да достигне ову цртицу 0.
Ово је још више трик питање.
Шта је аргв 4?
Дакле, ово је прошлост нула Терминатор, поред граница наше низа.
Шта мислите да ће се десити када покушамо да то урадите?
>> ПУБЛИКА: [неразумљиво]?
Анди Пенг: Молим?
Рецимо да мало гласније?
>> ПУБЛИКА: [неразумљиво].
Анди Пенг: Да.
То је име од Подручје ћете највероватније добити.
Али знам да аргв 4-- који вам омогућава да приступите
плацес ин рачунара Меморија вас да заиста
не треба да буде дирљиво, јер је сада знате шта је аргв.
Ви знате да је то низ величине 3 да има дот копирање, инфиле и оутфиле.
>> Ако покушате да иде тако далеко даље од тога да си поред нулл терминатор,
рачунар има вероватно чува нешто у аргв 4.
И стварно не би требало да буде дозвољен приступ у аргв 4,
јер имате датотеку кабинет и ти си само
дозвољен приступ тим три полице.
Али ако покушате да се постигне далеко изван полица где вам је дозвољено,
ти ћеш почети петљају са друге ствари у меморији рачунара.
То ће бити јако, јако лоше.
Дакле, само знам да.
Будите веома пажљиви да вас не само случајно почне
приступа елемената у низу која нису били у оно што је желео да створи.
Да.
>> ОК.
Тако ћемо да урадимо други терминала пример овде.
ОК.
Дакле, Роб брзо у предавању Пре неки дан је
кроз овај пример, тамо где је Имао маин инт аргц низ аргв
заграде, што ми говори да сам ће имати аргументе командне линије.
>> Он је, ако аргц једнако једнако 2-- запамтите,
једнако равноправни значи поређење.
Ако је једнак 2, онда сам łтампања здраво,
без обзира први елемент низа јесте.
Друго, принт, здраво свет.
Шта ће то догодити у суштини?
Може ли неко да објасните у Енглески шта овај програм ради?
Да.
>> ПУБЛИКА: Ако неко откуцао у команди и рекао им име и презиме,
то неће само одштампати Први и рећи, здраво,
како год да име је.
>> Анди Пенг: ОК, хајде да пробамо.
Тако на пример, ако су да Овај фајл се здраво здраво да--
да-- шта хоћеш да улаз?
>> ПУБЛИКА: Име и презиме.
>> Анди Пенг: Име и презиме?
Спацес?
>> ПУБЛИКА: Да.
>> Анди Пенг: Може ли неко реци ми сада, шта је аргц?
Само тамо?
Упс, извини.
Дозволите ми да се вратим.
Колико командне линије аргументи су- ви не видим.
Али ја ћу покушати да зумира.
Покушавам.
Да, има три, зар не?
То је тачка сласх здраво, то је Анди, и то је Пенг.
>> Па шта ви мислите ово Програм ће се одштампа?
О.
Ох, извините.
Погрешно име.
То је штампање, здраво свет.
Да ли неко жели да објасни Зато што се дешава?
Да?
>> ПУБЛИКА: [неразумљиво].
Анди Пенг: Управо тако.
Дакле, овде су условна је, ако аргц једнака једнака 2.
Тако само у случају да нема Две командне линије аргументи.
Онда ћу да одштампате, здраво, шта год да је.
Али друго, ја ћу принт само, Хелло ворлд.
Дакле, нема неко жели да ми дају примјер
како бих могао да се заиста гет ит штампање вредност аргв 1?
>> Шта бих ја морао да улаз овде?
Само једна ствар, зар не?
Зато што је тачка здраво већ рачуна као први аргумент.
Имам само један.
Тако дот здраво ако радим само Анди.
Здраво, Енди.
Да ли сви разумеју Зато што се дешава?
Да.
>> ПУБЛИКА: Дакле, простор између команда лине-- је то [неразумљиво]?
Анди Пенг: Не
Дакле, простора у командној линији Аргумент к, да кажем рачунар
да је ово почетак новог низа.
Дакле, низ аргв то овде- продавнице све ваше команде линије аргумената
у стрингс.
И тако простор у командној линији аргумент-- све што ради је да вам кажем,
то је на крају једног стринга и време је да пређемо на другу.
>> Да.
Ово је врло важно за Ваш псет, јер си
ће бити тестирања ових.
Дакле, да ли неко има неких питања о овоме?
OK kul.
Да?
>> ПУБЛИКА: Дакле, ти би разлог уместо пут интегер аргумент Цалц
од [неразумљиво] би било када желите да куцате додатне информације
[Неразумљиво]?
>> Анди Пенг: Да, управо тако.
Неки програми ће захтевати за унос командна линија аргумент
да пролази унутра и који користи то.
Да.
ПУБЛИКА: Па шта ако [неразумљиво]?
>> Анди Пенг: Па, шта ја имам да се промене у свом програму?
>> ПУБЛИКА: Само 3.
>> Анди Пенг: Зашто је то догађа, шта мислиш?
>> ПУБЛИКА: Зато што [неразумљиво].
>> ПУБЛИКА: Мораш да промените га на 2 [неразумљиво].
>> ПУБЛИКА: 1 и 2.
Анди Пенг: 1 и 2, тачно.
Дакле, у овом случају, вероватно би Желим да имам две иф статементс--
онај који штампани аргв 1 и онај који одштампана аргв 2.
Ево.
Ја стварно могу то да урадим веома брзо.
Ето га.
О.
Није баш оно што сте желели.
Али ако ви момци зезају са форматирање, она ће изаћи.
Да.
Кул.
Знам да смо мало кратки на време.
Али само ћу брзо провести Пар минута пролазе кроз хелпфул--
ПУБЛИКА: Имате два минута.
Анди Пенг: Имам два минута?
Хвала вам.
Неки брзе псет савета.
Дакле, за ову псет, препоручујем, Као што сам рекао, сви читати спец.
Бићете писање три програмс-- један зове инитиалс.ц, једна се зове цаесар.ц,
једна се зове вигенере.ц.
Неке важне савете који момци заиста желе
треба имати на минд-- тако постоји ова функција
звала атои-- како ја волим да кажем, а троис.
Нејасно ако је то стварно како ти кажеш.
Али све то ради, то је унос.
Она претвара стринг на инт.
Дакле, представља АСЦИИ то и цео број.
То је само претварање АСЦИИ Вредности се целим вредности.
Запамтите аргв, низ који чува све ваше команде линију аргументс--
да их све чува као струне.
И тако, ако желите да будете у стању да има један од њих постају цео број,
ћеш имати користити овде ову вредност.
>> Модуло, као што смо покривени раније у класи данас,
омогућава вам да имате Остатак год имате.
Дакле, ако заиста имамо стварно велики бројеви у Цезара,
шта ако имамо крај од низа Вигенере?
Како ћеш моћи да се то заврши око?
Ако сам погодио з и желим да се вратимо на,
како ћу добити то врап ароунд?
Вероватно желите да користите модулу тамо негде.
>> Друго, претражујете око Ваша библиотека. цтипе.х.
То је нова библиотека имамо.
Наћи ћете пуно стварно, стварно корисно фунцтионс-- исуппер, исловер,
тоуппер, толовер, исалпха, и тако даље.
Све функције које ће бити врло корисно када покушавате да схватите,
је тај лик мало слово?
Како да претворити ово стринг на великим словима?
Све ове ствари ће бити веома, врло корисно за ваше псет.
ОК.
>> Радно време вечерас су у 8:00 11:00 у учионици ТЕАЛ сутра
као и среду и четвртак увече.
Радно време у добрима.
Високо вам предлажемо момци све почнемо одмах,
зато што не желиш да будеш да Клинац који у четвртак увече има проблеме
слања псет и као, не знам шта да радим.
Почео сам, сам завршио, поднео сам.
Покушајте да себи дају мало простора, јер у проблеми код увек јављају.
Ви желите да се уверите да се предате
пуно времена моћи да заврше псетс.
Кул.
Ја ћу висити овде.
>> ПУБЛИКА: Да ли је ово већ на мрежи?
Анди Пенг: Не знам да ли је већ на мрежи, али то ће бити.
Ја ћу висити овде ако ико је већ било каквих питања.
Хвала што сте дошли.