Jason Hirschhorn: Laipni lūdzam CS50 sadaļā, ikviens. Mans vārds ir Jason Hirschhorn. Es esmu daudz no jums TFS, bet daudz cilvēki, cerams, pievienosies mums online, pagarinātāji studentiem vai studentiem mēģinot meklēt, izmantojot sadaļu, ja tās nokavēju to sadaļu, kas nedēļu vai vienkārši panākt, ja viņi vēlējās pārskatīt dažus materiālus. Tā kā par mācību, kas visi no jums ir lasīt, labot? Es redzu daudz galvu pamāj. Sekcijas nodrošināt jūs ar iespējām izpētīt kurss ir materiāla, kas ir vairāk intīmo vidi, kā arī nirt praktiskas aktivitātes. Tātad tas ir būtībā tas, ko mēs esam gatavojas darīt katru nedēļu. Mēs ejam, lai iet caur to, ko mēs esam noteikts, ka svarīgākā Tēmām lekcijā, un tie, iespējams, arī ļoti noderīga un visticamāk, nākt klajā ar problēmu komplekti un viktorīnas, un kas jūsu kodēšanas dzīve ārpus CS50. Tāpēc mēs esam gatavojas iet uz šīm tēmām, apspriest tos, iet pār viņiem, atbildēt uz visiem jautājumiem, jums puiši ir, un tad mēs esam gatavojas darīt daudz prakses problēmas kodēšanu. Jūs visi cēla klēpjdatorus, kas ir fantastiska. Tas ir dators zinātne klase. Tomēr daudz vingrinājumi mēs darām, Jums nav nepieciešams savu klēpjdatoru. Jūs varat darīt to uz papīra lapas. Tas ir, kā jūs gatavojas darīt tos viktorīnas. Un tiešām, tas ir lielisks veids, kā tiešām zināt, ka jūs, kā to izdarīt kaut ko, ja jums nav Check no 50 līdz paļauties uz vai padarīt paļauties uz, stāstot Jūs pieļautas kļūdas. Tātad jūs esat laipni aicināti kodu par ierīces vai run.cs50.net, kas ir vēl viens instruments, kas ļauj jums kodu internetā, bet es arī ieteiktu, ja jums nav mēģinājis to, izmantojot lapu Papīra un mēģina šo praksi, problēmas papīra lapas. Jo atkal, tas galu galā ko jūs esat būs lūdza darīt viktorīnas. Tāpēc sāksim ar mūsu programma šodien. Mēs ejam, lai iet pār dažas normas attiecībā uz mūsu sadaļā, tad mēs ejam, lai nirt uz masīvi, funkcijas, un komandrindas argumenti, kas ir tas, ko jūs guys ir uz pagājušā nedēļā lekciju un tad pirmdien, un to, ko jūs uz vairāk rīt. Un tad beidzot, mēs ejam runāt par pset2. Ja es varētu saņemt, paceļot roku, ja jūs nav paskatījās problēmu kopumu divu specifikācija. Mēs teikt ikvienam. Fantastiska. Mēs runājam par problēmu iemetienos, mazliet, bet, ja jūs lasīt šo problēmu kopumu specifikācija, kas ir viss, kas jums jādara. Ja jūs lasīt, ka pirms jūs nākt klases un sadaļā otrdien, jums būs būt liels pozīcija. Mēs varam iet caur problēmu kopumu, kas ir tas, ko mēs ejam lai to izdarītu beigās. Mēs ejam, lai iet cauri loģika, pārliecinieties, ka visi ir tajā pašā lapā. Es gribu, lai jūs varētu atstāt otrdiena sajūta ir ļoti apmierināti ar to, ko jūs jādara, lai šīs nedēļas problēmu kopumu, un, ja jums nav, es laimīgi uzturēties pēc un strādāt ar jums. Bet tas ir viena lieta, ka jums ir darīt, bet es domāju, ka būtu ļoti gudri, tikai lasīt problēmu kopumu specifikācija ar klasi otrdien, kas tas izklausās Daudzi no jums, puiši darīja. Es sāktu ar darba kārtību katrai klasei lai jūs zināt, kur mēs ejam. Tas ir arī noderīga, lai cilvēki, skatoties tiešsaistē, jo katrs posms ir krāsu kodēta, tādēļ, ja jūs vēlaties nākt atpakaļ un vienkārši skatīties 10 minūtes, nevis nekā visu 90 minūšu sadaļā jūs varat doties uz krāsu kodēta sadaļā un apskatīt šo daļu. Tāpēc es esmu mēģinājis, lai izjauktu tiem augšup jauki moduļi, kas ļaus jums - ja vēlaties atgriezties un pārskatīt, vai citi studenti, kas ir tikai skatoties sadaļu, lai pārskatītu - lai atrastu konkrētu lieta, tie vēlas pievērst uzmanību un uzzināt vairāk par. Salds. Normas. Es esmu FOP līderi par Campus. Es nezinu, ja kāds darīja FOP. Vai kāds do FOP? Viens cilvēks darīja FOP. Divi cilvēki darīja FOP. Satriecošs. Tātad FOP ir pirmais gads Outdoor Orientācija programma. Mēs ņemam freshmen mežā un padarīt visvairāk burvju pieredze savu dzīvi, pareizi? Jā. Skaņas par tiesībām. Tāpēc es tikai gribēju, lai sāktu mūsu pašu pirmo sadaļa apspriežot dažas normas klasei un mūsu attiecības jo es domāju, ka viņi ir ļoti svarīga. Pirmkārt un galvenokārt, jo tiem no jums, kas ir mans sadaļā saņēmis un tika apspriests, ka e-pasts, es mīlu šo. Šī ir mana mīļākā daļa no gada. Es esmu tik satraukti. Es esmu šeit jau stundām šodien. Man nav atstājuši šo ēku, izņemot iet ēst, jo es mīlu CS50 sadaļā, es mīlu mācīšanu, man patīk strādāt ar jums, puiši. Viena no manām prioritātēm, ja ne mana prioritāte numur viens, ne tikai šajā klasē, bet arī citi mani klases un extracurriculars, ir atbalstīt jums puiši, un palīdzēt jums puiši, un manos spēkos, lai pārliecinātos, ka jums puiši ir brīnišķīgi, jautri, produktīvs, iesaistoties, aizraujoši pieredze šajā klasē. Tas, ko es esmu apņēmusies. Tas ir iemesls, kāpēc man patīk to darīt. Tas ir mans numurs viena lieta, atbalstot jums puiši. Ja Jums ir kādi jautājumi par lekciju, problēma, kas, sadaļā, dzīve, pat ja jūs vēlaties runāt par dzīve, lūdzu, nekautrējieties aizsniegt. Jums ir manu mobilā telefona numuru, Jums ir manu e-pastu adresi, jums ir mana GChat. Jūs varat sazināties ar mani par jebkuru vai visus no tiem, kad vien, bet, iespējams, netiks saņemt reakcija, kad. Es cenšos un saņemt atpakaļ 24 stundu laikā. Nereti tas būs robežās 20 minūtes vai 24 minūtes. Es būtu teicis, ka lai padarītu to paralēli. Bet jūs saņemsiet atbildi diezgan ātri. Ja Jums tekstu man stundu pirms problēma, kas ir jāmaksā, es būs klusums jums uz leju un darīt dziļa elpošana vingrinājumi ar jums, bet, ja jums nav sākusies, jūs, iespējams, nav dodas, lai pabeigtu, un Es nevaru īsti palīdzēt jums tur kaut gan es mēģināšu mans labākais. Tāpēc es darīšu visu Es varu atbalstīt jūs. Lūdzu, jūtieties brīvi aizsniegt vai tas ir sadaļā atkal pie Office Hours ja redzat mani, vai pat ārpus tās. Es esmu laimīgs, lai izveidot laika, lai apmierinātu un darbojas ar problēmām ar vai iet pa materiālu. Tātad, kas ir numurs viens, atbalstu. Es darīšu visu, es var atbalstīt jūs. Numurs divi, sanāksme vidū. Tik daudz kā es gribētu būt, es esmu nav visvarens un visvarens, vai visu zinot, tāpēc es nezinu visu laiku, ja to, ko es daru kļūst pāri, ja veids, kā es mācu temats palīdz jums uzzināt to, vai, ja jūs ir sajaukt par tēmu, bet nav paceliet roku, vai man jautā vai sūtīt man e-pastu. Vai pat, ja jūs, atkal, ir sajaukt par kaut ko par problēmu kopumu. Ja jums nav panākt, lai mani, Es nevaru zināt, ka droši. Es esmu gatavojas darīt visu iespējamo, lai pārbaudītu, kas par jūs puiši, pārliecinieties, ka viss ir iet labi, cenšas mācīt lietas, tādā veidā , kas būs labvēlīga, lai lielākā daļa no jūsu mācīšanās stilu, bet, ja tur ir kaut ko es varu darīt, let me know. Gar šo līniju, ja jūs vēlaties kādu palīdzību ar problēmu, kas, es esmu vairāk nekā priecīgi jums palīdzēt ar problēmu kopumu. Mēs esam gatavojas darīt daudz ka uz otro pusi no šīs sadaļas. Bet, ja jums nav lasīt šo problēmu komplekti atpakaļ un nav noskatījos staigāt cauri un nav noskatījos šorti un gaida mani, lai mācītu jums viss, kas ir videomateriāla tiešsaistē vai, ka jūs varat atrast CS50 Pētījumā, tas nav īsti godīgi pret man vai citām jūsu vienaudžiem. Tāpēc, lūdzu, es esmu vairāk nekā laimīgs, lai palīdzētu jums, bet jūs puiši ieguva, lai apmierinātu mani vidū. Mums ir t resursus, lai Jūs pieejama CS50. Es teicu, daži no tiem. Lūdzu izmantot no tiem. Ja jūs sajaukt, es esmu vairāk nekā laimīgs lai palīdzētu jums izskaidrot tās Vēl viens veids, bet tas nav godīgi, ja studentu parādās pie darbalaikā nav sākuši neko, un tas ir Svētdienas nakts un viņi gaida TF staigāt tos, izmantojot katru lieta par problēmu, kas saistīts pusdienlaikā nākamajā dienā. Jēga? Atkal, lūdzu, tikties vidū. Un, visbeidzot, lielas cerības. Es esmu būs šķirošanas visiem, kas ir manā sadaļā, vai vērtēšanas jūsu problēmu komplekti. Jums nav aizgājuši atpakaļ problēmu noteikt nulli vai viens vēl. Atvainojamies par to. Pagāja awhile, lai beidzot nokārtot sekcijas, un tagad mēs varam sākt šķirošanu. Es nopirkšu atpakaļ uz jums cik drīz vien iespējams. Tie ir daži no maniem advisees tur. Es nopirkšu atpakaļ uz jums cik drīz vien iespējams. Un problēmu kopumu diviem, mēs būsim uz grafiku un mēs sāksim liekot viņiem Jums diezgan ātri pēc jūs savukārt tos collas Kad jums jūsu problēma noteikti atpakaļ, jūs saņems punktus, kā jūs zināt, no lasot šo mācību - pareizību, dizains, darbības joma, un stils punkti. Jūs arī saņemsiet komentārus. Šie komentāri ir svarīgākas nekā rādītājus. Es domāju, ka tas ir droši teikt, ka. Rādītāji ir tikai skaitlis no viena līdz pieciem. Ir grūti lasīt par tiem. Tas ir grūti, lai uzlabotu no tiem. Bet komentāri norāda specifisku lietas, kas jums bija labi, vai jomas Jūs varat uzlabot un sniegt jums dažus idejas nākotnei vai alternatīvu veidi, kā darīt lietas. Tāpēc, lūdzu, lūdzu, lūdzu, izlasiet caur komentāriem. Man daudz laika, lai šie komentāri. Lūdzu, izlasiet caur tiem, un ne tikai ritiniet uz leju, lai apakšā PDF, meklēt savu rezultātu, vai arī doties tiešsaistē un atrast savu rezultātu, un tad ignorēt komentāri. Tas nav kā tu esi gatavojas iegūt labāku. Tas nav kā jūs gatavojas, lai palielinātu jūsu rādītāji galu galā, vienkārši , apskatot rādītājus. Lūdzu apskatīt šos komentārus. Un gar līniju no lielajām cerībām, atkal, tāpat kā es teicu, jūs var vērtēt no viens līdz pieci. Twos, pa trim un četrām kājām ir Lielākā daļa no partitūras jūs gatavojas iegūt. Tiem, un Fives ir gan ļoti reti. Tur vienmēr ir lietas, mēs varam darīt labāk. Ikreiz, kad es kodu programmu, tur ir vienmēr kaut ko es varēja izdarīt labāk. Tātad, nevis sakot, jūs saņemsiet piecas viss par visu laiku un darīja viss perfekts, es nedomāju, ka kāds no mums tiešām uzskatu, ka mēs - vai cerams, mēs nedarām visu Pilnveidot visu laiku. Līdz ar to nav bažas, ja jūs nesaņēma pieci. Pieci nav map uz, četri nav map uz ar B, trīs dara nav karte uz kuru C. Tas nav kā rādītāji darbu. Tāpat Deivids ir teicis vairākas reizes, pie semestra beigās visas jūsu punktus un ieeja no manis, jūsu TF, sanākt kopā un noteikt galīgo atzīmi jums. Bet atkal, tas ir ne pieci, , Četri, B, un tā tālāk. Tāpēc es esmu nāksies lielas cerības par jums puiši. Es esmu gatavojas sagaidīt labu problēmu komplekti un es esmu gatavojas sniegt Jums atsauksmes kā tādu. Un tas nav gatavojas nozīmē, ka jūs esat gatavojas saņemt sliktāk pakāpē. Jums ir sašķirotas ziņā Jūsu progress nedēļas nullei, lai kursā beigām. Un, visbeidzot, attiecībā uz augsta gaidas klasē, es mīlu, kad cilvēki piedalās. Es saprotu, daži cilvēki jūtas vairāk vai mazāk apmierināti piedalās. Citi cilvēki piedalās nevis paaugstināt savu roku un runā visu laiku. Bet mēs šajā klasē būs dara daudz mazu problēmu, daudz mini jautājumiem, un pēc tam daži lielāks kodēšanas problēmas. Tātad noteikti strādās šos vingrinājumus out kad mēs tos savā datorā vai papīra lapas. Bet es arī sniegt jums kādu laiku, pirms kāds jebkad ir atbildēt uz dažiem no jautājumiem, es jautāju. Tāpēc es jums kādu laiku, lai domāt par to, jo mēs ejam darīt lietas partneriem reizēm, Es vēlas, lai visi iesaistīti nedaudz. Un trūkuma dēļ labāks termins, tur iespējams, būs auksti zvanot, kas ir vieta, kur ikvienam būs iespēja domāt par atbildi, un pēc tam Es aicinu jūs, un pēc tam jums teikt atbildi. Neuztraucieties, vai arī bail par to. Es esmu darījusi to agrāk, un mēs esam noskaidrojuši ka tas ir daudz vairāk veiksmīgs, izlasīt arī izglītības pētījumus par to, lai noteiktu, vai tā bija laba taktika. Tas ir ļoti noderīgi, jo īpaši, ja jums sniegt skolēniem laiku, lai padomātu par atbildes un nepadara tos tikai nāk , un teikt to tiesības pie nūja. Bet, ja jums nav justies ērti atbildot, es esmu arī diezgan labi uzrādi, ka ārā, un mēs nebrauksim uzvest jūs uz vietas, jo īpaši attiecībā uz kamera, lai gan neviens no Jums ir par kameru tieši tagad. Tātad tie ir normas man ir. Vēl viena lieta, pa līnijām izpildīt vidū. Es esmu gatavojas sniegt jums guys daudz atsauksmes. Lūdzu, iedodiet man atsauksmes, kā arī. Tur ir mājas lapā, sayat.me/cs50. Tātad, tas ir godīgs atsauksmes. Ja jūs vēlaties, lai dotu to laikā sadaļā, Man e-pastu, kad tas notiek. Mēs ņemšu pārtraukumu mazliet, tāpēc es ņemšu meklēt, izmantojot atgriezenisko saiti, tad. Ja jums kādreiz ir kādas atsauksmes, lūdzu, sniedziet man to tur. Ja jūs varat sniegt man atsauksmes par Q, kas ir brīnišķīgi, bet tas ir ceļvedis ka jūs beigās. Bet tas būs semestra beigās, lai Man nebūs iespēja veikt kādu, kas atgriezeniskā saite, un pārvērst to mācību jūs puiši labāk. Tātad, lūdzu, ja jums ir kāda atgriezeniskā saite, dod to man. Es mīlu atsauksmes. Atpakaļ uz FOP, mēs saņemt atsauksmes visu laiku. Jūs varat dot man plusu, labas lietas, deltas, lietas, es varētu uzlabot pēc. Jūs varat komentēt manu tērpiem. Tas nebūs tik noderīgi, bet jūs laipni aicināti komentēt jebkuru un viss. Lūdzu, lūdzu, iedodiet man atsauksmes. Es novērtēju to daudz, un tas nozīmē daudz man. Vēl viena norma, jautri. Mēs ejam, lai būtu daudz jautrības. Cerams, ka šajā laikā, jūs ir daudz jautrības. Mums būs konfektes pie sadaļā. Mums būs mūzika. Mums būs cerams, lai iepazītu viens vēl nedaudz labi, tāpēc es gribu tas ir jautri, iesaistoties pieredzi. Es zinu, daži no jums ir aizmiguši lekcijas jums bija agrāk šodien, tāpēc, cerams, ka nebūs būt gadījums tagad. Un, ja tas ir tagad, var tikai nav krāc, jo tas varētu nozvejotas ar kameru. Salds. Kādi jautājumi, komentāri vai bažas pirms es pāriet uz jebko, mēs esam runājām? Lieliski. Tāpēc mēs esam gatavojas iet uz blokiem pirmās. Tas ir, kā jūs veicat masīvs. Mēs esam redzējuši to pirms tam. Jums ir datu veidu, ir nosaukums, un tad jums ir izmērs. Tieši šeit, es varu izveidot divus masīvus. Pirmais ir masīvs rakstzīmes, un tas ir 26 telpas. Otrais ir masīvs punkti, un tas ir trīs telpas uz trim veseliem skaitļiem. Jā? STUDENTU: Vai visi šie slaidi pieejams kaut kur mums? Jason Hirschhorn: Great jautājums. Jautājums bija, ir visas tie slaidi ir pieejami? Jā. Visi no šiem slaidiem būs pieejams, un nākotnē, es e-pastu viņiem Jūs pirms sadaļā. Bet šodien, jo tas ir pirmais nedēļā, mums bija vēlu sākums. Tātad parasti, jūs saņemsiet šos slaidus, bet tie būs pieejami tiešsaistē, un Es e-pastu viņiem ar jums uzreiz pēc klasi. Jebkādi citi jautājumi? Tātad vēlreiz, masīvi ir kastes, trūkuma dēļ labāku vārdu, kas tur vairākas elementi vienas datu tipu, un viņi blakus viens otram atmiņā. Un tā atkal, tas ir, kā jūs varat veikt divu veidu blokiem. Tātad, pēc tam, kad esat veicis savu masīvs ar ka pirmā līnija - int rādītāji, kronšteinu trīs, netālu bracket - Jūs vēlas, lai sāktu to. Jūs vēlaties, lai dažas vērtības tur. Un tas, kā jūs izvirzīti daži vērtības tur, vienkārši izvēloties Indice un rakstot numuru. Let 's izdarīt to uz kuģa. Vai visi redz? Ikviens var redzēt. Salds. Tāpēc, ka būs mans masīvs sauc rādītājus. Kā jūs varat redzēt, tas ir lielums trīs. Ir trīs kastes, kas tur. Katrs var fit to, veida datu tipu? STUDENTU: Integer. Jason Hirschhorn: skaitlis šajā vienu. Mēs rakstījām int punktus, un pirmais vārds ir datu tips, kas dodas uz iet uz šajā masīvā kastēs. Lai es varētu fit trīs. Kāpēc man ir nulle augšu tur uz kuģa? Kāpēc tā teikt rezultāts nulle ir vienāds ar 1? Atgādināt man par savu vārdu. STUDENTU: Kurt. Jason Hirschhorn: Kurt. STUDENTU: Jā. Jason Hirschhorn: Kāpēc? STUDENTU: Jo pirmais indekss nulle, mēs sākt skaitīšanu no nulles. Jason Hirschhorn: Tātad mēs sākam skaitot no nulles. Tas ir tieši labi. Tas ir mulsinoši daļa un griba ceļojums jūs uz augšu, it īpaši, ja jūs esat mēģinot atkārtot, izmantojot bloki, ko mēs darām mazliet. Mēs sākt skaitīšanu no nulles. Tātad, ja es vēlos atsaukties uz pirmo kaste, tas nav kaste vienu. Diemžēl, tas ir kaste nulle. Otrais ir kaste viens, un šajā gadījumā, trešais ir atzīmēts otrais. Kas par trīs kastē? Kur ir kaste trīs? Vai, ja es gribu darīt partitūru, kronšteinu trīs, netālu kronšteinu, kas ir kas? Tātad jūs teicāt null raksturs. Jebkuras citas domas? Kāds ir rezultāts kronšteins trīs konsole? STUDENTU: Tas nav īsti nepastāv, jo Jums tikai definē kā punktus, kronšteins trīs. Jason Hirschhorn: Tātad jūs sakāt tas nav īsti nepastāv. Dažos gadījumos, kad mums ir darīšana ar stīgas, parasti mēs likts null raksturs beigās. Mēs nokļūt, ka otrais. Bet šajā gadījumā, tur Nav trešajā lodziņā šeit. Tātad pēdējo lodziņu jebkurā masīvā ir lielums mīnus 1. Tātad, ja mums ir masīva izmēru n, Pirmajā ailē ir nulles līmenī, pēdējais ir pie n mīnus 1. Un šajā gadījumā tā nav. Tur ir kaut kas šeit atmiņu, bet tas nav mūsējais. Mums tā nepieder. Mēs neprasīja to. Tātad, ja mēs cenšamies piekļūt, ko mēs darīt mazliet, mēs, iespējams, gatavojas iekļūt nepatikšanās. Šajā gadījumā, es esmu inicializēšana Mani masīvs ar trim mainīgajiem. Mēs esam liekot vienu uz nulles kastē, divas in kaste viens, un otrajā lodziņā trīs. Vai kāds ir kādi jautājumi par inicializēšana masīvs? Tātad, mēs devāmies pār to tikai tagad. Scores, kronšteins trīs, tuvu kronšteins, kas neeksistē. Mēs esam nulles indeksēti datorzinātnēs, tāpēc mēs sākt skaitīšanu no nulles. Pēdējo lodziņu pieejami pie mums, tas ir trešais kaste, bet tas sauc kaste numurs divi. Lejā, tas ir alternatīva veids inicializēšana masīvus. Tā vietā, lai izveidotu masīva vienā līnija, aizpildot pirmo lodziņu, tad otrais kaste, tad trešais kaste, Jūs varat darīt to visu vienā rindā. Tātad šīs līnijas, abi masīvi. Tas rada tādu pašu precīzu masīvs, kā ko mēs izveidojām tieši šeit, taču tas tikai tas vienā rindā. Tagad mēs esam izveidojuši mūsu klāstu. Parasti, kad jūs izveidot masīvu, jūs vēlas kaut ko darīt ar to, vai , kas ir jāaizpilda, vai iegūtu lietas no tā un izdrukāt tos uz ekrāna. Šajā gadījumā, mēs ejam cauri mūsu rādītāji masīvs, kuru mēs inicializēts uz Pirmā rindā šeit pelēkā krāsā. Un pēc tam otrajā līnijā, mēs sākt atkārtojot caur masīvu. Vai kāds ir kādi jautājumi par struktūra par cilpu? Tātad tas ir uz cilpas. Mums ir mūsu sākotnējo stāvokli, un pēc tam mūsu gala nosacījums, un pēc tam mēs atkārtot, es katru cilpa. Un cirtaini lencēm, kas tas par cilpa, kas notiek, ja es būtu, lai palaistu šī programma? Vai kāds man pateikt, ko mēs varētu saņemt? [? Matu? ?] MATU: Izdrukājiet visus punktus katrā rindā. Tas drukāt katru rezultātu atsevišķā rindā. Jason Hirschhorn: Kas tieši tas tā drukāt? STUDENTU: Tas varētu drukāt vienu, tad divi, tad trīs. Jason Hirschhorn: Tieši tā. Tas varētu drukāt vienu, tad divas, tad trīs, katrs uz atsevišķas līnijas, jo mēs ejam cauri masīva un jūs redzēt, ka otrais, printf paziņojums, punkti i. Tātad pirmajā kārtā ar OUR cilpa, i ir vienāds ar nulli, kas nozīmē, ka mēs esam iegūt vērtību nulles rezultātu - , kas, ja mēs iet atpakaļ uz Mūsu diagramma, ir viens - un aizpildot - ak, tā saka c. Tas būtu% d. Es būs noteikt, ka mazliet, kad Es roku, ka no jums puiši. Bet mēs esam sniedzot skaitli, lai tā jābūt% d tepat, nevis% c. Kas ir% c atrast? STUDENTU: Character. Jason Hirschhorn: Raksturs, tieši tā. , Kas ir cits viens? Ja jūs nevēlaties to darīt% d skaitlis, ko vēl jūs varat darīt? STUDENTU: i. Jason Hirschhorn:% i, tieši tā. Tātad, kādi jautājumi par atkārtojot ar masīvu? Tātad, kas notiek, ja mēs to darām? Tā vietā, lai dara, man ir mazāks nekā trīs, mēs i ir mazāk par vai vienāds ar trīs. Kas notiek, kad mēs palaist šo kodu? Jā, Annie? STUDENTU: Viņi gatavojas, lai izdrukātu dīvaini stuff ceturtajā rindā. Jason Hirschhorn: Tātad jūs teicāt, tas ir gatavojas izdrukāt dīvaini stuff Ceturtā rinda? Vai kāds ir atbilde uz viņas jautājumu? Tātad izredzes ir, ka tad, kad mēs nokļūt - tā par ceturto kārtu, izmantojot mūsu uz cilpa, tāpat kā jūs domāja, Annie, tas būs partitūras kronšteins trīs, kas mēs jau esam izpētījuši, nav pastāv, un mēs esam gatavojas izmēģināt un piekļūt ka to izdrukāt out, izmantot to kaut kādā veidā. Tātad, dators, iespējams, get mad pie mums. Tu esi tieši labi. Tas varētu iziet no programmas vispār. Tas varētu izdrukāt kaut ko tiešām dīvaini. Jūs nevarat pateikt droši. Izredzes ir tas būs iespējams iegūt mad pie jūs un vienkārši atmest uzreiz. Bet tas ir izplatīta kļūda, jums ir kur tu esi tikai pie viena pie beigām, un tas ir kļūda, kas būs mēris jums visā jūsu kodēšanu. Viens veids, kā es vēlētos darīt, ir tikai uz tāfele, iet caur katru atkārtojuma no cilpas uz rokas vai uz papīra, lai redzētu kas notiek, un tad jūs vispār saproti, ak, pagaidiet, man nevajadzētu ir devies uz mazāk nekā vai vienāds ar trīs. Es būtu jāpārtrauc pie diviem, kas ir kas notiek, ja jūsu stāvoklis ir mazāk nekā trīs. Visus jautājumus līdz šim? Salds. Tātad jums visiem ir jūsu datoru atvērtas. Mēs ejam, lai dotu jums 02:58 minūtes uzrakstīt programmu, kas rada masīvu ar veseliem skaitļiem vienu pa pieci un pēc tam izdrukā katru vesels skaitlis jaunā rindā. Un, ja jums ir kādi jautājumi, paceliet roku. Es esmu laimīgs nākt ar. Tāpat kā es teicu, pieņemsim trīs minūtes rakstīt šo. Vai visi OK, ja es eju uz jaunā logā un aizvērtu šo? Es atvainojos, ja jums nav bijusi iespēja līdz beigām, bet mēs gatavojamies darīt kopā tieši tagad. Tik uz augšu uz ekrāna, man ir # ietvert cs50.h, # Ietvert stdio.h. Vai kāds man pateikt, ko šīs divas līnijas darīt? Michael? STUDENTU: Tie ietver bibliotēkas ka CS50 veikti un ka Steve ir saglabāti, lai jūs varētu izmantot, lai padarīt jūsu dzīvi vieglāku. Jason Hirschhorn: Tātad jūs teica, ka viņi ietver bibliotēkas, viens, ka CS50 veikti, cs50.h, un viens, kas ir tikai standarta, nāk ar C paketi, stdio.h. Ko jūs domājat iekļaut bibliotēkas, lai gan? Vai jūs varat būt mazliet vairāk konkrēts jautājums? STUDENTU: Tas ir tā, ka jūs varat izmantot dažas koda vārdus, lai būtu darbotos notikt bez iet un veikt funkcijas c pats. Jason Hirschhorn: Vai jūs varat iedodiet man kādu piemēru? STUDENTU: Tāpat printf ir viens jūs varat izmantot. Jason Hirschhorn: Printf. Tātad jūs teicāt printf ir viens no tiem funkcijas, kur nevis ņemot rakstīt printf par savu, printf ir iekļauti faktiski stdio.h, lai jūs varat izmantot to un pieņemt ka tas darbosies. Jo stdio.h, ja jūs atvēra šo failu, vai tas ir kā printf darbi, visi kodu printf? Kāpēc jūs kratot savu galvu? STUDENTU: Tā header failu, tāpat ietver funkciju deklarāciju. Jason Hirschhorn: Tieši labi. Header failu, tāpat ietver funkcija deklarācija. Vārdu sakot, ja jūs sastādīt to, hit Padarīt Count, ko mēs darīt otrkārt, kompilators zina, ka tad, ja Jūs izmantojat printf, printf pastāv. Tas būs noteikti kaut kur. Tā nav problēma, lai jūs to izmantot. Un tad vēlāk, tas būs iekļaut tiem un nullītes, kas faktiski satur printf īstenošanu un apvienot tos ar savu kodu. Kā jūs pārliecinātos, ka tas ietver tiem un nullītes uz, teiksim, get stīgu? STUDENTU: Get string ir cs50.h. Jason Hirschhorn: pa labi. Tā, ka saka saņem virkni pastāv, funkcija deklarācija. Bet tad tiem un nullītes, bināro fails, kas faktiski ietver īstenošana get virknes? Kā jūs pārliecināties, ka iet ar savu programmu? STUDENTU: Pass linker ar komandrindas argumentu. Jason Hirschhorn: Pass linker ar komandrindas argumentu. Kā jūs to darīt? STUDENTU: Tas ir-l līnija šķindēt Jason Hirschhorn: Tieši labi. Jūs sakāt-l CS50, vai ne? Tas ietver vieninieku un nuļļu. STUDENTU: Bet Marka nav kas jums, vai ne? Jason Hirschhorn: Tieši tā. Padarīt tas, ka jums, bet galu galā, Jums nebūs Marka, vai jums ir, lai Make par savu, tāpēc tas ir laba lieta atcerēties. Ja jūs gatavojas izmantot vienu no šiem citām bibliotēkām, ne tikai jums ir rakstīt # ietvert un tad bibliotēka. Jūs arī ir nepieciešama, lai savienotu to collas Un šīs divas lietas ir atšķirīgas. -L CS50 ir atšķirīgs nekā # ietvert cs50.h. Tad mums ir int galvenais neesošu cirtaini bikšturi, un tagad mēs esam gatavojas kodu iekšā galvenais. Pirmā līnija man šeit ir komentārs kas saka, izveidot masīvu ar vienu ints līdz piektajai. Kas ir labs vārds, lai aprakstītu to, ko es ir tiesības tagad uz ekrāna, vienkārši piezīmes iekšā galvenais? Ko mēs saucam par? STUDENTU: pseudocode. Jason Hirschhorn: pseudocode. Paldies, Jeffrey. Tas ir tieši labi. Pseudocode. Vai jūs guys redzējis pseudocode pirms? Paaugstināt savu roku, ja jūs esat izmantojis pseudocode pirms problēmas iestatīt vienu. Apmēram puse no jums. Es ļoti iesakām izmantot pseudocode lai nojauktu problēmas par mazākas, vairāk viegli nokost gabalu. Tāpat, ja jūs darīt to pseudocode, jums ir savus komentārus jau lielā mērā uzcelta, tāpēc jums nav doties atpakaļ un mēģināt izdomāt ko jūs darījāt. Tātad, var kāds sniegt man šo pirmo rindiņu izveidot masīvu ar vienu ints līdz piektajai? Tu? STUDENTU: Int, un tad jūs varat zvanīt neatkarīgi numurs, un pēc tam kvadrātveida kronšteins pieci. Jason Hirschhorn: Tātad int numuri, kvadrātiekavas pieci. STUDENTU: Vienāds, un tad cirtaini bikšturi. Jason Hirschhorn: Vienāds, cirtaini bikšturi. STUDENTU: Viens, divi, trīs, četri. Jason Hirschhorn: Viens, divi, trīs, četru, piecu. STUDENTU: Un tad cirtaini bikšturi un pēc tam semikolu. Jason Hirschhorn: Un cirtaini bikšturi un semikolu. Excellent. Izdrukāt katru int jaunā rindā. Vai kāds cits varētu sniegt man, ka kods, lūdzu? [? Matu? ?] Iet uz priekšu. STUDENTU: Par ( Jason Hirschhorn: For ( Students: Int i = 0 Jason Hirschhorn: int i = 0 STUDENTU: Semikols mazāk kā pieci i. Jason Hirschhorn: semikols i mazāk nekā 5. STUDENTU: Semikols, i + +. Jason Hirschhorn: Semikols, i + +. STUDENTU: Slēgtas iekavas, tad atveriet lencēm. Jason Hirschhorn: Slēgtas iekavas un divām lencēm. Inside breketes? STUDENTU: Un tad printf "% d / n" Jason Hirschhorn: Atvainojiet, turēt. Printf "% d / n, slēgta quote. STUDENTU: Un tad slēgts citēju komats, skaits, kronšteins i. Jason Hirschhorn: Komats, skaits, kronšteinu i. STUDENTU: Atvainojiet, skaitļi kronšteins i. Jason Hirschhorn: Numbers, kronšteinu i. STUDENTU: Atvainojiet. Un tad slēgta iekavas, semikols. Jason Hirschhorn: Slēgts iekavas, semikolu. Es esmu gatavojas, lai saglabātu to. Mēs ejam, lai padarītu skaits. Un kā es varu palaist skaits? STUDENTU: Slīpsvītru. STUDENTU: Dot slīpsvītra - Jason Hirschhorn:. / Skaits, tieši tā. Paldies. . / Skaits. Viens, divi, trīs, četru, piecām jaunām līnijām. Izskatās, ka tas strādāja. Jā, Noah? STUDENTU: Jūs arī varētu darīt mazāks vai vienāds ar četri, piemēram, i ir mazāks nekā vai vienāds ar četri? Vai ir kāda priekšrocība darot mazāk nekā pieci, vai vienkārši savādākas to rakstīt? Jason Hirschhorn: Tātad jautājums ir jums varētu izdarīt i ir mazāks nekā vai vienāds ar četri, nevis i ir mazāks nekā pieci. Vai, kas ir strādājuši pašu? STUDENTU: Tas būtu. Jason Hirschhorn: Jā. Tas pilnībā būtu strādāt pats. Stilistiski, tas parasti ir mazāk nekā, un jūs redzēsiet sekundi mēs stīgas, jūs varat izmantot kaut ko sauc strlen, kas jūs esat redzējis pirms, lai saņemtu garumu virknes. Un jūs nevarat darīt mazāk kā vai vienāds strlen. Jūs varētu darīt mazāks vai vienāds strlen mīnus viens. Tātad, tas ir tikai jaukāk darīt mazāk nekā strlen. Jā? STUDENTU: Un faktiski viktorīnas, do mums ir sniegt komentārus par mūsu kods, kā labi? Jason Hirschhorn: Jautājums Tika arī viktorīnas, vai jūs ir sniegt komentārus? Tātad mēs runājam vairāk par viktorīnas, kad viņi nāk uz augšu, bet parasti, labs noteikums īkšķis ir, ja jūs esat rakstot kodu, sniegt komentārus. Ja jums kodu nepareizi, bet komentēt labi, jūs varētu saņemt kādu kredīts gan no manis, ja man bija šķirošanu jūs par problēmu kopumu vai uz viktorīnas. Tātad komentāri ir vienmēr labi, lai nodrošinātu. Salds. Count. Lielisku darbu. Let 's pāriet. Stīgas. Stīgas. Mēs esam redzējuši šo pirms lekciju. Tas pūta manā prātā, kad es vispirms atrada šo out. Tas, iespējams, nav trieciens kāds s prātā šeit, bet tas ir OK. Stīgas ir bloki no burtiem, un tie beidzas ar, kā jūs teicāt iepriekš, null terminatora, kas tas ir / 0 raksturs. Ja mēs spēsim izdarīt virkni par tāfele, mēs izdarīt to vairāk šeit. Tātad, cik ilgi tas ir virkne? Žēl. Cik ilgi tas ir virkne? STUDENTU: [nedzirdama]. Jason Hirschhorn: Four? Kāpēc tas ir četri? STUDENTU: Tā piektā vieta ir par null raksturs. Jason Hirschhorn: Tātad piektā vieta ir par null raksturs. Tātad, ja es būtu palaist strlen par tas, tas dotu man četri. Labot. Un masīvs, lai gan, ja man bija sāktu šo masīvu, cik daudz vietas man ir jālūdz? STUDENTU: Five. Jason Hirschhorn: Five. Es būtu lūgt piecām, bet es varu tikai nodot četras rakstzīmes šeit tāpēc, ka man ir nepieciešams, lai šo null terminators uz beigām. Tāpēc mēs esam gatavojas rakstīt "ohai" un ielieciet null terminators, kas beigās. Mēs teikt, tas ir virkne s ir vienāds ar to. Kas ir s kronšteins nulle? s kronšteins nulle, Annie? STUDENT: O. Jason Hirschhorn: O, tieši tā. s kronšteins ir viens? s kronšteins pieci? s kronšteins pieci? STUDENTU: Nepastāv. Jason Hirschhorn: Nepastāv. Tieši labi. Atdzist. Kādi jautājumi par sapratni stīgas kā masīvu rakstzīmju? Labi, tad. Vēl viena programma jums puiši. Uzrakstiet programmu, kas prasa lietotājam par virkni, tad izdrukā katru raksturs jaunā rindā. Tātad, pieņemsim trīs minūtes, lai rakstītu šī programma, un tad mēs kodu to kā grupa. Žēl. Vai jums ir nepieciešams redzēt šo? STUDENT: Nē. Jason Hirschhorn: OK. Paņemsim vēl vienu minūti, lai kodētu to, vai vismaz sāktu par to. Tātad jūs varat turpināt strādāt, bet es esmu gatavojas sākt iet caur to. Tātad, piemēram, pirms, man ir uz ekrāna # Ietvert cs50.h, # include stdio.h. int main spēkā neesošu. Inside galvenie ir cirtaini bikšturi, man ir divas piezīmes, pseudocode. Viens no tiem ir lūgt virknes no lietotāja. Otrais ir izdrukāt katru raksturs jaunā rindā. Tātad Anna, jūs varat sniegt man uzdot par virknes no lietotāja? STUDENTU: Printf. Jason Hirschhorn: Printf? STUDENTU: Jā. ( Jason Hirschhorn: ( STUDENTU: "man virkni. Jason Hirschhorn: "dot me iela - hmm - string. STUDENTU: / n ") semikolu. Jason Hirschhorn: Beidziet virkni, slēgtās iekavas, semikolu. STUDENTU: Jā. Un tad nākamais rindā, stīgu s = get virkni. Jason Hirschhorn: String s = get virkni. STUDENTU: Jā. Un tad () Jason Hirschhorn: () STUDENTU: Semikols. Jason Hirschhorn: Semikols. Fantastiska. Tāpēc es esmu gatavojas saņemt virkni un Es esmu gatavojas, lai saglabātu to, ko? Kas ir mainīgā sauc ka jūs izveidojāt? STUDENTU: String s. Jason Hirschhorn: mainīgs ir sauc s. Tas ir veids stīgu. Tieši tā. Nākamā lieta, ko mēs vēlamies, ir izdrukāt katrs simbols jaunā rindā. Kas var dot man šo kodu? [Dzirdams]? Jūs varat dot to man? STUDENTU: Protams. Jason Hirschhorn: Darīsim to. Un žēl. Man nepatīk atkārtot to, ko jūs sakāt tāpēc, ka jūs saņemat to labi, bet es ir atkārtot to tā, ka tad, kad tie pārveidot šo, viņi var saņemt visu teksts pārbaudes uz transkripciju. Tātad jūs varat vienkārši turpini runāt. Diemžēl, man ir to pateikt pār jums. Man žēl, bet - STUDENTU: Tas ir jauki. Par int i = 0 Jason Hirschhorn: Par int i = 0 Students: es mazāk nekā - Jason Hirschhorn: Semikols. STUDENTU: Pirms tam mēs varam likt mainīgais, lai jūs iegūtu int nosaukuma garums? Jason Hirschhorn: Ak, jums nav vēlas likt semikolu? Labi. Tātad, ko jūs vēlaties darīt pēc nulli? STUDENTU: Es vēlos saņemt virkne s garumu un noteikts, ka, lai mainīgo? Jason Hirschhorn: Labi, tad kā es varu darīt? STUDENTU: Tātad jūs int garums = Jason Hirschhorn: Int garums = Students: S-T-R-L-E-N. Jason Hirschhorn: S-T-R-L-E-N - STUDENTU: s. Iekavās. Jason Hirschhorn: (s). STUDENTU: Un tad es domāju, ka jums ir ielieciet semikolu starp abām ints. Jason Hirschhorn: semikolu Pēc nulli? STUDENTU: Jā. Tad ielieciet semikolu pēc tam, un jūs sakāt, es mazāk nekā garumu. i mazāk nekā garumu, kas ir mainīgs. STUDENTU: Un tad semikolu. Jason Hirschhorn: Semikols. STUDENTU: i + +. Jason Hirschhorn: i + +. Tur ir mūsu, lai cilpa. Labi, iekšpusē uz cilpas. STUDENTU: Un pēc tam darīt printf. Jason Hirschhorn: Printf. STUDENTU: iekavās. Jason Hirschhorn: iekavas, pēdiņas. STUDENTU: iekavas, citātus,% c / n. Jason Hirschhorn:% c, OK. STUDENTU: / n. Jason Hirschhorn: / n. STUDENTU: Slēgtas pēdiņas. Jason Hirschhorn: Slēgtas pēdiņas. STUDENTU: Komats. Jason Hirschhorn: Komats. STUDENT: S. Jason Hirschhorn: S. STUDENTU: Bracket i. Jason Hirschhorn: Bracket i. STUDENTU: Un tad slēgtas iekavas. Jason Hirschhorn: Slēgtas iekavas. STUDENTU: Un tad semikolu. Jason Hirschhorn: Semikols. Fantastiska. Tā ļauj saglabāt to. Padarīt izskaidrot. Oh boy. Man ir pāris kļūdas. Pirmā kļūda 11 līnijas, tā saka, Paredzams izteiksmi, un tas dod man kļūda, ka otrais int, tur ir kļūda. Ir dažas kļūdas apmēram tur. Vai kāds zina, kāda kļūda, ka ir? Kurt? STUDENTU: Es domāju, ka tas ir paredzēts jābūt komatu, nevis semikolu. Jason Hirschhorn: Labi, komats vietā semikolu. Tā ir, ka viss, kas mums ir nepieciešams noteikt? STUDENT: Nē. Jason Hirschhorn: Kas vēl Vai mums ir nepieciešams noteikt? STUDENTU: Mums ir arī string.h. Jason Hirschhorn: Iekļaut string.h. Kur man ir nepieciešams, lai iekļautu, ka? STUDENTU: Same vieta, kur jūs esat, ieskaitot citas lietas, labi Pēc šādas stdio.h. Jason Hirschhorn: Let 's redzēt, ja tas darbojas pirmkārt tāpēc, ka parasti, man patīk noteikt vienu lietu, pirmkārt, un pēc tam palaist tā, un tad redzēt kļūdas, mēs saņemam. Tātad, mēs ejam, lai notīrītu terminālu ar vadības n, pieņemsim do veikt burvestību. Tātad vēl viena kļūda 11 līnijas. Paredzams semikolu. Un es esmu joprojām kļūst kļūdas šajā līnijā. Tātad tas nav devis man kļūda sakot, ka tas nesaprot, ko strlen ir, bet tas dod man kļūdas par šo līnija, lai to, kas cits ir nepareizi? Atzīmēt? Marcus. STUDENTU: Vai jums ir, lai novērstu Otrais int deklarāciju? Jason Hirschhorn: Noņemt otrais int. Mēģināsim to. Tagad skaidrs termināli. Padarīt izskaidrot. Kļūda. Netieši atzīstot bibliotēka funkciju strlen. Tātad tagad mēs redzam, ka kļūda. Kas mums ir nepieciešams iekļaut? STUDENTU: String.h. Jason Hirschhorn: Iekļaut string.h, mēs darīsim # ietvert string.h pie top no ekrāna. Glābsim, veikt pareizrakstības. Tagad apkopoti. Tātad vēlreiz, lietas, kas mums nepieciešams, lai atcerieties līniju 12 mūsu cilpa kad mēs esam tā izveides, int i = 0, garums = strlen (-iem). Tas ir fantastisks stratēģija. Šī stils ir liels, dizains tas ir lieliski. Mēs varam doties uz šo iemeslu dēļ vēlāk, bet šādā veidā jums tikai nepieciešams, lai izsauktu strlen vienreiz, nevis katru reizi palaižot caur cilpu. Tomēr jums ir nepieciešams, lai izmantotu komatu tur un jums nav nepieciešams int vēlreiz. Ja jūs atzīts gan tiem, mainīgie kopā, jūs nav nepieciešams int vēlreiz. Un tad, ja jūs gatavojas izmantot strlen, , kas ir cits bibliotēka funkcija nav iekļauti stdio.h vai cs50.h, padarīt pārliecināts, ka jūs iekļaut string.h. Kurt? STUDENTU: Tātad, ja jums nav nepieciešams pateikt, kāda veida garums ir tas, ka nozīmē, tas ir, ir int? Jūs nevarētu būt divas dažādas veidi tur? Jason Hirschhorn: Tātad jūs varētu ir divi veidi. Garums ir int šeit, lai gan. Garums ir int, jo tas ir komats un pēc tam tas pats. STUDENTU: Tātad, tas pieņem, ka tas notiek līdz būt tāds pats kā pirmais? Jason Hirschhorn: Tieši tā. Mēs neesam gatavojas darīt tagad, bet jūs var iekļaut divus mainīgos par tajā pašā rindā, izmantojot vienu datu tipu. Tā int x, y radītu divi mainīgie. Tā int x, y, ja mēs, ka, tas dod me neizmantoto mainīgo x un y, jo mēs neizmantojam tos. Tātad, liekot par spēkā neesošu, pirms ir tikai fancy triks, ja jūs neizmantojat kaut ko, lai izmantotu to. Bet, kā jūs redzat, es varu izveidot x un y uz vienas līnijas ar komatu. Tas radot divu naturālu skaitļu labi tur. Tātad, jā, pilnīgi iespējams, lai radītu divas lietas vienā un tajā pašā rindā atdalīti ar komatu. Let 's atbrīvoties no tiem, lai gan. Tātad tur ir pareizrakstības. Paldies puiši par kodēšanas to mums. Lai tas vēl vienu reizi, palaist to. Dodiet man virkni. [Dzirdams], jūs, lielākā daļa no tā. Kas ir virkne? STUDENTU: Sveiki. Jason Hirschhorn: Sveiki. H-E-L-L-O, kur katrs simbols uz vienas līnijas. Izskatās lieliski. Pieņemsim palaist vēlreiz. Vienmēr gatavojas pārbaudīt stūru gadījumos. Kas ir labs stūra lieta, lai pārbaudītu? STUDENTU: skaitlis? Jason Hirschhorn: numuru. Tāpēc es nolikšu in 1, un tā izdrukā 1. Tas neprasa vēstulēm, tāpēc šķiet, tāpat numuri darbu. Laba stūra gadījumā pārbaudīt. Kas ir vēl viens labs stūris gadījumā, lai pārbaudītu? STUDENTU: tukša virkne. Jason Hirschhorn: Hm? STUDENTU: Tāpat kā tukšu virkni. Jason Hirschhorn: tukša virkne. Tātad, pieņemsim nav likts kaut ko. Un kas izpaužas izdrukāt? STUDENTU: Nekas. Jason Hirschhorn: Nekas. Šķiet, tāpat kā tas darbojas. Jūs varētu mēģināt vairāk stūra lietas, bet parasti numurus, dažādas datu liels, lai mēģinātu, kā arī nav nekas. Nekas, nulle, negatīvi vienmēr lielas lietas, lai mēģinātu un viss jums ir tests, lietas, protams, mēs testa un pārbaudīt 50 būs tests. Kādi jautājumi par spell.c? Labi, pieņemsim galvu atpakaļ. Man ir vēl viens programma lai jūs guys, lai rakstītu. To sauc students.c. Šī ir programma, kas prasa lietotājam, lai pieci uzvārdi, tad nejauši izvēlas un izdrukā vienu no nosaukumiem. Šī programma ir nedaudz vairāk iesaistīti, nekā pēdējo divu mēs rakstījām, Tātad, kāpēc nav mēs piecas minūtes, lai kodu, tas individuāli, un tad mēs kodu to kā grupa. Šī programma ietver arī dažas lietas Jūs nedrīkstat būt redzējis, tāpēc, ja Jums ir jautājums par to, kā darīt Man, ka, paceliet roku. Es atnākšu atkal un norādīt Jums pareizajā virzienā. Bet mēs arī darām tāpēc, ka šī būs labs veids, kā ieviest dažus tēmas, kas ir sarežģīta. Tātad tas darbojas, vai ne? STUDENTU: Jā. Jason Hirschhorn: Ikreiz, kad jūs savukārt Problēma, kas, tur ir daudzi veidi, kā darīt tā, bet daži ir vairāk elegants nekā citi. Ļaujiet mums nirt iekšā # Ietvert cs50.h. # Ietvert stdio.h. int galvenais spēkā neesošu, cirtaini lencēm. Inside cirtaini bikšturi, Man ir divi komentāri. Pirmais ir, jautājiet lietotājs piecus vārdus. Otrs ir, nejauši izvēlēties un izdrukāt vienu no nosaukumiem. Tātad, pieņemsim darīt pirmo vienu, jautājiet lietotājs piecus vārdus. Kas ir lūgusi lietotāju piecus vārdus un var man pastāstīt, kā to izdarīt? Tikai divi cilvēki darīja pirmo daļu. Trīs cilvēki darīja pirmo daļu. Četri, pieci. Toms, kā jūs to darīt? STUDENTU: Jūs atzīt virkni un pēc tam nosaukums, kronšteins pieci. Jason Hirschhorn: String nosaukt kronšteinu pieci. Tātad, kas ir šī līnija dara, virknes nosaukums kronšteins pieci? STUDENTU: Jūs paziņot masīvs stīgas. Jason Hirschhorn: Šis ir masīvs stīgas. Cik stīgas dodas lai ietilptu šeit? STUDENTU: Five. Jason Hirschhorn: Five. Excellent. Mēs ejam, lai izsauktu to nosaukumi, jo mēs esam gatavojas saņemt vairākus ones. Labi, nākamais? STUDENTU: Un tad jūs ir cilpa - Jason Hirschhorn: Par cilpu. STUDENTU: - attiecībā uz i = 0. Jason Hirschhorn: par (int i = 0. STUDENTU: Semikols. Jason Hirschhorn: Semikols. STUDENTU: Es mazāk par pieciem. Jason Hirschhorn: Es mazāk par pieciem. STUDENTU: Semikols. Jason Hirschhorn: Semikols. STUDENTU: i + +. Jason Hirschhorn: i + +. STUDENTU: Un tad slēgtas iekavas. Jason Hirschhorn: Slēgtas iekavas, un tad daži cirtaini lencēm. Inside cirtaini lencēm? STUDENTU: Un tad printf. Jason Hirschhorn: Printf. STUDENTU: Atvērt iekavas, vārds% d. Jason Hirschhorn: Atvaino? STUDENTU: Vārds. Jason Hirschhorn: Vārds. STUDENTU: Un tad telpa, un tad% d. Jason Hirschhorn: Vārds, telpa,% d. STUDENTU: Un tad / n, un pēc tam slēdza. Jason Hirschhorn: Tātad vārds, telpa, % D / n, slēgtie iekavas. STUDENTU: Comma, i + 1. Man žēl. Slēgts citātu, un pēc tam komats, i +1. Jason Hirschhorn: Slēgts citēju, komats, i +1. STUDENTU: Jā. Un tad nākamais līnija - Jason Hirschhorn: i + 1. STUDENTU: Jā. Un tad nākamo slaidu ir nosaukumi kronšteins i. Jason Hirschhorn: Nākamais līnija ir nosaukumi kronšteins i. STUDENTU: = get virkni. Jason Hirschhorn: = Get - kapitāls G-E-T - string. Hmm, sorry. STUDENTU: Atvērt, slēgts iekavas un pēc tam - Jason Hirschhorn: Atvērt, slēgta paren. STUDENTU: Semikols. Jason Hirschhorn: Semikols. Labi, lai jūs sāktu masīvs stīgas, nosaukumi, un tad iet cauri cilpa, un piecas reizes izdrukāt dažas ātri, lai lietotājs, un pēc tam uzglabāt piecas stīgas. Vai kāds ir kāda korekcijas tas ir? Tom, es domāju, ka ikviens piekrīt ar jums. Izskatās diezgan labi. Labi. Kāpēc jūs man +1, lai gan? STUDENTU: Es domāju, nav līdz būt, bet es +1 tā, ka tas ir nosaukums viens nosaukt piecus. Pretējā gadījumā tas būtu nosaukums nulle nosaukt četri. Jason Hirschhorn: Tātad jūs i +1 jo pretējā gadījumā tas būtu izdrukāt nulli caur četriem, jo tas ir kā datori domā, bet cilvēki nav īsti lasīt, piemēram, ka. Tā ir cita lieta jūs sastopaties. Dažreiz, kad jūs drukāt kaut ko lietotājam, jūs vēlaties, lai būtu mazliet glītāka, un darot i +1, kas šajā gadījumā ir veids, lai padarītu to skaistāku. Es arī redzēt piecus divreiz, virknes nosaukumu ir pieci, i ir mazāks nekā pieci. Es zinu, kur jums pieci. Jums tas no manis stāsta Jūs pieci uzvārdi. Bet, ja mēs vēlējāmies, lai kodu nedaudz stingrāku, viena lieta, ko mēs varētu darīt, ir šeit, ārpus int, mēs varētu darīt kaut kas līdzīgs šim, # Definēt, un mēs varētu darīt nosaukumi 5. Vārdu sakot, kur es rakstīt kapitālu N, kapitāla, kapitāla M, kapitāls E, kapitāls S, ka string, tas aizstās ka ar 5 kodā. Vai pieņemsim tikai sauc to - mēs tikai sauc to NUMURS. Tāpēc es esmu noteikt visas cepures Skaits, kas 5. Tāpēc tagad, kur man ir numurs 5, es var aizstāt ar visu caps numuru. Un tagad, ja es gribu, lai mainītu numuru Nosaukumu, visi man ir jādara, ir šī līnija, līniju četri, kur man ir # Define skaits 5, mainīt, ka līdz 10, vai mainīt, ka uz 4. Kad jūsu kods kļūst garāks, jūs neesat gatavojas atcerēties visām vietām, likt, cik daudz vārdu jūs vēlētos, un Lai jums nav garām vienu, tas ir labs veids, kā to darīt, lai atrastu kaut ko up top, un tad tikai izmantot šo frāzi visur visā jūsu kodu. Marcus? STUDENTU: Vai tas ir stilistiski vēlamais nekā pasaulē nosakot konstante n? Jason Hirschhorn: Tā ir, ka stilistiski preferred nekā pasaulē noteikt pastāvīgu n? Tātad jūs sakāt, jūs varētu do, int skaits = 5? STUDENTU: Vai tie ir līdzskaņi C vai nav? Jason Hirschhorn: Vai const - ir vienādi. Tātad jūs sakāt vienkārši globālo mainīgo? STUDENTU: Jā. Jason Hirschhorn: Tātad stilistiski, nav obligāti viena pareizā answer, bet gan no tiem ir labāk nevis tikai throwing tos izlases numurus visā jūsu kodu. Mēs tos saucam burvju skaits. Kad es paskatos uz jūsu kodu vai ja kāds ir iepazīšanās ar to, tie negribu tikai šīs izlases numurus ka nav jēgas. Pat skaitlis 26, kas parasti ir numurs burtu alfabētu, tas ir labāk, lai definētu alfabēta up top un saglabājiet numuru 26 šajā virknē, ja tas ir jēga. Vai uz problēmu, kas vienu, nevis - atkal, mēs neesam par to runāt pēc laiku, bet nevis tikai throwing ar 25 visur vai 10, jūs varat un saglabātu numuru 25, kā ceturtdaļa vai 10, kā DIME, un kas padara to vieglāk kurš ir iepazīšanās ar savu kodu, lai saprast, kāpēc jūs izvēlējāties šo numuru. Un arī jums, ja jūs kādreiz vēlaties atjaunināt savu kodu, tas padara to mazliet straujāka. Yeah? STUDENTU: Vai šis kods arī gatavojas lai tie būtu pieejami mums pēc tam? Jason Hirschhorn: Visi šie kodi ka mēs esam uzrakstījuši kopā ir tiks nosūtīta jums puiši un pieejami. Jā. Tāpēc lūgt lietotājam piecas nosaukumiem. Nejauši izvēlēties un izdrukāt viens no nosaukumiem. Kas bija šo līniju? Tas ir sarežģītākajiem līnija šeit. Atvainojiet, Tom. Tu patiešām labu darbu, bet tas ir mazliet trickier. Marcus, iet uz priekšu. STUDENTU: Nu, pirmkārt, jūs gatavojas nepieciešams iekļaut stdlib.h un time.h. Jason Hirschhorn: Tātad jūs sakāt pie top, iekļaut vēl divas bibliotēkas. Tu gribi, lai iekļautu S-T-D-L-I-B dot H, standarta bibliotēka, un kādi bija otrs? STUDENT: Time.h. Jason Hirschhorn: # ietvert time.h. Tātad šie ir vēl divas bibliotēkas. Es pieņemu, tagad mēs ejam, lai, izmantojot funkcijas, kas ir ietverti šīs divi, kas ir iemesls, kāpēc jums nepieciešams lai iekļautu tos? STUDENTU: Tātad, vispirms tu esi gatavojas vēlaties rakstīt srand. Jason Hirschhorn: srand. Students: (laiks (0) Jason Hirschhorn: Atvainojiet. Srand (laiks ( STUDENTU: 0. Jason Hirschhorn: 0. STUDENTU:)), semikols. Jason Hirschhorn: Vēl viens slēgts paren? Semikols. Es esmu gatavojas tikai nomainīt Jūsu nulle ar NULL. Tas būs darīt to pašu, bet Parasti, jūs redzēsiet NULL, kas mēs runājam par to line in otrais. STUDENTU: Stilistiski labāks? Jason Hirschhorn: Parasti cilvēki labi NULL, bet tas pats. STUDENTU: Un tad int nosaukumu. Jason Hirschhorn: Int nosaukums. STUDENT: = Jason Hirschhorn: = STUDENTU: Rand. Jason Hirschhorn: Rand. STUDENTU: () Jason Hirschhorn: () STUDENTU: Modulo numuru. Jason Hirschhorn: Kas moduli? Raksturs? Procenti raksturs? STUDENTU: Percent raksturs. Modulo NUMURS, ka jūs noteikti up top. Jason Hirschhorn: Modulo NUMURS. STUDENTU: Un tad semikolu. Jason Hirschhorn: Semikols. STUDENTU: Un tad jaunā līnija, printf. Jason Hirschhorn: Printf. STUDENT: ( Jason Hirschhorn: ( STUDENT: " Jason Hirschhorn: " STUDENTU:% s / n Jason Hirschhorn:% s / n STUDENT: " Jason Hirschhorn:% s / n " STUDENTU: komats, atstarpe nosaukumus. Jason Hirschhorn: Space - STUDENTU: Ak, es domāju, ko vai mēs to saucam šeit? Jason Hirschhorn: Mēs sauc to nosaukumus. STUDENTU: Atvērt bracket, nosaukums. Jason Hirschhorn: Atvērt bracket, nosaukums. STUDENTU: Slēgts skava. Jason Hirschhorn: slēgts skava. STUDENT:) Jason Hirschhorn:) STUDENTU: Semikols. Jason Hirschhorn: Semikols. Labi, pieņemsim glābt. Veidosim šo kodu. Studentiem. Pieņemsim palaist šo kodu. Studentiem. Ne. / Students. . / Studentiem. Nosaukums viens. Mēs teikt Dāvidu. Vārds divi, RJ. Vārds trīs, Rob. Vārds četri, Lucas. Vārds pieci, Joseph. Un tad izdrukā Jāzepu vēlreiz. Tātad, ļaujiet man palaist to vēlreiz. Ļaujiet man darīt ar vienādiem nosaukumiem. David, RJ, Rob, Lucas, Joseph. Un tas deva man Dāvidam šo laiku. Tāpēc es darīju to pašu, bet tas deva man cita lieta, un tas ir jo, protams, mēs esam lūdzot par izlases nosaukumu. Tāpēc es domāju, ka, pamatojoties off mani klīstot pa istabu, ka lielākā daļa cilvēku iespējams, ieguvuši pirmo daļu tiesības, izveidojot šo masīvu un pēc tam kļūst visi vārdi. Es runāju par 10 pozīcijām līdz 16. Bet caur 21 18 līnijas, iespējams, dažas lietas, jums nav redzējis, tāpēc pieņemsim iet caur tiem. Šī līnija, srand laiks NULL ir būtībā - Atvainojiet, pieņemsim izlaist uz leju līnija, rand (). Tas dod jums izlases numuru, izlases skaitlim. Un, ja jūs hit cilvēks rand, kas no jums daudz darīja - M-A-N telpa R-A-N-D - terminālī, piemēram, tas, M-A-N telpa R-A-N-D, hit Enter. Jūs varētu nākt klajā ar rokasgrāmatu un varētu izlasīt, ka rand komandu izejas num pseido izlases baiti Pēc sētu izlases numuru ģenerators reizi. Tātad, tas ir aprakstu. Tas ir tas, ko rands dara, dod Jūs izlases numuru, ja zvanāt šo funkciju. Diemžēl, tas nav īsti izlases jo, ja jūs vienkārši zvanīt izlases bez panākt, lai to dažu sēklu, daži sākuma punktu, tas vienmēr izvēlas tas pats viens un tas izmanto formulu lai noteiktu nākamo. Tātad, ja jūs zvanu rand, tas būs vienkārši jums to pašu. Tas būs ļoti prognozējama. Tas faktiski nebūs nejauši. Tātad, kas mums jādara, par Marcus s norādījumus uz mani, bija sēklu randu ar kaut ko citu, kas ir tas, ko srand funkcija dara. Tā sēklas Rand ar kaut ko mazliet vairāk izlases nekā vienu un to pašu, un viņš sētu to ar laiku NULL, kas ir, tikai pēc vienošanās, pašreizējais laiks sekundēs. Tātad jūs, pieņemot, ka visi nav gatavojas palaist kodu uz precīzu pats otrkārt, tāpēc tas ir droši bet, ka laiks NULL būs atšķirīgs katru reizi, kad šis kods tiek palaists. Droši bet, ka tādējādi, srand griba sēklas rand ar kaut ko citu katru reizi. Tātad pēc vienošanās, ja mēs vēlamies izlases numuru, mēs rakstīt šo līniju, srand laiks NULL, lai dotu mums daudz vairāk izlases sēklas, un tad mēs palaist rand, kas dod mums izlases numuru. Yeah? STUDENTU: Vai jūs varat pateikt, ko Jūs saprotat ar sēklām? Jason Hirschhorn: Seed kā - tāpēc rand gatavojas uzņemt kādu numuru un tas notiek, lai izmantotu dažus formula, lai tur nokļūt. Tātad, tas ir gatavojas sākt ar kaut ko un tad pārvērst to pamatā kaut ko pie šī formula. Ja jūs vienmēr to pašu, tas vienmēr būs to pārvērst tas pats. Tātad, šī pirmā lieta, jūs dot tas ir sēkla. Tātad jūs vēlaties, lai dotu tai kaut ko atšķirīgs, lai sāktu ar, un tāpēc tas būs pārvērst to kaut ko citu. Un tad beidzot, līnija 20, šis% sauc moduli, un tas ir mulsinoši. Tas ir kaut kas ir mazliet atšķirīgs šeit, ka jums nav īsti ir reālajā dzīvē math. Bet būtībā, ja jūs lietojat milzis numuru, un jūs sadalīt C, kas notiek ar atlikušo? STUDENTU: Tas izpaužas saīsināts. Jason Hirschhorn: Tas izpaužas saīsināts. Tātad 20 dalīts ar 3 ir tas, ko? Ko tas atgrieztos Jūs, 20 dalīts ar 3. Atvainojiet, 10 dalīts ar 3. Ko tas atgriezīsies pie jums? STUDENTU: [nedzirdama]. Jason Hirschhorn: 10 dalīts ar 3 tikai atgriež 3, nevis 3 atlikusī 1. Tātad, ko 10 3 moduļa atgriežas ir tikai atlikusī daļa, 1. Tātad, ja jūs vēlaties zināt, ko 10 dalīts līdz 3 patiesībā bija, jūs varētu do 10 dalot ar 3, jūs saņemsiet 3, un tad jūs gribētu darīt 10 modulo 3, un jūs saņemsiet 1. Tātad, jūs apzināties, ka 10 dalīts līdz 3 ir 3, atlikums 1. Un šajā līnijā, randu varētu būt vesels skaitlis, būtībā. Tātad moduli saka, sadalīt to ar skaits, kas ir šajā gadījumā 5. Un, ja jūs kādreiz sadalīt pa vairākām, vesels skaitlis vienmēr ir jābūt mazāk nekā šis numurs. Tātad, ja jūs dalot ar numuru 5, atlikusī daļa vienmēr būs nulles līdz četri. Tas ir tikai kā math darbojas out. Tik liels skaits moduloed ar mazāku numurs vienmēr atgriežas atlikusī daļa un vienmēr atgriežas dažus numurs, kas ir mazāks nekā skaits, jūs dalīts. Vai kāds ir kādi jautājumi par moduli, jo tas būs ļoti, ļoti ērts, tāpēc es gribu, lai pārliecinātos, ka visi to saprot? Atdzist. Un mēs redzējām, ka šī programma strādā. Labi, pārvietojas on. Līdz ar to nākamajā, mēs esam gatavojas iedziļināties funkcijas, un mēs gatavojamies iet visā pārējā šo stuff diezgan ātri, jo es vēlos, lai nokļūt komandrindas argumentus. Tātad funkcijas ir būtībā, kā jūs esat redzējis, melnās kastes. Viņi ņem lietas sauc par parametriem, viņi kaut ko darīt ar viņiem, vai nu tās mainīt vai izveidot dažas blakusparādības, un, visbeidzot, tie spļāva kaut kas, kas ir atgriezto vērtību. Var kāds iedodiet man vienu iemeslu kāpēc mēs varētu izmantot funkcijas? Kāds? Viens no iemesliem, kāpēc mēs gribētu izmantot funkcijas? Ikviens? Es redzēju divas rokas. Kas ir labs iemesls? Marcus? STUDENTU: Ja jums ir, lai izsauktu pašu rieciens kodu vairākas reizes. Jason Hirschhorn: Labi, ja jums ir nepieciešams , lai izsauktu to pašu rieciens kodu vairākas reizes. Jeff, jūs ir cits iemesls? Students: Just lai Jūs varat kods mazāk. Jason Hirschhorn: Jūs varat kods mazāk. Labi. Ja jūs vēlaties darīt kaut ko daudz - iepriekšējā kodu, es varētu būt rakstisks saņemt string piecas reizes, bet lai cilpa padara to izskatās nicer, un jums ir rakstīt mazāk kodu. Funkcijas ir līdzīga ideja. Ja es gribu darīt to pašu, daudz, pārvietot to uz funkciju un zvanu, ka darbojas katru reizi. Tas būs jādara, ka lieta par jums. Tas ir lielisks iemesls, izmantot funkcijas. Tātad anatomija funkciju. Funkcija parasti izskatās šādi. Tā sāksim ar atgriešanās veidu, tad jūs saņemsiet vārdu. Tā ņemšu argumentus, pretējā zināms kā uz parametriem, un iekšā šie cirtaini bikšturi, jūs uzrakstiet savu kodu. Mēs esam redzējuši vienu funkciju daudz. Tas ir galvenais. Šeit ir galvenais virsū uz ka anatomija man bija agrāk. Kāda int tieši šeit neizsaka? Ko int nozīmē? Kad es rakstīt int galvenais (spēkā neesošs). STUDENTU: Atgriešanās veids? Jason Hirschhorn: Atvaino? STUDENTU: atgriešanās tips. Jason Hirschhorn: Int ir atgriezties veidu, tieši labi. Galvenais atgriež int. Kas ir galvenais? STUDENTU: Funkcijas nosaukums. Jason Hirschhorn: Galvenais ir nosaukums no funkciju. Tieši labi. Un spēkā neesošu? Kas ir tukšums iekšā iekavās? STUDENTU: Tajā nav ņemta jebkura ārējā vērtība. Jason Hirschhorn: Tātad spēkā neesošu - labi. Inside iekavās, mēs ieliekam parametri vai argumenti funkcija tiek, kas notiek iekšpusē melnā kaste. Rakstot par spēkā neesošu, jūs sakāt tas aizņem neko iekšā Tātad int galvenais neesošu nozīmē Main s neņemot neko iekšā Inside cirtaini bikšturi, mums ir dažas kods, un pēc tam mēs redzēt beigās atgriezties nulles. Kāda atgriešanās nulle nozīmē? Nu, mēs runājām par atgriešanās veidu. Galvenais ir nepieciešams, lai atgrieztos int. Tas ir tas, ko šī līnija dara. Tā atgriež int, nulle. Protams, mēs neesam redzējuši, ka daudz jo plānošanā mēs ar mašīnas, ko mēs darām un kompilatori mēs izmantojam šodien, jums nav nepieciešams, ka līnija. Galvenais ir īpašs pietiekami, ka tā zina, kad jūs sasniedzat beigām galvenais, vienkārši atgriešanās nulli, ja viss gāja labi. Faktiski, ja kaut kas nav iet labi, Galvenais bieži atgriežas atšķiras numurs, kas nozīmētu, ka kaut nogāja greizi ar savu programmu. Tātad kopumā, kad jūs redzat kodu, nerakstiet atgriešanos nulles, bet tas ir labi zināt, ka tas notiek aiz ainas, jo, kad jūs uzrakstīt cita veida darbības, Jums būs nepieciešama, lai ietver atgriešanās līniju. Ja jūs sakāt, es esmu gatavojas atpakaļ int, jums ir rakstīt atgriezties kaut ko. Ja jūs sakāt par spēkā neesošu up šeit sākums, par spēkā neesošu galvenais spēkā neesošu, jo Piemēram, tad tas neatgriezīsies kaut kas - par spēkā neesošu ir nekas - tāpēc jums nav nepieciešams, ka atgriešanās līniju. Bet tu esi kādreiz uzrakstīt kaut ko, kas nav par spēkā neesošu attiecībā uz atgriešanās veidu, jums ir nepieciešams līnija, kas saka atdevi un jums nepieciešams, lai kaut ko tur kas atbilst veidu. Kādi jautājumi par šo? Salds. Darbības joma. Tas ir kaut kas mēs esam pieskārās arī. Katrs mainīgais, kā zināms, ir noteiktu jomu, un tas būtībā runājot par to, kur mainīgais var vai nevar būt atsauces. Un es gribētu teikt, kas notiek jo cirtaini lencēm paliek iekšpusē cirtaini lencēm. Tā, piemēram, ja mēs apskatīt šo kodu, mēs definēt globālu mainīgo ārpus galvenais, int, up šeit augšpusē. Mēs aicinām citu int iekšā galvenais. Mums ir vēl daži cirtaini bikšturi, un mēs aicinām citu int. Mums ir trīs grādu kodu. Tie nav viens un tas pats. Esmu izveidojis trīs atšķirīgas mainīgos. Tad iekšā šo iekšējo cirtaini breketes, es saku = 4. , Kas ir tāds, ka runājot par, pirmais, otrais, vai trešais viens? STUDENTU: Trešais. Jason Hirschhorn: Tas runā par trešajam. Visi no tiem ir tiešām var būt runāja par šo konkrēto Piemēram, jo ​​to darbības joma viss iet šajās visdziļākais cirtaini lencēm. Tomēr, ja jūs zvanīt lietas pats Vārds, tur ir kaut kas ko sauc slēpjas. Tātad jums tikai nodarbojas ar vai salabot vai izmantot Pēdējā mainīgs, vai viens vistuvāk jums. Tātad iekšā šeit, šis trešais ir vistuvāk uz šīs līnijas, = 4, lai tas ietekmē trešo vienu. Un pēdējais līnija, = 2, kas ir kas runā par, pirmkārt, otrkārt, vai trešā? STUDENTU: Otrais. Jason Hirschhorn: Tas runā par otro a. Protams, trešais ir vistuvāk to kodu, bet trešais neeksistē ārpus šie cirtaini bikšturi. Tiklīdz jūs saņemsiet uz šo slēgtā cirtaini lencēm, tas ir tāpat kā tas ir pagājis, būtībā. Tātad, tikai divi ir atlicis, ir tie, pirmais divi, un protams, tagad tas ir vistuvāk otrā. Tātad, tas ir laba lieta, lai atcerēties par darbības jomu. Piemēram, es esmu pārliecināts, ka jūs esat saskārušās to darīt, kamēr cilpa. Ja jūs sāktu mainīgā iekšpusē do kamēr cilpa, un tad mēģināt piekļūt to ārā, jūs, iespējams, ieguva dažas brīdinājumu, piemēram, šo mainīgo neeksistē. Tas ir tāpēc, ka darbības jomas idejas, ka lietas pastāv tikai iekšpusē tām cirtaini lencēm. Cirtaini bikšturi ir kā milzu ķēriens, ka jūs dodot savu kodu, ir vēl viens veids, kā domāt par to. Tātad tas ir vēl viens funkcija, kaut lai jūs guys uz kodu, hellofunction.c. Mēs ejam, lai izlaistu, ka tagad, bet tas ir kaut kas, es jūs mudinu praksē uz savu. Uzrakstiet programmu, ar kuras galvenie zvani citas funkcijas, kas izdrukāta apsveikuma lietotājam. Tas ir būtībā, ņemot Sveika pasaule un abstrahējoties ka printf stājas citu funkciju. Bet mēs neesam gatavojas darīt, ka tieši tagad jo mums nav tik daudz laika pa kreisi, kā man gribētos. Tātad funkcija deklarācija. Mēs esam redzējuši šo pirms, kā arī. Ja jūs vēlaties rakstīt citu funkciju, jums ir nepieciešams, lai ļautu datoram zināt un Galvenais zināt, ka tā pastāv. Tātad, ko mēs darām, ir virs galvenais, mēs rakstām atgriešanās tips, nosaukums, un parametrus, un pēc tam uz leju zem galvenā, šeit lejā, mēs faktiski kopēt ka līnija un pēc tam uzrakstiet faktisko kodu. Tātad šādā veidā, ja jūs izsauktu funkciju galvenajā augšā, galvenais zina, ka sveiki pastāv, piemēram, ja es bija zvanīt sveiki, un tad tas izskatās īstenošanas zemāk. Kas notiek, ja man nav iekļaut šo rindā augšu, spēkā neesošu sveiki (spēkā neesošs)? Ja man nav iekļaut šo līniju un galvenie prasa Sveiki, es esmu gatavojas saņemt kļūda. Es esmu gatavojas saņemt kļūdu, jo kompilators nezina ka šī lieta pastāv. Tas ir līdzīgs kāpēc mēs Vai # ietvert cs50.h. Kas būtībā cs50.h dara ir liekot nokļūt virkni tur augšā. Tas liekot nokļūt int tur augšā. Tas liekot visas šīs funkcijas prototipi, pirms Galvenais, lai tad, kad jūs zvanu viņiem galvenais, galvenais zina ka šīs lietas eksistē. Tas, ko šie. H failus darīt. Un tā, ja jūs gatavojas, lai padarītu savu funkciju, jūs esat ieguvuši, lai pārliecinātos, Jūs nodot šo prototipu tur. Kādi jautājumi par šo līdz šim? Komandrindas argumentus. Tas ir tas, ko mēs ejam, lai pabeigtu gada, un tad, cerams, mēs izspiest kādu PSET. Es nezinu, vai mēs varētu izspiest ka tāpēc, ka no laika, bet ar jums, puiši, kuri ir šeit, un, ja jūs puiši vēlas pateikt pēc tam, lai mazliet, mēs var iet pa to ārā. Bet mēs esam gatavojas pabeigt ar komandrindas argumenti pēdējo 15 minūšu laikā. Mēs nomodā, Michael? Tu esi nomodā? Labs. Es nezinu, ja jūs gulēt ar savu aizvērtām acīm. Tas varētu būt grūts. Komandrindas argumentus. Tie ir viens veids, kā nodot informāciju uz programmu. Galu galā, mēs sastopas citiem. Bet būtībā, mēs ejam, lai apturētu rakstiski int galvenais (spēkā neesošs), ja mēs vēlamies, lai veikt dažas komandrindas argumentus. Mēs ejam, lai rakstīt šo lietu sauc par int main (int argc, stīgu argv, iekavās. Tas ir mulsinoši. Tas ir daudz burtiem, kas nav cilvēku angļu valoda, tāpēc mēs gatavojamies izkravāt viņiem tiesības tagad. Argc nozīmē argumentu skaits - un atkal, visi no tiem būs būs pieejama tiešsaistē - un tas ir vairākus argumentus. Argv stendi arguments vektors, un tie ir argumenti paši. Tas ir masīvs stīgas. Mēs esam tiešām redzējuši masīvs stīgas pirms šodien. Mēs esam izveidojuši vienu pēdējā programmu mēs kodēti. Tātad, šeit ir piemērs. Es rakstu. / Ohai CS50 sadaļa par manu komandrindas. Argc šajā gadījumā ir vienāds ar 3. Argv kronšteins 0 ir ohai, argv kronšteins 1 ir CS50, argv kronšteins 2 ir sadaļa. Atkal, argc ir vairākus argumentus, un lai ceļojums jums augšu mazliet bit, mēs vienmēr var rēķināties nosaukumu funkcija kā pirmo argumentu. Tātad, šajā gadījumā, ir trīs argumenti, vārds funkcijas un tad tie divi, ka es drukāti collas Tālāk, mēs ejam, lai saglabātu tos, argumenti sevi ARGV. Un atkal, tāpat kā mēs redzējām iepriekš, mēs to izdarījām Šī pēdējā programmu mēs kodēti. Jūs varat pārvietoties pa masīvs ARGV un saņemt šos stīgas. Tas, būtībā, ko mēs darīja beigām mūsu pēdējās programmas. Mēs noplūktiem izlases vārdu un pēc tam devās uz nosaukumi kronšteins neatkarīgi un izdrukāt veic virkni atrodas tur. Uz augšu tikai ar vienu masīva, jo stīgas paši bloki, kā runāja par to, jūs varat būt bloki no blokiem, kas ir būtībā kas argv ir. Viens veids, kā jūs varat domāt par tas ir rindas un kolonnas. Es varu izdarīt šīs tiesības tagad. Tātad argv - tas nav dzēšanu. Let 's izdarīt saskaņā ohai. Tātad, ja es rakstīju, ohai CS50 sadaļā, Es esmu gatavojas saīsināt sekcija šim piemēram. Bet būtībā, mans daudzdimensiju masīvs, ohai CS50, mēs gatavojamies darīt sektas. Tātad šeit, es varu piekļūt - ja es tikai dot ARGV numur viens - tas ir nepareizi. Kas ir nepareizi šajā diagrammā? STUDENTU: Sākt no nulles. Jason Hirschhorn: Tas būtu sākas ar nulli. Es, iespējams arī pagriezt to, bet jo es esmu jau sastādīts to, es esmu gatavojas atstāt to tur tagad. Bet tas sākas no nulles. Tas ir labi. Es atvainojos, ja tas ir mazs. Vai jūs guys veida redzēt? Tātad, ja man ARGV 0, es ņemšu iegūt visu ohai. Ja man ARGV 1, es nopirkšu visu CS50. Ja man ARGV 2, es nopirkšu visu sektas. Bet tagad, kā mēs teicām, stīgas ir masīvi paši. Tātad, ko es varu darīt, ir es varu ārstēt šo kā daudzdimensiju masīvu, un es var darīt kaut ko pa līniju argv 0, 0, kas dod man tikai raksturs 0. Argv 0, 1, kas dod man tikai h. Argv 1, 3, kas dod man tikai tas 0 noteikti šeit CS50. Tāpēc, ka stīgas paši ir masīvus, mēs esam liekot ka citā masīva. Mums tagad ir masīvs masīvu, un mēs varat uz mūsu pirmo masīva indeksu un tad indekss par mūsu otro masīvs. Un, kā jūs varētu gaidīt, mēs to darām , vienkārši liekot šos divus - mēs kvadrātiekavas vienkārši pa labi blakus viens otram. Tātad, šajā piemērā, 1 argv ir CS50 un 1 argv, 2, tāpat kā mēs teikt, ir tikai 5. Vai kāds ir kādi jautājumi par daudzdimensiju masīvi? Jūs puiši dara lieliski. Salds. Tāpēc mums ir citu programmu tieši šeit, un tas ir galīgais lieta, ko mēs esam gatavojas darīt tieši tagad. Tāpēc es gribu, lai jūs uzrakstīt programmu, kas Stājas lietotāja vārdu un uzvārdu, divi, un tikai Divi komandrindas argumentus, un, visbeidzot, izdrukāt sveicienu lietotājs, kas ietver savu pirmo vārdu. Tātad, kāpēc jūs to trīs vai četras minūtes, lai to izdarītu, un tad mēs brauksim vairāk nekā tā kā grupa, un tad mēs satīt? Un atkal, šeit, kad mēs sakām, veikt lietotāja vārds, uzvārds vienu aprakstu par šo problēmu, būtu komanda argumentus, nevis izmantojot get virkni. Jā, Marcus? STUDENTU: Tātad, kad jūs sakāt divi komandu argumentus, ir tas, ka papildus . / palaist, vai - Jason Hirschhorn: Labs jautājums. Vai, ieskaitot. / Palaist, trīs komandrindas argumentus. Vai ieskaitot. / Personalizēto, jo Šajā gadījumā, jo tas ir sauc šo failu. Tātad argc būtu trīs. Bet es gribu tikai divi argumenti dota programmai. Es būtu jānorāda, ka. Es ņemšu veikt šīs izmaiņas, pirms es post šiem un nosūta tos jums puiši. STUDENTU: Ko darīt, ja jūs ir otrais vārds? Jason Hirschhorn: Ja Jums ir vidū vārdu, jūs no luck. Man žēl. Vai, ja Jums ir tikai iet ar Shakira, jūs arī no luck. Yeah? STUDENTU: Tātad, kad cilvēki nav cs50.h, viņi definē ARGV kā char zvaigzne ARGV? Vai tas joprojām sauc string ARGV? Jason Hirschhorn: Jā. Tātad virknes, atkal, mēs maska ​​cik ilgā tieši tā, kas tur notiek. Kas notiek, lai izsaiņošanas varbūt Trešdien, bet drīz. Tas ir tāpat kā mācību riteņi. Jo būtībā, tas ir tas pats. Tātad, pieņemsim vēl minūti, lai programma tas, un tad mēs iet pār tā kā grupa, un pēc tam kā jau teicu, satīt. Un es domāju, ka viņi vēl papildus konfektes, tāpēc jūs guys vajadzētu cerams, tas, vai, lūdzu, ņemt to. Sorry, ja jūs joprojām rakstiski, bet es gribu, lai nirt un mēs var pabeigt to kopā. Tāpēc man ir rakstīts, # ietvert cs50.h, # Ietvert stdio.h. int galvenais (spēkā neesošs), cirtaini lencēm, cirtaini lencēm, iekšā trīs rindas pseudocode, veikt lietotāja vārdu un uzvārdu, divas un tikai divas komandrindas argumenti, izdrukāt sveicienu lietotājs, kas ietver savu pirmo vārdu. Tā pirmā, veikt kāda lietotāja vārds, uzvārds. Kas var palīdzēt man veikt kāda lietotāja vārds, uzvārds? Kā es varu darīt, ka daļa? Vai jūs guys darīt, ka pirmo daļu? Veikt lietotāja vārdu un uzvārdu. Nu, ka viens komandrindas arguments, ko man rakstīt? Ko man vajadzētu mainīt par mana funkcija deklarācija? STUDENTU: Jūs nevēlaties tas būtu spēkā vairs. Jason Hirschhorn: Tieši tā. Es nevēlos to par spēkā neesošu. Ko es gribu, lai to? STUDENTU: Int argc. Jason Hirschhorn: Int argc. STUDENTU: String argv. Jason Hirschhorn: String argv. STUDENTU: Bracket, kronšteinu. Jason Hirschhorn: Bracket, kronšteinu. Tas ir tieši labi, un tas ir patiesībā, kā es esmu gatavojas saņemt kāda lietotāja vārds, uzvārds. Viņi gatavojas nodot to tur. Tā, ka viens ir darīts. Tāpēc tagad es gribu divas un tikai divas komandrindas argumentus. Tātad Noa, kas ir viens veids, kā es varētu pārbaudīt, cik komandu argumentus man ir? STUDENTU: Jums, ja paziņojumu. Jason Hirschhorn: Ja paziņojumu, tieši tā. Ko es gribu kā nosacījums? STUDENTU: Ja argc lielāka par 3. Jason Hirschhorn: Ja argc ir lielāks nekā 3. Ja argc lielāka par 3, ko man darīt? STUDENTU: Atgriešanās 1. Jason Hirschhorn: Atgriešanās 1. Būs, kas nodrošina man divas un tikai divas? STUDENT: Nē. Ja argc ir lielāks nekā 3 un mazāk nekā 2. Jason Hirschhorn: Ja argc ir lielāks nekā 3 un argc ir mazāks par 2. Kas ir viens veids, kā es varu uzrakstīt to tikai viena rinda, vai bez, izmantojot, ka un Būla operators? STUDENTU: Tas nav vienāds ar 2. Jason Hirschhorn: Ja argc nav vienāds ar 2. Tieši tā. Tātad, ja argc nav vienāds ar 2, kas dos man šo programmu, personalizētu, kad es palaist to, un kas dos man, cik daudz komandrindas argumentus? Cik es pārbaudīt? Žēl. Ļaujiet man pārfrāzēt, ka. Ja argc = 2, cik daudz darīja lietotājs rakstīt uz līnijas? STUDENTU: One. Jason Hirschhorn: Tikai vienu. Tātad, pirms, jums bija taisnība, Noah. Kas man tiešām ir nepieciešams, lai tur? STUDENTU: Tas ir vienāds ar 3. Jason Hirschhorn: argc nav vienāds ar 3. Es gribu uz vienlīdzīgu 3, jo es gribu personalizētu kā pārējās divas. Tātad, ja argc nav vienāds ar 3, return 1. Kāpēc tu saki atgriezties 1? STUDENTU: Tā ka nozīmē, ka tas ir nepareizi. Jason Hirschhorn: Tas nozīmē, ka tas ir nepareizi, un to, kas gatavojas darīt? STUDENTU: Re-ātri lietotājs. Jason Hirschhorn: Tas būs atmest programmu, tāpēc tas būs jāskrien atkal, bet mums nav neko šeit lūgt tiem vēlreiz. Es neprasīju par to. Tātad tas ir tieši labi. Atgriešanās 1 vienkārši iziet no programmas. Lieliski. Un izdrukāt sveicienu lietotājam kas ietver savu pirmo vārdu. Kā es varu darīt? Anna? STUDENTU: Printf. Jason Hirschhorn: Printf. STUDENTU: (" Jason Hirschhorn: ( STUDENTU: "sveiki Jason Hirschhorn: "sveiki STUDENTU:% s Jason Hirschhorn:% s STUDENTU: / n Jason Hirschhorn: / n STUDENTU: ", Jason Hirschhorn: ", STUDENT: ARGV Jason Hirschhorn: Atvaino? STUDENT: ARGV Jason Hirschhorn: ARGV STUDENTU: Kvadrātiekavas 1. Jason Hirschhorn: Kvadrātiekavas? STUDENTU: 1. Jason Hirschhorn: 1. STUDENTU: Un) semikolu. Jason Hirschhorn:) semikolu. Ļaujiet mums vadīt to. Padarīt personalizētajai. . / Personalizētajai. Tas vienkārši atmest. Kāpēc tas atmest? STUDENTU: Tu nelika nekādus argumentus. Jason Hirschhorn: man nav likt nekādus argumentus iekšā Izskatās lieliski. Jūs guys pavirši to. Tātad vēlreiz, jums iegāja ARGV un jums pārbauda pašā sākumā argc. Tie ir divi svarīgi lietas, kas jāatceras. Tātad mūsu pēdējās divas minūtes pirms mēs atvaļinājumu, mēs nevarēsim iegūt diviem PSET, bet kā jau teicu, ja jūs vēlaties palikt pēc 10 minūtes, es būtu viņš labprāt dotos vairāk nekā ar jums puiši loģiku Šo problēmu kopas. Mums bija ļoti daudz, lai segtu šodien tāpēc man nebija saņemt uz tiem. Vispār, es gribētu, lai iekļautu ka beigās. Tātad, ja jūs vēlaties, lai stick apkārt, stick apmēram 10 minūtes. Mēs darīsim to. Pēc tam, kā es minēts sākumā, nulle PSET un viens, mēs iegūstam, ka atgriezeniskā saite atpakaļ uz jums, kā drīz vien iespējams. Mērķis ir iegūt PSET vienu atgriezenisko saiti, komentāri daļu, Pirms diviem PSET ir jāmaksā. Tātad, ja jūs veicāt dažas kļūdas vai stilistiski, lietas varētu būt labāk, jums ir šī informācija, lai jūs nebūs darīt to pašu lietas, otrajā PSET. Un tad nākotnē, jūs saņemsiet visu Jūsu PSET atsauksmes un komentāri atpakaļ pirms nākamā ir saistīts. Visbeidzot, ja es varētu likt citā spraudnis atsauksmes. Šis ir jūsu pirmais posms. Tā bija mana pirmā daļa mācību šogad. Iet uz turieni. Rakstiet sīkumi, labs un slikts, un es to izmantot, lai veiktu sadaļā labāk nākamo reizi. Un pēdējais, atkal, ja jums ir nepieciešams kaut kas, let me know. Es esmu vairāk nekā laimīgs, lai palīdzētu jums puiši. Ja jūs vienkārši vēlaties Candy, es būs papildus konfektes. Es esmu laimīgs, lai to jums. Tas būs pārsteidzošs kursu. Šis ir viens no, ja ne mana mīļākā Protams, es esmu veikusi visu manu dzīvi, un es ceru, ka tā būs, ka brīnišķīgi jums. Tāpēc es vēlos darīt visu, kas manos spēkos lai padarītu to, ka laba jums. Es esmu gatavojas izsūtīt e-pastu, ja jūs esat manā nodaļā vai Noa, un gatavojas izmēģināt un grafiku ar katru no jūs puiši laiku, lai pārbaudītu vairāk nekā nākamās pāris nedēļas, lai es varētu saņemt sajūtu, ko jūsu CS fona ir, , un tas arī palīdzēs man pielāgot šos sadaļas, lai labāk atbilstu jūsu vajadzībām. Tātad, tas ko es esmu got ierindots. Atkal, Tiksimies ārpus Ja jūs vēlaties būt tur. Tas bija nedēļu divas sadaļā. Paldies jums puiši tik daudz.