[Видео репродукција] -А Триумф на математички и механички вештина е оваа голема нов автоматски Калкулатор на Универзитетот Харвард. Сложени проблеми во математиката стави низ машината во шифрирана форма на лента се точно решени на минути дел од времето потребно за човечка пресметка. Дизајнирано за да се забрза сите форми на математички и научно истражување, џиновската механички мозок ќе работи за САД морнарица до крајот на војната. [END репродукција] Дејвид Џ MALAN: Ова е CS50. Минатото беше еден магичен место, но ако некогаш сте се прашував што тој уред е во Харвард и наука центар, тоа е навистина дел од Харвард Марк јас, а тоа е на екранот во моментов во изминатите неколку години. И она што ќе видите вградени во проблемот сет еден е поглед зад сцената во она што тој уред не, и не, од Професор Хари Луис, кој е во компјутерски науки Одделот овде. Толку повеќе за тоа во само малку. Но, денес ние почнат да се транзиција од минатата недела на ова, и ние ќе се донесе споменување на една фотографија тука кој е всушност доста познат. Дали некој знае што е ова тука е на екранот? Барем според мит. Је. ПУБЛИКАТА: Првиот вирус. Дејвид Џ MALAN: Па тоа беше наводно првиот вистински бубачка во компјутер. Сега во реалноста зборот бубачка, за грешка во програмата, е со нас за некои време во физичкиот свет, и ова беше еден од првите документирани времиња, во кои некој всушност куби голем молец од Марко Втората компјутер, го стави во врзивно средство, а потоа го снимиле како прв познат бубачка да се, всушност, биле пронајдени физички. Па со тоа е внесена дека во денешниот ученост. Сè, од минатата недела е достапен онлајн. Особено ресурси кои можеби не мора да се забележи, особено ако дојде тука во лице. Значи еден од наставата соработници на секој година прави канонска на белешките, така да не треба да се задржи главата надолу, во обид да транскрибирам повеќето ништо кои би можеле да се случи тука во класата. Така сфаќаат дека тие т.н. [? Scribd?] Белешки се онлајн, секако, на слајдови и изворен код кои ги користиме во класата. Ние се направи целиот текст записници достапни, како и. Значи, ако сте нејасно се сеќавам на некои рок, и сакаат да го гледам нагоре малку повеќе лесно, да сфатат дека сите од кои може да се пребарува на интернет. Како и walkthroughs, како и. Всушност, денес ние почнат да се погледне пониско ниво програмски јазик, наскоро ќе биде познато за нас како C, а тоа е многу лесно да вид на се изгуби по само неколку моменти време, а потоа вид на чудо како ние всушност доби малку повеќе комплекс пример од наједноставните. И така ние ќе се реализира цреша собереш во текот на наставата на некои на претставник примери, но сфатат дека многу повеќе е исто така достапни онлајн, така ќе можат да работат преку неа на свој темпо, Но ти си најудобно. Но, што застанавте со програми кои беа само тоа. Па јас кликнете на зеленото знаме, и она што оваа програма да направам? Вели: Здраво, свет. Тоа го прави на мачката се каже здраво во својот мал свет на горната лева страна на корисничкиот интерфејс е нула. Но почнавме да се воведе некои терминологија минатата недела. И така, вакви работи се јавивме што? Што би можело да биде на генерички поим за тоа? Је. Метода или изјава. Секако, тоа е некоја акција. Го направите тоа. А сепак имаше други форми на нула, Покрај овие т.н. изјава, тие се, исто така, работи како оваа, која што се нарекува што? Је. Така еден циклус. И во овој случај, тоа нешто повторува, очигледно, 10 пати. Има еден засекогаш блок. Има неколку други. А денес ние се случува да се види како да се преведе ова на повеќе современи свет, ако сакате, иако тоа е случува да се појави на прв поглед да биде многу повеќе таинствени. Ама тие беа навистина петелки. И тогаш имаме вакви работи ова, кој имаше оваа форма, и во суштина поставуваните прашања. И ние од овие, како што? ПУБЛИКАТА: Булова израз. Дејвид Џ MALAN: Да. Булова израз. Нешто што е точно или лажни, да или не, еден или нула, сепак сакате да ја видите во светот. Но ние ги повика сите оние Булова изрази, а ние им се приклучиш во услови, или гранки. И во светот на Нула, се што е убаво споеви во однос на својата форма, ако тоа го прави логичка смисла да го стори тоа, но вие не треба да се запре во само прави едно нешто условно, ќе може да има пословичен вилушка на патот и да се направи или ова или она, ако состојбата е вистина или не. А потоа, како што ќе видиме, Ако веќе не сте, Можете да дури и гнездо овие блокови. Па Скреч расте за пополнување на форми кои можеби ќе сакате да го вметнете во неа, така што всушност може да се изрази повеќето било логика кои можеби ќе сакате да се направи. Сега неколку збора на огласот за и тука и во Њу Хејвен. Па разделување почнува денес. URL-то за ова е на курсот веб-страница, за оние кои се запознаени. Делници ќе биде можност да се заедно во многу повеќе интимни средина од [? Сандерс?] Дозволува, со 10 до 20 соученици со наставата соработник на различни песни, и различни чекори, ако така одберете. Навистина понуди на курсот различни секции за оние кои се помалку удобно, повеќе удобно, и некаде помеѓу, и улогата на палецот тука, е нема формална дефиниција, но ако сте помалку удобно, можете вид на го знаеме. Ти си малку смел за Идејата за повлекува ногата, можеби, да се вратиме во училницата, или покажување до еден меѓу секција. Ако сте биле програмирање, бидејќи вие беа шест години, поудобно, можеби за вас. И ако тоа е вид на несигурности, тоа е токму она што во меѓувреме е замислена да биде. Сега, во меѓувреме, за класа оваа големина, што ни е потребно подолго време за да се секција секој, па имаме т.н., супер делови, доаѓа оваа викенд и почетокот на наредната недела, па погледнете на сајтот на курсот за оние кои се разбира широк, а исто така и за оние кои се снимени кои не можат да ги направат. И деловите се ќе почне во недела три на индексот CS50 нула. Проблемот е веќе поставена 0 на веб-страницата на курсот. И да сфати дека вие немате девет дена доцна овој семестар. Значи ова е надградба од минатата година, кога имавме пет доцна дена. Па ако се прашувате, имаме девет проблем сетови. Имаш девет доцна дена, од кои секоја можете само да поминат еден неделно. Кои ефикасно ги прави сите проблемот поставува поради Петок, но целта е да се стави малку малку психолошки притисок за да не се обидуваат да се добие работи во четвртокот бидејќи, како што наскоро ќе се открие, за подобро или за полошо, повеќето се што е во софтверскиот свет завршува земајќи многу подолго отколку што очекувате. Па тоа еден вид разгледа на можност да им помогне себе да наведете Четврток, но утеха во тоа, да, сè што се должи петок. И ако поднесете нив на Четврток, тоа е прекрасно. Не постои или екстра бонус поени кредит за исполнување на тој рок. Тоа е замислена да биде само за слабаци. И на работното време, како тука и во Њу Хевн, лично, ако сакате да го се сретне со некој од нашите курсеви наставата соработници и CAS за помош. Во ред. А сега, ајде да се направи овој пореално. И за момент тоа се случува да се започне да се добие малку повеќе таинствени, но многу брзо во петокот и следната недела ќе бидеме можност да се направи многу повеќе од можевме досега во нула. Па ние се воведе минатата код недела, иако pictoral. Тоа е мозаик парчиња. И ние формализиран дека тоа е нешто што се нарекува изворен код, но ќе изгледа како? Па, тоа изгледаше малку нешто како ова. И дека, всушност, само за да се вид на закачам каде можеме да одиме со оваа. Одам да се оди напред и да отвори прозорец тука, и јас сум само ќе се избере нова датотека. А јас ќе одам да се спаси оваа датотека како нешто како здраво точка в. Повеќе за тоа на избор зборови во само еден миг. И ова е како некој може да одат за пишување програма. Вклучуваат стандардни I / O точка ж, int главната празнина, а потоа отворете кадрава голема заграда, во близина кадрава голема заграда, printf здраво запирка светот, обратна коса црта n, запирка, Зачувај, направено. Во ред. Јас го напишав мојот прв програма, но тоа се случува да биде неверојатно underwhelmed бидејќи кога јас всушност ја извршите оваа програма, се разбира, од страна на првите пишување направи здраво, а потоа точка црта здраво, а ние ќе одат преку овој во многу повеќе детали во еден момент, тоа е се што прави. Не ги отворат сите прозорци. Тоа не прави ништо особено фенси. Сите тоа го прави е она што ми го раскажа на направи, но како да се дојде до тоа? И како да се изгради врз тоа? Па, ајде да се воведе неколку различни концепти тука. Така еден, ние сме за да се започне со помош на програма наречена компајлерот. Постои компајлерот за Mac OS, Windows Linux, било кој број на оперативни системи, и ние наскоро ќе ве запознаам со животната средина, кој ќе биде во употреба, но компајлер е само општ Рокот за парче софтвер кој ги зема изворниот код и произведува објектниот код од него. Со други зборови, ако имаат како влез твојот извор код, нешто како она што штотуку го внеле, тоа на крајот дава објектниот код. И објектниот код е навистина само фенси начин да се каже тоа излези нула и еден е. Со други зборови, извор код, иако тоа е случува да се погледне малку мистичен, и малку помалку пријателски од гребење на прв поглед, тоа е барем нешто дека ние, луѓето може да се разбере. Тој вид на изгледа и звучи како Англиски јазик, иако тоа е многу содржаен. Со оглед на програмирање во нула и една, како што нашите предци мораше да го направи, Пред неколку години, не беше особено забавно предизвик. А сепак, тоа е она што компјутерот се уште го разбира. Па компајлерот ни добива од изворниот код на објектниот код. Тоа е како отворање на датотека со компајлер, и кога ќе го спаси, да добиете оние нули и единици. Па ќе видиме како да се направи дека во само еден миг. Но, ајде сега се обидуваат да се обезбеди мост помеѓу минатата недела и тоа, така што дури и кога ние се обесени за работи како големи загради, и запирки, и загради, и сите овие интелектуално интересна аспекти на програмирање, дека многу разбирливо патување луѓе до почетокот на, сфатат дека сите идеи денес, се исти како и минатата година. Така минатата, видовме овој пример тука, Здраво Светот програма. Па, почнувајќи од денес, ако сакаме за спроведување на истата програма, тоа се случува да се погледне малку нешто како ова. И ние ќе се објасни она што пред долго int, и главната, и неважечки, а сето тоа е, но барем го гледам тука веќе познатите Здраво светот. Во меѓувреме, работи како функција, се каже здраво, е многу едноставно ќе биде многу едноставна изјава како оваа. Printf Здраво светот, со некои цитати, со обратна коса црта, со точка и запирка, но повеќе за тоа треба да дојде. Јамки, пак, тоа е циклус кој, се разбира, вели Здраво светот засекогаш, и ова се случува да се погледне малку почудна отколку во минатата, но ако кажам нешто како, додека точно, јас тогаш може да испечатите Здраво светот повторно и повторно и повторно и повторно. А потоа и како што можете да вид за да почне да заклучиме тука, оваа конвенција за користење големи загради е вид на како прифаќање на вовлечен линија код таму. Printf линија код во многу сличен жолта загатка парче горе. Па не се случува да се каже засекогаш, ние се случува да се каже, а точно, но ќе видиме зошто е во само малку. Во меѓувреме, ако имаме јамка, како таков, каде што ќе се повтори нешто конечен број пати, оваа исто така тоа е случува да се земе малку се користи да, но тоа се случува да се каже за int Јас добива нула, јас помалку од 10, i ++, а потоа printf повторно. Но таму се случува да биде дезени. И за оние од вас се запознаени АП компјутерски науки, или Јава, или било кој број на други јазици, скоро сите од овие конструкции досега би требало да изгледа најмногу запознаени. Толку променлива. Значи тука е едноставен Скреч извадок кој поставува променлива наречена контра на нула, а потоа засекогаш вели шалтер, како и потоа го менува противвредност по еден. Па ако почнува со нула, а потоа еден, два, три. Па, како би можеле да се воведат дека во овој нов јазик малку сличен начин? Int контра еднаква нула, додека вистинските, кои е дека истата идеја од пред за правење на нешто вечно, и јас сум само ќе printf. И сега тоа е добивање малку чудно, проценти i, но повеќе за тоа треба да дојде, но овие идеи се исти. Ние само сега треба да се придржуваат до синтаксата дека компјутерот е случува да бараат од нас. Булова израз, нешто како sx помалку од y, или x помалку од y, и y помалку од z. Тоа се случува да се погледне малку нешто вака, со загради само како по математика за добра мерка да се само се осигура дека редоследот на операциите е како што ние имаме намера. И сега, услови. Значи, ако x помалку од y, велат x е помалку од y, друго, ако x е поголема од y, велат x е поголема од y, инаку логично, x мора да биде еднаква y. Па можеби ќе се имплементираат нешто како ова во нула, или ако може да се имплементира тоа во оваа синтакса. И повторно, кадрави загради се вид на ни даваат со ист облик како сложувалката парчиња, но синтаксата, сега, е можеби почнуваат да се следат некои модели. Значи, она што го прави ова ни даде тука? Па ние сме назад тогаш нашата главна програма. Ајде да всушност, сега, направи нешто со неа. Така што во овој прв линија гледаме остри вклучуваат, стандард на I / O, точка ж, и тогаш некои чудни агол загради под тоа. int главната празнина, а потоа printf Здраво светот. Па само да се земе еден чекор. Некој кој никогаш не е програмиран пред, барем објасни еден од овие линии. Користење можеби некои од жаргонот на минатата недела. Printf она што е, на пример? Је. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Да. Тоа е функција, или изјава, терминологија од минатата недела. И тоа е една акција дека прави нешто. Сега оваа функција, или оваа изјава, не да изгледа да се некој вид на влез? И во која смисла го прави тоа изгледа да се земе влез, ако е така? Влез, она што мислам кога го велам тоа? Је. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Да. Па го избрише неколку мозаик парчиња каде што можете да го parametrize. Може да се каже за повторување блокира колку пати да се повторува, така што беше внесување на видови, и исто како гребење имаше малку бело случаеви за бројот ќе напишеш во, така ги користиме во овој Текстот светот загради ќе ни даде таква кружна форма во кои можеме да го приклучиш нашиот влез. Впрочем, десетици години кога тој јазик, наречен C, бил измислен никој предвидени тоа е еден од нас, овие неколку години подоцна, би сакаат функција која вели здраво. Нели? Тоа би било убаво ако имаше загатка парче, или на клучните зборови, тоа се вика здраво, дека буквално само рече здраво. Но, ние не треба тоа. Ние може да има нешто многу пониски ниво, како генерички печатење команда, кој ги зема влез, и отпечатоци што сакаме. Значи забележите сега шемата која ќе почне да се појават. Paren отворени, блиски paren е наводно прифаќање на влез, и тогаш гледам двојно цитати на двата краја. Се уште има чуден обратна коса црта n, но се надевам дека сега ти може да почне да се визуелизира барем дека printf изведува во некоја форма на влез. Не како корисник пријателски како Нула, но тоа е само како да ја вклучи во некои вредност таму. Добро, сега ајде, всушност, направи нешто со тоа. Па некои од вас можеби знаете од ја купивме класата пред, разговор со пријателите, дека за многу години ние се користи нешто што се нарекува на CS50 апаратот. Ова беше термин кој се опишува технологија повика на виртуелната машина, која е парче софтвер кој ви претходници ќе преземете исклучување веб-страница на курсот е за слободни. Тие, исто така ќе го симнете бесплатно парче софтвер наречен хипервизорот, нешто што се нарекува како VMware, или VirtualBox, или било кој број на други алатки, како и на нивните Mac или PC или што и компјутерски имаа минатата година и во изминатите години, тие ќе кликнете два пати на иконата за да работи овој софтвер нарекува хипервизорот. А потоа и во внатрешноста на таа програма тие ќе се отвори на CS50 апаратот. И ефектот е дека дали претходник на твое трчав Mac OS или Прозорците, тој или таа, тогаш потоа имаше прозорец на нивните екран трчање средина CS50 е. Па на виртуелна машина ти овозможува да се кандидира една оперативниот систем во внатрешноста на друг, и тоа е токму она што го правевме. Во текот на поголемиот дел од ние се разбира користат оперативен систем наречен Линукс, посебно Убунту Линукс, и тоа е многу убав начин и во изминатите години на што си сигурен дека сите во текот само имаше иста средина. И можете да го користите било каков вид на компјутер, кој всушност сакаат. Меѓу недостатоци, сепак, се што беше како два гигабајти за да ја преземете оваа работа. Тоа не мора да работат супер добро на луѓе чии компјутери кои можеби само имаше свирка или така на RAM меморија, или не премногу гигахерци на брзината на процесорите, и така оваа година, за оваа и други причини, ние бевме во транзиција на оваа средина. Т.н. CS50 ИРО, која е базиран на софтвер со отворен код, и поддржан платформа дека една компанија наречена Cloud9 поддржува во Европа, дека ни овозможува да имаме во суштина дека иста средина, како и во изминатите години, но во т.н. облак. Значи она што е облак? Веројатно сте кликнато иконата на вашиот Mac или PC. Што е облак? Да? Малку погласно. Је. Тоа е само еден куп на компјутери на друго место дека зачувување на податоци и да ја стартувате софтвер и слично. Значи тоа е навистина само со зборот де јуре на опишување [? рентабилна?] компјутери кои живеат на друго место. Кои ви се, себе си, не мора да ги поседува. Па кога вашите податоци, или вашиот програми, се во облакот, тоа само значи дека е на некој друг компјутер на друго место, и не, најверојатно, на вашиот физички лаптоп или десктоп. И така тоа е она што сега е CS50 ИРО. Отсега ќе отидете на одредена URL, кој ќе ве запознаам да, во проблем во собата 1, кон крајот на овој недела, која ќе се тогаш, по најавувањето, ви даде оваа средина. И многу сличен на гребење имаше неколку различни панели кои се вклучени, така ИРО CS50 имаат токму тоа. На горната лева страна, тука, ти си ќе видите некоја позната прелистувачот на датотеки. Така било на датотеки кои сте се стави во оваа средина се само ќе бидат прикажани овде. Датотеки и директориуми. Во горниот десен агол тука, си оди за да се види место каде што всушност може да го напишете вашиот код. Првично во C, подоцна во текот на Терминот во PHP и JavaScript, и, можеби за конечна проекти, Руби или Java или Пајтон или било кој број на јазици се поддржани во оваа средина. Тоа не е на сите врзани да CS50 конкретно. А потоа и во долниот агол тука, особено за оние кои се чувствуваат поудобно, имаш нешто наречен терминален прозорец. И ова терминален прозорец страница можете да ги изврши сите команда која ќе се сакате во оваа облак на животната средина. Тоа ви овозможува да инсталирате дополнителен софтвер што сакате, бидејќи сте т.н. корен, или администраторски привилегии. Значи со други зборови, иако ова крајна линија, е хостирана во облак, и иако имаме Тоа поедноставен до одреден степен по дифолт, буквално воведување, благодарение на Дан Armendariz и Дино, и Ден Бредли CS50 на тимот во текот на изминатите неколку месеци, а помалку удобно владата која крие многу од првично збунувачки одвлекување на вниманието. Сè што постои, постои за да претставуваат типичен компјутерски систем кој ќе се користи во реалниот свет. Значи она што значи сето ова значи, и што можеме, всушност, прави со него? Ајде да се, всушност, да погледнеме програма. Па јас ќе одам да се отвори конкретната средина тука, што е само нашата Хром пребарувач, која може да биде Firefox, би можело да биде на Internet Explorer, или некој друг пребарувач, како и. Тоа е полн прикажани тука за миг. И сакам да се, всушност, се закачам освен она што оваа програма. Па ајде да ги разгледаме, со зумирање до на почетокот, во она што го направив, и како стигнал овде. Значи тука е оние точните истите линии на код. Значи ова е изјава, како што е споменато порано. Функцијата што вели здраво. На големи загради, на линија четири и шест линија, веројатно вид на плик таа линија да го поврзе со суштината на мојата програма. Значи, навистина, овој клучен збор главната, тоа е таму на линија од три, можете да мислам на тоа како еквивалент на тоа кога зеленото знаме кликнато, блокира во нула. Значи, тоа е сè што имаме овде, е кога зелено знаме кликнато, печатење или да се каже, Здраво светот. Но, ајде да се погоди, и сега, на она што ова прво, повеќе arcane линија, е. Остри вклучуваат, отворена под агол заградата, стандардот I / O точка ж, затвори аголни заграда. Што е она што можеби го прават, особено ако сте програмирани пред на друг јазик. Да? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Да. Токму така. Така што ова ви дава пристап до библиотека, така да се каже, на функциите. И библиотека на функции е функции што некој друг напишал, или неодамна или одамна, така што ќе не треба да го откриеме на тркалото. На пример, ние не Треба да знаете, во 2015 година, како да се напише код кој го става лик на мојот екран. Некој друг ја сфатиле дека надвор со функција printf така што можам да се најде решение на апстрактни далеку од тоа, или слој на врвот на неговата или нејзината код, а сега само се земе здраво за готово дека било која програма го пишувам може да печати нешто на екранот. Па ова првата линија има во еден чекор вклучува т.н. хедер датотека за стандардната библиотека. Па види, јазикот на што ние сме сега работат имаше стандардната библиотека со многу функции. Printf е еден од нив, а дека првата линија на кодот значи ми даде пристап до тие функции, така што можам немора да откриеме дека тркалото. Сега ајде да одиме на дното на прозорецот и го прават токму она што беше порано. Пред еден миг, кога бев whizzing низ код, да го пишувате надвор за прв пат, Јас многу брзо чука, направи здраво. Што беше тоа сите ќе ви се погоди? Што бев прави? Да? Не е важно. Тоа е во ред. Је. ПУБЛИКАТА: Компајлирање тоа. Дејвид Џ MALAN: Да. Тоа беше само тоа составувањето. Нели? Дури и ако тоа е сосема непознат за вас, тоа е прилично англиски како. Тоа сигурно не е нули и оние, па јас се уште треба да ја извршите преку дека т.н. програма, компајлер, кој ќе да го земе како влезни и произведе излез. И барем за сега, во оваа Linux животната средина, но ова не е предуслов, ова е само каде што ќе почне, обично комуницирате со компјутерски системи се допаѓа ова од страна на т.н. командната линија. Така е и со трепкање брза и тастатурата, и не е толку многу на глувчето, а не толку многу прозорци и икони и менија, дека сè е текстуални. И иако ова се чувствува, на прв поглед, можеби, како чекор наназад, тоа е всушност многу повеќе моќен и експресивен начин за контрола на компјутерот особено како тебе, себе, да станат повеќе удобно од помалку. Тоа се случува да ви овозможи да се направи многу повеќе нешта отколку само она што Мајкрософт или Apple ви овозможува да се направи со нивните графички оперативен систем. Па кога ќе притиснете Enter, сега, ништо не се случува ова време бидејќи очигледно програма здраво е до датумот. И она што беше на командата Истрчав после тоа? Dot црта здраво, а Здраво светот. Сега ајде да направиме еден чекор се врати за само еден миг. Излегува дека направи здраво е само поедноставен начин на изготвување програма. Ајде да се воведе едно парче на жаргон, но потоа се движат подалеку од неа, бидејќи тоа не е сите што интересно за денешните цели. Компајлерот ние ќе треба да почнат да го користат се нарекува ѕвекот, за јазикот Ц. И ова е програма која работи само како што ни остана во командната линија таму. И така, ако сакам да да изготви програма со која јас имаат напишано во датотека наречена здраво точка в, јас буквално само напишете ѕвекот здраво в влезе. На смешно нешто е, од историски причини, ако јас не се определи Име на програмата дека сакам да се излез, ако јас не наведете име на датотека за оние нули и оние, многу чудно пред Конвенцијата е усвоена години каде што се чувствува еден вид на добар одговор во тоа време, и ајде да се произволно да се јавите на Првата програма ние ги собере точка надвор. А е на прво место во азбуката. Надвор, тоа е излез. Па ние ќе се јавите во програмата по дифолт точка надвор. И тоа е во ред затоа што ако јас сакам да работи на програмата во овој текст, базирани на животната средина, јас само тип дот црта точка надвор влезе. И тоа би било точно како порано. Да видиме што вистински пост. Значи, ако јас се вратам во мојата изворниот код во CS50 ИРО, и јас наместо да го направите ова, ѕвекот здраво креветче в влезе, најава ништо не чини да се случи, но речиси секогаш во оваа Linux животната средина, кога ништо лошо не чини да се случи, дека значи нешто добро се случило. Ако не го видите грешка порака, сите веројатно е добро. И, навистина, ако јас сега го направи точка црта точка надвор влезат, сум го водам својот истата програма. Јас имам уште програмата здраво од порано, бидејќи навистина, тоа е ќе биде толку многу поубав само напишете направи наместо сеќавајќи овие баења на команди, но ајде да видиме како можеме може да се подобри по ова, сепак. Значи, ова е команда да ги собере на код. Ова е командата за извршување Составувач кодот потоа. Како можам да го наведете името на датотеката? Па ајде да се воведе уште еден дел на жаргон. Кога сте во оваа текст, базирани на животната средина, ви се случува да сакаат да се определи нешта наречени аргументи на командната линија. Која е само фенси начин да се каже, други зборови во конзолата дека tweak однесувањето на она што програмата си работи. Толку посебно програмата сум трчање, со внесување на ѕвекот име, е програма наречена ѕвекот. Значи ова е или на старото училиште еквивалент на двојно кликање на Microsoft Word или Иконата некои програмата. Јас сум, наместо само внесување на неговото име, но во оваа верзија на командата, Тогаш имам цртичка о простор здраво простор здраво точка в. Па дури и ако никогаш не сум одигра во овој свет, пред, само да се погоди она што се цртичка о здраво да направам? Или она што не го кажуваат ѕвекот да се направи? Је. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Да. Тоа едноставно се поставува излез на датотеката да биде Здраво, наместо на sillier точка надвор. И, навистина, да се обидеме ова. Значи, ако јас сега го прават, прво ајде да го направите ова, њ м здраво. Тоа е се отстрани. И тоа се случува да се каже отстранување обична датотека здраво, која е непотребно таинствени, но тоа само средства не сакате да ја избришете датотеката, и јас у тип за да. И известување, ако се обѕрне на врвот лево, таа исчезна од таму. Дозволете ми сега направи ѕвекот цртичка O, и Одам да се оди напред и да се направи здраво, во сите капи, здраво точка в. Сега, ако јас се направи точка коса црта Здраво, она што би очекувале? Можеби тоа е и мали букви. Можеби тоа не е. Ајде да видиме. Нема таква датотека или директориум. И ние може да вид на измамник со само да гледа во горниот лев агол. Што сум очигледно зачувајте ја програмата како? Сите капи здраво. Па навистина, што се случува да се направи разлика. Па сега Здраво светот е назад. Сега ова е сите фини и добри, и сите се многу умот-numbing, да вид на се заглави во овие детали, но ги разбираат е добро. Пишување од овие повеќе долго баења нема да биде особено забава, па луѓе во светот измислена друга програма, Пред неколку години, наречен направи, од која не само ви дозволува да внесувате шминка, името на програмата сакате да се направи, и да се направи е паметен со тоа што ќе се погледне во тековната папка, ака директориум, и ако имате датотеки наречен здраво точка в, дека е датотеката што ќе состави за вас во програмата наречена здраво. Така што е многу поедноставен начин на прават повеќе криптичната команди да сме направиле порано. И имаме пред-конфигуриран CS50 ИРО да знаете дека тоа треба да се направи цртичка о и голем број на други знамиња, или аргументи на командната линија, дека ќе видиме пред долго. Но, ајде сега всушност се направи нешто поинтересно. Само пишување надвор Здраво светот сите времето и не е толку привлечна. Значи, дозволете ми да оди напред и да се промени оваа програма и да каже, здраво Давид. Сега ќе одам да одат надолу тука. Одам да се оди напред и да се направи се направи здраво. И сега повторно да го гледате бидете ви ја покажува колку подолго низа на команди дека тоа е го правам затоа што сум се пре-конфигуриран тоа на тој начин, но ние треба да се грижат за сега она што таа го прави различен од тоа е составувањето точка црта Здраво, Здраво светот. Што е проблемот? Је. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Да. Значи, noobie грешка. Забележувам ова е супер суптилни, но ѕвездичка тука, во јазичето, само значи дека не сте го зачувале, и пребарувачи и други програми направите тоа понекогаш. Па контрола s или команда а треба да ја зачувате. Сега дозволете ми да оди напред и повторно да ја стартувате програмата. Recompiled. Право, па тоа е процес од повеќе чекори. Ниту еден од нив е особено комплексна, но секое време ние промена на датотеката, ние треба да се промени како резултат на нули и единици, и точка црта здраво. Wow. Значи ова е многу underwhelming дека ние само отпечатени ова. Ајде да се направат работите малку повеќе динамичен, сега. Па, се покажа, дека допаѓа Нула, С поддржува променливи. И испоставува ако сакате да има променлива која продавници, не повеќе како ние обично се правеше со нула, но како и еден збор, или фраза, или некое име, можете може да се определи со променлива да биде од типот низа. Па ќе видиме повеќе овие во само еден миг, но излегува дека C, а многу јазици како него, имаат многу специфични типови на променливи. Тоа не е исто како алгебра, каде што можете да добиете X, Y, Z и оние кои се само секогаш броеви, во програмскиот јазик можете да ги чувате броеви, можете да чување на индивидуални карактери, може да се сместат целата зборови, можете да сместат целата слики, целата звучни датотеки, и слично. Значи ние треба да се определи што од видот на нашата променлива е. А од страна на конвенцијата, ќе одам да се јавам на моите променлива е само затоа што е содржаен, и s се залага за низа. А потоа јас ќе одам да се сместат во внатрешноста на оваа променлива, Исто како и со нула кога јас го користам на сет блок, Одам да се користат оператор задача во C, што доволно убаво е еднаков потпише, но знакот за еднакво прави ова. Нешто што се движи по десната страна во На левата страна на изразот. Значи она што го сторив, за да биде јасно во линија пет, се што сум прогласена за променлива. Сум рекол на компјутер, дај ми меморија за променлива, јавете се тоа е се, и да се знае однапред дека ќе одам да се стави стринг со него. И низа е само секвенца од знаци. Тоа е еден збор или фраза, или став, но тоа е низа од карактери. Тоа не е броеви. Што стринг сум јас требаше да биде пуштање во таа променлива? Па, очигледно цитирам unquote "Хана". Сега забележите шемата која е во развој. Има еден израз левата рака. Има еден израз десната рака, разделени со знакот за еднакво. И само се погоди, ако непознат, сепак, со она што го прави точка-запирка. Што е тоа се претпоставува дека се прави за нас? Да? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Да. Тоа е само за прекинување на линија. Нели? Компјутерите ќе сакате да бидете отворено изјави, буквално, што да правам. Како на путер од кикирики и желе сендвич пример, ако не се определи токму она што имате намера, тоа би можело да се остави на судот или грешка. Запирка значи, тоа е тоа за оваа команда. Тоа е се супер прецизни, и тоа е многу лесно нешто да се остави надвор. Па сега оваа програма се чини дека не да се однесуваат поинаку, додека не го прават тоа повеќе динамичен. Така, наместо да тешко можеше моето име, дозволете ми да се стави вредност случаеви. И излегува дека, и знам дека ова од ја прочитате документацијата, и се користи функцијата за години, дека printf е дизајниран да биде динамичен. Вие не мора да се знае однапред кои зборови сакате да се стави во неа. Наместо тоа ќе може да има случаеви, како отсто s, што се случува да кажам компјутер, да се стави тука низа. Кој стринг не сакаме да се стави таму? Волја произлегува дека помеѓу овие загради, што се сеќавам, демаркираат за внесување на функција, ако имате запирки листа на работи овде, ние всушност помине во повеќе влезови до некоја функција. Па само како некои Скреч блокови, можеби нема да играле со нив за вашите проекти допрва или на сите, некои Скреч блокови имаат два влеза. Две бели кутии што можеш пишувате броеви или зборови во. Така да не Ц имаат функции како printf која може да потрае два влеза. И повторно, ова запирка е ги разделува. Па на англиски јазик, пак, дури и ако никогаш не сум програмиран пред, по таа логика printf е во функција, зема два влеза, од кои една е случаеви, што би се надеваме printf се случува да се направи со овој влез? Тоа се случува да се каже здраво Хана, се надевам. Па да го направите ова треба да го спаси. Одам да одзумирате. Одам да се вратиш овде и да каже, направи здраво влезе. Ох. Нешто не е во ред, а всушност ова е доста големо. Имам шест линии на код и како 12 линии на грешки. Значи, со нетрпение го очекуваат тоа. Значи она што се случува овде? Па најдобро правило овде, особено кога сте на почетокот, не се оддалечила од страна на работи на дното. Всушност, јас многу намерно само дошле до затоа што многу често, компјутерот е не се сите дека светло на уредот. Тоа се случува да се збунети. Доколку смета дека е едно нешто што тоа не го разбира, тоа би можело да се грешка други линии на код како неточни, иако тие се совршено добро. Така што секогаш сакаат да работат врвот надолу низ грешки. И мора да признаеме, ова е супер таинствениот во моментот. Грешка, употреба на непријавена Идентификатор на стрингот. Си мислам стандард? Не, мислев стринг. И тоа се покажува кон, можеби тоа е печатна грешка. Вид на како, магија-проверка на многу geeky начин, но причината тука, и ќе знаете ова само со пракса, е дека тоа се покажува дека стрингот не постои во В. Всушност, С е особено стариот јазик, и тоа е на многу ниско ниво, и не е така голем број на функции кои можеби пораснале со ако имаш, всушност, се програмираат во Java, како што некои од вас имаат, но можете да го учат нови работи. И, навистина, ние сме го направиле ова CS50, и покрај тоа што од страна на крајот на семестарот, сите овие помошни тркала ќе се соблече, она што го правиме во овие првите неколку недели првично е ние исто така имаат сте го вклучите CS50 точка ч. Која е насловот датотека. Повеќе за тоа во иднина. Тоа е датотека која содржи функции кои што го имаат напишано за вас. И меѓу оние функции е функции за добивање на влезните од страна на корисникот, како стрингови, и броеви, и реални броеви, и многу повеќе. Но, тоа, исто така, има неколку кратенки. Тој ги дефинира Булова како тип на податок. С нема вистинити или лажни. Но, можеме да го даде на поимот вистински или лажни, по пат на оваа библиотека. И тоа исто така не имаат низа вграден додека не се вклучи оваа линија. Значи оваа линија код раскажува компајлерот, еј, ѕвекот, погледнете во оваа датотека за цела куп на код кој CS50 има напишано, така што некој користење на оваа податотека може да се земе здраво за готово карактеристики тие додадов. Па сега дозволете ми да оди напред и чистење на екранот, и ако љубопитни јас сум само велејќи контрола l секое време да го исчистите екранот, или можете да напишете јасни. Јас сум само ќе се оди напред и сега тип направи здраво, и се е во ред. Уште мистериозен излез, но тоа не е погрешна порака. Сега, ако јас се направи точка црта здраво, и како настрана, точка црта е непознат за повеќето. Тоа само значи, дот средства тековниот именик. Значи, ако некогаш сте се користат ДОС, или Linux или Unix сте го направиле нешто како ЦД точка точка, каде што точка точка значи одат наназад време, или да се врати назад, или повисоко во вашата локална папка. Дот само значи да се погледне во тековниот именик. Сакам hello, кој е во право тука. И навистина, сега вели здраво Хана. И ако јас го промените Марија, повторно компајлирајте тоа ќе го направи здраво, точка црта Здраво, програмата држи се менува. Но, ова е уште еден мошне глупава програма. Ако сакам да брод од оваа програма, или да му даде на еден пријател, или да го даде на Марија или Хана за таа работа, тоа е во ред. Можам да го прилагодите за двете од нив, но тоа никогаш не се случува да биде динамичен. Тие не можат да ја промените откако таа се состави долу во оние нули и единици. Значи она што сме направиле нешто попаметни? Што ако, наместо на хард-кодирање во програмата за името на ова лице, што ако ние само се низа на побарувачката? Значи со други зборови, дозволете ми да го направите тоа. Одам да го прекомпајлирате оваа програма. И дозволете ми да зумирате на дното сега. Направи здраво точка црта здраво. Сега ништо не се случува. Можеме ли да се добие брз волонтер да се направи нешто да се случи? Качи. Што е вашето име? Панчо: Панчо. Дејвид Џ MALAN: Pacho? Качи. Откако ќе го добиете тука, ова е Ќе биде многу underwhelming, но тоа е повеќе интересно од мене да го пишувате. Ако сакате да се оди напред и да внесете го вашето име, не сум направил оваа програма е само за вас. Само внесете го вашето име. Влезе. Прекрасно. Во ред, ви благодарам многу. Панчо: Ви благодарам многу. Дејвид Џ MALAN: Во ред. [Аплауз] Тоа беше многу љубезни. Еве ти. Она што не можеме да направам? За да можеме конечно, во најмала рака, направи оваа програма динамичен. Сега тоа е уште сигурно од страна на дизајнот underwhelming, но ние конечно имаат способност како да се напише кодот во однапред, многу како авторите на printf, а потоа динамички адаптирањето емоциите врз основа на влезот сме подаде, или од страна на програмерот, или од страна на човек кој е всушност интеракција со програмата. Па да, всушност, сега се обидуваат да се направи на неколку други конструкции и да видиме ако не можеме да се направи на програми се пософистицирани. Значи, да се оди напред и наместо пишување на оваа една од нула, Одам да одите во денешната изворен код, и сето ова се достапни на курсот веб-страница, и можете да го повлечете и да го испуштите во вашата околина дојде петок еднаш проблемот 1 сет ви дава инструкции, или можете да го прават тоа на командната линија како добро, но повеќе за да дојдат во собата 1 стр. Ајде да видиме што е во оваа програма тука се нарекува, ехидна точка в. Сега сум веќе коментираа тоа, но она што е ново? На прв поглед, она што линијата на кодот е апсолутно ново? Најверојатно не фундаментално непознати сега. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Да, па int x е еднаква добие n. Ние никогаш не сме биле сведоци на овој пред тоа, но веројатно е int Симболот за каков вид на променлива, [? од?] цел број. Па int за цел број. Тоа е само да се биде повеќе содржаен. x е само произволни. x и y и z се уште прилично разумни за броеви, но, генерално, ќе се послужиме зборови еднаш нашите програми се посложени. Добијат int, се разбира, слично како стапите стринг, веројатно ќе добие на int од страна на корисникот, и тогаш ние ќе треба да го прават истото со y. И очигледно, иако ова последната линија, 24, изгледа посложена, тоа се случува да се каже на збирот на овој и тоа е тоа друга работа. И известување проценти i веројатно го означува она што? Која е улогата на проценти Јас очигледно служи? Тоа е само променливи. Нели? Проценти и беше за стринг, проценти i е за цел број. Таму се случува да биде проценти ѓ за подвижна запирка вредност, која е само еден број со децимална точка. Со други зборови, вистински број. Значи, да се, всушност, ги собере на оваа програмирате вистински пост и го прават ехидна. Whoops. Добра можност. Така забележуваме дека тука, сето ова време моето корисничко jharvard се именува за оваа сметка. Јас сум во CS50 ИРО, ака IDE50. А сега во сино тука, се споменува, но од областа на животната средина, од каде сум. И всушност, ако можам да зумирате до врвот тука, забележите дека имам IDE50 и гледам ова слово, ако вид на вртите главата на страна, работен простор. Во мало, на фактот дека Јас гледам тилда коса црта работен простор значи дека во овој текст врз основа команда на животната средина, Јас сум во текстот што е еквивалентно на овој графички папката до тука. Па кога ќе се направи точка коса црта ехидна, тоа е велејќи нема владеење да се направи цел ехидна станица. Јас не знам што значи тоа, но тоа е лошо за некоја причина. Нема таква датотека или директориум е уште јасно. Каде што е тогаш? Врз основа на која јас кликна за отворање на датотеката порано. Таму каде што може да биде? Тоа е веројатно во извор еден W, за среда, и јас може да се види, навистина, ако го отворам дека до. Постои ехидна точка в, но во овој текст-базирани на животната средина, повторно, морам да бидам супер експлицитни. Ако сакам да се промени во директориуми извор еден Среда, јас треба да напишеш, CD простор еден извор Среда внесете и сега моите брзи промени на дај ми некој визуелен знак дека Јас сум, навистина, на друго место во мојата средина, но сега можам да го прават ехидна, се чини дека е на работа, дот црта ехидна, ми даде цел број. Еден. Две. Сума од еден и два е три. Но, ако јас не соработуваат, ајде да видиме што се int прави. Дај ми цел број. Бр Обидете се повторно. Во ред. Парична казна. 50. 50. Во ред. Така што конечно соработува. И тоа е дел од функционалност дека овие функции може да имаат изграден во за вас. Па во внатрешноста на имплементација за да добијат цел број, што програмирањето конструираат од минатата недела е веројатно во таму да се принуди ова однесување на повторниот обид, обидете се повторно, обидете повторно? Да, таму е веројатно некој вид на јамка. Тоа се случува да се погледне синтаксички различни од нула во блокови, но тоа е навистина она што е внатре на датотеката. И за неколку недели ние ќе всушност поглед на библиотеката CS50 за тоа што е внатре, но има јамка наметнување токму тоа. Ајде да играат глупо малку игра тука со оваа податотека. Состојба нулта точка в. Ние сме само ќе да се генерално почне пребројување на нула. Па и јас лизгање минатото некои од работите на врвот. Во сина боја тука, дали се утврдени со сите на овие ѕвезди и засеци, оние од вас кои се програмира пред тоа, што е тоа? Зошто ни се задржи скокнеш над неа? Што? ПУБЛИКАТА: Тоа е коментар. Дејвид Џ MALAN: Да. Тоа е само еден коментар. Ова е коментар за луѓето да се читаат, што во нашиот случај, ни кажува што името на датотеката е, кој го напишал, и она што го прави тоа, така што вие не мора да да се чита преку код да знаат што оваа датотека е за сите. Тоа е само опис, но функционално тоа е небитно. И јас дури и може да го избришете од моето досие и тоа нема никакво влијание. Сочно линии се овие Првите две тука, сега. int главната празнина е еквивалент од нашите, кога зеленото знаме кликнато, па ние ќе го оставиме тоа да биде за денес, а ние ќе се вратам, на крајот, за тоа што int и неважечки се, но сега, забележи она што го направив тука, можете исто така, ако имате во согласност коментира, ако имаш А мислев дека сакате да споделите за одредена линија код, конвенција во Ц е да се направи коса црта црта, а потоа неколку содржаен зборови, не цела реченица, генерално не е став, објаснува дека само за вас, или вашиот ТФ, или другите читатели или колеги, она што ти го кодот го прави. Така, наместо да мора да се погледне во тоа и го заклучиме од линии девет и 10, што е тоа го прават, во согласност осум Јас само се даде коментар на да побара од корисникот за цел број, тогаш не треба да се размислува премногу тешко за тоа што линиите девет, а 10 се. Јас само знам дека тоа е она што колективно што го правиш. Како? Па, тука е на линија. Тука е добивање на Инт. И врз основа на претходно однесување, ми се чини дека стапите int е доволно паметни за да бидете сигурни дека човечкото соработува и тоа му дава цел број. Но, сега гледаме ова. И ова е потсетник на нула. Тврдам дека сум анализирање на внес на корисникот, но малку неточно. И ова очигледно во C е како ние изразиме ако друго, една гранка, вилушка во патот, но јас каже нешто неточно. Што е бубачка во оваа програма? За понатаму назад? Је. ПУБЛИКАТА: [Беззвучен] нула. Дејвид Џ MALAN: Да. Значи, ако јас напишете во нула, ајде да се разгледа токму тој случај, или агол случај, ако сакате. Значи, ако јас напишете во нула, што на блокови ќе очигледно тоа го имате? На или ако на друг? На друго место, и тоа се случува да се каже, сте го одбрале негативен број. И навистина, нула не би требало да биде позитивен или негативен, и така тоа би било погрешно. Тоа би било грешка. Па како можеме да го надминете овој? Некој кој никогаш не се програмира и пред тоа? Дали want-- ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Вовлекување? ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: О, имате? Некој кој никогаш не програмиран пред. Сакаат да се обиде својата рака во ова, во црвена кошула? Качи. Oh yeah, ајде горе, ако не ми пречи. Па никогаш не ја програмираат пред, за она што е вашето име? Лорен: Лорен. Дејвид Џ MALAN: Лорен, сите во право. Па поправи оваа грешка за нас. Вие не сте виделе Ц, веројатно, и веројатно нема друг јазик. Па го надминете овој програмата за нас. Убаво да се исполнат тебе. Не притисок. Лорен: Да. Дејвид Џ MALAN: Но, повторно, ако ова комар оди според планот, готова брза тука ќе биде, само еднаш, за да започнете да се забележи обрасци и заклучиме од постоечките синтакса Како инаку може да се изрази себе, не каламбур наменети, со цел да го фати некои дополнителни сценарио. Значи ние сме велејќи друго ако. printf, добро. И известување со CS50 IDE, и frankly-- ИРО се залага за интегрирано Развој на животната средина. Тоа е само фенси начин да се каже програма која ви помага да програма. Тоа го прави лесен за вакви работи кога ќе напишете заграда, тој автоматски ви дава други. Презумпцијата е во тоа што сте на крајот ќе сакаат да напишеш дека, и тоа исто така го прави тоа со цитати. Па ми се допаѓа линија 23. 99% од пат таму. Некој сака да свири со врвот? Слушнав запирка од публиката. Добро. Така што завршува тоа. И сега, јас само треба малку вчудоневиденост со линија 21. Како сакаме да го изразат ова? Кое прашање сакаме да прашам, што мислиш? Па со кого претходно се поставува прашањето, ако n е поголем од нула, да го направите ова. Друго, го направи тоа. Значи ние треба да се избере прашање да побарате тука. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Добро. Значи, ако n е еднаква на нула. Одличен. Значи, да се откажеш тука. Ви благодарам многу за braving ова. Дозволете ми да ви даде малку добро заслужена стрес топчето, можеби таму. Значи ние сме речиси таму. Всушност, Лорен, ако не ум, дозволете ми да се направи еден tweak тука, само за да бидат во согласност, дури и со она што го видовме на гребење, што сакам да се направи со линии 21 и 24 години, само повторно врз основа за тоа како ние го направи ова во нула, можеби? ПУБЛИКАТА: тоа се движат нагоре. Дејвид Џ MALAN: Да, таа се движи нагоре. Така состојба на друг, трет, или четврта или петта, или конечна гранка, навистина треба да дојде потоа, и тоа е само по конвенција, само затоа што ако сакате. Па јас не треба да се направи оваа tweak. И јас треба да ја ставам кадрава подготвуваат повторно тука. И сега, оваа програма ќе се состави. Ние сме толку блиску, но има многу, многу суптилни бубачка. Ајде да видиме што се случува. Прво, дозволете ми да оди напред и да ја намалите. Одам да се оди напред и да напишете направи состојба нула. Ох, се излажав. Сега компајлерот е всушност прилично паметни. И јас навистина не разбирам тоа е порака за грешка. Користење на резултатот на задача како услов без загради, очигледно е лошо. Но што значи тоа? И повторно, во потрага по модели во кодот што видовме претходно, она што е на линија 17, всушност, прави, иако Лорен наменети малку поинаку? Је. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Да. Па се сеќавам знакот за еднакво, очигледно како што ние си го користеле порано, не е еднаква. Задачата, од десно кон лево. 17 па се редат во моментот е услов, а тоа е извршување на код во внатрешноста на загради, но кога тоа кодот се извршува, што се случува со вредност од нула? Што се случува на вредноста на n? Станува нула. Значи, ако n станува нула, и повторно, како на минатата недела, ние обично велат дека нула е лажна и еден е вистина, или да е еден и не е нула. Толку вистински и лажни, еден и 0. Ако n како на линијата 17 е со оглед на вредноста 0, е нула вистина? Бр По дефиниција, нулата е лажна. Тоа е конвенцијата сме ќе се држат за придвижување напред. Па ќе линиите 18, 19, и 20 некогаш применува сега, логично? Тие не можат. Па ние го постави прашањето но не сосема точно, и вие не би знаеле ова, освен сте го виделе тоа, решението во C е кога ќе сакаат да го изразат еднаквост, велиш еднакви рамноправни. Така знак за еднаквост веќе е искористен по задача, од десно кон лево. Еднаква еднаква средства еднакви. И ако навистина сакате вашиот ум да биде свиткано, во JavaScript и PHP, има еднакво еднаква на еднаквите, која значи нешто сосема друго, но ние ќе дојдеме до тоа пред долго. Значи ова е едноставен фикс, но сфати супер лесно да ја прават оваа грешка, а потоа се прашуваат и борба за минути, ако не еден час, Зошто мојот код не извршување како што јас имам намера? Тоа е затоа што не си кажам тоа токму она што ви значи. Така што беше речиси совршен, и тоа е одлично дека ние се тетеравеше низ овие две мали работи, бидејќи сега, ако ние ги поправам, и јас се направи состојба нула дот црта состојба нула, Би сакал цел број молам. Ајде да видиме. Бр Тоа се случува да ме присилат да го направи тоа. Па 42. Јас зедов позитивен број. Па сега како можам да се докаже оваа програма е точна? Ако сте математичар, не можете да навистина се докаже ова преку обиди и грешки, нели? Вие не може само доказ од на пример, но барем како програмер ние не сме ќе се обидат да се докаже, за сега дека ова е всушност точно, но јас требаше тест некои претставник случаи. Сум тестирани 42. Јас би можел да тестира 43. Јас би можел да тестира 44. Тест 45. Нели? Но можев да го направите ова навистина долго време. Она што ќе биде малку повеќе интересни случаи да се обидат? ПУБЛИКАТА: [Беззвучен] нула. Дејвид Џ MALAN: Значи нула. Секако. И добро, ние сме го добив тоа време, благодарение на новиот код на Лорен. Што е уште еден добар случај да се обидат? ПУБЛИКАТА: негативна. Дејвид Џ MALAN: негативен, и можеби нешто малку поголем, па можеби и негативни 42, но во целина, кога тестирање на вашето програми се движат напред, ти си ќе сакате да се размислува за себе, како што се основните различни случаи. А ќе речам негативен случај, позитивен случај, и нула случај доста круга овие надвор. Ајде да погледнеме во една варијанта на ова, секако. Услови еден. Ова е точно решение овде, така што ќе видиш две и на интернет, ако ви прошетка низ walkthroughs, генерално ќе прираст овие нагорна додека не добиете токму вистинскиот пристап. Што ако сакаме да ве помолиме две прашања одеднаш? Дозволете ми да се отвори оваа наместо. Не-прекинувач, од причини ќе видиме некое друго време. Што е ново синтаксички тука? Јас сум моментално играат играта каде што компјутерот е да кажувам ми, дај ми цел број помеѓу еден и 10, и тогаш јас сум судејќи влез на корисникот. На англиски јазик, врз основа на го кодот што го гледате тука во сина, што прави оваа програма? ПУБЛИКАТА: [Беззвучен] бере голем или мал број. Дејвид Џ MALAN: Да. Тоа е само одлучување дали Јас зедов еден голем, и медиум, или мал број врз основа на многу произволна дефиниција за мали, средни, и големи тука, но огласот синтаксата што е ново е ова. Нема помалку од или еднакво на int потпишат, или поголемо или еднакво да го потпише, каде што е во однос на другите, кои ви може да се изрази во како Microsoft Word. Па во програмскиот јазик сте обично само го прават два лика, еден по друг. И она што го прави ова веројатно претставуваат, симболот со симболот. ПУБЛИКАТА: [Беззвучен] Дејвид Џ MALAN: Да. Тоа само значи дека и поради тоа што Излегува дека авторите на С користи еден симболот, која што може да мислам ќе биде совршен за поимот на и, е веќе искористени, така симболот симболот всушност доловува случај ние всушност сакате. Па ајде сега се сопнуваат низ две работи. Дозволете ми да оди напред и да се отвори една. Нешто што е малку загрижувачки. Непрецизност точка в. Дозволете ми да се воведе две работи овде. Еден, забележи дека ние може да го направи математика, како како и пред тоа кога ние го сторивме плус на два броја, x и y. Што е оваа програма очигледно се прави? Јас не сум го коментирал уште, и јас сум воведен проценти ѓ, но набргу се рече порано проценти ѓ значи подвижна запирка вредност, кој е реален број. Нешто со децимален точка, која не е цел број. Што мислите дека оваа програма е се обидува да ми ги покаже на екранот? Да? ПУБЛИКАТА: Резултатот од еден над 10. Дејвид Џ MALAN: Да. Што е резултат на едно поделено со 10. Право, затоа што сите од вас имаат веројатно порасна со сознанието дека еден повеќе од 10 е она? Да, тоа е само 1/10 или 0.1. Нели? Да видиме што е ова навистина е. Па дозволете ми да оди напред и да се спаси ова. Дозволете ми да одат надолу тука. Направи непрецизност точка коса црта непрецизност, и информации, исто така, во животната средина Линукс, ти не мора да се тип надвор непрецизност и да ги преземат на целиот ден. Тоа обично се, ако го погоди јазиче, тоа ќе заврши вашата мисла за тебе, врз основа на зборовите кои се Достапно и во тековниот именик. Во ред. Значи сте биле во право. Еден поделено со 10 е, всушност, 0.1. Но, јас сум малку љубопитни. И излегува printf поддржува некои функции со која можете да наведете повеќе од основен број на децимални точки. Па ако сакам да го видам 10 децималниот точки можам да направам отсто, за симбол на случаеви, точка 10 за, дај ми 10 децимални точки, а потоа уште подвижна запирка вредност, и, како настрана, што е ова обратна коса црта n очигледно ние ги користите? Излезе дека тоа е Симболот за нова линија. Тоа е многу експлицитен начин каже на компјутерот, преместите курсорот на следниот линија откако ќе завршиш. И ќе видиме што ќе се случи кога не го направите тоа. Дозволете ми да го прекомпајлирате направи непрецизност. Сега dot црта непрецизност. Во ред. Уште се во право. Еден поделено со 10. Сега сум добивање на малку љубопитни, иако. Што ако јас се погледне 20 децималниот укажува, прекомпајлирате, реприза, и како настрана за брзина, исто така можете да го користите нагоре и надолу стрелките да се движите низ вашата историја, така да не мора да се задржи прекуцување овие команди, влезе. Нели. Јас не научат дека во основно училиште. Добро, па ме пушти види како 29 места надвор. Можеби тоа е само случајност. Можеби компјутерот ми делува чудно. Тоа не е нешто, нели? Тоа прави нешто deterministically. Така бидете непрецизност. Добро, тоа е збркана. Значи она што се случува? Значи очигледно вашиот Наставникот е лажење да ти сето ова време за причини кои ние ќе се види пред долго. Но, ајде да заврши со една друга програма. Ова е малку програми некој напишал пред неколку години, а тоа е всушност дел од натпреварот. Никој всушност пишува код како таков, и ако не, ова е стилски проблем. Но, луѓето се стори тоа за фали права. Да се ​​напише најзбунувачките во потрага програма која сепак не нешто интересно. И нота мислев дека би го остават на денес, пред Колтон нас игра овде, е да ја извршите оваа програма, која, дури и во само користење С во овој текст, базирани на животната средина, ни го дава. Мајката. [Смеа] Стојат од страна. [Беззвучен] в цртичка л м. Си оди за да се види на магичен инкантација дека ќе видиме пред долго. [Беззвучен] Во ред. И сега може да дури и прават вакви работи. Тоа е тоа. За CS50 ние, ќе се видиме во петокот. [Музички] [Аплауз]