>> [Музика свира]
>> Давид Ј Малан: У реду, добродошли назад у ЦС50.
Ово је почетак две недеље.
Реч од једног од наших пријатељи на кампусу -
Ако сте заинтересовани, евентуално, било сада или у неком будућем периоду
још, још једном удобан, настава средњих школа мало
нешто у вези информатике, до главе да те УРЛ адресе.
Они су посебно потребна у овом тренутку од наставници, нарочито ако имате
имао неке излагање информатике.
>> Дакле, подсетити да последњи пут, увели смо неколико типови података у Ц, и
можда сте почели да се ваш прљаве руке са овим до сада
у проблему један сет.
И ми смо имали знак.
Тако нешто у техничком смислу, што је знак као што то данас знамо?
>> Тако да је лик, али хајде да Тачније сада.
Шта се подразумева под карактером Чар или појединац?
Не-нумерички карактер -
па не мора да значи.
Испоставило се да је чак и бројеве, чак и интерпункције и слова
представљени са овим подацима тип познат као знак.
Дакле, то није нужно абецедно.
Да?
>> Тако да је АСЦИИ знак.
Дакле, ако помислим на недељу нула, када се имали смо бајт волонтера
доћи до било и држите руке горе или не све, они су представљали бита.
Међутим, колективно као група од осам, они су представљали бајт.
И ми увео појам АСЦИИ на том предавању, које је једноставно
мапирање између бројева и слова.
И АСЦИИ користи, као и они људи ило, осам битова
да представља карактер.
>> Па према томе, ако је осам битова може свако преузме једну од две вредности -
нула или један -
То значи да су две могућности за ове особе -
нула или један -
два за ове особе, два за овај лице, два за ово.
Дакле, укупно два пута два пута два пута два пута два -
па два осми укупно.
Тако да је укупан број карактера 256 могуће да можете
представљају са осам битова.
>> Сада, они од вас који говоре Азијски језици можда знају да постоји више
ликови у свету него само Као и БС и ЦС и ДС.
И заиста, АСЦИИ није довољна за много језика у свету.
Али више о томе други пут.
За сада је познато да у Ц ако желите да представља писмо, комад
интерпункција, или само нешто карактер у природи, користимо знак.
И то је један бајт или осам бита.
>> Како би цео број?
Па, инт је цео број.
Колико бита, ако се сећате, је обично цео број?
Свако опозив?
Дакле, обично је 32.
То заправо зависи од рачунара да користите.
Али у апарату, и у много рачунари, то је 32 бита или четири
бајтова - осам пута четири.
И интс се само користи за складиштење бројеви, било негативне,
позитиван, или нула.
>> И ако имате 32 бита, а ви само брига о позитивним бројевима, може
ико Баллпарк колико је могуће цели бројеви се представљају од рачунара
нула на горе?
Дакле, то би било два до 32, који је око четири милијарде.
Дакле, ове две силе ће бити понављају теме у рачунарству.
Као што ћемо видети, они су прилично згодан да ради са, чак и ако то није сасвим
лако да урадите математику у нечијем глави.
>> Дакле, ми ћемо рећи око четири милијарде.
Сада, дуго дуго -
можете некако претпостављам.
То је више него цео број.
Колико бита?
Дакле, 64 бита или осам бајтова.
То само значи да можете чак представљати већи број, већи позитиван или
већи негативни бројеви.
>> А шта лебди?
То је флоатинг поинт вредност од 32 бита.
Ово је само реалан број, нешто са децималном тачком.
Али, ако уместо тога треба више места иза децималне тачке, или желите да
представљају већи број са неким фракција после тога, можете да користите
двоструко, што је 64 бита.
>> Али ту је занимљиво Такеаваи овде.
Дакле, ако интс су ограничени и 32 бита чак и дуго Лонгс су ограничени 64
битова, таква врста намеће питање, шта ако заиста желите да пребројите
више од 4 милијарде евра за цео број?
Па, ви само користите дуго дуго.
Али шта ако желите да рачунају више од два до 64., узми или остави?
>> Сада, то је огроман број.
Али на крају, ви у ствари можда брига за ове врсте вредности,
поготово ако користите базу података и почиње да прикупља пуно и пуно
и много података и додељивања јединствене Бројеви на сваком делу те податке.
Дакле, ми некако имамо проблем.
И слично, код којих је тачка вредности - плута или удвостручује -
Ако имате само коначан број бита, колико је укупно бројева можеш
вероватно представља?
>> Па, то је мање јасно када се укључују децимални зарез.
Али, то је сигурно коначан.
Ако имате коначан број битова, коначан број људи, коначан
број сијалица, сигурно можете да само представља коначан број
покретном зарезу.
Али колико реалних бројева су њихова у свету?
Постоји бесконачна.
Дакле, то је мало проблем, јер смо немају бесконачну количину
РАМ меморија или унутар наших рачунара.
Дакле, неке изазовне ствари може да се деси.
>> Дакле, идемо напред и покушајте изразити ово овде.
Дозволите ми да иде напред и отвори гедит.
Ја ћу ићи напред и чување датотеке под називом "флоатс0.ц" само да буде
у складу са примером који је доступни на Интернету, ако желите.
И ја ћу ићи напред и дефинишу се на следећи начин -
Ја ћу ићи напред и рећи, инт Главни празнина, као што често раде.
>> А онда у овом програму, ја ћу да прогласи себе пловак, па 32-битни
променљива зове Ф, произвољно.
А онда ћу да складишти у њему Не знам, десетину, па 0.1.
Зато ћу да изразим да је као један подељено са 10, што је савршено
легитимно у Ц
>> А онда у другом реду, ја једноставно Желим да одштампате ту вредност.
Тако се сећате да можемо користити принтф познато.
Ми не желимо да користите% сам за инт.
Желимо да користе Ф% за пловак.
А онда ћу да урадим обрнуту косу црту н, затвори цитат, зарез, Ф, тачка и зарез.
>> Дакле, овде је мој програм.
Већ постоји један буг.
Да ли је неко за кога је то кликнули већ жели да укаже барем
једна грешка сам направио?
Да?
Да.
Заборавио сам "# инцлуде" у врх, они су симптом који, ако покушам да
саставити ово ће бити да компајлер ће да виче на мене,
рекавши недефинисаног симбол или нешто у том смислу.
Он не разуме нешто принтф свиђа.
>> Зато ћу да урадим "# инцлуде ", Сачувајте датотеку.
А сада је у бољој форми.
Али, ја ћу такође да истакнемо се један нови детаљ данас.
Поред прецизирајући место као носиоци% Ф% и% с, можете
понекад утичу на понашање тог чувара места.
На пример, у случају плутајући вредност бода, ако желим
да прикаже једно децимално место након периода, ја заправо могу да урадим 0.1Ф.
Дакле, другим речима, сам одвоји и ф знак за проценат са 0,1, само
принтф кажем, можда ћете имати цео гомила бројева после децимала
поен за мене.
Али ја само желим да видим једног од њих.
>> Дакле, ја ћу да наставим одмах и уштедите Овај програм, идите у мој терминал
прозор, а ја ћу да наставим и тип чине 0 плутају, унесите.
Видим да је помало шифровану линију која ће почети да има смисла, као што смо
задиркују га поред ове и следеће.
Сада ћу да наставим нулу и покренути пловак.
И, проклетство.
>> Дакле, ту је још једна буба овде из неког разлога.
Прилично сам сигуран да је једна десетина, или један подељено са 10, није 0.0.
Можда ја само не гледа на довољно цифара.
Па зашто не кажем два .2 да види два децимале, уместо само једног.
Дозволите ми да се вратим у прозору терминала Овде се и ударио неколико пута у
видим своју историју.
Да би поново плутају нула, и онда поново.
А сада ући.
>> И сада сам сигуран да је ово погрешно.
И ја могао да урадим три и четири, и ја сам Вероватно ће да виде нуле.
Па где је грешка?
Један подељено са 10 би требало да буде 0,1.
Неко жели да узме нож, на шта основно питање је?
Да?
Они су оба целих бројева.
Па шта?
Дакле, са једним подељено са 10, то је шта ја радим у аритметици.
А ја 0.1.
>> Да.
И тако је то заиста то питање.
Када се цео број у компјутер а ви га поделите други цео број,
рачунар подразумевано ће се Претпостављам да желите цео број.
Проблем иако, наравно, није 0.1 да није цео број.
То је прави број.
И шта рачунар ради по подразумевана је она баци само
све после децималног зареза.
То не заокружују доле или горе по себи.
Он баци само све после децималног зареза.
И сад то има смисла.
Јер сада смо јасно смо отишао са нулом.
>> Али, чекај мало.
Не видим неку инт нулу.
Ја у ствари видим 0.00.
Па како да се помире ово сад?
Ако један подељено са 10 нула, али сам види 0.00, где се све
конвертовати у прави број?
Да.
Тачно.
>> Дакле, овде у складу пет, када сам складиштење да 0.1, што је тада
скраћен на нулу, унутар једне флоат, то је ефикасно одговара
складиштење га не као цео број, али, заиста, као флоат.
Осим тога, ја сам онда принтф користи за експлицитно принт тај број до два
децимале иако је не може заправо бити.
>> Дакле, ова врста безвезе, зар не?
Очигледно не можете да урадите математику, бар на овом нивоу
прецизност, у рачунару.
Али сигурно постоји решење.
Који је најједноставнији смо можда могли поправити уради, чак и само интуитивно овде да
реши ово?
Да?
Укључите целих бројева у -
Да.
Чак и ако нисам сасвим сигуран шта је стварно дешава, ако се
у основи има везе са овим и што интс, па, зашто не бих
да би 10.0, тако да је ово 1.0, поново сачувате датотеку.
Дозволите ми да се вратим доле дно и рецомпиле.
Дозволите ми сада репризу.
И тамо -
сад, ја имам свој десети представљени као 0,10.
>> У реду.
Дакле, то није лоше.
И дозволите ми да истакнем један други начин Могли смо то решили.
Дозволите ми да у ствари врати у прошлост када смо имали као један
пре десети тренутак.
И дозволите ми да иде напред и поново сачувате овај фајл као друго име фајла, само да
имају мало контролни пункт.
Дакле, то је једна верзија.
А сада дозволите ми да иде напред и урадите још једну верзију.
Позваћемо ову верзију два нула индексиран.
>> И ја ћу се уместо тога ово - знаш шта?
Додавање тачку нултог ради у овом случају.
Али, претпоставимо да је једна променљива.
10 Требало је променљива.
Другим речима, претпостављам да не могу само тешко-код .0 на крају
овог аритметичких израза.
Па, ја заправо могу да урадим нешто у загради се зове ливење.
Ја могу да се баци цео 10 до пловка, и ја могу да баци цео један до
флоат, као добро.
Онда математика која ће да се уради ефективно 1.0 подели са 10,0,
резултат који иде у Ф као раније.
Дакле, ако сам ово као компајлирате направити плута 2, и сада плута 2, добијем исти
одговорити, као добро.
>> Дакле, ово је прилично измишљен пример, да се реши овај проблем
увођењем кастинг.
Али у целини, кастинг ће бити моћна ствар, посебно за
Проблем сет два у року од недељу дана, када желите да конвертујете један тип података за
још један који на крају дана су представљени на исти начин.
На крају дана, сваки што смо говорили до сада је
само интс испод хаубе.
Или ако је то сувише ниског нивоа за ви, они су само бројеви
испод хаубе.
Чак карактера, опет, сећате из недеље нуле, су бројеви
испод хаубе.
>> Што ће рећи, може се конвертовати различите врсте бројева уколико
они су само бита.
Можемо претворити између бројева и писма, ако су само
бита, и обратно.
И ливење на овај начин је механизам у програмима који вам омогућава да на силу
променити један тип података у други.
Нажалост, то није тако једноставан као што можда сам волео.
>> Ја ћу да се вратим на пловак 1, који је једноставнији, више
једноставно један са .0 Додати на свакој.
И баш као кратак подсетник, дозволите ми да иде напред и компајлирате
ова, плута 2 -
Жао ми је, ово је направити плута 1.
А сада хајде да плута 1.
И у дну, приметити да сам заиста добити 0.1.
Дакле, проблем је решен.
>> Али, још није.
Сада ћу да се мало радознао, и ја ћу да се вратим у моју
принтф изјава и Него, знаш шта?
Желео бих да потврдим да је ово је заиста једна десетина.
И ја ћу да желиш да видиш ово да, рецимо, пет децималних места.
То није проблем.
Ја променим два до пет, Ја компајлирате са направити.
Ја то реприза као плута 1.
Изгледа прилично добро.
Здрав разум провере можда тамо завршити, али Идем мало више авантуристичког духа.
Идем да промените 0,5 до 0,10.
Желим да видим после 10 цифара децималног места.
>> И ја ћу ићи напред и компајлирате то и реприза 1. плута.
Некако жаљење што тестиран ово даље, јер ми математика није тако
исправи више, чини се.
Али, чекај мало, можда то је само случајност.
Можда рачунар делује мало чудно.
Пусти ме да идем напред и до 20 децимале и увери се да знам
Како да урадите математику.
Знам како да програмирате.
Направите плута 1, компајлирате, и проклетство.
То је заиста, заиста све далеко од знака.
>> Дакле, шта се овде дешава?
Интуитивно, на основу наших претпоставки раније о величини типова података,
Шта мора да се овде дешава испод хаубе?
Да?
Тачно.
Ако желите да ово много прецизност, и То је јако пуно прецизности -
20 бројеви иза децималног зареза.
Не може да представља произвољан број уколико немате
произвољан број бита.
Али ми не радимо.
За пловак, имамо само 32 бита.
>> Дакле, ако је 32 бита може се пермутованим у начин - баш као и наши људи на, фаза
Руке горе или доле - у коначном броју начине, само постоји коначан број
реалних бројева можете представљати са тим бита.
И тако на крају рачунар ће морати да
почети секу кривине.
Рачунар може сакрити те детаље од нас за мало времена.
Али ако почнемо убадањем на бројеве и изгледа све даље и даље у
пратећи бројеве у целом броју, онда ћемо почети да се види да је то
заправо приближавању Идеја једне десетине.
>> И испоставило се, нажалост, ту је бесконачан број бројева
не можемо прецизно представљати у компјутер, бар са ограниченим
број бита, коначни количина РАМ-а.
Сада, нажалост, то понекад има у стварном свету последице.
Ако људи не сасвим ценим ово или врста узети здраво за готово чињеницу
да је њихов рачунар ће радити само оно што они кажу да то уради и не
Разумем ове основне репрезентације детаилс -
који, искрено, у неким језицима су скривена од корисника, за разлику од Ц -
неке лоше ствари могу десити.
>> И шта сам мислио да ћемо урадити се врате корак.
И то је отприлике осам минута видео.
То је емитована пре неколико година, и даје увид у оно што заправо може да иде
у праву када сте под-цене ове врсте детаља у врло такође добро
стварни свет.
Ако бисмо могли Дим светла за неколико минута.
>> СПИКЕР 1: Сада се враћамо у инжењерингу
несреће на савременим чудима.
>> Рачунари -
сви сте дошли да прихвати често фрустрирајућих проблеми
да идем са њима.
Душко, вируси, и софтвер глитцхес су мала цена за плаћање
погодност.
Али, у високе технологије и високе брзине војни и свемирски програм
апликације, најмањи проблем се може повећати у пропаст.
>> Дана 4. јуна 1996, научници су спремни да покрене беспилотне ракете Ариане 5.
Она је носила научних сателита дизајниран да прецизно утврди колико
магнетно поље Земље у интеракцији са соларним ветровима.
Ракета је изграђена за европске Свемирска агенција и подиже од свог
објекат на обали у Француској Гијани.
>> ЈАЦК ГАНССЛЕ: На око 37 секунди у лет, они су прво приметили
нешто је кренуло наопако.
Испусти су окреће у начин на који они не би требало.
Око 40 секунди након старта, јасно возило је у невољи.
И тада су направили Одлука да га униште.
Распон официр безбедности, са огромна муда, притиснуо дугме,
дигли у ваздух ракету пре него што је могао постати опасност за јавну безбедност.
>> СПИКЕР 1: Ово је прво путовање од Ариане 5, и његово уништавање
дошло због мана уграђене у софтверу ракете.
>> ЈАЦК ГАНССЛЕ: Проблем на Ариане био је да је број
која је захтевала 64 бита да изразе.
И они су желели да конвертујете на 16 бита.
Претпостављали су да је број никада није ће бити веома велика, да је већина
те цифре у 64-битном број су нули.
Нису били у праву.
>> СПИКЕР 1: Неспособност једног софтвера Програм да прихвати врсту
број који генерише други је у корену неуспеха.
Развој софтвера је постала веома скупе део нове технологије.
Ариане 4 Ракета је била веома успешни, толико софтвера
створена за то је била користи у Ариане 5.
>> ФИЛИП Којл: Основни проблем је да Ариане 5 је био бржи,
убрзава брже.
А софтвер је не чини то.
>> СПИКЕР 1: уништење ракете била огромна финансијска катастрофа,
Све због софтверске грешке минута.
Али ово није био први пут података конверзије су проблеми муче савремени
ракетне технологије.
>> ЈАЦК ГАНССЛЕ: У 1991, са почетком првог Заливског рата, Патриот
ракета доживели сличну врсту проблем број конверзија.
Као резултат тога, 28 су били амерички војници убијено и рањено око 100
када Патриот, који је требало за заштиту од долазећих СКАД-ови,
није успео да испали ракету.
>> СПИКЕР 1: Када је Ирак извршио инвазију на Кувајт и Америка покренула Пустињска олуја у
почетком 1991, Патриот ракета батерије били распоређени да заштите Саудијску Арабију
Израел и из ирачког Сцуд ракетних напада.
Патриот је САД средњег домета земља-ваздух систем произведен од стране
Раитхеон компанија.
>> ТХЕОДОРЕ ПОСТОЛ: Величина Патриот пресретач сама је отприлике
20-метара дуг.
И то је тежак око 2000 килограма.
И она носи бојеву главу од око -
Мислим да је око 150 фунти.
И сама је бојева глава Висок експлозив који има
фрагменти око ње.
Кућиште је дизајниран бојеве главе да се понашају као сачмом.
>> СПИКЕР 1: Ракете се спроводе четири по контејнеру и транспортују
по полу приколицу.
>> ФИЛИП Којл: Патриот антиракетни систем се враћа на
најмање 20 година.
Првобитно је пројектован као ракета за противваздушну одбрану
оборе непријатељске авионе.
У првом Заливском рату, када је тај рат појавио, Војска жели да га користи
да оборе СКАД-ови, а не авиони.
Ирачки авијација није била тако велики проблем.
Али војска била забринута за СКАД-ови.
И тако су покушали да унапреде Патриот.
>> СПИКЕР 1: пресретање непријатељски пројектил путује пет Маха био
ће бити велики изазов.
Али, када је улетео у Патриота служба, војска није био свестан
Ирачки модификација које су свој СКАД-ови скоро немогуће погодити.
>> ТХЕОДОРЕ ПОСТОЛ: Шта се догодило то су СКАД-ови који су били
долази у били нестабилни.
Они су подрхтава.
Разлог за то је био Ирачани, у како би се 600 километара од
300-километара домета, узео тежина од предњег бојеве главе.
Они су бојева глава упаљач.
Тако да сада покушава Патриот да дођу на Сцуд.
И највећи део времена, огромна Највећи део времена, то би само
лети од Сцуд.
>> СПИКЕР 1: Када Патриот систем оператери схватио Патриот пропустили
његов циљ, они су детонирали Родољупци Бојева глава се избегло евентуално
губици ако је дозвољено да падне на земљу.
>> ТХЕОДОРЕ ПОСТОЛ: То је оно што највише људи сматрали великим ватрене лопте на небу
и погрешно схваћен као пресретнутих бежати од бојеве главе.
>> СПИКЕР 1: Иако је на ноћном небу Патриоте изгледа да се успешно
уништавање СКАД-ови, у Дхахрана тамо било грешке у вези са потписаним
перформансе.
Ту, радарски систем Патриот изгубио евиденцију о долазном Сцуд и никада
покренута због софтверске грешке.
>> То је био први који је открио Израелци да дуже систем
био је на, већи временски раскорак постао због сат
уграђен у рачунар система.
>> ЈАЦК ГАНССЛЕ: За две недеље пре Трагедија у Дхахрану, Израелаца
известио да Министарство одбране да је систем губи време.
После око осам сати ради, су приметили да је систем
постају приметно мање прецизан.
Министарство одбране је одговорио говори све Патриот батерија
да не напусте системе на дуже време.
Нису рекли који је био дуго времена.
Осам сати?
10 сати?
1.000 сати?
Нико није знао.
>> СПИКЕР 1: Патриот батерија стационирана у касарни Дхахрана
и његова мана унутрашњи сат био на више од 100 сати у ноћи
25. фебруар.
>> ЈАЦК ГАНССЛЕ: То прате времена да се прецизност од око једне десетине секунде.
Сада, десети део секунде је занимљив број, јер не може бити
изражен у бинарном тачно, што значи не може се тачно изражена у
сваки савремени дигитални рачунар.
Тешко је поверовати, али користите ово као пример.
Узмимо број један трећину.
Једна трећина се не може изразити у децимала тачно.
Једна трећина се дешава 0,333 на за бесконачности.
Нема начина да се то уради са апсолутна прецизност у децимала.
То је потпуно иста врста проблема то се догодило у Патриот.
Дуже ран систем, најгоре време грешка је.
>> СПИКЕР 1: После 100 сати рада, грешка у времену је само
око једне трећине секунде.
Али у погледу циљања ракета Путовање у Маха пет, то је резултирало
праћење грешка од преко 600 метара.
То би била фатална грешка за да војници у Дхахрана.
>> ТХЕОДОРЕ ПОСТОЛ: Оно што се десило је Скад лансирање је откривена почетком
упозорења сателита.
И они су знали да је Скад долази у њиховом правцу.
Они нису знали одакле долази.
>> СПИКЕР 1: Сада је до радара компонента система Патриот
брани ДХАХРАН да пронађе и задржи евиденцију о долазећем непријатељске ракете.
>> ЈАЦК ГАНССЛЕ: радара је био веома паметан.
Било би заиста прати позицију Скад и онда предвидети где
вероватно ће бити следећи пут Радар послао импулса.
То се зове опсег капија.
>> ТХЕОДОРЕ ПОСТОЛ: Онда када Патриот решио да је прошло довољно времена да оде
назад и проверите следећу локацију за ово открије објекат, се враћа.
Дакле, када се вратио у праву место, онда не види објекат.
И она одлучи да не постоји објекат, то је лажна детекција, и
капи нумеру.
>> СПИКЕР 1: долазни Скад нестао од радара, и
секунди касније залупила у касарни.
Скад је убио 28 и био је последњи пуцао током првог Заливског рата.
Трагично, ажурира софтвер стигао на Дхахрана наредног дана.
Софтвер мана је фиксна, затвара једно поглавље у невољи
Историја Патриот ракете.
>> Патриот је заправо акроним фазном решетком за трацкинг
Пресретнутог Таргет.
>> Давид Ј Малан: У реду, тако отрежњујући пример, да будемо сигурни.
И на сву срећу, ови нижи ниво грешке нису нешто што ћемо
обично морају да цене, сигурно не са неким од наших
најраније програма.
Уместо тога, већина грешака ви ћете Сусрет ће бити логично у природи,
синтаксичка у природи којим Код једноставно не ради добро.
И знате то прилично брзо.
>> Али, посебно када стигнемо у крају семестра, то ће
постају све више и више могућност за Заиста мислим да је тешко о дизајну
ваших програма и основних представљање
тамо, такође, података.
На пример, ми ћемо увести МиСКЛ, која је популарна базе података
које можете да користите са сајтова за складиштење података на задњем крају.
И ви ћете морати да почну да одлучи у крају семестра не само оно што
врсте података дуж ове линије да користе али тачно колико битова се користи,
да ли или не желите да сачувате датуме као датум и време као време, а такође и
ствари као што су колико хоћеш јединствени ИД-ови бити за, рецимо, корисници
у бази података.
>> У ствари, ако је неко од вас имао Фацебоок чини већ дуже време,
и да знате како да добијете приступ на ваш кориснички ИД -
који се понекад појављује у вашој Профил је УРЛ адреса уколико сте одабрали
надимак за УРЛ, или ако сте Половни Фацебоока Грапх АПИ,
јавно доступан АПИ којим сте могу питати за Фацебоок сирових података -
можете да видите шта ваш број је нумерички.
А пре неколико година, у суштини Фацебоок морао да се промени из употребе
еквивалент интс да користе дуго дуго, јер временом како корисници долазе
и иди и створити много рачуна и лажни рачуни, чак и они врло лако
били у стању да искористе нешто као 4 милијарди могућа вредност као цео број.
>> Дакле, више о тим врстама питања на путу, као добро.
У реду, тако да је кастинг.
То је било непрецизности.
Пар брзих саопштења.
Дакле, формално почети ове секције долази Недеља, понедељак, уторак.
Чућете путем маила касније ове недеље као на ваш задатак секције.
И ви ћете, такође овде у том тренутку како да промените свој део ако ваш
распоред је сада промењен или ваш ниво комфора се сада променила.
У међувремену П-скуп један и један хакер су због овог четвртка са опцијом
продужи тај рок по спецификације до петка
у типичном начин.
>> Схватају да је укључен у проблем сет спецификације су упутства
како да користите ЦС50 апарат, направи, као и неке специфичне алате ЦС50
као стил 50, који може да вам пружи повратну информацију о динамично
Квалитет код вашег стила и цхецк 50, који може да вам пружи
динамичан повратне Што се тиче твог законика исправност.
Опрости ми што још увек пеглање од неколико Кинкс са Чешком 50.
Неколико својим друговима који се почињу око четири АМ у петак увече када је
спецификације порасла од тада смо приметили неколико бугова који ми радимо
путем, и извињавам се свима који је доживела непотребна фрустрације.
Кривица је моја.
Али, ми ћемо пратити на ЦС50 разговарати када се то реши.
>> Дакле, реч о оценама самих.
Дакле, то ће бити недељу или две пре него што почети да се повратне информације о проблематичним сетовима
јер ви још немате демонстратор.
Па чак и тада, ми ћемо почети да се процени Ц проблем поставе пре него што смо
вратите и процените огреботина тако да сте добили више релевантних
Повратне информације брже.
Али, у принципу по градиву, ЦС50 проблем поставе оцењују дуж
након четири осе -
обим, исправност, дизајн и стил.
>> Обим ће обично бити број између нула и пет које
бележи колико комад који одгризао.
Обично, желите то да буде пет.
Ви барем пробали.
И приметите да је мултипликативни фактор тако да раде само део
Проблем скуп није најбоља стратегија.
>> У међувремену, више је очигледан значај исправности -
Управо је ваш програм тачан у поштују спецификацији?
Ово је пондерисани намерно више великој мери него друге две осе према
фактор три, јер ми знамо које обично ћете провести
много више и јури доле неке грешке, узимајући свој код на посао, онда
су га увлачењем и избором одговарајуће имена променљивих и
свиђа, која је на другом крају спектра стила.
>> То не значи да стил није важна, а ми ћемо га проповедају преко
време и на предавањима и у деловима.
Стил се односи на естетику вашег кода.
Изабрали сте добро имену варијабле да су кратки, али нешто
описно?
Да ли је ваш код увучен као што сте видели у предавање и на начин који је у складу
са стилом 50?
>> На крају је дизајн у праву тамо у средини.
Дизајн је теже да стави прстом јер је много више
субјективна.
Али то је можда најважнији три осе у погледу педагошких
вредност током времена и да ће то бити је асистент је прилика да се
вам пружити квалитетан феедбацк.
И заиста, у ЦС50 иако имамо ове формуле и резултати, на крају
дана су веома намерно веома мале кашике - указују вредности
између нула и три и нула и пет.
Ми не покушавамо да скрене веома грубе линије између сетова или проблема између
студената већ се фокусирају колико можемо на квалитативне, обичан рукопис
повратне информације, или откуцани или вербално из Ваш посебно демонстратор,
добићете да доста добро познајем.
>> Али у целини, то су тежине да су разни правци имати.
У међувремену, такође, вреди имајући у уму да не треба претпоставити да
Три од пет је 60% и дакле отприлике неуспеха.
Три је намерно требало да буде врста сред пута добро.
Ако добијате тројке на почетка семестра, то је
заиста требало да буде добар место за почетак.
Ако добијате друге, сајмови, ту је дефинитивно неки посао да плати мало
више пажње, да искористе преграда и радног времена.
>> Ако добијате четворке и петице, супер.
Али стварно, надамо се да ћемо видети трајекторије међу ученицима - веома
индивидуализоване по ученику, али почевши семестар овде у врсти
два до три опсега, али се завршава овде у четири до пет опсега.
То је оно што стварно тражимо.
А ми имамо у виду да је делта показују да између недеље и недеље нуле
12 када радим оцене.
Није важно како за нас апсолутно Ви сајам на почетку ако је ваш
путања је заиста навише и јак.
>> Академско поштење - па хајде да ставим озбиљнији глас за тренутак.
Дакле, овај курс је разлика слањем више студената него било који други
у историји на огласној табли, ја верујем.
Имамо врсту бројим на ово поента колико често се то дешава.
И то не зато што студенти у 50 су више непоштени од њихових
вршњаци другде.
Али схватите, такође, да смо јако добри откривања овакве ствари.
>> И то је предност да информатика класа има у које смо
да и ми упоредимо све студенте проблем поставе пар-мудар против сваког
друго, не само у овој години него све претходне године.
Ми имамо способност, као и ученика у класа, на Гоогле-у и да се пронађе код
на сајтовима као и ГитХуб дискусионим форумима.
Постоји апсолутно решења за ЦС50 је П-поставља плутају тамо.
Али ако можете да их пронађете, можемо да их нађемо.
А све ово је веома аутоматизован и лако и тужно за нас да пронађе.
>> Али желим да нагласим, такође, да академски поштење наравно политика је
много требало да буде много супротност том духу.
Заиста, ове године смо преформулисати ствари за градиво да буде ово, тачка
Дот, са више детаља за градиво.
Али, главна тема у току заиста треба да буде разумна.
Свесни смо да постоји значајна износ педагошких
вредност за сарадњу, у одређеној мери, са другим ученицима, при чему ти
два или три или више да се стоји на белој табли
вхитебоардинг, тако да говоре, своје идеје -
исписивањем Псеудокод у сликама, дијаграма који треба да Марио буде ако
да је писао прво у псеудокоду.
Шта треба да похлепни алгоритам -
како треба да се понашају по проблем поставе један?
>> И тако схватају да понашање да подстичемо је веома
много у том смислу.
А за градиво, видећете гомила метака у
разумно категорија и не разумно категорија која нам помаже да помогне
ви увијте свој ум око где смо да нацрта ту линију.
И уопште, пристојан правило је да ако се боре да се реши
нека грешка и ваш пријатељ или друг из разреда седи поред вас, она је
разумно да му покажем или јој Ваш број и рећи, хеј, може да вам помогне
да схватим шта се дешава у реду овде?
>> Обично не прихватају супротне стране.
То није тачан одговор за своје пријатељ или друг из разреда овде да кажем, ох,
погледајте само мој и фигуре она се од тога.
То је врста неразумно.
Али има неког другог, други мозга, још један пар очију погледате
екран или поглед на свој код и кажу, ви сте сигурни да желите
да овде имају петљу?
Или сте сигурни да желите да зарез овде?
Или ох, то значи да је ова порука о грешци.
То су врло разумне и охрабрују понашања.
>> Случајевима на које сам алудирају на раније своде када су ученици
касно у ноћ што лошем расуђивању одлуке и слања е-поште на свој код
неко други или једноставно говорећи, овде, то је у Дропбок или
Гугујеш касно ноћу.
И тако бих охрабрити и преклињем вас, ако немате то неизбежно
тренуцима стреса, ви увећава против рока, немаш касно
Дан пошто је већ у петак да тачка, пошаљи главе току, или
ја директно.
Рецимо, слушај, ја сам на мом тачке пуцања овде.
Хајде да разговарамо да провалим.
Ослањање на Интернету или неке друге не разумно понашање никада није
решење, а такође многе ваше вршњаци више нису овде на
кампус због тог лошег пресуде.
Али, то је врло лако да се заобиђе ту линију.
>> А ево мало слика да навијају да се из Реддит тако да сада
све ће бити у реду.
>> Тако брзу рекапитулацију, онда, од тамо где смо стали.
Тако је прошле недеље, сећам се да смо увести условима, а не у Огреби
али овај пут у Ц.
И ту је био неки нови, али синтакса стварно нема нових идеја по себи.
Имали Булове изразе који смо могли или заједно са два вертикална
барова или и заједно са два амперсандс, кажу да су и лева
и право мора бити истина за то да се изврши.
Онда смо имали прекидача, које смо гледали на кратко, али ја предлажем су заиста
само различите синтаксе за постизање иста врста циља ако знате у
унапред шта ваши случајеви ће бити.
>> Гледали смо петљи.
Фор петља је можда најчешћа, или барем један да људи
обично достигне за инстинктивно.
Иако изгледа мало загонетан, видећете много, много примера ово
пре дуго, као што су Већ крајем прошле недеље.
Док петље може на сличан постигне исту ствар.
Али, ако желите да урадите било Инкрементација или ажурирање
променљиве вредности, морате да то је више него ручно
за петља пре дозвољава.
А ту је до-вхиле петље, који нам омогућава да урадимо нешто у
Најмање једном док нешто друго је истина.
А ово је посебно добро за програма или за игре у којима желите
да затражи од корисника за нешто бар једном.
А онда, ако он или она не сарађује, можда ћете желети да то урадите
изнова и изнова.
>> Са варијабли, у међувремену, ми смо имали линије кода као што је овај, који би могао
бити две линије.
Можете да декларишете инт зове бројач, тачка и зарез.
Или можете само да прогласи и дефинишемо, да тако кажем.
Дајте јој вредност у исто време.
>> И онда на крају, разговарали смо о функцијама.
И ово је леп пример у смислу да илуструје
две врсте функција.
Један је ГетСтринг (), који, опет, добија низ од корисника.
Али ГетСтринг () је било веома интересантно, до сада, као што смо га користили,
зато што увек смо га користи са нешто на левој страни
знак једнакости.
То ће рећи да је ГетСтринг () враћа вредност.
Она враћа, наравно, низ.
А онда на левој страни, ми смо једноставно чување ту серију унутар
променљиве назива име.
>> Ово је другачије, у неком смислу, од принтф принтф јер, бар у нашој
употреба овде, не врати ништа.
Узгред, она не врати нешто.
Ми једноставно не занима шта је то.
Али то нема шта зове нежељени ефекат.
А шта је то споредни ефекат у сваком Случај смо видели до сада?
Шта принтф ради?
То је нешто штампа на екран, приказује текст или бројеве, или нешто
на екрану.
А то је само сматра нуспојава јер то није стварно предаје
ми поново.
То није одговор унутар црна кутија која ја тада могу
досегнути и зграби.
То је само то раде на сопствену, много као Колтон је укључен у ову
црна кутија прошле недеље, а он је некако магично је цртеж на табли
без мене заправо укључен.
То би било нуспојава.
Али, ако сам стварно морао да постигне још у овде и рећи, ох, овде је ниска
од корисника, да би бити повратна вредност.
>> И до сада смо само коришћене функције да други људи написали.
Али, ми у ствари да урадимо ово врсте ствари себе.
Дакле, ја ћу да идем у ЦС50 апарат поново.
Дозволите ми да затворите картицу која ми отворите је малопре.
И дозволите ми да иде напред и креирате нову датотеку.
И ја ћу ићи напред и Ово зовем поситиве.ц.
Зато сам хтео да урадим нешто са позитивни бројеви овде.
Дакле, ја ћу ићи напред и до кам -
извини -
# Инцлуде.
Немојмо да се иста грешку као и раније.
Инт маин (), отворен коврџава браце, коврџаву затворена заграда.
>> А сада желим да урадим следеће.
Желим да напишем програм који инсистира на томе да корисник даје
ми позитиван цео број.
Дакле, не постоји функција ГетПоситивеИнт ЦС50 у библиотеци.
Постоји само Затамњена ().
Али то је у реду, јер имам конструкције са којима могу да се наметне
мало више препрека у тој вредности.
Могао бих овако нешто.
>> Дакле, инт н -
и ако куцате заједно, само схвати Ја ћу да се вратим и
промените неке ствари у једном тренутку -
тако инт н једнако Затамњена ().
И то ће се ставити инт унутар н.
И дозволите ми да више описно.
Дозволите ми да кажем нешто као да тражим да ли ми дати позитиван цео број.
>> У реду.
Дакле, само мало инструкција.
И шта сада да радим?
Па, ја већ знам из мог једноставно услова или гране, баш као И
имала у Огреби, могао бих да кажем нешто свиђа ако је н мање или једнако
нула, онда ја желим да урадим нешто свиђа, то није позитивна.
И онда сам могао да урадим -
У реду, али ја заиста желим да се тај инт.
Тако да сам могао да идем овде и ја могао некако од ове копије и увлачење ово.
А онда, у реду.
Дакле, ако је н мање или једнака нули уради.
>> Сада, шта ако корисник не сарађује?
Па, онда ћу позајмим ово овде.
И онда ја идем у ту и овде и овде.
Дакле, ово је јасно да није решење, зар не?
Јер нема краја на видику.
Ако желим да захтевају да корисник даје ми позитиван цео број, могу
заправо добити инт.
Ја онда могу проверити за тај инт.
Али, онда желим да га поново и проверите проверите га поново и проверите поново.
Дакле, очигледно, шта је боље конструише се овде користи?
У реду, па нека петље.
>> Зато ћу се отарасити скоро све ово.
И ја желим да се ово инт бар једном.
Зато ћу рећи до -
и ја ћу се вратити у док је за тренутак -
Сада, шта?
Ја ћу да урадим инт н добија Затамњена ().
ОК.
Дакле, то је прилично добар.
А сад колико често Желим да урадим ово?
>> Да поставим принтф унутрашњост петље тако да могу да траже поново и поново,
ако је потребно.
И шта ја желим ово док је услов да се уради?
Желим да наставим да радим ово а шта је то случај?
Да.
Н је мањи или једнак нули.
Тако је већ, ми смо значајно очисти овај код горе.
Ми смо позајмили врло једноставна изградња - До-вхиле петље.
Украли сам само битне линије кода који сам почео и копирање
лепљење, што није био мудар.
И сада ћу да се заиста налепите она овде и уради то једном.
>> А сада оно што желим да урадим у самом крају овог програма?
Само ћу рећи нешто једноставно свиђа, хвала - и
Учинићу% и за инт -
бацксласх н, зарез, а затим прикључите н, тачка и зарез.
>> У реду.
Па хајде да видимо шта се дешава сада када сам покренути овај програм.
Ја ћу ићи напред и правимо позитивно.
Проклетство.
Неколико грешака.
Тако да ме поново помицати до првог.
Не ради кроз њих уназад.
Рад кроз њих из врха надоле да не би каскада и само
Једно погрешно.
Имплицитна декларација Затамњена функција ().
Да.
Дакле, то није било довољно.
Некако сам направио исту грешку, али мало другачије овај пут.
Морам да не само да су већ стдио.х Такође цс50.х, који обухвата
тзв декларације инт, која се уче апарат, или учи
Ц шта Тоноване () је.
>> Тако да ме поново сачувате.
Ја ћу игнорисати остале грешке јер ћу да се надам да су они
некако повезано са грешком Већ сам фиксно.
Дакле, дозволите ми да иде напред и компајлирате са направи позитиван, Ентер.
Проклетство.
Три грешке, још увек.
Дозволите ми помицати до првог.
Неискоришћене променљиве н.
Не смо видели раније.
И ово је, такође, мало загонетан.
То је излаз компајлера.
А шта је нагласио линија тамо - поситиве.ц :9:13 -
каже, она каже он лине деветом поситиве.ц, на 13. карактера,
13. колона, ти направио ту грешку.
>> И посебно, то говори ја се не користи променљива н.
Па да видимо -
линија девет.
Ја користим н у смислу да Дајем вредност.
Али шта компајлер не свиђа је да нисам наизглед да га користите.
Али, чекај мало, ја га користим.
У ред 11, Користим га овде.
Али ако помицати доле даље на поситиве.ц :11 -
па на ред 11, 12 карактера, компајлер ми говори, коришћење
непријављеног идентификатор н.
>> Тако непријављених значи да треба није дефинисано је као
променљиве са типом података.
Али, чекај мало.
Ја сам управо то у реду девет.
Дакле, неко је стварно збуњен.
Или ја, или због тога што компајлер у складу девет, опет, ја сам изјављујући
инт н, и ја сам то додељивање повратак вредност Затамњена ().
Онда ја користим ту променљиву н у складу 11 и проверу уколико је његова вредност мања
од или једнака нули.
Али, то је очигледно лоше и сломљена због чега?
Реци то поново?
>> Ах, морам да се изјасни пред н уласка у петљу.
Али зашто?
Мислим, ми смо предложили управо мало пре да да је у реду да се прогласи променљиве
све у једном реду, а затим доделите им неку вредност.
Глобална променљива - Вратимо на ту идеју за који тренутак.
Зашто желите да ставите је ван петље?
Она је.
Тачно.
>> Дакле, мада, нешто нелогично, да резимирам.
Када декларишете н унутра од блокирали тамо -
посебно унутар те витичасте заграде -
да променљива н има оно што је зове обим -
невезано нашем систему бодовања у Курс - али има обим који је
ограничена на оне заграда.
Другим речима, обично ако се прогласи променљива унутар скупа
витичасте заграде, та променљива постоји само унутар тих заграда.
Дакле, по тој логици сам, иако Ја сам изјавио н у складу девет, то
суштини нестаје из делокруга, нестаје из меморије, да тако кажем,
када сам погодио линију 11.
Јер линија 11, нажалост, није изван тих заграда.
>> Тако да, нажалост, не могу да поправим ово да се вратимо на оно што сам то урадио раније.
Можда на први поглед то урадили.
Али, оно што се сада не ради циклично?
Ти очигледно не добијате инт циклично.
Тако да може да напусти Затамњена (), и ми смо треба да напусте Затамњена () унутар
петља, јер то је оно што желимо да узнемиравате упутство за поново и поново.
Али то је довољно да се до линије, кажу, шест.
Инт н, тачка и зарез.
Немојте му дати још неку вредност, јер не морате да се још увек.
>> Али сада овде, обавештење - то би се врло лако грешка.
Не желим да пратим мој претходни Изјава о н.
Желим да користите да н заиста постоји.
И тако сада на линији 10, Ја н доделити вредност.
Али, у складу шест, ја изјављујем н.
И тако ја могу или не могу, користите га у линији 12 сада?
Ја зато могу између којих коврџава протеза је н проглашена сада?
Један овде на линији пет.
Да би један овде на линији 14.
Дакле, ако сам сада умањили, сачувајте ову датотеку, идите назад у води и чине позитиван, то
саставио овај пут.
Дакле, то је већ напредак.
Сласх. / Позитиван,. Ентер.
>> Захтевам да ми даш позитиван цео број.
Негативно 1.
Негативно 2.
Негативно 3.
Нула.
Један.
И хвала на један је шта се сада штампа.
>> Дозволите ми да покушам нешто друго, из радозналости.
Ми се да сам рекао да улаз на цео број.
Али шта ако уместо тога унесете јагње?
Значи, ви сада видите другачије питај -
поново покушати.
Али, нигде у мом коду да ли пишем поново.
Па где је, по свој прилици, то је поновни покушај навести долазе, да ли бисте рекли?
Да, од Затамњена (сама).
Дакле, једна од ствари ЦС50 особље то чини за вас, бар у ових првих неколико
недеља, ми смо је написао неки износ грешке провере како би се осигурало да, уколико
зовете Тоноване (), да ћете ипак врати инт од корисника.
Нећете добити низ.
Нећете добити знак.
Нећете добити нешто сасвим друго.
Добићете инт.
>> Сада, то можда неће бити позитиван.
То не може бити негативна.
Ми не дајемо гаранције око тога.
Али, ми ћемо узнемиравате корисник да покушате поново, ретри, поновите све док он или она заправо
сарађује.
Слично томе, ако ја урадим 1.23, то није инт.
Али ако не упишете у, рецимо, 50, да ми даје вредност коју сам желео.
>> У реду.
Зато није лоше.
Сва питања о томе шта смо управо урадили?
Кључ Такеаваи буде, да буде јасно, не толико петље, који смо видели
пре него што чак и ми имамо не баш користи га, али је питање обима, где
променљиве могу да се може користити само у неком одређеном обиму.
>> У реду, дозволите ми да сугестију сте раније направили, да од
Глобална променљива.
Као страну, испоставља се да је још једна Решење за овај проблем, али
обично погрешно решење или лоше дизајниран решење, је да
прогласити своју променљиву као што је зове глобална променљива.
Сада сам некако крши своју дефиницију обима јер постоје
но витичасте заграде на самом врху и самом дну датотеке.
Али импликација које да је сада у четвртом реду,
н је глобална променљива.
И као што само име говори, то је Само доступни свуда.
>> Огреби заправо има ово.
Уколико сте користили променљиву, можда се сећате морали сте да одаберете да ли је за
вилењак или за све Спрајтови.
Па, сви спрајтови је само јасније начин да се каже глобално.
Да?
Ах, стварно добро питање.
>> Тако се сећате да је у првој верзији мог кода, када сам погрешно
декларисани и дефинише н у складу девет -
Ја га прогласио као променљива и ја сам га дао вредност са
Оператор додељивања -
ово ми је дао две грешке.
Прво, чињеница да н није коришћен, и друго, да се у ред 11
Само сам то није проглашен.
Дакле, први нисам адреса у то време.
То није стриктно грешка да се изјасне променљива, али не користи.
Али једна од ствари које смо урадили у ЦС50 апарата, намерно,
педагошки, ми смо се савијеним горе очекивања да би компајлер
сигурни да радите ствари не само исправно, али стварно исправно.
>> Јер ако декларисање променљиве као н и никада га користи, или да га користите
исправно, онда оно то ради тамо?
То заиста нема никакву сврху.
И то је врло лако током времена, ако не конфигуришете свој рачунар у
На овај начин, да се само код који има мали остаци овде, остаци тамо.
А онда месеци касније погледате уназад и ти си као, зашто је ова линија
Код тамо?
А ако не постоји добар разлог, то не користи вама или вашим колегама
на путу да имају на спотаћи ње онда.
>> Као страну, где је који долазе из?
Па, сећам се да сваки пут кад састави програма, све ове ствари је
се штампа.
Тако ћемо се вратити на то.
Али, опет, да је услужни програм који аутоматизује процес састављања тако
ради стварног компајлер звао јека.
Ова ствар, ми смо на крају ћемо видети, има везе са отклањање грешака са посебним
Програм се зове програм за отклањање грешака.
То има везе са оптимизације број - више о томе у будућности.
СТД = Ц99 -
то само значи да користите 1999 верзију Ц. Ц је око чак и дуже него
да, али су направили неке лепе Промене плус 10 година.
>> А ево и битног.
Ми кажемо да је било шта направити претходно би било упозорење
грешка спречавање студента од састављања.
И зидне значи то за гомила ствари, не
само у вези са варијаблама.
И онда ми дозволите да дођете до Крај ове линије.
И ово је, такође, да на крају ћете врати се.
Ово је очигледно име фајл сам састављању.
То подсећа на име датотеке Ја штампања као име
извршном мог програма.
Ово-лцс50 само значи користити ЦС50 библиотека, и све нуле и јединице да
особље је написао и сакупио раније ове године, интегришу
их у мој програм.
>> И ко зна шта је-ЛМ?
То је математика библиотека, која је Управо ту, чак и ако сте
не раде никакву математику.
То је само аутоматски обезбеђује да нам направи.
>> Па, пусти ме да радим један други пример Овде отварањем новог фајла.
И дозволите ми да сачувате овај као стринг.ц.
Испоставило се да што говоримо о подацима врсте данас, постоји још
дешава испод хаубе него што смо видели до сада.
Тако да ме брзо урадите брзо програма.
Укључи стдио.х.
И ја ћу спасити да.
И знате, да не би Иста грешка поново и поново.
Укључи цс50.х.
И дозволите ми да иде напред сада и до инт маин ().
>> И сад ја једноставно желим да урадим програм да то чини - прогласи низ
зове ова и добити низ од стране корисника.
И дозволите ми да мало упутства овде -
молим вас дајте ми ниску - тако корисник зна шта да ради.
А онда доле испод ове, Желим да урадите следеће -
за инт и добија нула.
Опет, обично компјутерски научници почне бројање од нуле, али смо могли
да тај један, ако се заиста жели.
Сад ћу да урадим и је мање него с стринг дужине.
Тако стрлен -
С-Т-Р-Л-Е-Н -
опет, то је концизан јер је лакше да куцате, иако је
мало загонетан.
>> То је функција која ми нисмо коришћена али пре него што то ради буквално -
врати ми се број који представља дужини стринга
да корисник откуца.
Ако откуцан здраво, оно ће се вратити пет јер је пет
слова у здраво.
Затим, на свакој итерацији Ова петља, и плус плус.
Па опет, чак и ако је стандардна изградња ниси баш превише удобно или
упознат с њом.
>> Али сада на свакој итерацији ове петље, приметити шта ћу да урадим.
Желим да иде напред и штампање од једног лика -
па н% ц инверзно у новом реду.
И онда, знате шта желим да урадим?
Шта год да је реч корисников у, као што је здраво, ја желим да одштампате
Х-Е-Л-Л-О, један знак по линији.
Другим речима, желим да се у појединачне знакове у низу,
при чему је до сада низ има само био низ знакова.
>> Испоставља се да ја могу да урадим с, носач, И, затворена заграда, затворите
заграда, тачка и зарез.
И ја морам да урадим још нешто.
То је у фајлу названом стринг.х стрлен која је проглашена.
Дакле, ако желите да користите ову функцију, Морам да кажем компајлер,
Очекујем да га користите.
Сада да иде напред и да програм под називом ниска.
Дот, коса црта, ниска.
>> Молим вас дајте ми стринг.
Ја ћу ићи напред и укуцајте.
Добро, у великим словима, Ентер.
Запазите сада сам објавио ову један знак за другим.
Дакле, нови детаљ овде је да ниска, на крају крајева, може бити
приступити путем свог појединца карактера увођењем трг
носач нотација.
А то је зато ниска испод хауба је заиста низ
карактера.
Али оно што је супер у вези са њима је у РАМ рачунара -
Мац, ПЦ, шта год да је - они су буквално бацк то бацк за назад -
Х-Е-Л-Л-о -
на појединца, поред бајта у меморији.
>> Дакле, ако желите да добијете на осми такав бајт, који у овој петљи ће бити
носач нула, један носач, носач два, носач три, четири конзола -
који је индексиран нула до пет -
који ће одштампати Х-е-Л-Л-О у посебном реду.
>> Сада, као теасер, дозволите ми да вам покажем Свакакве ствари на крају ћете бити
способан да разуме, бар блиским тражите.
Као прво, оно што смо укључени у данашњем примери, ако желите, у ствари
један од првих јаилбреакс за иПхоне.
Јаилбреакинг значи пуцања телефона услед тако да заиста можете да га користите на
различите превозник или инсталирате свој софтвер.
И ви ћете приметити да ово изгледа потпуно криптичан, највероватније.
Али погледајте ово.
ИПхоне је очигледно напукао са фор петља, уколико услов, друго
стање, гомила функција не смо видели.
>> И опет, нећете на Вероватно први поглед
Разумем како се то ради.
Али, све што смо некако узети за готово у нашим животима модерних
заправо тежи да смањи чак и на неке од ових основа смо били
гледа.
Дозволите ми да иде напред и отвори једну Други програм, холловаи.ц.
Дакле, ово је, такође, нешто што не би требало да знам.
Иако нико од запослених или сам могао Вероватно схватим то од стране гледајући
то зато што је то био нечији број који је достављен шта је
историјски познат као баговит Ц такмичење, где можете написати програм
да саставља и води, али је тако проклето криптичан ниједан човек не може разумети шта
ће то урадити до они заправо га покренете.
>> И заиста, ако се осврнемо на ово код, видим прекидач.
Видим главни.
Видим ове квадратних заграда имплицирајући нека низа.
Да ли неко жели да погоди шта Овај програм заправо
ради ако останем Холловаи?
Да.
ОК.
Браво.
Дакле, само особље, а ја не могу да схватим шта те ствари раде.
>> И сад на крају, дозволите ми да идем напред и отвори један други програм.
Овај -
опет, ми ћемо направити изворни код доступан онлине - ово је само
некако лепо да погледамо.
Све што су урадили је ударио размак сасвим мало.
Али ово је прави број.
Дакле, ако мислите да је лепа, ако се заправо покренути ово у линији,
на крају ћете видети како смо Можда овако раде ствари.
>> Дакле, ми ћемо вас оставити у том смислу и видимо се у среду.
>> [Музика свира]
>> СПИКЕР 2: На следећем ЦС50, ТФС је организовати побуну.
>> ПРЕДСЕДНИК 3: Ево га.
Ухватите га!
>> [Музика свира]