ROB BOWDEN: Оваа е поудобно дел, но тоа не значи дека ако сте се чувствувам како да не сте поудобно не ќе научат работи тука. Па ајде да започнете. Дали имате слајдови оди право во нештата. Сум јас за да само да го земе во моментов? Префрлување лап-топ компјутери. ALLISON: Вие не сакате да го воведе себе, Роб? Роб Боуден: О, јас сум Роб. Ова е мојот петтата година ТФ-ИНГ CS50. Габриел: Јас сум Гаврил. Јас сум глава ТФ на CS50. Јас бев ТФ минатата година и оваа година. ALLISON: И јас сум Алисон, а тоа е мојата втора година ТФ-ИНГ CS50. Роб Боуден: Сите во право, па ова нешто на левата страна, се надевам дека сте го виделе досега. Ако не затоа што преземете го ова за себе, што треба да го види во предавање. Па ова е CS50 апаратот, и тој направи нешто на некој опис на тоа во предавање. Но во основа тоа е само вас се работи на оперативниот систем во рамките на вашиот оперативен систем, така што ние може да ви даде програми без потреба да се грижите, о е ова оди на работа на двете Windows и Mac, или, ако некои од вас се веќе користење на Линукс, Линукс. Тоа е само требало да да биде заедничка за играње поле така секој има исто точно животната средина. Значи, ако не сте преземале оваа веќе, што треба да го преземете, затоа што ти си случува да треба за проблемот сет. И тоа е две гигабајт преземете, па тоа би можело да потрае некое време. На Харвард тоа ќе оди брзо. Така CS50 апаратот. Сега во почетокот, ние ќе треба да зборува за само еден куп на командната линија работи, и така со тоа, мислам работи во оваа мала средина овде. И ќе забележите сите нешта Велам, токму тука, токму сега се оди на работа, ако сте во внатрешноста на терминал во внатрешноста на апаратот, или ако сте внатрешноста на gedit терминален прозорец внатрешноста на апаратот. Па оние средини се идентични. Но јас ќе одам да се оди на трета пат. И ќе забележите тука долу малку IP адреса, токму тука. Значи, вие не треба да се го направите ова, но оваа IP address-- сега, ако я-- освен тоа е блокиран од страна на оваа работа. Добро, така што на IP адреса над во терминален here-- така овој терминал над тука е терминал во мојот Мак. Значи ова е во никој случај во моментов поврзани со апаратот на сите. И ако сте на Windows, тогаш сте ќе треба да преземете нешто конкретно за ова, особено луѓето имаат тенденција користат кит, Р-У-Т-Т-Y. Па што јас ќе одам да направите е да напишете SSH и тогаш тоа IP адреса. Па, jharvard во тоа IP адреса. Така 192.168.24.220. Ова страшно порака, го игнорира. Само внеси да. Оваа е CS50 во кутија. Таа го прашува за вашата лозинка. И така во многу од овие околности каде го прашува за лозинка, [нечујни]. Имаме многу прашања каде таа вели дека тоа не е всушност пишување. Тоа не ви го покаже знаци на лозинка како што пишувате, ако ништо друго, за безбедност функција, бидејќи ако некој е во потрага над твоето рамо и тие го гледаат ѕвезда ѕвезда ѕвезда ѕвезда, тогаш тие знаете дека вашата лозинка е четири знаци. Значи идејата е дека ќе побара ви за вашата лозинка, тип. Тоа не се случува да се покаже ви ликовите, но тоа е, всушност, ги прифаќа. Во овој случај, во секое време ќе некогаш видите лозинка брза кои се занимаваат со апаратот, лозинка ќе биде пурпурен. Така Crimson. И сега тука во внатрешноста на оваа прозорец, кој е во мојот Mac, Јас сум во основа имаат исти точно изглед како во внатрешноста на еден терминал во апаратот. Значи, вие не мора да го направите тоа. Можете да направите се што ви сакаат во внатрешноста на апаратот. Јас скоро никогаш всушност прават ништо во апаратот. Јас скоро секогаш се минимизираат дека и сега Јас работам на SSH во уредот. Ако ништо друго, ако имаат побавен компјутер, може да забележите разлика. Јас го направите ова, бидејќи јас ја преферирам ова терминален прозорец. Таа има некои карактеристики како Јас може да се подели на прозорецот, и сега можам да SSH во преку уредот. Добив две SSH се случува одеднаш. Ако вашиот компјутер е особено бавно и си работат во апаратот, и ќе се реализира оваа е навистина лага, сеедно. Тенденција да биде многу побрзо ако сте SSH-ед в. Но инаку можете да работите или начин. ПУБЛИКАТА: Што значи SSH значи? Роб Боуден: Безбедна школки, такво нешто? Што значи SSH значи? Габриел: Безбедна школка. ALLISON: Тоа е само безбедна школка. Роб Боуден: Безбедна школка. Тоа е протокол кој you-- тоа е безбедна протокол, така шифриран. Луѓето не можат да Снуп на мрежата и види она што си ти што зборуваш со ништо сте SSH-ед да. И всушност, во лозаро дена од CS50, па во 2009 година кога бев бруцош, начинот на кој сте работеле на CS50 проблем сетови, ви е SSH-ед на даден сервер дека ние даде пристап до, и сте работеле таму. Така да не имаат овој графички уред. Вие не мора да прави. Не сте ги имаат сите овие работи кои можете да визуелно точка и клик. Ти мораше да работат во овој интерфејс. Јас сакаат да работат во овој интерфејс. Па дел од она што ние ќе да се оди на повеќе од во моментов се еден куп на команди дека треба да се почне да се запознаат со што се ви одат заедно во курсот. И искрено, откако ќе се навикнеш на нив, е толку многу побрзо да се работат во оваа средина отколку што е да се работи со Пронаоѓач, влечење и кликнете на работите. Значи тука сме. Сега јас само SSH-ед во, и така стандардно ви location-- видов некои од овие команди во класа, но ние ќе одиме во текот на сите од нив повторно. Стандардната локација сме во е домашен директориум. И директориум, само друг збор за папка. Значи ние сме во домашен директориум. Напишете ls, листата на датотеки во овој директориум. Очигледно е дека јас создаде blah.c порано. Па ние имаме десктоп директориум. Забележите означување на синтаксата? Светло сина подсветка покажува каталог и директно бела укажува само обичен датотека. Па таму се случува да биде некои други бои што го гледате. Извршна датотека е веројатно нема да биде зелен или нешто слично. ОК, па ние сме во домашен директориум. Сега, ако сакам да одам во поинаков директориум, CD-то е команда сакам. Така да го променат директориум, а потоа ќе помине името на директориумот дека ќе сакаат да одат во. Па тука имаме четири опции. Јас може да оди во преземања, и сега гледаме тука е ажурирана овој заграда да кажам дека сум во ~ / преземања. Значи она што е тилда? Тоа е кратенка за Вашиот домашен директориум. Па речиси се што ви прават се случува да да биде во врска со вашиот домашен директориум, и лицата со хендикеп е само команда Јас го користам еднаш во годината, кој само отпечатоци на тековниот директориум. И така ќе видите дека тука ~ / Преземања навистина решава / home / jharvard / преземања. Така / home / jharvard е мојот домашен директориум. Значи можеме да CD точка точка. Сега точка точка е посебен директориум кој секогаш се однесува на еден директориум нагоре. Значи, ако јас сум во ~ / преземања, тогаш CD точка точка се случува да ме доведе до Тилда. Она што мислиме CD точка точка се случува да ме доведе до сега? Тоа ќе ми донесе до / дома. Така Тилда од печат работен директориум, Јас сум во моментов / home / jharvard. еден директориум за разлика од тоа, сега го вели тука / дома. Сега CD точка точка. Сега сум во root директориумот, и не можете да го направат тоа повторно. Вие само ќе остане во root директориумот засекогаш. Root директориумот има куп работи кои, ако сакате да се погледне во, можете. На пример, ако I оди в bin, кој содржи сите овие бинарни, како што се ls, и CD, и сите тие работи. Па овие команди треба да постојат некаде во системот, и тоа е во / bin директориумот. Но речиси сè што го правите е ќе биде од вашиот домашен директориум. И CD без никакви аргументи она, може да се каже cd ~, не треба да се. cd се случува да ви донесе назад кон вашиот домашен директориум. Еден последен. CD - се случува да ви донесе назад во последните директориум дека сте биле во. Па јас само cd'd два пати по ред, па ми последните директориум е домашен директориум. Ако одам да намали за отпадоци, а сега ајде да одиме и во кориснички. Удел корисник. Ајде да одиме корисничко споделување. Сега сум сега во кориснички акција. CD -, назад во канта. Па ова добива особено корисно кога ќе have-- и тоа ќе ја префрлате. Така корисничко споделување, назад бин, споделување канта. Па ова добива корисни. Можете да го најдете сами морале многу, многу, многу вгнездени директориуми. И сакате да се направи нешто вистински брз во горниот директориум. Да одите на тој директориум, осигурајте се промени и работи како што, и сега сакате да одите назад кон каде сте биле. CD -. Секогаш сум фрустриран кога јас се случи да се оди до тој директориум јас сакав да го направам работат. Јас секогаш се фрустрирани кога јас не то во два чекори, наместо на еден чекор, бидејќи тоа значи дека cd - се случува да се донесе во што полупроизвод локација наместо тоа на местото каде што сакам да одам. Па ќе видиме сите на листата датотеки. Знаеме како да се добие околу досега. Па сега ајде да зборуваме за уредување на датотеки. Па во овој курс, ти си речиси секогаш се очекува да се користи да прави. Ако сакате, можете да ги преземе следниот чекор и проектот за учење командната линија текст уредник. Така различни опции постојат. И оние кои се веројатно ќе биде за вас, имаме Нано, Вим, и Emacs. Така Нано почетници командната линија уредувач на текст. Така Нано ајде да одиме на blah.c јас креирано порано. Тоа е само овој стандард С датотека. И ќе видите еден куп на работи случува во долниот дел на екранот, и очигледно blah.c содржи оваа C код. Па во овој особено уредник, она што го кажува на bottom-- сега ова карета симбол, ние гледаме тоа ^ G ^ Х ^ О. Па, кој во речиси сите контекст, што гледате, можете да видите дека карета симбол во други места на интернет, на Стак прелевање, нешто слично. Скоро секогаш се однесува на контролата. Така да излезете сакам да направам Контрола Х. контрола Х, излегува. И можам да го користам мојот стрелка на тастатурата за движење наоколу. Информации Јас не може да се точка и кликнете лесно. Ви треба го користите вашиот стрелките на на тастатурата за движење наоколу. Там може да биде поставување да се истакне и клик. Но, ајде да се направат некои промени. Сега контрола X да одат излез. Тоа се случува да се каже, освен изменета тампон. Сега брза, y за да н за бр. Контрола C за отказ. Јас само ќе кажам да. Името на датотеката да се напише. Стандардно е датотека дека тоа веќе е. Притиснете Ентер. ОК. Сега сум само изменето таа датотека, зачувани него, и тоа да се промени. Така Нано е најлесниот текст едитор да се навикнеш на. Алтернативи се Вим и Emacs. Оние кои се на повисоко ниво текст едитори кои имаат многу стрмни учење крива. Па моите лични изборот е Вим. И тоа има широк спектар на опции. И откако ќе се навикнеш за да го, никогаш нема да сакате да одите со било кој друг текст едитор затоа што само има толку многу работи на располагање на вас во овие, но тоа трае навистина долго време да се научат. Па можеби и вие само сакате да ги принуди себе си токму сега да се навикнеш на него, но јас би рекол дека е достоен за тоа. Но, тоа е тешко. А потоа Emacs. Јас секогаш се борат во Emacs, бидејќи Знам како да се направи апсолутно ништо. Очигледно Emacs не е стандардно инсталиран на уредот. Ние веројатно ќе додадам дека како стандардни инсталации. Откако ќе ги научат еден од Vim или Emacs, има нема причина да кога и да научат од друга страна, но тоа е сосема различен стил. OK, па тоа е уредување на текстуални датотеки. ПУБЛИКАТА: Ако сте биле заглавени во Вим токму сега, како да we-- Роб Боуден: Существуют повеќе режими во Вим, и таму се целата упатства за учење Вим. Значи, ако ви се случи да биде во вметнете режим за да напишеш текст, кој може да се влезат во тоа на различни начини, но јас е како ќе го добиете во вметнете режим. Или да излезат на некои посебни режим, кој сте во, само Escape. А вие само баш Бегство да се добие надвор од секоја вгнездена режими си в. Само Добро, сега сум назад во нормален режим. И така во нормален режим, дебелото црево. Ќе видите дека се појавуваат на дното. А потоа притиснете q. Така р ќе поднесе оставка доколку сте направиле промени, кој я-- сум направил промени? Сум направил промени очигледно. Значи, ако сте направиле промени, тоа ќе велат дека може да се стави извичник. Одам да го нарекуваат страшен тресок. Така може да се стави забрана за само престанам без да правиш ништо, или дебелото црево WQ ќе заштедите и да престанам. Па без воопшто е да пишува. Така пишува на датотеката. Јас можам да пишувам и се повлече. Или би можеле да имаат само QX слем, q тресне само да излезе од таму, без оглед на какви било промени што сте направиле. Сите права, па сега ајде да go-- ние може да се создаде датотеки. Да почнеме отстранување на датотеки. И јас само ќе се фрли во една брз нова команда, допир. Така допре foo. Допир бар. Допре Баз. Ако јас ls, сега гледаме дека овие датотеки постои. Тие се потполно празни. Па допир е само лесен начин на еден, [нечујни]. Две, технички само на државните тоа, тоа ажурира маркерите за времето. Па секоја датотека што ќе се создаде има временската ознака поврзани со неа. Така Баз е создадена на 14 Септември на 16:21. Тоа е сега 16:22, па ако Јас ја допирам Баз еднаш, ние види дека Баз беше најмногу наскоро изменета на 16:22. Но инаку јас речиси никогаш не се погледне на маркерите за времето на датотеки. Па допир, еве јас сум само со користење на тоа да се создаде некои брзи датотеки. Сите права, па сега РМ команда која ние се грижиме за тука. И можеме да Rm Бу. Велат отстрани редовно празна датотека 'куку'. И ние може да се тип y, и сега е отстранува. RM Баз. Отстрани редовно празна датотека Баз и тип N за бр. Сега тоа не е отстранета. Па бар и Баз се уште постојат. Foo е нема. Габриел: Чувајте зборува. Роб Боуден: Велики. Така досадно порака тука, отстранете редовно empty-- Што ви се прави таму долу? Отстрани редовно празна датотека. Значи, ако ние не сакаме да бидеме пречи таа порака, ние може да се фрли во овој -f знаме, и така што е на сила. И сега ако не ми -f РМ, тоа е нема да велат сакате да го отстраните. Тоа само ќе го направи тоа. И ЛС, јас не гледам бар постои веќе. Сега што е потенцијално опасно команда. Тоа се стреми да не се премногу лошо. Ние ќе се врати во втората как тоа може да се добие навистина опасно. И ајде да се создаде некои Temp директориумот. mkdir, друга команда. Така mkdir е команда што го прави директориум. И сега со ls што го гледаме овој убав свет сини истакна Temp директориумот. Можам CD-то во Темп. И можам да mkdir foo. CD-то во foo. mkdir бар. CD-то во бар. Па ќе видиме што лесно може да се добие во некои прилично длабоко гнездење. Сега како можам да се отстрани директориум? rmdir. Значи, ако јас само директно се обиде да го РМ, како што направивме со обична датотека, RM-бар ќе се велат дека не можат да се отстранат бар. Тоа е директориум. Там е посебна команда за отстранување на директориуми, вид. Така rmdir бар. Сега бар нема. Добро, така rmdir јас доста никогаш не се користи. Причина сега being-- нека направи обична датотека бар тука. Така rmdir Бу. rmdir. Не успеав да се отстрани foo. Директориумот не е празна. Па не можете да користите отстрани реж на директориум дека има работи во неа. Па имате некои опции. Можете да одат во тој директориум, извадете сè што рачно, а потоа да излезе и rmdir директориум. Кои очигледно звучи досадно. Што ако постојат илјадници на датотеки во таму? Па, можете да Rm *. Ние ќе зборуваме за * во секунда. Тоа во основа значи дека сите нешта. Но уште подобро, така rm -R. Па РМ -r-- во многу контексти, -r значи рекурзивен, кои ние ќе разговараме за тоа што рекурзивен средства во неколку недели. Но, тоа во основа значи напречни целината на овој директориум и отстрани сè. Па РМ -r foo се случува да се каже слезе во директориумот foo? Да. Отстрани редовно празни датотеката foo / барот? Да. Отстрани директориумот foo? Да. Па сега Foo и сè во рамките на тоа е отстранета. Сега дека може да се добијат особено досадно when-- нека допре 1, допрете 2, допрете 3. Би можеле да имаат целиот куп на датотеки. Ако сакав, можев да се создаде илјадници документи во тука. И RM-r foo се случува да бидат доста досадни. Да, да, да, да, да, да. Со многу повеќе датотеките што брзо да видите колку пати Јас ќе мора да напишеш да. Па, ние само видов пред како можеме да се ослободи од потреба да напишеш да -f. Така mkdir foo foo CD допир 1 2 3. Добро, така RM-RF foo се случува да слепо отстрани foo во целост. Не прашува. Нема ништо. Foo е нема. Па јас имаат тенденција да го користите овој командува цело време. Со тоа, тоа е многу опасно команда, затоа што ако јас се направи нешто како ова, тоа нема да ве прашува. Тоа ќе исчезнат. И тоа се случува доста често, па дури и во високо ниво CS курсеви. Понекогаш и ние ќе видите нешто каде што некој вели дека јас случајно нашите РМ RF-ед мојот дом директориум и сите мои Р сет е нема. И тоа е катастрофален, но нема корпата за ѓубре. Там нет нема ништо за да се потсетите. Тоа е само нема. Дури и полошо ќе биде нешто како RM-RF /. Па ние само дискутира дека root директориумот. Се држи сите на датотеки на вашиот систем. Работите имаат тенденција да се добие прилично неуредна кога ќе го извадите работи како ЛС, и cd, и сите од нив. ПУБЛИКАТА: Која е разликата меѓу РМ и RF и РМ * Роб Боуден: Значи РМ * - ALLISON: Прашање е она што е Разликата меѓу РМ и RF и РМ *. Роб Боуден: Значи РМ *. Star воопшто средства на сите Содржината на овој директориум. Обидувајќи се да се мисли на други начини на прикажување ѕвезда. Па, ѕвезда, всушност, генерално, значи одговара на било кој модел. Значи, ако имам фајл наречен dog1, допре dog2, допрете cat1, допрете cat2. Така ls * 1 се случува да се печати cat1 и dog1, бидејќи тоа ѕвездички може да се полнат в with-- оној треба да биде таму, но ѕвезда може да биде или мачка или куче. Тоа е џокер. Тоа е збор што го барате. Вајлд карта. Или би можел да LS куче *, и Јас сум дојдоа да го гледаат dog1, dog2. Значи тоа се наведуваат датотеките кои одговараат на таа одредена шема. Вие може да се користи ls на овој начин. Ls * ѕвездата се поклопува ништо. Па затоа се случува да се печати сите содржината на овој директориум бидејќи сите од нив се совпаѓаат. Тоа не се случува да се печати ништо во повисоко ниво директориуми. Ако имам под директориум, foo, и допре 1 2 3-- па сега ако РМ * ѕвезда, отстрани cat1, cat2, dog1, dog2. Не може да се отстрани foo. Тоа е директориум. Па ѕвезда се проширува на сите додадени фајлови во директориумот. Па технички РМ * е како да кажеш RM cat1, cat2, dog1, dog2, foo. Со оглед на РМ -rf, технички ѕвезда би се постигне она што го сакаме, но RM -rf-- ако јас излегувам на овој директориум, RM-RF температура, што се случува да одат во temp и рекурзивно отстрани сè. Па звезда е одделен со тоа, што, кој се разбира по-- така оваа работа дека јас се кандидирам, оваа работа дека ме прашува за команди и потоа извршување и прави нив, Јас ова го нарекуваат мојата школка. И така оваа обвивка е самата програма. И ако сакав би можеле да работат во / bin / bash. Школка се вика баш. И сега ќе забележиме нешто е малку изменета, и тоа е затоа што моите опции за школка се малку различни. Но сега сум технички работи обвивка во рамките на мојот оригинален школка, и можам да излезете дека школка, и сега Јас сум назад во мојот највисоко ниво на школка. Целта на велејќи дека is-- ѕвезда. Па ѕвезда е нешто разбрани од страна баш. Така RM-RF, -rf знаме е разбира само со РМ. Таа знае дека кога ќе се помине -rf дека сте сакате тоа да се рекурзивно се отстрани сите датотеки без да се прашува. Ѕвездата е нешто разбрав од страна баш дека кога ќе се каже РМ *, Баш не се случува да се каже, еј РМ *, отстранете ѕвезда. Баш се случува да се каже РМ * отстрани cat1, cat2, dog1, dog2. Тоа е автоматски случува да се прошири сите датотеки во директориумот. И слично тилда е уште еден симбол кој баш разбира. Кога ќе се каже cd ~, баш се проширува дека во твојот домашен директориум. Други прашања досега? OK, па ние си оди за да почнете да оди брзо. Јазичето завршување. Само да го фрли таму. А многу луѓе не го стори реализира оваа постои. Значи, ако сум тип CD dow, јас сакаат да одат во преземања. Јас не треба да напишеш nloads. Јас само може да ја погоди Таб. Така признава дека dow е префикс кој не се поклопува со нешто на друго место во овој директориум, па тоа ќе се заврши тоа за вас. Сега можам да влезе. Јас, исто така го направите тоа рекурзивно. Така mkdir foo. Ајде да одиме во foo. mkdir бар. Па ќе се вратам во мојот дом директориум, можам да видам преземања. Сега притискање јазиче повторно, автоматски ќе ги полниме foo. Тоа е единствениот директориум. Удирањето јазиче повторно, автоматски се случува да се пополни во бар. Па сега јас сум во (~ Превземања / foo / лента). Па ова јазиче завршување, секогаш кога стигнав до работното време, и Стојам над нечие рамо, и тие се случува РМ D-O-W-N-L-O-A-D-S, Умирам. Само табот, табот, табот, табот. Значи дефинитивно се користат табот. И слично и надолу, многу луѓе токму тоа се случи со никогаш не се погоди нагоре и надолу. Тоа ќе оди преку претходниот команди, па ако само истрча нешто, и сакате да го кандидира повторно, само да се одржи до додека ти се дојде до тоа. ОК. Толку брзо, некои други работи. Да се ​​вратиме во Темп. Да се ​​создаде некои датотеки. Па овде, јас сум само ќе листата некои зборови. куче, мачка, meow. Ајде да направиме куче, риба. Така, сега претставник е многу корисни команди кои ви се користи за пребарување во текот датотеки за одреден текст, и технички можете да направите навистина сложени изрази за тоа да се совпаѓаат. Па еве, ако јас grep, и она што сакам да пребарувате за? Да речеме дека сум во потрага за мачки, и Сакам да пребарувате на сите овие датотеки. Па како можам да го направите сите овие датотеки? Ѕвезда. Значи во датотека една, имам мачка. Јас веројатно би можеле да имаат го нарече нешто подобро, затоа што тоа личи бројките или нешто. Но во досието еден имам согласност со мачка. Во датотека две имам согласност со мачка. Па сега можам да се погледне во внатрешноста датотека една и види Oh yeah, таа датотека немале мачка. Известување датотека три не се исти бидејќи мачка не е во таму. Можам да grep за meow. Само поднесе две има meow. Така што ова може да се комбинираат, повторно, со -R, што како што реков пред често значи рекурзивен. И така јас може да дојде до тука, Впиши -r за секој пример of-- нека ги уредувате оваа само да се фрли мачка во таму. Така grep-R за секој пример на мачка во текот на овој директориум. И тоа ќе рекурзивно пребарување било поддиректориуми. Значи во Баз, има мачка. За температура / 2, има мачка. И за температура / 1 има мачка. Па тоа е во потрага рамките датотеки. Сега можете исто така може да се користи откритие. И така се најде е конкретно за во потрага по документи со даденото име. Па ајде да се направи нешто повеќе. Ајде да одиме во преземања. Допре dog1. Допре cat2. Допре cat_dog. Допре CatCat. Па сакам да ги најдете сите датотеки со куче во името. Па најдете, и за најдолго време јас никогаш не запаметен како се најде работел, додека конечно прочитате нешто што го направи толку јасно. Па најдете, автоматски рекурзивен. Вие не треба да помине -r. Па најдете точка. Ние се уште не сме разговарале за точка. Со оглед на точка точка секогаш значи еден директориум нагоре. Точка секогаш значи тековниот именик. Па можев да Rm -r точка во истиот начин можам да Rm -rf *. На крајот на краиштата тие се постигне истото. RM-RF точка се случува да се отстранат целата тековниот директориум. Добро, за што јас не сакам да се направи таму. Но се најде точка. Така рекурзивно пребарување на тековните директориум, и сега се по овој еден куп на знамиња кои ви го користите да се исклучат работи од враќање. Па најдете точка се враќа сè што може да се најде од тековниот директориум. Тоа се сите датотеки рекурзивно пребарување. Ќе видиме некои од оние во секунда. Но, во случај да се прашувате како го правам дека, така Command K, во најмала рака, во мојот терминал во Мак го поплочува. Контрола L генерално се избиструва тоа за било кој вид на терминал. Можете да напишете јасни. И ако некогаш сте се во чудни scenario-- тоа ми се случи неколку time-- каде што боите на вашиот поттикнува сите збркана, или можете не се во состојба да се види нешто се внесе кога пишувате, бидејќи понекогаш како боја на позадината е поставена иста како и на предната боја и сега не можете да видите фонтови. Ресетирање е нешто што само ги враќа можете да стандардно црна позадина, бела пред, или што ќе се постави да. Значи, каде бевме? Најдете точка. Па сега се што минало ова точка ограничува резултатите на нешто што се совпаѓа дадениот модел. Па еве јас сакате да пребарувате сè со името мачка. Добив ништо. Зошто е тоа така? Па, јас сум само во потрага по нешто со точно име мачка. Ако сакам да го бара нешто што има некои шема, и cat-- цитати технички не се потребни, но јас сум ги фрлање во таму. Па сега установи CatCat, бидејќи тоа е единственото нешто што има некои произволни модел проследено со мачка. Јас може да се стави мачка *, а сега најдете CatCat, cat_dog, cat2, затоа што тие се сите работи со мачка на почетокот проследено со било што. Можете да комбинирате. Ако сакате да пребарувате за сите Ц датотеки дека имате, можете да направите * .c. Ние сме blah.c тука. Значи тоа е откритие дела. Можете да пребарувате. Таа има куп знамиња за дополнителни ограничувања. И еден од нив, да речеме -d. Така запоставена. О, тоа не е она што сакам. Не -d. Тип D. Па најдете точка - Тип D. Така што тоа само го направи е сум во потрага за сите датотеки во тековниот директориум со a-- г залага за directory-- директориум тип. Ова враќа сите директориуми во тековниот именик. И видот F е сите редовни додадени фајлови: сите не директориуми. Па тоа е само пример на други начини може може да го ограничи пребарувањето други отколку само името на датотеката. Тоа е 30 минути. Уште се случува. ALLISON: Ќе бриз преку. Тоа ќе биде во ред. Роб Боуден: Значи некои други работи. Сега тресне, извичник. Така што генерално означает: добро, ајде да видиме еден пример. Така! Е, што е тоа што се случува да направам? Добро, тоа се чини дека повторува откритие точка од типот F. Она што за! Грама? Дека само grep -r мачка *. Така тресне можете да го користите да се повторува неодамна направи команда. Значи, ако сум тип! GRE, тоа се случува да прегласување команди, која започна со GRE повеќето наскоро. И можете да ги видите сите овие команди со историјата. Па историја. Ова се сите команди Сум се кандидира денес. И добро, тоа не е буквално ограничено до денес, но јас сум се користи само ова апаратот од денес. Тоа е вашиот интегритет на историја на твоите баш школка, освен што сече во некоја точка. ПУБЛИКАТА: Што се случува ако го направите историја [нечујни] команда и грешка во резултатот се уште ќе печати the-- Роб Боуден: Да, ако има грешка во една од овие commands-- така да речеме, што е грешка команда не е пронајден. Уште се појавува во историјата. Добре. Други прашања за ништо? Значи тоа е тресок. Сега, навистина корисни команда, човек. Така што дава прирачник за дадена команда. Па да речеме човек ls, па ова е покажувајќи ми ls. Го наведува директориум содржина. И ова е местото каде гледам дека има се овие различни знамиња кои постојат. Па така гледаме дека ls -l постои ако веќе треба да го прочитате тоа. ls -l ми дава оваа целосна листа на директориум со кој е сопственик на датотеката, на големината на датотеката, модифицирани временската ознака. Така ls -a е уште еден кој што може да всушност употреба на некој начин често. -al е мојот најчестите знаме оваа минатото ls. Така -а, забележите има многу повеќе датотеки отколку само ls. ls -a. Што е заедничко со сите овие датотеки? Тие почнуваат со точка. Значи ова е конвенција во Линукс дека датотеки кои почнуваат со точка се скриени. Па тоа само значи дека кога ние само директно ЛС, или ние сме во потрага овој директориум користење наоѓачот еквивалент, или на Windows Explorer еквивалент, што ние не сакаат да се видат овие точка датотеки. Тие само го загадуваат поглед на нештата. Така што тие се скриени освен ако не сте специјално ги побара со нешто како -a. Па можам CD-то во .local, и гледам дека тоа е самиот директориум со дели директориум, и апликации, и бла бла бла. Така точка, датотеки тие се само скриени. Добро, така други важни. Имам неколку можам да го прескокнете. Ајде само вистински брз зборува за датотека пренасочување работи. Па таму е целиот комплекс серија на работи што можете да направите со овие, но само за да ги видите, да речеме, ехо. Друга команда. Навистина неми команда. Сите тоа го прави е печат она што јас го кажам да. Па ехо здраво. Тоа само го повтори здраво на екранот. Привет мир. Ехо привет мир. Па една команда или еден симбол кој баш разбира, е ова е поголема симбол, и која е излез на симбол на датотека. Значи, ако јас излез ова да foo, има сега датотека наречен foo, во внатрешноста на кој е привет мир. Така забележите дека кога ќе се одгласува привет мир цевка во foo, тоа не ехо привет мир. Наместо тоа, таа беше ставен во датотеката foo. И друга команда само за да го фрли во вас, мачка. Тоа е лесен начин да се само целосно листата на содржината на датотеката така што јас не мора да се отвори уредувач на текст за да ја видите. Па на содржината на foo датотека се привет мир. И можев мачка blah.c, содржината е ова. Повторно, овие се наредби тоа, не очекуваат имате сите ги меморира. Идејата е сте ги виделе. Можеби си работат на нешто, а ти си како да сум болен од отворањето на оваа датотека. Јас би сакала само да се погледне на содржината вистински брз. Вие би можеле да го направите тоа, тогаш се погледне назад и да каже ох се сеќавам нешто како што постои, и тоа е мачка. Така што се случува на датотека. Сега таму не е навистина било добро Пример за читање од датотеката уште. Што е нешто што е потребно нешто од стандард во? Било едноставна команда Линукс? Кога ние се дојде до тоа, во неколку недели сите piece-- добро, оваа недела имате парче каде што започне изведува влез од корисникот. И така обично го напишете дека влезот на тастатура. Наместо да пишувате дека влез на тастатура, ти наместо да цевка во од датотека така што кога ќе се направи Марио, ./mario, цевка во од било која дадена датотеки, и што се случува да се кандидира Марио програма. Не очекуваат влез на тастатура, наместо тоа е само ќе го чита линии од foo датотека. Така поголема од foo го става во foo датотека, а помалку од foo зема работи од foo датотека и користи тоа како влез на оваа програма. И само за да го види, ние исто така може да се одгласува foo bar Баз, а потоа, наместо на еден поголем од, ајде да направиме два во foo. Што значи дека направам? Тоа само додава на датотеката. Така, наместо да забележите ако јас не ехо бла во foo, а потоа мачка foo, тоа е само бла. Па кога ќе излез на датотека, целосно презапишува таа датотека. Ако само сакате да додаваат, двоен [? два метра. ?] И последно, е цевка. Спојување добива многу посложена, каде што е потребно за излез на една команда и се храни во следната команда. Па некои честа работа, историја. Значи, уф, јас не сакаат да се погледне во тоа. Покажете ми сите команди во мојата историја каде што јас grep-ед за нешто. Не, тоа е збунувачки. Покажете ми сите команди каде што јас се најде. Сите намерите команди што некогаш сум го истрча. Па историја. Веднаш историја резултати на екран на оваа листа на команди, но јас не сакаат да излез то на екранот. Наместо тоа, ќе одам да цевка во grep. Па ајде grep за сите случаи на откритие. Па сега, наместо на grep преземање влез, наместо of-- Впиши е во состојба да се справи со како input-- сме користење на grep малку поинаку овде. Така, наместо на пишување на листата на работи сакавме да пребарувате за и рече grep е преземање како влез. Значи, ако јас просто grep се најде, го ме чека да напишеш работи. Така мачка здраво најдете. Здраво. Најдете. Забележите секој пат кога ќе напишете најдете признава дека јас ја внеле откритие. Така, наместо на тоа, ќе пребарување на датотеки за откритие. Па историјата е сега се случува да излез листа на сите команди. Ние сме ставање дека излез, и ние сме хранење да grep, и така тоа е выплевывая сите случаи на откритие. Причина што реков тоа би да биде збунувачки е ако я-- тоа е уште збунувачки. Ако јас grep за grep. Забележите тоа е доста секогаш покажува команда Јас само трчаше, бидејќи таа команда сама по себе има grep внатрешноста на неа. Добро, па било какви прашања за ништо? И Јас ќе го пренесе во текот на оваа точка. Се надевам дека ова е убав преглед на сите команди дека вие не треба да имаат мемориран, но тие го сочинуваат солидна 95% од она што го направи на командната линија. Исто така, имајте на ум дека на командната линија себе, баш е програмски јазик, и така, кога ќе се фаќате за тоа, вие можеби ќе сакате да се направи многу сложени работи. И така го има нешта како петелки, и IFS, и сите оние дека ви се случува да се користи за да со вашиот програмски јазици. Но, тоа е надвор од опсегот на овој дел. Добро, така што нема прашања? ALLISON: Никој? Габриел: Дали ќе to-- ALLISON: Јас можам да го направи тоа на рудникот, ако сакате. Можеме да видиме што се случува. Роб Боуден: Off да Алисон. ALLISON: Ву. Ти си хард чин да го следат, Роб. Дали сакате мене да се префрлат со вас? Или имаш, ОК. Одам да се обиде и не доста биде што подолга таму. Да видиме дали тоа ќе работи што сакам да. Можеби? Ха, ха! Да. Па јас сум само ќе многу брзо одат преку променливи, јамки, условные, и по малку на компајлерот. Доколку имате прашања на секое време, ве молиме запрете мене. Овие момци ќе ме потсети да се повторува вашето прашање во случај да заборавам, но не треба да биде толку лош. Така променливи, да. Ние немаме една од вашите Нула парчиња тука. Сигурен сум дека повеќето од вас, ако сте имале некој вид на игра што го креиравте со нула, сте имале да ги пратите на нешто како резултат, или време, или нешто слично. Па тие светло-портокалова парчиња, кои ги гледаме таму се само гребење форма на променливи, и дефинитивно ќе биде со користење на променливи во текот на вашата програма. Ако не сте, не сум навистина сигурни дека она што го правиш. Но во секој случај, голема работа, дефинирање на променливи. Со C секоја променлива има да има тип пријавена, па јас би ти дал многу општата едно на врвот. Така ќе имате тип, а потоа без оглед на да одлучите да се јавите на вашиот променлива. Значи во овој случај, тип во вашиот променлива листа. Имаме три примери. Знак на некои одделение, на A, што е она што Сигурен сум дека сите сакате да се добие во оваа класа. Можете да дефинирате повеќе променливи на една линија како додека тие се сите од ист вид, која е нашата втора пример има каде што треба три променливи, x, y, и z. Сите тие се плови. А потоа можете исто така, во оваа последна пример со int резултат и број на тимови, можете да иницијализира ги право таму. Па во средината на пример, каде што ние само треба float на x, y, и z, оние кои сеуште не се иницијализира. Тие немаат вредност. Или тие имаат ѓубре вредности. И ако се обидете и да ги искористиме, компајлерот ќе се развикам. Што треба да се изјасни и двете иницијализира вашиот променливи. Така што во овој последен, ние сме прави и двете. Ние сме прогласување променливи нот и бројот на тимови, и ние ги иницијализацијата, давајќи нив на нивните почетни вредности на 7 и 4 соодветно. Кул. Секој добар? Страшни. Добро, па некои конвенции. Ако вие момци се прочита преку стил 50, овие се само работи кои ние би сакале за да се спроведат во вашиот стил. Така значајни имиња. Ако почнете повикувајќи работи само x, y, и z, особено како да добиете во долга програми, вие сте веројатно нема да се збуни себе си и да биде како што е оваа променлива предвид. Јас немам идеја што значи тоа. Значи, ако тоа е со цел да се одржи резултат, го нарекуваат резултат. Ако тоа е со цел да се одржи некои одговор или да доведе, го даде името како тоа. За петелки, кои ќе ги добие во на следниот слајд, една буква променливи се во ред. Роб Боуден: i, j, и k се само конвенции за за петелки дека секој ги очекува што треба да се i се нарекува, j, k и. Можете да се јавите them-- Виждам ред колона или ред повик понекогаш за две вгнездени јамки, и тоа е, исто така, вид на стандард. Но i и j се целосно разбрани. ALLISON: Да, јас и ѕ сте сосема во ред. За доброто на јасност како во некои од вашите Р сетови, тоа би можело да се направи смисла да имаат повеќе описни работи таму само да ги пратите на тоа. Но, мислам дека i, j, k и јас мислам Поголемиот дел од нас сите употреба. Роб Боуден: Со овие конвенции, така што стил е важна. Тоа е една од четири оски на кој сте оценето, и тоа е толку лесно да се само оди над Вашата Р поставен на крајот и бидете сигурни дека дека таму не се стилистичен грешки. Така бидете сигурни дека сте tabbing правилно. Бидете сигурни дека вашата променливи се именувани. Остави некои коментари. Тоа е многу лесно да се добие оние точки. Вие не треба да се размислува за нешто со цел да се добијат оние поени. Вие не треба да дознаам нешто надвор. Тоа е само прави да изгледа убаво. ALLISON: Всушност, ние имаат стил 50, која ќе ти кажам каде сте Месинг , ако сте Месинг на стил и ќе ти кажам точно она што го треба да се поправи и како треба да го поправам. Тоа е, исто така, само да се каже, дека тоа е се разбира политика дека ако сте во канцеларијата часа и вашиот код е во неред, ние може да одбие да помогне ви, додека таа изгледа поубаво. Така на проектот од десно, задржи во согласност стил, ти си исто така само случува да се направи вашиот живот во целина многу полесно кога ќе се обидуваш да се оди преку дебагирање. Ако се обидуваш да дознаам каде што сте недостасува кадрава голема заграда и тие се сите над местото, вие сте само правење на своја сопствена живот потешко. Така да бидат во согласност со стил. Јас ветувам дека тоа ќе го направат вашиот живот полесно. Тоа ќе го направи нашите животи полесно. Секој ќе биде многу посреќна. И тоа е она што го сакате. Габриел: Вашата оценка ќе биде повисока. ALLISON: Да, и вашиот одделение. Ако вашиот ТФ е како тебе, тенденција да бидат поволни. Сите права, а потоа само втората точка тука. Во согласност инициализации. Така како што видовме, може да се декларира и се иницијализира работи. Multiple променливи на иста линија. Едно нешто што би сакале не да направите е да се прогласи некои променливи и не им се иницијализира на истата линија која ќе се иницијализацијата другите. Значи во случај што го направи Нема смисла она, имаме пример тука каде што ние сме прогласување целочислените во променливи на четвртини dimes и пени, но четвртини и кусур немаат почетна вредност. Ние не ги иницијализира, но право во средината има ние веќе се иницијализира dimes на 0. Така го направите квартали, dimes, пени. Или не квартали изнесува 0. Dimes изнесува 0. Пени изнесува 0, или што оние почетните вредности се. Голема работа со стил, да биде конзистентна. Кога се двоумите, да биде конзистентна. Но го следат нашиот стил водич премногу. Кул. Секој добро таму? ПУБЛИКАТА: Каде е стил водич? ALLISON: стил водич е on-- она ​​што е веб-страница? Габриел: Јас мислам дека тоа е manual.cs50.net/-- ALLISON: стил? Габриел: Стил. Да. ALLISON: Да. Па се прашуваат каде е стил 50. manual.cs50.net/style. Да? ПУБЛИКАТА: Ако ние сме дефинирање променливи, тоа е OK ако се стави како [нечујни] како int резултат и тогаш int цел. Па би рекле дека сега сме морате да ги дефинирате заедно? ALLISON: Значи прашање, треба имате непотребни код кога ќе се дефинираат варијабли како што се int резултат и на следната линија int игра? Роб Боуден: Существуют дефинитивно случаи каде излишни кодот е лошо. Јас не би го разгледале дека излишни код. Јас скоро никогаш не се изјасни повеќе променливи во иста линија секогаш. И ако ништо друго, тоа е затоа што обично го оставам некој вид на коментар објаснувањето што променлива е за. Па јас ќе кажам int резултат коса црта коса црта. Следи сеедно. Во вкупната коса црта коса црта. Така што е многу грубите на тој начин да ги стави сите на иста линија. Јас никогаш не само да ги стави на иста линија. ALLISON: Се чувствувам како тоа е лична предност во овој момент. ПУБЛИКАТА: Дали тоа се обратите за за јамки и работи премногу? Роб Боуден: Како внатре? Како int i е еднаква на 0 запирка должина е еднаква на нешто? Дека немате избор. Со јамки за иницијализација part-- така што може да се гледа само int i е еднаква на 0 точка-запирка јас помалку од што и точка-запирка јас плус плус. Дека int i е еднаква на 0, технички можете исто така да го направи она што го видовме пред со синтаксата запирка. int i е еднаква ѕ 0 запирка е еднакво на 3 запирка к е еднакво на 5. Вие не имаат избор да се подели дека до во повеќе линии, и тоа е стандард. Гледајќи го има е во ред. ALLISON: Прекрасно. Добро, удобно segue во петелки. Така да, тука имаме некои примери на јамки дека вие момци видов во нулата. И, се разбира сите овие само може да се пресоздава во В. И тие во основа ви овозможи да се повторува некои дел на код до одредена состојба е исполнет, кои ние ќе добие во право по разговорот за петелки со условные. Па ние имаме три главни типови. За, време, и направите додека, која сите ние ќе оди преку сега. Па првиот е за петелки. Па за некои услови, изврши овој блок од код. Имаме оваа излади малку дијаграм тука на дното. Но во основа имате во си за, првата линија, си оди за да иницијализира вашиот променливи. Така како што зборуваше, i е еднаков на 0 или i е еднаква на 10. Што и да треба, че променлива да биде тоа е случува да биде иницијализиран таму, пријавена и иницијализиран на некои вредност. Па тогаш имаме некои состојба која се случува за да биде проверка на нашите променлива против нешто. Па во случајот типичен случај каде можеби сакате овој дел од кодот да се изврши пет пати. Така би имале int i е еднаква на 0, а ние сакаме да биде кога i е помал од 5. Така што состојбата е само случува да се провери дека во секое време. Ако таа состојба оценува за да се вистинити, тоа е случува да се кандидира на кодот, која е токму она што оваа мала дијаграм покажува. И така тоа го извршува. Се ажурира променлива, што е она што го гледаме во последниот дел од нашата за јамка иницијализација таму. Па тоа само ќе Чувајте го прават тоа до тој услов не е исполнет, и тогаш тоа ќе излезе јамка и продолжи Продолжуваме со остатокот од вашата програма. Секој добро таму? Кул. Па еве еден пример, многу слични до нешто Јас само зборуваше. Па ние само сакаме да се печати ова е CS50 10 пати. Така што гледате, тука имаме нашите за, а потоа ние иницијализира променливата i да биде еднакво на 0. Нашата состојба е проверка дека тоа е помалку од 10. Така оцени да точно кога ние прво започне, а потоа се ажурира нашата променлива секој пат дека тоа всушност извршува и отпечатоци од ова е CS50. И ќе го прекине по 10 пати. Кул. Така, додека петелки се до следната. И како што гледате тука, ние само треба некои луѓе, но ова condition-- прашање? ПУБЛИКАТА: Како можам да скокне всушност само не еден број, но два броја [нечујни] јас плус плус плус? ALLISON: Значи, прашањето е како може да се ажурира вашиот променлива од страна на повеќе од една во исто време. Па јас плус плус ќе ажурирање од страна на еден секој пат. Ако си сакал да го ажурирате од две, можете да направите з плус изнесува 2. Роб Боуден: Дали сте виделе плус е еднаква на предавање уште? ПУБЛИКАТА: [нечујни]. ALLISON: Тоа е ефикасно истото што и јас можам плус 2 е еднаква. Па затоа се случува да го земе и ажурира тоа од страна на две секој пат. Плус равна е само нешто ние го нарекуваме синтаксички шеќер. Роб Боуден: Да, оние кои постојат за доста на сите аритметичките оператори. Па i пати еднаква на ќе го удвои бројот. j јаз е еднакво на 3 е иста како j е еднаква на j поделено со 3. ALLISON: Или минус изнесува 2 би Намалување i од страна на две секој пат. Роб Боуден: Дури мод еднакви. Не сте виделе bitwise оператори, но карета еднакви и симболот е еднаква, сите оние постои. ALLISON: Значи многу пати, особено со вашиот првите неколку Р сетови, ќе ви биде веројатно увеличивая на еден, па јас плус плус, ѕ плус плус се сите работи си оди да обично се користи. Но, тоа ажурирање состојба е целосно во рамките на вашата контрола. Можете да го ажурирате со какви било зголемувања или на кој било начин да одлучите да. Дури можеби сакате таа да биде случаен број понекогаш. Но да, има многу работи што можете да направите со тоа. Не сте ограничени на i плус плус. Роб Боуден: Само да знаеш дека постои, исто така, постои во друга форма, плус плус i. Значи, ако сте некогаш во потрага на интернет и се случи да се види плус плус јас, доста значи истото. ALLISON: Кул. Добро? Страшни. Така, додека петелки. Многу слични. Имате некои состојба. Главната работа е да се забележи тука е, наместо да има три различни делови да се постави, ние имаме еден. Ние само треба некои услови тоа е се проверува. И во истиот начин, се додека таа состојба оценува на true, вашиот код се случува да се кандидира. И ако тоа е неточно, тоа ќе се прекине, потег на следниот дел од својата програма. Па ова е вид на like-- она ​​што е добар пример за проверка за некои нормална состојба? Габриел: И покрај тоа вистина. ALLISON: Може да се направи додека е точно. Па, 1 е еднаков на 1. Роб Боуден: Можете да го направите while-- само наместо да се користат за јамка, секогаш можете да кодирате за телефонска линија подолго време јамка, така i е поголем од 0 или додека i е помалку од 10. ALLISON: Прекрасно. И тогаш имаме направите додека петелки, кои е одлична за корисник валидација, каде сакате да добиете нешто од Вашата корисник, види дали тоа е валиден, и потоа да продолжи од таму. Па една од работите да се знае е со направите додека е тоа што таа се случува да се изврши, и тогаш тоа ќе се ре-се изврши ако овој услов е исполнет. Па веројатно најдобар начин да се направи ова е само да се види пример тука. Така како што јас само споменати, корисник валидација е навистина useful-- или не догдето се навистина корисно со корисник валидација. Така што ова е само ќе да се ре-поттикне некои корисникот додека не влезат во позитивен број, кои би можеле да бидат корисни за вашиот P сет оваа недела. И така, во овој случај, кога ние првично ја извршите оваа програма, тоа се случува да се печати влезе во позитивен број. Тоа се случува да се добијат некои влез од страна на корисникот, а потоа тоа се случува да се провери дека влезот во однос на состојба дека сте во собата за него. Значи во овој случај тоа се случува да се провери. Тоа се случува да се каже, во ред, е наш влез негативен, или тоа е 0 или негативен, кој ќе биде валиден. Така, тогаш тоа ќе се ре-ред. Прашање? ПУБЛИКАТА: Дали е ова истиот потоа како додека јамка ако само копирани тој код и го стави [нечујни] додека јамка? ALLISON: Значи прашањето е би ова да биде иста како само додека јамка ако ние требаше да се само копирате додека јамка погоре. Значи во овој случај, вашиот додека јамка е се случува да се провери состојбата во прв план. Значи во овој случај, ако се обидовме да се напише како само додека јамка, тоа би рекол додека влез е помалку од една. Но ние немаме влез за него. ПУБЛИКАТА: Ако [нечујни] додека јамка вклучувајќи го и овој код, но тогаш снајде код над додека јамка, исто така. Вие само имаше овој код [Нечујни] додека јамка. ALLISON: Тоа ќе биде истото, да. Па може само да write-- наместо да има do-- Да. Габриел: Но, тоа е повеќе елегантно. ALLISON: Да, тоа е повеќе елегантно. Може да се добијат во дизајн и какво ли не, но да, можете целосно да го направите тоа. Било какви други прашања? Добро, кул. Па ние зборуваше многу за условите со сите овие петелки што ги имаме, па ние сме всушност добивање на услови во Булова изрази. Повторно, ќе ги користат овие во C, па само вид на транзиција од повеќе графички интерфејс за да всушност кодирање. Кул, така голема, ако. Во основа, само ни овозможува да се воведе некоја логика во нашата програма и проверка sys услови. Значи во овој случај, во ред, е n е поголем од 0? Да таа е, така да може да се изврши тоа. Тоа е само проверка на некои состојба кои сте постави, што мислам дека сите ние сме удобно со проверка услови. Кул. Значи, ако друго е вашата другиот, може да се каже во ред, ако ова е вистина, направите ова првото нешто. Инаку јас сакате да го стандардно и се направи нешто друго. Како во овој случај, тогаш или се избере позитивен број или негативен број. Имате само две опции. Ви е потребно да се изврши без оглед на она што вашето корисничко влезови. Па може да се каже добро, е тоа е поголем од 0? Кул. Печатете позитивен број. Ако не е, печати негативни. Секој добар? А потоа една работа да се признае е дека ако се исполнети ако состојба, друго никогаш, исто така, ќе се изврши. Само еден од нив ќе изврши во исто време. Така, тоа е компромис. Вие не добие да имаат и двете. Можете или да имаат првиот услов. Можете или да имаат, ако или друго, не и двете. Кои потоа може да се направат работите уште посложена, затоа што можете да направите ако, друго, а потоа се друго. Значи во овој случај, ние имаат три состојби. И повторно, само еден од нив е се случува да се заокружи се извршува. Па може да се прашуваат Па, што ако сте имаат нешто што може да ги исполни две од овие. Можеби она што ќе го внесување ги исполнува и двете состојбата за ако и друго, ако. Единственото нешто што се случува да се кандидира ALLISON: Штом го наоѓа нешто дека го исполнува услов за кој оценува за да се вистинити, тоа е она што тоа се случува да се кандидира и ништо друго. Значи, ако сте имале е овој број помеѓу 0 и 5 за својата прва еден, или ова е број помеѓу 3 и 5, за друго, ако дел, и го внесуваш number-- Јас реков 0 и 5 и-- 4. Тоа се случува да го погоди првиот. Тоа се случува да се каже во ред, ова број е помеѓу 0 и 5. Изврши и да ја напуштат. Тоа никогаш нема да се погоди дека втората опција. Кул? Страшни. ОК, ние исто така имаат прекинувач изјави ако сакате да се добие дури MORE-или жал, прекинувачот е следната. Јас сум добивање пред себе овде. Повторно, мултиплекс ако блокови каде што јас само рече е веднаш штом ќе се најде состојба дека се сретнале и ако друго, ако на друго место, го остава. Ако ви е потребна за да се провери повеќе нешта, ти си случува да сакате да го користите ова, бидејќи тоа ќе се провери во секое време тука. Па ова ќе помине низ и ако е поголемо од или еднакво на 90, тоа се случува да се печати тоа. И тоа ќе се кандидира преку и провери секој еден од нив. ПУБЛИКАТА: Значи ова ќе биде повеќе кабриолет од [нечујни]. Ова ќе биде како [нечујни]? ALLISON: Прашањето е би било тоа кабриолет или не ова го направи она што го сакате. Тоа навистина зависи од она што сакате од вашата програма. ПУБЛИКАТА: Мислам како ако се стави 90 во. ALLISON: Ако се стави 90-- ПУБЛИКАТА: [нечујни]. Габриел: Ти си оди за да се добие две работи. ALLISON: Ти си оди за да се добие две работи. Да, два. Роб Боуден: Две? ALLISON: Не Роб Боуден: Четири. Ако се стави 90, тоа се случува да ви кажам имаш, имаш Б, имаш С, имаш Д. ПУБЛИКАТА: [нечујни]. ALLISON: Токму така. Па јас зависи од она што сакам од тебе програма. Понекогаш треба да провери на повеќе нешта. Ќе добиете многу подлабоко во она што добриот дизајн е како да одиш напред. Важно е да се сфатат е дека овој ќе ги провери сите четири услови тука. Оглед на тоа што, ако ова беа ако друго ако друг ако е друго, таа ќе го погоди дека првиот случај, тоа ќе печати имаш и да се направи. Роб Боуден: Дури и ако ние одлучи да го промените ова ако и е поголема или еднаква на 90, ако и е поголема или еднаква на 80, и помалку од или еднакво на 89, ако n е поголема од или еднаква на 70, и n помалку од или еднакво на 79, така што ќе биде точна. Дека ќе го направи она што го сакаме, но тоа сè уште ги проверува секој него. Па со оглед на тоа во првото сценарио, ако ние влезат 90 само ако друго ако друго ако, и ние влегуваме 90, а потоа тоа се случува да се поправи. Тоа ќе се провери прво еден, печатење имаш, прескокнете сè, поради тоа што веќе се најде еден кој работи. Сите случаи се взаемно исклучиви врз основа на ако друго ако друго ако. Па тоа ќе го изврши прва ако, тогаш тоа е направено. Тоа ќе оди до крај. Со оглед на тоа, ако ние се промени тоа да биде она што беше велејќи со помалку од или еднакво на 89 години. Тоа се случува да се провери првиот. Тоа ќе се печати. Тоа ќе се провери вториот. Тоа не се случува да се печати. Проверете третиот. Нема да печати. Проверете четвртиот. Сега се случува да се печати. Па во тој случај, ако друг верзија, бидејќи овие случаи меѓусебно се исклучуваат, тоа е подобра употреба ако друго ако друго ако, бидејќи тоа се случува да имаат помалку проверки на условите од оваа верзија. ALLISON: Прекрасно. Така уште една работа што можеме направите е да се префрлиш извештаи. Во основа прекинувач изјава потребно во некои променлива, во овој случај тоа е n, и одредува кој случај да се изврши. Значи ова е исто така еден каде се вашите дела треба да биде вид на меѓусебно се исклучуваат. Значи во овој случај, ако ние добиваме еден, тоа е се случува да одговара што и переменная--, без оглед на вредноста на n е да се еден од овие случаи, така 1, 2, или 3, и печатење на соодветната линија. А потоа, ако забележите тука, ние, исто така, имаат стандардно, кои можете да мислам на како на вашиот друг. Па ако изберете било кој друг број покрај 1, 2, и 3, во овој случај тоа е само случува да се печати невалиден. Донесување на одлука кога да се користи IFS наспроти ако elses наспроти прекинувачи се случува да биде нешто што вие момци ќе види дизајнира мудар како да почнете да пишување повеќе сложени програми, и нема тешко и брзо правила на кога да ги користат. Тоа навистина зависи од вашиот контекст. Роб Боуден: И само за да го фрли таму бидејќи е повеќе удобен секција. Склопки, тие имаат тенденција да be-- па ти си ограничен во бројот на начини може може да ги користи, затоа што IFS, состојба може да биде доста многу нешто што сакате. Со прекинувачи случаи мора да биде број, или технички тие можат да бидат знаци, но знаци, како што ќе видиме, се само бројки. Така што тие имаат да бидат броеви, но прекинувачи се навистина поефикасен од ако друго, ако друго ако, бидејќи дури и преземање на пример before-- добро, Одделение пример чини добро. Па да речеме овде, ние наместо да го стори ова како ако друго ако друго ако сценарио. Па ако n е еднакво на еднакво на 1, печати сте го одбрале мал број. Ако друг ако n е еднакво на еднакво на 2, што сте го одбрале медиум број. Друго, ако еднаквите е еднакво на 3, висока. Друго невалидна. Па да речеме дека беше нашата сценарио. Па да речеме ние влегуваме 4, па очекуваме невалиден. На начин дека ако друго ако друг ако пристап е оди на работа е проверува првиот услов. Тоа не е задоволен. Значи ние се провери вториот услов. Тоа не е задоволен. Проверете третиот состојба. Не се задоволни. Па одиме на друго место и да ги испечатите невалиден. Начин на префрлување работи е тоа компајлира надолу во она што ние ќе да се јавите на скок на табелата. Основната идеја суштество дека кога ќе влезат 4, таа веднаш може да оди на стандардните. Тоа не треба да се провери часот Јас случај 1? Не бе, тоа не е тоа. Случај 2? Не бе. Случај 3? Не бе. Стандардните. Добро, тоа мора да биде каде што јас сакаме, а потоа изврши тоа. Не, таа веднаш скока на стандардните. Или да го Влегувам 2, тоа е веднаш ќе одат на 2 без потреба да се оди преку случајот 1. Па на тој начин, реално во денешно време тоа е Не дека голем дел од добивка ефикасност. Обично компјутерите се доста брзо, и дека не е толку голема. Но, тоа е случај и да ја прекинувачи се побрзо. Ако сте навистина се обидува за да се оптимизира, користете еден гајтан. ALLISON: Кул. И тогаш имаме тројната оператор. Па знам што споменав порано зборот синтаксички шеќер. Па тоа е само работи кои го прават вашиот код многу повеќе концизен. Па ова е еден од тие случаи. Така тројната оператор е знак прашалник дебелото црево како што гледаме во линија низ s е еднаква на n е поголема од 100 знак прашање високо на дебелото ниски. Значи, во основа како тоа функционира е тоа е n е поголема од 100 е состојба. Па мислам дека тоа може да има смисла. Тоа е како поставување на прашање. Тоа е велејќи о е н поголема од 100. Кој знае? И ако тоа евалуира до вистина, тоа се случува да ви даде Првото нешто што е наведени таму, која е висока. Инаку тоа се случува да ви даде ниска. Така што ова е само навистина едноставен и ефикасен начин да го направите како ако на друго место. Тоа е сето ова е. И ако ние требаше да ја напишам оваа како ако друг условен, тоа ќе биде ако n е поголема од 100, се врати на високо ниво. Друго, се врати на ниско ниво. Ова е само еден многу повеќе концизен начин на пишување неа. Роб Боуден: Значи овој пример е секогаш кога правиш нешто како овој, тоа е на шемата каде јас го користам тројната многу често. Значи ние не сме разговарале за обемот сепак, но јас мразам гледањето на стрингот е точка-запирка. Ако n е поголема од 100, s е еднаква на високо. Друго, и е еднаква на ниско ниво. Така што шема, тие пет линии на код буквално 100% од времето може да биде префрлен во какво беше таму со тројната. Така тројната, една линија код. Ако друго, пет. Тоа е пример јас се укаже од секој време. Ова би одлично место за тројната оператор. Тоа е толку чист. Но, луѓето имаат тенденција да никогаш не го користи. ALLISON: Земи го далеку Габе. Габриел: Па сега вие момци сите научиле во предавање на оваа недела дека се што е во компјутер е бинарна, нели? Исто како и лампи тука. Вие може да биде или вклучен и исклучен. И во се што, мислам буквално сè. Некои броеви и знаци, и жици, па дури и код што ќе пишувам кога станува составена за да машина код и работи како што, така што сите тоа се сведува на 0 и 1. И така, кога ние сме се занимаваат со цели броеви, што е нешто што е технички многу едноставна, ние треба да бидат способни да го направите нешта како додавање на нив, што е веројатно една од наједноставните работи можете да го направите на два цели броеви, нели? Така собирање и одземање работи само како тоа функционира во децимална нотација, освен тука тоа е бинарна, нели? Така, тоа е во основа два. Па додадете 1 плус 1. Кој дава 0, и 1 носи повеќе. И само задржи тоа го прават, па сега доаѓа повеќе интересно прашање. Знаеме како да ги претставуваат сите позитивни цели броеви во компјутер, но, ајде да се направи оваа вежба. Се преправаат дека вие момци се сите во 1960 или нешто во обид да се создаде компјутер, и ви треба да излезе на начин на складирање на минус 1, на пример, или минус било која цел број за таа материја. Како вие би го направите тоа? Сите идеи? Само фрли нешто во мене. Да? ПУБЛИКАТА: [нечујни] определи посебно ако вашиот [нечујни]. Габриел: Можете да назначат посебни малку, што ќе биде 0 или 1. Да речеме дека една, ако тоа е позитивна и 0 ако е негативен. А потоа и остатокот од малку е само за чување на број. Кул. Значи тоа е многу добра идеја. Имаме, јас не знам, 200. И ако на првиот бит е вклучена, тогаш тоа е плус 200. Ако тоа е исклучено, тоа е минус 200. Кул. Существует само една мала Проблемот со ова, што е, ако ние се обидуваме да ги сумира нештата. Значи замислете имаме 11.111 овде, и ние сме собирање ова со 00.100 сеедно. Ако овие две се позитивни, тоа е во ред. Но, тогаш, ако еден од им е негативен, како ајде да се каже дека ова малку тука е оној кој е одговорен for-- јас ќе одам да се направи separate-- така што ова значи дека овој број тука е позитивна. Оваа една значи дека овој број тука е негативен, нели? Но, тогаш кога сте ќе ги сумира, ти треба ако изјава велејќи о, ако тоа е 0, тогаш мојот сума ќе биде нешто различно, нели? Па таму е малку повеќе умен начин да го направите дека, кој се нарекува комплементот две е. Значи, во основа она што ние направите е да ја дефинираме минус 1 за да биде нешто што ако ние додаде до 1 0 нас дава. Дозволете ми да повторам дека. Па да речеме дека ова овде е 1. Што е она што природно во позитивни цели броеви додава дека ни 0 дава? Што ако ние се обидуваме да го додадете во овој број? Ние си оди за да have-- ОК, па ајде да го додадете. Ние си оди за да имаат 1 плус 1 е 0, а потоа го носи во текот. А потоа ние си оди за да се добие 0 повторно. Јас сум добивање збунети. И ви се случува да се добие 0 и 0 и 0 и 0 и 0 и 0. Многу 0 е. Во последен еден, ние не сме ќе биде во можност да го пренесе, затоа што да речеме ние сме само се занимаваат со еден бајт, така само 8 битови. Така што компјутерот го прави стандардно е само заборава дека [нечујни] ОК? Значи ова е она што се нарекува дополнување двете е. Ние едноставно се дефинираат минус 1 за да биде нешто тука дека ако додадете дека до 1 ќе ви даде 0. И тоа е прилично кул затоа што ние навистина не треба доцна да се имплементира различен тип на збирот зависност од тоа дали тоа е негативен или позитивен број. Дали тоа има смисла? Па едно нешто што го правиме тука со цел да се конвертира помеѓу позитивна и негативна цел број е тогаш ние флип сè, а потоа ние се додава 1 до тој број. Ако се обидете да го направите сами на парче хартија, си оди за да се види кој што има смисла. Но, ако јас земам овој број тука, ова е пет. Значи, ако јас флип сè, тука, па 1, 1, 1, 1, 1. Флип, флип, флип. А потоа додадам 1 до него. Одам да имаат токму минус 5. ОК? Овој вид на прави смисла, бидејќи ако ќе се обиде да ги сумира ова со бројот што имавме претходно, што was-- нека флип ова повторно. Тоа беше 101 и многу 0 е. Ако се обидете да додадете овие два броја заедно, ви се случува да имаат токму 0. ОК. Било какви прашања? ПУБЛИКАТА: [нечујни] Габриел: Што сакаш да кажеш? ПУБЛИКАТА: Негативни до позитивен [нечујни]. Габриел: Не, флип и да додадете 1 и секогаш. Да. Добро, па карактери, исто така кодирани бинарни датотеки. Имаме ASCII табелата, како што исто така, видов во предавање, нели? Така, тоа е во основа на мапирање на нештата. И тука не можам да истакнам доволно дека за компјутер, и 65 се буквално истото. Значи, ако јас напишам нешто како знак в е еднакво на, би можел во исто време само напиши 65 тука, и тоа ќе биде иста, во ред? Там е никаква разлика. Ние обично имаат тенденција да се стави ликови во променливи од типот. Знак, не затоа што тие се во суштина направен за тоа, но затоа на человек конвенција. Но вие само може да се справи со цели броеви наместо на променливи од типот char, и ќе биде во ред. Само вистинските разлика меѓу char c и int i е во тоа што има четири int бајти во повеќето системи, додека char има еден бајт. Тие се во суштина истото во однос на податоци. Така што ќе се печати тука? Тука сме печатење цифрен користење printf со плус 1, а само како цели броеви, знаци може да се сумира, па знаци, исто така, може да се сумира. Значи ова е точно 65 години. Па таму се случува да биде 66, и тука имаме 65 плус малку минус голема, што ќе биде, јас навистина не знам. Но тоа ќе биде точно на јазот помеѓу големи букви и и помали букви, така ние сме случува да се добие мал, нели? Да. Така што тоа се случува да се печати карактер, која е токму оваа. Добро? Било какви прашања? Тука имаме еден куп на различни видови за нумерички променливи. Ние веќе зборуваме за Int. Плови е само начин to-- ова е навистина смешно, затоа што кога јас прв пат научил да програмирате назад во текот на денот со Пајтон, првата програма што некогаш сум се обиде да се напише, видов дека имаше тип повикани и тип наречен плови. И плови е за сите реални броеви. Па потоа го прашав зошто треба да Што некогаш сум го користите int тогаш? Затоа што ако можам да ги користите сите реални броеви со пловка, Јас само ќе престане да го користи целочислените, нели? Затоа што реални броеви се многу сличен на генеричките повеќе. Излезе дека ова е не е случај во компјутери затоа што тие се во суштина различни нешта. Па цели броеви и е присутна, на операции што го правите за да ги во суштина се различни, бидејќи на начинот на кој тие се чуваат, во ред? Ние се случува да се зборува малку малку повеќе за тоа во една секунда. Така двојно е само поголема плови. Обично во повеќето системи, float е четири бајти, исто како и INT. И двојно е осум бајти. А долго време е, всушност, само симбол дека сте го додаваат на тип како int. Ви каже долго долго int вака. Долго долго int x за да го направи подолго. Па во повеќето системи, која ќе се даде осум бајти, наместо вообичаените четири. И ти всушност може да се намали in, така што само може да се каже долго долго, и дека работи премногу, во ред? Вие исто така може да се направи други работи како непотпишана int, или пак само непотпишана исто така, ќе работат. И тоа ќе го направи х биде променливо како и сè е позитивен, па ти навистина не може да има негативни броеви во начинот на кој што сме го виделе тука. Па следната прекрасно подвижна запирка и прецизност. Тоа е една од причините зошто сакате да го користите целочислените наместо да плови, затоа што целочислените се 100% точни, нели? Тоа е точно тој број. За лебдечки точки, ако велат одговорот е еднакво на 1 над 10-- Јас се случи да ја имаат оваа точна програмата тука, float.c. Дека отпечатоци до 20 децимални места. 1 поделено со 10, и дека обично е 0,1, нели? Но тука ако правиме плови, а потоа ние се кандидира, гледаме дека тоа не е точно 0,1. Тоа е 0,149 нешто. И зошто е тоа така? Затоа што ти навистина не може да претставуваат секој еден е можно вистинскиот број во меморијата бидејќи постојат несчетно многу од нив. Па ние сме технички се само можност да претставуваат ограничен износ од нив со ограничен износ на податоци. Но, тоа е навистина интересно. Сега ова моли прашањето за тоа како ќе се одат за претставувајќи ова со битови, нели? Па, како се чуваат лебди? Со цели броеви беше лесно. Но со пловки сакате за да се зголеми опсегот, и сакате да бидете во можност да го претставуваат огромен број и многу мали броеви како 0.000001 во исто време. Значи, повторно, истата игра. Дали некој има било каква идеја како би можеле да одат за претставувајќи плови во меморија? Само фрли нешто. Да, ве молам. ПУБЛИКАТА: како [нечујни] и ако тоа беше две целочислените и едно се [нечујни] и една суштество сè по децимална точка. Габриел: Во ред, кул. Па две различни цели броеви. Можете да имаат 12.45, така што е 12 и 45. Убаво. Она што ЕРЕ ќе одиш да се каже? Истото? Да? ПУБЛИКАТА: [нечујни] нотација каде што ќе се одвојат база. Габриел: Научно нотација, Да тоа е обично она што се случува. Значи ова е она што се нарекува мантиса. Тоа е она што е, всушност, број, а потоа експонент е само каде запирката е, нели? Така што ова ќе биде нешто на форма 1, 2, 3, 4, 5 пати 10 до 4 минус. Јас само сфатив that-- да, точно така. И тогаш овој 10 до минус 4 е случува да се дефинира каде запирката е, во ред? Во Бразил ние ги користиме запирка. Тука вие момци го користите точка. Така точка. И ова е кул, бидејќи тогаш може да се фокусираат многу од вашите битови на овој човек тука, на мантиса, а потоа тоа е ќе биде вашиот вистински прецизност. И можете да го направите тоа или во децимални или во бинарен базиран систем. Существуют различен начини да се спроведе оваа. Прашања? Да? ПУБЛИКАТА: Колку места по децималната [нечујни]? Габриел: Тоа е комплицирано прашање, бидејќи никогаш не е навистина 100% точни, затоа што како што гледате тука, за некои броеви е 100% точни. Верувам дека, ако ние се стави 0,5 тука, тоа се случува да биде 100% точни. Тоа се случува да биде 0,500000. Па во тој случај, таа е совршена. Но во други случаи, тоа е многу помалку совршена. Во моето искуство, како и до четири, пет децимални места е доста прецизна. Ако користите двојно, тоа се случува да да биде начинот на кој повеќе точно од тоа, во ред? Роб Боуден: Па само да се фрли некои повеќе контекст на плови, Јас никогаш не се сеќавам 100% како спецификации на плови всушност работи, но јас не можете секогаш се сеќавам дека лебди почнете да добивате неуредна. Значи идејата е дека кога ќе се добие навистина, навистина големи броеви или навистина, навистина мал број, ние почнуваме добивање на полошо и полошо на разликување помеѓу двајца блиски лебди. Па како ми се допаѓа да се размислува за е со подвижна запирка непрецизност, постојат две пловки дека ако јас се обидувам да ги наведете во C, и покрај фактот дека тие се различни броеви, тие се случува да биде толкува како истиот број, бидејќи не можеме да ги сместат поинаку. Ние треба да ги користат истите бита. И така, кога ние се да навистина, навистина голем број, зборуваат како 10 до 300 или нешто, тоа е во тој момент дека 10 до 300 или 5 пати од 10 до 300 не можат да се разликуваат од 7 пати од 10 до 300. Па тоа е доста голема разлика помеѓу двете броеви. Но, тогаш кога ќе се фаќате до нормалниот опсег работи, имаат тенденција да бидат доста добри во разликување. А потоа кога ќе се фаќате навистина мали, ти си исто така добивање прилично лоша повторно. Значи како куп 0,0000, станува прилично лошо. Габриел: Да, така брзо белешка. Никогаш не го направите тоа. Никогаш не се обидувајте да се споредат лебди користење еднаква на еднаквите, бидејќи дури и ако тие се речиси исти, скоро ист не е иста. Значи она што обично го прават е ти одземе нив, се земе апсолутната вредност на тоа, и да видиме ако тоа е помал од 0.0001 или нешто слично, во ред? И кул. Знам многу луѓе имаат некоја позадина во Јава, особено оние кои го правеше АП компјутерски науки, нели? И Java е јазик што најчесто се базира на C, тоа има неколку многу големи разлики. Но, за петелки, и IFS, и работи како тоа, тие се сите исти синтакса. Имам неколку програми тука за да се покаже тоа. Така на пример, едноставен привет мир. Ова е привет мир во C, кој ви момци се дефинитивно запознаени со тоа, и овој и овој е во Java. Значи во Јава имаме оваа јавни класа, привет мир, и јавни статички празнина Основната и низ аргументи. Низ аргументи се случува да се појави во C многу наскоро. Но, ајде да не одиме таму. Сега имаме празнина тука, што значи дека главната не се преземат какви било аргументи. И тогаш имаме System.out.println, а тоа е вид на еквивалент за printf. Тука ние навистина не треба обратна коса црта n, бидејќи печат LN прави тоа за вас. Го додава обратна коса црта n на крајот на линијата. Но, ако одите во нешто како, можете може да се види дека тие се доста истото. Па иницијализација, и состојба, како и за ажурирање is-- сум пропуштил простор here-- тие се доста истото, освен Јава има за уште неколку високо ниво нешта. Тука можеме да направиме плус јас и Јава автоматски ќе направи ова јас овде, што е цел број, во низа, а потоа го додаваат две жици заедно. Тука во C ние треба да направите и% d. Линија тука, за гледа токму истото. И ако ја гледаме ако, IFS Исто така изгледаат исти, нели? Значи вистинскиот големи разлики се во оние работи кои ви се види тука. Јавни статички, празнина, и потоа јавни класа ако. Па Java има она што е нарекува виртуелна машина. И тоа е многу силно врз основа на она се нарекува објектно ориентирано програмирање, што е многу, многу чести парадигма за програмирање во денешно време. И оваа класа работа е она што го гледате, нешто од објектот ориентација, е да се создаде една класа, а потоа можете може да се изведе предмети од таа класа. Ние нема да се зборува премногу многу за тоа во CS50, но тоа е дефинитивно нешто навистина кул, особено ако сакате да се оди во повеќе софистицирани веб развој на крајот на курсот, како ја поднесете вашата завршен проект и некои убави рамки и работи. Значи, во основа на идејата е тоа што вие не сакаат повторно да се спроведе нешто, така да се создаде нешто што е многу општа, како што се формите, а потоа да се создаде различни форми од неа, а потоа и од секоја од овие форми, да се создаде некои поспецифични форми во три димензии или нешто слично. И тие ја имаат оваа хиерархија тие наследат од другите, така сите функции и сите променливи кои големите форма тука има, сите од овие се случува да имаат, како и сите од нив се случува да имаат, и така натаму и така натаму. Значи тоа е основната идеја. C не го имаат тоа, но C ++ дека имаат вид на функција. И Java е под големо влијание од објектот ориентација, па затоа ќе видите класа тука цело време. И друга работа е оваа Java виртуелната машина. Така што ова, мислам, е многу паметна идеја. Па што луѓе кои измислен Java направил е тие не сакаат да собере своите код двапати ако тие мораа да се кандидира во Windows, или Mac, или Linux, па она што го прават се тие буквално се кандидира нешто како уред, но ти навистина не се види тоа се случува. Па тие се кандидира на виртуелната машина во внатрешноста на вашиот компјутер, кој е во основа како мини оперативен систем. И дека оперативниот Целта на системот во животот е само за да работи тоа што се нарекува бајт код. Така, наместо на во C, начинот на кој ние би собере е да се направи ако, а потоа се кандидира ./if. Јас заборавив обратна коса црта во. Во Јава, ќе се направи првата Јава Ц за да го собере, if.c. Тоа не е В. Тоа е точка Java. А потоа ќе мора да не се кандидира ./. Ќе се добие оваа нова датотека if.class, но ти навистина не може да се кандидира if.class сега само како што правевме порано. Оваа не е извршна. Мора да се работи. Мора да го хранат во програма наречена Јава, и дека програмата е на виртуелната машина, и тогаш го правите if.class, или, ако. Да. А потоа таа работи. OK, па ова е вид на виртуелната машина случува. Ц не дека имаат, па ако јас се да стави оваа програма во машина за Windows, тоа не би сакал да работиш во C. Во Јава го прави тоа. Прашања? Кул. Тоа е ако за супер делот за денес.