[Mūzikas atskaņošanai] ANDI PENG: Tas ir CS50, un welcome uz nedēļu divas sadaļas. Tas ir tiešām, bet nedēļa divi no mūsu class-- faktiski, pirmajā nedēļā mēs esam bija nodaļu. Paceļot rokas, cik daudzi no jums visiem ieradās super nodaļā pagājušajā nedēļā? Labi, ka ir OK. Tas ir labi. Cik daudzi no jums noskatījās super sadaļa pagājušajā nedēļā? LABI. Un jūs puiši darīja naudas sodu par problēmu iestatīt vienu? Tāpēc es esmu gatavojas ņemt to, ka mums ir ķekars tiešām viedo bērniem šajā klasē, un viss būs labi. LABI. Tātad first-- Pirmkārt, mēs esam tikai gatavojas īsi iet pa darba kārtībā šodien. Mēs runājam par kursu loģistiku. Daudzi no jums, iespējams, ir jautājumi par kā lietas darbojas šajā kursā. Mēs uz tiem atbildēt. Mēs ejam, lai īsi iet pa cilpas gadījumā kāds no jums, puiši garām super sadaļu. Mēs runājam par ASCII kartēšanu. Mēs runājam par blokiem funkcijas, komandrindas argumentus. Un visbeidzot, ko jūs puiši, iespējams, visi tiešām gribu būt šeit, lai uzzinātu par, ir jūsu pset2. Mums nāksies kādu jauku triku un padomus, kā to izdarīt. LABI. Tāpat, otrkārt, mums ir daudz Candy šeit. Ikviens, kam patīk konfektes, vienkārši nākt klajā šeit. Grab daži. Man ir ķekars. Mums ir ton birojā. Man nav tiešām vēlaties ēst konfektes visu dienu. Jūs guys vajadzētu ēst visu Candy, jo man atnesa šeit jums puiši. Just ēst konfektes. Tur būs konfektes katru sadaļu. Tātad pirmais, kas es esmu? Mans vārds ir Andi Peng. Es esmu vadītājs TA no CS50 šeit Yale. Un papildus ka es arī be-- ja kāds varētu like-- savu darbību draugs, jūsu plecu raudāt par. Ja naktī pirms sava PSET ir jāmaksā, Jums nav ne jausmas par to, kas notiek, hit me up. Mēs līdzjūtību kopā, un tā tālāk. Tikai zinu, ka es esmu šeit kā resurss, lai jūs kā priekšējā līnija lai palīdzētu jums guys izdomāt, kā risināt problēmas CS50 un ārpus tās. Mans e-pasts ir andi.peng@yale.edu. Es arī izsūtīt indivīdam e-pastu ar savu tālruņa numuru tajā tāpēc, ka ne visi uz Internets var redzēt manu tālruņa numuru. Jūtieties brīvi, lai izsauktu mani jebkurā laikā. Nopietni, mans telefons ir parasti ir piestiprinātas pie manas rokas. Es nevar atbildēt jau pēc pāris minūtēm. Es nevar atbildēt uz pāris stundu laikā. Bet es varu garantēt Jums, ja jums e-pastu man, ja tu mani sauc, teksta mani, es 24 stundu laikā reaģēs. Bieži, es ņemšu atbildēt pirms ka, jo es saprotu, ka ikvienam ir ieguvuši dažas problēmas, un jūs vēlaties, lai jūsu atbildes jāatbild ļoti ātri. Tomēr, ja jūs zvanāt me 30 minūtes pirms tas gabals, kas ir saistīts ceturtdiena night-- būt, piemēram, Andi, palīdziet man, Es neesmu started-- es varētu dot Jums, ka pleca raudāt par. Bet tas var būt laiks domāt par kā to nedara, ka nākamajā reizē. LABI. Hmm. Kā es varu iet atpakaļ? Tur mēs ejam. Tātad šajā kursā, mums ir tonna atbalstu ikvienam. Papildus tikko sekcijas šeit, kas jums katru nedēļu nokļūt tērēt 90 brīnišķīgi minūtes ar mani, mums ir arī biroja stundas. Cik daudzi no jums, puiši jau bijis darba laika pēc palīdzības? Liels. Tas ir tiešām patīkami redzēt, jo mēs ir darbinieku vairāk nekā 45 TA un SI apmācīti šo kursu, kas ir šeit lai palīdzētu jums puiši ar saviem psets. Pirmdienās viņi notika Teal klasē 17. Hill House šeit at Yale. Otrdienās un ceturtdienās, viņi notika Commons. 8:00 līdz 11:00 diezgan daudz katru darba dienu. Ienāc, iznākt. Kāda problēma, nav problem-- tikai nāk uz in, un tad mēs jums palīdzēt ar to. Otrkārt, papildus darba laika un sekcijas, mums ir arī šorti. Vai kāds ir redzējis pāris no šorti vai walkthroughs ar video mājas lapā? LABI. Tātad viņi patiešām, patiešām noderīga. Mūsu jauki Harvard produkcija komanda tur par šo skolu up ziemeļiem, viņi filmēja un ražoti šie neticami Walkthrough video. Tie ņemšu jūs soli pa solim kā iet par problēmas risināšanas. Bieži, ja jūs sajaukt par vienkāršs jēdziens, vienskaitļa jēdziens, paskatīties, jo mums, iespējams, ir īss par to kaut kur uz mūsu mājas lapā. Un tas parasti ir lielisks resurss meklēt, ja jūs esat pirmo reizi zaudēja par to, kā rīkoties problēmu. Treškārt, mums ir arī study50 un reference50. Tātad studēt 50 par mājas lapa ir tikai saite. Tas ir, es domāju, study.cs50.net vai kaut kas tamlīdzīgs. Tikai google to. Mums ir daudz slaidiem sagatavoti. Mums ir daudz un šorti walkthroughs-- lietas visi apkopotie ļoti jauks un glīts jums puiši visu lai pārlūkotu, redzēt visus jēdzienus ka tu esi apjucis. Tā, lūdzu, iespējams, attiecas vairāk tur study50. Reference50-- līdzīgi. Mums ir daudz dažādu piezīmes viegli pieejama jūsu rīcībā. Un visbeidzot, mums ir to, kas ir sauc CS50 Apspriest, forums, kurā, ja naktī pirms jūs darāt jūsu problēmas, teiksim, Jums ir jautājums. Ieiet, lai CS50 Apspriest. Uzdodiet jautājumu. Un tad viens no hundreds-- varbūt, thousands-- vienaudžiem Pieņemot šo klasi online tiks pieteikties. Un varbūt kāds var iegūt tava atbilde pirms TA var. Tas ir būtībā tikai tiešsaistes forumā, ka mēs visi varam izmantot, lai apspriestu mūsu problēmas. Tas ir forši. LABI. Tātad problēma komplekti. Mēs esam par to labo pusi biezs problēma noteikti divi. Daudzi no mums jau ir cīnījās ar problēmu noteikt vienu. Mēs jau zinām, ka, iespējams, gaida par pēdējā naktī darīt savu PSET nav gudrākais lieta darīt CS50. Ieteikumi un padomi galvenokārt veiksme ir izlasīt visu spec. Cik daudzi no jums ir jau lasīt spec par PSET 2? LABI. Tas ir ciets summa. Es zinu, ka jūs puiši ir iespējams atzinušas ko tagad specs ir patiešām garš. Viņi tiešām, tiešām ilgi. Tas ir patiešām grūti lasīt katru līniju Minētās uzmanīgi vārdu pa vārdam. Jūs vēlaties, lai tikai iziet, kur tā stāsta jums kaut ko darīt. Es varu garantēt jums, nedariet to. Ja jūs to izdarītu, jūs, iespējams, gatavojas palaist garām kaut kur kur tas stāsta jums kā sākt problēma vai tā stāsta jums to, ko vārds jūsu problēma vai tā stāsta jums, Tas ir iespējams, ir labākais veids, kā sākt darīt savu problēmu. Un tad jums tiks zaudēts. Kad jūs mēģināt lasīt jūsu spec pusceļā, daudz svarīgi information-- jo jūs neesat būs iespēja tiešām piekļūt. Tātad, lasīt visu spec. Centieties, lai izlasītu visu spec Pirms jūs nākt uz sadaļu, jo tad, kad mēs runāt par PSET, mēs visi varam būt ideja par to, kas notiek. Otrkārt, tas ir jēdziens ka es gribētu atsaukties daudz gaitā semestrī. Bet būtībā, mums pretī pusceļā, vai ne? Me, kā jūsu TA un Jason kā kursu vadītājs un Scaz kā jūsu profesors un David kā savu profesoru un visi citi jauki Tehniskās vienošanās šajā kursā, palīgi šajā course-- mēs darīsim visu iespējamo, lai nodrošinātu, ka jūs noteikti up, lai gūtu panākumus šajā kursā. Mēs tur sadaļu. Mēs rīkos darba laika. Mēs atbildēt uz jūsu tālruni zvanus, atbildēt uz jūsu e-pastu, jādara viss iespējamais, lai padarītu ka jūsu jautājumi ir atbildēti. Tomēr mums palīdzēt out too. Meet mums pusceļā. Ja jūs nākt uz biroju stundām tā nav devusies uz sadaļu, nav redzēdami lekcijas, kam nav Ideja par to, kas notiek, ir, piemēram, man palīdzēt. Es esmu būs tāpat, labi, es esmu sorry. Tas var būt laiks, lai aizdot ka pleca raudāt par, jo es neesmu pārliecināts ko es varu darīt, lai palīdzētu jums ja jums nav mēģināt vismaz palīdzību sev mazliet sākumā. Meet mums pusceļā. Jūs zināt, lūdzu, nāk gatavi atbildēt un saņemt gatavs iesaistīties materiālu. Tas padara lietas tik daudz vieglāk visiem iesaistītajiem. Jā, tas ir diezgan daudz to. Šķirošana. Tātad par mācību, tas ir diezgan padziļināti par to, kā mēs pakāpē. Bet būtībā, sadalījums jo tas ir 50% no savas pakāpes būs psets, kas ir jauki, jo tas ir kur jūs izdevumu lielais Lielākā daļa no jūsu kursa laika. Viktorīnas 40%, un jūsu galīgais projekts būs 10%. Būs divi viktorīnas visā kursu semestra. Es domāju, ka laiki un datumi uzskaitītas arī uz mācību programmu. Tā, ka mēs tikt šķirošanas savu psets ir tas, ka mums ir būtībā četri vērtības, kuras mēs piešķirt katrai pakāpei. Mums ir vērtība jomu, pareizība, dizains, un stils. Tātad, kā redzat, tas ir sava veida mūsu formula, lai aprēķinātu psets. Trīs mēs dodam visvairāk svars pareizību, jo acīmredzot savu treneri Būtu testēšanas gadījumus ka mēs gribam, lai pārbaudītu. Jūs guys visiem ir check50 Jūsu rīcībā. Tas ir ļoti noderīga funkcija ka jūs guys var visu augšupielādēt savu kodu uz mūsu serveriem, kur mēs pārbaudīsim to you. Un jūs esat redzējuši tos frowny sejas, smiley sejas. Viņi tiešām, tiešām noderīga. Lūdzu, nav jābūt students, kas patīk neveiksmīgiem mēģinājumiem hardcode visās atbildēs uz tām. Es esmu noteikti redzējis PSET kur kāds redzēja visus vērtības check50 un viņi vienkārši grūti kodē in-- ja šis numurs, izdrukāt šo numuru. Ja šo numuru, izdrukāt šo numuru. Nedari to. Pat ja tas ir tehniski check50 ir pareizs, savu ceļu atrisināt Problēma nav pareizs. Tik vienkārši izmantot check50 taupīgi. Bet arī pārliecināties, ka jūs saprast, kā tas ir funkcionējošs, programmas darbību papildus check50, jo mēs nevaram pārbaudīt katru iespējams gadījums check50. Mēs būsim testēšanas daži no tiem. Dizains ir būtībā, kā labi izstrādāta ir jūsu kods? Ja jums ir kopēt-ielīmēt vairākas rindas kods daudz, daudz reižu. Varbūt jums nav gluži labākais dizains savu kodu. Varbūt ir pienācis laiks, lai pievienotu šo cilpa. Būtībā, šeit tas ir tikai viss par mēģina darīt savu kodu, cenšos rakstīt savu kodu, kā efektīvāk vien iespējams, lai jūsu programma darbojas cik ātri vien iespējams. Visbeidzot, mums ir stils. Tātad stils ir sava veida patvaļīgs, subjektīvs jēdziens. Es zinu, ka mēs oficiāli ir stils 50 rokasgrāmata CS50, kur tas stāsta jums, ak, jūs jābūt atstarpi šeit. Jums vajadzētu veida formātā Jūsu kods šādā veidā. Jums vajadzētu nosaukt lietas šādā veidā. Man nav īsti aprūpi, per se, kā Jūs izvēlaties stilu savu kodu, tikpat ilgi, cik jūs palikt konsekventi. Piemēram, ja jums patīk atstāt atstarpi pēc Jūsu četru pirms jūsu četru cilpu, tikai to, ka katru reizi. Nelietojiet veida darīt. Nedariet to citas reizes. Ja jūs vēlētos, lai saglabātu cirtaini bikšturi telpa noteiktā veidā, tikai vienmēr darīt to, ka veidā. Nelietojiet veida darīt to kaut kur šeit un kaut kur ne tur. Kad mēs esam klasificēšanai, tas ir patiešām grūti ja man nav ne jausmas, kā jūs formatējumu savu kodu, lietas ir prātā jucis un nevietā. Ja jūs vienkārši turēt to konsekventa, tā ir daudz vieglāk man, jo lielāks lai varētu lasīt savu kodu. Tas ir daudz vieglāk, lai jūs kā students lai varētu skatīties caur savu kodu un redzēt, kas ir nepareizi ar tas slash kāpēc tur ir problēmas. Stils ir viens no vienkāršākajiem lietām jūs guys var darīt, lai iegūtu pilnīgu rādītāji. Būtībā, ja jūs vienkārši aprūpi, ja Jūs maksājat piecas minūtes uzmanību jūsu kods katru nedēļu, jums vajadzētu iegūt pilnīgu stila punktus. Visbeidzot, mums ir, ko sauc reizinātājs jomas. Scope-- Es zinu, tas ir liels vārds, it īpaši šajā klasē. Bet joma, viss, kas līdzekļi ir tas, ka jūs mēģināt tad psets uz cik jūsu spēju. Ja jūs savukārt trīs out Jūsu četrām problēmām un nav pat mēģinājums pēdējais, jūs, iespējams, gatavojas zaudēt dažus punktus uz jomu. Pat ja jūs vienkārši sākt šo problēmu, jūsu vislabāk iet caur to. Pat tad, ja tas nedarbojas, savukārt to, jo tas parāda un pierāda mums, ka jūs mēģināt, ka Jums mēģinājis problēmu noteikto lai cik jūsu spēju. Un tad mēs varam sniegt jums pilna punkti jomu. Darbības joma ir arī ļoti svarīgi, lai tad, kad mēs runāt par zemāko PSET rezultātu kritums. Tā gaitā uz semestris, jūs puiši ir deviņas psets. Un mēs faktiski tiks krītot zemākais rezultāts no tiem deviņi, bet tikai tad, ja jums ir pilnā apjomā punktus. Tātad, ja jūs savukārt nepilnīgi PSET, diemžēl, mēs nevaram piliens, ka viens, jo jūsu darbības jomu punkti netika pabeigta. Tātad, pat ja jums ir šausmīgs nedēļa kur jūs mirst, un tu esi slims vai jūsu suns nomirst, jūsu kaķis nomirst, un jūs esat pārslogots ar mājasdarbu, vienkārši mēģinājums PSET. Vai tas, lai cik jūsu spēju. Ja tas nedarbojas, tas nav svarīgi. Vienkārši ieslēdziet to. Vismaz mēs varam dot Jums norāda par pūlēm. A pūles šajā klasē. Vismaz zemāko rezultātu Kritiena piepūli. So yeah. Tas ir diezgan daudz to. Vai kāds ir jautājumi tik tālu kā mēs pakāpes klasē? Vai kāds no šiem? Jebkurš no šiem tik far-- sekcijas, darba laiks? Cool. LABI. Tātad šis ir temats, kas nav viens patiešām patīk runāt par. Man nav īsti patīk runāt par to. Jūs guys nav tiešām vēlaties dzirdēt mani par to runāt. Bet, diemžēl, mēs visi ir par to runāt. David pavadīja 20 minūtes lekciju runā par to. Un tas ir pakļauts Akadēmiskā godīguma. Tātad, mēs visi šeit esam, iespējams rakstīts eseja dažkārt mūsu Yale karjerā. Mēs, iespējams, esam gotten runāt, kur mēs esam teicis ne plagiarize mūsu eseju, jo šis darbs nav mūsējais. Datorzinātnēs, mums ir tāda paša veida koncepciju. Viss darbs, kas jūs iesniegt, viss kods, kas jums rakstīt vajadzētu būt kodu, kas jums ir rakstisks. Nevajadzētu būt kods, kas jūs esat kopēts no kaut kur citur. Nevajadzētu būt kods, kas Jūs esat googled un plopped in un jums nav tiešām zināt, ja tas darbojas. Jūs veida ir sajūta ko tas dara, bet nav īsti. Ja šaubāties, būtībā, tas ir tikai saprātīgi. Uz mūsu mācību, mums ir vesels saraksts ar lietām mēs redzam, kā saprātīgs versus nav saprātīgi. Piemēram, saprātīgs ir jums un jūsu draugs apspriest, kas ir labākais veids, kā iet par loģiski problēmas risināšanas. Tas ir diezgan saprātīgi. Kas nebūtu saprātīgi, ja tu puiši sanāca kopā, drukāti to pašu kodu, un pagriezts vienā un tajā pašā kodu. Tas nav saprātīgi. Pats, veida eseju. Ja jūs vēlaties, lai apspriestu ar savu draugu, hey, tas ir tas, ko es gribu rakstīt par. Tie ir soļi es gribu ņemt rakstīt par to, lieliski. Tas ir brīnišķīgi. Lūdzu, sadarbojas ar otru. Ja jūs puiši sāk rakstīt to pašu, savukārt tajā pašā eseja, kas ir mazāk OK. Tātad, ja ir šaubas, vienkārši nedariet to. Lūk, mēs CS50, mums ir skripti ka palaist automatizēt, lai pārbaudītu ne tikai pareizību savu kodu, bet arī unikalitāte savu kodu. Tāpēc, lūdzu, nelieciet mums stāvoklī par pienākumu nodot savu lietu EXCOMM. Lūdzu, tikai visiem, pieņemsim tikai padara šo lieliska pieredze. Ikvienam mācās labāk, mēs visi esam laimīgāki, un mēs visi, kas līdz gūtu panākumus šajā kursā. Kaut ko, kas ir ļoti unikāls par šo klasi ka es domāju, ka ikvienam vajadzētu tiešām pievērst uzmanību ir tas, ka mums ir ko sauc par nožēlu klauzula mūsu mācību programmu. Tātad būtībā, 72 stundu laikā, ja jūs uzskatāt, ka jūs esat darījuši kaut ko jūs neesat īsti pārliecināts tika gadījumā, lūdzu, nāk pie mums. Mēs apsolām, ka 72 stundu laikā mēs galā lietu sevi neatsaucoties uz augstāku iestāde pārvaldē. Tātad, ja jūs nākt pie manis un saka, Andi, hey, es esmu patiešām žēl, bet es domāju, ka tur ir pāris līnijas Manā kods pēdējā naktī, ka es veida googled, got off kaudze Pārplūdes, kopēt un ielīmēt, un es esmu ļoti, ļoti žēl par to, ļaujiet man zināt. Lūdzu, nav tikai ļauj to pūžņot un tikai ceru, ka es nozvejas to. Mēs nozvejas to. Vienkārši nāk pie manis. Ļaujiet man zināt, 72 stundu laikā. Mēs izdomāt risinājumu. Un mēs apsolām, ka mēs ne uz universitāšu iestādes būtībā. Tātad, tas ir jūsu interesēs lai tikai būtu godīgi ar visiem iesaistīts gaitā. LABI. LABI. Tāpēc tagad, ātri pirms Es virzīties tālāk, vai kāds ir jautājumi par loģistiku par to, kā kursiem, mēs ejam, lai palaistu, kā sekcijas gatavojas palaist, kāds no tā? LABI. Jā. Mērķauditorija: [dzirdams]? ANDI PENG: Jā. Tik quizzes-- cik daudzi no jums ir jo pirmdiena / trešdiena sadaļā? Cik daudzi no jums ir otrdiena / ceturtdiena? Labi, tāpēc tas ir ciets split šeit. Tātad tā, ka mēs palaist tas at Yale ir tas, ka mēs nāksies divas atsevišķas quizzes-- vienam katrai section-- ka tiks veikti laikā klasē. Es domāju, ka tas ir oktobra beigas oktobra kaut kā tā, kā viena nedēļa no viktorīnas. Jā, tā vienkārši nāk uz klasi. Par šo pirmdien vai otrdien, jūs ņemšu viktorīnā. Par šo otrdien vai ceturtdien, jūs pieņemt atšķirīgu viktorīnas. Bet pats materiāls tiks segti. Jā. Labs jautājums. Jā. Mērķauditorija: Kur mēs iet pārbaudīt mūsu atzīmes? ANDI PENG: Jā. Tāpēc es būs izsūtot e-pasts neatkarīgi katru nedēļu kad viktorīnas ir graded-- vai, sorry, ja psets šķiro. Psets parasti ieslēgts in ar pusdienlaiks vai piektdien. Tāpēc es apsolu, ka es gribu mēģināt iegūt tos atpakaļ uz jums ko pusdienlaikam nākamā piektdiena. Ikreiz, kad es Novērtējums PSET, es sūtīšu out paziņojuma par pakāpei grāmatas kas stāsta jums savu rezultātu var apskatīt tiešsaistē. Tātad taisnība šonedēļ, pēc I pabeigt šķirošanas pagājušās nedēļas psets, jūs puiši saņems e-pastu Paziņojumā stāsta jums, hey tas ir, ja jūs iet, lai apskatītu jūsu atzīmes. Un jūs varat redzēt katru sadalījums savām atzīmēm. Jūs varat apskatīt komentārus. Ak, ātri lieta arī. Komentāru sadaļa liels Grāmata ir vieta, kur es droši vien pavada lielāko daļu sava laika šķirošanu. Tātad viena lieta, kas ir patiešām svarīgi, ja Jūs guys skatāties Jūsu pakāpes uz jūsu psets ir ne tikai meklē pie fizisko rezultātu bet arī ņemot laiku, lai tiešām lasīt manus komentārus. Bieži vien, kas dod jums atsauksmes par to, kā jūs atrisināt problēmu. Ja jums ir nepieciešams darīt kaut mazliet labāk, konstruktīva kritika parasti ir Labākais dotas šajās komentāru sadaļā. Tāpēc, lūdzu, lūdzu, es esmu gatavojas pavadīt laiku rakstot komentārus. Lūdzu, es tiešām appreciate it ja jūs guys varētu lasīt šos komentārus. LABI. Cool. Viss kārtībā. Tātad mēs gatavojamies sākt runāt un tikai pārskatot ātri daži no materiāla no nedēļa nulle tikai tāpēc mēs esam labajā lapā sākot Šonedēļ problēmas. Tātad, kamēr cilpa ir viens no trīs veidu cilpas mēs apspriedām iepriekš šajā klasē. Kāda laika cilpa būtībā ir rakstīts sintaksi kur, savukārt noteiktā stāvoklī, izdarīt atkārtoti, vai ne? Domājiet par to šajā grafikā šeit. Jūs esat gatavojas sākt pie noteiktu punktu savu kodu. Jūs esat gatavojas ienākt cilpa stāvokli if-- Man nav know-- x ir mazāks par vienu. Ja tā ir taisnība, jūs gatavojas izpildīt cilpa ķermeni. Un jūs gatavojas, lai saglabātu darot ka atkal, atkal, atkal, vairāk un over-- kas ir iemesls, kāpēc tas ir loop-- līdz Jūsu stāvoklis kļūst nepatiesa. Tātad šādā veidā, kamēr cilpa ir viens no vienkāršākā veidā rakstīt jebkādu nosacījumu, ka vajag atkārtot atkal un atkal un atkal. Tikai jābūt uzmanīgiem, kad jūs esat rakstiski jebkāda veida cilpas ka jums ir izejas stāvoklis, kā arī atjauninājumu, lai neatkarīgi no tā ir tā, ka jūsu cilpa nav tikai sabraukt un vairāk bezgalīgi. Jebkurā gadījumā, jūs gatavojas vēlaties, lai pārliecinātos, ka jūs mainīt kādu aspektu savu kods vai beigās cilpas tikai, lai pārliecinātos, ka jums ir veids, par virzību uz nosacījuma ka jūs vēlaties, lai apmierinātu līdz beigām. Vai tas ir jēga, lai visiem? Mēs vienkārši negribam būt nokļuvuši šajā spirālē kur mēs iet apkārt un apkārt un tur nav veids, lai izjauktu cilpa. Un katru cilpa būtībā ir veids, kā to darīt. LABI. Otrkārt, daudzi no jums jūsu Mario psets iespējams, bija nodarbināt šāda veida cilpas. To sauc darīt, kamēr cilpa. Pirmkārt, var kāds man pateikt kāda ir atšķirība starp do kamēr cilpa, un, kamēr cilpa ir? Jā. Mērķauditorija: do kamēr cilpa iet sākumā [nedzirdama]. ANDI PENG: Jā, tieši tā. Tātad darīt, kamēr cilpa vienmēr dara visu, ir iekšā do, iekšpusē iekavās tur un dara šo nosacījumu pirms pārbaudot the-- sorry, tas šo kodu pirms pārbaudot stāvoklī. Un tas ir īpaši svarīgi, lai mums šeit šajā klasē, jo lielākā daļa reizes mēs esam gatavojas vēlaties, lai ātri lietotājs kādu no ievades veida. Un pēc tam, atkarībā no tā, ieejas viņi dod mums, tad mēs varam novērtēt, oh, do mums ir nepieciešams, lai ātri viņiem atkal? Tātad Mario, ja lietotājs deva jums negatīvs augstums, piemēram, jūs gatavojas pirmajam uzvednes un darīt visu, kas ir iekšā. Tad jūs gatavojas, lai pārbaudītu laiku. Ziniet, ir negatīvs 1, ir tā, ka pozitīvu skaitli? Ja tā nav, es iešu atpakaļ un atkārtot darīt un atkārtot un atkārto un atkārto, līdz tie beidzot jums numuru, kas jums patīk, ka mēs visi varam izmantot mūsu kodu. Tas ir diezgan svarīgi, lai būtībā jebkurš lietotājs ievadi. Es varu garantēt Jums jebkuru reizi pēc PSET kur Mēs lūdzam jūs ievade jebkāda veida kodu, mēs esam iespējams, gatavojas sniegt jums pārbaudījums, kurā mēs esam gatavojas sniegt jums kaut ko sliktu, kas ir gatavojas mēģināt lauzt savu kodu. Ja mēs cenšamies lūgt jums ievadi skaitlis, mēs varam tikai jums virkni un redzēt, kā jūs varētu rīkoties, ka. Ja mēs lūdzam Jūs izmantot vecumu, mēs varam sniegt jums negatīvu skaitli lai redzētu, kā jūs varētu rīkoties, ka. Tikai pārliecinieties, ka jūs guys ir testēšana Gadījumus, kad jūs nesaņemat labāko ievade, pieņemsim tikai teikt. Un darīt, kamēr cilpa ir nereti labākais veids, kā veidot savu kodu, lai ka tā atbilst šo jomu. LABI. LABI. Tātad tas ir iespējams, ir visvairāk komplekss cilpa no trim ka mēs esam paskatījās līdz šim. Un tas šķiet ļoti biedējošu sākumā. Bet es garantija jums, tiklīdz jūs puiši iegūtu pakārt par to, kā izmantot cilpas, tas ir viens no visvairāk noderīgas lietas, noderīgākajiem instrumentiem savā arsenālā lai virzītos uz priekšu šajā klasē. Tā, piemēram, uz nulles, mums bija šī ļoti vienkāršs bloku ka tikko teica atkārtot šo dažu frāžu noteiktu skaitu reižu. Starp citu, SAJ-- tas Scaz Andi Jason. Mēs nereti parakstīt mūsu e-pastus Saj. Ja mēs sakām Saj, nevajag sajaukt. Tas ir tikai mums. Tātad nulles, mums bija iespēja būt bloks, kas teica, atkārtot es mīlu Saj! 10 reizes. Ļoti vienkārši. Aiz ka loģika ir ļoti, ļoti vienkārši, vai ne? Es gribu, lai vispirms iet caur pirmais laiks un redzēt, ka otro reizi un redzēt, ka trešo reizi, utt un tā tālāk, līdz jūs hit līdz 10. Un kā mēs varētu pārstāvēt, ka kods ir tikai caur vienkārša cilpu. Tātad, jūs gatavojas pasludināt savu mainīgs šeit, šajā gadījumā, ar int. Mēs ejam, lai nosaukt to es. Mēs ejam, lai sāktu to uz 0. Un apstāšanās izdevums ir būs i ir mazāks nekā 10. Un atjauninājums būs i ++. Un ietvaros cilpa, tas notiek izpildīt līdz beidzot to hits beigas condition--, kurā gadījumā, tas notiek, lai izjauktu cilpa. Ir jābūt sīkumi, kas tevi puiši ir visa veida redzējis un nācās darīt, lai jūsu problēma noteikt vienu. Vai kāds ir kādi jautājumi attiecībā uz cilpas tieši tagad? LABI. Liels. LABI. Tātad tiem no jums, kas ir lasīt PSET spec par šo nedēļu zinu, ka mēs nāksies nodarbināt kaut ko sauc ASCII un ASCII tabulu. Tātad Dāvids lekcijā piegāja īsi kā datori essentially-- viss ir kodēta ar datoru binārā, nullēm un uzņēmumiem. Un tā, ka datori ir spējīgi uzglabāt dažādas vērtības, papildus uz nullēm un tiem ir cauri kartēšanu šie skaitļi pārstāvēt citas cipari vai būtībā citas rakstzīmes. Tātad šajā gadījumā, kas ir ASCII table-- visi tā dara ir karte zīmes vai simboli, uz numuriem. Tātad pirmkoda failu Jūsu computer-- tā uzskata, hey, ķekars nullēm un tiem, nullēm un uzņēmumiem, nullēm un uzņēmumiem. Tas ko glabātas Faktiskais atmiņa datora. Bet, kad mēs, cilvēki vēlas, lai komunicēt ar datoru, mēs want-- teikt, piemēram, ja es gribu lielais A, Es esmu gatavojas nepieciešama zināma ceļu stāsta datoru, oh, kad es tipa lielos A, es domāju šī pārstāvība bināro. Un tā kā mēs to darām, ir threw patvaļīga lieta, ko sauc ASCII tabulu, kur mēs, kā cilvēkiem, kā programmētāji, kādu laiku atpakaļ, mēs patvaļīgi nolēma, ka mēs gatavojas piešķirt šos numuru vērtības uz šiem burtiem. Tātad jūs guys var google šo tiešsaistē. Es domāju, ka tur ir saite uz to savā pset-- tikai ASCII karte galds, ASCII galds. Tas tikai nozīmē binārā numurus rakstzīmes. Un tas būs ļoti noderīga Jūsu problēmu kopumu kad vien vēlaties aprēķināt kaut vai, ja jūs gribu parādīt dažu rakstzīmes vai veseli skaitļi vai manipulēt atsevišķas rakstzīmes. Tas būs ļoti svarīgi, ka jūs visi prot orientēties ASCII tabulu. Tā, piemēram, ar lielajiem A ir pārstāvēta ar numuru 65. Un mazie pārstāv 97. Tātad, tas ir svarīgi zināt, ka starpība starp divām vērtībām ir 32. Bieži, ja jums ir nepieciešams, lai pārvērstu no viens uz otru, starpība ir 32. Un neuztraucieties, ja tu esi laipns no sajaukt par to sākumā. Mēs iet pār to, kā mēs varētu nodarbināt šī faktiskā kodu. LABI. Tātad tiem, kas no jums ar klēpjdatoriem, kas, justies brīvi uzvilkt ASCII tabulu, jo tie, iespējams, būs prasa, lai jūs guys atsauces kādi rakstzīmes ir. LABI. Tātad, zinot, ka dažas Blondīne Karte uz noteiktiem numuriem, ja es būtu palaist tikai pirmais līnija, kas code-- printf A, mazie burti a, atskaitot lielais A. Vai kāds ir minējums par to, kas varētu būt izdrukāšana no ekrāna tieši tagad? Tātad vispirms, ko dara mazo pārstāv? Kāds numurs ir tas, ka kodēts ASCII tabulā. Sorry? Mērķauditorija: 97? ANDI PENG: 97, lieliski. Un kas ir lielais? Mērķauditorija: 65. ANDI PENG: Tātad, kas ir 97 mīnus 65? Mērķauditorija: 32. ANDI PENG: OK. Tātad, ko jūs guys domā, gatavojas gadās, kad es ieeju, ka līnija koda manā datorā? Mērķauditorija: [nedzirdama]. ANDI PENG: Atvainojiet, runāt. Neuztraucies. Tas ir ļoti drošs vide, mīnus kamera. Mēs visi esam gatavojas kuri paredzēti, bez raizēm. Tikai mēs visi gatavojas izlikties, piemēram, tas ir tikai mums atdzesēšanas šajā telpā. Neuztraucies. Nav jautājums ir pārāk stulba. Nav atbildes ir stulba atbilde. Es droši vien esmu gatavojas kļūdīties gaitā manu mācību. Nopietni, puiši, tikai izpļāpāt to ārā. Esiet pārliecināti par sevi, jūs zināt? Tātad, kas tas bija? Kurš teica, ka pagājušajā atbildi? LABI. Kliegt, ka jauka un skaidra. Mērķauditorija: 32? ANDI PENG: 32. Labi, pieņemsim palaist šo kodu un redzētu, vai tas, kas notiek. LABI. Tātad, kā jūs guys var veida redzēt, tipisko notācija es esmu izveidot šeit par to, kā mēs varētu nodarbināt jebkura veida programmas mūsu datorā. Mums ir mūsu galvenā funkcija mūsu galvenā funkcija. Es esmu tikai gatavojas kopēt un ielīmēt šo rindiņu kodu. Tāpat jābūt uzmanīgiem, kad jūs guys Kopējot un ielīmējot kodu. Reizēm daži operatori nav ielīmētu pa pareizi. Tādā gadījumā mīnus zīme bija faktiski domuzīme. Un tāpēc dators nav pick it up. Tāpēc man bija iet atpakaļ un fiziski atkārtojiet to. Tikai jābūt uzmanīgiem, jūs puiši dara to. LABI. Mēs ejam, lai palaistu šo šeit. Tātad mēs ejam uz cd mūsu section2. Esmu sauc šo programmu asciimath. Līdz ar to atcerēties, kad mēs palaist kādu programma, mēs vēlamies, lai vispirms apkopot to palaižot caur mūsu marku. Un tad mēs gribam, lai faktiski palaist programma darot dot-slash. Tātad mēs ejam ./asciimath. Tiesības, tur mēs ejam. Un mēs redzam, 32. Labi padarīts. Jums ir pelnījuši kādu konfektes. Candy jums. Piedodiet. Viss kārtībā. LABI. Tātad, mēs varam doties atpakaļ uz mūsu piemēru šeit. AAH, nē. AAH. LABI. Es esmu tikai gatavojas, lai saglabātu to, piemēram, ka. LABI. LABI. Tātad, kā jūs guys var redzēt, ko mēs varam darīt daudz ļoti interesantas lietas, daudz ļoti labas lietas, daudz ļoti sarežģītas lietas, kas saistītas ASCII rakstzīmes un cipari. Kad jums uz leju, lai līnija pieci, tas ir daudz sekot līdzi. Mēs nebrauksim, lai iet caur sadaļā. Jūtieties brīvi, ja jūs varat, iemesls, tas uz papīra Pirmais, ko vajadzētu notiek, kad tu ievadi šāda virkne vērtību. Tā, piemēram, ar to, ka pēdējās līniju, mums ir z-- kas pārstāv noteiktu number-- a-- kas arī apzīmē daži number-- plus 1 modulos 26 plus mazajiem burtiem a. Ja jūs guys turpiniet lasīt caur šiem, jūs var redzēt modelis nākt klajā cik mēs esam manipulējot kodu. Es ļoti, ļoti iesaku pēc iedaļas jums visiem puiši iet uz priekšu un ievade tie visi savā datorā un redzēt, kāda veida numuri nāk ārā un pamatojuma caur kāpēc tie ir notiek, jo jūsu psets tas būs ļoti svarīgi lai jūs varētu saprast kāpēc dažas lietas notiek. Visi šie slaidi būs tiešsaistē. Līdz ar to nav rūpes par mēģina fiziski nokopējiet piezīmes. Viss ir tiešsaistē. Tas pats sadaļa būs tiešsaistē. Visas manas pirmkods ka Es skrienu būs tiešsaistē. Jā. Vai jūs joprojām ir jautājums? Mērķauditorija: Kas ir modulos? ANDI PENG: OK. Tātad Modulo ir operators, kas notiek, lai būt diezgan svarīgi, lai jūsu puiši rotaļu PSET šeit. Tātad tā, ka uzņēmēji C un programmēšanas darbu ir tas, ka jums ir, ko sauc par dalīšana simbols un modulis simbols, kas ir tāpat kā procentu zīmi. Tātad C, kad jūs darīt vesels skaitlis jādala ar skaitlim ar slīpsvītra C ir tendence vēlas samazināt off visiem cipariem aiz komata, jo vesels skaitlis grib pārvērst līdz veselam skaitlim. Tas nav gatavojas vēlas būt dubultā ar ķekars decimāldaļu viss pēc tā. Tātad, ja man 3 dalīts ar 2, tas notiek lai nogrieztu 0,5 un tikai jums 1. Tātad tas ir kaut kas ļoti uzmanīgiem, kad jūs esat veicot jebkāda veida math programmēšanā, ir tas, ka skaitļi jums nedrīkst būt skaitļi ka tu domā, kas ir iemesls, kāpēc noapaļošanu uz jūsu pēdējais PSET ir tik svarīga. Modulo dod jums atlikušo daļu. Tā, piemēram, ja man bija 3 Modulo 2-- tik 3 procentu zīme 2-- tas dotu jums atlikušo kas. Tātad 3 dalīts ar 2 1.5. Tas ir 1 atlikušo 1. Tas dod jums 1, kas ir atlikums no tā. Tātad, ja jūs guys kustas caur ASCII tabulā, Modulo galu galā ir kaut kas ir ļoti svarīgi, un mēs apspriedīsim, ka vēlāk. LABI. Tātad kaut kas ir diezgan, diezgan jauna un diezgan unikāls ka mēs esam apspriests šonedēļ ir jēdziens, ko masīvs ir. Tātad masīvs ir pirmais Datu struktūras tips ka mēs ejam sastopas šajā klasē. Visi dati struktūra ir daži patvaļīgi veida, burtiski lietas, piemēram, struktūras ka mēs kā programmētāji ir radījuši, ka mēs esam izveidojuši mūsu kodu, kas var saturēt citus gabalus kodu. Tātad šajā ziņā, ir array-- domā par to kā failu kabinets, kur, ja jūs atvērt atšķirīgs plaukti jūsu failu kabinets, Jūs varat piekļūt dažādas lietas. Atmiņā, masīvs ir tikai dara pats uz sava datora. Jums var būt atšķirīgs blocks-- mēs viņiem piezvanīt indices-- no masīva. Tas ir tāpat kā bloku, plaukts atmiņas ka mēs esam izveidojuši tavos dators, ka jūs varat ievadīt dažas lietas dažādās telpās. Tātad ar masīvu, jūs vienmēr ir specify-- Jums ir jānorāda atzīts par masīvs, formātā. Jūs esat gatavojas vispirms norādīt datu tipu ka jūs vēlaties, lai izveidotu masīva. Ja es gribu masīvs integers, Es gatavojas īstenot int turpat. Ja es gribu masīvs stīgas, Es esmu gatavojas īstenot stīgas tur, nosaukums jūsu masīvs, un pēc tam Jums nāksies kvadrātiekavas. Un iekšpusē kvadrātiekavās, tu esi nāksies izmēru jūsu masīvs. Kaut kas, kas ir patiešām svarīgi, lai paturiet prātā, veidojot bloki ir ka, kad jūs izveidot masīvs, kas izmēru nevar mainīt. Tātad, ja jūs zināt, ka tieši tagad Jums ir masīvs izmērs 10, Jūs zināt, ka es esmu nāksies 10 šūnas laikā vai 10 indeksiem šajā masīva, un tas nekad paplašināt vai samazināt vienalga ko, un ka tur ir Pašlaik tikai 10 bloki telpā piešķirti jūsu atmiņu, kas var uzglabāt līdz 10 lietas, par ko jūs esat izlietošanu. Tātad šādā veidā, masīvs datu tips, datu struktūra, kas ir masīvs ir ļoti atšķirīga no dažiem citiem, mēs tikt aptverot vēlāk šajā kursā. Jā. Piemēram, ja jūs vēlaties, lai izveidot masīvu izmēru 3 ka iekļautie mainīgie integer-- Ak, piedodiet, no temperature-- un temperatūra, no Protams, ir vesels skaitlis. Tātad, mēs radītu int, kas ir datu tips, ko mēs gribam saglabāt. Mēs ejam, lai izsauktu šo temperatūru labad nomenklatūras nosaukumu kaut kas, mēs visi saprotam. Un mēs esam nāksies kvadrātiekavas. Un mēs gribam trīs skaitļus. Tāpēc mēs esam gatavojas nodot trīs iekšpusē no tā. Kaut kas, kas ir patiešām svarīgi paturēt prātā ir tas, ka bloki ir nulle indeksēti. Viss, kas nozīmē, ka jums sākas ar indeksu no 0, un jūs palaist augšup pa izmērs masīva mīnus 1. Tā, piemēram šeit, mēs ir masīvs izmēru 3. Tas notiek, lai spētu turēt trīs vērtības. Bet skaitļi themselves-- ka numurs, masīva, ka indekss, masīvs, ir no 0 līdz 2. Tātad puiši, jābūt ļoti, ļoti uzmanīgiem, jūs iet caur jūsu problēmu, kas un radot jebkādu masīvs, jo daudz reizes, tas ir tiešām, tiešām viegli aizmirst, ka. Man tiešām nav indeksu 3, kas man šobrīd vienkārši ir indeksu 2. Un, ja jūs mēģināt piekļūt trešo indeksu, tas būs to, kas ir sauc null terminators. Tas nav gatavojas faktiski pastāv masīva. Un dators ir netaisos, piemēram, ka. Tāpēc esiet uzmanīgi, ja jūs piekļūt lietas vienkārši lai nodrošinātu, ka jūs atceraties ka masīvi ir nulle indeksētas. LABI. Tātad pirmais piemērs ir tikai viens veids, kā izveidot masīvu. Otrs piemērs man ir zemāk ir tikai atsevišķs veids radīt to, kas ir tāds pats datu struktūra, kas mēs esam tikai ievadīts. Tā vietā, lai fiziski darbojas cauri un liekot temperatūrā no 0 vienāds kāds, temperatūra 1 vienāds neatkarīgi, temperatūra 2 ir vienāds kāds, es varētu faktiski tikai tieši rada to visu vienā rindā uz temperatūras kvadrātiekavās vienāds. Un paziņojums šajā gadījumā, jums nav nepieciešama precizēt, cik liels jūsu masīvs ir, jo dators gatavojas iet cauri, un redzēt, ka tur ir trīs elementi šajās cirtaini lencēm. Un tas notiek, lai zināt, OK, Man vajag masīvu izmēru 3. Jūs neesat gatavojas nepieciešams ievadi šādā veidā. Un arī, jā, ka veidā. Vai kāds ir jautājumi par to, kā mēs bloki vai kā darbojas struktūra masīva? Jā. Mērķauditorija: [dzirdams]? ANDI PENG: Jā, tieši tā. Tātad, ja jums bija atzīt un sāktu masīvs šādu metodi, kas ir otrais veids, Jūs varat atstāt tos. Un dators automātiski zina, ka tā nepieciešams, lai saskaitītu, cik daudz elementu ir šajos cirtaini bikšturi, atdalītas ar komatiem. Tātad, šeit viņi redz 65, 87, 30. Tātad dators zina, ak, tur ir trīs veseli skaitļi. Es zinu, lai izveidotu masīva vārds temperatūra ar trim elementiem tajā. Labs jautājums. Jā. Mērķauditorija: Vai nav iespējams izveidot masīvs ar dažāda veida datu kas varētu tikt noslēgts tā? Piemēram, ar veseliem skaitļiem [dzirdams]? ANDI PENG: Par mērķiem šīs klases, nē, tieši tagad. Kad jūs izveidojat datu struktūru, piemēram, masīva, jūs esat stāsta dators, hey, man vajag tevi piešķirt tik daudz Atmiņas manu cieto disku, ar katru šūnu būdams noteiktu skaitu bitu. Atcerieties, mēs uzzinājām nedēļā nulle ka dažādi dati veidiem ir dažādu izmēru? Tā, piemēram, virknes ir atšķirīgs summa no vietas nekā char, kas ir atšķirīgs daudz vietas no veselam skaitlim. Un tāpēc, ja jums nav jānorāda, un jūs samaisa un saskaņot kāda veida mainīgo Jums ir, dators ir būs ļoti sajaukt. Un tas nav gatavojas zināt cik daudz atmiņas, lai dotu jums. Tātad nolūkā tiesības Tagad, datori var tikai atzīst viena veida masīvu. Labs jautājums. LABI. Tātad, protams, tad Otrais jautājums mums ir ir labi, tagad, ka mēs esam sagatavojuši masīvs un mēs esam nodot visas šīs lietas masīvā, kā mēs būs iespēja tai piekļūt? Tātad tipisks struktūra, mēs vienmēr piekļūt masīvs ir mūsu jauki par cilpu. Es jums apsolu, puiši, kas mēs būsim redzēt daudz šo kolēģiem šeit. Būtībā, jebkurā laikā vēlaties ievadīt vērtības uz masīva vai jūs vēlaties tiem piekļūt, tad Labākais veids, kā to darīt, ir, lai cilpa, jo A cilpas, jūs zināt, cik reizes tu esi gatavojas vēlaties, lai palaistu cauri masīvs, jo jums ir pieturas izdevums, vai ne? Un katru reizi, kad jūs darbināt izmantojot, jūs varat piekļūt atšķirīgs elements masīva. Un arī tas ir iemesls, kāpēc parasti sākam mūsu par cilpas pie 0 vērtībā, jo, kad jūs piekļūt bloki, Jūs varat piekļūt nulles indeksu. Un tā tas paralēles ļoti labi. Jums puiši var būt gribēja rakstīt int i ir vienāds ar 1. i ir mazāks par vai vienāds ar 3. Bet tas nedarbosies tik labi šeit, jo jums ir tikai ir elementus, 0, 1, un 2. Un tādēļ, ja jums bija, lai sāktu savu es pie elementa 1, 2, un 3, jūs gatavojas galu galā darbojas no robežas jūsu masīvs, un sliktas lietas gatavojas notikt. Tāpēc es ceru, ka jūs guys redzēt segue kāpēc iepriekšējās klasēs mums mācīja jūs puiši, kā vadīt un formatēt cilpa tā, ka mums bija. Tas ir tāpēc, tagad mēs esam pārgājis uz blokiem, jūs varat redzēt, kāpēc 0 aizdod pati ļoti labi, lai piekļūtu. Tātad, kā mēs to darām, ir that-- es esmu tikai izdrukājot to šeit labad izdrukāt to ārā. Bet man ir mana viettura, komats. Un faktisko Piekļuve daļa notiek. No masīva nosaukums sauca temperatūra. Tātad, tas ir temperatūra un i-th elements masīva. Tā kā, lai cilpa iet cauri, tas notiek, lai sāktu 0. Tas notiek, lai izdrukāt 0. indekss šī masīva. Tad tas notiek, lai drukātu no pirmā elementa. Tad tas notiek, lai drukātu ārā, bet otrā. Un tad mēs ejam, lai izjauktu. Vai visi skaidrs Kā tas notiek? Liels. Viss kārtībā. Tātad šeit mums ir veids, sakot, ja mēs negribējām uz cietā kodu in-- mani kā programmētājs. Es negribēju, lai faktiski fiziski likts katru atsevišķu elementu Šī masīva. Ja es gribēju vietā ir lietotāja ievades vērtības, kas ir labākais veids, kā to darīt? Nu, šeit esmu izveidojis šī jaukā funkcija, kurā es varētu deklarēt masīvu. Tātad int scores-- pieņemsim tikai teikt, mēs vēlamies, lai masīvs, kas turēja klašu visu 18 Studējošo šeit, šajā sadaļā. Es domāju, ka mēs esam ieguvuši mazliet vairāk nekā 18 bērni šodien. Bet, piemēram dēļ, pieņemsim tikai pieņemt, mums bija 18. Es vēlētos izveidot masīvu nosaukumu rēķinus ar tips int, jo rādītāji, protams, ir skaitļi. Un es esmu nāksies 18 kvadrātiekavās, jo tas, cik daudz studentu I vēlas, lai varētu uzglabāt rādītājiem. Un kā es gribētu apdzīvot masīvs ir tā, ka es gribētu palaist to caur cilpas, no Protams, ar 0 ir mans 0. indekss. Un tad ar 18 ir mans apstāšanās izdevums, jo tur ir 18 elementi masīva. Un tad es esmu gatavojas darīt printf, Enter novērtē student-- yada yada yada. Vai kāds man pateikt, kāpēc šeit es esmu drukāšanas i plus 1, un ne es? Tas ir sava veida triks Jautājums, nav īsti. Tas nav reāli fiziski ietekmēt darbību kodu. Jā. Mērķauditorija: [dzirdams] 0? ANDI PENG: Jā, tieši tā. Tas ir mazliet neērti teikt, hey, tu esi 0. students šajā klasē. Tas ir mazliet dīvaini. Tātad mums, kā cilvēkiem, nav tiešām patīk domāt par to, kā datori domā. Tātad, kaut arī dators, tas ir uzglabātu vērtības ar 0-th indeksu, kad mēs esam cilvēki, mums nav īsti gribētu atsaukties uz sevi kā nulli. Tātad, kad es tikko drukāt, ka, Es esmu gatavojas drukāt un pievienot 1 tikai skaidrības labad. Tātad, kad es drukāt, es esmu būs spēj drukāt studentus no 1 līdz 18 gadiem. Tas nav reāli ietekmēt vadīšanu kodu jebkādā veidā, kā es izdrukāt. Bet jābūt uzmanīgiem, kad jūs esat faktiski piekļūt masīva. Kad jūs redzēt rādītāji I ievērosiet šeit es esmu patiešām piekļūstot 0th indeksu un nevis 1 plus 0-- vai 1 plus 1, Šajā gadījumā, indekss tik ka tas ir faktiski skaidrs. Vai visi sava veida OK kā tas darbojas, izmantojot un ar katru indeksu es esmu liekot vērtību uz masīva un radot masīvu ar 18 numuriem ka lietotājs iet uz ieejas? LABI. Cool. LABI. Mēs tagad pāriet uz kaut ko, kas ir diezgan Uz šo gabalu, kas, kā labi. Es zinu, lekciju, David-- sorry, jums bija jautājums? Mērķauditorija: Vai jūs varat palielināt to? ANDI PENG: Jā, tāpēc es mēģināju. Bet es nezinu. Kādu iemeslu dēļ, šis PowerPoint versija ir tiešām nedarbojas arī ar displeju. Tātad mēs esam tikai gatavojas lai saglabātu to, kā šis. Visi šie tiks augšupielādēti internetā. Atvainojiet, puiši. Jā. LABI. Tātad, mēs varam arī virknes. Tātad, ja jūs guys faktiski notice-- I zināt Rob piegāja tas šajā lekcijā ka viņš did-- virkne faktiski tikai masīvs rakstzīmes, ja jūs domājat par to, vai ne? Virkne ir vārds vai teikums vai vārdu, vai ne? Ja es būtu, lai radītu virkni nosaukumu Andi-- tikai mans vārds, A-N-D-I. Jūs domājat, ka no tā, kā tikai vienu mainīgo. Bet patiesībā, tas ir sadalīti vērā tikai masīva chars. Tātad tas ir got raksturs glabā masīvā vērtībā. Tas ir ieguvuši raksturu n saglabāti otrais indekss un tā tālāk, un tā tālāk. Tātad, tādā veidā, mēs faktiski ir šāda veida Struktūras noteikts Vieta mūsu stīgām. Tātad šeit, ja man bija ieejā Vārds "ēst" - tā string vārdu vienāds saņemt virkni. Ja es būtu ieejas vārdu "ēst", kas ir fiziski tā, ka mans dators ir uzglabājot, ka virkne manā atmiņā. Un, ja es gribēju, lai palaistu cauri ka un izdrukāt ka out-- tāpēc uz i vienāds nulle, atcerieties, lekciju, mēs aptvēra kaut kas sauc strlen, vai garums string. Jo man nav reāli zināt, cik liels masīvs ir no kāda lietotāja inputting-- Piemēram, es ievadīšana vārdu "ēst", un es zinu tas ir trīs rakstzīmes garš, vai ne? Tāpēc es varētu īstenot trīs tur un viss būs labi. Bet, ja jūsu lietotāja ievadi kaut ko tas ir cits vērtību skaits, jūs gatavojas nevarēs patiešām zinu, ka tad, kad jūs ieprogrammēt savu kodu. Tātad tā, ka mēs risinām testpiemēru piemēram, ka ir tas, ka mums ir kaut kas sauc strlen, kas ir tikai funkcija kas stāsta, cik ilgi virkne ir. Tātad strlen no vārda. Mans vārds ir ēst. n ir vienāds strlen vārda. Vai kāds man pateikt, kas tas vērtība patiesībā ir labi tur? Kāda n pārstāv tiesības Tagad, šajā piemērā, ja man bija ēst? Mērķauditorija: 3. ANDI PENG: 3, tieši tā. Tāpēc mums ir par int i vienāds nulle, n ir vienāds ar 3, būtībā. Un es gatavojas palaist kamēr tas ir mazāk nekā 3i ++. Un tas notiek, lai būtībā iet cauri un darīt to pašu. Tas notiek, lai izdrukātu katru vērtība un jums E-A-T. Tas ir tikai apzīmē atšķirīgs veids, kā to rakstīt. Tas būs ļoti noderīga. Jā. Mērķauditorija: Kas ir priekšrocības liekot n ir vienāds strlen vārdu iekšā, ka cilpa [dzirdams]? ANDI PENG: Jā. Tātad, ja es būtu kuri paredzēti, saku, piemēram, ja es būtu to darīt, un pēc tam do-- oop-- ka, manā kodu, tas būtu faktiski dara tāpat to pašu. Tomēr, tā, ka Deivids paskaidroja IT lekciju laikā, ja kāds no jums guys atceros, bija tas, ka, kā cilvēki, kā programmētāji, mēs tiešām cenšamies programmēt OUR kods lai mūsu dators ir strādāt pēc iespējas minimālas, tāpēc ka mūsu kods ir ļoti efektīva. Tātad, ja man bija, ka tur, ko notiktu caur manu cilpa ir tā, ka es gribētu vispirms izsludināt mainīgais nosaukts i būs 0. Es esmu gatavojas pārbaudīt, ak, to, kas ir strlen no vārda? Ak, strlen ir 3. Tā ir i mazāk nekā trīs? Jā, tā ir. Es esmu gatavojas palaist. Un tad otro reizi atpakaļ ap cilpa, es esmu gatavojas pieauguma i. i būs viens. Un es gatavojas pārbaudīt, ak, bet to, kas ir strlen no vārda? Ak, tas ir trīs. Un tas, ka, šķiet veida izšķērdīgs, Katru reizi palaižot caur cilpu, lai pārbaudītu funkciju, kaut gan ar strlen no vārda nekad faktiski mainās? Tātad, tas ir papildu jauda, ​​lai datorā. Kad jūs sākat runāt par lietām ka ir miljardiem un miljardiem un miljardiem Vietu ilgi, iedomāties savu datoru fiziski iet cauri un pārbaudīt visu, kas katru reizi. Tieši tāpēc, lai vienkārši labad efektivitāti, mums ir tendence vienkārši izdarīt, jo šādā veidā mēs esam tikai zvana funkciju vienreiz sākumā, un ka katru reizi tas iet caur to, kas notiek lai saglabātu vērtību 3 tur, ka jums nav ir nepārtraukti jāpārbauda katru reizi. Jā. Mērķauditorija: Sorry. Just [dzirdams]. Vai jums int n ir vienāds ar strlen un nodot ka virs ārpus cilpa arī? ANDI PENG: Jā. Jūs varētu darīt, absolūti. Iemesls mēs to šeit ir jo veids, kā par cilpa darbiem ir tas, ka tā sauc vietējās mainīgais nozīmē ka viss jūs esat radot iekšpusē cilpa pastāv tikai iekšpusē uz cilpas. Tātad mainīgais i tikai pastāv šajās iekavās. Un šeit mainīgo lielumu n arī eksistē tikai šajās iekavās. Tātad, ja jūs būtu izmantot strlen no vārds vairākas reizes zemāk, absolūti labākais veids, kā to darīt, būtu atzīt to top tāpēc jums nav to darīt vienu reizi. Jā. Mērķauditorija: Kāpēc jums ir Jaunā līnija pēc procentiem redzēt, ja jūs vēlaties, lai visiem burti blakus to atsevišķi? ANDI PENG: Ak, es gribēju drukāt tos visus katrā rindā. Tas nav svarīgi. Jā, tas ir formatējums. Tas ir labs jautājums, though. Jā, ja es gribēju, lai izdrukātu tas viss tikai uz vienu līniju, Es nebūtu domuzīme in. LABI. Ikvienam labs? LABI. Cool. Tāpēc es domāju, ka es runāju pietiekami. Jūs guys kārta palaist caur kods un man pateikt, kas ir nepareizi šeit. Kur ir kļūda? Tātad, kā jūs varat redzēt, es esmu paziņojis, ka Jaunais masīvs veida stīgu nosaukts klasē. Un es esmu ievadīšana Sam, Jess, un Kim to. Un es esmu mēģina izdrukāt visi elementi masīva. Vai kāds man pateikt, kāpēc tas gatavojas sniegt man problēmas? Es došu jums puiši 10 sekundes, lai padomātu par to. LABI. Yeah? Mērķauditorija: Vai kreisā centrs vienāda ar 3 vai [nedzirdama]? ANDI PENG: Right. Tik cik reizes tas ir reāli gatavojas palaist caur šo cilpu? Mērķauditorija: Four. ANDI PENG: Tieši tā. Tas notiek, lai, izmantojot četras reizes. Tas notiek, lai palaistu cauri pie 0, 1, 2, un 3, jo to elements ir i ir mazāks par vai vienāds ar 3. Tas nav gatavojas pārtraukt, ja tas ir 2. Tas notiek, lai saglabātu iet līdz tas hits 3. Un kā mēs zinām, tur ir tikai trīs elementi mūsu faktiskās masīva. Ja mēs cenšamies piekļūt ceturtais elements vai indekss 3, jūs gatavojas hit kaut kur atmiņā, kas neeksistē. To sauc par null terminators. Nekas būs tur. Jūsu dators nav dodas būt ļoti apmierināti ar jums. Jā. Vai kāds ir jautājumi par to, kāpēc tas notiek? Tas ir kopējā telpā izvairīties. Jā. Mērķauditorija: Vai nav pirmais slide ir arī virkne 2? ANDI PENG: Nē. Tātad būtībā, kad jūs gūstat masīvs, ka kronšteins tiesības tur, ka number-- visi tā stāsta jums ir, kā daudzi elementi man ir. Tas nav reāli stāsta me indeksi neko. Tātad šajā gadījumā, es zinu, es gribu rakstīt ar trim vietām, ar trim fiziskām vietām, lai turēt kāds es gribu turēt. Tātad, tāpēc numurs trīs ir tur. Tomēr, ja es gribēju faktiski piekļūt, ja es gribēju teikt, printf klase kronšteins numurs, tad jūs gatavojas faktiski laisti fiziskā indekss tur. Jā, labs jautājums. Mērķauditorija: Tātad ir fiziskā indekss vajadzēja būt [nedzirdama]? ANDI PENG: Es atvainojos. Vai jūs varat runāt pat mazliet? Mērķauditorija: Tātad ir fiziskā indekss [Dzirdams] katrs no kastes? [Dzirdams]? ANDI PENG: Jā. Tāpēc es esmu gatavojas doties atpakaļ uz labo šeit. Domājiet par tepat. Mums ir masīva izmēru 3. Tur ir trīs vietas, piemēram, fiziskās vietturi šeit. Bet viņi nosauca 0, 1 un 2. Tātad, ja es gribēju, lai tās izmantot, tā, ka es viņiem piekļūt ir printf par ko es gribēju šeit. Jums būtu drukāt out nosaukumu tā, Jo tad datora zina, oh, man ir nepieciešams meklēt šajā masīvā par 0th indeksu. Jā. Bet izmērs no tā nemainās. Izmērs ir 3, neskatoties par to, kā jūs tos apzīmēt. LABI. Ikvienam labs? Mērķauditorija: Tātad, katru reizi, kad es [dzirdams]? ANDI PENG: OK. Tātad šajā gadījumā, mums nav īsti nokļūt to tieši tagad gaitā. Bet zinu, ka string-- piemēram I teicu, virkne būtībā masīvs rakstzīmes. Tātad, ja es izveidot masīvu Stīgu, es veida ir masīvs masīvs no burtiem, vai ne? Tātad, šajā gadījumā, jo I ir masīvs stīgas, ja tu būtu ievadi ļoti garš vārds, kas joprojām aizņem tikai vienu telpu, jo tas ir viens virkne. Bet, ja tu būtu jādomā par rakstzīmes šī masīva, tad tas ir sākšanu daudz vairāk rakstzīmes nekā jebkurā no citiem vārdiem sakot, ir. Nav īsti svarīgi tieši tagad. Bet tas ir tikai vispārīgi Kā tas strādā. LABI. Tātad tas ir kaut Es jums darīt daudz gaitā semestra. Man vajag, lai atpūstos manu balsi. Jūs guys ir nepieciešams, lai stimulētu sevi. Daudzi no jums, iespējams, ir gulēt tagad. Es esmu ievadījusi izlases problēmas kur mēs kā klasē vai jūs ar partneri blakus jums gatavojas pavadīt pāris minūtēm apspriežot par to, kā mēs varētu iet par risināšanas vai izveidojot programmu, piemēram, šis. Tāpēc tieši tagad, mēs gribam lai izveidotu program-- mēs ejam, lai izsauktu to upper.c-- kas pārvērš mazo vārdu uz augstākās šķiras string-- lielos, sorry. Word in stīgas, piedodiet, ir sinonīms. Es esmu gatavojas mainīt tos nozīmē to pašu. Jā. Paņem pāris minūtes. Tai nav jābūt jebkurā valodā. Tikai pseudocode kodu vai loģiski, kā mēs varētu pat iet par darot šāda problēma. Jā. [SIDE saruna] Es arī pamanīju, ka jūs guys can-- Es veida redzēt jau programmu. Es domāju, mans trūkums vadītājs režīms ir problēma. Bet tas ir OK. [SIDE saruna] Jā, lūdzu, puiši. Nāciet saņemt konfektes. Nāciet saņemt konfektes. Mērķauditorija: Jā! [SIDE saruna] ANDI PENG: Arī, jā, Es sāktu throwing konfektes pie cilvēkiem, kam nav atbildēt uz jautājumiem. Tātad jums vajadzētu visiem atbildēt uz jautājumiem. Vai es domāju, ka cilvēki, kas Vai atbildēt uz jautājumiem. Jā, otrādi. [SIDE saruna] Mērķauditorija: [dzirdams] ANDI PENG: Jā. Jā. [SIDE saruna] Labi, puiši. Veikt, piemēram, vēl 10 sekundes. [SIDE saruna] OK, puiši. Tātad, pirms mēs sākam mēģināt faktiski fiziski rakstīt kodu, labs ieradums, lai attīstītu, ka mēs vēlamies, lai pirmo veida dēļ out loģiski, kā mēs varētu to darīt. Jūs vēlaties pārliecināties, pirms jums fiziski sāk mēģināt kodu Mario, ka jūs veicat pārliecināts, ka jums ir jūsu pseudocode. Tas ir ņemot jums caur kas jums ir nepieciešams, lai izveidotu tik ka, ja jūs fiziski uzrakstīt savu programmu vēlāk, Jums ir iespēja labāk noķert kļūdas savu kodu un lietām, piemēram, ka. Tātad mēs ejam, lai vienkārši sākt pēc-- angļu valodā, jo pseudocode, Vai kāds vēlas, lai dotu mani vispārējs izskaidrojums par to, kā mēs varētu iet par to izdarīt? Jā. Mērķauditorija: [nedzirdama]. ANDI PENG: Protams, neuztraucieties. Mērķauditorija: Vai jūs varat lūgt to, vai lūgt kāds, lai iegūtu virkni 1-- Jā, auklas, un tad-- ANDI PENG: Jā, tā tas ir labs sākums. Es sāktu rakstīt, sorry, kā tu runā. So-- Mērķauditorija: --the mazie burti skaits ir lielāks, vai ne? Vai mazie burti ir liels skaits? ANDI PENG: Tieši tā. Mērķauditorija: Tātad mēs atņemt 32 no kāda [nedzirdama]. ANDI PENG: Great. Tātad mēs veida ir vispārējs sajūtu par to, kā strādāt par šo problēmu. Zinot, ka mēs esam veida iemācījušies fiziskā veidā, ka stīgas tiek saglabāti atmiņā, Ko jūs jau zināt, ka jūs gatavojas, iespējams, ir rakstīt savu kodu lai pārvietotos caur string? Mērķauditorija: Par cilpa. ANDI PENG: A cilpa, precīzi. Liels. Tātad, mēs veida ir vispārējs pseudocode noraksta šāda veida sniedz Jūs norāda uz to, kā jūs varētu pārvietoties atrisināt problēmu. Tagad, kad esat šo, jums var atsaukties to vēlāk par to, kad jūs mēģināt faktiski rakstīt savu kodu. Tātad mēs faktiski var iet šeit. Un man funkciju sauc upper.c-- tur tas is-- no tikai tukšu veidni tiesības tagad, ka jūs puiši gatavojas man palīdzēt izdomāt, kā rakstīt šī līnija code-- nav koda rindu. Tas būs vairāki koda rindiņas. Uzsākot jebkādu Tukšā PSET, kas ir pirmā lieta, man ir nepieciešams atcerēties to darīt? Mērķauditorija: [nedzirdama]. ANDI PENG: Great Yep. Iekļaut. stdio.h. Bieži tas ir viens no visvairāk viegli kļūdām cilvēki dos, kad viņi rakstot, ir tas, ka tie būs aizmirst iekļaut svarīgi bibliotēka tiem nepieciešams. Tātad, ja tas ir darba laiks, un jūs, piemēram, Es nezinu, kāpēc mans kods nedarbojas. Vai jūs varat man pateikt, kāpēc tas nedarbojas? Mēs ejam, lai teikt tu # Ietvert? Jums vajadzētu # Ietvert to. LABI. Tātad, mēs esam ieguvuši standarta I / O šeit. Vai tas ir vienīgais bibliotēka mēs spēsim nepieciešams šeit? Ko vēl mēs gatavojamies darīt? Piedodiet. Kāds vienkārši kliegt to ārā? Mērķauditorija: [nedzirdama]. ANDI PENG: Tur jums iet. LABI. Un kā es varu iet par sākuma jebkādu Funkcijas, jebkura veida galvenā funkcija mūsu programmu? Int galvenais. LABI. Ko man iekšā šeit? Kas ir pirmā lieta, ko jūs vēlaties darīt? Ja mēs vēlamies, lai iegūtu virknes no lietotāja, ko mēs nāksies darīt šajā pirmajā rindā? Atvainojiet, jūs puiši vienkārši justies brīvi runāt un skaļi. Just bļāviens neatkarīgi. Mērķauditorija: Uzdot lietotājs? ANDI PENG: Kā mēs to darām? Ask-- es esmu gatavojas rakstīt "pieprasīt no lietotāja"? Mērķauditorija: Printf. ANDI PENG: OK. Printf. Ko es vēlos, lai printf? Mērķauditorija: Ierakstiet kaut ko. ANDI PENG: piemēram, ka? Puiši, izlikties, piemēram, es esmu dators. Fiziski man pateikt, ik uz soļa ka man ir nepieciešams rakstīt šeit? Es daru kaut ko nepareizi? Vai man ir drukāti kaut ko? Mērķauditorija: Jums ir nepieciešams pēdiņām. ANDI PENG: Man vajag citātus? LABI. LABI. Mērķauditorija: Un tad jaunā līnija. Semikols. ANDI PENG: semikols? LABI. Labs. Mērķauditorija: Un varbūt precizēt ka jūs vēlaties to ar mazajiem? ANDI PENG: Great. Jūs guys smieties par mani aizmirstot likt semikolu. I garantija jums kaut kur gaitā šīs klases, Jums būs aizmirsis nodot semikolu, un tas jūs aizvedīs trīs stundas, lai noskaidrotu , kāpēc jūsu kods nedarbojas. Tas ir noticis ar mums visiem. Tas, iespējams, notiks ar jums. Iegūt labu paraduma izmantot semikoliem. LABI. Mērķauditorija: Vai jūs vēlaties darīt slīpsvītru in? ANDI PENG: Protams. Vai jūs vēlaties darīt slīpsvītru in? Mērķauditorija: Jā. ANDI PENG: Great. LABI. Ko man darīt tālāk? Mērķauditorija: Get virkni. ANDI PENG: Get virkni. Tātad, ko es rakstīt? Kāds? Mērķauditorija: String s. ANDI PENG: String s. Mērķauditorija: GetString. ANDI PENG: Somebody, jūs varat man pateikt, kur Šī funkcija GetString nāk no? Mērķauditorija: String.h. ANDI PENG: String.h? Jūs domājat, ka tas ir no string.h? Mērķauditorija: [nedzirdama]. ANDI PENG: Tur jums iet. Tas ir no CS50.h. Ja jūs vienmēr nesaprašanā, kur bibliotēkas fails ir vai header fails ir, google burtiski string.h, un es jums saku kādas ir visas funkcijas ka ir string.h. LABI. Tāpēc tagad, ka esmu izveidojis virkni un es esmu atgādinās lietotājam par to, Esmu uzglabā to mainīgo nosaukts s, kas man jādara tagad? Mērķauditorija: Pārbaudiet, vai tas ir mazajiem burtiem. ANDI PENG: Sorry? Mērķauditorija: Pārbaudiet, vai tas ir mazajiem burtiem. ANDI PENG: Labi, pieņemsim darīt. Kā es varu darīt? Patiesībā, tiem mērķiem no klases tieši tagad, mēs esam tikai gatavojas pieņemt, ka viss ka mēs ievade ir jau mazajiem. Ja jūs vēlētos, lai pārbaudītu, jūs vienkārši pievienojiet nosacītu paziņojumu kas pārbauda, ​​ka skrēja cauri katru masīva elements un pārbauda, ​​vai tas ir starp noteiktām vērtībām. Es aizmirst to skaits no vērtībām mazajiem ir. Jūs varat skatīties to uz augšu uz ASCII tabulu. Bet jā, tas ir patiešām labs punkts. Bet tieši tagad, mēs esam tikai gatavojas pieņemt, ka visas stīgas mēs ievade ir ar mazajiem. LABI. Tātad, kā es varētu iet par šī problēma nākamais? Mērķauditorija: Par cilpa. ANDI PENG: Par cilpa? LABI. Pastāsti man, ko rakstīt. Mērķauditorija: Par int i ir vienāds ar 0. ANDI PENG: OK. Mērķauditorija: Ak, tiešām, tad jums do komatu un darīt n ir vienāds strlen. ANDI PENG: Tātad svarīga lieta ka es domāju, ka viņa ir pamanījuši šeit ir tas, ka mums nebija ko teikt int n otrā reize, kad mēs to darījām. Tikai zinu, ka A cilpa kad jūs deklarējot, jums tiešām nav nepieciešams int par otro reizi, kad jūs mainīgo. Jūs varat teikt n strlen. Mērķauditorija: S. ANDI PENG: s. LABI. Mērķauditorija: Tad semikolu. ANDI PENG: Protams. Mērķauditorija: Un tad [nedzirdama] n. Tad i ++. ANDI PENG: Great. Viss kārtībā. Ko mēs gribam iekšā Tas cilpa tagad? Atcerieties, ja mēs ejam, lai palaistu cauri virkne un palaist, izmantojot masīvu, mēs vēlamies, lai pārbaudītu lietas tajā. Ko mēs gatavojamies vajag? Tas ir sava veida kutelīgs daļa tagad. Kāds ir minējums? LABI. Tātad, pirmkārt, kā mēs pat piekļūt? Kā mēs pat pirmā pārbaude, vai piekļūt elements masīva? Kā mēs to darām? Kas ir notācija mēs izmantojam, lai to izdarītu? Kas ir sauc šo masīvu sauc? To sauc s, vai ne? Atcerieties, ka jebkurš string vienmēr masīvs. Tātad s kronšteins es, vai ne? Jo tas ir pašreizējā vērtība vai indeksa vērtība mēs pārbaudīt. Un mēs esam gatavojas noteikt, ka vienlīdzīga kuri paredzēti, mēs vēlamies mazo burtu vērtību, vai ne? Mēs vēlamies, lai ieslēgtu ka lower-- Atvainojiet, mēs gribam lielais. Mēs vēlamies, lai ieslēgtu mazos vērtība stājas lielajiem burtiem. Un tā like-- Piedod, kāds ir tavs vārds? Mērķauditorija: Heidi. ANDI PENG: Sorry? Mērķauditorija: Heidi. ANDI PENG: Heidi. Tāpat Heidi teica Sākotnēji, mēs, iespējams, būs nepieciešama the-- mēs esam droši vien nāksies atņemt 32 no jebkādiem charc, kas ir, vai ne? Tāpēc, ka uz ASCII galds, atšķirība starp mazo burtu un lielais burts ir 32. Tad, kad mēs darām to, mēs, iespējams, gatavojas vēlaties, lai atņemtu 32, vai ne? Tāpēc mēs esam gatavojas darīt sa i. Vai visi saprastu, kāpēc es to izdarīju? Jo tieši tagad, mūsu masīvs, mēs pārbaudot 0th indeksu, vai ne? Un ar 0th indeksa string, tas ir pirmais raksturs. Un ka raksturs mēs ejam uzņemties tas ir mazie burti. Ja mēs vēlamies, lai tā lielos, mēs ir atņemt 32 no tās cenas, jo mūsu ASCII galds, tas, kā mēs to uz nākamo atbilstošo vērtība, kas padara to lielais. Vai visi saprot, ka? Jā. Mērķauditorija: Vai jūs, arī do mazajiem burtiem ir minus-- ANDI PENG: Jā, tā tas ir tiešām ļoti labs. Es esmu gatavojas atgriezties, ka Jautājums, kad mēs to izdarītu. Jā. Un tad, ja es gribu redzēt, kas notiek, Es droši vien esmu gatavojas vēlaties drukāt, vai ne? Kāds man pateikt, kas Es gribu, lai drukātu šeit. Mērķauditorija: printf procenti c slīpsvītru [nedzirdama]. Tas ir vērtība [dzirdams] s i. ANDI PENG: s i, žēl? Mērķauditorija: [nedzirdama]. ANDI PENG: Es nezinu. Ko tu domā? Mērķauditorija: Nu, es wouldn't-- Es domāju, es nebūtu bring-- Es varētu ņemt to out iekšā, jo [nedzirdama]. ANDI PENG: Ak, tu būtu darījuši? Mērķauditorija: Jā. ANDI PENG: Atstāsim to ceļu tas ir, un es paskaidrošu, kāpēc vēlāk. Atcerieties, ka pat tad, ja jūs ir vietturim, Jūs vēlaties, lai iekavas ap to. Viss kārtībā. Tātad tas būtu stabils funkciju šeit. Pieņemsim palaist to un redzēt, ja tas apkopo. Padarīt virsu. Uh-oh. Tas neizskatās pārāk labi. Kāpēc tas notiek? Tāpat kā ar jebkuru kļūdu, jūs vēlaties, lai iet atpakaļ un sākas ar pirmo, jo tipiski vienu kļūdu cēloņiem daudz citu kļūdas pēc tā. Šeit mēs redzam upper.c: 18: 25, kas stāsta mani šajā programmā nosaukts upper.c, 18. līniju, kļūda netieši atzīstot bibliotēkas funkciju strlen ar tipu unassigned-- blah, es nezinu kas notiek pēc tam. Viss tas stāsta man tagad ir ka kaut kas notiek uz strlen. Un dators ir sajaukt, jo tas ir tāpat kā, es nezinu, kas ir strlen? Ko tas, ka, iespējams, pateiks, jums trūkst? Mērķauditorija: Tu esi pazudis [nedzirdama]. ANDI PENG: Jums taisnība. Tieši tā. Tātad, tas ir, ja tas ir svarīgi pārliecināties ka katru funkciju jūs izmantot jūsu kods ir ar pareizu galveni failu bibliotēkā, vai arī jūs gatavojas iegūt daudz kļūdu un jūsu kods nav dodas zināt, kas notiek. Tātad mēs ejam, lai iekļautu string.h šeit. Tagad, kad mēs cenšamies, lai apkopotu virsu. Aizpildi pareizi. Pieņemsim palaist šo programmu. Tātad ierakstiet kaut ko mazie burti. Ko jūs puiši vēlas rakstīt? Bļāviens kaut ko. Labi, Charly vienkārši gāja. Mēs ierakstiet Charly vārdu. Charly ar mazajiem. Un cerams, cerams, tas ir gatavojas bļāviens un izspļaut Charly ar lielajiem burtiem. Yay! dara visi saprotam, cik Es devos par risināšanas kas? Tā, ka es varu manipulēt izmantojot veseli skaitļi atrisināt kaut kas Es gribu darīt stīgas, jo rakstzīmes un veseli skaitļi var ir atsauce pašā veidā, jo ASCII kartēšanu. Tātad, lai dotos atpakaļ uz savu punktu, ja es gribēju likt šeit, nevis 32 lielais Mīnusa mazajiem burtiem taisnīgs patīk kas, kas varētu strādāt tikpat labi, jo tas ir vienkārši tikai atšķirība starp šīm divām vērtībām. Ja es gribu, lai šo again-- Charly. Ak, nē. Es domāju, ka mēs devāmies nepareizi, jā? Mērķauditorija: [dzirdams] mazajiem burtiem a. ANDI PENG: Tur jums iet. Yep. Un ārā spits Charly. Tāpēc esiet uzmanīgi, jūs atņemot vērtības atcerēties kuriem viens ir lielāks nekā otru. Piemēram, šeit es aizmirsu ka mazie a ir patiešām lielāka nekā lielajiem A. Tātad, kad es mēģināja atņemt viņiem citā veidā apkārt, es saņēmu negatīvu 32. Un mans dators bija, piemēram, Es nezinu, kas tas ir. Tas ir varbūtība tikai daži izlases vērtību, kas nav ļoti labs. Un tāpēc pārliecinieties, ka jūs esat atņemot pareizā garumā lai atrastu rakstzīmi, kuru vēlaties. LABI. Vai kāds sajaukt par to, kā mēs staigāja rakstot šo funkciju? LABI. Tātad faktiski, funkcija jau pastāv bibliotēkas sauc ctype.h. Bibliotēkas sauc ctype.h. Šī funkcija patiesībā ir jau rakstīts jums. To sauc par augšējo. Un tā nolūkā Tas PSET, jūs gatavojas lai atrastu, ka jūs patiešām vēlaties izmantot daudz funkciju ietvertas ietvaros ctype bibliotēkā. Lai augšējā, lai samazinātu, ir augšējā, ir lower-- tiem ir visas funkcijas ka jums būs iespēja izmantot ļoti, ļoti ātri savā kodu, kas dara tieši to, ko tas dara. Mēs rakstījām, kā pārvērst stīgu ar lielajiem burtiem. Bet tas ir faktiski kods ka kāds cits ir uzrakstījis un ka jūs varat piekļūt caur citu funkciju. Yeah? Mērķauditorija: Tātad jūs vienkārši kopēt ir tur un darīt to par katru vēstuli? ANDI PENG: Jā, jo man nav rūp vērtībām a. Es tikai rūp, ka atšķirība starp tām ir 32, vai ne? Atšķirība starp mazajiem b un lielais B ir arī 32. Un starpība starp C un lielais C vienmēr ir 32. Man vienkārši ir rūp atšķirība starp diviem, jo visi burti to pašu modeli, vai ne? Ja man ir starpība starp vienu no tām, Es zinu, kāda ir atšķirība starp tām visām ir. Labs jautājums. Jā. Ikvienam labs? LABI. OOP. LABI. Tātad vēl viens jēdziens, kas ir būs ļoti noderīga, jo jūs turpināt attīstīt Jūsu kods ir šī ideja radīt funkcijas vai ieguvei. Tāpēc tieši tagad, mēs visi esam veikti algebra. Algebra, jums ir mācīts, ka pastāv šo brīnišķīgo lieta, ko sauc funkciju mašīna, kur, ja jūs ievade viena veida skaitu, tas iet caur šo brīnišķīgo funkcijas un ārā pops citu produkciju, vai ne? Ar kodu, tas pats notiek jebkura veida funkciju. Tāpēc es varētu fiziski rakstīt manā ķermenī manu kodu galvenais apgalvojums, ka tiešām kāds ķermenis koda dara. Bet ārpus, ka es varu arī rakstīt daudz dažādas funkcijas ka darīt daudz dažādas lietas. Piemēram, mēs esam jau sāka izmantot dažus no tiem. Printf-- ka ir funkcija, kas kāds cits jau rakstīts, ka mēs varam zvanīt mūsu kodu. Uz upper-- šajā gadījumā, upper-- ir cita funkcija mēs esam rakstīts, ka mēs varat zvanīt mūsu kodu. Un tāpēc es domāju, kāpēc mums pat ir funkcijas? Kāpēc ne mēs tikai plunkšķis to visi vienā rindā kodu? Tas padara to viegli ikvienam. Nu, pamatojums aiz ka ir, pirmkārt, organizācijas. Tas ir tiešām kaitinošas notiek caur kādas personas koda un viena funkcija, piemēram printf. Ja jūs guys tiešām zināja, ko funkcija printf ietvēra rakstīt, tas ir, piemēram, 1000 rindas kodu. Ja katru reizi, kad es gribēju lai printf kaut ko, Man nācās rakstīt 1000 koda rindiņas, kas būtu tiešām kaitinošas lasīt, labi? Tieši tāpēc mēs esam tikko izveidojis šo abstrakto funkciju ka mums ir jau kāds cits ir rakstīts kaut kur citur. Un katru reizi, kad mums ir nepieciešams, lai izmantotu to Mūsu kodu, mēs vienkārši jāsaka printf. Un, kas spēj izmantot funkciju kāds cits ir rakstīts mūsu kodu. Tas atvieglo organizatoriski lasīt kodu. Otrkārt, tas ir vienkāršošana. Tas vienkāršo soļus mums ir veikt, lai atrisinātu mūsu problēmas. Printf, funkcijas, piemēram printf, funkcijas, piemēram, ar augšējo ir visas lietas, kas ļauj mums, lai vienkāršo kodu uz leju, tāpēc ir vieglāk. Un pēdējā lieta ir otrreizēju. Tātad fakts, ka mums ir funkcija sauc printf ka mēs varam zvanīt daudz dažādu reizes, un ļauj to izmantot atkārtoti. Ja es būtu rakstīt printf, Es tikai rakstīt to vienu reizi. Tā eksistē tikai ar to, ka vienā vietā. Ja es gribēju darīt to vēlreiz, es darītu ir kopēt un ielīmēt visu, kas manā otrajā rindā kodu. Tieši tāpēc, ja mēs izveidot funkciju ka eksistē ārpus mūsu galvenais, mēs varam tikai aicināt tas un atkārtoti to, kad vien mums ir nepieciešams, lai tas ir daudz vieglāk mums kā programmas, lai rakstītu. Tātad tā, ka mēs faktiski rakstīt funkcija ir ļoti līdzīgs, vai ne? Tas ir sava veida pirmais instance, kurā mēs redzēt funkciju uzņemties stils savādāka nekā mūsu int main tukšumu. Šajā gadījumā, ja es gribēju uzrakstīt funkciju sauc q, vai ne? Un int vērtība šeit ir viss spēcīgi mani, Ko es gribu šo darboties, lai atgrieztos pie manis? Ja es gribu, lai kubs vesels skaitlis, Es esmu gatavojas vēlaties ievadīt. Tie ir parametri. Es esmu gatavojas izejvielas vērtību tipa int. Un es esmu gatavojas atgriezties cita veida vērtību int. Un šeit, kā jūs var redzēt, viss, ko es daru ir cubing kāds mans ieguldījums ir kā manu produkciju un to atkārtošanos. Tātad viss, šī funkcija dara ir aizņem dažas no skaitlim veida. Tā reizina to ar sevi divreiz tā, lai tā klucīši efektu. Un tad tā atgriež kāds tas rezultāts ir. Tātad šajā gadījumā, tas ir divas līnijas kods, kas mums bija, lai rakstītu papildus. Bet, ja mēs vēlējāmies, lai izsauktu pār šo vairākas reizes, tas ir daudz vieglāk rakstīt, ka viens line tepat, kas ir in kubs nekā ir iet cauri vairākas reizes. Tātad tā, ka būtībā jebkurš formatējumu jebkāda veida funkciju gatavojas pastāvēt ir kā šeit. Tāpēc mums ir funkcijas nosaukumu. Šajā gadījumā to sauc kubu. Un mēs nosaukt to kubu, jo tas ir viegli atcerēties. Jūs varat nosaukt tas laukums un tas tiešām var kubā. Nav nozīmes. Tikai vārds, kas jūs esat piešķirot savu funkciju. Šīs tiesības šeit, int, ir Parametra jums ir nepieciešams veids. Tātad, ko dara šo funkciju ir nepieciešams, lai darbotos? Nu, tā ir nepieciešama ievadi. Es nosauca to ieejas. Jūs varat nosaukt to, ko vien vēlaties. Bet man vajag kaut ko tipa int. Tas būs faktiski izpildīt kāds ir iekšā šeit, ķermeņa funkcijas. Un tad atgriešanās tips tieši šeit, tas int-- viss tas stāsta man ir ka šī funkcija ir atgriezīsies pie manis int. Tātad, tas ir gatavojas uzņemt int, un tas notiek, lai dotu jums atpakaļ int. Vai visi saprastu, kā formatējums šāda veida darbu? Cool. LABI. Tāpēc nevajag uztraukties, ja tas šķiet nedaudz abstrakts tieši tagad. Tas ir kaut kas, mēs runājam par. Mēs nirt dziļāk vēlāk gaitā. Tā, ka jebkāda veida augstākā līmenī abstrakcija šīs lietas strādā ir tā, ka, atmiņā, kas dators, viss tiek glabāta šajā tipa kaudze, es saku. Tā tur augšpusē. Es nezinu, ja jūs puiši var redzēt, ka labi. Es mēģināšu, lai tuvinātu. Šeit augšpusē, mēs ir fiziskā tekstu par to, ko dators ir interpreting-- visi nullēm un tiem, kas pastāvēt mūsu datorā. Un tad mums ir inicializēts dati un neinicializētu dati, ko mēs saucam par globālo mainīgo. Tātad mainīgajiem, kas pastāv visās programmās un pāri visu jūsu, būtībā, kods. Neraizējieties, ja jūs guys ir veida neskaidrs par to. Tas nav īsti jautājums tieši tagad. Un tad mums ir to, kas ir sauc kaudze kaudze. Domājiet par kaudze burtiski kā tāpat kaudze lietām, kaudze atšķirīgs lietas stumšanai virsū viens no otra, ka uzglabāt dažādu mainīgie un sintakse jūsu kodu. Un tad šeit pašā apakšā, mums ir vides mainīgos par to, ko jūs izpildes laikā tikai jūsu maz līnija kodu. Un mēs esam tikai gatavojas, lai tuvinātu kas par faktisko kaudze daļu. Tātad tieši šeit, ja mēs būtu, lai tuvinātu kas par tikai šajā jomā kaudze, tas ir, kā tas izskatās. Un tas ir faktiski diezgan svarīgs kad jūs guys runāt par funkcijām, jo paziņojums, ka atmiņa datora ir uzglabāt mainīgos un funkcijas un parametri gan savu funkcija un Jūsu galvenie mainīgie dažādās vietās. Tāpēc tieši tagad, galvenais ir faktiskais funkcija ka jūs esat izpildes kodeksā. Jūs esat tā parametri šeit glabāti un tās vietējās mainīgie glabājas šeit. Vietējā mainīgais vienkārši ir jebkurš mainīgais ka pastāv tikai šo funkciju. Un uz augšu no tā, jums ir šī atsevišķa funkcija sauc kubu. Jums ir tas parametri kā arī tiem vietējiem iedzīvotājiem. Un iemesls, jūs varat redzēt šeit ir tā, ka tas, ko notiek, kad kubs uzņem vērtība no sava galvenā funkcija ir tas, ka patiesībā tā ir kopēšana, ka vairāk nekā. Tātad, ja es gribēju, lai kubu 2 un atpakaļ 8, ka 2 faktiski ievadīšana kā parametrs, un tas ir pārkopēti tāpēc, ka jums ir tā esošās divās dažādās vietās atmiņā. Un jums ir jābūt ļoti uzmanīgiem uz atcerēties, kurš no tiem jūs faktiski manipulējot. Un piemērs, kas noticis tas būtu ļoti, ļoti slikti eksistē tepat. Tātad tieši šeit, es saņēmu, teorētiski, programma tepat galvenā funkcija x ir vienāds, ka es esmu deklarējot int 1. Es esmu pasludina citu int y vienāds ar 2. Un tad es skrienu to izmantojot šo funkciju sauc swap, kur es pieņemu, ka tas pārnešana divas vērtības. Un tad es esmu gatavojas izdrukāt tos, vai ne? Tas, ko es gribu šo programmu, lai darīt. Tātad pieņemsim nokāpt un to apskatīt. Tātad, ja es tiešām rakstīt atšķirīgs funkcija, kā jūs varat redzēt, mums ir mūsu galvenā funkcija šeit. Un tad mums ir mūsu Otra funkcija šeit. Void swap. Void tikai nozīmē, ka tā ir nav gatavojas atgriezties neko. Funkcija nosaukums ir sauc swap, un tas ir gatavojas ieplūdes diviem mainīgajiem, int A un int b, no jūsu [nedzirdama] funkciju. Tātad būtībā šeit, mēs esam iet x un y par šo funkciju. Un, ja mēs būtu izveidot this-- tāpēc mēs vēlamies lai izveidotu pagaidu vērtību, pa labi? Mēs ejam, lai piešķirtu, ka, lai a. Un tad būs tagad vienlīdzīgu b. Un b būs atpakaļ ja temp vērtība bija, kas ir, jo kad vēlaties apmainīt lietas, Jūs varat ne tikai, piemēram, mijmaiņas tiem. Jums ir, lai saglabātu vienu out šeit tā, ka tas atceras kas tas ir, jo vienreiz jūs mijmaiņas vienu, jūs aizmirst kas tas sākotnējā vērtība bija taisnība? Tātad teorētiski, šajā programmā jāstrādā, vai ne? Ja es gribēju, lai mijmaiņas divi, tie ir swap. Tātad, pieņemsim palaist to un redzēt, ja tā darbojas. Tātad, kā jūs guys var redzēt, x reiz bija 1 un y reiz 2. Un, ja es to izdrukāt, x ir vēl 1 un y ir 2. Hmm, šī programma nav, šķiet, ir strādā tā, ka es gribu, lai tas darbotos. Vai kāds vēlas veikt shot uzminēt, kāpēc tas notiek? Tas ir saistīts ar to, kā ka dažādas lietas ir uzglabā dažādās vietās atmiņā. LABI. Tātad jums puiši nav jāuztraucas pārāk daudz par šo tieši tagad. Bet zinu, ka kubs ir vietējais mainīgie bija a un b, jo šeit mūsu funkcijas, mēs esam deklarētas a un b kā mainīgie, kas pastāv ietvaros kubs, ka funkcija. Bet kā jūs varat redzēt, parametri, kas tas uzņemot tika uzglabāti šeit. Bet mēs nebijām faktiski atgriežoties neko. Mums nebija faktiski nemainot x un y. Mums bija tikai mainot a un b. Mums bija kopēts x un y vērā kaut kas sauc un b. Bet mēs nekad patiesībā manipulēt X un Y paši. Vai jūs guys redzēt Kā tas notiek? Ir, ka mēs esam vienkārši kopēt to vairāk, bet mēs neesam slēpusi trase, kur viņi bija atmiņā. Un tāpēc tagad dators meklē, ak, es esmu palaist šo lietu cauri šī jaukā funkcija. Bet X un Y ir joprojām x un y. Nekas ir noticis viņiem tāpēc, ka šiem parametriem un vietējās mainīgie tiek saglabāti atšķirīgs vietu atmiņā. Un tas ir augstāka līmeņa Koncepcija, ka mēs sākat redzēt vēlāk gaitā. Bet tikai zinu, ka tas ir problēma, kas var notikt un ka mēs izdomāt veidus, kā galā ar šo vēlāk gaitā. LABI. Viss kārtībā. Tātad pēdējais jēdziens mēs esam tiešām gatavojas segt kas būs noderīga par PSET šonedēļ ir tas, ko sauc par komandrindas argumentus. Tātad Rob savā lekcijā pārdzīvoja veida īsumā par to, kā šie darbu. Būtībā zinu, ka kad jūs esat rakstiski kā galvenā funkcija, kad mēs rakstīja funkcijas pirms pagātnē, mums bija int main tukšumu. Un iemesls, kādēļ mēs neesošu tur bija bija tāpēc, ka mūsu programmas nebija nepieciešams ievades vērtībām, lai palaistu, vai ne? Kad es skrēja Mario, man nav nepieciešams faktiski vienkārši ierakstiet kaut ko kad es skrēja Mario. Es varētu nekavējoties lietotājam vēlāk. Bet tas ne vienmēr tā ir. Tā, piemēram, jo ​​šī nedēļas problēma komplekti, jūs gatavojas lūgt, ka papildinājums rādīt savu programmu, jūs gatavojas vēlaties ievadīt dažas lietas taisni, palaist savu programmu. Tātad, kā mēs to darām, kas tiek saukta komandrindas arguments, kas ir kā argumentu jūs varat ievadīt tieši kā jūs mēģināt palaist savu programmu. Tātad apzīmējums tam, tas ir diezgan sarežģīts izskata, bet tas tiešām nav, ka grūti. Tātad int main-- tas ir tikai jūsu galvenā funkcija. Into argc komatiem string argv iekavās. Tātad viss, kas saka, ka šis int argc-- viss, kas stāsta jums ir tā, ka tie ir skaits argumenti dators būtu gaidīt. Tātad viena lieta, kas ir patiešām svarīgi, lai sekotu ir fiziskā nosaukums jūsu programmā skaitās kā viens no šiem argumentiem. Tātad, ja es gribēju, lai man programma palaist plus vienu papildu komandrindas Arguments, es esmu patiešām nāksies divi. Argc patiesībā būs divi. Un tad string argv bracket-- viss, kas dara, tas dod man masīvs virknes, kas ir gatavojas tikai parādītu un uzglabāt to, kas visiem šiem komandrindas argumenti ir. Tā, piemēram, ja es gribēju, lai šo programma, ./copy infile outfile, vai ne? Tas ir tikai tipisks Linux komandu. Kas patiesībā ir argc? Cik komandrindas argumentus ir tur faktiski šo? Tas viss dara, ir padarīt kopiju infile nosaukuma vienā failā un tā kopijas to citu failu, vai ne? Tas ir tas viss dara. Kā jūs varat redzēt, es esmu darot to vienā rindā bez faktiski nepieciešamības programmu. Kas ir mūsu argc šajā gadījumā? Cik argumenti mums ir? Mērķauditorija: Three? ANDI PENG: Mums ir trīs, tieši tā. Tātad, tas ir ļoti intuitīvi tikai domāju, ka tas ir tikai infile un outfile. Bet zinu, ka fiziskā nosaukums no Programma jūs darbojas skaitās kā viens. Tātad šajā gadījumā, argc ir faktiski trīs. Kā par to, kas ir argv 0? Atcerieties, visas šīs komandrindas argumentus tika glabāti masīva stīgas. Tātad, ja es mēģinātu piekļūt, ko būtu argv kronšteins 0 dod man? Mērķauditorija: [nedzirdama]. ANDI PENG: Tieši tā. Tas dotu man dot slash kopiju, jo tas ir 0. elementu, Manas masīva pirmais elements. Kas par argv 1? Mērķauditorija: infile. ANDI PENG: infile, tieši tā. Kas par argv 2? Mērķauditorija: outfile. ANDI PENG: outfile. Tas ir mazliet viltīgs tagad. Ko jūs puiši domājat argv 3 tiks dod man ja es mēģināju izdrukāt ka ārā? Mērķauditorija: [dzirdams]? ANDI PENG: Vai Jums ir roku uz augšu? Jā. Mērķauditorija: Alternatīva. ANDI PENG: Tieši tā. Tik atceros, lekcijā, ka mēs ir beigās sacīkšu kaut sauc Null terminators? Mēs nokļūt arī par šo tālāk klasē. Bet zinu, ka apzīmējums, veids, kā jūsu dators zina, ka tas ir beigu masīva ir tas, ka liek kaut ko sauc null terminators vai domuzīme nulle. Tātad, ja jūs mēģināt piekļūt argv 3, jūs gatavojas hit šo domuzīme 0. Tas ir pat vairāk āķīgs jautājums. Kas par argv 4? Tātad šis ir pagātne null terminator, pagātnes robežas mūsu masīva. Kas, Jūsuprāt, gatavojas notikt, ja mēs cenšamies to darīt? Mērķauditorija: [dzirdams]? ANDI PENG: Sorry? Saka, ka mazliet skaļāk? Mērķauditorija: [nedzirdama]. ANDI PENG: Jā. Tas ir vārds no platība jūs, visticamāk, saņemsiet. Bet zinu, ka argv 4-- kas ļauj piekļūt vietas jūsu datora atmiņu, kas jums patiešām nevajadzētu būt aizkustinošs, jo tagad jūs zināt, kas ir argv. Jūs zināt, ka tas ir masīvs lieluma 3 ka ir dot kopēt, INFILE un outfile. Ja jūs mēģināt iet tik tālu pārsniedz to ka tu esi pagātnes null terminatoru, datoram ir iespējams glabājas kaut argv 4. Un jūs tiešām nevajadzētu būt atļauta iekļūšanu argv 4, jo jums ir fails kabinets un tu esi tikai atļauts piekļūt šiem trim plauktiem. Bet, ja jūs mēģināt sasniegt tālu ārpus plaukta, kur jums ir atļauts, jūs gatavojas sākt messing ar citas lietas datora atmiņā. Tas būs ļoti, ļoti slikti. Tik vienkārši zinu, ka. Jābūt ļoti uzmanīgiem, ka jums ne tikai nejauši sākt piekļūstot elementus masīvā, kas nebija, ko jūs vēlētos, lai radītu. Yep. LABI. Tāpēc mēs esam gatavojas darīt otru termināls piemērs šeit. LABI. Tātad Rob ātri lekciju citu dienu gāja izmantojot šo piemēru, kur viņš bija int main int argc string argv kronšteini, kas ir spēcīgi mani, ka es esmu nāksies komandrindas argumentus. Viņam ir, ja argc vienāds vienāds 2-- atcerēties, vienāds vienlīdzīgi nozīmē salīdzinājumu. Ja tas ir vienāds ar 2, tad es esmu gatavojas drukāt hello, neatkarīgi no pirmā masīva elements ir. Else drukāt, hello world. Kas tas ir gatavojas notikt pēc būtības? Vai kāds vienkārši paskaidrot Angļu ko šī programma dara? Jā. Mērķauditorija: Ja kāds drukāti komandu un teica, ka viņu vārds un uzvārds, tas būs ne tikai drukāt Pirmais un teikt, sveiki, neatkarīgi no jūsu vārds ir. ANDI PENG: Labi, pieņemsim palaist to. Tā, piemēram, ja man bija, lai padarītu Šis fails padarīt sveiki kuri paredzēti, sveiki kuri paredzēti, ko jūs vēlaties, lai es ieeju? Mērķauditorija: Vārds un uzvārds. ANDI PENG: Vārds un uzvārds? Spaces? Mērķauditorija: Jā. ANDI PENG: Vai kāds pateikt man tieši tagad, kas ir argc? Tikai labi tur? Hmm, sorry. Ļaujiet man iet atpakaļ. Cik komandrindas argumentus are-- jūs guys nevar īsti redzēt. Bet es mēģināšu, lai tuvinātu. ES cenšos. Jā, tur ir trīs, vai ne? Tas ir dot slīpsvītra hello, tas ir Andi, un tas ir Peng. Tātad, ko jūs guys domāju, ka tas Programma tiks drukā? Oh. Ak, piedod. Nepareizs nosaukums. Tas ir izdrukāšana, hello world. Vai kāds vēlas, lai izskaidrotu kāpēc tas notiek? Yeah? Mērķauditorija: [nedzirdama]. ANDI PENG: Tieši tā. Tātad šeit ir nosacīta ir, ja argc vienāds atbilst 2. Tā tikai gadījumā, ka tur ir divi komandrindas argumentus. Tad es esmu gatavojas drukāt, sveiki, kāds tas ir. Bet kas cits, es esmu gatavojas drukāt tikai, Hello pasaule. Tātad tas kāds vēlas sniegt man piemēru par to, kā es varētu reāli get to izdrukāt vērtību argv 1? Kas man būtu ievadi šeit? Tikai viena lieta, vai ne? Jo dot hello to jau skaitās kā pirmo argumentu. Man ir tikai viens vairāk. Tātad, dot sveiki, ja es tikai darīt Andi. Sveiki, Andi. Vai visi saprotam kāpēc tas notiek? Jā. Mērķauditorija: Tātad telpa starp komanda line-- tas [dzirdams]? ANDI PENG: Nē. Tātad telpu komandrindas arguments, x, lai pastāstītu savu datoru ka tas ir sākums jaunam virkni. Tātad stīgu argv here-- Tā veikalos visiem jūsu komandas argumentus stīgas. Un tā telpa, komandrindas argument-- viss, kas dara, ir pateikt jums, tas ir beigās vienu stīgu un ir pienācis laiks pāriet uz citu. Jā. Tas ir diezgan svarīgi Jūsu PSET, jo tu esi būs testēšanas tiem. Tātad vai kāds ir kādi jautājumi par šo? OK, atdzesē. Yeah? Mērķauditorija: Tātad iemesls jūs varētu likt veselam arguments Calc vietā no [dzirdams] būtu, ja jūs vēlaties rakstīt papildu informāciju [Dzirdams]? ANDI PENG: Jā, tieši tā. Dažas programmas būs nepieciešama, lai jūs ievade komandrindas arguments ka tas iet un kas izmanto to. Jā. Mērķauditorija: Tātad, ko tad, ja [dzirdams]? ANDI PENG: Nu, ko man ir mainīt tad manā programmā? Mērķauditorija: Tikai 3. ANDI PENG: Kāpēc ir tā, ka kas notiek, jūs domājat? Mērķauditorija: Jo [nedzirdama]. Mērķauditorija: Jūs ir mainīt to uz 2 [nedzirdama]. Mērķauditorija: 1 un 2. ANDI PENG: 1 un 2, tieši. Tātad šajā gadījumā, jums, iespējams, vēlas, lai būtu divas printf statements-- viens, kas drukāts argv 1 un viens, kas izdrukāts argv 2. Šeit. Es patiesībā var izdarīt ļoti ātri. Lūdzu. Oh. Ne gluži tas, ko jūs vēlējāties. Bet, ja jūs puiši putru apmēram ar formatējumu, tas nāks ārā. Jā. Cool. Es zinu, ka mēs esam mazliet īsā laikā. Bet es esmu tikai gatavojas ātri pavadīt pāris minūtes iet cauri helpful-- Mērķauditorija: Jums ir divas minūtes. ANDI PENG: Man ir divas minūtes? Paldies. Dažas ātri PSET padomus. Tātad par šo PSET, es ļoti ieteiktu, kā jau teicu, visi lasīt spec. Jums tiks rakstveidā trīs programs-- vienu sauc initials.c, viens sauc caesar.c, viens sauc vigenere.c. Daži svarīgi padomi, kas jums puiši tiešām vēlas paturēt mind-- tik ir šī funkcija sauc atoi-- kā es gribētu teikt, Trois. Skaidrs, vai tas ir tiešām, kā jūs sakāt. Bet visi tā dara, tas ir ievadījusi. Tā pārvērš virkni uz int. Tātad ir ASCII uz i skaitlim. Tas ir tikai konvertējot ASCII vērtības skaitlim vērtības. Līdz ar to atcerēties argv, masīvs, kas saglabā visiem jūsu komandas līnijas arguments-- tas saglabā tos visus kā stīgas. Un tā, ja jūs vēlaties, lai varētu ir viens no tiem kļūt vesels skaitlis, Jums nāksies izmantot šo vērtību šeit. Modulo, tāpat kā mēs uz agrāk klasē šodien, ļauj jums, lai būtu atlikusī kāds jums ir. Tātad, ja mums ir ļoti, ļoti lielā skaitā Cēzara, Ko darīt, ja mums ir beigas no virknes Vigenere? Kā jūs plānojat, lai varētu lai iegūtu, ka, lai wrap ap? Ja es hit z un es gribu tā, lai dotos atpakaļ uz a, kā man iet, lai saņemtu ka, lai wrap ap? Iespējams, vēlaties izmantot Modulo tur kaut kur. Otrkārt, pārlūkot ap jūsu bibliotēkā. ctype.h. Tas ir jauns bibliotēka mums ir. Jūs atradīsiet daudz tiešām, tiešām noderīgs functions-- isupper, islower, toupper, tolower, isalpha, un tā tālāk. Visas funkcijas, kas būs ļoti noderīga kad jūs mēģināt izdomāt, tas ir raksturs mazo burtu? Kā es varu pārvērst šo string ar lielajiem burtiem? Visas šīs lietas būs ļoti, ļoti noderīgi jūsu PSET. LABI. Darba laiks šovakar ir 8:00 līdz Rīt 11:00 uz Teal klasē kā arī trešdien un ceturtdien naktī. Darba laiks ir koptelpas. Ļoti iesakām jums puiši visi sāktu uzreiz, jo jūs nevēlaties būt, ka kazlēnu, kas ceturtdienas vakarā ir problēmas Iesniedzot savu PSET un tiek piemēram, es nezinu, ko darīt. Es sāku, es beidzu, es iesniedzu. Centieties, lai dotu sev kādu istabu, jo kods problēmas vienmēr notiek. Jūs vēlaties pārliecināties, ka jūs sev daudz laika, lai varētu lai pabeigtu psets. Cool. Es pakārt ap šeit. Mērķauditorija: Vai tas ir online jau? ANDI PENG: Es nezinu, vai tas ir online jau, bet tas būs. Es pakārt apkārt, ja kāds šeit ir kādi jautājumi jau. Paldies, ka atnācāt.