ROB Bowden: Tas ir ērtāk sadaļa, bet tas nenozīmē, ka, ja jums justies kā jūs neesat ērtāk Jums nav mācīties lietas šeit. Tātad, pieņemsim sāktu. Vai jums ir slaidus iet pa labi uz lietām. Es par to tikai ņemt to tieši tagad? Komutācijas klēpjdatorus. ALLISON: Jūs nevēlaties iepazīstināt sevi, Rob? ROB Bowden: Ak, es esmu Rob. Šis ir mans piektais gads TF-ing CS50. GABRIEL: Es esmu Gabriels. Es esmu vadītājs TF no CS50. Es biju TF pagājušajā gadā un šogad. ALLISON: Un es esmu Alison, un šī ir mans otrais gads TF-ing CS50. ROB Bowden: Labi, tāpēc šī lieta pa kreisi, cerams, jūs esat redzējis to pirms tam. Ja tā nav, jo jūs lejupielādēt to par sevi, Jums vajadzēja redzēt to lekciju. Tātad tas ir CS50 ierīce, un viņš bija nedaudz par to apraksts lekciju. Bet būtībā tas ir tikai jums darbojas pamatdarbības Sistēma jūsu darbības sistēma, lai mēs varētu sniegt jums programmas bez nepieciešamības jāuztraucas, ak tas ir dodas strādāt gan Windows un Mac, vai kāds no jums ir jau izmanto Linux, Linux. Tas ir vienkārši vajadzēja būt kopēja spēlē lauka tāpēc ikvienam ir pašā precīzu vide. Tātad, ja jums nav lejupielādēt šo jau, Jums vajadzētu lejupielādēt to, jo jūs esat dodas uz to vajag par problēmu kopumu. Un tas ir divu gigabaitu lejuplādēt, tāpēc tas var veikt awhile. Uz Hārvarda tas būs iet ātri. Tātad CS50 ierīces. Tagad sākumā, mēs ejam, lai runāt par tikai ķekars komandrindas sīkumi, un tādējādi ar to, es domāju strādāt šajā maz vidi visā šeit. Un ievērosiet visus lietas Es saku tieši šeit tieši tagad dodas uz darbu, ja jūs esat iekšā terminālis ierīces iekšpusi, vai, ja esat iekšā gedit termināla logu ierīces iekšpusi. Tātad, šī vide ir identiskas. Bet es esmu gatavojas iet trešo ceļu. Un paziņojums leju šeit tas maz IP adrese tieši šeit. Tātad jums nav izdarītu, bet tas IP address-- tagad, ja I-- izņemot tas bloķē šī lieta. OK, tā, ka IP adrese vairāk nekā terminālī here-- tāpēc šis terminālis vairāk šeit ir terminālis manā Mac. Tātad tas nav nekādā veidā šobrīd saistīta ar ierīci vispār. Un, ja jūs par Windows, tad tu esi būs nepieciešams lejupielādēt kaut ko īpaši tas, jo īpaši cilvēki mēdz izmantot tepe, P-U-T-T-Y. Tātad, ko es esmu gatavojas darīt, ir veids SSH un tad, ka IP adrese. Nu, jharvard šajā IP adresi. Tik 192.168.24.220. Šajā baisajā ziņa, ignorēt to. Vienkārši ierakstiet jā. Tas ir CS50 kastē. Tas prasa paroli. Un tā ir daudz šajos kontekstos kur tas prasa paroli, [nedzirdama]. Mēs esam ieguvuši daudz jautājumu kur saka, ka tā ir faktiski nav rakstīt. Tas nav parādīs rakstzīmes parole kā jūs rakstāt, ja kaut kas, par drošības līdzekli, jo, ja kāds meklē pār savu plecu un viņi redz star star, tad viņi zināt, ka jūsu parole ir četras rakstzīmes. Tātad ideja ir tā lūgs jūs par savu paroli, tipa. Tas nav gatavojas, lai parādītu Jūs rakstzīmes, bet tas ir faktiski pieņemt tos. Šādā gadījumā, jebkurā laikā jums kādreiz redzēt paroli ātri nodarbojas ar iekārtu, parole būs purpura. Tik tumšsarkanā. Un tagad šeit iekšpusē šo logs, kas ir manā Mac, Es esmu, kam būtībā pašā precīzu skats kā iekšpusē termināla ierīcē. Tātad jums nav to darīt. Jūs varat darīt visu jums gribu ierīces iekšpusi. Es gandrīz nekad faktiski darīt kaut ierīcē. Es gandrīz vienmēr samazināt, ka, un tagad Es esmu strādā SSH uz ierīces. Ja kaut kas, ja jums ir lēnāks dators, jūs varētu pamanīt atšķirību. Es to daru, jo es gribētu šī termināla logu. Tas ir dažas funkcijas, piemēram, Es varu sadalīt logu, un tagad es varu SSH izmantojot ierīci. Es saņēmu divus SSH notiek uzreiz. Ja jūsu dators ir īpaši lēna un jūs strādājat ierīces, un tu saproti, tas ir tiešām laggy, neatkarīgi. Mēdz būt daudz ātrāk ja tu esi SSH-ed. Bet citādi jūs varat strādāt vai nu veidā. Mērķauditorija: Ko SSH nozīmē? ROB Bowden: Secure čaumalas, kaut kas tamlīdzīgs? Ko SSH nozīmē? GABRIEL: Drošs apvalks. ALLISON: Tas ir tikai droša apvalks. ROB Bowden: Drošs apvalks. Tas ir protokols, kas you-- tā ir drošs protokols, tāpēc šifrēta. Cilvēki nevar Snoop tīklu un redzēt, ko jūs sakāt, lai kaut ko tu esi SSH-ed. Un patiesībā, jo novecot dienas CS50, arī 2009. gadā kad es biju pirmkursnieks, tā, ka Jūs strādājāt pie CS50 problemātiskajām komplekti, bija jums SSH-ed uz kādu serveri kas mums deva iespēju piekļūt, un jūs strādāja tur. Tātad jums nebija šis grafisko ierīces. Jums nav gedit. Jums nav visas šīs lietas, kas jūs varētu vizuāli punkts un noklikšķiniet. Jums bija strādāt šo interfeisu. Es gribētu strādāt šajā saskarnē. Tāpēc daļa no tā, ko mēs ejam lai iet vairāk nekā tagad ir ķekars komandas, jums vajadzētu sākt, lai iepazītos ar tik jums iet gar gaitā. Un godīgi, kad jums pierastu pie viņiem, tā ir tik daudz ātrāk strādāt šajā vidē nekā tas ir strādāt ar meklētāju, velkot un noklikšķinot lietas. Tāpēc šeit mēs esam. Tagad es tikai SSH-ed, un tā noklusējuma location-- tevi redzēju dažas no šīm komandām klasē, bet mēs iet pār viņiem visiem atkal. Noklusējuma atrašanās vieta mēs esam kas ir mājas direktoriju. Un direktoriju, tikai vēl viens vārds mapi. Tātad mēs esam mājas direktorijā. Ierakstiet ls, uzskaitīt failus šajā katalogā. Acīmredzot es izveidojis blah.c agrāk. Tātad mums ir desktop direktorijā. Jūs pamanīsiet sintakse izceļot? Gaiši zils izcelšana norāda katalogs un taisni baltā norāda tikai plain failu. Tātad tur ir būs dažas citas krāsas jūs redzēt. Izpildāmais fails, iespējams, gatavojas būt zaļa vai kaut kas tamlīdzīgs. Labi, tāpēc mēs esam mājas direktorijā. Tagad, ja es gribu iet uz atšķirīgu katalogs, cd ir komandu es gribu. Tātad mainīt direktoriju, un tad jūs iet nosaukumu katalogs ka jūs vēlaties iedziļināties. Tātad šeit mums ir četras iespējas. Es varu iet uz downloads, un tagad mēs redzam šeit tas ir atjaunināts to iekavās iekļaujams teikt, es esmu ~ / lejupielādes. Tātad, kas ir Tilde? Tas ir saīsinājums jūsu mājas direktorijā. Tāpēc gandrīz viss jums būs būt attiecībā uz jūsu mājas direktoriju, un parole ir tikai komanda Es izmantoju vienu reizi gadā, vienkārši drukā pašreizējā direktorijā. Un lai jūs redzēt šeit, ka ~ / Downloads tiešām atrisina uz / home / jharvard / lejupielādes. Tik / home / jharvard ir manas mājas direktorija. Tātad, mēs varam cd dot dot. Tagad dot dot ir īpašs katalogs, kas vienmēr attiecas uz vienu direktoriju augšu. Tātad, ja es esmu ~ / downloads, tad cd dot dot gatavojas celt mani Tilde. Ko mēs domājam cd dot dot gatavojas atnesiet man tagad? Tas atnesīšu mani / mājās. Tātad Tilde iespiedtehnikā darba direktoriju, Es esmu tagad / mājās / jharvard. viens katalogs augšu no tā, Tagad tā saka šeit / home. Tagad cd dot dot. Tagad es esmu saknes direktorijā, un jūs nevarat darīt to vēlreiz. Jūs vienkārši palikt saknes direktoriju uz visiem laikiem. Saknes katalogs ir visu ķekars lietas, ka, ja jūs vēlaties izpētīt, jūs varat. Piemēram, ja es iet uz bin, kas satur visi šie binaries, piemēram, ls, un cd, un visas šīs lietas. Tātad šīs komandas ir pastāv kaut kur sistēmā, un tas ir / bin direktorijā. Bet gandrīz viss jums jādara, ir būs no jūsu mājas direktorijā. Un cd bez jebkādiem argumentiem tireostatiskas, Jūs varētu teikt, cd ~, nav nepieciešams. cd gatavojas nest atpakaļ uz jūsu mājas direktorijā. Viens pēdējais. cd - gatavojas nest atpakaļ pēdējais katalogs, kas jums bija. Tāpēc es vienkārši cd'd divas reizes pēc kārtas, tāpēc mans pēdējais katalogs bija mājas direktoriju. Ja es eju uz slīpsvītra bin, un tagad iesim uz augšu un uz lietotājam. Lietotāju īpatsvars. Iesim uz lietotāja akciju. Tagad es esmu tagad lietotāja akciju. cd -, atpakaļ tvertnē. Tātad tas kļūst īpaši noderīga kad jūs have-- un tas būs pārslēgšanas. Tāpēc lietotāja daļu, muguras bin, akciju bin. Tāpēc tas kļūst noderīga. Jūs varat atrast sev ņemot daudz, daudz, daudz ligzdotu katalogi. Un jūs vēlaties kaut ko darīt nekustamo ātri kādā augšējā direktorijā. Jūs dodaties uz šo direktoriju, padarīt izmaiņas un sīkumi, piemēram, ka, un tagad jūs vēlaties doties atpakaļ, kur jūs bijāt. cd -. Es vienmēr esmu neapmierināts kad es notikt iet uz šo direktoriju I gribēju darīt darbu. Es vienmēr saņemt neapmierinātas, kad es to darīju tā divos posmos, nevis vienu soli, jo tas nozīmē, ka cd - notiek ievest šajā starpposmā tā vietā, kur es gribu iet. Tātad mēs redzam visus saraksta failus. Mēs zinām, kā iegūt ap līdz šim. Tāpēc tagad parunāsim par rediģēšanu failus. Tātad šajā protams, tu esi gandrīz vienmēr paredzams izmantot gedit. Ja jūs vēlaties, jūs varat veikt nākamo soli un sākt mācīties komandrindas teksta redaktors. Tik dažādas iespējas pastāv. Un tie, kas, iespējams, būs svarīgi, lai jums, mums ir Nano, spars un Emacs. Tātad Nano ir iesācējiem komandrindas teksta redaktoru. So Nano iesim tālāk blah.c es izveidojis agrāk. Tas ir tikai šī standarta C failu. Un jūs redzat visu ķekars sīkumi iet uz apakšā ekrāna, un acīmredzot blah.c satur šo C kodu. Tātad šajā konkrētajā redaktoru, ko tas saka par bottom-- tagad šis caret simbols, mēs redzam šo ^ G ^ X ^ O. Tā, ka gandrīz visi konteksts, ka jūs redzat, jūs varētu redzēt, ka caret simbols citās vietās, internetā, uz skursteni pārpildes, kaut kas tamlīdzīgs. Tas gandrīz vienmēr attiecas kontrolēt. Tātad, lai izietu es gribu darīt Kontrole X. Control X, izejām. Un es varu izmantot savu bultu taustiņus, lai pārvietotos. Paziņojums Es nevaru punkts un noklikšķiniet viegli. Jums ir nepieciešams izmantot savu bultu taustiņus, lai pārvietotos. Tur varētu būt uzstādījums norādīt un noklikšķiniet. Bet pieņemsim veikt dažas izmaiņas. Tagad Kontroles X iet izeju. Tas notiek, lai pateikt ietaupīt modificētu buferī. Tagad ātri, y jā, n ne. Kontrole C atceltu. Es ņemšu tikai teikt jā. Faila nosaukumu, lai rakstītu. Noklusējuma ir fails ka tā jau ir. Hit Enter. OK. Tagad es esmu tikko laboja šo failu, saglabāts, un tas tiek mainīts. Tātad Nano ir vieglākais teksta redaktors pierast. Alternatīvas ir Spars un Emacs. Tie ir augstāki līmeņa teksta redaktori ka ir ļoti stāva mācīšanās līkne. Tā mana personīgā izvēle ir Spars. Un tas ir dažādas iespējas. Un, kad jūs nolietot ar to, jūs nekad vēlas doties uz jebkuru citu teksta redaktors, jo jūs vienkārši ir tik daudz lietas pieejams jums šajās, bet tas notiek ļoti ilgs laiks, lai mācītos. Tāpēc varbūt jūs vienkārši vēlaties, lai piespiestu sev tieši tagad, lai pierastu pie tā, bet es teiktu, ka tas ir tā vērts. Bet tas ir grūti. Un tad Emacs. Es vienmēr cīnās Emacs, jo Es zinu, kā to darīt pilnīgi neko. Acīmredzot Emacs nav pēc noklusējuma uzstādīta uz ierīces. Mēs droši vien piebilst, ka kā noklusējuma instalācijām. Kad jūs mācīties vienu no VIM vai Emacs, tur ir nav pārliecinoša iemesla arvien mācīties no otras puses, bet tas ir pilnīgi atšķirīgs stils. Labi, tā ka ir rediģējot teksta failus. Mērķauditorija: Ja tu būtu iestrēdzis in Spars tieši tagad, kā darīt we-- ROB Bowden: Ir vairāki režīmi Spars, un tur ir viss konsultācijas par mācīšanās spars. Tātad, ja jums gadās būt ievietošanas režīmā, lai rakstīt tekstu, kuru jūs varat ieiet ka dažādos veidos, bet man ir, kā jums ievietošanas režīmu. Vai izkļūt no kāda īpaša režīms, kas tu esi, vienkārši izvairīties. Un jūs vienkārši bash Escape, lai saņemtu no jebkura ligzdotu veidu jūsu in. Tikko Labi, tagad es esmu atpakaļ normālā režīmā. Un tā normālā režīmā, resnās zarnas. Jūs redzēt, tas parādīsies apakšā. Un tad Q. Tātad q būs atmest, ja esat veicis izmaiņas, kas I-- es esmu veicis izmaiņas? Esmu veicis izmaiņas acīmredzot. Tātad, ja jūs esat veicis izmaiņas, tas būs teikt, jūs varat likt izsaukuma zīmi. Es esmu gatavojas, lai izsauktu to sprādziena. Tātad jūs varat ievietot aizliegumu attiecināt arī uz tikko atmest bez darīt kaut ko, vai resnās zarnas WQ glābs un atmest. Tātad w kopumā ir rakstīt. Tāpēc rakstīt failu. Es varu uzrakstīt un atmest. Vai jūs varētu būt vienkārši qx slam, q sprādziena vienkārši izkļūt no turienes neatkarīgi par visām izmaiņām, ko esat veikuši. Labi, tāpēc tagad pieņemsim go-- mēs varam izveidot failus. Sāksim noņemot failus. Un es ņemšu tikai mest vienā ātrs jaunu komandu, touch. Tik pieskarties foo. Touch bar. Pieskarties BAZ. Ja es ls, tagad mēs redzam, ka šie faili eksistē. Viņi pilnīgi tukšs. Tātad touch ir tikai viegli veids, kā vienu, [nedzirdama]. Divi, tehniski tikai uz valsti tas, tā atjaunina laikspiedogus. Tātad jebkuru failu, ka jūs izveidojat ir timestamp saistīti ar to. Tātad baz tika izveidota 14. septembrī 16:21. Tas tagad ir 16:22, tādēļ, ja Es touch BAZ atkal mēs redzēt, ka baz bija visvairāk nesen mainīts 16:22. Bet citādi es gandrīz nekad apskatīt laikspiedoliem par failiem. Tātad pieskārienu, šeit es esmu, tikai izmantojot tai izveidot daži ātri failus. Labi, tāpēc tagad RM komandu, ka mēs rūpējamies par to šeit. Un mēs varam rm BOO. Saka izņemt regulāri tukšo failu BOO. Un mēs varam rakstīt y, un tagad tas ir noņem. RM baz. Izņemt regulāru tukšu failu baz un veids n ne. Tagad tas nav noņemts. Tik bārs un baz joprojām pastāv. Foo ir pagājis. GABRIEL: Turpini runāt. ROB Bowden: Lieliski. Tik kaitinošas ziņu šeit, noņemt regulāru empty-- ko tu dari tur lejā? Izņemt regulāru tukšu failu. Tātad, ja mēs negribam būt bothered ar šo ziņu, mēs varam iemest šajā-f karogu, un tā tas ir spēks. Un tagad, ja es rm -F, tas nav gatavojas saka, jūs vēlaties, lai novērstu šo failu. Tas būs vienkārši darīt to. Un ls, es neredzu bar tur vairs. Tagad tas ir iespējams bīstama komanda. Tā ir tendence ne pārāk slikti. Mēs būsim atpakaļ otrs cik tā var iegūt ļoti bīstami. Un pieņemsim izveidot dažas temp direktoriju. mkdir, citu komandu. Tātad mkdir ir komanda kas padara direktoriju. Un tagad par Ls mēs redzam šo skaistu gaismu zils uzsvēra temp direktorijā. Es varu CD temp. Un es varu mkdir foo. cd uz foo. mkdir bar. cd uz bāru. Tātad mēs redzam, mēs varam viegli iegūt uz kādu diezgan dziļi ligzdošanai. Tagad, kā es varu noņemt direktoriju? rmdir. Tātad, ja es tikai taisni mēģināt rm, tāpat kā mēs to darījām ar regulāru failu, RM josla gatavojas saka nevar noņemt bar. Tas ir katalogs. Tur ir īpaša komanda noņemot katalogi, veida. Tik rmdir bar. Tagad josla ir pagājis. Labi, tāpēc rmdir es diezgan daudz nekad izmantot. Iemesls being-- tagad pieņemsim veikt regulāru failu joslu šeit. Tik rmdir boo. rmdir. Neizdevās noņemt foo. Direktorija nav tukša. Tātad, jūs nevarat izmantot noņemt dir uz katalogs, kas ir lietas tajā. Tātad jums ir dažas iespējas. Jūs varat iet uz šo direktoriju, izņemiet viss manuāli, un pēc tam nāk ārā un rmdir direktoriju. Tas, protams, izklausās kaitinošas. Ko darīt, ja tur ir tūkstošiem datņu tur? Nu, jūs varētu rm *. Mēs runājam par * sekundē. Tas būtībā nozīmē, visas lietas. Bet vēl labāk, tāpēc RM-r. Tātad RM -r-- ir daudz kontekstus, -r nozīmē rekursīvs ko mēs runājam par to, ko rekursīvas līdzekļi, kas vairākas nedēļas. Bet tas būtībā nozīmē traversa veselums šajā direktorijā un noņemt visu. Tātad rm -r foo gatavojas teikt pāraugt uzziņu foo? Jā. Noņemt regulāri tukšo failu foo / bārs? Jā. Noņemt direktoriju foo? Jā. Tātad tagad foo un viss laikā tas ir noņemts. Tagad, ka var iegūt īpaši kaitinošas when-- pieņemsim pieskarties 1, touch 2, pieskarties 3. Varētu būt visu ķekars failus. Ja es gribēju, es varētu izveidot tūkstošiem failu šeit. Un rm -r foo notiek būt diezgan kaitinošas. Jā, jā, jā, jā, jā, jā. Ar daudz vairāk failiem ātri redzēt, cik daudz reižu Es būtu rakstīt jā. Nu, mēs tikko redzējām pirms to, kā mēs varam atbrīvoties no nepieciešamības rakstīt jā, -F. Tātad mkdir foo foo cd touch 1 2 3. Labi, tāpēc RM -rf foo gatavojas akli noņemt foo pilnībā. Nē ātri. Neviens neko. Foo ir pagājis. Tāpēc man ir tendence izmantot šo komanda visu laiku. Tas nozīmē, ka tā ir ļoti bīstama komanda, jo, ja man kaut kas līdzīgs to, tas nebūs ātri jūs. Tas būs pagājis. Un tas notiek diezgan bieži, un pat augstākā līmeņa CS kursiem. Dažreiz mēs redzēsim kaut kur kāds saka, ka es nejauši mūsu RM rf-ed manas mājas direktoriju un visas manas P komplekta ir pagājis. Un tas ir postoši, bet tur nav trash var. Nav tur nekas lai jūs varētu iegūt. Tas ir tikai aizgāja. Vēl sliktāk būtu kaut kā RM -rf /. Tātad mēs tikko apspriedām ka saknes direktoriju. Tas pieder visas failus uz jūsu sistēmas. Lietas mēdz iegūt diezgan netīrs Noņemot lietas, piemēram, ls, un cd, un visi no tiem. Mērķauditorija: Kāda ir atšķirība starp RM, RF, un rm * ROB Bowden: Tātad RM * - ALLISON: Jautājums bija, kas ir Atšķirība starp RM, RF, un rm *. ROB Bowden: Tātad RM *. Star vispār līdzekļiem visu saturs šajā direktorijā. Cenšas domāt par citu veidi, parādot zvaigzni. Nu, zvaigzne patiesībā parasti nozīmē atbilstu jebkuru modeli. Tātad, ja man ir failu sauc dog1, touch dog2, pieskarties CAT1, pieskarties cat2. Tātad ls * 1 gatavojas drukāt CAT1 un dog1, jo tas zvaigzne var aizpildīt in with-- viens ir jābūt tur, bet zvaigzne var būt vai nu kaķis vai suns. Tas ir wild card. Tas ir vārds, es esmu meklē. Wild card. Vai es varētu ls suns *, un Es saņēmu redzēt dog1, dog2. Tātad tie ir uzskaitīti faili kas atbilst šo konkrēto modeli. Jūs varat izmantot ls šādā veidā. Ls * zvaigžņu spēlēs neko. Tātad, tas notiek, lai drukātu visu saturs šajā direktorijā jo visi no tiem atbilst. Tas nav gatavojas drukāt jebko augšējos līmeņa katalogi. Ja man ir sub direktorijā, foo, un pieskarties 1 2 3-- tāpēc tagad, ja rm * zvaigzne, noņemt CAT1, cat2, dog1, dog2. Nevar noņemt foo. Tas ir katalogs. Tāpēc zvaigzne paplašina visiem failus direktorijā. Tātad tehniski RM * ir tāpat kā teikt RM CAT1, cat2, dog1, dog2, foo. Tā rm -rf, tehniski zvaigzne būtu paveikt to, ko mēs gribam, bet RM -rf-- ja es iet ārā no šīs direktoriju, RM -rf temp, kas notiek, lai iet uz temp un rekursīvi noņemt visu. Tātad zvaigzne ir šķirts ka Saprotams pēc-- tāpēc šī lieta ka es esmu darbojas, šī lieta kas ir liekot mani komandas un tad izpildot un darot viņiem, es aicinu šo manu apvalks. Un tā tas apvalks ir pati programma. Un, ja es gribēju, es varētu palaist / bin / bash. Apvalks sauc bash. Un tagad mēs pamanām kaut ko ir nedaudz mainījies, un tas ir tāpēc, ka maniem iestatījumiem apvalks ir nedaudz atšķirīgi. Bet tagad es esmu tehniski darbojas apvalks manā sākotnējā čaulā, un es varu iziet, ka Shell, un tagad Es esmu atpakaļ uz manu augstākā līmeņa čaumalu. Kā pateikt mērķis ka is-- zvaigzni. Tāpēc zvaigzne ir kaut kas ar bash saprot. Tātad rm -rf, -rf karogs ir tikai par RM saprot. Tā zina, ka tad, kad jūs iet -rf kas jūs to vēlaties rekursīvi noņemt visi faili bez brīdināšanas. Zvaigzne ir kaut ko saprot ar bash, ka tad, kad jūs sakāt rm *, bash nav gatavojas teikt hey rm *, izņemiet zvaigzni. Bash gatavojas teikt RM * noņemt CAT1, cat2, dog1, dog2. Tas automātiski gatavojas paplašināt visus failus direktorijā. Un tāpat Tilde ir cits simbols, kas bash saprot. Kad jūs sakāt cd ~, bash paplašina ka jūsu mājas direktorijā. Citi jautājumi līdz šim? Labi, tāpēc mēs esam gatavojas sākt iet ātri. Tab pabeigšanas. Vienkārši mest to, kas tur. Daudzi cilvēki nav realizēt šo pastāv. Tātad, ja es tipa cd Dow, es vēlas iedziļināties lejupielādes. Man nav nepieciešams rakstīt nloads. Es varu tikai hit Tab. Tātad, tas atzīst, ka Dow ir priedēklis, kas nesakrīt neko cits šajā direktorijā, tāpēc tas tiks pabeigts, ka jums. Tagad es varu ieiet. Es arī to, ka rekursīvi. Tik mkdir foo. Iesim uz foo. mkdir bar. Tā iet atpakaļ uz manu mājas direktoriju, es redzu lejupielādes. Tagad hitting cilnes atkal, automātiski dodas aizpildīt foo. Tas ir vienīgais katalogs. Atkal trāpot cilni, automātiski gatavojas aizpildīt bar. Tāpēc tagad es esmu (~ Lejupielādes / foo / bar). Tātad šis tab pabeigšanas, kad es saņēmu darba laika, un es esmu stāv kāds ir pleca, un viņi gatavojas rm D-O-W-N-L-O-A-D-S, es mirst. Tikai tab, tab, tab, tab. Tāpēc noteikti izmanto tab. Un tāpat uz augšu un leju, daudz cilvēku tikai, ka notika nekad hit augšu un uz leju. Tas būs iet cauri iepriekšējā komandas, tāpēc, ja jūs vienkārši skrēja kaut ko, un jūs vēlaties, lai palaistu to vēlreiz, vienkārši turēt līdz pat jums to. OK. Tik ātri, dažas citas lietas. Iesim atpakaļ temp. Pieņemsim izveidot dažus failus. Tātad šeit, es esmu tikai gatavojas uzskaitīt dažus vārdus. suns, kaķis, meow. Darīsim suns, zivis. Tāpēc tagad rep ir ļoti noderīgas komandas, kas jums izmantot, lai meklētu visā failus konkrētu tekstu, un tehniski jūs varat darīt patiešām sarežģītas izteiksmes to saskaņot. Tātad šeit, ja es grep, un kādi es gribu, lai meklētu? Pieņemsim, ka es esmu meklē kaķiem, un Es gribu, lai meklētu visus šos failus. Tātad, kā es varu darīt visus šos failus? Zvaigzne. Tātad vienā failā, man ir kaķis. Es, iespējams, varētu būt sauca kaut ko labāku, jo tas izskatās līniju numuri vai kaut ko. Bet vienā failā Man ir līniju ar kaķi. Failā divas man ir līniju ar kaķi. Tāpēc tagad es varu meklēt iekšpusē failu vienā un skat oh yeah, ka fails tomēr ir kaķis. Paziņojums fails trīs nebija saskaņota tāpēc, ka kaķis nav tur. Es varu grep par Meow. Tikai failu divi ir meow. Tāpēc tas, jūs varat apvienot, atkal, ar r, kas kā es teicu iepriekš bieži ir rekursīvs. Un tā es varētu nākt klajā šeit, grep-r jebkuram piemēram of-- pieņemsim rediģēt tas viens vienkārši mest kaķis tur. Tātad grep -r jebkuram gadījumam kaķis visā šajā direktorijā. Un tas būs rekursīvi iepazīties apakšdirektorijas. Tātad Baz, tur ir kaķis. Jo temp / 2, tur ir kaķis. Un temp / 1 tur ir kaķis. Tā ka ir meklējot laikā failus. Tagad jūs varat izmantot arī atrast. Un tā atrast ir tieši par meklē failus ar konkrētu nosaukumu. Tā ļauj veikt dažas vairāk. Iesim uz lejupielādes. Pieskarties dog1. Pieskarties cat2. Pieskarties cat_dog. Pieskarties catcat. Tāpēc es gribu, lai atrastu visu failus ar suni vārdā. Tāpēc atrast, un visilgāk Šoreiz es nekad atcerējos kā atrast strādāja, līdz es beidzot lasīt kaut ko, kas padarīja to tik skaidrs. Tāpēc atrast, automātiski rekursīvs. Jums nav nepieciešams iziet -R. Tāpēc atrast dot. Mēs neesam runājuši par dot vēl. Tā dot dot vienmēr ir viena direktoriju augšu. Dot vienmēr nozīmē pašreizējā direktorijā. Lai es varētu rm -r aplītī tāpat es varu rm -rf *. Galu galā viņi paveikt pats. RM -rf dot gatavojas noņemt visa pašreizējā direktorijā. Labi, ko es nevēlos darīt tur. Bet atrast dot. Tātad rekursīvi meklēt pašreizējā direktoriju, un tagad viss Pēc tam ir ķekars karogiem, kas jūs izmantot izslēgt lietas no atgriešanās. Tāpēc atrast dot atgriež visu, kas to var atrast no pašreizējā direktorijā. Tie ir visi faili rekursīvi meklēšanu. Redzēsim, daži no tiem sekundē. Bet, ja jūs domājām, kā es daru ka tik Command K, vismaz manā termināļa Mac attīra to. Kontrole L parasti notīra tas par jebkāda veida termināla. Jūs varat arī ierakstīt skaidrs. Un, ja jūs kādreiz nokļūt uz dīvaini scenario-- tas notika ar mani pāris LAIKU_ kur krāsas jūsu uzvedņu visi messed up, vai jums nevar redzēt neko tiek drukāti, kad jūs rakstāt, jo dažreiz patīk fona krāsa ir iestatīts tāds pats kā priekšplāna krāsu un tagad jūs nevarat redzēt fontus. Reset ir kaut kas vienkārši nodzēš Jūs noklusējuma melna fona, balta priekšā, vai kāds jūs, kas viņiem. Tātad, ja mēs būtu? Atrast dot. Tāpēc tagad viss pagātnē šis punkts ierobežo rezultātus kaut ko, kas atbilst dota modelis. Tātad, šeit es gribu, lai meklētu viss ar nosaukumu kaķis. Man nekas. Kāpēc tā ir? Nu, es esmu tikai meklē kaut kas ar tieši tādu nosaukumu kaķis. Ja es gribu, lai meklētu kaut ko ka ir dažas modelis, un cat-- pēdiņas tehniski nav vajadzīgi, bet es esmu throwing tos tur. Tāpēc tagad tā konstatē catcat arī tāpēc, tas ir vienīgais, kas ir daži patvaļīgi modelis seko kaķis. Es varu likt kaķis *, un tagad atrast catcat, cat_dog, cat2, jo tie ir visas lietas, ar kaķi sākumā, kam seko kaut ko. Jūs varat apvienot to. Ja jūs vēlaties, lai meklētu visiem C failiem ka jums ir, jūs varētu darīt * .c. Mēs esam blah.c šeit. Tā ka ir atrast darbu. Jūs varat meklēt. Tā ir visu ķekars karogiem turpmākiem ierobežojumiem. Un viens no tiem, teiksim -D. Tik novecojis. Ak, tas nav tas, ko es gribu. Nav -D. Tips d. Tāpēc atrast dot - tipa d. Tātad, kas tas vienkārši darīja ir es esmu meklē visus failus pašreizējā direktorijā ar a-- d stendi directory-- katalogs veids. Tas atgriež visas direktorijas pašreizējā direktorijā. Un F tips ir viss regulārs failus, tie visi tiek katalogi. Tātad tas ir tikai piemērs citiem veidiem, kā jūs var ierobežot meklēšanu otru nekā tikai faila nosaukumu. Tas ir bijis 30 minūtes. Joprojām turpinās. ALLISON: Es brīze caur. Tas būs labi. ROB Bowden: Tātad dažas citas lietas. Tagad sprādziena, izsaukuma zīmi. Tā, ka kopumā means-- labi, pieņemsim redzēt piemēru. Tātad! F, ko tas gatavojas darīt? Nu tas, šķiet, ir atkārtots atradums dot -Type f. Kas par! G? Ka tikai grep -r kaķis *. Tātad sprādziena jūs varat izmantot, lai atkārtot Nesen veikts komandu. Tātad, ja es tipa! GRE, tas notiek, lai atkārtoti palaist komandas, kas sākās ar gre visvairāk nesen. Un jūs varat redzēt visus šos komandas ar vēsturi. Tā vēsture. Tie visi ir komandas Esmu palaist šodien. Un labi, tas nav burtiski tikai šodien, bet es esmu tikai izmantojis šo ierīce kā šodien. Tā ir jūsu veselums vēsturi jūsu bash shell, izņemot tā izcirtņi off kādā brīdī. Mērķauditorija: Kas notiek, ja jūs darāt vēsture [dzirdams] komanda, un kļūda rezultātā joprojām drukāt the-- ROB Bowden: Jā, ja ir kļūda vienā no šīm commands-- tāpēc teiksim, ka ir kļūda komanda nav atrasts. Joprojām parādās vēsturē. Labi. Citi jautājumi par kaut ko? Tā ka ir sprādziena. Tagad, patiešām noderīga komanda, cilvēks. Lai dod jums rokasgrāmata par attiecīgo komandu. Tātad, teiksim cilvēks ls, tāpēc tas rāda man ls. Tajā uzskaitītas direktoriju saturu. Un tas ir, ja es redzu, ka tur ir šie dažādie karogi, kas pastāv. Tā mēs redzam, ka ls-l eksistē ja mēs lasām, ka. ls-l dod man šo pilnu sarakstu katalogs ar kam pieder failu, faila lielumu, modificēts laikspiedolu. Tātad ls -a ir vēl viens, ka jūs varētu faktiski izmanto nedaudz biežāk. -AL ir mana visbiežāk karogs pagājušā ls. Tātad -a, paziņojums tur ir daudz vairāk failus nekā tikai ls. ls -a. Kas ir kopīgs visām šīm lietām? Viņi sāk ar punktu. Tātad tas ir konvencija Linux, kas failus, kas sākas ar punktu, ir slēpta. Tātad, tas tikai nozīmē, ka Kad mēs tikai taisni ls, vai arī mēs esam meklē šo direktoriju, izmantojot meklētājs līdzvērtīga vai Windows Explorer līdzvērtīga, ka mēs negribu redzēt šos DOT failus. Viņi vienkārši piesārņo skatījumu uz lietām. Tāpēc viņi ir paslēpti ja vien jūs speciāli lūgt tos ar kaut ko līdzīgu -a. Tāpēc es varu cd uz .local, un es redzu ka pati katalogs ar dalīta direktoriju, un lietojumprogrammas, un blah blah blah. Tātad dot, failus, tie vienkārši slēpta. Labi, lai citi svarīgi tiem. Man ir pāris varu izlaist. Pieņemsim tikai reālu ātri runāt par fails redirection lietas. Tātad tur ir viss komplekss sērija lietas jūs varat darīt ar tiem, bet tikai redzēt tos, teiksim, atbalss. Citu komandu. Tiešām mēms komandu. Visiem tas ir drukas ko man pateikt to. Tik echo sveiki. Tas tikai piebalsoja sveiki uz ekrāna. Hello pasaulē. Atbalsis sveiki pasaule. Tātad viena komanda vai viens simbols, kas bash saprot tas ir lielāks nekā simbolu, un ka ir izeja uz failu simbolu. Tātad, ja es izejas to foo, tur tagad fails sauc foo, iekšpusē kas ir sveiki pasaule. Tātad, ievēroju, ka tad, kad es atkārtoju hello world cauruli foo, tas nav echo Hello pasaulē. Tā vietā tika laists failu foo. Un citu komandu tikai mest to pie jums, kaķis. Tas ir vienkāršs veids, kā tikai pilnīgi uzskaitīt faila saturu tā, ka man nav, lai atvērtu teksta redaktoru, lai to aplūkotu. Tātad saturu foo fails ir sveiki pasaulē. Un es varētu kaķis blah.c, saturs ir tas. Atkal, tās ir komandas, kas, neatbilst sagaida esat tos visus iegaumētu. Ideja ir esat redzējuši tos. Varbūt jūs strādājat kaut ko, un jūs esat piemēram, es esmu slims atvērt šo failu. Es vēlos es varētu paskatieties pie satura nekustamo ātri. Jūs varētu darīt, tad atskatīties un teikt oh I atceros kaut ko līdzīgu kas pastāv, un tas ir kaķis. Tāpēc, ka gatavojas failu. Tagad nav īsti labas piemērs lasot no faila vēl. Kas ir kaut kas notiek kaut kas no standarta in? Jebkura vienkārši Linux komandu? Kad mēs uz to, pēc pāris nedēļas visi piece-- labi, Šonedēļ jums ir gabals, kur jūs sākt lietot ieguldījumu no lietotāja. Un tā parasti rakstāt ka ieejas pie klaviatūras. Tā vietā, rakstīt, ka ievade pie klaviatūras, jūs vietā varat caurules no faila tā, ka tad, kad jūs Mario, ./mario, caurules no jebkurā failu, un kas notiek, lai palaistu mario programmu. Nav gaidījis ievadi at tastatūra, bet tas ir tikai gatavojas lasīt līnijas no foo failu. Tāpēc lielāka par foo nodod to foo failu, un mazāk nekā foo aizņem stuff no foo failu un izmanto, ka ieguldījumu šai programmai. Un tikai, lai redzētu to, mēs varētu arī atbalss foo bārs baz, un tad tā vietā, viens lielāks nekā, pieņemsim do divi uz foo. Ko tas dara? Tas tikai appends lietai. Tā vietā pamanīt, ja es atkārtoju blah stāšanās foo un tad kaķis foo, tas ir tikai blah. Tātad, ja jūs izeja uz failu, to pilnībā pārraksta šo failu. Ja jūs vienkārši vēlaties pievienot, dubultā [? greiders. ?] Un pēdējais ir caurules. Caurule kļūst daudz sarežģītāka, kad tas aizņem izejas vienu komandu un baro to uz nākamo komandu. Tāpēc daži kopējā lieta, vēsture. Tātad, ugh, es nevēlos, lai apskatīt šo. Parādiet man visas komandas manā vēsturē kur es grep-ed kaut ko. Nē, tas ir mulsinoši. Parādiet man visas komandas, kur es atrast. Visu atrast komandas es kādreiz skrēja. Tā vēsture. Tagad vēsture izejas uz ekrāns šo komandu sarakstu, bet es negribu izejas to uz ekrāna. Tā vietā, lai es dodos uz caurules to uz grep. Tāpēc pieņemsim grep visiem gadījumiem atrast. Tāpēc tagad, nevis grep ņemšanas ievadi, nevis of-- grep spēj rīkoties kā input-- mēs esam izmantojot grep nedaudz atšķirīgi šeit. Tātad nevis rakstīt sarakstu lietas, ko mēs vēlējāmies, lai meklētu un teica grep veic kā priekšnodokli. Tātad, ja es vienkārši grep atrast, to gaida, lai es varētu rakstīt lietas. Tātad kaķis sveiki atrast. Sveiki. Atrast. Paziņojums katru reizi, kad es rakstīt atrast tā atzīst, ka es drukāti atrast. Tā vietā, lai šo, būs meklēt failus uz Atrast. Tātad vēsture tagad gatavojas izejas sarakstu ar visiem komandas. Mēs liekam šo produkciju, un mēs esam barošanas to grep, un tāpēc tas ir spitting veic visi gadījumi atrast. Iemesls, kāpēc es teicu, ka gribētu būt mulsinoši ir, ja I-- tas joprojām ir mulsinoši. Ja es grep par grep. Pamanāt, ka tas ir diezgan daudz vienmēr parādot komandu es tikko skrēja, jo šo komandu pati ir grep iekšpusē no tā. Labi, lai kādi jautājumi par kaut ko? Un es ņemšu nodot to vairāk šajā brīdī. Cerams, ka tas ir jauki pārskats par visām komandām ka jums nav nepieciešams, lai būtu iegaumējis, bet tie veido cieta 95% no tā, ko es darīt komandrindas. Tāpat jāpatur prātā, ka komandrindas pati par sevi, bash ir programmēšanas valoda, un tad, kad jūs nokļūt uz leju, lai tā, jūs varētu vēlēties darīt tiešām sarežģītas lietas. Un tā tas ir lietas, piemēram, cilpas, un IFS, un visiem tiem, ka jūs gatavojas, lai pierastu pie ar savu programmēšanas valodām. Bet tas ir ārpus joma šajā sadaļā. Labi, tāpēc nav jautājumu? ALLISON: nav? GABRIEL: Vai jūs plānojat kuri paredzēti, ALLISON: Es varu darīt to par mīnu, ja vēlaties. Mēs varam redzēt, kas notiek. ROB Bowden: Off Allison. ALLISON: Woo. Tu esi grūti rīkoties, lai sekotu, Rob. Vai tu gribi, lai pārslēgtos ar jums? Vai jums, OK. Es esmu gatavojas izmēģināt un ne gluži tik garš tur. Let 's redzēt, ja tas būs darbotos tā, kā es to vēlaties. Varbūt? Haha! Jā. Tāpēc es esmu tikai gatavojas ļoti ātri iet izmantojot mainīgo, cilpām, conditionals, un mazliet par kompilatoru. Ja jums ir jautājumi pie jebkurā laikā, lūdzu, pārtrauciet mani. Šie puiši atgādinās man atkārtot Jūsu jautājums, ja es aizmirstu, bet nevajadzētu būt pārāk slikti. Tātad mainīgajiem, jā. Mums nav viens no jūsu Momentloterijas gabali šeit. Es esmu pārliecināts, ka lielākā daļa no jums, ja jums bija kaut kādas spēles veida ka jūs izveidojāt ar Scratch, jums bija sekot kaut ko līdzīgu rezultātu, vai laika, vai kaut kas tamlīdzīgs. Tātad tie spilgti oranžas gabali, ka mēs redzam, ka ir tikai Scratch forma mainīgie, un jūs noteikti būt izmantojot mainīgos Visā savas programmas. Ja jūs neesat, es neesmu īsti pārliecināts, ko jūs darāt. Bet anyway, liela lieta, Definējot mainīgos. Ar C katram mainīgajam ir ir deklarēta veids, tāpēc es tev ļoti Kopumā viens augšpusē. Tātad jums ir jūsu rakstīt un tad neatkarīgi Jums izlemt, lai izsauktu savu mainīgo. Tātad šajā gadījumā, veidu Jūsu mainīgo sarakstā. Mums ir trīs piemērus. Char dažu pakāpē, no A, kas ir tas, ko Es esmu pārliecināts, ka jūs visi vēlamies nokļūt šajā klasē. Jūs varat noteikt vairākus mainīgos lielumus par vienu līniju tik ilgi, kamēr viņi visu to pašu veidu, kas ir mūsu otrais piemērs tur kur jums ir trīs mainīgie lielumi, x, y, un z. Viņi visi pludiņi. Un tad jūs varat arī, jo šis pēdējais piemērs ar int rezultātu un numurs Komandu, varat inicializēt tos turpat. Tātad, pa vidu, piemēram, ja mēs tikko ir iegremdēšanu X, Y, un Z, tiem, kas vēl nav inicializēts. Viņiem nav vērtības. Vai tie ir atkritumu vērtības. Un, ja jūs mēģināt, un izmantot tos, kompilators kliegt pie jums. Jums ir gan pasludināt un inicializēt jūsu mainīgie. Tātad šo pēdējo, mēs darām abi. Mēs pasludina mainīgie no score un komandu skaits, un mēs inicializēšana viņus, sniedzot viņiem savu sākotnējo vērtības 7 un 4 attiecīgi. Atdzist. Ikvienam labs? Awesome. Labi, tāpēc daži konvencijas. Ja jums puiši ir izlasījis caur stilā 50, šie ir tikai lietas, ko mēs gribētu, lai Jums īstenot savu stilu. Tik nozīmīgas nosaukumi. Ja jūs sākat aicinot lietas tikai x, y, z un, it īpaši, kā jūs nokļūt ilgstošāku programmas, jūs esat droši vien sajaukt sevi un būt patīk tas, ko tas ir mainīgs atsaucas. Man nav ne jausmas, ko tas nozīmē. Tātad, ja tas ir domāts, lai noturētu rezultāts, to sauc par rezultātu. Ja tas ir domāts, lai noturētu kādu atbildi vai to izraisīt, arī tā nosaukumu, piemēram, ka. Attiecībā uz cilpas, kas mums būs nokļūt uz nākamo slaidu, vienu burtu mainīgie ir labi. ROB Bowden: I, j, un k tikai priekšstati par cilpas ka ikviens sagaida, ka tās saukt i, j un k. Jūs varat zvanīt them-- redzu rindu kolonna vai rinda zvans dažreiz divas ligzdotu cilpas, un tas ir arī sava veida standartu. Bet i un j ir pilnīgi saprotams. ALLISON: Jā, es un j tu esi pilnīgi naudas sodu. Skaidrības labad, piemēram, daži no jūsu P komplekti, tas varētu jēgas vairāk aprakstošie lietas tur vienkārši sekot to. Bet es domāju, ka es, j, k un es domāju, ka lielākā daļa no mums visiem izmantošanu. ROB Bowden: Ar šiem konvencijām, tāpēc stils ir svarīgi. Tā ir viena no četrām asīm uz kuru jūs šķiro, un tas ir tik viegli vienkārši iet pa Jūsu P noteikti beigās un pārliecinieties ka nav stilistiskās kļūdas. Tātad, pārliecinieties, ka jūs esat tabbing pareizi. Pārliecinieties, ka jūsu mainīgie tiek nosaukti. Atstāt dažas piezīmes. Tas ir ļoti viegli, lai saņemtu šos punktus. Jums nav jādomā par kaut kas, lai saņemtu šos punktus. Jums nav izdomāt neko. Tas ir tikai padarot to izskatās diezgan. ALLISON: Patiesībā, mēs ir stils 50, kas jums pateiks, kur jūs messing uz augšu, ja jūs messing up par stilu un jums pateiks tieši to, ko jums ir nepieciešams noteikt un kā jums ir nepieciešams salabot. Tas ir arī vienkārši labi pieminēt ka tas ir, protams politika ka, ja jūs esat birojā stundas un jūsu kods ir haoss, mēs varam atteikties palīdzēt jums, līdz tas izskatās nicer. Tātad, sākt labi, saglabāt konsekventu stilu, jūs arī tikai gatavojas darīt jūsu dzīve kopumā daudz vieglāk, ja jūs mēģināt iet cauri atkļūdošanas. Ja jūs mēģināt izdomāt kur jūs trūkst cirtaini lencēm un tie ir visas vietas, tu esi vienkārši padarīt savu dzīvi grūtāk. Tātad jāsaskan ar stilu. Es apsolu, ka būs padarīt jūsu dzīvi vieglāku. Tas būs padarīt mūsu dzīvi vieglāku. Ikvienam būs daudz laimīgāki. Un tas, ko jūs vēlaties. GABRIEL: Jūsu pakāpe būs augstāka. ALLISON: Jā, un jūsu pakāpes. Ja jūsu TF ir tāpat kā jūs, mēdz būt labvēlīgs. Visas tiesības, un tad tikai Otrs punkts šeit. Konsekventa initializations. Tā kā mēs redzējām, jūs varat paziņot un inicializēt lietas. Vairāki mainīgie uz vienas līnijas. Viena lieta, ko mēs vēlētos jums nav to darīt, ir atzīt dažus mainīgos un nevis inicializēt tos pats līnija, kas jums ir inicializēšana citus. Tātad, ja tas izgatavots jēgas nekāda, mums ir piemērs šeit kur mēs esam pasludinot Ints mainīgajiem kazarmas dimes un pennies, bet ceturtdaļas un pennies nav sākotnējo vērtību. Mēs neesam inicializēts tos, bet tieši pa vidu tur mēs jau inicializēts dimes līdz 0. Tātad vai nu darīt ceturtdaļām, dimes, pennies. Vai arī ceturtdaļas vienāds 0. Dimes vienāds 0. Pennies vienāds 0, vai kāds šie sākotnējās vērtības. Liela lieta ar stilu, jābūt konsekventiem. Ja šaubāties, jābūt konsekventiem. Bet sekot mūsu stila rokasgrāmatu too. Atdzist. Ikvienam labs tur? Mērķauditorija: Kur ir stila rokasgrāmata? ALLISON: stila rokasgrāmata ir on-- kas ir mājas lapa? GABRIEL: Es domāju, ka tas manual.cs50.net/-- ALLISON: Style? GABRIEL: Stils. Yep. ALLISON: Jā. Tātad jautājums, kur ir stils 50. manual.cs50.net/style. Jā? Mērķauditorija: Ja mēs esam definējot mainīgie, tas ir OK ja mēs, piemēram, [dzirdams] patīk int rezultāts un tad int mērķis. Tātad Jūs teiktu, ka tagad mēs esam dabūja definēt tos kopā? ALLISON: Tātad, vajadzētu Jums ir lieks kods kad esat definējot mainīgie, piemēram, int rezultātu un Nākamajā rindā int spēli? ROB Bowden: Ir noteikti gadījumi, kad lieks kods ir slikti. Es neuzskatu ka lieks kods. Es gandrīz nekad deklarēt vairākas mainīgos lielumus par to pašu līniju jebkad. Un, ja kaut kas, tas ir tāpēc, ka parasti es atstāt kādu komentāru veida izskaidrot, ko mainīgais ir. Tāpēc es saku int rezultāts slash slīpsvītru. Seko neatkarīgi. Kopumā slash slīpsvītru. Tātad, tas ir daudz, Grosser šādā veidā lai viņus visus uz vienas līnijas. Es vienkārši nekad viņus uz vienas līnijas. ALLISON: Es jūtos kā tas ir personīgā izvēle šajā brīdī. Mērķauditorija: Vai tas iet uz cilpas un stuff too? ROB Bowden: Like iekšā? Tāpat kā int i vienāds 0 komatu garums ir vienāds ar kaut ko? Ka jums nav izvēles. Ar par cilpas inicializācijas part-- lai jūs varētu būt tikai redzējuši int i ir vienāds ar 0 semikolu i mazāk nekā kāds semikols i plus plus. Ka int i ir vienāds ar 0, tehniski tas ir iespējams arī darīt to, ko mēs redzējām pirms ar komatiem sintaksi. int i ir vienāds ar 0 komatu J ir vienāds ar 3 komats k vienāds 5. Jums nav izvēles sadalīt ka līdz vairākos līnijas, un tas ir standarta. Redzot to tur ir labi. ALLISON: satriecošs. Nu, ērts segue uz cilpas. Tātad yeah, šeit mums ir daži piemēri no cilpas, ka jūs guys redzēja Scratch. Un, protams, visi šie var vienkārši pārbūvēts C. Un viņi būtībā ļauj jums atkārtot kādu sadaļu kodu līdz noteiktā stāvoklī ir izpildīts, ko mēs nokļūt labās runā par cilpas ar conditionals. Tātad mums ir trīs galvenie veidi. Jo, kamēr, un to brīdi, kurā mēs visi iet cauri tieši tagad. Tātad vispirms viens ir cilpas. Tātad kāda nosacījuma, izpildīt šo bloku kodu. Mums ir šo atdzist maz diagramma šeit apakšā. Bet būtībā jums ir Jūsu par to, ka pirmajā rindā jūs gatavojas inicializēt jūsu mainīgie. Tā kā mēs runājām, i ir ir vienāds ar 0 vai i ir vienāds ar 10. Kāds jums ir nepieciešams, ka mainīgais būt tas ir būs inicializēts tur, deklarēti un inicializēts ar kādu vērtību. Tātad, tad mums ir dažas nosacījums, kas notiek, būt pārbaudīt mūsu mainīgais pret kaut ko. Tātad gadījumā tipisks gadījums, kad varbūt jūs vēlaties šo sadaļu kodu izpildīt piecas reizes. Tātad mēs ir int i ir vienāds ar 0, un mēs gribu, lai to, kad es ir mazāks par 5. Tāpēc šis nosacījums ir tikai gatavojas pārbaudīt, ka katru reizi. Ja šis nosacījums novērtē taisnība, tas ir gatavojas palaist kodu, kas ir tieši Ko tas maz diagramma rāda. Un tā tas izpilda to. Tajā atjaunināti mainīgo, kas ir tas, ko mēs redzam pēdējā daļa no mūsu FOR cilpa inicializācijas tur. Tā tas būs tikai glabāt darot līdz brīdim, kad šis nosacījums nav izpildīts, un tad tas izies cilpa un turpināt pārvietojas uz ar pārējo savu programmu. Ikvienam labs tur? Atdzist. Tātad, šeit ir piemērs, ļoti līdzīgs lai kaut ko es tikai runāju par. Tāpēc mēs vienkārši vēlamies, lai drukātu tas ir CS50 10 reizes. Tātad jūs redzat, šeit mums ir Mūsu, un pēc tam mēs inicializēt mainīgo i ir vienāds ar 0. Mūsu stāvoklis ir pārbaudīt ka tas ir mazāk nekā 10. Tātad novērtēt taisnība, kad mēs pirmo reizi sākuma, un pēc tam atjaunina mūsu mainīgā katru reizi, kad tā faktiski izpilda un izdrukā tas ir CS50. Un beigsies pēc 10 reizes. Atdzist. Tāpēc, kamēr cilpas ir pat blakus. Un, kā jūs redzat šeit, mums vienkārši ir daži gan šis condition-- jautājums? Mērķauditorija: Kā es varu lēkt faktiski tikai ne viens numurs, bet divi skaitļi [dzirdams] i plus plus plus? ALLISON: Tātad jautājums bija, kā jūs varat atjaunināt savu mainīgo vairāk nekā viens laikā. Tāpēc es plus plus būs update pa vienam katru reizi. Ja jūs vēlētos, lai to aktualizēt divi, jūs varētu man plus vienāds 2. ROB Bowden: Vai esat redzējuši plus vienāds lekciju vēl? Mērķauditorija: [dzirdams]. ALLISON: Tas ir efektīvi pats kā es vienāds i plus 2. Tātad, tas notiek, lai to un atjaunināt ar divi katru reizi. Plus ir vienāds ir tikai kaut mēs saucam sintaktisko cukuru. ROB Bowden: Jā, tie eksistē diezgan daudz visi aritmētiskās darbības. Tāpēc es reizes vienāda ar varētu skaitu dubultot. j sadalīt vienāds ar 3 ir tāda pati, kā j vienāds j dalīts ar 3. ALLISON: Vai mīnus vienāds 2 būtu Samazināt i ar divi katru reizi. ROB Bowden: Pat mod vienlīdzīgi. Neesat redzējuši Bitu līmeņa operatoriem, bet caret vienāds un & zīme vienāds, visiem tiem pastāv. ALLISON: Tik daudz reižu, jo īpaši ar savu pirmo pāris P komplekti, jūs droši vien palielināšanai ar viens, tāpēc es plus plus, j plus plus ir visas lietas, jūs dodas mēdz būt, izmantojot. Bet tas atjauninājums nosacījums ir pilnībā jūsu kontroli. Jūs varat atjaunināt jebkādā soli vai jebkādā veidā jūs nolemjat. Varbūt jūs pat vēlaties, lai to izlases numuru reizēm. Bet jā, tur ir daudz lietas jūs varat darīt ar to. Jūs esat ne tikai i plus plus. ROB Bowden: Vienkārši, lai jums zinu, tas pastāv, bet arī pastāv citā formā, plus plus i. Tātad, ja jūs kādreiz meklējot tiešsaistē un gadās redzēt plus plus i, diezgan daudz nozīmē to pašu. ALLISON: Cool. Labs? Awesome. Tāpēc, kamēr cilpas. Ļoti līdzīgs. Jums ir dažas stāvokli. Galvenais, lai paziņojuma šeit ir vietā, trīs dažādas daļas izveidot, mēs esam viens. Mums vienkārši ir dažas stāvoklis kas ir tiek pārbaudīta. Un tādā pašā veidā, tik ilgi, kamēr šis nosacījums novērtē uz true, kods ir gatavojas palaist. Un, ja tas ir viltus, it beigsies, pārvietot uz nākamo daļu no jūsu programmas. Tātad, tas ir sava veida like-- kas ir Labs piemērs pārbaudes kādu normālā stāvoklī? GABRIEL: Kaut taisnība. ALLISON: Jūs varētu darīt, bet taisnība. Nu, 1 ir vienāds ar 1. ROB Bowden: Jūs varat darīt while-- tikai tā vietā, izmantojot cilpas, jūs vienmēr varat kods cilpa brītiņa cilpa, so i ir lielāks par 0 vai Kamēr es mazāk par 10. ALLISON: satriecošs. Un tad mēs esam darīt, kamēr cilpas, kas ir liels lietotāju izvērtējumu, kur Jūs vēlaties saņemt kaut ko no jūsu lietotāja, redzēt, ja tas ir derīgs, un pēc tam turpināt no turienes. Tātad viena no lietām, kas jāzina, ir ar darīt, kamēr ir, ka tas notiek, lai izpildīt, un tad tas tiks atkārtoti izpildīt ja šis nosacījums ir izpildīts. Tātad, iespējams, labākais veids, kā to izdarīt ir tikai, lai redzētu piemēru šeit. Tā kā es tikko minēju, lietotājs validācija ir patiešām useful-- vai arī whiles ir patiešām noderīgs ar lietotāju izvērtējumu. Tātad tas ir tikai gatavojas atkārtoti liks kādu lietotāju līdz brīdim, kad tās nonāk pozitīvu skaitli, kas varētu būt noderīga Jūsu P komplektu šonedēļ. Un tā šajā gadījumā, kad mēs Sākotnēji palaist šo programmu, tas notiek, lai drukātu ievadiet pozitīvu skaitli. Tas notiek, lai saņemtu kādu ieeja no lietotāja, un tad tas notiek, lai pārbaudītu ka ieejas pret stāvoklī ka jūs esat noteikti to. Tātad šajā gadījumā tas notiek, lai pārbaudītu. Tas notiek, lai teikt, OK, ir mūsu ieguldījums negatīvs, vai tas ir 0 vai negatīvs, kas būtu nederīgs. Tātad tas atkal ātri. Jautājums? Mērķauditorija: Vai šis ir tas pats, tad kā kamēr cilpa, ja jūs vienkārši nokopēt šo kodu un nodot to [dzirdams] kamēr cilpa? ALLISON: Tātad jautājums bija būtu tas būtu tas pats, kā tikai uz brīdi cilpa ja mēs vienkārši kopēt kamēr cilpa iepriekš. Tātad šajā gadījumā, Jūsu kamēr cilpa ir gatavojas pārbaudīt stāvokli pirmās. Tātad šajā gadījumā, ja mēs centāmies rakstīt kā tikai kamēr cilpa, tā teiktu laiku ievade ir mazāk nekā viens. Bet mums nav savu ieguldījumu to. Mērķauditorija: Ja jums [dzirdams] kamēr cilpa, ieskaitot šo kodu, bet tad tika galā kodu virs kamēr cilpa arī. Jūs tikko bija šo kodu [Dzirdams] kamēr cilpa. ALLISON: Būtu tas pats, jā. Lai jūs varētu vienkārši write-- tā vietā, do-- jā. GABRIEL: Bet tas ir vairāk elegants. ALLISON: Jā, tas ir vairāk elegants. Jūs varat nokļūt dizaina un plauktiņš, bet jā, jūs varat pilnībā darīt. Jebkādi citi jautājumi? Labi, atdzesē. Tātad mēs esam daudz runājuši par apstākļiem ar visiem šiem cilpas, kas mums ir, tāpēc mēs esam patiešām nokļūst apstākļi Būla izteiksmes. Atkal, jūs izmantot šos C, tik tikko veida pārejot No vairāk grafisko interfeisu faktiski kodēšanas. Forši, tik liels viens, ja. Būtībā tikai ļauj mums ieviest daži loģika mūsu programmu un pārbaude sis nosacījumi. Tātad šajā gadījumā, OK, ir n lielāks par 0? Jā, tas ir, lai jūs varētu izpildīt šo. Tas ir tikai pārbaudīt dažus nosacījums, ka jūs esat noteikt, ko es domāju, ka mēs visi esam apmierināti ar pārbaudes nosacījumiem. Atdzist. Tātad, ja cits ir jūsu otrs, Jūs varat teikt, OK, ja tā ir taisnība, darīt šo pirmā lieta. Citādi es gribu, lai jūs noklusējuma un darīt kaut ko citu. Kā tas ir šajā gadījumā, jums ir vai nu izvēlēties pozitīvs skaitlis vai negatīvs skaitlis. Jums ir tikai divas iespējas. Jums vajag izpildīt neatkarīgi no tā, ko jūsu lietotāja ieejas. Tātad jūs varat teikt, labi, tas ir lielāks par 0? Atdzist. Izdrukāt pozitīvu skaitli. Ja tas tā nav, drukāt negatīvs. Ikvienam labs? Un tad viena lieta atzīt, ir ka, ja, ja nosacījums ir izpildīts, cits nekad arī izpildīt. Tikai viens no tiem būs izpildīt laikā. Tātad, tas ir tirdzniecības off. Jūs nesaņemat ir gan. Jums ir vai nu pirmajam nosacījumam. Jums ir vai nu, ja vai kas cits, ne abas. Kas pēc tam var darīt lietas vēl sarežģītāka, tāpēc, ka jūs varat darīt, ja, vēl tas, un tad cits. Tātad, šajā gadījumā, mēs ir trīs nosacījumi. Un atkal, tikai viens no tiem ir gatavojas galu galā ir izpildīts. Lai jūs varētu būt jautājums labi, kas notiks, ja jums ir kaut kas var izpildīt divus no tiem. Varbūt kāds jūs ievadot atbilst gan nosacījumam Jo, ja, un cits, ja. Vienīgais, kas notiek, lai palaistu ALLISON: Tiklīdz tā konstatē kaut ko ka tas atbilst nosacījumam, ka novērtē taisnība, ka tas, ko tas notiek, lai palaistu, un nekas cits. Tātad, ja jums bija šis skaitlis starp 0 un 5 savu pirmo, vai tas ir skaitlis no 3 un 5. pantā minēto cits, ja daļu, un tu ievadi number-- Es teicu: 0 un 5 and-- 4. Tas notiek, lai sasniegtu pirmo. Tas notiek, lai pateikt OK, tas skaits ir starp 0 un 5. Izpildīt un atstāt. Tas nekad hit, ka otro variantu. Forši? Awesome. Labi, mums ir arī slēdzis pārskatos, ja Jūs vēlaties, lai iegūtu vēl more-- vai žēl, slēdzis ir blakus. Es saņemu priekšā sevi šeit. Atkal, ja vairākas blokiem kur kā es tikko teicu ir tik ātri, kā jūs atrast stāvoklis kas ir sasniegti, un, ja cits, ja cits, tas atstāj. Ja jums ir nepieciešams, lai pārbaudītu vairākas lietas, jūs esat gatavojas vēlaties izmantot šo, jo tā pārbauda katru reizi šeit. Tāpēc tas ies cauri, un, ja tas ir lielāks par vai vienāds ar 90, tas notiek, lai drukātu, ka. Un tas ies cauri, un pārbaudīt katru vienu no šiem. Mērķauditorija: Tātad tas būtu vairāk buggy nekā [nedzirdama]. Vai tas ir tāpat kā [dzirdams]? ALLISON: Jautājums ir tas tas ir buggy, vai tas, ko jūs vēlaties. Tas patiešām ir atkarīgs no kāda jūs vēlaties no jūsu programmā. Mērķauditorija: Es domāju, piemēram, ja jūs nodot 90 in. ALLISON: Ja jūs likts 90-- Mērķauditorija: [dzirdams]. GABRIEL: Jūs esat gatavojas saņemt divas lietas. ALLISON: Jūs esat gatavojas saņemt divas lietas. Jā, divi. ROB Bowden: Two? ALLISON: Nē. ROB Bowden: Four. Ja jūs nodot 90, tas notiek, lai pateikt jums ieguva A, jums ir B, jums ir C, jums ir D. Mērķauditorija: [dzirdams]. ALLISON: Labais. Tāpēc es atkarīgs, ko jūs vēlas no jums programmas. Dažreiz Jums ir nepieciešams pārbaudīt vairākas lietas. Jūs saņemsiet daudz dziļāk, ko labs dizains ir kā jums iet uz priekšu. Svarīga lieta saprast, ir tas, ka šis visi četri nosacījumi būs pārbaudīt šeit. Tā kā, ja tas būtu, ja cits, ja cits ja cits, tas hit, ka pirmais gadījums, tas varētu drukāt jums ir A un darīt. ROB Bowden: Pat tad, ja mēs nolēma mainīt to, ja un lielāks par vai vienāds ar 90, ja un lielāks par vai vienāds ar 80, un mazāks par vai vienāds ar 89, ja n ir lielāks par vai vienāds ar 70, un n ir mazāks par vai vienāds ar 79, tā, ka būs pareizs. Kas darīs to, ko mēs gribam, bet tas joprojām pārbauda katru tā. Tātad, tā kā pirmajā scenārijā, ja mēs ievadiet 90 ar tikai tad, ja cits, ja cits, ja, un mēs ieejam 90, tad tas notiek, lai labotu. Tā pārbaudīs pirmais viens, drukāt jums ir A, izlaist visu, jo tas jau atradu vienu, kas darbojas. Visi gadījumi ir savstarpēji izslēdzoši pamatojoties uz ja cits, ja cits, ja. Tā tas būs izpildīt vispirms, ja, tad tas ir darīts. Tas būs iet uz beigām. Tā kā, ja mēs mainām tas ir tas, ko es biju sakot ar mazāks vai vienāds ar 89. Tas notiek, lai pārbaudītu pirmo. Tas būs drukāt. Tas būs pārbaudīt otru. Tas nav gatavojas drukāt. Pārbaudiet trešo vienu. Netaisos drukāt. Pārbaudiet ceturto vienu. Tagad gatavojas drukāt. Tātad šajā gadījumā, ja cits versija, jo šie gadījumi ir savstarpēji izslēdzošas, tas ir labāk izmantot, ja cits, ja cits, ja, jo tas ir nāksies mazāk pārbaudes nosacījumiem par šo versiju. ALLISON: satriecošs. Tātad vēl viena lieta, ko mēs varam izdarīt, ir mainīt paziņojumus. Būtībā slēdzis paziņojums notiek kādā mainīgo, Šajā gadījumā, ja tas ir n, un nosaka, kuru gadījumā izpildīt. Tātad, tas ir arī viens, kur jūsu gadījumi vajadzētu būt sava veida savstarpēji izslēdzoši. Tātad, šajā gadījumā, ja mēs mēs saņemam vienu, tas ir gatavojas, lai atbilstu neatkarīgi, ka variable-- kāda vērtība n ir viens no šiem gadījumos, lai 1, 2, vai 3, un izdrukāt atbilstošo līniju. Un tad, ja pamanāt šeit mums ir arī noklusējuma, ko jūs varat no iedomāties, kā jūsu cits. Tātad, ja jūs izvēlēties jebkuru citu skaitu Bez tam ar 1., 2. vai 3. punkta, šajā gadījumā tas ir tikai gatavojas drukāt nederīgs. Izlemtu, kad izmantot IF pret ja elses pret slēdži notiek būt kaut kas jums puiši būs sk dizains gudrs kā jūs sākat rakstīt sarežģītāka programmas, un tur nav grūti un ātri noteikumus , kad tos izmantot. Tas patiešām ir atkarīgs no jūsu konteksta. ROB Bowden: Un tikai mest to, kas tur jo tā ir ērtāk sadaļā. Slēdži, viņi mēdz be-- lai jūs esat tikai kas vairākos veidos tu tos var izmantot, jo IF nosacījums var būt diezgan daudz kaut ko vēlaties. Ar slēdži gadījumus jābūt numurus, vai tehniski tie var būt simboli, bet chars, kā mēs redzēsim, ir tikai cipari. Tāpēc viņi ir jābūt numurus, bet slēdži ir patiešām efektīvāka nekā tad, ja cits, ja cits, ja, jo pat ņemot piemēru before-- labi, pakāpes piemērs šķiet laba. Nu teiksim šeit, mēs tā vietā darīt to kā tad, ja cits, ja cits, ja scenārijs. Tātad, ja n ir vienāds vienāds ar 1, izdrukāt jūs noplūktiem nelielo skaitu. Ja cits, ja n ir vienāds vienāds 2, jūs noplūktiem vidēja numuru. Cits, ja vienādības vienāds 3, augsts. Else nederīgs. Tātad pieņemsim, ka bija mūsu scenārijs. Tātad pieņemsim, ka mēs ieejam 4, tāpēc mēs sagaidām nederīgs. Tā, ka tad, ja cits, ja cits ja pieeja iet uz darbu, ir pārbauda pirmo nosacījumu. Tas nav apmierināts. Tātad mēs pārbaudām otro nosacījumu. Tas nav apmierināts. Pārbaudiet trešo nosacījumu. Neapmierina. Tātad mēs ejam uz citu, un izdrukāt nederīgs. Kā slēdža darbi tas apkopo leju uz ko mēs ejam zvanīt lēkt tabulu. Galvenā ideja būtne ka tad, kad jūs ieiet 4, tas var uzreiz doties uz noklusējuma. Tas nav nepieciešams, lai pārbaudītu, es esmu lietas 1? Nē tas nav tas. 2. gadījums? Nē. 3. gadījums? Nē. Noklusējuma. OK, tas ir, kur es vēlas, un tad izpildīt to. Nē, tā uzreiz lec uz noklusējuma. Vai tas man ir jāievada 2, tas ir Nekavējoties gatavojas doties uz 2 bez nepieciešamības iet cauri 1. gadījumā. Tātad, tādā veidā, reāli mūsdienās tas ir nav tik daudz efektivitātes pieaugums. Parasti datori ir diezgan ātri, un tas nav tik liels. Bet tas ir gadījums, slēdži ir ātrāks. Ja jūs patiešām mēģināt lai optimizētu, izmantojiet slēdzi. ALLISON: Cool. Un tad mums ir trīskāršo operators. Tāpēc es zinu, es iepriekš minēju vārdu sintaktisko cukura. Tātad, tas ir tikai lietas, kas padara Jūsu kods ir daudz precīzāks. Tātad, tas ir viens no tiem gadījumiem. Tātad trīskāršo operators ir jautājuma zīme resnās zarnas, kā mēs redzam līnijas string s vienāds n ir lielāks par 100 jautājuma zīme augsta resnās zema. Tātad būtībā, kā tas darbojas, ir tas n ir lielāks par 100, ir nosacījums. Tāpēc es domāju, ka tā varētu jēgas. Tas ir tāpat kā lūdzot jautājumu. Tas saka: ak, ir n lielāks par 100. Kas to lai zina? Un, ja tā izvērtē, lai taisnība, tas notiek, lai dotu jums Pirmā lieta, kas ir uzskaitīti tur, kas ir augsts. Pretējā gadījumā tas notiek, lai dotu jums zems. Tātad tas ir tikai patiešām vienkārša un efektīvs veids, kā to darīt, piemēram, ja cits. Tas ir tas viss ir. Un, ja mēs rakstīt šo kā tad, ja cits nosacījums, tas būtu, ja n ir lielāks par 100, atgriešanās augsts. Else, atgriešanās zems. Tas ir tikai daudz kodolīgs veids to rakstīt. ROB Bowden: Tātad šis konkrētais piemērs ir, kad jūs darāt kaut ko piemēram, tas, tas ir modelis kur es izmantot trīskāršo ļoti bieži. Tātad mēs neesam runājuši par jomu vēl, bet es ienīstu redzēt string s semikolu. Ja n ir lielāks par 100, ir vienāds augsts. Else, s vienāds zems. Tā, ka modelis, šīs piecas līnijas koda burtiski 100% no laika var pārnest uz ko biju tur augšā ar trīskāršo. Tātad trīskāršu, viena līnija kodu. Ja cits, pieci. Tas ir piemērs, man norādīt ārā katru reizi. Šī būtu lieliska vieta par trīskāršu operatoram. Tas ir tik tīrs. Bet cilvēki mēdz nekad to izmantot. ALLISON: Ņem to prom Gabe. GABRIEL: Tātad tagad jūs puiši visu uzzināja lekciju šonedēļ ka viss dators ir bināro, labi? Tāpat kā lampas šeit. Jūs varat būt ieslēgt un izslēgt. Un viss, es domāju burtiski viss. Daži skaitļi, un simboli, un stīgas, un pat kodu, kas jums rakstīt, kad tā izpaužas apkopoti uz mašīnu kodu un sīkumi, piemēram, ka, tāpēc tas viss vārīties uz leju līdz 0 s un 1 ". Un tad, kad mums ir darīšana ar veseliem skaitļiem, kuri ir kaut kas, kas ir tehniski ļoti vienkārši, mums vajadzētu spēt darīt stuff piemēram, pievienojot tos, kas ir iespējams, ir viens no vienkāršākajiem lietām jūs varat darīt, lai diviem veseliem skaitļiem, labi? Tik Turklāt un atņemšanu darbojas tikai kā tas darbojas decimālā notācija, izņemot, šeit tas ir bināro, vai ne? Tātad, tas ir bāzes divi. Lai pievienotu 1 plus 1. Tas dod 0, 1 un nes pāri. Un tikai glabāt to dara, tāpēc tagad nāk vairāk interesants jautājums. Mēs zinām, kā pārstāvēt visu pozitīvi skaitļi no datora, bet pieņemsim padara šo vingrinājums. Izlikties jūs puiši visi 1960. gadā vai kaut ko mēģina radīt datoru, un jums ir jānāk klajā ar veids, kā uzglabāt mīnus 1, piemēram, vai mīnus jebkurš skaitlis par šo jautājumu. Kā jūs to darīt? Jebkuras idejas? Tikai mest kaut ko uz mani. Jā? Mērķauditorija: [dzirdams] norīko īpašu, ja jūsu [nedzirdama]. GABRIEL: Jūs varat izraudzīties īpašs bit, kas ir 0 vai 1. Teiksim vienu, ja tas ir pozitīvs un 0, ja tas ir negatīvs. Un tad pārējā bit ir tikai, lai saglabātu numuru. Atdzist. Tā ka ir ļoti laba ideja. Mums ir, es nezinu, 200. Un ja pirmais bits ir ieslēgts, tad tas ir plus 200. Ja tas ir izslēgts, tas ir mīnus 200. Atdzist. Ir tikai viens mazs Ar šo problēmu, kas ir, ja mēs cenšamies Apkopojot lietas uz augšu. Tik iedomāties mums ir 11111 šeit, un mēs summējot to ar 00100 neatkarīgi. Ja šie divi ir pozitīvi, tas ir jauki. Bet tad, ja viens no viņiem ir negatīva, piemēram, pieņemsim, ka tas mazliet šeit ir viens, kas ir atbildīga for-- Es esmu gatavojas veikt separate-- tāpēc tas viens nozīmē, ka šis skaitlis šeit ir pozitīva. Tas viens nozīmē, ka šī numurs šeit ir negatīva, vai ne? Bet tad, kad tu esi dodas uz Apkopojot tos, jūs nepieciešama, ja paziņojums sakot, oh, ja tas ir 0, tad mans summa būs kaut ko citu, vai ne? Tātad tur ir nedaudz vairāk gudrs veids, kā to izdarīt ka, ko sauc Two ir papildinājums. Tātad, būtībā, ko mēs darīt, ir mēs definējam mīnus 1 būt lieta, ka, ja mēs pievienojam līdz 1 dod mums 0. Ļaujiet man atkārtot, ka. Tātad, pieņemsim, ka tas šeit ir 1. Kas ir lieta, kas dabiski naturālu skaitļu pievienota, kas dod mums 0.? Ko darīt, ja mēs cenšamies to pievienotu šo numuru? Mēs ejam, lai have-- Labi, tāpēc pieņemsim pievienot. Mēs ejam, lai ir 1 plus 1 ir 0, un pēc tam tas veic vairāk. Un tad mēs esam gatavojas saņemt 0 vēlreiz. Es saņemu sajaukt. Un jūs gatavojas saņemt 0 un 0 un 0 un 0 un 0 un 0. Daudz 0 gados. Pēdējā brīdī vienu, mēs neesam gatavojas, lai varētu veikt to vairāk, tāpēc pieņemsim, ka mēs esam tikai nodarbojas ar vienu baitu, lai tikai 8 biti. Tātad, ko dators dara pēc noklusējuma ir vienkārši aizmirst par to, ka [nedzirdama] OK? Tātad, tas ir tas, ko sauc par Šīs divas komandas personālsastāvs. Mēs vienkārši definēt mīnus 1 būt lieta šeit, ka, ja jūs piebilst, ka līdz 1 dotu jums 0. Un tas ir diezgan cool tāpēc, ka mums nav īsti vajag vēlu, lai īstenotu dažāda veida summas atkarībā no tā, vai tas ir negatīvs vai pozitīvs skaitlis. Vai tas ir jēga? Tik viena lieta, ka mēs darām šeit, lai pārvērstu starp pozitīvo un negatīvo skaitlis ir tad mēs uzsist viss, un tad mēs pievienojam 1 līdz šo numuru. Ja jūs mēģināt darīt to pats uz papīra, jūs gatavojas redzēt, ka ir jēga. Bet, ja es šo skaitu šeit, tas ir pieci. Tātad, ja es uzsist viss šeit, lai 1, 1, 1, 1, 1. Flip, flip, flip. Un tad es pievienot 1 līdz tai. Es esmu nāksies precīzi mīnus 5. OK? Šāda veida jēga, jo, ja jūs mēģināt apkopot to ar numuru ka mums bija agrāk, kas was-- pieņemsim uzsist to vēlreiz. Tas bija 101 un daudz 0 s. Ja jūs mēģināt pievienot šos divi skaitļi kopā, jūs nāksies precīzi 0. OK. Kādi jautājumi? Mērķauditorija: [dzirdams] GABRIEL: Ko tu ar to domā? AUDITORIJA: Negatīva līdz pozitīva [nedzirdama]. GABRIEL: Nē, jūs uzsist un jūs pievienojat 1 vienmēr. Yeah. Labi, tāpēc zīmes arī kodēta binārie faili. Mums ir ASCII tabulu, kā jūs arī redzēju lekcijā, vai ne? Tātad, tas ir būtībā kartēšana lietas. Un šeit es nevaru uzsvērt pietiekami ka dators, un 65 ir burtiski pats. Tātad, ja es rakstītu kaut ko līdzīgu char c ir vienāds, es varētu vienlaicīgi vienkārši uzrakstīt 65 šeit, un tas būtu tieši tas pats, OK? Nav atšķirības whatsoever. Mēs parasti mēdz likt rakstzīmes mainīgajiem tipa. Char, nevis tāpēc, ka viņi būtībā jāparedz, ka, bet tāpēc, ka cilvēka konvencijas. Bet jūs varat tikt galā ar veseliem skaitļiem nevis mainīgo tipa char, un jums būs labi. Vienīgā faktiskā atšķirība starp char c un int i ir tas, ka int ir četri baiti lielākajā sistēmām, bet palijas ir vienu baitu. Viņi būtībā Tas pats attiecībā uz datiem. Tātad, kas būs izdrukāt šeit? Šeit mēs esam izdrukājot ciparu izmantojot printf ar plus 1, un tāpat kā veselus skaitļus, chars var apkopot, tāpēc rakstzīmes var būt arī summē. Tātad, tas ir tieši 65. Tātad tur būs 66, un šeit mēs esam 65 plus mazliet mīnus liels, kas būs, man nav īsti zināms. Bet tas būs tieši plaisa starp lielajiem burtiem un un mazākiem burtiem, tāpēc mēs ejam, lai saņemtu mazs, labi? Yeah. Tātad tas notiek, lai drukātu raksturs, kas ir tieši tas viens. Labs? Kādi jautājumi? Šeit mums ir ķekars atšķirīgs tipi skaitliskajiem mainīgajiem. Mēs jau runājam par int. Pludiņš ir tikai veids, kuri paredzēti, tas ir patiešām smieklīgi, jo, kad es pirmo reizi uzzināju programmēt atpakaļ dienā ar Python, pirmā programma es jebkad mēģināju rakstīt, es redzēju, ka tur bija veidu sauc un tipa sauc peldēt. Un pludiņš bija visiem reāliem skaitļiem. Tad es jautāju, kāpēc būtu Es kādreiz izmantot int tad? Jo, ja es varu izmantot visus reāliem skaitļiem ar pludiņu, Es vēlētos pārtraukt Ints, vai ne? Tāpēc, ka reālie skaitļi ir daudz, piemēram, vairāk vispārīgs. Izrādās, ka tas ir nav gadījums datoriem jo viņi būtībā dažādas lietas. Tātad veseli skaitļi un pludiņiem, darbības, kas jums jādara, lai viņiem būtībā ir atšķirīga, jo no tā, ka tie tiek uzglabāti, OK? Mēs runāsim nedaudz mazliet vairāk par to, ka sekundē. Tātad dubultā ir tikai lielāks pludiņš. Parasti lielākajā daļā sistēmās, float ir četri baiti, tāpat kā int. Un dubultā ir astoņas baiti. Ilgi ilgi ir faktiski tikai simbols ka jūs pievienot tipam, piemēram, int. Jūs sakāt, ilgi ilgi int kā šis. Ilgi ilgi int x, lai padarītu to ilgāk. Tātad lielāko daļu sistēmu, kas dos astoņas baiti, nevis parastā četriem. Un jūs tiešām varat piliens jo, tāpēc tas var vienkārši pateikt ilgi ilgi, un kas darbojas arī, OK? Jūs varat arī darīt citas lietas, piemēram, neparakstīts int, vai atkal tikai neparakstīts tas arī strādā. Un tas būtu x būs mainīgs tāpat viss ir pozitīvi, lai jūs nevar īsti ir negatīva numuri tā, ka mēs redzējām šeit. Tātad pēc brīnišķīgi peldošo punktu un precizitāti. Tas ir viens no iemesliem, kāpēc jums vēlaties izmantot Ints nevis pludiņiem, tāpēc, ka Ints ir 100% precīzs, labi? Tas ir tieši tas, ka numurs. Peldoša punktiem, ja jūs saka atbilde vienāds 1 pār 10-- Man gadās būt šis precīzs programmu šeit, float.c. Kas drukā līdz 20 zīmēm aiz komata. 1 dala ar 10, un ka parasti ir 0.1, vai ne? Bet šeit, ja mēs peldēt, un tad mēs palaist to, mēs redzam, ka tas nav tieši 0.1. Tas ir kaut kas 0,149. Un kāpēc tā? Jo jūs nevarat īsti pārstāvēt katru Vienīgais iespējamais reālais skaits atmiņā jo tur ir uncountably daudzi no viņiem. Tāpēc mēs esam tehniski tikai spēj pārstāv ierobežots daudzums viņiem ar ierobežotu datu apjomu. Bet tas ir patiešām interesanti. Tagad šis Rodas Jautājums par to, kā jūs būtu iet par pārstāvot tas ar biti, vai ne? Tātad, kā pludiņi uzglabāti? Ar veseliem skaitļiem tas bija viegli. Bet ar pludiņiem vēlaties lai palielinātu diapazonu, un jūs vēlaties, lai varētu pārstāvēt milzīgs skaits un ļoti niecīga numuri, piemēram, 0.000001 tajā pašā laikā. Tātad vēlreiz, pati spēle. Vai kāds ir kāda ideja, kā mēs varētu iet par pārstāvot peldēt atmiņā? Tikai mest neko. Jā, lūdzu. Mērķauditorija: [dzirdams] kā ja tas bija divas Ints un viens ir [dzirdams] un viena būtne viss aiz komata. GABRIEL: Labi, atdzesē. Tātad divi dažādi veseli skaitļi. Jums var būt 12.45, tā ka ir 12 un 45. Jauki. Kas ere jūs teiksiet? Pats? Yeah? Mērķauditorija: [dzirdams] notācija kur jūs atdalīt bāzi. GABRIEL: Zinātniskā notācija, yeah tas parasti ir, kas notiek. Tātad, tas ir tas, ko sauc mantisa. Tas ir to, kas ir patiesībā numuru, un pēc tam eksponents ir tieši tur, kur komats ir, vai ne? Tātad tas būs kaut kas no kā 1, 2, 3, 4, 5 reizes, 10 līdz mīnus 4. Es tikko sapratu that-- jā, tieši tā. Un tad šie 10 līdz mīnus 4 ir gatavojas noteikt, kur komats ir, OK? Brazīlijā mēs izmantojam komatu. Šeit jūs puiši izmantot punktu. Tik dot. Un tas ir forši, jo tad jūs varat koncentrēties daudz jūsu bitiem uz šo puisi šeit, uz mantisa, un tad tas ir būs jūsu faktisko precizitāti. Un jūs varat darīt vai nu aiz komata vai bināro balstītu sistēmu. Ir dažādi veidi, kā īstenot šo. Jautājumi? Jā? Mērķauditorija: Cik daudz vietas pēc aiz komata [dzirdams]? GABRIEL: Tas ir sarežģīts jautājums, tāpēc, ka tas nekad nav īsti 100% precīzs, jo, kā jūs redzēt šeit, lai daži skaitļi tas ir 100% precīzs. Es uzskatu, ja mēs ieliekam 0.5 šeit tas būs 100% precīzs. Tas būs 0,500000. Tātad šajā gadījumā, tas ir lieliski. Bet citos gadījumos, tas ir daudz mazāk perfekta. Pēc manas pieredzes, tāpat kā līdz četriem, piecām zīmēm aiz komata ir diezgan precīzs. Ja jūs izmantojat dubultā, tas būs būt veids, kā precīzāka nekā, OK? ROB Bowden: Tik vienkārši mest dažas vairāk konteksts pie pludiņiem, Es nekad atceros 100%, kā arī spec pludiņiem reāli darbojas, bet es jūs vienmēr atcerēties ka pludiņiem sāk kļūst netīrs. Tātad ideja ir tāda, ka tad, kad jums tiešām, tiešām liels skaits vai tiešām, tiešām nelielo skaitu, sākam kļūst sliktāk un sliktāk at diferencējot starp diviem tuvu pludiņi. Tātad, kā es vēlētos domāt par ir ar peldošo punktu neprecizitāti, ir divi pludiņi, ka ja es mēģinātu tos norādīt C, neskatoties uz to, šī viņi dažādus skaitļus, viņi būs interpretēt kā tādu pašu numuru, jo mēs nevaram uzglabāt tos atšķirīgi. Mums ir nepieciešams, lai izmantotu tos pašus bitiem. Un tad, kad mēs nokļūt tiešām, tiešām liels skaits, runā, piemēram, 10 līdz 300 vai kaut ko, tas ir šajā brīdī ka 10 līdz 300 vai 5 reizes 10 līdz 300 nevar diferencēt 7 reizes 10 uz 300. Tā ka ir diezgan liela atšķirība starp diviem cipariem. Bet tad, kad jums uz leju līdz normālam līmenim lietām, jums mēdz būt diezgan labi diferencējot. Un tad, kad jums uz leju, ļoti mazs, jūs arī iegūt diezgan slikti vēlreiz. Tātad, piemēram, visu ķekars 0,0000, tas kļūst diezgan slikti. GABRIEL: Jā, tāpēc ātri piezīmi. Nekad to izdarītu. Nekad mēģināt salīdzināt plosti izmantojot Vienāds ir vienāds, jo, pat ja viņi gandrīz Tas pats, gandrīz vienāds nav vienāds. Tātad, ko jūs parasti darīt, ir tev atņemt viņiem, ņem absolūto vērtību, kas, un redzēt, ja tas ir mazāks nekā 0,0001 vai kaut kas tamlīdzīgs, OK? Un atdzesē. Es zinu, daudzi cilvēki daži fona Java, jo īpaši tiem, kas to izdarīja AP datorzinātnes, vai ne? Un Java ir valoda kas galvenokārt balstās uz C, tam ir pāris ļoti lielas atšķirības. Bet cilpas, un IFS, un sīkumi, piemēram, ka viņi visu to pašu sintaksi. Man ir dažas programmas, šeit, lai parādītu to. Tā, piemēram, vienkāršu sveiki pasaule. Tas ir sveiki pasaule, C, kas jums puiši noteikti ir pazīstami ar, un tas, un tas viens ir Java. Tātad Java mums ir šī valsts klases, sveiki pasaule, un valsts statisko spēku galvenais, un stīgu args. Stīgu args gatavojas parādīties C ļoti drīz. Bet nav iet tur vēl. Tieši tagad mums ir šeit neesošu, kas nozīmē, ka galvenais ir neveic nekādus argumentus. Un tad mums ir println, un tas ir veida ekvivalents par printf. Te mums nav tiešām ir nepieciešams slīpsvītru n jo drukas ln tas, ka jums. Tā appends slīpsvītru n beigās līnijas. Bet, ja jūs iedziļināties kaut kas līdzīgs, jūs var redzēt, ka viņi diezgan daudz pats. Tātad inicializācijas, un stāvokli, un atjaunināt is-- Es nokavēju atstarpi here-- viņi diezgan daudz pats, izņemot Java ir kā daži vairāk augsta līmeņa sīkumi. Šeit mēs varam darīt arī es, un Java automātiski padara šo es šeit, kas ir skaitlis, par virkni, un tad pievienot divām stīgām kopā. Te C mums ir jādara un% d. Līnija šeit, lai izskatās tieši tāds pats. Un, ja mēs skatāmies, ja IF arī izskatās tieši tas pats, vai ne? Tātad reālā lielas atšķirības ir ar tām lietām, kas jūs redzēt šeit. Valsts statisko, par spēkā neesošu, un Tad valsts klases, ja. Tātad, Java ir to, kas ir sauc virtuālā mašīna. Un tas ir ļoti lielā mērā balstās uz to, ko sauc objektorientētā programmēšana, kas ir ļoti, ļoti bieži paradigma programmēšanai mūsdienās. Un šī klase lieta ir tas, ko jūs redzat, kaut ko no objekta orientācijas, ir jums izveidot klasi, un tad jums var gūt objektus no šīs klases. Mēs nebrauksim runāt pārāk daudz par ka CS50, bet tas ir noteikti kaut kas patiešām foršs, it īpaši, ja jūs vēlaties iedziļināties sarežģītākas web izstrāde beigās gaitā, tāpat kā iesniegt savu galīgo projektu un dažas jaukas sistēmas un sīkumi. Vārdu sakot, ideja ir tāda, ka jums negribu atkārtoti ieviest kaut ko, tāpēc jums izveidot kaut ko, kas ir ļoti vispārīgas, piemēram, formas, un tad jūs izveidojat dažādas formas no tā, un pēc tam no katra Šīs formas, jūs izveidojat vēl daži specifiski formas trīs izmēri vai kaut kas tamlīdzīgs. Un tie ir šo hierarhiju viņi mantot no citiem uzņēmumiem, tāpēc visas funkcijas un mainīgi lielumi, liels forma šeit ir, visi šie nāksies, un visi no tiem ir nāksies, un tā tālāk, un tā tālāk. Tā ka ir pamatideja. C nav tas, bet C ++ tomēr ir šāda veida funkciju. Un Java lielā mērā ietekmē pēc objekta orientācijas, tā ka ir iemesls, kāpēc jūs redzēt klase šeit visu laiku. Un otra lieta ir šis Java virtuālā mašīna. Tātad tas, es domāju, ir ļoti gudrs ideja. Tātad, ko ļaudīm, kas izgudroja java darīja ir viņi negribēja sastādīt savu kodu divreiz ja tie bija palaist to tādā Windows, vai Mac vai Linux, lai to, ko viņi dara ir viņi burtiski palaist kaut ko līdzīgu ierīci, bet jums nav īsti redzēt to notiek. Lai viņi palaist virtuālo mašīnu iekšpusē datora, kas būtībā tāpat mini operētājsistēma. Un ka darbības Sistēmas dzīves jēgu ir tikai, lai palaistu to, ko sauc par baitu kodu. Tā vietā, C, kā mēs būtu apkopot tas ir padarīt, ja, un tad palaist ./if. Es aizmirsu slīpsvītru in. Java, jūs darītu vispirms Java C apkopot to, if.c. Tas nav C. Tas ir dot java. Un tad jums ir palaist nav ./. Jūs saņemsiet šo jaunu failu if.class, bet jūs nevarat īsti palaist if.class tagad tikai tāpat kā mēs to darījām agrāk. Tas nav izpildāms. Jums jāskrien. Jums ir, lai pabarotu to programmu, ko sauc Java, un ka programma ir virtuālā mašīna, un tad jūs if.class, vai ja. Jā. Un tad tas darbojas. Labi, tāpēc šī ir sava veida virtuālā mašīna notiek. C nav, ka, tāpēc, ja es būtu nodot šo programmu Windows mašīnas, tas nedarbosies C. Java tā dara. Jautājumi? Atdzist. Tas ir, ja par super nodaļu par šodienu.