>> [Възпроизвеждане на видео]
>> -А Триумф на математическата и механична умение
е тази велика нова автоматична калкулатор в Харвардския университет.
Сложните проблеми в математиката постави през машината в кодирана форма
на лента са точно решен по незначителна част от времето, необходимо
за човешки изчисление.
Създаден, за да ускори всички форми на математически и научни изследвания,
гигантски механични мозъка ще работи за Военноморските сили на САЩ до края на войната.
>> [END PLAYBACK]
>> DAVID J. Malan: Това, е CS50.
Миналото е вълшебно място, но ако някога сте
Чудех се какво е това устройство в Harvard Science Center,
тя наистина е част от Harvard Mark I, и това е
на показ там сега за последните много години.
И това, което ще видите вградени в проблем набор
един е поглед зад кулисите в това, което е направил това устройство, и го прави,
от професор Хари Луис, който е в на компютърните науки отдел тук.
Така повече за това в малко.
>> Но днес ние започваме да преход от миналата седмица към това,
и ние ще донесе споменаване на една от снимките тук
че всъщност е доста известен.
Някой знае ли какво е това тук е на екрана?
Поне според мит.
Да.
АУДИТОРИЯ: Първият вирус.
DAVID J. Malan: Така беше и уж най-първата действително бъг в компютъра.
Сега в действителност думата бъг, за грешка в програма,
е бил с нас за известно времето във физическия свят,
и това беше един от първите, документирани пъти, когато някой действително
изтръгната голяма пеперуда от марка II компютър, го сложи в папката,
и след това да го записва като първия известен бъг
да са били действително установено физически.
Така че по този начин е въведен че в днешния ерудиция.
Всичко, от последния седмица е на разположение онлайн.
В конкретни ресурси, които може да не е задължително да забележи, особено
ако дойде тук лично.
Така че един от сътрудниците на преподаване на всеки година прави каноничен набор от бележки,
така че не е нужно запази главата си надолу, опитвайки
да преписвам почти всичко че може да се случи тук в клас.
Така че тези, които осъзнават, че така наречените [? Scribd?] Бележки
са онлайн, със сигурност слайдовете и изходния код, който използваме в клас.
Ние правим пълен текст преписи на разположение, както добре.
Така че, ако някой си спомня смътно Терминът, и искам да го гледам малко
по-лесно, да разбере, че всичко на които е възможно търсене онлайн.
Както и за сваляне, както добре.
Наистина, днес ние започваме да погледнем по-ниско ниво език за програмиране,
скоро да бъдат известни на нас като C, и това е много лесно
някак да се загуби след само няколко мигове време, а след това нещо чудно
как ние всъщност трябва да някои по- сложен пример от най-простите.
И така, ние ще осъзнаем череша вземете по време на тренировката някои
на представителни примери, но осъзнават, че толкова много повече, също е
достъпни онлайн, така че можете да работите през него на свой собствен темп,
Въпреки, че сте най-комфортно.
>> Но ние престанахме с програми, които бяха само това.
Така че аз кликнете зеленото знаме, и какво прави тази програма да направя?
Казва, здравей, свят.
Това прави котката кажа здравей в малкия си свят
в горния лявата страна на потребителски интерфейс е Scratch.
Но ние започнахме да се въведат някои терминология миналата седмица.
И така, неща като това, ние наречени какво?
Какво може да е общ термин за това?
Да.
Метод или отчет.
Разбира се, това е действие.
Направите това.
И все пак имаше други форми на нулата,
освен тези така наречени Декларация, че са също
неща, като това, което сме призовани какво?
Да.
Така че една линия.
И в този случай, това нещо повторения, очевидно, 10 пъти.
Има една вечно блок.
Има няколко други.
И днес ние ще видим как да преведе този на по-модерен свят,
ако щете, въпреки че е ще се появи на пръв поглед
да бъде много по-тайнствена.
Но тези, които са наистина контури.
И тогава ние имаме неща като този, който е имал тази форма,
и по същество задавани въпроси.
И ние, посочена тези като какво?
>> АУДИТОРИЯ: Булев израз.
>> DAVID J. Malan: Да.
Булев израз.
Нещо, което е било вярно или невярно, да или не, едно или нула,
обаче искате да видите в света.
Но ние нарича тези Булева изразяване, и ние ги Плъгин
в условия, или клонове.
И в света на Scratch, всичко добре
блокировки от гледна точка на неговата форма, ако го прави логически смисъл да го направят,
но не трябва да се спре от само прави едно нещо условно,
можете да имате пословичната разклонение на пътя
и да направим това или онова, ако състоянието е вярно или не.
И тогава, както ще видите, ако вече не сте,
Можете дори да гнездят тези блокове.
Така Scratch расте за запълване на формите че може да искате да поставите в него,
така че можете действително да изразя най- всякаква логика, че може да искате да направите.
>> Сега няколко думи за обявяване както тук и Ню Хейвън.
Така секциониране започва днес.
URL адресът за това е, разбира се те години на уебсайт, за незапознатите.
Секции ще бъдат възможност да се съберем
в много по-интимна обстановка от [? Sanders?] Позволява,
с 10 до 20 колеги с преподава сътрудник в различни писти,
и с различни темпове, ако сте избрали това.
Действително оферти на курса различни секции
за тези, които по-малко удобни, по- удобно, и някъде по средата,
и ролята на палеца тук, е че няма официална дефиниция,
но ако сте по-малко удобни, някак си го знаеш.
Вие сте малко безстрашен за идея за засилване крак, може би, обратно
в класната стая, или показващи до един между вписванията.
Ако сте били на програмиране, тъй като бяха шест години, по-удобно,
може би за вас.
И ако това е нещо като хвърляне на чоп, това е точно това, което между тях
е трябвало да бъде.
>> Сега, в същото време, за клас с този размер,
тя ще ни отведе доста време в раздел всички, затова ние сме така наречените,
супер секции, идващи тази уикенд и в началото на следващата седмица,
така да разгледаме най-сайт на курса за тези, които са, разбира широк,
а също и за тези, заснет които не могат да ги направят.
И раздели сами ще започнат през седмица три от индекса CS50 нула.
Проблем зададете 0 е вече на интернет страницата на курса.
И осъзнавам, че е нужно девет късните дни този семестър.
Така че това е надстройка от последния година, когато имахме пет късните дни.
>> Така че, ако се чудите, ние имаме девет проблемни комплекти.
Имате девет късните дни, всяка от които можете само да прекарат една на седмица нататък.
Това прави ефективно Всички проблемът определя дължи петък
но целта е да се сложи малко малко на психологически натиск
на вас да се опита да получи неща в четвъртък
тъй като вие скоро ще откриете, за добро или за лошо, най-
всичко в света на софтуера озовава като много по-дълго, отколкото очаквате.
Така че това нещо, помисли на възможност да помогне
сами да се насочите четвъртък, но спокоен, че, да,
всичко се дължи петък.
И ако се представят ги на Четвъртък, че е чудесно.
Няма никакъв бонус точки или допълнително кредити за посрещане на този срок.
Тя е предназначена да бъде само една патерица.
>> И работно време, както тук и в Ню Хейвън,
лично, ако искате да запозная с някой от нашите курсове
преподаване на другарите и КО за помощ.
>> Всичко е наред.
Така че сега, нека да направим това по-реална.
И за миг, че ще започне да се получи малко по-тайнствена, но много
бързо в петък и Следващата седмица ще бъде
в състояние да направи много повече, отколкото можехме досега в Scratch.
Така че ние въведохме миналата код седмица, макар pictoral.
Беше парчета от пъзел.
И ние официално, че е нещо, наречено изходния код,
но би ли изглежда?
Е, това изглеждаше малко нещо като това.
И, всъщност, само за да вид дразни, където можем да отидем с това.
Отивам да вървим напред и да отвори прозорец тук,
и аз съм просто ще изберете New File.
И аз отивам да запазите този файл нещо като 'Здравей' дот гр.
Повече за този избор на думи в един момент.
И това е как някой може отида за написването на програмата.
Включи стандарт I / O точки ч, инт основна нищожен, а след това отворен фигурна скоба, в близост
фигурна скоба, ФОРМАТ здравей запетая свят, наклонена черта п, точка и запетая, Save, направено.
ДОБРЕ.
Аз съм писал първият ми програма, но това се случва
да бъде изключително underwhelmed защото, когато аз всъщност
стартирате тази програма, разбира се, като първо писмено направи здравей,
и след това точково наклонена черта здравей, и ние ще проверете това в много повече детайли
в момент, това е всичко го прави.
Не поп отворени всички прозорци.
Той не прави нищо особено фантазия.
Всичко, което прави е, което аз го казах да направя, но как да стигнем до това?
И как ще се гради върху това?
Е, нека представим няколко различни понятия тук.
>> Така един, ние сме на път да започне с помощта на програма, наречена компилатор.
Съществува компилатор за Mac OS, Windows, Linux, произволен брой операционни системи,
и скоро ще ви запознае с среда, която ние ще се използва,
а съставител е само обща термин за част от софтуера
който взема изходния код и произвежда обектния код от него.
С други думи, ако имат като вход източник
код, нещо като това, което аз просто написа, тя в крайна сметка произвежда обектен код.
И обектен код е наистина само един луксозен начин на казвайки го извежда
нулата и нечии.
С други думи, източник код, въпреки че е
Ще изглежда малко тайнствена, и малко по-малко приятелски
от Scratch на пръв поглед, това е най-малкото нещо
че ние, хората могат да разберат.
Той вид изглежда и звучи като English въпреки че това е много кратка.
Като има предвид, програмиране в нула и един, както нашите предшественици е трябвало да се направи,
преди няколко години, не беше особено забавно предизвикателство.
И все пак, това е, което компютър все още разбира.
Така компилатор ни получава от изходния код към обектния код.
Това е като при отваряне на файла с компилатор, и когато сте го спаси,
можете да получите тези нули и единици.
Така че ние ще видим как се прави че в един момент.
>> Но нека сега да се опитаме да се осигури мост между миналата седмица и това,
така че дори и тъй като ние се тревожете върху неща като фигурни скоби,
и точка и запетая и скоби, както и всички тези интелектуално интересно
аспекти на програмирането, че много разбираемо спъне хора до началото на деня,
осъзнават, че всички идеи днес, са същите като миналата.
Така последното, което видяхме този пример Оттук Hello World програма.
Е, считано от днес, ако искаме да приложи същата програма,
тя ще изглежда по- малко нещо като това.
И ние ще обясня след дълго какво инт, и основната и пуста, и всичко това
е, но поне аз виждам тук вече познатия Hello World.
>> В същото време, такива неща функция, да кажем здравей,
е много просто щеше да бъде много проста декларация по този начин.
ФОРМАТ здравей свят, с някои цитира, с наклонена черта,
с точка и запетая, но повече за това, за да дойде.
Loops, междувременно, това е една линия, която, разбира се, казва здравей свят завинаги,
и това ще изглежда по- малко по-странен, отколкото в последния,
но ако кажа нещо като, докато е вярно, I
след това да отпечатате Здравей, свят отново и отново, и отново, и отново.
И тогава, колкото можете вид на започнат да се направи извод, тук,
тази конвенция за използване фигурни скоби е вид
на подобно прегръщайки разчленена ред код там.
ФОРМАТ ред на кода на много прилича жълтото парче пъзел до горе.
Така че ние няма да кажа завинаги, отиваме да се каже, докато е вярно,
но ще видим защо това е в малко.
>> В същото време, ако имаме една линия като тази, където можете повторя нещо крайно
брой пъти, този също, че е ще отнеме малко време за опознаване
да, но ще да кажа за инт аз стане нула, аз по-малко от 10, аз ++,
и след това ФОРМАТ отново.
Но има и ще бъде модели.
А за тези от вас запознат с AP Computer Science, или Java,
или произволен брой други езици, почти всички тези конструкции
до този момент трябва да изглежда най-вече запознати.
>> Така променлива.
Така че тук е проста Scratch откъс, че задава променлива, наречена брояч на нула,
и след това завинаги казва тезгяха, и След това тя се променя на тезгяха по един.
Така тя започва с нула, и след това една, две, три.
Е, как бихме могли да представим, че в този нов език е малко по подобен начин?
Int брояч равнява нула, а истина, която
е, че една и съща идея от преди за правене на нещо вечно,
и аз съм просто ще ФОРМАТ.
И сега става все по-малко странно, процента аз, но повече за това да дойде,
но тези идеи са абсолютно същите.
Ние просто сега трябва да се придържат към синтаксиса, че компютърът е
Ще настояваме от нас.
>> Булев израз, нещо като SX-малко от Y, X или по-малко от Y,
и у по-малко от Z.
Това ще изглежда малко по нещо по този начин, със скоби само
като по математика за добра мярка, за да просто гарантира, че редът на операциите
е, както ние възнамеряваме.
И сега, условия.
Така че, ако х-малко от у, казват х е по-малко от Y, иначе, ако х е по-голяма от Y,
казват х е по-голяма от Y, друго логически, х трябва да е равно на х.
Така че може да приложи нещо подобно на това в Scratch,
или може да се приложи то в този синтаксис.
И отново, фигурните скоби са вид давайки ни същата форма, както пъзела
парчета, но синтаксисът, сега е може би започва да се следват някои модели.
>> И така, какво означава това ни даде тук?
Така че ние сме назад след това при главния ни програма.
Нека всъщност, сега, направи нещо с него.
Така че в този първи Онлайн ние виждаме рязко да включва,
стандартна I / O, точка з, и След това някакъв странен ъгъл
скоби под тази. инт основна нищожен, а след това ФОРМАТ здравей свят.
Така че просто да направи крачка.
Някой, който никога не е програмиран и преди, най-малко да обясни една от тези линии.
Използването може би някои от жаргона на миналата седмица.
Какво е ФОРМАТ, например?
Да.
>> АУДИТОРИЯ: [недоловим]
>> DAVID J. Malan: Да.
Това е функция, или декларация, от терминологията от миналата седмица.
И това е действие че прави нещо.
Сега тази функция, или това изявление, прави
тя се появи, за да вземе някаква вход?
И в какъв смисъл го прави изглежда да вземе вход, ако е така?
Input, това, което мога да кажа от това?
Да.
>> АУДИТОРИЯ: [недоловим]
DAVID J. Malan: Да.
Така че задрасквам няколко парчета от пъзел където можете да го parametrize.
Може да се каже, повторението блокират колко пъти да се повтаря,
така че е въвеждане на видове, и точно като Scratch
имаше малко бяло контейнер за номера, който ще напишете,
така правя ние използваме в тази текст световните скоби
да ни даде, че кръгла форма в които можем да се включите в нашия вход.
В крайна сметка, десетки години назад когато този език, наречен C,
е изобретен никой Очаква се, че е един от нас,
тези няколко години по-късно, ние бихме Искам функция, която казва здрасти.
Нали така?
Би било хубаво, ако имаше някой пъзел парче, или ключово думи,
това се нарича здравей, че буквално казва здрасти.
Но ние не се нуждаем от това.
Ние можем да имаме нещо много по-ниска ниво, като родово печат
команда, която се вход, и щампи, каквото си искаме.
Така че забележите сега моделът че ще започнат да се появяват.
Отворени скоба, скоба е близо Очевидно възприемане на входа,
и тогава виждам двойно цитира в двата края.
Все още е странно наклонена черта п, но се надявам сега
може да започне да се визуализира най-малко, че ФОРМАТ е като в някаква форма на вход.
Не е толкова лесен, както Изтъркайте, но това е просто
като след като е включен в някои стойност там.
>> Добре, сега нека си всъщност направя нещо с това.
Така че някои от вас може да знае от като пазарували класа и преди,
поприказва с приятели, че за много години
ние използвахме нещо, наречено на CS50 уреда.
Това е термин, който описва технология нарича виртуална машина, която
е парче от софтуер, който ви предшественици ще сваляте разстояние
сайт на курса безплатно.
Те също така ще си изтеглите безплатно парче на софтуер, наречен хипервайзор,
нещо, наречено като VMware, или VirtualBox, или произволен брой
на други инструменти, както и за тяхното Mac или PC или каквото и компютър са имали през миналата година
и през последните години, те би щракнете два пъти върху иконата
да тече този софтуер наречен хипервизорът.
И тогава вътре на тази програма те ще отвори CS50 уреда.
И ефектът беше, че дали предшественик на твое
тичаше Mac OS или Windows, той или тя след това
Впоследствие имаше нов прозорец на тяхна екран работи среда CS50 е.
Така че една виртуална машина ви позволява да изпълнявате едно операционна система вътре в друга,
и това е точно това, което направихме.
През по-голямата от WE Разбира използвате операционна система, наречена
Linux, по-специално Linux Ubuntu, и това
е един много хубав начин през последните години на като се уверите, че всички в хода
Просто трябваше същата среда.
И вие можете да използвате всякакъв вид компютър, който всъщност искате.
Сред недостатъците, все пак, бяха беше като два гигабайта
изтеглянето на това нещо.
То не е задължително да работи супер добре на хора, чиито компютри, които може би само
имаше концерт, или така на RAM, или не твърде много гигахерца на скоростта на процесора,
и така тази година, за тази и други причини,
Трябва ни били преход към тази среда.
Така нареченият CS50 IDE, което е базирани на софтуер с отворен код,
и поддържан платформа че една компания, наречена Cloud9
подкрепя в Европа, които ни позволява да имат по същество
че точно същата среда, както в минали години, но в т.нар облака.
>> Така че това, което е облакът?
Вие вероятно сте кликнали неговата икона на вашия Mac или PC.
Какво е облакът?
Да?
А малко по-високо.
Да.
Това е просто един куп компютри други райони, която съхранява данни и тичам
софтуер и други подобни.
Така че това е наистина само на думата де юре на описване [? отдаваема под наем?]
компютри, които живеят на друго място.
Че си, себе си, не е задължително да притежавате.
Така че, когато вашите данни, или си програми, са в облака,
това просто означава, че е на някой чужди компютри навсякъде,
а не, най-вероятно, на вашия физическата лаптоп или настолен.
И така, това е, което сега е CS50 IDE.
>> Отсега нататък вие ще отидете до определена URL, който ще ви представим
да, в определен проблем 1, по-късно тази седмица, че ще след това, при влизане в системата,
ви даде тази среда.
И много прилича Scratch имаше Няколко различни панели, участващи
така че няма IDE CS50 е да има точно това.
На последния лявата страна тук, ти си ще видите позната файлов браузър.
Така че всеки от файловете, които сте пусната в тази среда
просто ще бъдат изброени там.
Файлове и папки.
На върха точно тук, започваш да се види на място
където всъщност можете да напишете кода.
Първоначално в С, по-късно в термин в PHP и JavaScript,
и, може би за окончателно проекти, Ruby или Java или Python
или който и да е брой езици са поддържа в тази среда.
Това не е никак вързани да CS50 конкретно.
>> И след това в долния ъгъл тук, особено за тези по-удобно,
имате нещо нарича терминален прозорец.
И това терминален прозорец позволява можете да изпълнят всяка команда, която сте
Искам в този облак среда.
Тя ви позволява да инсталирате допълнителен софтуер
който искате, защото сте т.нар корен, или администраторски привилегии.
С други думи, въпреки че този в крайна сметка се хоства в облака,
и въпреки че имаме ги опрости до известна степен
по подразбиране, буквално за въвеждане, благодарение на Dan Armendariz и Dino,
и Дан Брадли на отбора CS50 е свършило на минали много месеци, а по-малко удобни
режим, който крие много от Първоначално объркващи отвличане на вниманието.
Всичко съществува, за да представлява типичен компютърна система
които можете да използвате в реалния свят.
>> И така, какво означава всичко това, и какво всъщност можем да правя с него?
Нека действително вземе един поглед на една програма.
Така че аз ще съм за отваряне на действителната среда тук,
който е само нашата Chrome браузър, който може да бъде Firefox,
би могло да бъде Internet Explorer, или някакъв друг браузър, както добре.
Той е пълен пресява тук за момента.
И аз искам да всъщност дразни освен това, което е тази програма.
Така че нека да погледнем, като приближите до горе, в това, което направих, и как съм попаднал тук.
Така че тук е точното тези, Същите реда код.
Така че това е изявлението, както споменах по-рано.
Функцията, която казва здрасти.
Фигурните скоби, за Онлайн четири и шест линия,
вероятно вид плик тази линия да го асоциирате
със същността на моята програма.
Така че наистина, тази ключова дума основна, това е горе на третия ред
можеш да се сетиш, че като еквивалент за това, когато зелен флаг щракнали,
блокират в Scratch.
Така че това е всичко, което имаме тук, е, когато зелен флаг щракнали, печат, или да кажат,
Здравей Свят.
>> Но нека да предполагам, сега, в това, което това първо, по-тайнствена линия, е.
Sharp включва, отворен ъгъл скоба, стандартна I / O точки з,
затворете огъната опора.
Това, което е, че може би това, особено ако сте програмирани
преди по някакъв друг език.
Да?
>> АУДИТОРИЯ: [недоловим]
DAVID J. Malan: Да.
Точно така.
Така че това е ви дава достъп до библиотека, така да се каже, на функции.
И библиотека от функции е функции, които някой друг
пише, или наскоро или отдавна, така че да можете
не е нужно да изобретяваме колелото.
Например, ние не правим Трябва да знаете, през 2015 г.,
как да пишат код, който поставя характер на екрана си.
Някой друг разбра, че с функцията ФОРМАТ
така че мога да сортирате на абстрактното далеч от това, или слой
на върха на неговия или нейния код, а сега просто приемете
за даденост, че всяка програма пиша да отпечатате нещо на екрана.
Така че тази първа линия има в една стъпка включва т.нар заглавния файл
за стандартната библиотека.
Така че виждате, на езика, на които ние сега работи
имаше стандартната библиотека с много функции.
ФОРМАТ е един от тях, и че първият ред код
означава да ми даде достъп до тези функции, така че аз
не е нужно да изобретяваме това колело.
>> Сега нека да отидем до долния прозорец и правя точно това, което направих преди.
Преди малко, когато бях свистенето чрез кода,
той пише за първи път, Аз много бързо написа, направи здрасти.
Какво беше всичко това щеше ли да познаете?
Какво правех?
Да?
Няма значение.
ОК е.
Да.
АУДИТОРИЯ: тя Съставяне.
DAVID J. Malan: Да.
Тя е просто да го съставяне.
Нали така?
Дори това да е напълно непозната за вас, това е доста English харесват.
Това със сигурност не е нули и такива, така че аз все още
Трябва да го стартирате чрез които т.нар програма, компилатор, че ще ходи
да го приема като вход и изход произвеждат.
И най-малкото, за сега, в това Linux среда,
но това не е предпоставка, това е точно там, където ще започнем,
вие обикновено си взаимодействат с компютърни системи, като това
от т.нар команден ред.
Така че с мигане бързо и вашата клавиатура,
а не толкова на мишката, а не толкова много прозорци и икони и менюта,
а всичко е текстова.
И въпреки, че това се чувства, на първо поглед, може би, като крачка назад,
тя всъщност е много по- мощна и изразителен начин
за контролиране на компютър особено след като вас,
себе си, да стане по- удобно от по-малко.
Това ще ви позволи да направите много повече неща, отколкото само това, което Microsoft
или Apple ви позволява да правите с тяхното графично на операционната система.
>> Така че, когато се удари Enter, сега, нищо не се случва това време
защото очевидно програма здравей е актуална.
И това, което е командата Тичах след това?
Dot наклонена черта здравей, здравей и свят.
Сега нека да направим стъпка архивирате само за миг.
Оказва се, че направи здравей е просто опростен начин на съставяне на програма.
Нека просто да се въведе едно парче на жаргон,
но след това се отдалечава от нея, тъй като тя не е
всичко, което интересно за днешните цели.
Компилаторът отиваме да започнете да използвате се нарича звън, за езика C.
И това е програма, която се изпълнява само както направихме в командния ред там.
И така, ако искам да съставяне на програма, която I
са написани на файл със същото име дот с, аз буквално просто напишете трясък здравей в
въведете.
>> Смешното е, по исторически причини,
ако аз не уточняват Име на програмата
че искам да изход, ако не се направи зададете име на файл за тези нули
и такива, много странно Преди конвенция беше приет години
където се чувствах вид добър отговор към момента,
и нека просто произволно наричаме първа програма ние съставят една точка навън.
A е на първо място в азбуката.
Out, това е изходът.
Така че ние ще се обадя на програмата по подразбиране точка навън.
И това е добре, защото ако искам да стартирате програмата в този текст, въз основа
среда, аз просто напишете дот наклонена черта една точка извън влиза.
И това би било в точно както преди.
Така че нека да видим, че доста бързо.
>> Така че ако се върна в моята изходния код в CS50 IDE,
и аз вместо да направи това, трясък здравей креватче гр влиза, бележка нищо не изглежда да се случи,
но почти винаги в това Linux среда,
когато нищо лошо изглежда да се случи, че означава нещо добро всъщност се е случило.
Ако не виждате грешка съобщение, всичко е може би добре.
И наистина, ако аз сега правя дот наклонена черта една точка посочени влиза, аз тичам ми същата програма.
Аз все още имам програмата здравей от по-рано, защото наистина, това е
щеше да бъде толкова просто много по-хубав Типове направи вместо спомняйки
тези заклинания на команди, но нека да видим как можем
може да подобри това, все пак.
>> Така, това е командата за съставяне на кода.
Това е командата да тече съставените код след това.
Как мога да зададете име на файл?
Ами нека просто да въведат още едно парче от жаргон.
Когато сте в тази текст базирана среда,
започваш да искаш да се уточни неща, наречени аргументи от командния ред.
Което е просто един луксозен начин на казвайки, С други думи в ред, че
ощипване поведението на каквото и програма работите.
Така че специално програмата съм бягане, като напишете звън име,
е програма, наречена звън.
Така че това е или старата школа еквивалентна на двукратно щракване
на Microsoft Word или икона някои програмата.
Аз вместо просто да напишете името си, но в тази версия на командата,
Тогава имам пробив о пространство здравей здравей пространство дот гр.
Така че, дори ако никога не сте играе в този свят преди,
просто да вземе това, което предполагам няма пробив о здравей направя?
Или какво прави той каже трясък да правя?
Да.
>> АУДИТОРИЯ: [недоловим]
DAVID J. Malan: Да.
Тя просто се поставя на изхода на файла, за да бъде Здравейте вместо глупаво точка навън.
И наистина, нека се опитаме това.
Така че, ако аз сега правя, първо нека да направим това, гт здрасти.
Ето премахнете.
И то се случва да се каже, премахнете обикновен файл здравей, които
е ненужно тайнствена, но просто средства направя ли искате да изтриете файла,
и аз у написали за да.
И забележи, ако сте били в топ фланга ляво, той изчезна от там.
Нека сега да направим пробив трясък о, и Отивам да вървим напред и да направим здравей,
във всички капачки, здравей дот гр.
Сега, ако го направя дот наклонена черта Здравейте, какво ще очаквате?
>> Може би това е и главни букви.
Може би това не е така.
Да видим.
Няма такъв файл или директория.
И ние можем да вид измама от Просто погледнете в горния ляв.
Какво направих аз очевидно запишете програмата като?
All капачки здрасти.
Така че наистина, че ще ходи да направи разликата.
Така че сега здравей свят е обратно.
Сега всичко това е добре и добро, и всички много ум-обезболяващ,
някак да получите затънал в тях подробности, но разбирането им
добро е.
>> Писането на тях все дълги заклинания
няма да бъде особено забавни, така че хората в света
измислена друга програма, Преди няколко години, наречен
направи, че чисто и просто ви позволява да въведете изработка,
Името на програмата искате да направите, и да направи
е умен с това, че тя ще изглежда в текущата папка, известен още като директория,
и ако имате файл име в точка с,
това е файл, че ще съставят за вас в една програма, наречена здрасти.
Така че това е много по-просто начин на прави по-загадъчни команди
че направихме по-рано.
И ние сме предварително конфигуриран CS50 IDE да знаете
че тя трябва да се направи пробив о и редица други знамена, или аргументи от командния ред,
че ние ще видим не след дълго.
>> Но нека сега всъщност правят нещо по-интересно.
Просто пишете на здравей свят всички времето не е толкова убедителна.
Така че нека да вървим напред и промяна тази програма и да кажа, здравей Дейвид.
Сега аз ще сляза тук.
Отивам да вървим напред и да направим направи здрасти.
И сега отново, което виждате да ви показва по-дълго
последователност от команди, че това е прави, защото сме предварително конфигуриран
това по този начин, но ние не е необходимо да се притеснявате за сега
това, което прави, освен това е несъставящи дот наклонена черта здравей, здравей свят.
Какво има?
Да.
>> АУДИТОРИЯ: [недоловим]
>> DAVID J. Malan: Да.
Така че, Noobie грешка.
Прави ми впечатление, че това е супер фин, но звездичката тук, в раздела,
Просто означава, че вие ​​не сте го спаси, и браузъри и други програми
направите това понякога.
Така контрол ите или команда ите трябва да го спаси.
Сега нека да продължа напред и повторно стартирате програмата.
Прекомпилирани.
Нали, така че това е процес, мулти-стъпка.
Никой от които не е особено сложна, но всеки път, когато се променя файла,
ние трябва да променим Полученото нули и единици, както и точка наклонена черта здрасти.
Брей.
Така че това е много underwhelming че ние просто отпечатва това.
Нека да направим нещата по- Малко по-динамичен, сега.
>> Ами оказва се, че харесва Scratch, C поддържа променливи.
И се оказва, ако искате да има променлива,,
Не редица като ние обикновено направих с Scratch,
но като една дума, или фраза или име, можете
да зададете променлива да бъде от тип низ.
Така че ще видим повече от те в един момент,
но се оказва, че C, и много езици като него,
имат много специфични видове променливи.
Това не е точно като алгебра, където можете да получите на х, а у, и Z
и тези, които са просто винаги номера, в един език за програмиране
можете да съхраните номера, можете да съхранявайте отделните герои,
можете да съхранявате цели думи, бихте могли съхранявате цели изображения, пълнозърнести звукови файлове,
и други подобни.
Така че ние трябва да се уточни какво вида ни е променлива.
И по силата на споразумение Отивам да се обадя ми променливи е просто, защото е кратка,
и е съкращение от низ.
>> И тогава аз отивам да съхранявате вътрешността на тази променлива,
Просто обичам със Scratch когато използвам набор блок,
Отивам за употреба оператор за присвояване в C,
които достатъчно добре е равен подпише, но равен знак прави това.
Той се движи нещо от правото в От лявата страна на израза.
Така че това, което съм направил, за да бъде ясно, в Онлайн пет, е че съм обявен за променлива.
Казал съм на компютъра, дай ми памет за променлива, обадете е всичко,
и се знае предварително, че аз ще съм да бъде въвеждането на низ в него.
И низ е просто последователност от знаци.
Това е една дума, или фраза, или параграф, но това е поредица от символи.
Това не е номера.
Какво низ съм аз ще е пускане в тази променлива?
Е, очевидно цитирам край на цитата, "Хана".
Сега обърнете внимание на модела, който е нововъзникващите.
Има един израз лявата ръка.
Има един израз дясната ръка, разделени от знака за равенство.
И просто да предполагам, ако непозната все пак,
с това, което точката и запетаята се справя.
Какво е това вероятно прави за нас?
Да?
>> АУДИТОРИЯ: [недоловим]
>> DAVID J. Malan: Да.
Това е просто за прекратяване на линията.
Нали така?
Компютрите искат да бъдат безцеремонно каза, буквално, какво да правя.
Подобно на фъстъченото масло и желе сандвич например,
ако не укажете точно това, което имате намерение,
то може да бъде оставено на преценката или на грешка.
Точката и запетаята означава, че става въпрос за тази команда.
Това е супер точен, и това е много лесно нещо да оставим.
Така че сега тази програма не изглежда да да се държи по различен начин, докато не
да стане по-динамична.
Така че, вместо трудно можеше моята собствена Име, нека ме постави на стойност контейнер.
И се оказва, че и аз знам това от това да прочетете документацията,
и се използва функцията за години, ФОРМАТ е проектиран да бъде динамична.
Не е нужно да се знае предварително какви думи искате да поставите в него.
Вместо Можете да имате контейнер, като процента ите, които
ще разкаже компютър, сложи низ тук.
>> Кои низ искаме да се сложи там?
Will Оказва се, че между тези скоби, които си спомнят, са разграничени
на входа към функция, ако имате разделени със запетая списък на нещата тук,
ние всъщност премине в множествена входове към функция.
Така че просто искал някои Scratch блокове, може да не
са играли с тях за Вашите проекти, все още или на всички,
някои Scratch блокове имат два входа.
Две бели кутии можете да въведете номера или думи в.
Така че, за да се C има функции като ФОРМАТ, че може да отнеме два входа.
И отново, това със запетая е отделянето им.
Така че на английски, отново, дори ако никога не сте програмирани преди,
от тази логика ФОРМАТ е функция, отнема два входа, единият от които
е контейнер, какво би се надявате ФОРМАТ ще правим с този вход?
Това ще кажа здрасти Хана, да се надяваме.
Така че, за да направите това, ние трябва да го спаси.
Отивам да се отдалечите.
Отивам да се върнем тук и да кажа, да здравей влиза.
Oh.
Нещо не е наред, а всъщност това е доста поразителен.
Имам шест реда код и като 12 линии на грешки.
Така че, с нетърпение очакваме да това.
И така, какво става тук?
Затова най-добрият правило тук, особено когато сте началото,
не се разсейва от нещата в долната част.
Всъщност, аз много съзнателно просто превъртат до
защото много често, един компютър е че не всички от светъл устройство.
Това ще се объркате.
Ако счете за едно нещо, което той не разбира,
тя може да се сбърка друга реда код като неверни,
макар че това е съвършено глоба.
Така че винаги искат да работят Нагоре надолу през грешките.
И разбира се това е супер тайнствена в момента.
>> Грешка, използването на недеклариран идентификатор низ.
Знаете Искам да кажа стандарт в?
Не, имах предвид, низ.
И това е сочеше, може би това е печатна грешка.
Нещо като, за проверка на правописа в много шантав начин, но причината тук,
и вие ще знаете това само с практика, е
че се оказва, че низ не съществува в С В действителност, С
е особено стария език, и това е много ниско ниво,
и не го прави много функции които може да са израснали
с, ако имате, всъщност, програмиран в Java, тъй като някои от вас имат,
но можете да го науча нови неща.
И наистина, ние сме направили това CS50, въпреки че до края на семестъра,
всички тези помощни колела ще са извадени,
това, което правим в тези Първият няколко седмици
първоначално е ние също имаме включите CS50 дот ч.
Което е заглавния файл.
Повече за това в бъдеще.
>> Това е файл, който съдържа функции че сме написали за вас.
И сред тези функции е функции за получаване вход
от потребителя, като струни, и цифри и реални числа, и повече.
Но тя също така има няколко комбинации.
Той определя Булева като тип данни.
C не трябва вярно или невярно.
Но можем да го даде на понятието вярно или невярно по пътя на тази библиотека.
И това също не е низ построена през докато не се включи тази линия.
Така че този ред код разказва компилатора, хей, звън, погледни
в този файл за цяло куп код, който CS50
е написал, така че всеки, който използва този файл
могат да приемат за даденост функциите, които сте добавили.
>> Така че сега нека да вървим напред и изчистване на екрана,
и ако любопитни Просто казвам контрол л всеки път, за да изчистите екрана,
или можете да напишете ясно.
Аз съм просто ще отида напред и сега Тип направи здравей, и всичко е добре.
И все пак една тайнствена изход, но това не е погрешно послание.
Но ако върша дот наклонена черта здравей, и като настрана, дот наклонена черта е непозната за повечето.
Това просто означава, дот средства текущата директория.
Така че, ако някога сте се използва DOS или Linux, Unix или
може да са направили нещо като сд точка точка, където
дот точка означава върнете назад в време, или да отидете назад, или по-нагоре
във вашата директория.
Dot просто означава, погледнете в текущата директория.
Искам здравей, която е точно тук.
И наистина, сега тя казва здравей Хана.
И ако аз го промените отново Мария, прекомпилирате
че ще направи здравей, дот наклонена черта Здравейте, програмата продължава да се променя.
>> Но това все още е доста глупаво програма.
Ако искам да превозва тази програма, или да го даде на свой приятел,
или да го даде на Мария или Анна за този въпрос, това е добре.
Мога да го персонализирате и за двамата, но тя никога няма да бъде динамична.
Те не могат да го променят, когато вече е съставила надолу в тези нули и единици.
Така че това, което сме направили нещо по-умни?
Какво става, ако, вместо твърд-кодиране в програмата на името на този човек,
какво, ако ние просто се низа по поръчка?
>> Така че, с други думи, нека да направим това.
Отивам да прекомпилирате тази програма.
И нека да я увеличите в долната сега.
Направи здравей дот наклонена черта здрасти.
Сега нищо не се случва.
Можем ли да получите бърз доброволец да се направи нещо да се случи?
Хайде нагоре.
Как се казваш?
>> ПАНЧО: Панчо.
>> DAVID J. Malan: Pacho?
Хайде нагоре.
След като получите тук, това е ще бъде много underwhelming,
но това е по-интересно от мен да го пишете.
Ако искате да отидете напред и да въведете име, аз направих тази програма точно за вас.
Просто напишете името си.
Enter.
Wonderful.
Добре, благодаря ви много.
>> ПАНЧО: Благодаря ви много.
>> DAVID J. Malan: OK.
>> [Аплодисменти]
>> Това беше много мило.
Заповядай.
Какво да направим?
Така че ние най-накрая, най-малко, направи тази програма динамична.
Сега е все още със сигурност по проект underwhelming,
но ние най-накрая имат способността сега, за да пишат код предварително, много по-
като авторите на ФОРМАТ, и след това динамично
адаптират въз основа на входното сме подаде, или от програмиста,
или от човека, който е всъщност взаимодейства с програмата.
Така че нека да е всъщност сега се опитват да направя няколко други конструкции
и да видим дали не можем да направим програмите сами по-сложни.
Така че нека да вървим напред и вместо написването на тази една от нулата,
Отивам да отидат в днешната изходния код, и всичко това
е предоставена на курса уебсайт, и можете да плъзнете и да го пуснете
в собствената си среда дойде петък, след като проблем
комплект 1 дава инструкции, или бихте могли
го направи в командния ред, както добре, но по-напред в р определи 1.
>> Нека да видим какво има в тази програма тук се наричат, ехидна дот гр.
Сега вече съм коментира го, но какво е новото?
На пръв поглед, това, което линия на код е абсолютно ново?
Вероятно не фундаментално непознат сега.
>> АУДИТОРИЯ: [недоловим]
DAVID J. Malan: Да, така инт х равнява получите п.
Никога не сме виждали нищо от това преди, но INT е вероятно
символът за какъв вид променлива, [? от?] цяло число.
Така Int за цяло число.
Това просто е по- сбит. х е само условно.
х и у и Z са все още доста разумно за номера,
но като цяло ще използваме думи веднъж нашите програми стават все по-сложни.
Вземи инт, разбира се, много като GET низ,
Вероятно ще се получи, пад от страна на потребителя,
и след това отиваме да направи същото нещо с ш.
И очевидно, въпреки че това последната линия, на 24 г. изглежда по-сложен,
то се случва да се каже, сумата от това и че е това нещо.
>> И известие процента аз вероятно означава какво?
Каква роля процента Аз очевидно служи?
Това е само на контейнери.
Нали така?
Процент и е за струнен, процента I е цяло число.
Там ще бъде процента е за плаваща точка стойност, която
е просто число с десетична запетая.
С други думи, реално число.
Така че нека действително събиране на тази програмирате недвижими бързо и правят ехидна.
Опа.
Добра възможност.
Така че забележите тук, през цялото това време ми потребителското име за е jharvard тази сметка.
Аз съм в CS50 IDE, известен още като IDE50.
И сега в синьо тук, е да се споменава, но от околната среда, от къде съм.
И всъщност, ако аз я увеличите до върха тук, забелязвам, че имам IDE50
и виждам тази дума, ако сте вид обърнете главата си на една страна, работно пространство.
С две думи, фактът, че Виждам Тилда наклонена черта работно място
означава, че в този текст базирани команда среда,
Аз съм в текстовото еквивалент на тази графична папка тук.
Така че, когато аз правя дот наклонена черта усойница, тя казва, няма правило
да се направи целева ехидна спирка.
Аз не знам какво означава това, но това е лошо поради някаква причина.
няма такъв файл или директория е още по-ясно.
Къде е тогава?
Въз основа когато се кликне за отваряне на файла по-рано.
Къде може да е?
>> Това е може би в източник един ват, за сряда,
и мога да го видя, наистина, ако мога да отворя, че до.
Има разширител точка С, но в този текст-базирана среда,
отново, трябва да съм супер изрично.
Ако искате да промените в директории източник една сряда, аз трябва да въведете,
сд пространство един източник Сряда влиза и сега
моите бързи промени дайте ми визуални ориентири, че
Сигурен съм, наистина, на друго място в моята среда,
но сега мога да се направи усойница, тя изглежда да работи,
дот наклонена черта ехидна, ми даде цяло число.
One.
Two.
Сумата от едно и две е три.
Но ако не си сътрудничат, нека да видим какво се прави инт.
Дай ми цяло число.
Не.
Повторен опит.
ДОБРЕ.
Глоба.
50.
Всичко е наред.
Така че най-накрая си сътрудничи.
И това е, някои от най- функционалност, която тези функции
може да са построени в за вас.
>> Така в рамките на изпълнението на получите инт, какво програмиране
конструира от миналата седмица е най-вероятно в там, за да принуди това поведение на повторен опит,
повторен опит, опитайте отново?
Да, вероятно има някаква линия.
Тя ще изглежда синтактично различен от блокове Scratch е,
но това е наистина какво има вътре файла.
И след няколко седмици ние ще всъщност погледнем в библиотеката CS50
за онова, което е вътре, но има една линия за налагане точно това.
>> Да играем глупаво малко Играта тук с този файл.
Състояние нулева точка в.
Ние просто ще принцип започне броенето на нула.
И аз продължавам да превъртате минало някои от нещата отгоре.
В синьо тук, очертана с всички от тези звезди и наклонени черти,
тези от вас, които програмират преди, какво е това?
Защо ни пази прескочите над него?
Какво?
>> АУДИТОРИЯ: Това е коментар.
>> DAVID J. Malan: Да.
Това е просто коментар.
Това е коментар за хората да се чете, че в нашия случай,
ни казва какво името на файла е, който го е написал, и какво прави,
така че не е нужно да прочетете кода
да знае какво този файл е за всички.
Това е просто едно описание, но функционално това е без значение.
И аз дори може да го изтриете от досието ми и да го няма въздействие.
На сочни линии са тези Първите две тук, сега.
инт основната нищожен е еквивалентът на нашия когато зелено знаме щракнали,
така ние ще оставим това да бъде за днес, и ние ще се върнем,
В крайна сметка за това какво инт и недействителни са, но сега,
забележите това, което съм направил тук също можете също,
ако имате в съответствие коментирам, ако имате
една мисъл, която искате да споделите относно даден ред код,
конвенция в C е да се направи наклонена черта наклонена черта, и след няколко кратки думи,
Не пълно изречение, по принцип не един параграф,
че просто обяснява за вас или вашия TF или други читатели или колеги,
какъв е вашият код прави.
Така че, вместо да трябва да гледам при това и направи извод от линии
девет и 10, това, което е този начин в съответствие осем
Току-що даде коментар за поиска от потребителя за цяло число,
тогава аз не трябва да се мисли твърде трудно за това, което линии девет и 10 са.
Просто знам, че това е, което колективно, което правят.
>> Как?
Е, тук е ред.
Ето Придобиването на Int.
И въз основа на предишното поведение, тя изглежда като GET инт
е достатъчно умен, за да се уверите, че човешки сътрудничи и дава
цяло число.
Но сега ние виждаме това.
И това напомня на Scratch.
Аз твърдя, че съм анализиране вход на потребителя,
но малко неточно.
И това очевидно в C е как ние изразяваме, ако друго, клон,
вилица на пътя, но аз каже донякъде неточно.
Какво е бъг в тази програма?
За още по-назад?
Да.
>> АУДИТОРИЯ: [недоловим] нула.
>> DAVID J. Malan: Да.
Така че, ако напишете в нула, нека разгледаме точно този случай, или ъгъл случай,
ако щете.
Така че, ако напишете в нула, което на блокове ще очевидно го вземете?
В случай или друго?
В друго, и то се случва да се каже, сте избрали отрицателно число.
И наистина, нула не се предполага да бъде положително или отрицателно,
и така, че ще бъде погрешно.
Това би било грешка.
Така че как можем да поправя това?
Някой, който никога не е програмирана преди?
Искаш ли--
>> АУДИТОРИЯ: [недоловим]
>> DAVID J. Malan: Прибиране?
>> АУДИТОРИЯ: [недоловим]
>> DAVID J. Malan: О, имате?
Някой, който никога не е програмирана преди.
Искате ли да опитате ръката си в това, в червената фланелка?
Хайде нагоре.
О, да, хайде нагоре, ако нямате нищо против.
Така че никога не е програмиран преди, какво е вашето име?
LAUREN: Lauren.
DAVID J. Malan: Lauren, всичко е наред.
Така определи този бъг за нас.
Вие не сте виждали C, най-вероятно, и най-вероятно няма друг език.
Така определи тази програма за нас.
Приятно ми е да се запознаем.
Без натиск.
LAUREN: Да.
>> DAVID J. Malan: Но пак, ако това хазарт върви по план,
на храна за вкъщи тук ще да, просто отново, за да започне
да забележите модели и заключим от съществуващата синтаксис
как иначе може да се изразя себе си, не игра на думи, предназначени, за
да улови някои допълнителни сценарий.
Така че ние да кажеш друго, ако.
ФОРМАТ, добра.
И забележи с CS50 IDE и frankly-- IDE
щандове за Интегриран Development Environment.
Това е просто един луксозен начин на казвайки програма, която ви помага да програма.
Той прави удобен за потребителя неща като когато напишете една скоба,
той автоматично дава на другия.
Презумпцията е, че ти си в крайна сметка ще искате да напишете, че,
и също така го прави с цитати.
>> Така ми харесва линия 23.
99% от пътя там.
Някой иска да се намеся в разговора с върха?
Чух запетая от страна на публиката.
Good.
Така, че завършва това.
И сега, аз просто имам малко ужас с линия 21.
Как да искаме да изразим това?
Какъв въпрос искаме да попитам, как мислиш?
Така че по-рано ние зададе въпроса, ако п е по-голяма от нула, да направите това.
Иначе, да направи това.
Така че ние трябва да изберем въпрос да попитам тук.
АУДИТОРИЯ: [недоловим]
DAVID J. Malan: Добро.
Така че, ако п е равно на нула.
Отлично.
Така че нека да спрете тук.
Благодаря ви много за това се борят смело.
Позволете ми да ви дам малко заслужена стрес топка, може би там.
Така че ние сме почти там.
В действителност, Lauren, ако не ум, нека да се направи една ощипвам тук,
само за да бъде последователна дори и с това, което видяхме в Scratch, това, което
искам да правя с линии 21 и 24, просто отново се базира
за това как ние направихме това в Scratch, може би?
>> АУДИТОРИЯ: Движи нагоре.
>> DAVID J. Malan: Да, тя се движи нагоре.
Така че състоянието на друг, трети, или четвърто или пето, или окончателно клон,
наистина трябва да дойде след това, и това е само по силата на споразумение,
Просто защото, ако щете.
Така че аз трябва да се направи този ощипвам.
И аз трябва да си сложа фигурна скоба върна тук.
И сега, тази програма ще се съберат.
Ние сме толкова близо, но има много, много коварен бъг.
Нека да видим какво ще стане.
>> Първо, нека да вървим напред и да го намалите.
Отивам да вървим напред и да Типове направи състояние нула.
О, аз излъгах.
Сега съставител е всъщност е доста умен.
И аз наистина не разбирам това е съобщение за грешка.
Използване резултат на прехвърляне като условие без скоби,
очевидно е лоша.
Но какво означава това?
>> Ами пак, търси модели в код, който сме виждали преди,
това, което е ред 17 всъщност прави, въпреки че Lauren предназначен леко
по друг начин?
Да.
>> АУДИТОРИЯ: [недоловим]
DAVID J. Malan: Да.
Така че не забравяйте, знака за равенство, очевидно както сме го използвали преди, не е равни.
Нейната задача, от дясно на ляво.
Така ред 17 в момента е състояние, и това е
изпълняващата код вътре в скобите, но когато този код се изпълнява,
какво се случва със стойността на нула?
Какво се случва със стойността на п?
Ставайки нула.
Така че, ако п става нула, и отново, както на миналата седмица,
ние обикновено се каже, че нула е невярна и един е вярно,
или да е един и не е нула.
Така истина и лъжа, една и 0.
Ако п като на ред 17 е като се има предвид стойността 0, е нула вярно?
Не.
По дефиниция, нула е фалшива.
Това е конвенцията сме ще се придържат към движи напред.
Така ще линии 18, 19, и 20 някога прилага сега, логично?
Те не могат.
Така че ние зададе въпроса но не съвсем точно,
и ти няма да знае това, освен ако сте го виждали, разтворът в C
е, когато искате да изразя равенство, което казвате равни равнява.
Така знак за равенство вече е била използвана до чрез възлагане, от дясно на ляво.
Равно равнява средства се равнява.
И ако наистина искате вашия ум да се наведе, в JavaScript и PHP,
има равнява равнява равни, които означава нещо съвсем друго,
но ние ще стигнем до това не след дълго.
>> Така че това е просто корекция, но осъзнават супер лесно да се направи тази грешка,
и след това се чудя и борба за минута, ако не един час,
Затова е моя код не изпълняващата като възнамерявам?
Това е, защото не сте кажете то точно какво имате предвид.
Така че това е почти съвършен, и беше страхотно
че сме попаднали в тези две малко неща, защото сега ако можем да ги поправим,
и аз правя направи състояние нула дот наклонена черта състояние нула,
Бих искал цяло число, моля.
Да видим.
Не.
Това ще ме принуди да го направя.
Така 42.
Взех положително число.
Така че сега как мога да докажа тази програма е правилно?
Ако сте математик, не можете да наистина се докаже това чрез опити и грешки,
нали?
Можете не само доказателство от Например, но поне
като програмист, че не сме ще се опита да докаже, за сега
че това е действително правилно, но аз вероятно
тествате някои представителни случаи.
>> Аз бях тестван 42.
Можех да тествате 43.
Можех да тествате 44.
Test 45.
Нали така?
Но не можех да направя това много дълго време.
Какво ще бъде още малко интересни случаи, за да се опитат?
АУДИТОРИЯ: [недоловим] нула.
DAVID J. Malan: Така нула.
Разбира се.
И добре, ние сме го имам този път, благодарение на нов код на Лорън.
Какво е друг добър случай да се опита?
АУДИТОРИЯ: Negative един.
>> DAVID J. Malan: Negative една и може би нещо малко по-голям,
така че може би отрицателен 42, но като цяло, когато
тестване на вашите програми да се движим напред, ти си
Ще искам да мисля за себе си, като това, което
са основните различните случаи.
И смея да кажа отрицателно случай, позитивен случай, и нулева случай
доста много рундове тези навън.
Нека разгледаме един вариант на това все пак.
Условия един.
Това е правилното решение тук, така че ще видите две и онлайн,
ако ходиш през Запознай, ще обикновено
нарастване тях поетапно, докато не получите точно правилният подход.
Какво става, ако искахме да попитам два въпроса наведнъж?
>> Позволете ми да се отворят тази вместо.
Non-превключвател, поради причини, ще видим друг път.
Какво е новото синтактично тук?
Аз съм в момента играе играта когато компютърът е казваше
ми, дай ми едно цяло число между една и 10,
и след това аз съм съдейки вход на потребителя.
На английски език, въз основа на кода, който виждате тук
в синьо, какво прави тази програма?
АУДИТОРИЯ: [недоловим] качват голям или малък брой.
DAVID J. Malan: Да.
Това е просто отсъжда дали Взех един голям, или среда,
или малък брой основава на много произволна дефиниция за малки, средни,
и голяма тук, но известие синтаксиса, че е новото е това.
Няма по-малка от или равна на инт знак, или по-голямо от или равно на подпише
когато едно е над другия, че сте може да изрази по подобен Microsoft Word.
Така че в един език за програмиране ви обикновено просто правят два знака,
един след друг.
И какво означава това вероятно означават, амперсанд амперсанд.
АУДИТОРИЯ: [недоловим]
DAVID J. Malan: Да.
Това просто означава, и тъй като тя Оказва се, че авторите на C
използва единичен амперсанд, което може би си мислите
ще бъде добра за понятието на и, вече се използва до,
така амперсанд амперсанд всъщност улавя случай ние всъщност искаме.
>> Така че нека сега се натъкнете две неща.
Нека да вървим напред и да се отворят един.
Нещо, което е малко по-тревожен.
Неточността дот гр.
Нека ви представя две неща тук.
One, известие, че можем да направим математика, като точно както преди, когато
направихме плюс на две числа, х и у.
Каква е тази програма очевидно правиш?
Аз не съм го коментира още, и аз съм въведен процента е,
но аз бързо каза по-рано процента е с плаваща точка означава,
стойност, която е реално число.
Нещо с десетични точка, което не е цяло число.
Какво мислиш, че тази програма е опитвайки се да ми покаже на екрана?
Да?
АУДИТОРИЯ: Резултатът от един над 10.
DAVID J. Malan: Да.
Какъв е резултатът от едно делено на 10.
Точно така, защото всички имате вероятно израснали знаейки, че един над 10
е какво?
Да, това е просто 1/10 или 0.1.
Нали така?
Така че нека да видим какво е това всъщност е.
Така че нека да вървим напред и да спаси това.
Позволете ми да сляза тук.
Направи неточност дот наклонена черта неточност и известие, също,
в среда на Linux, вие не правите Трябва да напишете прецизност и се вземат
цял ден.
Той обикновено, ако ви удари Tab, тя Ще завърша мисълта си за теб,
въз основа на думите, които са налични в текущата директория.
ДОБРЕ.
Така че си бил прав.
Един разделен на 10 е, в действителност, 0.1.
Но аз съм малко любопитен.
И се оказва, ФОРМАТ поддържа някои функции
чрез която можете да посочите повече от Броят по подразбиране на десетични точки.
Така че, ако искам да видя 10 десетични точки мога да направя процента,
за символ на контейнер, Дот 10 за, дайте ми 10 знака след десетичната запетая,
и след това още с плаваща запетая стойност, и, като се отмени,
каква е тази наклонена черта п Очевидно ние продължаваме да се използва?
Оказва се, че това е символ за нов ред.
Това е много категоричен начин да каже на компютъра,
придвижите курсора на следващия Онлайн след като сте готови.
И ние ще видим какво ще стане когато не правим това.
>> Позволете ми да прекомпилирате направи неточност.
Сега Дот наклонена черта неточност.
ДОБРЕ.
Все пак прав.
Един разделен от 10.
Сега аз съм се малко любопитни, все пак.
Ами ако аз гледам 20 десетични изтъква, прекомпилирате, разясняване,
и като заделени за скорост, можете да използвате и
Вашата стрелките нагоре и надолу, за да преминете през историята си,
така че не е нужно да се запази преписва тези команди, въведете.
Huh.
Аз не се научат, че в началното училище.
Добре, така че ме пусна виж като 29 места място.
Може би това е просто случайност.
Може би компютъра ми се държи странно.
Това не е нещо, нали?
Тя прави нещо детерминистично.
Така направи неточност.
OK, това е лошо.
И така, какво се случва?
>> Така че очевидно си учител е лъжа
да ви всичко това време за причини, които ще видим след дълго.
Но нека завърша с една друга програма.
Това е малко програми някой писа преди няколко години,
и това е всъщност част от конкурса.
Никой не може всъщност пише код по този начин, и ако го направите,
това е стилистично проблем.
Но хората правят това за самохвалство права.
За да напишете най-объркващо търси програма, която
все пак прави нещо интересно.
И бележката си мислех, че ще напусне по днес, преди Колтън ни разиграва тук,
е да стартирате тази програма, които, дори и само с помощта на
С в настоящия текст, базирани среда, ни дава това.
По дяволите.
>> [Смях]
>> Готовност.
[Недоловим] в таблото л m.
Вие ще видите магическите заклинанието, че ще видим скоро.
[Недоловим] Добре.
А сега можете дори да правите неща като това.
Това е.
За CS50 ние, ще се видим в петък.
>> [За възпроизвеждане на музика]
>> [Аплодисменти]