ROB: Nu labi. Welcome to pirmajā daļā. Es esmu Rob. JOSEPH: Es esmu Joseph. ROB: Tātad mēs nirt tiesības collas Pirmā lieta, lai runātu par ir Appliance. Tāpēc cerams, ka lielākā daļa no jums ir lejupielādēt to jau. Bet jūs varat redzēt instrukcijas pie cs50.net/appliance. Ak dievs, tagad es esmu bikls. Es joprojām dzirdu to. JOSEPH: Wow, tas izklausās tas ir dezorientēti. ROB: Tātad daži cilvēki ir, kam problēmas ar to, tāpēc nav jāgaida, kamēr pēdējā minūte problēmas iestatīts mēģināt atrisināt Appliance un konstatējot, ka tas nedarbojas. JOSEPH: Un, ja kaut kas nedarbojas un jums ir nepieciešama palīdzība, jūs varat doties uz cs50.net/discussion kur mēs ir forums, kur var nosūtīt savus jautājumus. Un mēs sāksim to beidzot. ROB: Nu labi. Tātad šis ir tas, ko Appliance izskatās. Atkal, tas ir tikai pilnīgi atsevišķi operētājsistēma darbojas dažu neatkarīgi no operētājsistēmas jūs darbojas uz jūsu klēpjdators. Un galvenajām lietām, ko jūs izmantojat ir gedit. Tāpēc cerams, tas jau ir kļuvis pazīstams vietā. Termināls. Un jūs varat arī palaist Chrome ietvaros Appliance. Ir bijuši pāris cilvēki kuras ziņojušas internetā nestrādās Appliance. Un daži no viņiem ir tikai pieņemts ka nav vajadzēja būt Interneta ierīcē. Bet jā, tur ir paredzēts būt interneta. Es saku to tieši tagad, bet tas nav īsti nozīmē neko. Ja internets nedarbojas, tas ir tas, ko jūs parasti nepieciešams palaist to salabot. Ja jums ir interneta problēmas, nav atcerēties to, tikai pēc to Apspriest, un mēs sakām, palaist to. Bet internets ir jāstrādā. Tātad vienīgā cita lieta - jā, nekas pārējais ir ļoti būtiska. Bet es tikai gribēju norādīt, ka - redzēt šajā apakšējā labajā stūrī. Tāpēc katru no jūsu ierīcēm jābūt ir IP adrese. Un vēlāk semestrī, šis IP adrese kļūs nozīmīgi, jūs strādājat tīmeklī p-kopumu, jo Jūs varēsiet piekļūt mājas lapā jūs strādājat no jūsu Vietējās Chrome, izmantojot šo IP adresi. Bet to, ko es vēlētos izmantot IP adresi - un jums nav to darīt, es tikai gribu uzsvērt to, - ir šeit. Tātad tas ir termināla logs uz mana Mac, tas nav Appliance vispār. Un jūs varat meklēt to, kas šī komanda dara. Bet es esmu gatavojas SSH tieši manu Appliance. Es nezinu, kas IP ir. JOSEPH: 168 - 168.224.1.0. ROB: Tātad, kad es esmu darīts ar to, ieietu Tagad, galvenokārt, tas ir identisks termināla logu manā Appliance. Tāpēc es diezgan daudz nekad nav strādājuši no iekšienes pati ierīce. Es tikai vienmēr ir, ka tas darbojas fonā minimumam samazina un SSHed tajā. Problēma ar šo ir jums nav gatavojas lai varētu izmantot gedit viegli tieši no tā. Bet, ja jūs vēlaties būt reāla cool hacker, tad jums vajadzētu pierast komandrindas teksta redaktoru anyway. Tāpēc Vim un Emacs un Nano, visi šie ir dažādas alternatīvas. Nano mēdz būt vienkāršākais. Un es domāju, ka tam nav nekādas sintakse izceļot. Ak, nē, tas pilnīgi nav. Tātad jūs varat izmantot Nano, jo ka viens ir diezgan viegli. Jūs redzat visas šīs komandas apakšā. Šī maz burkānu simbols. Ja jūs neesat redzējuši to pirms, jūs iespējams redzēt to daudz tagad. Tas parasti nozīmē, ka kontroles burkānu, piemēram, grunts kreisajā tastatūras kontrole raksturs. Tātad šeit tas ir spēcīgi mani šeit - Ak, tas nav nogriezts, ja man pietuvinātu objektu Tātad Control, X ir, kā Es esmu gatavojas, lai izietu. Un saka, ka es varētu hit Y Jā, par taupīšanu, N Nē Tātad tas ir Nano. Vim un Emacs mēdz būt nedaudz vairāk sarežģīts un milzīgs. Bet jūs varat pierast pie tā, un tad jums būs mīlēt to. Tātad tas ir tas. JOSEPH: Nav nepieciešams, lai to izdarītu. ROB: Jā. Jūs esat brīvi izmantot gedit par atlikušo pusgadu. Tāpēc jebkura ierīce saistīti jautājumi? Vai jums ir kādas domas par to, ko vēl vajag runāt par par ierīce? Jā. SPEAKER 1: Kad jūs SSHed uz jūsu lieta bija paroli Crimson? ROB: Jā. Par diezgan daudz viss paroli ierīcē notiek būt Crimson. SPEAKER 2: Install kā īsts IDE uz ierīces, tas ir darbs? ROB: Es iztēlojos Eclipse tomēr ir Fedora versija, un šādā gadījumā, jā, jūs varat darīt. Tas ir iespējams, nav īsti vērts. SPEAKER 2: OK. Tātad, tas ir iespējams, vieglāk, ja es gribēju, lai izmanto Eclipse, tikai izmantot dzimtā un pēc tam augšupielādēt to - ROB: Ak, tas ir arī iespējams, ir vieglāk. Bet jūs varat iegūt darbu ietvaros Appliance. JOSEPH: Un kameru, jautājums bija, jūs varat instalēt citu IDE ierīces iekšpusi? ROB: Eclipse ir piemērs IDE. Jebkādi citi Appliance jautājumi? Labi. Tāpēc mēs tagad pāriet uz komandrindas interfeiss saistītās lietas, tāpēc CLI. Un atkal, es esmu tikai gatavojas strādāt Šeit, ka tas ir identisks strādā termināļa logā ietvaros Appliance. Kā ir, ka fonts meklē? Vai tas ir pietiekami liels? Labi. Tāpēc ir daudz komandu, kas Jums vajadzētu saņemt diezgan izmanto, lai visā semestrī. Liels divi navigācijai ir ls, saraksts failus šajā direktorijā, kā arī cd, lai mainītu katalogs. Lai es varētu mainīt uz darbvirsmas un pēc tam Ļoti bieži modelis ir cd katalogs un nekavējoties ls Kas direktorijā. Cilvēki arī dažkārt neapzinās ka Tab pabeigšana ir lieta. Tātad, piemēram, cd, VH, un tad es hit Tab. Es gandrīz nekad tipa out visa lieta. Un tad, ja es glabāt hitting Tab atkal, tas būs automātiski sākt sarakstu par mani. Tāpēc es varu cd vhosts, vietējā uzņēmēja. Un tas ir tikai gatavojas - ja neesat dzirdējuši terminu pirms katalogs ir tikai vēl viens vārds uz mapi. Tāpēc tagad, ja jūs redzat - pieņemsim panākt, ka uz augšu. Tāpēc tagad, ja jūs redzat iekavās, jūs redzēt maz tildes, slīpsvītra, vhost, slash, vietējā uzņēmēja. Tātad Tilde, kas attiecas manā mājas direktorijā. Tas ir direktoriju jūs jo, kad jūs SSH collas Tas ir direktoriju tu esi, kad jūs atvērt termināli. Tas ir, ja jūs sākat. Un tāpēc es esmu iekšā manā mājas direktorijā, un es esmu iekšpusē vhost direktoriju iekšpusē manas mājas direktorijā. Un tad es esmu iekšā vietējā uzņemt direktoriju iekšpusē no tā. Tāpēc dažas citas noderīgas lietas ar cd - vai arī vispār, tāpēc dot vienmēr attiecas uz pašreizējā direktorijā. Cd, dot ir diezgan nevērtīgs komandu. Bet tas mainās uz pašreizējā direktorijā. Vairāk noderīgs viens ziņā cd ir dot, dot, kas ir tikai iet uz augšu vienā direktorijā. Un ņemiet vērā, ka šie - Es gribu teikt, pseidonīmi, bet tās simboliem, dot un dot, dot, tie darbi diezgan daudz jebkuru komandu tu esi būs domāt par darboties. Tātad, piemēram, cd ir iespējams, ja jūs būsiet izmantojot visvairāk, bet tie nav lietas, kas vienkārši cd saprot. Tas ir diezgan daudz kaut kas jūsu visu komandrindas saprot. Programmas daudz saprast dot un dot, dot. Tātad citas noderīgas tiem - cd, domuzīme. Tātad, kas notiek, lai mani pēdējais katalogs, kas man bija iekšā Tāpēc dažreiz es darīšu kaut ko, piemēram, Ak, es esmu strādā šeit. Un es redzu kādu kļūdu ar kaut ko, un Es iešu izpētīt to, dodoties uz daži izlases katalogs kaut kur. Un es nezinu, ja tas būs ļaujiet man tur. Tā būs. Tad es darīt, ko es gribu šajā direktorijā. Blah, blah, blah, blah, blah. Un man bija, piemēram, labi, es gribu , lai dotos atpakaļ, kur es biju. cd, domuzīme, un tas dod man tiesības atpakaļ. Tāpēc es esmu gatavojas mest daudz no tiem pie jums šodien. Man nav gaidīt, lai jūs iegaumēt visas no tām. Tas ir sava veida tikai zinu ka tie pastāv. Un tad vēlāk, kad jūs, piemēram, hmm, es gribu, lai dotos atpakaļ uz direktoriju, ka man bija tikai pie, ak, pagaidiet, kaut kā tā pastāv. Jums nav vienkārši ierakstiet visu direktoriju vēlreiz. JOSEPH: Un galu galā jums būs tikai izmantot tos atkal un atkal, un tas būs kļuvis muskuļu atmiņu. ROB: Jā. Tātad, kā es teicu iepriekš, ka Tilde ir jūsu mājas direktorijā. Tāpēc es varu cd, tildi. Bet man nav pat ir darīt, ja es tikai - Es iešu atpakaļ uz direktoriju, lai tas nav bezjēdzīgi piemērs. Bet, ja es vienkārši darīt cd, tas ir arī tāds pats kā, dodieties uz manu mājas direktorijā. Man komandu, K. JOSEPH: Jūs varat rakstīt arī skaidrs, vārdu, un tas būtu skaidri to. ROB: Un es domāju, ka arī kontroles, L arī dara. Tik daudz dažādos veidos. Es domāju, ka tur ir dažas atšķirības, kur skaidri un kontrole, L būs tikai tiešām push to uz augšu un Es vēl joprojām var ritināt atpakaļ. Komandu, K burtiski iznīcina viss, un jūs nevar ritināt atpakaļ uz augšu. Vismaz, tas ir kā tā darbojas iTerm2. Es nezinu, cik citas lietas - oh. Ar SSHing, tādēļ, ja jums ir uz Windows, jums nāksies lejupielādēt tepe lai SSH jo Windows nav ir, piemēram, iebūvētu SSH rīks. No Mac, jūs varat vienkārši SSH tieši no termināļa loga. OK. Jautājumi? Ar ls, lai kaut ko, lai pierastu pie ar lielāko daļu no šīm komandām ir - labi, es ņemšu tikai darīt vienu. Ls, domuzīme, l. Tātad domuzīme, l ir tas, ko mēs gatavojamies zvanīt karogu ls. Un daudzi no šīm komandām ir karogiem ka jūs varat iet uz tiem. Tātad, šajā gadījumā, dash, l ir flag , kas stāsta to, lai dotu man pilnīgu uzskaitot visu informāciju, no šiem failiem. Tātad mēs redzam šeit, ka desktop bija modificēta 30.jūlijā plkst 00:54. Lejupielādes tika modificēts gada 6. Tie ir pašreizējais un Šo katalogi baiti. Jums nav saprast visu. Šī stuff pa kreisi, šie drwx s, ka būs daudz vairāk piemēroti vēlāk, kad jātiek galā ar - kas ir jādara ar to, kas ir atļaujas apskatīt šos failus. Un tādēļ, ja jums nav vienīgais lietotājs uz Šis dators, jūs varētu teiksim, OK, es būtu tikai viens atļauts apskatīt šo failu, vai es esmu gatavojas atļaut ikvienam paskatīties uz šo failu. Lai kāds cits manā datorā var apskatīt šo failu. Es pat nezinu, ko tas - ko tas dara? JOSEPH: Es neesmu pilnīgi pārliecināts, faktiski. ROB: Nav ideja. JOSEPH: Bet, ja jūs nezināt, ka ir noderīga komanda, kuru var izmantot pateikt, kas produkciju nozīmē. Un, ja jūs tipa cilvēks pirms komandu - tā M-A-N. ROB: Man. Tāpēc man ir vēl viens , kas ir ļoti noderīga. Un cilvēks, ls. Tātad cilvēks lapas, tie ir gan komandas, ka jūs esat būs izmantojot pie komandrindas, un viņi arī ir funkcijas, kas būs būtiski ar C. Tātad jūs varat cilvēks - un es ignorēja 3. Bet man 3 printf gatavojas celt līdz C versiju printf. Bet, ja es vienkārši darīt vīrieti printf, tas ir gatavojas audzināt komandu printf kas notiek pie komandrindas. Tātad cilvēks, ls. Cilvēks lapas var būt diezgan milzīgs. Lūk, lai gan, jūs redzēsiet šo ierakstu Visu šo karogu, kas ls saprot. Tātad, ja mēs ejam uz domuzīme, l, un - Es esmu tikai gatavojas mest to pie jums. Bet, lai meklētu, jūs vēlaties vispirms skāra jautājumu preču zīme vai slash pogu. Tā slīpsvītra. Un tad es varu meklēt par ko es gribu. Tāpēc es esmu gatavojas slīpsvītra uz domuzīme, l. Un tur tas bija. Līdz ar to izmantot ilgu reģistrācijai formātā. Tas nenozīmē, ka man palīdzēt saprast, kāda ka īpaši kolonna nozīmēja, bet es uzņemties kaut kur šeit tas varētu izskaidrot to. Tāpēc izmantojiet cilvēks lapas par jebkuru komandu ka jums nav uzreiz saprast. Es esmu diezgan pārliecināts, ka jūs pat varat man, man. Saskarne tiešsaistē norāžu rokasgrāmatas. Ak, viens pēdējais, kas ir varbūt nedaudz nozīmīga ir ls, domuzīme,. Tāpēc paziņojums, ja es vienkārši darīt ls, Man šos piecus failus. Ja man ls, domuzīme,, es iegūt daudz vairāk failus. Tā lieta, kas kopīgs starp visiem šiem Jaunie faili ir dot iepriekš. Tāpēc konvencija ir, ka fails, kas sākas ar dot ir paslēpta. Tātad jūs nevēlaties redzēt šo failu, jums nevēlas, lai to sajaukt ar jūsu direktorija sarakstā. Tas ir tikai tad, kad skaidri jautāt, labi, ls, domuzīme,, parādiet man. Apzīmē visus failus, tostarp slēpto tiem. Tāpēc dažas citas komandas. Ak, jautājumi šajā brīdī? Jā. SPEAKER 3: Kad jūs ls, , kas ir dot, dot? ROB: Ak. Tātad šis ir tas, ko es runāju par. Tas ir tas pats, ja Es, piemēram, CD, dot, dot. Tik tehniski, dot un dot, dot ir failus, kas pastāv katru direktoriju, kur dot fails atsaucas pašreizējā direktorijā. Tātad, ja es cd, dot, es esmu tikai gatavojas palikt direktorijā. Un dot, dot, vienmēr atsaucas uz Iepriekšējā katalogs vienu līmeni uz augšu. Tātad, ja es eju uz žurnāliem un ls, domuzīme, al, Tiksimies dot, dot. cd uz dot, dot nes mani uz iepriekšējo direktorijā. Jā. OK. Tātad vēl viens diezgan svarīgs komanda rm. Tātad tas, ko mēs gatavojamies izmantot, lai noņemtu. Un ļaujiet man patiesībā darīt citu komandu pirmās. Tā mkdir. Mkdir ir, kā jūs varat izveidot direktoriju. Un es izveidot pagaidu direktoriju un iedziļināties šajā pagaidu direktorijā. Un, kā gaidīts, tas ir tukšs. Bet, ja es ls, domuzīme,, man joprojām ir dot un dot, dot, jo dot attiecas uz pašreizējā direktorijā. Un dot, dot attiecas iepriekšējā direktorijā. Un tie būs vienmēr pastāv vienalga katalogs, kurā atrodaties Un tas ir pilnīgi nevajadzīga komandu, bet touch. Es esmu tikai izmantojot to, jo tas ir viegls veids, kā izveidot failus. Tātad pieskarties, pieskarties b, pieskarties c ir tikai gatavojas izveidot trīs failus sauc, b, un c, kas ir pilnīgi tukšs. Tātad jautājums mani radīt tiem pirmajā vietā ir tikai tāpēc, ka RM ir kā mēs varam noņemt tos. Tātad rm,. Tas ir gatavojas lūgt mani, izņemiet regulāra tukša datne? Un tad es saku jā. Tātad, ja es zinu, ka es gribu dzēst šo failu bez būt prasīts, noņemiet regulāru tukšu failu?, Tad rm, domuzīme, f būs karogu, kas saka, piespiest noņemt, pat pamudinot man, ak, tu esi pārliecināts, ka vēlaties dzēst failu? Jā, es esmu pārliecināts. Tātad rm, domuzīme, FB būs tikai darīt to neprasot. Tātad, pieņemsim veikt dažas vairāk katalogi. mkdir, tmp2, cd, tmp2, pieskarties, pieskarties b. OK. Tāpēc tagad es vēlos, lai novērstu tmp2 kā direktoriju. Tā rm tmp2. Jūs nevarat noņemt tmp2, tas ir direktoriju. Tātad jautājums ir, ka rm nav uzreiz strādāt katalogi. Tas ir tikai domāts failiem, piemēram, nav direktorija failus. Un tā, ko mēs varam darīt, šeit ir rm, domuzīme, r. Kas apzīmē rekursīvi, kas varētu nenozīmē neko jums vēl. Bet, kad jums rekursijas, tas būs nozīmē vairāk. Tātad rm, domuzīme, r, tmp2 gatavojas rekursīvi iedziļināties šajā direktorijā. Tā var pāraugt katalogs tmp2? Jā, iesim uz to. Vai mēs gribam, lai noņemtu tmp2 /? Jā. Vai mēs gribam, lai noņemtu tmp2 / b? Jā. Tagad mēs vēlamies, lai novērstu direktoriju tmp2? Jā. Un tāpēc tagad katalogs un viss iekšā un tas ir noņemts. Ir tehniski komanda rmdir ka jūs varat izmantot, lai novērstu katalogi, bet tas darbojas tikai Tukšas katalogi anyway. Un redzēt, ka, pieņemsim tikai do mkdir, tmp2 vēlreiz. Tmp2, pieskarties. OK. Tātad, ja es mēģinātu, lai novērstu dirtmp2, tas būs saka, uzziņu nav tukšs. Tāpēc es diezgan daudz nekad izmantot noņemt dir komandu anyway, jo rm, domuzīme, r strādās tukšos katalogi un nav tukšas katalogi. Un arī, ja es nevēlos, lai būtu iet caur šo visu procesu piedzīvotu direktoriju un noņemot katru atsevišķu failu, rm, domuzīme, RF, tmp2. Un tagad tas ir pagājis. Kaut jābūt uzmanīgiem par to ir rm, domuzīme, RF. Un tas biedē man pat to ierakstīt jo, ja es nejauši hit Enter vai kaut ko. Tātad rm, domuzīme, RF, Tilde būtu bez pamudinot man, f nav ātri man, tas automātiski noņemt visa mana mājas direktoriju un viss tajā. Tātad jūs domājat, ka tas stulba lieta darīt. Un labi, tas ir. Bet tas var notikt ļoti viegli negadījums, ja, teiksim, es gribēju, lai novērstu mans slīpsvītra vhost katalogs. Un tikai ātri rakstīt, Es nejauši izdarītu. Tas noņems rekursīvi gan manu mājas direktorijā un vhost katalogs šajā konkrētajā direktorijā, kas tikko notiek nepastāv tieši tagad. Bet tas tomēr likvidētu visa mana mājas direktorija. Vismaz, ko nav f, tas liks man vispirms. Un es gribētu būt, piemēram, ak, nē, es nevēlos to darīt. Bet cilvēki, slīpsvītra, tai skaitā man mēdz nokļūt ieradums vienmēr RF-ing. Pat regulāri failus, es varu tikai RM, c, man ir tendence tikai rm, domuzīme, RF, c. Tikai jābūt uzmanīgiem, kad jūs esat RF-ing. SPEAKER 4: Kāda C darīt? ROB: C ir Es runāju par to, ka C failu Šajā direktorijā, ka rm, c. JOSEPH: Un vēl bīstami, ja jūs izmantojat zvaigzne, tas attiecas uz visu, kas ir direktoriju. Tātad, ko es parasti mēdz darīt, ir man būs iedziļināties direktoriju, un es vēlos, lai noņemt visus failus tur. Tātad rm, domuzīme, RF, zvaigzne. ROB: Jā. Rm, domuzīme, RF, zvaigzne. JOSEPH: Un, ja jūs neesat uzmanīgi ko katalogs tu esi - Man nebija temp, bet man bija nejauši manā mājas direktorijā, Tad es noņemt visu manā mājas direktorijā. Un es esmu tiešām darījuši agrāk, un Es domāju, ka jūs esat izdarījuši, pirms, vai Jay ir darīts, ka pirms tam. ROB: Esmu nejauši noņemts - tāpēc ignorēt šo komandu mazliet. JOSEPH: Nav jautri. ROB: Tātad slash bin direktorijā ir ķekars bināro failu, kur būs jāpārzina tiem, piemēram, šķindēt. Nu, šķindēt un būtībā visi šie lietas, ka es skrienu pie komandu līnija ir šajā slash bin direktorijā. JOSEPH: Tāpat ls ir šeit. ROB: Tātad dot, slīpsvītra, ls būtu uzskaitīt šo direktoriju. JOSEPH: Rm ir arī šajā direktorijā. ROB: Es nejauši RM, RF-ed bin, kas noņem jebkuru komandu es varētu iespējams, kādreiz vēlaties. Kas tad es vienkārši pārinstalēt Jaunais Appliance tajā brīdī. JOSEPH: Tāpēc jābūt ļoti uzmanīgiem, Izmantojot šo komandu. Mērķauditorija: [dzirdams]? ROB: Jā. Tas ir arī slikts ieradums, lai nokļūt. Ja jūs novērojat, es esmu tagad - labi, jūs varat nepamanīt, bet mans zoom-in varbūt var. Tāpēc es esmu tagad root @ ierīci. Tāpēc jharvard ir lietotājs, mēs gribam jūs vienmēr izmantot. Sakne ir lietotājs, kam ir atļauja darīt pilnīgi jebko. Tāpēc paziņojums, kad es esmu jharvard, ja es mēģinātu cd - kas ir katalogs, kas? Ak, sakne ir labs piemērs. Tātad cd, saknes. Atļauja liegta. Jo, ja mēs skatāmies uz šo sludinājumu - un atkal, jums nav pilnībā saprast. Bet šīs trīs svītriņas saka ka neļaujiet jebkuru citu lietotājs šajā direktorijā. Un direktoriju notiek pieder lietotājam root. Tāpēc, ka es esmu jharvard un nav kurš nav sakne ir ielaista šajā direktorijā, tas nozīmē, ka es esmu gatavojas saņemt atļauju liegta, kad es mēģināt cd to. Tātad, kad es esmu sakne, man ir atļauja darīt pilnīgi jebko, tai skaitā dzēst svarīgi failus ierīcei un iznīcināt visu lieta. Tātad, tas ir slikts ieradums, lai nokļūt vienkārši klīstot apkārt savu operētājsistēma kā root. Es to darīt anyway. Jautājumi? Un es izietu saknes, palikt kā jharvard. OK. Vairāk attiecīgās komandas. Tā iet atpakaļ mūsu temp, mv komandu nozīmē pārvietoties. Jūs varat pārvietoties. Tagad mēs vēlamies, lai izsauktu to b, tāpēc tagad to sauc b. Vai varbūt mēs vēlamies virzīties b up vienā direktorijā. Tāpēc tagad šajā direktorijā ir tukšs. Es iešu atpakaļ uz manu mājas direktoriju, un mēs redzam, ka b ir šeit, jo home direktorija bija viena direktorija uz augšu no katalogs, b bija iekšā Tur ir arī cp. Tāpēc cp ir kopēt super sadaļu, dot, teksts. Es aicinu to s, dot, teksts. Tagad mums ir gan super sadaļā, dot, teksta, un s, dot, teksts. Tas arī strādā katalogi. Es RF-ED vienu failu. Tā cp - labi, vispirms pamēģināsim KP, TPP tmp2. Tātad, izlaižot direktoriju tmp. Tik līdzīgs RM, noklusējuma darbība ir ne strādāt katalogi. Un atkal, līdzīgi kā rm, noklusējuma uzvedība - labi, panākt, lai to darbu ar katalogi ir, domuzīme, r prom. Tātad, kopēt rekursīvi temp direktoriju uz tmp2. Un tāpēc tagad mums ir gan TMP un tmp2, un kas nav tik noderīgi, jo TMP bija tukša pirmajā vietā. Tmp2. Tagad pieņemsim kopēt tmp uz tmp2. Un mēs redzam, ka tmp2 ir arī failu , jo direktoriju un viss iekšpusē, kas direktorija tika kopēts. Un tas var būt nedaudz noderīgi ja, teiksim, jūs strādājat par problēmu iestatīt vienu - vai tiešām, vēlāk problēma kopas ir vēl svarīgāka, jo tur būs viss ķekars failus un lietām. Bet jūs vienkārši vēlaties, lai split otrkārt, jūs, piemēram, labi, es esmu gatavojas izmēģināt kaut ko atšķiras. Ļaujiet man tikai kopētu visu manu pset1 direktoriju uz pset1 rezerves, lai gadījumā, ja Es galu galā skrūvēšanai lietas uz augšu, es varu iet atpakaļ manā rezerves direktorijā. Ir vairāk piemēroti veidi versijām atbalstīt savu kodu, bet tas ir vienmēr ātrs veids, lai tikai padarītu pārliecināts, ka jums ir kopiju kaut ka jūs gatavojaties mainīt. Tāpēc echo ir arī vienreizēja komanda, kas veida sillily būs tikai drukāt komandrindas tieši to, ko jūs vēlētos atkārtot. Tā echo hi. Mēs vienkārši izdrukāt hi. Echo hello world. Mēs drukāt sveiki pasauli. Kas stājas lietošanai, ja jūs sākt apvienojot komandas. Un atkal, nav gaidīt, lai jūs pilnībā saprastu šo vēl, bet tas ir kaut ko redzēt. Un tad, ja jūs Googling piemērus vai tu saproti, ko vēlaties darīt kaut ko, tas var būt noderīgi. Tātad pieņemsim, kā, piemēram, tāpēc ls, domuzīme, l. Tātad, šeit es redzu produkciju gada ls, domuzīme, l. Un es saku, OK, es gribu uzglabāt, ka failā. Visu šo produkciju šeit, es gribu ielikt atsevišķā failā. Tāpēc tas nedaudz lielāks par simbolu ir tas, ko mēs ejam, lai izsauktu. Mēs esam novirzot izejas failā. Sauksim failu blah, jo tas ir ko es parasti vienmēr to nosaukt. Tāpēc tagad mēs redzam, mums ir failu blah šeit. Un, ja es atvērtu to uz augšu, es redzu, tas ir tieši izejas no komandu ka es tikko bija. Un tāpat, jūs varat - ja tas bija izeja uz failu, šis ir saņemt informāciju no faila. Kas ir komanda, kas I - JOSEPH: Es domāju, ka jūs varat izmantot mazāk vai vairāk, droši vien. ROB: Bet kā par nedaudz mazāk blah? Es nezinu. Ja jūs nākt uz šo scenāriju, piemēram, tur ir psets, ka tas ir noderīgi. JOSEPH: Jūs varat pipe to atbalsi. Caurules ar failu atbalsi to redzēt. ROB: Tas ir caurules. JOSEPH: Sorry. ROB: Nu labi. Tātad šis ir izeja uz failu. Tas ir iegūt tekstu no faila un nodot to ar programmu. Un jūs arī redzēt šo puisis. Tātad šis ir veids, kā to abiem vienlaicīgi. Un patiesībā, es ieviest divus jaunus komandas, tikai, lai izmantotu to. Vēsture ir ērts komanda, kas ir tikai gatavojas izdrukāt sarakstu kaut ko es jebkad esmu palaist komandrindu. Tātad mēs redzam šeit visu, kas man ir vadījusi visu šo laiku. Daudz ls s. Un cita noderīga komanda grep, ka tā mērķis ir meklēt vairāk teksta meklē modeļus, labi, meklē Kāds jums vēlaties to meklēt. Un tā parocīgs lietošana šeit ir, teiksim Mēs vēlamies, lai greifers vēsturi. Un es vēlos meklēt komandām kur es - kas ir noderīgs viens meklēt? JOSEPH: [dzirdams]? ROB: Vai pieņemsim tikai meklē visiem pieskaras, lai kāda iemesla dēļ. Tātad, tas ir tas, ko tas izskatās. Un jums nav pilnīgi saprotu, ka. Bet ideja ir šeit, vēsture dod pats izejas tas notika šeit ja tas drukāšanu veic visu vēsture viss, ko es jebkad esmu palaist. Mēs tad iet, ka - tā vietā, drukāšanas to uz ekrāna, mēs vēlamies iet, ka, lai komanda grep ko meklē visi gadījumi vārdu pieskārienu. Un tāpēc, izmantojot šo kombināciju instrumenti vēsturi un grep, es redzu, OK, šeit ir visas komandas es esmu jebkad palaist, un šeit ir nedaudz izplatīts. Mēs esam apakšā. Un tas ir arī dod man komandu Es tikko bija, ka bija vārds touch tajā. Bet caurule ir diezgan noderīga lieta par apvienojot vairākas programmas. Un patiesībā, tas ir īsceļu let man izejas vēsture iesniegt blah, un ļaujiet man grep izmantojot failu blah par to, ko es gribu, lai apskatīt. Tādēļ caurule ir tikai saīsne par šiem diviem komandas. Jā. SPEAKER 4: [dzirdams]? ROB: Jā. Kas ir - Oh. Pieņemsim pārbaudīt. Tātad kaķis, suns, zivs. Tāpēc es vēlos, lai grep. Domuzīme, r, atkal būs rekursīvi, tāpēc es gribu nolaisties uz leju visi katalogi. Es gribu, lai rekursīvi grep visiem - un ļaujiet man uz laiku nokļūt šis no tā. Ignorēt mani. OK. Tāpēc es gribu, lai uz laiku grep par visi gadījumi vārdu zivis. Un tāpēc šeit to, ko es daru, ir grepping rekursīvi par vārdu zivīm. Un zvaigzne ir visas no tām faili šajā direktorijā. Un tā tas deva man Atļauja liegta, jo tas nav atļauts lasīt, ka īpaši fails. Bet tā konstatēja zivis failu, pārbaudi. Es varētu arī teikt, konkrēti, es tikai vēlaties meklēt failu blah, jo tādā gadījumā tas nebūs atrast neko. Es tikai vēlos izskatīties failā, testu. Tas atradīs zivis. Tas ir diezgan noderīga komanda zināt kopumā. Ir dažas alternatīvas grep , kas ir vajadzētu būt vairāk programmētājs draudzīgs, bet man ir tendence joprojām krist atpakaļ grep. Jautājumi? OK. Vai ir citas komandas? Oh. Tikai vienreizējs viens, ka es vienmēr atrast, lai būtu jautri, ir cal. Tāpēc paziņojums, kad es esmu šī jaukā pilnekrāna režīmā, man nav, piemēram, top rīkjoslā vai neko. Tāpēc cal tikai dod man jauku maz kalendārs, kas ir labi tagad nogriezts, es pieņemu. Bet jauka maz komandu. JOSEPH: Tas ir [nedzirdama]. Citas komandas, kas jums varētu būt redzējuši ietver šķindoņa un darīt. Mēs iet pār tiem sīkāk vēlāk. Bet, ja jūs esat strādājusi par PSET, jums vajadzētu būt iepazinušies ar tiem. ROB: Nu labi. Jautājumi par komandrindas lietām? Labi. Tāpēc pieņemsim pāriet uz dažām C-related stuff. Mainīgie math. OK. Tāpēc, tāpat kā mums bija math Scratch, Jūs varat arī izmantot math C. Pirms mēs nokļūt, ka pilnībā, tik mainīgie. Atcerieties, ka, ja jūs atzīt mainīgais, piemēram, int x vai peldēt y, jums ir arī tā rakstīt pirms mainīgā nosaukums. Tāpēc veidi, mēs esam redzējuši līdz šim ir int, peldēt, dubultā, ilgi ilgi, ko es nav tiešām zināt, ja mēs esam redzams, ka līdz šim. Ir daži citi tiem. Mēs esam redzēt char. Tur ir īss, kas ir tāpat kā tas ir pretējs ilgi ilgi, kur tas ir mazāks nekā vesels skaitlis. Mēs arī esam redzējuši virkni. Tātad, kas ir īpašs par string? Tāpēc es teiktu, ka tas ir ne gluži tāpat int? SPEAKER 4: Tas nav īsti nepastāv. ROB: Jā. Tāpēc vienīgais iemesls, mums ir virkne ir tāpēc, ka tad, kad jūs hash, ietver cs50.h. Un mēs redzēsim piemērus šo vēlāk - oh, ka nav norāžu, ka labi - kur cs50.h dara kaut ko pa līniju tipa def, char zvaigzne, stīgu. Un tā tas ir saprotams, ka mums nav pat zināt, kas char zvaigzne ir vēl. Bet tas ir saprotams, mēs vēlamies virkni. Jebkura vieta, kur jūs esat, izmantojot virkni, jums varēja izmantot char zvaigzne, kas patiesībā ir veids, kas pastāv C valodā. Bet mēs nokļūt, ka. Ak, un tas iet pa labi atpakaļ. Veikls. Tātad pats ar bool kur patiess un nepatiess. Tas nav īsti iebūvēts tips C Tā vietā, tas ir tikai, vai tas ir vērtība nulle? Tad mēs tikai apsvērt ka tā ir nepatiesa. Vai tas ir vērtība - labi, tas ir kāds vērtību, kas nav nulle? Tad mēs uzskatām, ka, lai būtu patiesība. Tātad, viens ir taisnība, divi ir taisnība, kaut kas nav nulle, ir taisnība. Tātad tie ir tie. Jautājumi par pasludināts mainīgo un mainīgo veidi un visu, kas? Jā. SPEAKER 4: Par ilgi ilgi, grāmatā, tas, ka tā bija ilgi ilgi int. Bet vienkārši ilgi ilgi strādā? ROB: Tātad šie tipa modifikatori. Tā int x. Tātad, mēs varam arī teikt, neparakstīts int x. Mēs varam teikt īss int x. Mēs varam teikt, ilgi ilgi int x. Bet diezgan daudz jebkuru no šīm lietām, es tikko teica, neparakstīts int, īss int, ilgi ilgi int, jūs varat atbrīvoties no int, un tas būs tikai pieņemt ka jums nozīmē int. Tāpēc neparakstītu x, kas nozīmē tikai to - jūs zināt, kā parasti ar int, Jūs varat teikt, x ir vienāds ar negatīvu 3? Ar neparakstītu int, jūs nevarat. JOSEPH: Un atkal, par kameru, Jautājums ir, kāda ir atšķirība starp ilgu ilgu int un tikai ilgi ilgi? ROB: Jā. Tāpēc es gandrīz nekad rakstīt ilgi ilgi int. Es rakstīt ilgi ilgi. JOSEPH: Kādi jautājumi? ROB: OK. Tik dumjš maz atgādinājums, ka, kā mēs deklarēt mainīgo un sāktu mainīgo un atzīt citu mainīga un inicializēt tas viss vienā solī. Tik mainīgā deklarācijas un inicializācijas mainīgais nav līdz bet var būt uz vienas līnijas. Tāpēc mums ir standarta math operatoru ka esat pieradis - plus, mīnus, dalīt, laiki. Tur ir arī moduli, ko mēs redzēsim. Nav, vismaz C, iebūvēts jaudas Kāpināšana caret operators. Nu, ir caret operators bet tas nav jaudas. JOSEPH: Bet tas nav Kāpināšana, Jā. ROB: Nelietojiet caret pieņemt, ka tas nozīmē, piemēram, kvadrātveida vai neatkarīgi. Tāpēc dažas lietas, kas jāpatur prātā, par sadalīšanu. Es stāvēt. Tāpēc pasludināja inicializēt atbilde. Tāpēc mēs esam sakot float atbildi ir 1 dalīts ar 10. Drukāt atbildi līdz diviem cipariem aiz komata. Un tas ir tāda veida lieta, ka es tas cilvēks printf saprast, ka ko heck tas%, dot, 2.f nozīmē? Un tas nozīmē tikai to, labi, ignorējot 0.2. Un%, f ir tas, ko mēs izmantojam drukāt peldēt. 0.2 saka, drukāt, ka peldēt līdz diviem cipariem aiz komata. Tāpēc šī programma ir par kļūdu, un jūs varētu esmu redzējis šo pirms dažās pirms CS kursu. Bet kas tas ir bug? SPEAKER 5: Zero. ROB: Jā. Tātad, kad mēs sakām, atbilde ir vienāds 1 dalīts ar 10, mēs gribam atbildēt būt 0.1. Bet 1 dalīts ar 10, 1 ir skaitlis, 10 ir vesels skaitlis. Un tad, kad mēs vesels skaitlis dalīts ar skaitlis, mēs ejam, lai saņemtu atpakaļ vesels skaitlis. Tātad 1 dalīts ar 10, ir 0,1. Tā kā tas ir nepieciešams, lai dotu mums vesels skaitlis, tas ir tikai gatavojas mest prom, ka aiz komata un teikt, ka atbilde ir 0. Un tad, kad mēs drukāt atbildi šeit tas notiek, lai drukātu 0.00. JOSEPH: Un tāpat kā piezīmi, tā faktiski met prom to, kas ir pēc tam, kad komatu. Tātad, ja jūs, nevis bija 6 dalīts ar 10, Jūs varētu domāt, ka tas dotu jums 0,6, un tad jūs varētu noapaļot līdz 1. Bet patiesībā, kas notiek, ja tā tipa uzdevumus, tas ir, ka tas samazinās, kas ir aiz komata. Tātad 0.6 nav kļuvis 0. ROB: Jā. Un mēs sakām saīsināt par to. Tātad, ja jūs nodot int, decimal tiek saīsināts. Tāpēc noteikt, ka - tur ir faktiski divi. Un es esmu gatavojas darīt, ka otro, jo tas viens ir daudz vieglāk noteikt. Tāpēc viens noteikt ir izmantot pludiņiem sadalīšanas. Un tiešām, jums ir tikai ka viens no tiem pludiņš. Bet tas ir nedaudz skaidrāks tikai lai gan no tiem pludiņi. Tātad 1,0 dalīts ar 10,0 ir dalot divas pludiņiem. Tātad atbilde galu galā ir peldēt, un tāpēc jums būs pareizi drukāt 0,10 šeit. Kaut kas nedarbojas tik labi par to, ka ir labi, protams, tas bija viegli pietiekami, lai pārvērstu 1 līdz peldēt, padarot to 1.0. Bet ko tad, ja tā vietā mums bija divi skaitļu piemēram, int x ir vienāds ar 1 un int y vienāds ar 10, un tad mēs vēlējāmies to do x dala ar y? Tātad tas nav viegli tikai darīt x.0 vai kaut ko. Tāpēc noteikt to, kas ir izšķirošā. Tāpēc liešana ir veids, C pārvērst no viena mainīga veida uz citu. Tātad, ar 1 ir vesels skaitlis. Un ieviešot šo peldēt priekšā tā, mēs esam liešana no 1 līdz apgrozāmos līdzekļus. Un tā tas būs pārvērst 1 līdz 1,0. Un tas būs pārvērst 10 līdz 10,0. Un tad lietas uzvedas līdzīgi iepriekšējā versijā mēs tikko parādīja ja, kā plānots, mēs 0.10 un tas būs drukāt to. Un mēs varam darīt to ar mainīgie, too. Tātad, mēs varam teikt, float x dalīts ar float y. JOSEPH: Kādi jautājumi? ROB: Tātad tāpat kā regulāru math, mums ir operatora prioritāte. Tātad matemātikas klasē, jūs, visticamāk, , lai izsauktu to secību operāciju. Lūk, oficiālais termiņš ir operators prioritāte. Bet operators prioritāte, vai vairums operatoriem, ir, kā jūs varētu gaidīt. Tātad tāpat kā matemātika, 2 reizes 10 ir būs sagrupēti ciešāk nekā šie 10 dalīts ar 2 un tad 2. Operāciju kārtība, tas būs jādara 2 reizes 10, 10, dalot ar 2, un pēc tam tas būs jādara 20 plus 5 plus 2. Tātad, tas ir, kā gaidīts, un jūs varat izmantot iekavās grupēt izteiksmes. Jūs nevarat izmantot kvadrātiekavas grupēt izteiksmēm. Yeah? SPEAKER 5: Vai jūs faktiski tikai iet atpakaļ vienu sekundi? Vai jūs cast int par virkni? ROB: Tātad C, jūs varat nodot jebko Jūs vēlaties, lai kaut ko vēlaties. Tas nenozīmē, ka tas ir laba lieta darīt. Tātad, kad jūs cast int lai string, tas nozīmē - un mēs nokļūt šajā daudz rūpīgāk - JOSEPH: Daudz vēlāk. ROB: Es negribēju teikt, daudz vēlāk, tāpēc es mēģināju mainīt savu spriedumu. Mēs nokļūt to daudz pamatīgāk vēlāk, ja tiešām, ja jums ir string mainīgais - tāpēc virkne var būt patvaļīgi ilgi, vai ne? Un mēs esam teicis, ka int ir četri baiti, un ilgi ilgi ir astoņi baiti, un pludiņš ir četri baiti. Tātad stīgu, tāpat kā int, ir tikai noteiktu skaitu baitu uz to. Un tas būs četri baiti. Bet virkne var būt diezgan patvaļīgi ilgi, vai ne? Tātad sveiki pasaule jau, ja tas ir 10 rakstzīmes vai kāds, kas ir jau būs vairāk nekā 4 baiti Es varu ievietot virkni. Un tā kā stīgas tiešām strādā ir tas, ka tie ir, kur atmiņā, ka virkne tiek turēti. Un tā vairāk nekā šeit, kad es saku virkne x vienāds Hello pasaulē, iekšpusē X tikai saku, ak, hello pasaule ir saglabāts šajā konkrētajā vietā atmiņā. Tātad, ja mēs cenšamies nodot veselam skaitlim, lai string, tad mēs cenšamies interpretēt daži izlases daļa no atmiņas kā virkni. Un tas gandrīz vienmēr pārtraukumiem lietas. JOSEPH: Bet, ja tas mulsina jums, mēs būsim kas uz to dziļāk vēlāk. ROB: Jā. Tas ir, ja jūs gatavojas nokļūt norādes. Un tas ir būtisks gabals Divu nedēļu laikā pēc šo kursu. SPEAKER 6: Vai tas darbojas, piemēram, objektu citās valodās, vai nav īsti? ROB: Tātad, citās valodās, objektu būtu pārstāvētas, izmantojot norādes. Tas nav tas pats, though. Jebkurš domas? JOSEPH: Nē. Nekādas domas. ROB: OK. JOSEPH: Next. ROB: Just iet ar to. Labi. Tā moduļa. Tāpat kā mums ir plus, mīnus, dalīt un reizināt. Tāpēc moduli ir viens no jums var nebūtu redzējis. Un tā vienkārši saka, dod man atlikušo. Tātad, 55% 10. Darīt 55 atlikušo dalīts līdz 10 būs 5. Tātad, 55% 10, ir 5. Un 3% 5 būtu 3. 8% 8 būs 0. 16% 15 būs 1. JOSEPH: Viena lieta atzīmēt ar to, Arī tas var nedarboties, kā paredzēts ja jūs izmantojat negatīvu skaitli. Tik negatīvas 5% 4, daži cilvēki varētu domāt, ka ir - ko jūs domājat negatīvs 5% 4 būtu? SPEAKER 5: One. JOSEPH: Tātad daži cilvēki saka vienu, daži cilvēki saka negatīvas. Bet ko - ROB: Es pat nebūtu teica viens no tiem. JOSEPH: Divi, sorry. Daži cilvēki saka - ROB: Three. JOSEPH: Three? ROB: negatīvs - kas bija - negatīvs pieci - JOSEPH: Trīs, trīs, trīs. Piedodiet. Jo modulēt, parasti tad, kad jūs esat redzējuši kaut kur citur, tas parasti nozīmē, atgriezties pozitīvu skaitli, vai ne? ROB: Tātad, kad mēs sakām matemātikā,% 10 s, viņi parasti vēlas, lai dotu jums - ja mēs mod par 10, tad mēs sagaidām, lai iegūt skaitli starp 0 un 9. Šeit, tas nav tas gadījums, ka jums saņems negatīvie skaitļi atpakaļ. JOSEPH: Tik negatīva 5% 4 būtu negatīvs 1. ROB: Bet tas ir reti, ka tu esi mod-ing negatīvie skaitļi, lai sāktu ar. Izlaist šo. JOSEPH: Jā. ROB: Meh. OK. Tātad viena pēdējā lieta, norādīt par pludiņi tas ir bīstami uzvedību, bet pludiņi nav precīza pārstāvība. Tā iet atpakaļ uz baitu atkal, atcerieties ka int vienmēr ir četri baiti, un pludiņš vienmēr ir četri baiti. Tāpēc Lucas piemērs ir diezgan laba. Tāpēc domāju, ka par 1 dalīts ar 3. Tā 0,3333333. Ja man ir tikai 32 biti, kā var Es glabāt 0,33333 tieši? Un varbūt, kāda iemesla dēļ, jūs sakāt, labi, labi, pieņemsim tikai teikt, ka šis konkrētais 1011001, pieņemsim tikai teikt, ka vajadzētu būt 0,333333. Nu, jums ir tikai ierobežots skaits šie biti, tāpēc tas ir iespējams pārstāv katru peldošo punktu vērtība, tikai 32 bitu. Nu, tas ir neiespējami, lai pārstāvētu kādu peldošā punkta vērtība, bezgalīgs - labi, ņemot vērā jebkādu noteiktu skaitu bitu. Tātad jautājums ir, labi, ja mēs izmantojām drukāt līdz diviem cipariem aiz komata, mēs neesam pareizi saņemt atbildi 0,10. Bet zem motora pārsega, tas ir patiešām tiek saglabāti kā pēc iespējas tuvāk 0.10 jo tiem bitiem var pārstāvēt. Tas ir uz nākamo slaidu? Vai ne? JOSEPH: Jā, tas ir tik. ROB: Blegh, blegh. JOSEPH: Jā, jūs varat vienkārši pull piezīmes pat mazliet. ROB: Es esmu tikai gatavojas, lai tuvinātu kas par pēdējo par to. Ak mans Dievs, tas ir [nedzirdama]. Tā, ka numuru. Tas ir tas, kas tiks drukāts ja mēs palaist šo programmu. Un paziņo, ka tas nav īsti liels galā ja mēs esam tikai rūpējas par, piemēram, 02:58 zīmēm aiz komata. Tāpat kā mēs tikai sākotnēji iespiests 0.10, un tas ir iemesls, kāpēc mēs redzējām nekas nepareizs. Bet tad, kad mēs sākam nokļūst precīzu, precīzu skaitu, ka tas ir pārstāv, mēs redzam, ka tā nevar tieši tā pārstāv 0,1. Un daļa no problēmas šeit ir līdzīgs, labi, tas ir jauki, bet, labi, Pirmais, kas notiks, ja mēs mēģinājām darīt, Atbilde ir vienāds vienāds ar 0,1? Ir tas, ka gatavojas atgriezties patiess vai nepatiess? Un tāpēc ir grūti pateikt. Es domāju, ka tas tiešām varētu atgriezties taisnība. Būs tas pirmais - Es nezinu. Atbilde ir, kad jūs sākat darīšana ar peldošā komata vērtībām, jūs diezgan daudz nevajadzētu izmantot vienlīdzību jo šīs neprecizitātes. Un visi jūs zināt, tas ir simtā zīmi aiz komata, ka peldošā komata nevarēja pareizi rīkoties. Un tā vienlīdzība vienkārši nespēj pat lai gan numurs - ja Jums ir bijusi izmantojot precīzus skaitļus, to skaits ir ir tieši tāds pats. Tā gaitā, piemēram, 50 aprēķini, izmantojot šos peldošs punktu vērtības, kļūda var veidot augšu un uz augšu un uz augšu, un lietas tikai iegūt nepareizi. JOSEPH: Un tur ir bijis ļoti slavens piemēri šā procesa. Piemēram, NASA inženieri ir gotten šo nepareizi, radot raķetes eksplodēt gaisa, kad tie esam bijis uzsākta. Un daudz jautājumu, piemēram, ka. So yeah. SPEAKER 6: Kad jūs sakāt 0,3 f, tas saīsināt pārējo? Vai tas noapaļot uz augšu vai uz leju? ROB: Vai printf ap to? JOSEPH: Es domāju, ka printf saīsina. ROB: OK. Tātad, mēs varam tāpat iet pretējā virziens tas, kur šajā gadījumā tuvākais varētu pārstāvēt 0.1 bija ar šo numuru. Tuvākais tas varētu pārstāv 0,2 ir pretējā virzienā, 0,199999996356 vai kaut ko. Tātad, ja mēs devāmies šajā virzienā lietas, tad printf 0.3 f varētu atgriezties 1.99 vietā 2.00. JOSEPH: Un es neesmu pilnīgi pārliecināts par to. Jūs varētu vēlēties, lai rakstītu mazs, nedaudz programmu, lai vienkārši pārbaudītu to. ROB: Lai gan, tas, ko mēs esam pārliecināti, ka Ja esat mēģinājuši nodot, ka, lai int, un liešana uz int gatavojas izraisīt to saīsināt decimāldaļu, ja jūs mēģināt nodot 1.9999999 int, jūs saņemsiet 1. Un tāpēc jums vajadzētu parasti izmanto kārta funkcija math bibliotēkā. Jautājumi? OK. JOSEPH: Tā virzās uz apstākļiem un Būla izteiksmes. Tātad jūs esat redzējuši šo pirms tam. Un faktiski, ļaujiet man pārliecinieties my dators ir pareizā formātā šeit. Telpa. Atvainojiet, mēs esam nāksies risināt Mazliet ar nogriešana pie malas. Bet jā, jūs puiši ir redzējuši šo pirms nulles. Tāpēc tas šeit ir izteiksme , kas tiek izmantots nosacījuma apgalvojums. Tātad atbilde ir lielāka par nulli gribas pateiks, patiess vai nepatiess. Un tie ir ļoti svarīgi, jo tie ļauj mums ieviest loģika mūsu kodu. Tā, piemēram, tas ir programma rakstīts nulles, kas prasa lietotājam par skaitlim un stāsta viņiem, vai vesels skaitlis, ka viņi deva jums bija pozitīvs vai negatīvs skaitlis. Un konversijas vairāk nekā šeit, lai redzētu, ir jums vispirms izdrukāt paziņojumu, man vesels skaitlis. Un tad jūs lūgt tos veselam skaitlim. Un tad jūs izmantojat nosacītu loģiku vairāk šeit, lai pārbaudītu, vai šis skaitlis patiesībā bija lielāks par nulli, vai ne. Tātad, šeit mums ir Būla izteiksme iekšpusē nosacījuma Ja paziņojumu. Vai ir kādi jautājumi? Vai ir kādi jautājumi par šo? OK. Tātad, tur ir vairāk nekā tikai lielāka nekā, protams. Jūs varat izveidot Būla izteiksmes izmanto lielākā daļa no lietām veidu tu varētu domāt par math. Tā pārsniedz. Tas būtu mazāk nekā. Piedodiet. Un atstarpes. ROB: nedod Dievs jūs atstāt to. JOSEPH: Nu labi. Tātad lielāks, mazāks, lielāks par vai vienāds ar mazāk par vai vienāds ar. Mēs izmantojam dubultās vienāds, lai pārbaudītu vienlīdzība, jo atsevišķu vienāds līdzekļus uzdevums, vai ne? Jā. Un tad mēs varam arī nav vienāds ar izmantojot izsaukuma zīmi, ir vienāds. Un šī izsaukuma zīmes simbols var arī jāpaplašina tā, ka, ja jūs vēlaties, lai apmainītu jebkādu Būla izteiksme, jūs varat darīt. Tātad šis novērtēs to patieso tikai tad, ja atbilde ir mazāka vai vienāda ar nulli. Kādi jautājumi par šo? OK. Tātad jūs varat arī kombinēt šos izteiksmes izmanto loģiski un un loģiski Or. Tāpēc tas ir tikai un simbols, kas būtu Shift, 7. Un tas ir caurules simbols, kas ir ne zemāku gadījums L. Tas ir viens tas ir labi virs Enter taustiņu. Tātad jūs izmantojat divus no šiem, kas simbolizē loģisks un loģiski Or. Tāpēc šī būs tikai atgriezties true tad, ja atbilde ir viens, divi, trīs vai četri. Un tas būs tikai atgriezties true tad, ja atbilde ir ārpus tā abās pusēs. Tātad, tas nav viens, divi, trīs vai četri. Un, kā jūs varētu izmantot ka izteiksmē - Rob: Vai nulle vai pieci. JOSEPH: Zero vai pieci. Piedodiet. Jā, jā, jā. OK. Un vairāk šeit tagad, tāpat jums varētu izmantot šo izteicienu, mazāku izpausme pusē Ja nosacījuma paziņojumu, jūs varētu arī izmantot to par Tāpat, tikai ievietojot to iekšpusē iekavas no IF. Tāpēc šī printf tikai uguns, ja atbilde ir viens, divi, trīs vai četri. Kādi jautājumi par apvienojot izteiksmes? Tātad tur ir vēl viens nosacījums Konstruēt mēs saucam Ja / Else. Tātad, būtībā, tas tagad nozīmē, OK, ja kaut ko es gribēju, lai pārbaudītu nebija taisnība, tad iet uz citu, un veikt šo citu darbību. Tātad šajā konkrētajā gadījumā, es jautāju lietotāju par skaitlim. Ir vesels skaitlis, kas ir lielāka par nulli? Jā? Nu, tad viņi izvēlējās pozitīvs skaitlis. Ja ne, tad tai jābūt bijis negatīvs vai nulle. Tātad jūs noplūktiem negatīvu skaitli vai nulle šajā gadījumā. Jā. Vai nulle. Un tad mums ir arī Ja / Else, Ja un Else. Tātad tas ļauj mums veikt virkni lietas, tikai tad, ja pirmie neizdoties. Tātad šajā gadījumā, tagad mēs nesam pēdējais jums izvēlēties nulle. Tātad, ja viņi nav pacēla pozitīvu, ne negatīvs skaitlis, tad tie ir ir palielinājies nulle. Tāpēc tas tikai iet uz leju ķēdes, kā šis. Tāpēc piemērs tam, kā Ja ir atšķirīgs no - Ja / Else atšķiras no tikai secība IF. Un tas ir kopīgs jautājums, ka cilvēki uzdod, ir, labi, ja jums patīk 95 CS50, kāda būs šī Programma jums saku? SPEAKER 5: Tev ir A. JOSEPH: Jā. Jums katru viens no tiem labi. Jums ir A, jums ir B, jūs ieguvuši C un D, ​​vai ne? Tātad visi šie iegūt vērtēta lai. Tāpēc, kamēr 95 ir lielāks par 90, tas ir arī lielāka par 80, tas ir arī lielāks par 70, un tas ir arī lielāka par 60. Tātad jums visas šīs pakāpes. Un es pieņemu, jūs varētu tikai vēlos A. Veids, kā noteikt, kas ir, lai aizstātu tiem, kuriem ir cits / Ja 's. Tātad šajā scenārijā, tā uzskata, ka 95 ir lielāks par 90, un pēc tam tas nedrīkst novērtēt pārējo par paziņojumiem. Kādi jautājumi par šo? Tātad tur ir vēl viens nosacījums veida struktūru, kas mums ir šeit, ko mēs zvaniet slēdzi paziņojumu. Tātad tas ļauj jums, lai būtībā pārbaudīt kāda vērtība numuru jūs likts uz slēdzis apgalvojums ir. Tātad šajā scenārijā, mēs esam pārejot no n, un mēs esam sakot, oh, ja n ir viens, pēc tam izdrukāt šo paziņojumu. Un tad pārtraukums, kas nozīmē izeju no slēdža aprēķinā. Ja tas nav viens, tad, labi, tikai galu galā pārbaudīt visas no šīm lietām. Un tā pārbauda, ​​vai tas ir viens vai divi vai trīs, un tas drukā atbilstoši. Un ko tas noklusējuma atslēgvārds šeit lejā līdzekļi ir, ja tie nav pievienoties jebkurai no tiem, tad saka nederīgs. Tātad pieņemsim, ka es lūdzu n un lietotājs dod man četri. Nu, tas atbilst Nevienā no šiem gadījumiem, tāpēc tas būs izdrukāt to, kas ir noklusējuma sadaļā. Jā, jautājums? SPEAKER 5: Jūs varat izmantot Būla izteiksmes vietā viens, divi, trīs vai? JOSEPH: Tātad jautājums ir, jūs varat izmantot Būla izteiksmes, nevis vienā, divi, un trīs? Un C, es uzskatu, ka jums nevar darīt. Bet arī citās valodās, ko jūs varētu saskarties beigās semestris, piemēram, JavaScript, jūs varat. Nu, jums būs, lai aprēķinātu pirmo šī vērtība un pēc tam izmantot to slēdzis paziņojumu. Yeah? Rob: So daļa labā slēdzi pārskatos, ir domāt par, ja jūs šo jo ja / cits, tāpēc, piemēram, ja n ir vienāds ir vienāds ar vienu vai neatkarīgi. Cits / Ja n ir vienāds vienāds ar divi, neatkarīgi. Cits / Ja n ir vienāds vienāds ar trīs. Tā kā programma darbojas, ir tas būtu secīgi iet uz leju šis saraksts un pārbaudīt, ir n vienu? Nē. Ir n divi? Nē. Ir n trīs? Jā. Izdarīt. Bet ar slēdzi paziņojumiem, tas ir tiešām varētu sastādīt tā, lai būtu ļoti ātri. Un, tiklīdz tas saka slēdzis, tas saka, viss ir labi, n ir divi, es esmu Nekavējoties gatavojas lēkt uz vietu, kur Es esmu vajadzēja sākt izpildīt. Es neesmu gatavojas vispirms pārbaudīt, n ir viens, ir n divas? To var nekavējoties sākt darīt kas tas ir paredzēts darīt. Un tāpēc, ka tas nevar veikt Būla nosacījumus. Vai arī tas būtu jādara kārtas, piemēram, labi, ir n lielāka par nulli? Pārējais ir n lielāks par 10 vai neatkarīgi. JOSEPH: Šajā gadījumā, ja jūs izmantojāt Ja / Else, ja ir, tad slēdzis būtu palaist aptuveni trīs reizes ātrāk nekā ja / cits, ja tas. Mēs varam organizēt slēdzi tādā tā, ka mums nav pauze pēc tam, kad katra no gadījumiem. Tātad šajā gadījumā, es esmu šķērssienu skaitļi, kas mēs izvēlēties vienā un divi ir nav liels skaits, un trīs ir liels skaits. Tātad, šajā gadījumā, ja n ir viens vai divi, tas dosies lietu, un tad tas būs izkrist pa, jo nav pārtraukuma. Un tas galu galā šeit. Tātad, ja mēs izvēlēties vienu, tā darīs printf un tad pārtraukums tā, ka neviens no tas ir izpildīts. Un, protams, ja tie stājas trīs vai kaut kas cits, tad tas tiks izlaist tiem, nevis iet uz turieni, un tas veiks vietā atbilstošo līniju. Vai ir kādi jautājumi par šo? Jā? SPEAKER 4: Vai jums kļūda, ja jums bija pārtraukums pēc lietas vienā, bet tas nebija kaut ko to darīt? JOSEPH: Tātad jautājums ir jūs saņemsiet kļūda, ja jums ir pārtraukums pēc Gadījumā, ja viens bet tur neko darīt? Un atbilde ir nē. Jums nav faktiski nokļūt kļūda. Jā, mm hmm. Tā kā sava veida lielas izmaiņas šeit Es esmu gatavojas likt printf šeit. Whoops. Tātad, kādi būtu to izdrukāt, ja Man viens ir kā priekšnodokli? Jā. Tas pateiks, tas nav ņēmusi liels skaits divas reizes, vai ne? Jo tas skāra šo pirmo gadījumu, tas nebūtu pārtraukumu, un tas samazināsies līdz otrā gadījumā. Kādi jautājumi par šo? ROB: Vai jums ir cits jautājums? JOSEPH: OK, cool. Labi. Tātad tur ir kaut kas cits, ko mēs saucam trīskāršo operators, kas ir pamatā aizstājēju sintakse darīt Ja un tad Else. Un tas ļauj jums darīt to visu vienā rindā. Tātad šajā konkrētajā programmā, Es esmu jautā lietotājam par n. Un, ja n ir lielāks par 100, I teikt viņiem viņi paņēma lielu skaitu. Vēl es viņiem saku viņi paņēma nelielo skaitu. Tātad, mēs varam izmantot šo ļoti ilgu sintaksi, string, S, un pēc tam pārbaudīt, ja n ir ir lielāks par 100, un piešķirt tas attiecīgi. Bet mēs varam padarīt to daudz vairāk kodolīgi izmantojot šo trīskāršo operators sintaksi kas ietver jautājumu zīme un resnās zarnas. Tātad jautājuma zīme būtībā uzdodot jautājumu, vai ne? ROB: Varbūt tuvinātu to. JOSEPH: Jā. Labs punkts. Tātad šis ir trīskāršo operators. Es vispirms uzdot jautājumu, n ir lielāks par 100? Ja tā ir, tad es izpildīt pirmo daļa pirms kolu. Ja tā nav, tad es izpildīt otrā daļa pēc resnās. Tātad, ja n ir lielāks par 100, tad tas paceļ augstu un liek kas stājas virkne s. Ja n ir mazāks par 100, tas paceļ zemas un tad liek kas stājas stīgu s. Tā, kas kondensējas šo lielo gabalu leju tikai šajā vienā rindā. SPEAKER 5: Vai tas ir populārs? JOSEPH: Jā, tas ir diezgan populārs lietas, kur būtībā vēlaties do piešķiršana, balstoties uz daži stāvokļa veida. Un šajā gadījumā, mēs cenšamies lai piešķirtu vērtību virknes s. Tas nav tik - Es domāju, man nav īsti dod tas citos gadījumos. Bet tas ir īpaši noderīgi, šo uzdevumu. ROB: Tas ir diezgan bieži modelis ja jums ir kāda mainīgais, kas jūs teiksiet, ja kaut kas, kas šis mainīgais vienu vērtību; cits, kas šis mainīgais citai vērtībai. Un tas ir scenārijs ja izmanto trīskāršu. JOSEPH: Un jūs ietaupīt daudz līniju, labi? Un tas tikai padara jūsu kodu apstrīdami mazliet vieglāk lasāmu. Jā, jautājums? SPEAKER 6: Par trīskārši, vai jūs varētu iet, String s vienādības s, jautājuma zīme? Un tad jūs varētu būt, teiksim, piecas dažādas iespējas. Un atkarībā no tā, skaits n bija, jūs izvēlēties vienu no tiem? JOSEPH: Tātad jautājums ir, vai ir veida sintakse, kur jūs varat darīt virkni s ir vienāds ar N, un pēc tam ir vairāk nekā divi Iespējas pēc šī jautājuma zīmi? Un vienkārša atbilde ir nē, tur nav tiešām labs veids, kā to darīt, ja vien Jūs vēlaties, lai ligzdu vairākiem trīskārši operatori iekšpusē viens no otra. Jūs varētu darīt, piemēram, n ir lielāks par 100, jautājuma zīme, un tad vēl trīskāršo operators, n ir lielāks par 50, jautājuma zīme, un nest to, ka veidā. Bet šajā scenārijā, jūsu kods ir kļūst veida lasāma un netīrs, un tas varētu būt labāk, lai tikai iet uz Ja / Else paziņojumu šajā brīdī. ROB: Un arī, kā sānu piezīmi, PHP nepareizi īsteno trīskāršu operators tā, ka ligzdotu ternaries nav pat strādāt, kā to vajadzētu. JOSEPH: Jā. Tātad, tas kļūst mazliet mulsinoši, it īpaši, ja jūs iet dažādās valodās. ROB: Tas ir mulsinoši pietiekami, ka valodas ir nepareizi par to. JOSEPH: Tik tiešām, tikai lai precizētu, tomēr visi zinām, ko tas % S nav nekā šeit? Kādi jautājumi par šo? Es domāju tikai par kameru,% s būtībā ļauj mums nodot vietturi par virkni. Un tad beigās, mēs norādām, ka mainīgais mēs vēlamies nodot šo vietas īpašnieks ir s. Tāpēc, ka būtībā notiek s un tas liek to šeit. Un tad tas būs izdrukāt, jūs noplūktiem augsta vai jūs noplūktiem zemu numuru. OK. Tāpēc cilpas ļauj veikt lietas apļveida kustībām, vai ne? Jūs, iespējams, ir saskārušās ar to Scratch formā laikiem cilpas vai Atkārtot Kamēr vai Atkārtot īpaši vairākas reizes. Tātad, kāpēc tas ir labs mums? Nu, C, pieņemsim, ka mums ir šis dziesma īsteno Scratch ka dzied, tas ir dziesma , kas nekad nebeidzas. Tas tikai tālāk un tālāk, un uz visiem laikiem un uz visiem laikiem. Nu, jūs nevarat īsti darīt programmu , kas ir neierobežotu skaitu printf paziņojumi to, labi? Tātad šajā scenārijā, viens veids ka jūs varētu veikt šo darbu, un lai padarītu to drukāt uz visiem laikiem ir vietā izmantojiet kamēr cilpa. Tāpēc Kaut cilpa izpildīt to, kas ir organismā divu skavas ka pieder tai, pamatojoties uz to, stāvoklis ir. Tātad šajā konkrētajā piemērā iepriekš, ja mēs gribam izdrukāt šo uz visiem laikiem, ko mēs varētu darīt? Nu, protams, vai ne? Tātad šāda veida apvieno ideja daži Būla izteiksmes kopā ar cilpu. Un mēs uzzinājām Būla izteiksmes agrāk. Tātad, ja nosacījums iekšpusē kas gan joprojām ir taisnība, tas cilpa veiks vēl un vēl un vēl. Un šajā gadījumā, ja tikai piegādāt ar taisnība, tas rada bezgalīgs cilpa, kas drukā dziesmu un tālāk un kā mēs vēlamo agrāk bez ar programmu, kas ir bezgalīgs skaits printf paziņojumiem, kas ir nav iespējams. Tātad vairāk pārliecinoši, lai gan, Jūs varat izmantot to ar mainīga un stāvoklī. Tātad pieņemsim, ka mēs vēlamies atkārtot frāze, pilnīgi loopy, 10 reizes. Tātad, ko jūs varat darīt ar brīdi cilpu Jūs varat vispirms sāktu skaitītāju mainīgais ārpus Kamēr cilpa līdz 10. Un tad būtībā, katru reizi, kad iet caur kamēr cilpa, jūs izdrukāt pārskats un tad jūs samazināt counter mainīgais līdz beigās, kādā brīdī, kad mēs atņemt I pietiekami reizes, 1 no I pietiekami daudz reizes - un tikai, lai precizētu, I mīnus mīnus nozīmē, ka man ir vienāds ar I mīnus 1. Tas būtībā dot I līdz punktu, kur, kad es hit nulle, tas nosacījums vairs true un tāpēc tas iziet no cilpas. Tik pilnīgi loopy tikai izdrukā 10 reizes. Visus jautājumus par brīdi cilpu? OK. Tāpēc ir veids, kā mēs varam darīt to, ko mēs tikko darīja daudz lakoniski ar tas, ko mēs saucam par cilpu. Tāpēc cilpa sastāv no inicializācijas, stāvokli, un update, tāpat kā mums bija agrāk Šajā kamēr cilpa. Tātad, pieņemsim to apskatīt. Šajā kamēr cilpa, mums bija inicializācijas, tad mums bija nosacījumu, ka mēs pārbaudījām. Un tad mums bija atjauninājumu soli augšpusē. Ar cilpa, tas galvenokārt notiek šīs trīs lietas un kondensējas to lejup vienā rindā. Tātad pirmā lieta, ka tas ir Cilpa ir inicializācijas. Un tad jūs semikolu, un pēc tam jūs stāvokli, kas ir I lielāks par nulli iet tur, un tad update solis. Tāpēc tas tiek veikta ļoti end of cilpas struktūras. Tātad šīs divas programmas ir būtībā līdzvērtīgs. Kādi jautājumi? Tātad, kas ir viena atšķirība starp šiem diviem? Vai kāds norādīt to ārā? Tas varētu būt mazliet smalks. Tas ir tikai ļoti neliela atšķirība. Jā? SPEAKER 5: Tu nevarētu izmantot Es mainīgais ārpus cilpa [Dzirdams]? JOSEPH: Tieši tā. Tāpēc tas ir kaut kas, mēs sāksim vēlāk sauc mainīgo jomu. Bet būtībā tas int i dzīvību ārpus šīs kamēr cilpa. Tātad, kad šis Kamēr cilpa tiek darīts izpildes, es varētu izmantot I vēlāk gada programmā. Tā kā ar šo uz cilpas, tas int es ir scoped iekšpusē šis cilpas. Un tāpēc, ka tas ir iekšā šo daļu no cilpa, kas sākas pie iekavās un beidzas ar cirtaini lencēm tur. Jebkas, kas ir deklarēta iekšpusē Šeit nevar izmantot ārpus. Tātad, ja es mēģinātu izmantot I ārā, tas būs man pateikt, nedeklarētu simbolu. Un būtībā, es nebūtu varēs izmantot. ROB: Un labi, pirms 10 gadiem, burtiski visas lietas, cirtaini bikšturi ir ko tu izmanto, lai noteiktu apjoms ir mainīgs. Tātad tur, int es sasniedz 10 ir deklarēta iekšpusē šo kopumu cirtaini lencēm. Un tad tik ilgi, cik jūs mēģināt izmantot I pirms šī cirtaini lencēm, tas ir labi. Jūs varētu redzēt, ja jūs tipa izdarīt, jums sk domuzīme, domuzīme, STS, vienāds, C99. Tāpēc, ka ir jaunāka versija C, kas GCC ir īstenojusi, ka arī dod šī saīsne. Tātad tas, ko izmanto, lai nav pieļaujama C un Jūs varat redzēt, kāpēc, jo tas int Man ir ārpus šī cirtaini lencēm, bet tas joprojām uzskatāmi par apjoms šiem cirtaini lencēm. Bet tas ir ļoti ērts lieta, un tāpēc tas ir laba paplašinājums. JOSEPH: Kādi jautājumi? OK. Tātad, kas ir vairāk noderīgs ir tas, ka dažkārt jūs vēlaties veida dinamiku Jūsu cilpa, vai ne? Jūs nevēlaties, lai tikai vienmēr drukāt pilnīgi loopy visu laiku, jums vēlaties saskaitīt uz leju no 10 vai kaut ko. Un lai jūs varētu izmantot counter mainīgo šīs cilpas iekšpusē, kā arī. Un šajā gadījumā, šī programma tikai skaita uz leju no 10 visu ceļu uz leju. Un ko tas nav drukāt? Nedrukā nulle, taisnība, jo, kad - Jā, tas arī nedrukā 11. Tātad tas nav drukāt nulle, jo, kad I ir nulle, atcerieties, tā novērtē nosacījumu, pirms tā iet uz izpildīt cilpa ķermeni. Un, kad es ir nulle, tas ir nepatiess, tāpēc tas nav izdrukāt skaitīšanas leju nulle, tas vienkārši izdrukā skaitīšanu lejup 10 visu ceļu uz leju, lai 1. Ja mēs patiešām vēlējās drukāt nulli, tad mēs varētu likt vienādības zīmi pēc tam ir lielāks par zīmi. OK. Tik viens veids, kā to izdarīt ievades apstiprināšanu, kas ir tad, kad jūs lūgt lietotājam darīt kaut ko, jūs vēlaties, lai pārliecinātos, ka viņi sekojiet norādījumiem, ir izmantot Kaut cilpa, vai ne? Tātad šajā konkrētajā gadījumā, es esmu lūdzot par pozitīvu skaitli, un tad es esmu gaida ievadi. Un tad es pārbauda gan ievade mazāka par nulli, saglabāt lūdzot tos. Tik ilgi, kamēr tie dod man numuru tas nav pozitīvi, saglabāt jautā, glabāt jautā, glabāt jautā. Bet to, kas ir sava veida dīvaini par šo? Vai kas nešķiet optimāls par šī struktūra tieši šeit? Kāds? Jā? SPEAKER 6: Tu atkārtojot instrukcija divreiz. JOSEPH: Tieši tā. Tāpēc mums ir divas printf paziņojumus šeit, vai ne? Tāpēc ir veids, kā mēs varētu saņemt šo tikai uz leju, lai vienu, kas padarītu mūsu kodu vieglāk lasīt un mazliet vairāk tīrs. Un tad mēs nebūtu ir Get divas reizes, kā arī. Un viens veids, kā jūs varat darīt, tas ir izmantojot Do-kamēr cilpa. Un Do-gan cilpa ir pamatā atšķirīga forma kamēr cilpa, kurā kāds atrodas cirtaini lencēm izpaužas izpildīts vismaz vienu reizi. Tātad šeit, es apliecinu, int ieeja ārpus pirmās. Un tad es vienkārši saku, to izdarītu norādījums, kamēr ieejas ir mazāks par nulli. Tāpēc tas hits jādara vispirms. Tā būs vienmēr izpildīt šīs vismaz reizi, tāpēc tas vienmēr pieprasīt no lietotāja ievadei vismaz vienu reizi. Un tad tā izvērtē šo ievadi, un tas notiek pa apli. Jā, jautājums? SPEAKER 6: Vai ir veids, kā to izdarīt [Dzirdams] veidi, piemēram, ja jūs sakāt, GetString, un kāds [dzirdams] Vai ir veids, kā [dzirdams] JOSEPH: Tātad jautājums ir, vai ir veids, kā to izdarīt ievades apstiprināšanu, ja lietotājs neliek tiesībām Mainīgā tips? Tātad, ja mēs lūdzam int un tie dod mums virkni vietā. Un funkcijas, ko mēs īsteno jums, GetInt, GetString visās tās funkcijas, tie faktiski jau ir darīt, ka veida pamata tipa ieejas apstiprināšana ar kapuci. Tātad, ja jūs izmantojat funkcijas, kas mums deva jums, jums nav tiešām ir. Bet, ja jūs vēlaties, lai izskatās vairāk par to, kā jūs faktiski var darīt, jūs varat apskatīt zem motora pārsega pie faila I/O-- nav failu, standarta I / O funkcijas piemēram, lasot no standarta ievades un standarta produkcija. Un jūs varat saņemt labāku sajūtu par to, kā jūs varētu darīt. ROB: Viens jautājums, lai gan, ir īpaši ar piemēru jums teica, jūs sagaida String un es ievadīt int. Kā jūs pateikt atšķirību starp apzināti vēlas string 123 pret, kuri vēlas int 123? Tātad string, tas ir diezgan daudz, tur nav apstiprināšanu, tas ir tikai kāda tā ievadīta, jums tiks interpretēt kā virkni. Int ir vieglāk, jo nav svarīgi, ieeja esat lietojis no lietotāja, jums ir vienmēr ņemot virkni. Un tā, ka virkne jūs varat, tad pārbaudiet, ir visi šie faktiski cipariem? JOSEPH: OK. Visus jautājumus par do-kamēr cilpa? ROB: Ak, un tas ir arī - dodas atpakaļ uz jomu, nedaudz kopīgs kļūda mēģina izmantot kādu vietējo mainīgais no šajā Do-gan cilpa iekšā šajā stāvoklī. Un faktiski, ja mēs vienkārši vaļā šo un teica, int ievade vienāds GetInt, tad kompilators bļaut mums, jo ieejas neeksistē ārpus jomas šie cirtaini bikšturi. JOSEPH: Un tas ir iemesls, kāpēc mēs vajag šo lineup šeit. OK. Tātad jūs varat izkļūt no cilpa agri, ja jūs vēlaties. Tāpēc tas ir atšķirīgs veids Īstenojot to, ko mēs tikko īstenots. Un tā vietā, lai izmantotu stāvokli ietvaros iekavās, mēs izmantojam Ja paziņojums iekšpusē ķermeņa no Do-kamēr cilpa. Un būtībā, ja ieguldījums ir beidzot lielāks par nulli, mēs izkļūt no cilpas. Un tā mēs dosimies visi ceļu uz leju šeit. Un jūs varat redzēt, ka tas iespējams, priekšroka šajā scenārijs, jo tas ir nedaudz mazliet tīrāka un nedaudz mazliet vieglāk lasīt. Tā kā šis, jūs veida ir papildu rindas tajā. Tas ir tikai nedaudz neglītāks, Es domāju, tādā ziņā. Jā, jautājums? SPEAKER 4: pauze tikai iegūt jūs no viena komplekta bikšturi? JOSEPH: Tieši tā. Tātad jautājums ir, būs pārtraukums tikai saņemt jūs no viena cilpa? Un atbilde ir jā. Tātad, ja jums ir ligzdotu uz cilpas, lai Piemēram, ja man ir par int i ir vienāds ar 0 līdz 10 un pēc tam par int J ir vienāds ar 0 līdz 10, vai es izkļūt no iekšējā cilpa, es vēl joprojām iet pie ārējā kontūra. Tāpēc tas būs glabāt veic operācijas ārpuses. Kādi jautājumi par šo? Jā? SPEAKER 5: Bet pārtraukums tikai funkcijas par cirtaini bikšturi, nevis citi paziņojumi? [Dzirdams] JOSEPH: Tātad jautājums ir būs pārtraukums tikai funkcija cilpas pretstatā citi apgalvojumi, piemēram, ja? Un jā, tas ir gadījums, jo jūs izkļūt no cilpas, pa labi, savā ziņā. ROB: Vairumā gadījumu, tas ir tas ir sava veida, ja kaut kas, tad pārtraukums. Tātad jums nav, lai izjauktu piemērot Ja tas ir ietīšana ap to. Un arī tas nav daudz cilpas, bet atcerieties, ka slēdži ir arī izcēlies pēc kura pārtraukumiem. Mēs redzējām pārtraukumiem tiek izmantotas ar slēdžiem pirms tam. JOSEPH: Un jūs varat arī izmantot tos jo, kamēr cilpas un cilpas. Kādi jautājumi? OK. Līdz ar to nākamajā up ir funkcijas. Tātad, jūs, iespējams, ir izmantots viens no šiem BYOB bloki savu Scratch projektu. Un tas būtībā ļauj definēt kopumu instrukcijas, kas jāievēro. Un tas, ko es domāju ar šo ir pieņemsim domāt atpakaļ uz matemātiku, labi, algebra. Jums ir, ko mēs saucam funkcija x, daži mainīgs, un teiksim tā funkcija ir f no x ir vienāds ar x plus 5. Tātad jūs varat iedomāties f no x, jo tas black kaste, kas notiek 15 valstīs, un pēc tam ražo 20. Tik vispārīgi, funkcija ir kaut kas notiek dažas ieejas un tad ražo dažus rezultātus. Un kāpēc ir funkcijas, labi? Viņi labi vairāku iemeslu dēļ. Tātad, kāds, kurš vēlas veikt stab par to, ko organizācija nozīmē? Runājot par to, kāpēc funkcijas ir noderīga? Jā? SPEAKER 4: Tas padara jūsu kodu vieglāk lasāmu. JOSEPH: Tieši tā. Tātad viena no lietām ir tas padara savu kodu vieglāk lasāmu, vai ne? Tā vietā, piemēram, int x ir vienāds ar x reizes x reizes x, es varu būt kubs x, kas ir vairāk lasāms un vairāk saprotami lasītājs. Organizācijas ir arī attiecībā sadalot savu kodu vadāmību porcijas, tāpēc, ka tā vietā, lai censtos īstenot šo visu vienā garā posmā galvenais, jūs varat kārtot sadalīt to uz augšu uz, piemēram, Labi, pieņemsim uzrakstīt funkciju līdz kubs kaut ko, pieņemsim rakstiet funkciju, lai kvadrātveida kaut ko. Tādā veidā jūs varat sadalīt to uz augšu tiny, maz detaļas, kas var risināt nevis mēģina risināt liela problēma visu uzreiz. ROB: Vai pat niecīga, maz detaļas, jūs un partneris var risināt. JOSEPH: Jā. ROB: Tā vietā, lai abi Jūs mēģināt implants vienu darbojas tajā pašā laikā. JOSEPH: vienkāršošana. Kāds vēlas veikt uzminēt? Jā? SPEAKER 5: Vairāk atkārtošanās. JOSEPH: Tieši tā. Tā viena lieta, ka jūs varat darīt ar vienkāršošana ir, ka tas ir sava veida uz tās pašas līnijas, kā otrreizēju izmantojamību, ir, ka kad es rakstīt kuba funkcija, es varu tikai izmantot, ka atkal un atkal un atkal atkal manā programmā, nevis rakstīt x reizes x reizes x vairāk un atkal un atkal. Un vienkāršošana šeit arī vienkārši nozīmē, ka tas padara jūsu kods veida vieglāk atkļūdošanas kad jūs sadalīt Tas augšup funkcijas. Jo tad var lokalizēt, kur jūsu problēmas veida esat. Kādi jautājumi? Tātad vēl viena ideja ir abstrakcija, vai ne? Šī melnā kaste. Tāpat kā jūs zināt, kas GetInt dara , lai saņemtu informāciju no lietotāja? Mēs neesam īsti teicis jums, vai ne? Visi mēs esam teicis jums ir GetInt nav tieši to, ko saka, ka tā dara. Tātad, pat tad, ja mums nav pateikt, cik tā darbojas, jūs vēl zināt. Tātad šajā gadījumā, tas ir četrkāršs funkciju, kas nav dažādas lietas, ieejas ražot produkciju. Un jūs varat četrkāršs numuru reizinot to ar četri. Vai jūs varat to, ko mēs saucam bit novirzīt to ar divi. Un mēs uz to mazliet vēlāk. Un nav nepieciešams zināt, kā tas funkcija faktiski darbojas tik ilgi, cik tas darbojas kā norādīts. Tātad, ar kapuci, es varētu būt piemēram, atgriešanās ievades reizes astoņi dalīts ar divi. Un jūs nezināt, vai ne? Viss, kas jums jāzina, ir tas, ko tā saka. Tā ka ir noderīga lieta par abstrakciju. Un vēl viena lieta ir sava veida šī ideja gada lokalizāciju savu kodu uz vienu īpaši sadaļā. Tātad, ja jums ir problēma, jums nav ir jāiet pa visu kodu mēģinot noteikt, kur problēma bija. Tātad, šajā gadījumā, I īstenota kubs nepareizi. Es domāju, kubs bija reizinot ar trīs. Tātad, šajā gadījumā, tas ir viens programma tas vienkārši ir reizinot ar trīs visur. Un tur ir vēl viena programma, kas ir ņemt kubs ārā funkciju. Un tāpēc tagad, ja es gribu, lai noteiktu mana kļūda šeit, man ir noteikt katru rindiņu Koda šajā programmā. Bet, no otras puses, ja es izmantot funkcija, es tikai nepieciešams, lai mainītu , kas bija nepareizi vienā vietā. Tāpēc datorzinātnēs, mēs zvaniet ieejas un izejas. Ieejas sauc parametri vai argumenti, un rezultāti tiek saukti atgriešanās vērtību. Un mēs redzēsim, kā tas mums palīdz kārtot gada definēt funkciju sekundē. Tāpēc tas ir funkcija definīcija par cubing. Tāpēc tas aizņem ievadi, un pēc tam tā atgriež ka reižu skaitu pats trīs reizes. Tā ļauj lauzt šo leju. Tāpēc mums ir funkcija header, kas būtībā sastāv no trim lietām. Tāpēc mums ir parametri, kas ir, kā es teicu iepriekš, ieejas uz šo funkciju. Un tad mēs dodam funkcija nosaukumu. Šajā gadījumā to sauc par kubu. Un tad mēs, norādiet, kāda tipam no atgriešanās vērtība ir. Tātad šajā gadījumā, mans kubs funkcija uzņem veselam skaitlim, un tas arī atgriež skaitlim. Tātad, ja es iet divi, divi ir vesels skaitlis, tas atgriežas astoņi man, kas ir vesels skaitlis. Tāpēc atgriešanās veida nosaukums parametrus. Jautājumi par šo? Un tad atgriešanās vērtība ir faktiski norādīts beigās, sakot atgriešanos un pēc tam atgriežas neatkarīgi satur atgriezto vērtību. Tātad šajā gadījumā, ja mēs to visu kopā funkcija uzņem parametriem, to sauc kaut ko, un tā atgriež kaut ko, kas ir veids ka mēs sakām, tas būs. Kādi jautājumi? Tātad, kā mēs izmantojam funkciju? Nu, mēs rakstām funkciju, un pēc tam mēs izmantojam to mūsu programmā, vai ne? Tāpēc es sauc to kubs, un tad es varu izmantot kubu. Bet to, kas ir svarīgi atzīmēt, ir šo rīkojumu jautājumiem. Ja man ir kubs zemāk galvenais, tas ir gatavojas uzskriet kubu. Un šajā brīdī, tur nekas aicināja kubs programmā, un tā ir tikai būs, piemēram, man ir ne jausmas, ko kubs ir. Tāpēc tas jums pateiks, netieši deklarācija funkciju. Tas ir kļūda, kas parādās. Un tādēļ šajā gadījumā kubs ir zemāka Galvenais, lai tas nebūs zināt par to. SPEAKER 5: Tātad galvenais ir parasti Pēdējā funkcija definēta? JOSEPH: Tātad jautājums ir, ir galvenais parasti pēdējā lieta, ka jūs definētu? Un nē. Tas ir tāpēc, ka mēs parasti patīk galvenā būt augšpusē, labi? Jo tas ir pirmā lieta, jūs gribu programmētājs atvēršanas programmu, lai redzētu. Un tā kā mēs atrisināt šo jautājumu mēs vēlas, galvenais, lai augšpusē, bet funkcijas, ko mēs vēlamies, mēs vēlamies viņus ir zem galvenā vēl varēs izmantot tās iekšpusē galvenais? Nu, mēs izmantojam to, ko mēs saucam funkcija prototips. Tātad, ko funkcija prototips būtības ir tas pirmo reizi notiek kāda paraksts vai funkcija header par to, ko mēs vēlamies īstenot uz leju šeit, un mēs nodot to top no programmas. Tātad šajā gadījumā, mēs sakām, ka, labi, vēlāk mūsu programmu, mēs ejam veikt solījumu, lai īstenotu šo funkcija, ko sauc par int kubs, kas notiek skaitlis ieejas. Tāpēc tagad, jo tas ir virs galvenais, Galvenais, tas būs teikt, oh, labi, vēlāk programmā, kas būs tur, lai es varētu atsaukties uz to, tāpēc es ņemšu tikai ļauj to iet cauri tagad. Un pēc tam apakšā, mēs īstenotu kubu. Un tad galvenais būs tikai teikt, labi, tas būs kārtot saikne šie divi simboli kopā. Un mēs uz to, ka nozīmē vēlāk. Un tā tas būs zināt, ka tas ir kubs funkcija, kas būtu jāizmanto. ROB: par vēlmi [dzirdams] Galvenais apakšā vai top, es esmu redzējis abus. Ir lietas, kas vienkārši patīk likt galveno apakšā. Bet tad, kad projekts kļūst īpaši liels, parasti galvenais ir iesniegt visu pati. Un šajā brīdī, piemēram, int kubs line būtu - iekšpusē stdio.h ir ķekars līniju, tāpat kā šajā int kubs int ievade līnija. Un tā šie prototipi ir lietas, kas jums mēdz nodot header failus, pie Kurā brīdī, tas nav svarīgi. Nu, tas nav svarīgi. Tiem vienmēr iet augšā. Un, ja galvenais nav fails visu pati, Jums nav jāuztraucas par liekot individuālie funkciju prototipus failā. JOSEPH: Un mēs nokļūt, ka maz Nedaudz vēlāk, kad Rob sāk runāt par sagatavošanā. Un tāpēc tur ir arī atšķirība starp parametru un argumentu. Un parametrs ir tieši tas, ko mēs saucam šīs izejvielas, ja mēs definējam funkciju. Un mēs to saucam arguments, kad mēs faktiski nodot to funkciju. Tātad šajā gadījumā, tas ir parametrs, kā mēs teicām iepriekš. Un, kad mēs faktiski izmantot to tur, kubs x, tad x pati tas, ko mēs saucam par argumentu uz funkciju kubu. ROB: Tik parametra argumenti - ir šī atšķirība, ir ļoti sajaukt aizstāt. Šajā brīdī, manuprāt, tas ir, piemēram, viens no šie vārdi, ka tad, kad es redzu to, kas savvaļas, es nevaru palīdzēt, bet uzreiz Jautājums, vai viņi izmanto to pareizais konteksts, jo Atšķirība ir pietiekami smalks, ka tikai ikvienam ir tendence - Es gandrīz vienmēr saku argumentu neatkarīgi no tā, ko es domāju. JOSEPH: Un funkcijas ir arī noderīga par to, ko mēs saucam blakusparādības. Tā funkciju var veikt ne izejvielas, un tā var arī ražot nav izejas. Tātad šajā konkrētajā gadījumā, es esmu definējot subroutine, kuram nav atgriešanās vērtību. Un, lai precizētu, ka mēs izmantojam tas, ko mēs saucam par spēkā neesošu nekā šeit. Un tā blakusparādība šīs funkcijas ir tas, ka tas ir tikai drukā sīkumi , lai lapā. Tas nav reāli veikt jebkādus ieejas, un tas nav faktiski nekādas izejas. Bet tas varētu būt noderīga tādā ziņā, Ja jūs vēlaties, lai, piemēram, atkļūdošanas kaut kas savu programmu, ja vēlaties rakstīt mazliet subroutine kas izdrukā, teiksim, saturs atmiņas vai kaut ko. Un tā šīs blakusparādības dažkārt noderīgs ārpus konteksta un tāpat kā ieejas un izejas. Kādi jautājumi? Un izbeigt šo konkrēto segmentu, ko šī programma dara? Es došu jums puiši pāris sekundes, lai lasīt caur to. Ļoti pamata līmenī, ko mēs gribam, lai teikt, ka tas mijmaiņas x un y, vai ne? Tā kā daudzi no jums patiesībā domā tas swap x un y? Paceliet roku. Neviens. OK. Kas domā, ka tā būs nav mijmaiņas x un y? Un no tā summa bija ne visu istabu. Tāpēc daži cilvēki nav pārliecināti. OK. Tas ir saprātīgi. Tātad, pieņemsim iet caur to, kas notiek, kad jūs faktiski zvanīt funkcijas vispirms Lai atbildētu uz šo jautājumu. Tātad šis ir tas, ko atmiņa veida izskatās. Tas ir veida, piemēram, vienkāršotu modeli par to, ko atmiņa izskatās, kad palaist programmu. Tātad tur ir kaut kas ko sauc kaudze uz leju šeit un kaut ko sauc kaudze. Un tie aug, lai vidū atmiņas. Tātad šajā konkrētajā gadījumā, kad jūs zvanu funkciju, tā izpaužas likts uz skursteņa. Un tad kāds ir ietverts, ka funkcija paliek tas, ko mēs saucam par Funkcija ir kaudze rāmi. Un tāpēc, lai iegūtu jauku vizualizāciju Tas, let's - piemēram, mums bija Programmas galvenais agrāk. Un iekšpusē galvenais, mēs sauc kubu. Tātad galvenais vispirms doties uz skursteņa rāmis, jo tas ir pirmais funkcija ka sauc. Un tad, kad kubs sauc iekšpusē galvenais, tā izpaužas likts uz augšu no galvenā iekšā atmiņas. Tātad, ko jūs pamanīsiet, šeit ir tas, ka kubs ir savi parametri, un tās pašu vietējie iedzīvotāji. Tātad, kad jūs faktiski iet kaut ko funkcija, parametrus, ka izpaužas ir kopijas, kas bija pagājis no galvenā. Un veida izskaidrot, pieņemsim staigāt pa programmu. Tāpēc mums ir kaudze, tas ir tikai kaudze daļu. Un tas, ko mēs darām, ir mūsu pirmais inicializēt x un y ir viens un divi. Tāpēc mums ir šīs maz kastes. Viņi sēž galvenie ir kaudze rāmja kaudze. Tie satur vienu un divi. Tagad mēs saucam swap. Kas notiek, ir, mēs caurlaide x un y uz swap, un mijmaiņas rada savu kopijas gada šie mainīgie izmantot iekšējo tā kaudze rāmi. Tāpēc tagad tur, mēs esam, kas satur vērtību, kas bija x, un b, kas satur vērtību, kas y bija. Tātad, viens, divi. Un jūs ievērosiet, ka tas ir atsevišķs no x un y iekšpusē galvenais. Tātad, mēs tagad izveidot pagaidu mainīgo satur. Mēs, kas vienāda ar B, tāpēc izmaiņas no viena līdz diviem. Un tad mēs noteikti b vienlīdzīgu temp, kas ir viens. Un tad tagad mēs izietu Šīs funkcijas. Kad izejat no funkciju, kaudze rāmis kļūst popped off kaudzīti. Mēs to saucam push. Jūs push kaudze rāmi uz kaudze un jūs pop, ja pie skursteņa. Un tā, kas notiek, ir viss, kas bija, ka kaudze rāmja veida tikko iet uz augšu liesmās. Un tā, kas vairs nepastāv. Bet ko mēs redzam? Mēs nekad faktiski mainīts vērtības x un y, labi? Tātad tie palika vietējā galveno. Un nododot lietas vērā swap, mēs patiesībā nekad nav mainījies šīs vērtības. Un tas, ko mēs saucam? Mēs to saucam par nodošanu pēc vērtības. Tātad C, kad iet lietas vērā funkcijas, tas iet tos pēc vērtības un padara kopiju tām funkciju izmantot. Un mēs uzzināt par kaut ko sauc par iet ar atsauci vēlāk, bet tas ir veids, kā jūs varat atrisināt šo problēmu. Bet mums nebūs jāuztraucas par ka tikai vēlāk. ROB: Un tiešām, šis termins, iet ar atsauci, lai C pat nav garām norādes. C tikai ir garām vērtību. Nav svarīgi, ko jūs darāt, jūs vienmēr iet kopiju kaut ko. Tas ir tikai, ka, kā es veida minēja ka pirms ar norādes un ka virkne ir tiešām tikai četras baiti norāda uz kaut kur atmiņā. Nu, ja man ir šī stīgu, un tas ir stāsta man, tas ir, ja virkne - labi, ja man ir šo rādītāju, lai šo vietu atmiņā, tad es varu iet kopiju šo rādītāju uz funkciju, un šī funkcija joprojām zina, kur atmiņu tas ir. Tāpēc abas šīs norādes ir vērsti tajā pašā vietā atmiņā, un tas, kā mēs ejam, lai varētu mainīt lietas, kas pārsniedz Pašreizējā kaudze rāmi. JOSEPH: Vai jūs vēlaties darīt apkopošanu? ROB: Nē, tas ir 05:30. JOSEPH: OK. Tā ir 05:30. OK. Tāpēc mēs segs apkopojot es uzminēt nākamajā sadaļā, vai jūsu sadaļa vadītājs būs tajā brīdī. Un - ROB: Kādi jautājumi? JOSEPH: Kādi jautājumi? Jā? SPEAKER 5: Izmantojot virknes no CS50, jebkura funkcijas, kuras mēs vēlamies izmantot tiem, kas būs, piemēram, C funkcijas. CS50 nav aizgājuši un pieļautas papildus. ROB: Pareizi. Jebkurš C, piemēram, [dzirdams], jūs varētu izmantot tos uz mūsu stīgas. JOSEPH: Un viena pēdējā lieta, ko es vēlos pieminēt, ka mums ir stila ceļvedis šajā klasē. ROB: Ak, jā. JOSEPH: Tātad, ja jums ir no programmēšanas fona pirms jums varētu būt zināmas konvencijas, kad Jūs esat rakstiski kodu, piemēram, liekot bikšturi tajā pašā rindā vai īpaši veidi indenting vai nosaucot savu mainīgos. Šajā klasē, mēs vēlamies, lai sekotu īpaša stila rokasgrāmata tikai tāpēc, labi, ja jūs iet un strādāt rūpniecība, jūs esat būs sagaidāms sekot stila rokasgrāmatu sabiedrība, kurā jūs apmeklējat. Tāpat kā, piemēram, Facebook es domāju ir īpaša veida nosaukumu konvencija. Un tur ir atšķirības starp kamielis korpusa mainīgie un tāpat kā atdalot tos ar apakšsvītra. Un arī, es domāju, ka pats svarīgākais, piemēram, piemēram, atkāpes, vai ne? Mēs cirtaini bikšturi sākt, kur nosacījums ir, un tie ir nākamajā rindā. Un mēs arī nodot cirtaini bikšturi in pat ja tā ir tikai viena rinda. Un daudz reižu, ka ir veidi, kā to darīt tā, kur jūs varat atstāt šo lencēm off, ja tā ir tikai viena līnija Saskaņā ar If paziņojumu. Bet šajā klasē, mēs vēlamies, lai sekotu īpaša stila rokasgrāmata tikai, lai jūs iegūtu pieraduši, ka veida lieta. ROB: Jā, un stils 50 gatavojas īstenotu šo stila rokasgrāmatu, un mēs esam gatavojas izmantot Style 50 pakāpē jūsu kodu. Tāpēc tas padara lietas vieglāk mums un cerams nevajadzētu darīt lietas, kas daudz sliktāk par jums, ņemot standartizēts stils nedrīkst būt, ka nereāls. JOSEPH: Un visbeidzot, lai atrastu stilu Guide, dodieties uz manual.cs50.net/style. Un jā. SPEAKER 4: Vai jūs plānojat, lai īstenotu kādi simboli katrā rindā? ROB: Jā. JOSEPH: Atvainojiet, puiši. ROB: Tas ir, piemēram, viens no vienīgajiem. Šajā brīdī, es esmu OK ar 120. Es esmu OK ar sakot 120 simboli katrā rindā. Es saprotu, ka ir kāds limits. Es domāju, ka 80 ir tik mazs, bet mēs tā izpildes. JOSEPH: Personīgi, es domāju, ka ar C, 80 zīmes ir vairāk OK. Tiklīdz jūs sākat panākt, lai citi valodas, piemēram, JavaScript un PHP, nevis tik saprātīgi, lai tikai ierobežotu to 80 rakstzīmes. OK. Nu, tas bija super sadaļā. Vai kāds vēlas Candy? SPEAKER 4: Jā.