[Powered by Google Translate] [РОЦК МУЗИКА]
[МУЗИКА - "срећни заједно" корњаче]
ДАВИД Малан: Данас почињемо наше истраживање
Основе информатике и наше упознавање,
Сада, на уметност програмирања, од којих је то
Само један пример.
Али, у истом духу решавања проблема, знам да
ЦС50 традиционална Слагалица дан је сутра.
Ако не сте још РСВПед за овај догађај, можете да одете на
цс50.нет/рсвп.
Можете донети тимова два или три или четири.
Бићете изазов са проблемима попут оног који сте видели
тамо на почетку.
Сви нови проблеми ове године ако учествовао прошле године, а ви
ће имати прилику да освоје неке онда феноменалне награде.
Међу њима, Вии и неки поклон сертификате и слично,
све док се дружи са ЦС50 студентима и друговима
и пица и Фацебоок.
Дакле, више на то сутра, ако желите.
>> То је онда ЦС50, за оне од вас придружио нам се за
први пут.
И знам да овај курс је посебно утврђено да
ти кроз овај курс ка свом коначном циљу, а тада се
ће имати не само разумевање ових
Основе рачунарске науке, али ћете имати
ово врло практичан вештина скуп који онда можете узети назад
сопствени одељење, да ли је техничке науке,
примењене математике, физичке науке, природне
наука, или слично.
Заиста, шта је толико узбудљиво о рачунарству ових
дана је да је само тако могуће да се
све врсте поља.
И иако данас, само ћемо огребати површину
веома традиционални програмски језик познат као Ц, ми ћемо
уместо погледамо нешто што се зове огреботине, нешто са
који та колачић љубавна прича је имплементиран од стране једног од ваших
претходници у протеклих година, да причамо приче, да створи игре,
да створи интерактивна уметност, и да заиста почну да заврши нашу
умови око неких основних конструкција које
у основи програма, али у контексту, као што ћете видети, то је
много мање страшно, то је много мање тајанствени него ћете видети
пре дуго.
И схвати, такође, за оне од вас само нам се придружили ово
семестар, изразе на које смо завршили у среду предавање,
то није толико важно где можете завршити у односу на ваше
вршњаци у овој класи, али где сте, до краја семестар
у недељу 11, завршавају у односу на себе право ово веома дан.
>> Дакле, без даљег одлагања, то је такође напоменути да
они мање удобна, оне негде између њих,
Такође, по дизајну овог курса, не по сваку штету
вис-а-вис оних удобнији
долази у ову класу.
Као што ћете видети у недељама које долазе, ми имамо другачији
стазе за различитим позадинским позадини, секције за оне
мање удобан, удобнији, они негде
између.
Као што ћете видети овај викенд и следеће недеље, две верзије
већина проблема у оба сета стандардног и хакер издању тако
да сви могу самостално изабрати стазом којом сте
су најпогоднији.
>> Тако данас, ми смо зароне у овом програму
језик који се звао нуле.
То је графички програмски језик, а ипак има
Исте карактеристике неких виших нивоа језика ћемо
истражују касније у семестру, међу њима Ц и
Јава и ПХП.
Али то ће нам омогућити да се избегну неке од сметњи
рано синтаксе, ствари као што су зарезом, заграде,
и остали тајанствени детаљи који, на први поглед, само нису
уопште интелектуално занимљива и имају тенденцију да се у
начин из неког основног разумевања.
У погледу сада подршке структури пред нама, схватили
алат, ЦС50 разговарали, која ће бити повезана на курс је
веб касније данас, онлине дискусија форум у
које ћете моћи да постављају питања једни другима и
особље, а то је такође алат, као што ћемо видети следеће недеље,
да ћемо искористити прилично интегратедли у
Радно време као и.
Заиста, радно време почиње у понедељак, а искрено, први
недеља радног времена је прилично низак кључ.
>> Ја не мислим да ћете наћи све што Огреби недоступна.
То је прилично саморазумљиво, као што ћемо видети, па шта
ми ћемо га користити за данас је да издвоји неке од
основне идеје које ће, потом, и даље постоје током
Остатак семестра.
Али од понедељка, у 8:00 часова кроз 11:00 часова биће
Радно време у Анненберг преко мозга паузе.
Сечења два ће почети вечерас, па некад ово
викенда, идите на цс50.нет/сецтион, а ти ћеш
бити постављено неколико питања.
Међу њима, како бисте описали ваш
ниво комфора од данас?
Нема тешко, брзо правило да ко је у којој кашика.
То је само једна од ствари које вероватно знате да ли
су међу онима који су мање комфорни или на други начин.
>> А сада, Валктхроугхс.
Проблем скуп спецификација за ову недељу, како стандардна
и хакер издање подједнако је онлине на цс50.нет као сада.
И ви ћете видети да први од ових издања,
Стандард Едитион сваке недеље, праћено је нешто што
позовете описом кода, седница на челу једног од
Наравно да је настава момци да вас води кроз, пружају
савете, а ви доле одређени пут када је у питању
започињања тих проблема сета.
Дакле, са сваким од ових проблема поставља, ако сте икада желели смо
за себе где да почне, ви почнете са овим
Валктхроугхс.
И у ствари, дозволите ми да представим Замила Цхан, овај
демонстратор Овогодишњи који ће водити сваки
једна од ових Валктхроугхс.
Замила?
>> [Апплаусе]
ЗАМИЛА Цхан: Ох, здраво свима.
Моје име је Замила.
Ја сам млађи студира инжењеринг у Винтхроп дома.
Али трудим се и уклапају у онолико курсеве информатике, као што сам
може, због чега сам веома узбуђена да воде ову
Овогодишњи Валктхроугхс.
Сцреенсхотс, за мене, били су битан део мог ЦС50
искуство.
Током објашњења, за сваки п-сета, ми ћемо проћи кроз
Проблем поставили заједно, поглед преко проблема, врста
поделите их на управљати уједа.
Ја ћу вам дати савете, технике, за добијање
кроз и почетак.
Надам се да вас све видим на Валктхроугхс.
Ако не можете успети у лице, а затим
молим вас мелодија мрежи.
>> ДАВИД Малан: Одлично.
Хвала ти, Замила.
Дакле, схватите да Валктхроугхс су, заиста, у петак
поподнева, али ово је намерно по дизајну, тако да
чак и ако не желите да похађају наставу у петак
поподнева, видео снимци ће бити до све брже преко
викенд.
Тако схватају да ће цс50.нет бити све Замила је
Валктхроугхс.
И да је данашњи датум и време, 3:00 ПМ
Харберд сала, 104.
А неки од наставних момци су припремили
неке примедбе за вас у одсуству да вам дам мало
перспективу о томе шта је њихово искуство и ступања на
Излазим из ЦС50 била.
Дакле, ако бисмо могли да пригуши светла за само тренутак, да ти дам
неки од запослених ЦС50-а.
>> ЈАЦКСОН СТЕИНКАМП: Узео сам ЦС50 прошле године као бруцош на
пада, и то апсолутно експлодирао мој ум.
Никада нисам предузела никакве програмске часове пре,
и никада дошао са било информатике
искуства уопште.
И само сам чуо зујање о класи и
одлучио да га узме.
>> ЈУЛИЈА МИТЕЛМАН: Било је заиста забавно, стварно ангажовање.
И даље, на овај дан -
Управо сам недавно видела имам дискету да је Давид нам је дао
на наш први дан предавања.
Га је сам висио на мом зиду.
Ово је вероватно мало нерди, али сам висио на мој
Зид током класе као подсетник како је било кул.
>> ТРАВИС падове: То је тако понижавајуће.
>> ЈАЦКСОН СТЕИНКАМП: Рачунарство је нешто што
треба покушати чак и ако нисте једно за
традиционалне науке.
То је његова сопствена искуства и ЦС50 побринуће се да сте
подржано и кроз њу са истинском војском Поздрав.
>> АЛИ НАХМ: Узео сам га као бруцош, па сам направио доста
нових пријатеља.
Такође добио сам упознао целу ову концентрације и
Цела школа инжењеринга, па сам веома га препоручујем
и добродошли вас да нас ЦС50 породици.
>> Ианив ИАЦОБИ: ЦС50 само да вас учи како да користе алате
који су широко доступни.
Ви само треба лаптоп, морате веб бровсер, а ви
Треба да научи да напише неки код, а ви заиста можете изградити
уредне ствари.
>> КАРЕН КСИАО: То је само тако цоол да би могли да направимо нешто
и да га људи користе и да људи то виде, и то је
шта стварно волим о томе.
>> ТИМ МцЛаугхлин: - осећај заједништва, мислим, у овом
Курс више него било која друга Наравно да сам узима до сада.
Нећеш само узимајући други -
ниси пуњење други услов.
Нећеш само иде на предавања и одлазак на делу.
Али ви радите тона ствари које су све о
програмирање и све о технологији, али то није то
Стварно се осећам као класи већину времена.
>> Травис падове: А првог дана, они су делили торту, и
Је одмах сам продао.
>> ЈАЦОБ Притт: Бесплатно бомбона и пица.
>> ЗАМИЛА Цхан: - без обзира на каматну нивоу, мислим
да ЦС50 ћете забавити, а ви ћете бити интелектуално
стимулисан.
>> МАРК грозен-СМИТХ: То је увек странка у класи, и то је
Странка сваке ноћи раде на свом п-сета.
>> ЈАЦКСОН СТЕИНКАМП: Сваки пут када завршите проблема скуп, можете
ће се осећати као да сте завршили пројекат.
>> МЕЛИССА НИУ: То је био бруцош, и ја сам урадио у куповину.
Имао сам четири часа спремни, а ја сам био у Анненберг.
И налетети на пријатеља, а он каже, хеј, ја куповину
Ова класа зове ЦС50, и требало би да пођеш са мном.
Завршио узимајући га тај пад, а после тој класи, ја
мислио да ћу молу у ЦС.
Али овде сам, три године касније, још увек студира рачунар
наука и заправо то ради као главни, а ја сам волео сваки
Тренутак њега.
>> РОБ Бовден: Немам појма.
>> АЛИ НАХМ: Хајде да видимо.
>> МЕЛИССА НИУ: Лудило.
>> ПРЕДСЕДНИК 1: Осећам се као да сам веома клише.
Само бих рекао, као, супер.
>> Ианив ИАЦОБИ: Приступачност.
>> ЈАЦОБ Притт: Бесплатно бомбона и пица.
>> ТРАВИС Довнс: Не могу да одбијем класу која руке торту.
>> ТИМ МцЛаугхлин: Енергетски.
>> Випул Схекхават: Ессентиал.
>> РОБ Бовден: Пусти ме да размислим о одговор.
Мислим да имам нешто.
Ох, Боже.
Да, моје име је Роб Бовден, а ово је ЦС50.
>> [Апплаусе]
ДАВИД Малан: У реду, хајде да почнемо да наслика слику
у смеру у коме можемо ићи, и идемо уведу
овај концепт овде познат као Псеудокод.
Дакле Псеудокод није програмирање
језик за себе.
То је ништа техничко по себи, али то је само нека врста
Општи начин изражавања себе прилично прецизно,
прилично алгоритамски, прилично процедурално, али без
морате да бринете о ком језику се изражава
сами за
То је нека модел енглеског и програмских језика са
која вам се деси да буде упознат, тако да можемо да почнемо
писања овакве ствари као и ми идемо.
И, у ствари, Јосиф, да сам те позајмим на бини буде
писар овде?
Сам испред сам отишла овде у унапред и заборавио да стави
на неким чарапе данас, и то ће бити наш међу више
смешне примери.
>> Сада, требаш овде.
Ја ћу чарапе део.
Дакле, овде имамо мали нотес.
Ово је буквално само ТектЕдит у Мац.
Нећемо заправо дешава да напише извршном програм, али
ми ћемо само да почне скицирање од Псеудокод бази
на неке од бранилаца сте дали за мене овде.
Дакле, овде је мој гомила чарапа код куће.
Немам чарапе о томе када се пробудим ујутру, а сада
треба да напише програм, алгоритам сорти, са којим
да се ове чарапе на ногама.
И успут, да видимо да ли можемо саплели, или сусрет,
неке од идеја да ћеш морати да почне
размишљам о много озбиљније кад програмирање
не би ваши програми не понашају баш како треба.
>> Тако да седнем овде.
Имам своју гомилу чарапа.
Шта је прва ствар коју разуман човек би
до када је циљ да се стави на пар чарапа?
Неко ми један корак, а само један корак.
Да?
ПУБЛИКА: Бенд доле.
ДАВИД Малан: Бенд доле, ОК.
Корак два.
ПУБЛИКА: Подигни чарапу.
ДАВИД Малан: Подигните чарапу.
Ок, па мало нејасноћа овде, и то је један од прва
камен спотицања да смо требало да намерно
сусрести овде.
То је мало нејасна, тако да подигнете чарапу.
Добро, ја ћу узети ову једну, али компјутер, оствари у само
битни, неће имати ту врсту људске инстинкт за само
одабрати најближу један.
Ми ћемо морати да почне пре дуго, изражавајући
сами прецизније.
>> У реду, тако да корак два је подигнете чарапу.
Ми ћемо га узети.
Корак три.
У леђа.
ПУБЛИКА: Пронађите одговарајући пар.
ДАВИД Малан: Пронађите одговарајући пар.
Ок, ово је добро.
Морао сам да одаберете ову чарапу.
Дакле, циљ је да се пронађе подударање чарапу, сада, али шта
то знаци?
Разумно људско биће, баш као у среду, када сам
знао како да пронађете Мајк Смит у телефонском именику, некако
отишао са својим инстинктом.
Али овде, очигледно је ово чарапа овде, али компјутер је
неће бити тако инстинктивно.
Рачунар ће имати колекцију бита, као што смо
разговарали су у среду, а то су
организовао некако у меморији.
Али поента је да рачунар има само могућност
да погледамо ствари једну по једну, и, у ствари, и ми
људи - иако осећа као да сам погледао доле и подела
Секунд касније знам где чарапа је мој мозак и моје очи
вероватно си брз обраног тих чарапа, а затим резом
на оне у питању.
>> Дакле, ако будемо сви више намерна сада као рачунар,
како да надјем тај подударања пар?
Па, морамо да прелазили.
Морамо да можда петље преко овог нереда чарапа на
спрат где сам рекао нешто слично ЗА СВАКУ чарапа, подигни
горе, И АКО ОНДА истог облика и величине као другог,
тачка, тачка, тачка, ми ћемо наставити причу.
Дакле, за сваку чарапа, тако да покупим ово.
Ја проверите је ово једнако овоме.
То није, па сам ставио по страни страну.
Онда сам опет прелазили.
Да ли је ово једна једнаки?
Не, није, па сам га ставио по страни.
Је ли ово?
Не.
Ово је један?
Не, и тако даље.
И на крају, надамо се, ја ћу овде наићи на ову чарапу.
Дакле, ако је истог облика, величине, узми.
>> А сада, шта ће овде бити наш следећи корак?
Да?
ПУБЛИКА: Утврдити десно од лево.
ДАВИД Малан: Ок, идентификују десно и лево, па
срећом, та врста радова.
Мало симетрични, или управо сам их носио на тај начин.
У реду, па сам идентификовао право.
А сада, пре него што наставите, дозволите ми да истакнем оно што је Јосиф
Овде се ради као врсти верзиран програмера.
Дакле, опет, нема један начин да се то уради, али даље од
нумерисање редова, Џозеф је већ почела да се то уради
врста увлачења.
Заиста, ово је веома чест конвенција у програмирању,
при чему када се нешто итеративан, петље стил, као и
смо подразумева са енглеском фразом "за сваки
чарапа "конвенцију у Псеудокод и, као што ћемо видети,
нормалне програмски језици, да једноставно увлачење.
Хит размакницу неколико пута, ударио тастер Таб или слично,
тако да угнежђена испод "ЗА СВАКУ чарапа" је комад
ствари које морате да урадите као резултат тог петље.
Тако да је све што је семантички преношења.
Сада међувремену, "Ако је то исти облик и величину", рекао је
Чињеница да је "Таке ит" је увучен и даље само значи
то је једина ствар коју треба да урадите ако тај услов,
ако то грана, која виљушка на путу, је у ствари истина.
>> Дакле, сада овде, ми смо на корак четири, идентификују десно и лево.
Сам у праву сам идентификовао.
Дај ми корак пет.
И технички, ми смо стварно могли назвати
ЗА СВАКУ ствари -
вероватно би требало пребројати све линије ако
ћемо да урадимо ово.
Јосепх: [ИНАУДИБЛЕ]
ДАВИД Малан: [ИНАУДИБЛЕ]?
Ок, добро, у реду, ми ћемо то урадити на свој начин.
У реду, тако да корак пет, како да радимо праву чарапу?
Како ми наставимо даље, овде?
Да?
ПУБЛИКА: Подигните десну ногу.
ДАВИД Малан: Подигни десну ногу, у реду.
Корак шест?
Брзо.
Да.
ПУБЛИКА: Пронађите отворену крај чарапа.
ДАВИД Малан: Добро, наћи отворену крај чарапа.
Тако добро.
Па ево, искрено, веома чест нагон би само
ставити на десну чарапу, али и то је прилично нејасан.
Осим рачунар или људски тачно зна шта то значи,
то неће бити да изврши то, ево, ја сам
нашао отварање залихе.
Корак седам?
ПУБЛИКА: Додирните прсте.
ДАВИД Малан: Тоуцх прсти.
Ок, сада идемо -
У реду, ја ћу овде да предузме неке слободе.
Хвала.
Корак осам?
Стави чарапу.
Ок, сад сам, мислим да смо близу смо довољно некако узме
ово код куће.
У реду, тако да ово иде горе.
Ја ћу узети неке слободе и шта то значи, у ствари.
Стави чарапу он.
У реду, сада корак девет?
ПУБЛИКА: Пут ногом.
ДАВИД Малан: Хвала вам.
Корак девет, стави ногу на доле, а сада можемо поновити.
Па ваљда, сада можемо да идемо у корак 10 и кажу идентификовати
оставио чарапу, али то је вероватно већ урађено.
>> И тако онда, могу некако поновите ове кораке.
Али ова врста намеће питање.
Пре, последњи пут кад смо хтели да понове нешто, ми
урадио то итеративно, опет и опет, ЗА
Свака петља се тако изразим.
Да ли би било смисла да користе петљу да би се дотицати
лево и десно чарапа?
Пошто се осећа као да су ови послови су прилично
идентичне осим чињенице да је један почиње овде и једна
почиње овде?
Да ли ми петље, или ми само настави писања кораке
10 и 11 и 12?
ПУБЛИКА: петља.
>> ДАВИД Малан: Ок, па петља.
Ја стварно могао да каже само наставите.
Дакле, зашто је то тако?
Па, ово је заправо први нашег не-очигледна
дизајн одлуке, а у ствари, један од показатеља са којима
ћемо почети да процењују, за себе и за вас,
Квалитет програма је само колико добро осмишљен је.
Да ли сте урадили минималну количину рада неопходне за
се посао уради највише брзо, било у погледу
ваше време, или у смислу трајању рачунара?
Колико операција је потребно да се изврши?
Дакле вероватно, ово је прилика за петљу јер
чим почнем копирања и лепљења, као Јосиф ефикасно
би почети радити у једном тренутку, ви сте некако губите
време, а ти си био двоструко изражајне.
>> Али у исто време, то су заиста само два специјална
случајеви, лево и десно.
И док раније, можда има 10, 20 или више чарапа у
гомила, то дефинитивно има смисла да нема 50 линије
Код рекавши проверите ову чарапу, а онда следећи,
онда следећи.
Ево, то је мање очигледно, и ја бих предложио
да бисмо могли ићи било којим путем.
Ми или да имају ту петљу, иако је само петље
два пута, или можемо једноставно да копирате и налепите само мало
овде би добили посао.
Али овај програм је луд, да тако кажем.
То можда има неке грешке, грешке или угаоне случајева, тако да
говори, да ми није стварно предвиде.
Ништа није у реду овај пут, али оно што је могао да пошло наопако
приликом извршавања овог програма?
ПУБЛИКА: Ви немате никакве чарапе.
>> ДАВИД Малан: Значи није могло бити никаквих чарапе тамо уопште.
Дакле, размотримо тај случај углу.
Дакле, ако бисмо могли поново помицати до корак један, па корак један је био
савијем, тако да провери.
Корак два, покупи своје чарапе, али онда је подударања чарапу,
идентификовати праву.
Ми смо некако направили гомилу претпоставки, а то је,
искрено, зашто програм понекад срушити.
Уколико сте програмер, направио одређене претпоставке, као што су
сигурно ће бити чарапе или сигурно се дешава
да сећање остане у рачунару, сигурно ће
да буде простор на диску остало на хард диску -
Па, ако сте направили ове претпоставке, а то није,
у ствари, стварност, ко зна шта се понекад рачунар је
ћеш да урадиш?
А понекад, када добијете предење плажу лопту или
смрзнуто Виндовс или слично, то је управо зато што су неки
програмер није предвидео те такозване случајеве углу.
Шта још могу да погрешили у овом програму?
Да?
>> ПУБЛИКА: Ви немате десну ногу и леву ногу.
ДАВИД Малан: Ок, можда имају и десну ногу и
Лева нога, па овај програм не може универзално да буде
примењиво.
Остали?
ПУБЛИКА: Можда сте покупили сироче чарапу.
ДАВИД Малан: можда сам покупио сироче чарапу, тако да
не подударање чарапа да само нема браћу и сестре јер сам
Изгубио га, то је поцепана, то је у перионици и даље, или слично.
Тако да, такође, није баш био рукује.
Да?
ПУБЛИКА: Ви можда већ имате чарапе он.
ДАВИД Малан: Ја сам већ можда има чарапе он.
Нисам стварно провери.
АКО немате чарапе, онда наставите да
линија један и два.
И то се може десити.
Ти заспим са чарапама на и слично, тако да
то је, такође, веома разуман кутак случај.
А можда неко други?
ПУБЛИКА: чарапа је наопачке.
ДАВИД Малан: Дакле чарапа је унутра напоље, тако да смо урадили никакву грешку
провере, укратко.
Нисмо проверили да ли држава света као што смо очекивали.
Нисмо проверили да ли смо заиста пронашли оно што сте тражили.
>> И мада је то нека врста смешном примеру
укључујући чарапе, на крају крајева, то је управо
врста размишљања морате да имате при писању програма,
чак иу нуле, као иу Ц, ЈаваСцрипт, у ПХП,
јер у супротном, ваши програми ће излагати
еквивалент тог предење плажу лопту или само дати
нетачне резултате.
Дакле, много хвала овде нашем писара Јосифу.
[Апплаусе]
>> ДАВИД Малан: У реду, па шта је, у
Чињеница, компјутерски програм?
Па, хајде да завири у
Представник никога.
Дакле, ово је програм написан у језику зове Ц Ц
прилично стара ових дана, али многи новији језици су изграђени
на врху тога.
Заиста, ПХП, један од веб-оријентисаних језика ћемо
користити пред крај термина, и сама има оно што се зове
преводилац, програм који је написан у Ц, али више о томе
у многим недеље од сада.
Али овај програм, а то је оно што значи да напише
Програм, иако врло једноставна.
Ми овде имамо неке прилично шифровану синтаксу, али можете
Вероватно претпостављам, чак и ако никада нисте програмирали раније, што
овај програм ради.
Заиста, ја не знам шта је иф, али сигурно штампати
дочарава идеју штампања нешто.
И тако да, овај програм је на крају ће да одштампате
речи "Хелло, ворлд."
>> Сад, да ли имате Мац или ПЦ или Линук рачунара, квоте
су, барем ако сте скинули неки слободно
доступан софтвер, могли сте писали програме
свој лаптоп за дуже време.
На Мац ОС, на пример, постоји овај програм зове
Терминал који долази са Мац, то је обично у вашој
Комуналне фолдер, и то углавном отвара црно
бела или црна и бела прозор у коме имате
питати у којој можете да откуцате команде.
Дакле, ово је заправо подсећа на оно што компјутери
некад раније графичким
интерфејса, ГУИ, дошла.
Сада, у Виндовсу, ви имате сличан механизам у облику
у командној линији.
>> Али шта ћу да урадим овде је отворен до, рецимо,
ТектЕдит опет, тако да исти програм смо користили за
Пре Псеудокод тренутак, а ја ћу да наставим и
напише свој први програм.
Укључите стдио.х, шта год то значило, маин
празнина, шта год то значило, а затим у средини овде,
принтф ("Здраво, свете."). А онда затвори цитат
затвори заграда, зарез.
Сада ћу да идем напред и само ударио Цомманд-С. Идем
да иде напред и сачувајте ово као хелло.ц, тако конвенцији у
свет Ц програмирања је навести датотеке дот ц.
Ја ћу само да стави у почетном директоријуму Џона харвардском,
овде, кликните на дугме Сачувај, а сада ћу да одем до овог
прозор терминала, што је опет ова црна и бела брзу
где могу да извршава команде.
>> Ја могу покренути програме куцајући своје име, а не
дуплим кликом иконе у уобичајеном смислу.
Али ствар је у вези Ц је да језик као Ц Година
долази у овом облику, нешто што се зове изворни код.
Нешто што изгледа мало као енглеском језику, али је
Дефинитивно мање као енглеском него Јосифов Псеудокод
Малопре.
То је мало више тајанствени.
Изгледа да пратите неке обрасце или правила.
Чињеница да сам витичасте заграде, зарезом, квоте,
угао заграде, осећа као компјутер дошао са овим
врста језика.
Али ако одем, сада, на овај прозор терминала, могу покренути
Команда која ће конвертовати тај изворни код је
нешто што се зове објектног кода.
То ће конвертовати енглеском налик синтакса на нуле
и они су врсте иста од нуле и јединице ми
говорио среду.
Сада ћу да покренете команду под називом кланг.
Више о томе у недељама које долазе, али то је програм са
који могу конвертовати хелло.ц у гомилу
нула и јединица.
>> Сада сам покренути ову команду.
Ја сам покренути кланг, а онда сам рекао покренути сами на овом фајлу
зове хелло.ц, које сам створио пре тренутак, и
ништа се не чини да се догоди.
Али заиста, ако покед около мом хоме директоријуму, ја би видели
да је ово глупо имену програма а.оут сада постоји.
Ово је само подразумевано име за програм када се пише у
Ц. Можемо заменити на крају, али је а.оут
назив програма сам претвара у нуле и јединице.
И сада када је нула и јединица, мој Мек, у овом случају, или
рачунар Виндовс могу да разумем оне битове, оне
нуле и јединице.
И тако, када сам ударио Ентер, видим "Хелло, ворлд!"
>> Али то је мало луд.
Нисам баш рекао "здраво, свете: ваздух: - јхарвард." Ваздух је
Име мог рачунара.
Јхарвард је име налога, па шта сам јасно
изоставили из програма?
Нека врста линије паузе.
Нисам погодио еквивалент Ентер или царриаге ретурн,
а то је, опет, сведочи чињеница да се рачунари
само оно што кажете да ураде.
А чињеница да ја нисам рекла рачунар преместите
курсор у следећи ред -
добро, то свакако не иде само да то уради
дрско за мене.
Дакле, ако се вратим на мој програм, а ја кажем \ н -
Тако \ н, као ускоро ћемо видети, начин
представља чудне ствари као што су нове линије карактера, ствари
који би иначе био резултат
ударање Ентер тастер.
Али, за сада, само знам да притиском на Ентер тастер ће
само да наш кодекс изгледати чудно, па је одлучио свет, знате
шта, да би се ствари лепше, да га задржи на једној линији, да
само реци \ н представља нову линију.
Дозволите ми да ресаве свој досије, вратите се на прозор терминала, и
поново покренути а.оут, Ентер.
Ипак луд, али зашто?
>> ПУБЛИКА: [ИНАУДИБЛЕ]
ДАВИД Малан: Да, па морам да га компајлирате.
Тако да састави програм само значи претворити га од извора
кода објектног кода, кода до нуле и јединице.
Сада, сама чињеница да сам погодио Сачувај у овом ТектЕдит нема
имајући на оне нуле и јединице, јер сам први пут треба да
Реци цланг хеј, променио сам те линије кода,
изворног кода.
Треба да се регенерише а.оут.
Ништа изгледа да се деси, али у рачунару,
на командној линији, да тако кажем, када се ништа не дешава,
то обично значи све је добро.
Када нешто не деси, то значи
ти забрљао, генерално.
>> Па хајде сада да а.оут, и заиста сада имам "здраво,
свет ".
А сад, шта о овим нула и јединица?
Где, у ствари, су они?
Па, ја стварно не могу некако џаку око веома
ефикасно.
Дозволите ми да отворим ТектЕдит.
Ево а.оут.
Дозволите ми да иде напред и отвори ово, и то је очигледно оно што мој
Програм изгледа.
Зато сам отворио, не хелло.ц, али а.оут.
Али то заправо није оно што мој програм заиста јесте.
Јасно је да је ово нека врста азбучном карактера.
Видим да нема нула и јединица, али ово је
јер је а.оут програм.
Нуле и јединице - али ТектЕдит, као што име сугерише, то је
баш као Бележница на Виндовс, само текст едитор, тако да је
збуњује све те нуле и јединице, као
иако су били, шта?
АСЦИИ карактера.
>> Дакле, сећате се у среду, само смо дошли до ове
произвољно мапирање бројева, односно битова, на писмима
писмо и интерпункције симболи и слично.
Дакле ТектЕдит, да је текст едитор погрешно тумачи
ти обрасци нуле и јединице које су требале да буду
штампање речи, попут "Хелло, ворлд." Он их је приказивање
као АСЦИИ, и зато изгледа мало наопако.
Сада постоје неки наговештаји о исправности у овде.
Обратите пажњу да ли истакли, постоји наговештај ствари "здраво,
свет ", па негде у том програму је
реченица сам написао.
Али идемо напред и сада видим са другом програму.
Ово није једна ћемо користити често, али такође долази са
Мац и биће унутар ЦС50 апарата.
Дозволите ми да иде напред и отворите са програмом под називом КСКСД.
>> Назад у дан, већина програма су названи прилично загонетно,
па тренд се наставља.
Али-б значи пљувати овај програм се као бинарни.
Немојте га покренете.
Покажи ми га као нуле и јединице, и то је Ц
програмирали смо управо написао.
Сада, ја као човек овде, ја искрено немам појма шта
ови различити обрасци нуле и јединице представљају.
Назад у дан, ја сам са мојим песницама картице или слично, би
заправо треба да изгледа оно што ове различите обрасце
01111000, заправо представљају.
Или још горе, ја би требало да урадим просецањем или стварање
ових образаца нула и јединица.
Али за сада, узети на вери тако процесор Интел унутра,
говорити, унутар свих наших рачунара ових дана, не зна
како да тумаче ове нуле и јединице.
А неки нуле и јединице значе отисак.
Неки нуле и јединице значе играју звук.
Неки нуле и јединице значи узети унос корисника из тастатуре.
Има свакаквих разних образаца, али смо срећом,
као људи, само генерално треба да бринете о програмирању на
ово прилично виши ниво.
И у другим класама ЦС можеш копати дубље и погледај
на ствари као што су те нуле и јединице, или још
друге ствари и даље.
>> Дакле, сада идемо конвертовати.
Идемо брзо даље од Ц и прешли на нешто у
мало утешно, мало више узбудљиво, у смислу да
можемо вратити наше анимације и звуке и такве
Јасно нам је побегао у овом
прилично примитивни интерфејс.
Дакле, тај исти програм у Ц се сада заступљени у овом
програмски језик зове Огреби као што следи.
То је еквивалент овог Хелло Ворлд програму написаном
ова слагалица комад стил језик зове нуле.
Зато ме пусти да иде напред и отворити тај програм.
Поново се зове нуле.
То је слободно доступна, и то је иста ствар коју смо
почео је данас у.
>> Дакле, ово овде је Огреби и то је сломљен горе у неколико
различитих комада.
На самом врху десне стране, имамо такозвану фазу, а
Заиста, то је место где су колачићи
обавља пре само мало.
И на тој сцени се ствари називају Спрајтови, карактера, или
предмета, или ентитета.
Није битно како мислиш о њима, али они
су програмибилни, покретне ствари, у овом случају, то
Програм који је наш ученик написао је неколико Гингербреад
колачићи, пар циркуларних колачића, цела гомила
срца, цела гомила наочаре.
Због тога, он или она је у стању да програмира сваки од оних
појединачних карактера одвојено.
>> Дакле, шта то значи програмирати ове ликове?
Па, дозволите ми да иде напред и кликните на овај левој колачића
и дођите преко на горњем левом овде.
У горњем левом мог екрана сада је
тзв скрипте област.
То је нека врста празне шкриљца, у почетку, на који могу
превуците и испустите делове слагалице да, искрено, немој
управо оно што они кажу.
На самом врху ове гомиле слагалице комада је реч
Када Зелена застава Кликнуто, а ако нисте раније приметили,
начин на који сам почео да колачићи песму је кликом, буквално,
зелени застава.
Тако да слагалица комад у горњем левом углу тамо значи када
људска кликне зелена застава, наставио да радим
следеће ствари.
>> Сада, шта су колачић наставити да радим?
Ја стварно не знам како да тумаче ово још, али
Колачић очигледно поставили свој ритам на нулу, онда чекао
три секунде, а онда је променио своју групу на један, онда
Чекали друго, онда променио своје
гроове назад на један.
А онда заиста изгледа као мало грешке, не треба
морати да промени свој ритам поново и поново, осим ако је то
се другде променила, али ова серија корака је оно што је
диктира понашање овом колачићу.
Дакле, хајде да ствари помицати назад и не гледај у нешто
толико комплексна.
Дозволите ми да иде напред и идите на Филе, Нев,
и добити чисту шкриљац.
>> Дакле, сада сам заиста имао празну скрипту простор, празан фази,
са нашим Огреби подразумеваном вилењак, а на горњем левом
на свом екрану имам палети свих њихових
доступних пуззле комада.
И нећемо проћи кроз скоро да су многе од тих ствари
данас, јер, опет, већина су само по себи, али ћемо
покушати да их категоризује и укаже на сличности
са овим будућим језика за које ћемо ронити.
А у горњем левом углу је овде први пут када Зелена застава Кликнуто,
па пусти ме вући ово овде, умањите мало.
А ако кликнем на зелену заставу, ништа стварно не дешава, јер
Нисам везан никакву логику, свака изјава да тако кажем, да
да зелени застава, па пусти ме до
категорија овамо.
Ја тренутно сам у контролној категорији.
Ја уместо идем доле у ​​категорију изгледа, и
постоји гомила ствари овде да кажем Саи,
Размислите, промените боју, костим Свитцх.
>> Дакле, можете да урадите глупе ствари са костима и
звуци и слично.
Пусти ме само напред и само реци Реци, а сада приметио, као што сам превуците
и пустите овај комад слагалице, то ће желети да се ухвате
у одговарајући облик.
Дакле, када сам напред и пустио мог миша, они закључати
заједно, а сада ако ја одем овде и кликните на зелену заставу,
мачка у ствари не поздравим, јер то је оно што је унутра
ове беле кутије.
Ускоро ћемо видети да ова бела кутија је оно што се зове
аргумент или параметар.
То је начин да се промени понашање, у овом случају,
слагалица, али ако хоћу да кажем тачно шта сам рекао
пре, поздрави, свет, сада могу да се вратим овамо,
кликните плаи и "здраво, свете" је оно што је рекао.
>> Дакле, буквално су сада програмирања.
Није све што убедљив програма, али барем
то је мало више него убедљив нешто што изгледа, у
први поглед, овако.
И ми можемо веома брзо добити све израженије
јер у Огреби, као иу другим језицима, има све
врсте изјава, не само Саи или штампање нешто, али
можете да урадите ствари као чека, као што смо управо видели са
колачић, одређени број секунди.
Можете играти звуке у окружењу Огреби само
као што можете у нормалном компјутерског програма звука репродукције.
Можете да проверите шта се зове Булових израза.
Тако сада, почнимо да додате на наш алата неке терминологије
да заправо односи на примеру да је Јосиф и ја урадио
овде са чарапама.
Дакле изјаве су само изјаве о чињеницама.
Урадите ово.
Директива за спрајт, или ја људски, да уради нешто.
Булова израз је нешто што има вредност,
Такозвани истина вредност, то је било нула или један, нетачна или
Истина, искључен или, не или да.
Није битно колико мислиш о овоме, али је
бинарни држава.
Као што је речено у видео Нејт среду, два
различите ствари.
>> Дакле, у Огреби, Булове изразе десити да погледате
као ове плаве предмете овде, и у овом случају, питање
ознака подразумева да питате питање.
Да ли је мачка, или спрајт, додирује миша?
Дакле, ово је само један пример Огреби блока који се дешава
да нам омогуће да провери да или не, је миш додирује
спрајт на екрану?
И то може да буде корисно ако стварно желите да урадите нешто
помоћу миша.
Поред Булових израза, имамо ствари
као је доле миш, тако да могу да открију ту врсту
питање, као добро.
Можемо да урадимо математику ако заиста желите, а ту је и
заправо више убедљиви користи за то него само чиста
аритметика, као што ћемо видети.
Псеудо случајност и чинећи ваш програм изгледа да мисле
или да се понашају другачије на основу неких наизглед случајних вредности,
и онда имамо такве ствари Булових израза попут И.
Дакле, ако сте заиста желите да проверите две вредности, ми ћемо видети у
Сцратцх да заправо може да тестира да ли је ово
истина и то је истина.
На пример, у случају мојих чарапа, могао сам на
Сам крај је поставио питање да ли лева чарапа је на реду и чарапа
је он, отказ.
Ти си све урађено за тај дан, тако да би
прилика за то.
>> Зато идемо напред и покушати да склопе неки од њих заједно
и иди у пар примера више
убедљив од овог.
Зато ме пусти да иде напред и овде отворим неки од примера
да ће увек бити на сајту наравно као добро, и
отвори хелло2.
Дакле, у хелло2 овде, имамо програм који се раде неке
ствари, али то није то раде ефикасно као што би могао.
Дакле, овде се каже "здраво, свете" за једну секунду, а затим чека
за секунду.
И онда то ради поново, а онда то ради поново.
Дакле, ако кликнем на зелену заставу, Огреби каже: "Здраво, свете.
Здраво, свете.
Здраво, свете. "И ово је очигледно кандидат сада
побољшање.
>> Шта је маргинална побољшања, надам се, можемо
Сада би, ако Огреби подржава концепт?
Нека врста петље.
Нека врста понављања, сада би било лепо, тако ми дозволите
заправо покушати то.
Дозволите ми заправо иде и померите ово.
Дакле, обавештење може одвојити блокова лако као можете додати
приложите их.
Пусти ме да идем под контролом, скролујте доле, и заиста,
овде је то слагалица комад, Понављање и Заувек и
Заувек Уколико.
Дакле, постоји неколико начина да се изрази петље конструката
у нуле.
Коју сам вероватно желите овде није Заувек јер сам само
Желим да се то деси три пута, али вероватно Репеат.
Дакле, дозволите ми да превучете Поновите овде, превуците и отпустите га, а
Сада, уместо да "Хелло, Ворлд" три одвојена пута,
дозволите ми да превучете овај комад слагалице овде.
И иако не изгледа да стане, програм је паметан
довољно да схвати да ће нарасти до попуне, тако да је
облици који материје, а не апсолутна величина.
Дозволите ми да промените понављање на три, а сада пусти ме да одем
напред и повуците Чекај Оне Сецонд тамо као добро.
То ће пуцкање у што добро, па сад ћу да превучете
ови момци овде и само их баци, јер сам
да их не треба више.
Дозволите ми да умањите и кликните сада зелену заставу, и имамо
Исти програм, али, као што сам предвидео раније, боље
дизајниран јер можете замислити како лоше овај програм
добити, свакако естетски, ако би морао да
почети копирање и лепљење, копирање и лепљење, или
превлачењем и отпуштањем исте дарн ствари поново и поново.
>> Сада, једноставно говорећи ствари на екрану, штампање
екран, заиста све то није узбудљиво, па хајде да отворимо
Трећа варијација овде.
И сада, као што ћете видети, ово ће брзо доћи нервира -
[МЕОВ]
ДАВИД Малан: - али је такође сладак.
[МЕОВ]
ДАВИД Малан: Ок, па боље и сигурно можемо искористити
Исто транзиција комадање ово у петље
структура, али хајде да га више занимљив и даље.
>> Дозволите ми да иде напред и отворити овде четврту варијансу, где сам
узети ствари један корак даље.
Дакле, по овоме, иако је ово глупо је најпре
поглед, оно што се овај програм ће да уради?
То ће Мијау једном.
Зашто?
Па, један је, колико ја знам, увек мање од два.
Овде нема појам случајности.
Имам буквално тешко кодирана један и два, али ово је
Пример сада од ствари помоћу Булову израз.
Много волим као Јосиф у свом Псеудокод, улегнуће ИФ
вам одговарају чарапе затим урадите следеће, овде имамо
израз ако је мање од два онда -
ау ствари ми ни мало увлачења,
где љубичаста је увучен параграф на десно -
Онда ћеш играти звука Мијау.
Сада, у овом случају, то је један увек мање од два, па је ово
је врста отпада на стању.
Али ми ћемо моћи, као што ћемо видети, да се прикључите и друге ствари у
ови Чувари где један и два сада.
Дакле, хајде да се сада прешли на пример пет ових неколико
хеллос и поглед на оно што овај програм ће урадити.
>> Дакле, сада, у енглеској реченици, како ово ради
Програм се понаша?
ПУБЛИКА: Меовс половину времена.
ДАВИД Малан: Мијау је половина времена, тако да је ово начин
преносећи веома једноставну идеју.
Иако смо се десити да се овде користи неке неједнакости
у неким бројевима, то је заиста само программатицал
начин, прецизан начин, да се каже да новчић дође до главе, иди
напред и мијау.
Или обрнуто, ако новчић дође до репове, не мијау.
И у овом случају, како изражавамо то?
Ми ћемо изабрати произвољан број од 1 до 10, а ако се то
број је мањи од 6, само напред и мијау.
А како је то добити овде?
Па опет, приметио само превлачењем и отпуштањем и
ствари резе на место.
>> Дакле, хајде да видимо да ли то случајност ради.
Дозволите ми да иде напред и кликните на зелену заставу.
[МЕОВ]
ДАВИД Малан: У реду.
[МЕОВ]
ДАВИД Малан: У реду.
Ок, добро, тако да смо добили главе, главе, реп ефикасно.
Писмо.
[МЕОВ]
ДАВИД Малан: Глава.
[МЕОВ]
ДАВИД Малан: Одлично.
Увек је незгодно када се само статистички добијете лош
рок, и то је све главе, а програм у ствари не
ради као да ћеш се надамо.
Али овај пут, он је радио, а ми изгледа да има, ако смо урадили
ово бесконачан број пута, 50% квоте.
Сада опет, није толико интересантно, само што мачке
мијау, па хајде да видимо, ако не можемо напредовати ово мало даље
овде у верзији шест.
Дакле, сада имамо стварно досадне верзију -
[МЕОВС сваких неколико секунди]
ДАВИД Малан: - а то је оно што је познато, општи, као и
бесконачна петља.
>> Дакле, бесконачна петља у овом случају осећа лоше.
Дефинитивно ће почети звучи лоше, а ипак бесконачно
петље нису увек лоше.
Да ли мислите о контексту у компјутерске програме у којима желите да
заправо желим бесконачну петља?
Да?
ПУБЛИКА: Када желите да проверите стање.
ДАВИД Малан: Добро, када желите да редовно проверавате стање?
Као шта?
ПУБЛИКА: [ИНАУДИБЛЕ]
ДАВИД Малан: Добро, добро, па ако сте имали неки програм, неки
такве ствари кућне аутоматизације, где желите да се стално
монитор је нешто случај.
Да ли су светла?
Да ли су светла на јер можда имате тајмер, и
желиш да одеш, можда ћете морати да урадите нешто
поново и поново.
И, у ствари, говори о тајмерима, сваки од вас који су
часовници на рачунару или дигиталне сатове, то је
бесконачна петља.
Она наставља да ажурира време, јер стално је
провере и провере и провере има времена променила,
и ако је тако, ох, мој боже.
Сат је коначно променио.
Потребно је приказати ту вредност за вас.
Дакле, док је највећи део времена бесконачних петљи су грешка,
или барем лошег дизајна одлуку, понекад раде
имају своју вредност.
>> Па, хајде да даље напредују овде да хелло7.
Тако сада програм ће добити мало више интерактиван.
Дозволите ми да увећате овде, и опет, то је оно што је лепо
око нуле.
А ми ћемо га користити да би било јасно, Огреби, само данас и у
наредну седмицу проблем постављен.
Међутим, у понедељак ћемо заронити у Ц. У овом програму овде ради,
заувек, следеће.
АКО додиривање показивача миша - сада, ко је
Контекст овде?
Па, и обавештење да ко је изабрана доле на дну
Право је мачка, један дух, тако да ове скрипте, овај
програм се односи на њега конкретно.
Дакле, ако је мачка додирује миша, онда ће
да играју ово доле и сачекати две секунде, а
затим поновите наусеум огласа.
>> Зато идемо напред и ударио игру.
Ништа се не дешава, али ако желим да помазиш
мачка сада, једноставно сам могао.
[МЕОВ]
ДАВИД Малан: Предивна.
[МЕОВ]
ДАВИД Малан: Ок, мање досадна, али и добија досадно,
па да идемо даље и да видимо, ако не можемо убризгати
мало логике.
То је пример седам.
>> Овде у примеру осам, ми ћемо
уведе ЈОШ стање.
Толико као дословном раскршћу, у којима можете отићи
лево или десно можете ићи, стање у програмирању
језик као нуле, или као што ћемо видети Ц, може дозволити да
иде у једном смеру или други преко АКО ЈОШ конструкт.
Дакле буквално, АКО додирује миша, ова
ће играти неки звук, иначе ће то играти овај други
звук, мијау.
Сада, ако можете закључити из имена ових звукова, можете
Вероватно знате шта овај програм је требало да дочара
идеја.
Ова мачка је срећно меовинг.
[МЕОВ]
ДАВИД Малан: Срећом, али не
прилично воле да се додирују.
[Грми]
ДАВИД Малан: Дакле, сада имамо мачку која ће викати на тебе.
>> Добро, добро, један, последњи пример са мачкама овде, и
Хајде да отворимо верзију девет ово овде.
Дакле, сада имамо следећу највише смета звук који сам могао
наћи, тако да имамо морж или морски лав овде ко ће да
урадите следеће.
[ПЕЧАТ ЛАЈАЊА]
ДАВИД Малан: Ок, тако да ће ићи док не схватите како
овај програм ради.
Дакле, овај пут, ова животиња има два писма, и оно што је
Интересантно је што су ове скрипте ће извршити
паралелно.
Зато јер оба почињу са једним зеленим заставом кликне,
то је као да иде овако, а оба програма покренути га
једном, чак и ако они заувек петље.
Дакле, у горњем сценарију, имам неку логику.
Шта карактерише то да обезбеде до тамо?
[ПЕЧАТ ЛАЈАЊА]
ПУБЛИКА: [ИНАУДИБЛЕ]
ДАВИД Малан: Ако је то оно?
[ПЕЧАТ ЛАЈАЊА]
ПУБЛИКА: Ако искључен на нулу, то ће наставити да игра
звучи. [ПЕЧАТ ЛАЈАЊА]
ДАВИД Малан: Добро, добро.
Дакле, ако искључен, шта год да је ово, ова наранџаста ствар је нула,
ОНДА играти морски лав звук и мисле: "О,
здраво ", за две секунде.
Сада, ја не знам шта је искључен је, али нула дочарава
Идеја лажну или искључен.
Дакле, ако искључен је лажна, па ако не искључује,
наставити да игра звук.
Добро, добро, како ћемо онемогућити ову ствар?
>> Па, хајде да погледамо други сценарио доле.
Други сценарио каже постављен мутиран на нулу.
Обавештење је такође наранџасто, па шта је то Огреби не боје
блокови у истом хладу ако је нека
од логично повезане.
Дакле, као што искључује до врха била наранџаста, па је искључен доле
помиње у наранџастом блоку.
Али ово је променљива задатке, па као у
алгебра, имате Кс и И и З, у програмирању имате
променљиве, али су они генерално си -
хајде да застанемо на тренутак и фигура како
да зауставе овај лајање.
Како ово да урадим?
[ПЕЧАТ ЛАЈАЊА]
ДАВИД Малан: У реду.
Престало. Ок.
>> Дакле, баш као у алгебри имате променљиве Кс, И и З, али у
програмирање, имајући променљиве као к, и и з је генерално
неодобравањем, јер они нису уопште изражајне.
Они немају никакву семантичку значење, тако да је у већини
програмски језици, променљиве могу да имају пуну
опремљени имена или речи или фразе, као пригушен, да кажем
оно што они раде.
Дакле, овај други сценарио, такође је заувек слушао, и рекао
ако тастер, тастатура кључ Простор је
притисне, знак питања.
Дакле, ту је стање са боолеан израз који је
ће одговорити на питање било истинито или лажно,
онда морам унутар ње АКО простор притисне тастер И
АКО искључен је нула, подесите искључен један, иначе постављена мутиран на нулу.
Дакле, овај други виљушка на путу, а обавештење како сам
угнездио две ИФ услова, је начин провере је
Размакница притисне, јер ако је тако, ја желим да идем било то
или онакви.
И како ја инвертује вредност искључен?
Морам да проверим да ли је нула?
Ако је тако, да је то један, други чине га нула на стога тоггле
њене две државе.
>> У реду, па онда имамо неке од ових основних
конструкти.
Имамо Булове изразе и остваре, такође, то су
Није све то непознато.
У ствари, овде је брзо сцреенсхот Харварду курс је ЦС50
куповина алата и било који веб сајт тамо која има квадратиће
и пад падова су заиста, све ово време, био помоћу
Булове изразе.
У том случају овде, ако кликнете на квадратић поред
Курс већи или једнак 4,5, односно иста поред
факултет, ти навођењем Булову израз.
Покажи ми курсеве за које тај израз је истина.
Или десно, не долази у сукоб са курсевима сам
узимање, ако је то провери, онда да, желите да проверите
тај услов, још желите да га игноришу.
Дакле Логички изрази су некако свуда около, али када
ми смо их ставили у условима, да ли ако су испуњени услови, АКО
ЕЛСЕс, или можемо чак симулира дубље
нивои, АКО иф друго -
тако да је то нека врста тернарном државе.
Можете да одете на овај начин, или овако или на овај нацин.
Можемо задржати гнезде ствари да иду у различитим правцима.
>> Дакле Огреби има ове петље, као Заувек.
Она има ове особине као што су понављање 10, неки
коначан број пута.
Ми имамо могућност да подесите променљиве сада, тако да у овом случају
Сам изјавио да, на пример, променљиву зове чарапе.
Сам иницијализован сам на 0, и то је још један правац
могли смо узети овде са Јосифом, чиме можда
Само пратите колико чарапе имам на и раскинути
програм када се та променљива је вредност 2.
То би био један од начина да се некако уопштавања
проблем и радите нешто изнова и изнова.
Па, хајде да идемо напред и сада уведе неколико нових ствари.
Дакле, оне од вас са претходним искуством програмирање ће
Знам да много језицима имају низове, или векторе или
листа, и заиста, Огреби има нешто овако, превише.
Дакле, хајде да видимо, ако не можемо узети ствари на следећи ниво овде.
Ако имам могућност, сада, са овим слагалице комада у
нешто додати, као реч или број, променљивој, могу
почети да се акумулирају ствари.
И то је заправо прилично односно за ствари као што су игре,
играње улога игре у којима сте нека врста шетају
нека фантазија свет сакупљање ствари, брање горе ствари,
зарађују поене, или слично.
Можда ћете желети да пратите неке врсте залиха и
Заиста, то је оно што је један од наших бивших студената овде учинио са
нешто што се зове Фруитцрафт РПГ.
>> Зато ме пусти да иде напред и отворити овде ову ствар, а
Фруитцрафт, имамо овај свет горе на врху.
Зато ме пусти да иде напред и кликните на зелену заставу.
Обавештење у горњем левом углу је нека врста инвентара.
То је реализован у Огреби и оно што ћемо назвати низ или
листа, а сада имамо ову малу анимацију.
Дакле, као што смо раније почели са овом причом колачића љубави,
а онда смо напредовали на мачке и морске лавове, сада можемо имати
ствари које су још више интерактивна.
А овај мали плави момак, могу почети да се крећу око његовог
мали дом овде.
Тако да изгледа као да има излаз овде, па ја користим
Стрелице тастери, горе, доле, лево десно.
И сада сам напољу, па нека је оно што сам овде.
Изгледа као поморанџе, и заиста, чим додирнем
наранџаста, она бива плоппед у мој инвентар.
Ако ја одем овамо у трешњама, сад имам нешто
другде у мојој понуди.
И то је све лепо и слатко, али размишљам о томе како, сада, ово
се спроводи.
Па, ми имамо представу о некој листи, и то је очигледно
слагалица комад који сте управо рекли оно што желите да додате на њега, додајте
наранџаста, додајте вишње.
Сада, шта је овај мали плави момак ради?
Па, он је дух.
И вероватно, наранџаста и вишње -
они сами су били одвојени спрајтови.
И помоћу Булових услове у изразима, у
Ученик је вероватно у стању да изразе АКО плави момак је
додирују трешње затим додајте вишње речи на његову
инвентар, а затим и сакрити вишње спрајт.
Дакле, испод хаубе, и даље постоји вероватно је трешња
спрајт тамо.
Управо смо то рекли да постане ефикасно невидљив.
>> Сада, ако настави да ходаш овде, такође можете да урадите
проксимални ствар, где могу да одем и прочита знак.
Дакле, ако плави момак додиривање знак, можемо имати овај блок кажу
баш као мачка говорио нам је у речима, здраво, раније, "Гот
неке воће?
Донеси га воћа месту "У реду, тако да је сада, очигледно.,
Ја имам своје правце.
Ја могу да идем овде на воћа место, построје се горе
са вратима.
Сада сам овде.
Ја могу да одем до човека на шалтеру.
Он открива да сам близу њега, тако да не мора да буде
сасвим идентично додиривање, и ја сам добио утакмицу.
Значи имамо Фруитцрафт РПГ.
>> Тако да можемо да радимо ствари још напредније од овога.
Можемо додати звуке.
Можемо додати псеудо случајности.
Можемо додати комплексност.
Пусти ме напред овде, и уместо урадили себе,
дозволите ми да вам покажем једну од више софистициране поднеске
смо добили прошле године из одређеног некога по имену Блејк.
Да имамо једну добровољац који је удобно се појављују на
камера и за играње игрица?
Како би тамо?
Хајде горе.
У реду, игра која сте управо несвесно
добровољно да се играју -
[Апплаусе]
ДАВИД Малан: - је нешто од прошла зове
"Фроггер". Како се зовеш?
Ренда: Ренда.
ДАВИД Малан: Редна?
Ренда: То је као са Брендом б.
ДАВИД Малан: Ок, Ренда.
Дејвид.
Драго ми је што смо се упознали.
>> Дакле, овде у "Фроггер", а ако бисмо могли да једноставно подигне обим
мало, ти си ово мало
зелена жаба на дну.
Можете користити лево, десно, горе и доле, а ваш циљ је да
прелазе улицу, прелазе реку, и додирните љиљанима
на врху.
Ав.
Оне море т -
редо, у реду?
Хајдемо стоп.
Нико није видео то.
[Апплаусе]
ДАВИД Малан: Да.
Врло добро урађено.
Одлично, хвала.
>> Тако да је било Фроггер. Сада када знате шта сте
стечен себе у један више волонтера за различите
Игра је поднела другом ученику.
Хоћеш да дођем горе?
Које је твоје име?
Рицхард: Ричард.
ДАВИД Малан: Ричард.
У реду, Ричард, хајде горе.
[Апплаусе]
ДАВИД Малан: Ви имате нешто што ће звучати
познато ускоро, па ево су ваши инструкције.
Дакле, у једном тренутку, неке слагалице комада иду за листање нагоре
на екрану који изгледају или левом
или десно горе или доле.
Ти ћеш морати да удари тастере са стрелицама на такав начин
да одговара на оне делове слагалице облоге са
Чувари су на врху.
Дакле, када видите леву стрелицу, а она линија са леве стране
стрелица, погодио леву стрелицу.
Можете да почнете.
[МУЗИКА - "јачи" Каине Вест]
ДАВИД Малан: Добро, велики аплауз за Ричарда.
[Апплаусе]
ДАВИД Малан: Врло добро урађено.
Хвала.
[Апплаусе]
>> ДАВИД Малан: Значи забавно и, наизглед, тако некако
застрашујуће као што можда да спроведе нешто што
наизглед префињена као ово, схватамо да ученик
није кренуо и само пишем све ово одједном.
Уместо тога, можете разбити проблем као наизглед сложен
јер то у много мање комаде, и то је, такође,
Биће тема.
Најгоре што можете да урадите у писању програма у већини било
језик је да седнете, добити заиста узбуђен, пише
Цела проклета ствар, а онда се само надам да ово ради
Време завршите са писањем.
Уместо тога, процес програмирања треба генерално
бити врло намерно, врло итеративни, при чему само
постављени веома мале кораке за себе, залогај величине комада
да ли желиш да одгризе, па да имате ове разум
чекови, мали прекретнице можете срести.
И онда гради на врху оне стварају више
софистицирани ствари даље.
>> Тако, на пример, како да идемо о
имплементацији игру овако?
Па, искрено, сигурно бих почети управо
подржавајући један тастер у исто време.
Хајде да спроведе подршку за леву стрелицу.
Тако ученик морао да се некако створе у Пхотосхоп-у, или у
Загребите се користи мали графички уредник, један
стрелица која изгледа као онај на врху оставио тамо, само
сиви чувар места.
Тада ученик морао да схватим шта су к, и координирају
стави га, где да га ставим у прозору.
0, 0 је горе, тако да морате да схватите број
пиксела, или тачке, да надокнади ту стрелу из
врху екрана.
И онда када је то на месту, ваш програм не стварно
ништа није тако онда треба други спрајт, за
На пример зелена стрелица која је такође указујући лево, а ти
онда треба да почнете да пишете неке скрипте за то.
>> А ви приметили, можда, која је почела ове ствари долазе на
различите брзине, а боје су у различитим
локацијама, и да је због тога ученик користио мало
псеудо случајност.
И по псеудо случајности, ја само мислим изаберем број
између нечега и нешто што можете
почети да мапи ствари, као да је број између један и
пет, добро, хајде да направимо нешто зелено.
Ако је између 6 и 10 година, хајде да направимо комад слагалице
црвени уместо тога.
Докле год имате начин генерисања некакву
случајност, онда може доносити одлуке на основу тога
случајност.
И стално говоре псеудо случајних јер постоји
мала прљава тајна.
Рачунари не може доћи до случајних бројева.
Они само могу да ураде оно што им се каже, јер
они вештачких уређаја.
Они не могу само да претпостављам број људи као и ми
Осећам се као да можемо.
Рачунар мора да уради нешто математичку да дочара
илузија математичког броја, понекад користећи
Данашњи дан времена као инпута схватите шта
број да се врате, али је више на томе други пут.
За сада, само знам да ми можемо генерисати псеудо случајности.
>> Дакле, када имам могућност за леву стрелицу да покренете
појављује у различитим временима и различитим брзинама, онда
Ја могу да се вратим и додати неке од њих ако услови.
АКО овај вилењак додирује другу, а леву стрелицу
је притиснут тастер -
Дакле, три услова у том случају.
Ја могу искористити и блок можда, у том случају -
Онда хоћу да иде напред и повећао резултат.
А на врху, имамо резултат, имамо Авесоме,
Кул, добро, и Бу.
Дакле, очигледно постоји пет променљивих које је овај ученик
користи за праћење ових различитих метрике.
Дакле укратко, крајњи резултат је невероватан.
То је забавно, то је забавно играти, то је ангажовање, али то није
где ученик почео.
Он или она почела на много мањем скупу корака.
>> Дакле, шта су неки други градивни блокови које можемо
ткају у ове програме?
Па, ту је овај други концепт у већини језика,
Сцратцх међу њима, познат као нитима.
Дакле, рачунар може заправо није стварно више ствари у
време, барем не обично.
Уместо тога, рачунар генерално има само један процесор, па чак и
Иако рачунари су супер брз и може, стога,
створи илузију ради више ствари одједном -
провере своју пошту, добијање инстант
поруку, штампање документа -
Заиста, компјутер је само скакање из штампе до ИМинг
на е-поштом, назад и напред и назад и напред тако брзо да
споро виттед људи једноставно не схватају да је то заправо
покретање тих програма мало у исто време.
Дакле, ово мало беле леже ових дана, јер данас,
многи наши рачунари су оно што се зове мулти-цоре, тако да
има један процесор, али више језгара, што је нешто као
има више процесора.
>> И тако понекад, рачунари могу заиста учинити више ствари
у једном тренутку, али генерално у оквиру програма, програми
ослањају на ове ствари зову теме.
Дакле, нит је нешто као минијатурни програм који може да
постоје упоредо другом минијатурни програм и може да покрене
паралелно, или барем може да ради под илузијом да
они истовремено раде.
Дакле Огреби подржава ове ствари зване теме.
Можете имати више скрипте извршавању одједном, баш као и ми
урадио са морском лава, а то нам омогућава да заиста
тада имати интеракцију међу овим Спрајтови.
Пусти ме напред овде и попните се, рецимо, теме и
играју на следећи начин.
Имамо два Спрајтови, од којих ћемо видети
има само један сценарио.
И приметите изгледа да неки интелигенција у
мачка у овом једном јер он је све ближе -
[Грми]
ДАВИД Малан: - и ближе мало птица.
>> Па како је птица оперативни?
Па, хајде да прво погледамо птице.
Птица скрипта је рекао, када је зелени застава се кликне, идите на к
једнако негативан 115 и 150 год једнако.
Тако сам схватио случајни локацију где сам желела
птица да почне, а ја сам га плоппед ту по дефаулту.
Онда заувек ако не додирује мачку, тако да је ово другачије
врста петље конструкта, али исту идеју, урадите ово опет и
поново и поново.
Докле год не додирује мачку, померите три корака, а
ако сте на ивици, одскок, где је врста
одраз у билијар смислу.
Дакле, то је начин птица креће врсте
наизглед насумично, али то је само зато што је одбија
зидови у овом случају.
>> Сада мачка, у међувремену, је врста преваре.
Мачка, кад зелена застава се кликне, да, почиње у
нека локација, локација случајан -
барем делимично, као по трзалице
случајни зелено блок тамо -
и онда заувек ако додирује птицу, играти звук лава,
и онда престати сценарио.
Дакле, када сам рекао да оконча, односно излазак раније, постоји слагалица
комад у Огреби да ће само убити програм у који
указати, јер је то некако логично урађено.
Али иначе, овде, погледајмо шта ће се десити.
Тачка према птице и крене један корак.
Дакле, ова тачка ка птицом је врста предности мачка
има у да је навођење у на покретном птице, и можемо
сада чине овај програм све занимљивији.
Уместо креће један корак у исто време по ЦПУ циклусу, по
удари данак на звоно, да тако кажем, дозволите ми да иде напред и
преместите, рецимо, пет корака одједном, као мачка.
Кликните на дугме Покрени, а сада га је заиста нађе брзо.
Ако се удвостручити ово даље на 10 корака, некако иде
право на њега.
Сада можемо дати птицу,
можда, помало предност.
Идемо на птицу и рећи уместо креће три корака,
идемо да га 30 корака.
Али он је ипак ухваћен на крају.
>> Дакле, овде имамо две теме.
Је затворен је у Огреби са два писма и две
Спрајтови, али идеја на другим језицима је да можете
пишу, у суштини, превише програма као што је овај и имају
их заиста води, или имагинарили, паралелно.
>> Сада, ту је овај концепт у програмирању позната као
догађаје, и то је нешто што нећемо видети у Ц,
језик познат као Ц. ћемо видети на крају семестар
у веб програмирање, када уводимо ЈаваСцрипт и
Појам страна изградње веб које су динамичније и интеракцију
са корисницима.
Дакле, у овом случају, имамо веома једноставан пример два
Спрајтови, дечак и девојчица, од којих сваки има своје одговарајуће
теме, али некако ова два међусобно комуницирају путем
од нечега што се зове догађаја.
Зато ме пусти да иде напред и овде увећали сценарио дечака,
која изгледа овако.
Када зелена застава кликне, заувек урадите следеће.
Ако тастер Спаце, или размакницу, притисне, кажу
Марко две секунде, то је чисто естетска на
екран, мало говор балон, али је онда емитован.
>> Дакле, емисија је још један комад који је Огреби
представник класе функционалности у програмирању
који омогућава различите програме, различите теме,
интер-комуницирају, да се некако послати
порука, један до другог.
Доношење парче папира у класи је врста ниског технологије
еквивалент.
Тако емитује догађај.
Ја могу послати ову поруку и реч догађај
је потпуно произвољна.
Огреби понекад има ове дроп падова, па сам дошао
са случајним речи попут догађају јер сада, шта дечак ради
кад сам притисните тастер је он емитује овај догађај.
А ако сада погледамо сценарио девојчице, њена скрипта
супер једноставан, јер све што је потребно да урадите је да не делује када
зелена застава се кликне.
Она је дизајнирана за акцију кад прими цитат, завршити цитат,
"Догађај", и у том тренутку, она је стога слушају
тзв догађај поново и поново.
Чим је добио тај догађај, она ће да виче
Пола две секунде.
>> И тако да можда можемо закључити из овог тачно оно што је
Следећи резултат ће бити.
Дозволите ми да кликнете на зелену заставу.
Ништа се не дешава, јер морам да урадим шта?
ПУБЛИКА: Размакница.
ДАВИД Малан: Размакница.
Дечак каже Марко, девојка каже Пола.
Али то није фиксирана по себи.
То је између комуникација између скрипти, тако да сада
имају способност да направи још сложеније програме где
ова два су некако међусобно комуницирају.
>> Дакле, у оно правци можемо узети ово?
Па, у проблему сету 0, заиста, циљ је да се
забавите се са нуле.
За хакерске издању, уместо тога ћете се забавити са више
софистицирана верзија нуле назива БИОБ, Буилд
СОПСТВЕНИ Блокови, али идеја је иста.
Ви ћете бити у стању -
Да, то је било намерно.
Он је дошао из Берклија.
БИОБ је хакер је издање, али и
Демографија, Стандард Едитион и сл хакер Едитион,
Циљ при руци за наредну недељу је заиста само да зарони у
дубока, добити ваше руке прљаве са програмирањем, и да
нешто занимљиво, да се нешто интерактивно, проверите
нешто уметнички, да нешто забавно да се заиста
показују, тако да до краја недеље ћете имати пројекат,
не само за свој први ЦС50 псет, али ћете морати
Нешто што можете да покаже у Анненберг да
пријатељи или чак и породицу га постављања на сајт МИТ.
И тако, као што сам рекао у среду, очекујемо 90% од класе,
генерално, да стандардне издања.
Схватите да постоји је ово излаз за оне од вас који
иначе можда нађеш мало досадно са основама
и заиста желе да зароните и занатске визију сте већ
имају са претходним позадине у ово више пријатељски
окружењу.
>> Дакле, дозволите ми да подигне један други пример да је један од наших бивших
Студенти овде радили и рећи нешто мало преко песме.
То слично, јер то представа, размислите о томе како идете о
спровођењу овог програма користећи управо те исте
блокови, помало псеудо случајности, а
Мало познате песме.
Ако бисмо могли да подигну јачину звука само мало?
[МУЗИКА - "Пада киша Мен" Тхе Веатхер ГИРЛС]
>> ДАВИД Малан: То је то за ЦС50.
Ми ћемо вас видети у понедељак.
[Апплаусе]