JASON HIRSCHHORN: Byenveni nan CS50 seksyon, tout moun. Non mwen se Jason Hirschhorn. Se mwen menm ki yon anpil nan TFs nou, se yon anpil nan moun ki pral èspere ke dwe rantre nan nou sou entènèt, ekstansyon elèv oubyen elèv ap eseye gade nan seksyon yo si yo rate seksyon yo pandan semèn sa a oswa jis ratrape si yo te vle revize kèk materyèl. Se konsa, tankou pou chak progranm a, ki tout nan nou te li, korije? Mwen wè yon anpil nan nods tèt yo. Seksyon ofri ou ak opòtinite yo eksplore nan kou a materyèl nan yon anviwònman plis entim, kòm byen ke plonje nan men-sou aktivite yo. Se konsa, sa a, se fondamantalman ki sa nou ap yo pral fè chak semèn. Nou pral yo ale nan sa nou genyen detèminen ki gen bezwen ki pi enpòtan an Sijè ki kache nan konferans, ak sa yo pwobableman tou pi itil ak gen plis chans vini sou kouche pwoblèm ak nan ti tès, ak nan kodaj ou lavi andeyò CS50. Se konsa, nou ap ale nan ale nan sijè sa yo, diskite yo, ale sou yo, reponn nenpòt kesyon ou mesye genyen, epi Lè sa a, nou pwal fè yon anpil nan pwoblèm pratik nan kodaj. Ou tout te pote laptops, ki se kokenn. Sa a se yon klas syans òdinatè. Sepandan, yon anpil nan egzèsis yo nou fè sa, ou pa pral bezwen laptops ou a pou. Ou ka fè yo sou yon fèy papye. Sa a ki jan w ap ale nan fè yo sou Quizzes la. Ak tout bon, ki nan yon bon fason vrèman konnen ke ou ki jan fè yon bagay si ou pa gen Tcheke 50 a konte sou oswa fè fè konfyans sou, di ou te fè nenpòt ki erè. Se konsa, w ap akeyi Kòd sou la aparèy oswa run.cs50.net, ki se yon lòt zouti ki pèmèt ou Kòd sou entènèt, men mwen tou ta rekòmande pou, si ou pa te eseye li, lè l sèvi avèk yon fèy papye ak ap eseye sa yo pratik pwoblèm sou yon fèy papye. Paske ankò, sa a, se finalman ki sa w ap pral fè mande yo fè sou ti tès. Se konsa, kite la kòmanse avèk nou ajanda pou jodi a. Nou pral ale sou kèk nòm pou seksyon nou an, Lè sa a, nou pwal plonje nan ranje, fonksyon, ak lòd liy agiman, ki se ki sa ou mesye yo te kouvri semèn sa a sot pase yo nan konferans ak Lè sa a Lendi, e ki sa ou pral kouvri plis nan demen. Lè sa a, finalman, nou pral pale sou pset2. Si m 'te ka jwenn yon montre nan men si ou pa gen gade mete nan pwoblèm de spesifikasyon. Nou pral di tout moun. Kokenn. Nou pral pale sou kouche pwoblèm nan yon ti jan, Men, si ou te li mete nan pwoblèm spesifikasyon, ki nan tout sa ou bezwen fè. Si ou li ke avan ou vini nan klas-la ak seksyon, nan madi, ou pral gen yon pozisyon gwo. Nou ka ale nan mete nan pwoblèm, ki se ki sa nou ap ale fè nan fen an. Nou pral yo ale nan lojik la, asire w tout moun la sou paj la menm. Mwen vle pou ou pou kapab kite Madi santi trè alèz ak sa ou bezwen pou fè pou mete pwoblèm yo semenn sa a, epi si ou pa fè sa, mwen pral san pwoblèm mwen tap rete apre yo fin ak travay avèk ou. Men sa se yon sèl bagay ki di ou gen fè men mwen panse ke ta dwe reyèlman entelijan, jis li mete nan pwoblèm spesifikasyon pa yon klas nan Madi, ki li son tankou yon anpil nan ou nèg te fè sa. Mwen pral kòmanse ak yon ajanda chak klas se konsa ou konnen ki kote nou pral. Sa a se tou itil pou moun ki ap gade sou Entènèt paske chak seksyon se koulè kode, se konsa si ou vle vin retounen lakay yo epi jis gade 10 minit olye pase tout seksyon an 90-minit, ou ka jis ale nan seksyon an koulè kode epi gade nan pati sa a. Se konsa, mwen te eseye kraze yo moute nan bèl modil ki pral pèmèt ou - si ou vle tounen vin jwenn ak revize, oswa lòt elèv ki yo se jis l ap gade yon seksyon yo revize - jwenn bagay la espesifik yo vle peye atansyon a epi aprann plis sou. Dous. Nòm. Mwen se yon lidè dandi sou lakou lekòl la. Mwen pa konnen si okenn moun te fè dandi. Èske okenn moun fè dandi? Yon moun te fè dandi. De moun te fè dandi. Awesome. Se konsa, dandi se premye ane a Deyò Pwogram oryantasyon. Nou pran elèv premye ane nan Woods yo, epi fè eksperyans yo ki pi majik nan lavi yo, kòrèk? Yeah. Son sou dwat. Se konsa, mwen jis te vle kòmanse nou an trè premye seksyon pa diskite sou kèk nòm pou klas la ak relasyon nou paske mwen panse ke yo ap trè enpòtan. Premye ak premye, kòm moun nan nou ki yo te seksyon mwen te resevwa ak ki te diskite nan ki imel, mwen renmen sa a. Sa a se pati ki pi renmen mwen nan ane a. Mwen te tèlman eksite. Mwen te isit la pou èdtan jodi a. Mwen pa t 'kite sa a bilding sof nan ale manje paske mwen renmen CS50 seksyon, mwen renmen ansèyman, mwen renmen k ap travay avèk ou guys. Youn nan pi gwo priyorite m ', si se pa mwen nimewo yon priyorite, pa sèlman pou klas sa a men ki gen ladan lòt m ' klas ak extracurriculars, se sipòte ou nèg, epi yo ede w mesye, ak fè pi byen mwen an asire w ke ou mesye gen yon, bèl bagay, plezi, pwodiktif s'angajè, enteresan eksperyans nan klas sa a. Sa a ki sa mwen angaje nan. Se poutèt sa mwen renmen fè sa. Sa se nimewo mwen yon sèl bagay, sipòte ou nèg. Si w gen nenpòt kesyon sou konferans, pwoblèm seri a, seksyon, lavi, menm si ou vle pale sou lavi, tanpri, ezite yo rive jwenn deyò. Ou gen nimewo telefòn selilè mwen an, ou gen imel mwen adrès ou, ou gen GChat mwen. Ou kapab kontakte m nan nenpòt oswa tout sa yo chak fwa, men pwobableman pa pral resevwa yon repons chak fwa. Mwen eseye epi pou yo jwenn tounen nan lespas 24 èdtan. Souvan li pral nan 20 minit oswa 24 minit. Mwen ta dwe gen te di ke fè li paralèl. Men, ou pral jwenn yon repons trè byen vit. Si ou tèks m 'yon èdtan anvan an seri pwoblèm nan akòz, mwen pral kalme ou desann ak fè egzèsis pou l respire gwo twou san fon avèk ou, men si ou pa gen te kòmanse, w ap pwobableman pa pral fini, epi Mwen pa ka vrèman ede ou deyò menm si m ap eseye pi byen m '. Se konsa, mwen pral fè tout bagay Mwen ka sipòte ou. Tanpri santi gratis yo rive jwenn konnen si li la nan seksyon sa a ankò, nan lè biwo louvri si ou wè m ', oswa menm deyò. Mwen kontan yo mete kanpe yon tan al kontre ak travay nan pwoblèm avèk oswa ale sou materyèl. Se konsa, ki se nimewo yon sèl, sipò. Mwen pral fè tout sa mwen ka sipò ou. Nimewo de, reyinyon nan mitan yo. Kòm anpil jan mwen ta renmen yo dwe, mwen se pa puisan oswa tout-pwisan oswa tout-konnen, se konsa mwen pa konnen nan tout tan si sa m 'ap fè a ap vin atravè tout, si wout la mwen moutre moun yo anpil nan sijè ede ou aprann li, oswa si w yo konfonn sou yon sijè men pa fè sa leve men ou oswa mande m ' oswa voye m 'yon imel. Oswa menm si ou, ankò, yo konfonn sou yon bagay sou mete nan pwoblèm. Si ou pa rive jwenn soti nan mwen, Mwen pa ka konnen ke pou asire w. Mwen pral fè pi byen m 'yo tcheke nan sou ou nèg, asire w ke tout bagay se pral byen, eseye anseye bagay sa yo nan yon fason ki pral fezab nan pi fò nan estil aprantisaj ou, men si gen nan anyen mwen ka fè, kite m 'konnen. Ansanm liy sa yo, si ou vle kèk èd ak mete nan pwoblèm, mwen se pi plis pase kontan ede ou ak mete nan pwoblèm. Nou pral fè yon anpil nan ki nan direksyon pou dezyèm lan mwatye nan seksyon sa a. Men, si ou pa te li pwoblèm nan kouche tounen epi yo pa gen gade mache a nan epi yo pa gen gade bout pantalon yo ak tann m 'nan moutre nou tout bagay ki te videyo sou entènèt oswa ke ou kapab jwenn nan CS50 etid, sa a, se pa reyèlman jis m 'oswa nan lòt lekòl parèy lòt ou. Se konsa, tanpri, mwen se plis pase kontan ede ou, men ou guys te rive nan kontre avè m 'nan mitan yo. Nou gen tòn resous pou ou disponib sou CS50. Mwen mansyone kèk nan yo. Tanpri pran avantaj de yo. Si w ap konfonn, mwen se plis pase kontan Pou ede w eksplike yo nan yon lòt fason, men li pa jis si elèv yo montre moute nan lè biwo louvri, pa gen te kòmanse anyen, epi li Jedi swa ak yo ap tann TF yo mache dwat yo nan tout yon sèl bagay pou pwoblèm nan mete akòz a midi jou kap vini an. Fè sans? Yon fwa ankò, tanpri jwenn nou nan mitan yo. E finalman, gwo espwa. Mwen pral yo dwe tout moun bay nòt ki nan nan seksyon m 'yo, oswa ki fè nòt ou pwoblèm aparèy televisyon HD. Ou pa te ale tounen pwoblèm mete zewo oswa yon sèl ankò. Nou regrèt sou sa. Li te pran nou yon ti moman finalman rezoud seksyon, epi kounye a nou kapab kòmanse bay nòt. Mwen pral jwenn yo tounen ba ou pi vit ke posib. Moun sa yo ki yo se kèk nan mwen advisees yo deyò. Mwen pral jwenn yo tounen ba ou pi vit ke posib. Se pou seri pwoblèm de, nou pral sou pran randevou ak nou pral kòmanse resevwa yo ou trè byen vit apre yo fin ou vire yo pous Lè ou jwenn pwoblèm ou mete tounen, ou ap fè w jwenn nòt, jan ou konnen soti nan lekti progranm a - Correct, konsepsyon, sijè ki abòde, ak style nòt. Ou ap tou jwenn kòmantè. Tout kòmantè se pi enpòtan pase nòt yo. Mwen panse ke li nan sekirite yo di ke. Nòt yo se jis yon nimewo soti nan youn nan senk. Li difisil yo li nan moun. Li difisil yo amelyore nan men moun. Men, kòmantè sa yo ap pwen soti espesifik bagay sa yo ou te fè byen oswa zòn ou kapab amelyore sou yo ak sou ba ou kèk ide pou tan kap vini an oswa altènatif fason pou fè bagay sa yo. Se konsa, tanpri, tanpri, tanpri li nan kòmantè yo. Mwen mete yon anpil tan nan sa yo kòmantè. Tanpri li nan yo e yo pa fè sa jis desann anba a nan la PDF, gade pou nòt ou, oswa ale sou entènèt epi jwenn nòt ou, ak Lè sa a, inyore kòmantè sa yo. Sa a pa ki jan w ap ale nan jwenn pi bon. Sa pa nan jan w ap ale nan ogmante nòt ou finalman, jis pa gade nòt yo. Tanpri gade nan sa yo kòmantè. Men, sou liy lan nan gwo espwa, ankò, tankou mwen te di, ou ka bay nòt pou soti nan yon jiska senk an. Twos, threes, ak four yo nan vas majorite nan nòt w ap ale nan dwe resevwa yo. Yo epi Fives, yo toulède yo vrèman ra anpil. Genyen toujou bagay sa yo nou ka fè pi byen. Chak fwa mwen Kòd yon pwogram, gen nan toujou yon bagay mwen te ka fè pi byen. Se konsa, olye ke li di ou jwenn yon senk tout tan tout tan an sou tout bagay ak fè tout bagay pafè, mwen pa panse ke nenpòt ki nan nou reyèlman kwè ke nou - oswa èspere ke, nou pa fè tout sa pafè tout tan an. Se konsa, pa enkyete si ou pa t 'jwenn yon senk. Yon senk pa kat sou yon A, yon kat pa kat sou yon B, yon twa fè pa kat sou yon C. Sa a pa ki jan nòt yo travay. Tankou David, te di anpil fwa, nan fen semès la tout nan nòt ou ak D 'nan men m', TF ou a, vini ansanm epi detèmine yon nòt final pou ou. Men, ankò, li pa senk, A, kat, B, et setra. Se konsa, mwen pral gen gwo espwa pou ou guys. Mwen pral atann bon pwoblèm ansanm ak mwen pral bay ou remak tankou sa yo. Men, li pa nan ale nan vle di w ap pral jwenn yon nòt vin pi mal. Ou ap resevwa nòt an tèm de pwogrè ou soti nan semèn zewo nan fen kou a. E finalman, an tèm de wo ap atann nan klas la, mwen renmen lè moun patisipe. Mwen konprann gen kèk moun ki santi yo plis oswa mwens konfòtab k ap patisipe. Lòt moun ap patisipe pa yo si nou ogmante men yo ak ap pale tout tan tout tan an. Men, nou nan klas sa a yo pral yo dwe fè yon anpil nan pwoblèm piti, yon anpil nan kesyon mini, ak Lè sa a kèk pi gwo kodaj pwoblèm. Se konsa, definitivman travay egzèsis sa yo soti lè nou fè yo sou òdinatè w lan oswa sou yon fèy papye. Men, mwen ap ba ou tou kèk tan anvan okenn moun tout tan tout tan te reponn kèk nan kesyon yo, m'ap mande. Se konsa, paske mwen pral ba ou kèk tan yo panse sou li, paske nou pral fè bagay sa yo nan patnè pafwa, Mwen pral atann tout moun yo dwe angaje yon ti jan. Se pou mank de yon tèm pi bon, gen ap pwobableman ap frèt rele, ki se kote tout moun pral gen yon chans yo reflechi sou repons lan, ak Lè sa a, M ap rele sou ou, ak Lè sa a, ou pral di repons lan. pa enkyete oswa dwe pè sou sa. Mwen te fè l 'nan tan lontan an epi nou te jwenn ke li nan pi plis siksè, tou li edikatif rechèch sou li nan detèmine si wi ou pa li te yon bon taktik. Li se trè itil, espesyalman si w bay elèv yo tan yo reflechi sou la repons epi yo pa fè yo jis vini deyò epi yo di li dwa koupe baton an. Men, si ou pa santi w alèz lapawòl, mwen se tou trè bon nan gen enpresyon soti, epi nou pa ap ale nan mete ou sou tèren an, espesyalman sou kamera a, menm si Pa gen yonn nan ou se sou kamera kounye a. Se konsa, sa yo se nòm yo m 'genyen. Yon lòt bagay sou liy yo nan satisfè nan mitan yo. Mwen pral ba ou mesye yon anpil nan fidbak. Tanpri, ban m 'fidbak kòm byen. Genyen yon sit entènèt, sayat.me/cs50. Se konsa, li nan yon fidbak onèt. Si ou vle bay li pandan seksyon, Mwen jwenn yon imèl chak fwa li k ap pase. Nou pral pran yon ti repo nan yon ti jan, se konsa mwen pral gade nan fidbak la lè sa a. Si ou tout tan tout tan gen nenpòt fidbak, tanpri bay li nan m 'la. Si ou ban m 'fidbak sou K a, sa a, se bèl bagay, men sa a gid-la sa w'ap fè nan fen an. Men, sa ap fèt nan fen semès la se konsa Mwen pa yo pral kapab pran nenpòt nan ki fidbak ak vire l 'nan anseye ou nèg pi byen. Se konsa, tanpri, si ou gen nenpòt fidbak, bay yo ban mwen. Mwen renmen fidbak. Retounen nan dandi, nou jwenn fidbak tout tan tout tan an. Ou ka ban m 'pluses, bagay sa yo bon, delta, bagay mwen kapab amelyore sou li. Ou ka fè kòmantè sou ekip mwen. Sa pa pral tankou itil, men w ap Byenveni nan fè kòmantè sou nenpòt ak tout bagay. Tanpri, tanpri, ban m 'fidbak. Mwen valè li yon anpil epi li vle di yon anpil m '. Youn nan pi plis dwòl, plezi. Nou pral gen yon anpil amizan. Èspere ke nan kou sa a, ou pral gen yon anpil amizan. Nou pral gen sirèt nan seksyon. Nou pral gen mizik. Nou pral èspere ke vin konnen yon sèl yon lòt yon ti jan byen, se konsa mwen vle sa a yo dwe yon plezi, angaje eksperyans. Mwen konnen anpil nan nou te tonbe nan dòmi nan konferans yo ou te gen pi bonè jodi a, se konsa èspere ke ke sa pa pral ka a kounye a. Men, si li se ka a kounye a, jis pa ronfle paske ki ta ka dwe kenbe sou kamera. Dous. Nenpòt kesyon, kòmantè, oswa enkyetid anvan mwen deplase nan sou anyen nou te te pale osijè de? Great. Se konsa, nou ap ale nan ale nan ranje an premye. Sa a se ki jan ou fè yon etalaj. Nou te wè sa a anvan. Ou gen yon kalite done, ou gen yon Non, ak Lè sa a, ou gen yon gwosè. Dwa isit la, mwen kreye de ranje. Yon sèl an premye se yon etalaj de karaktè, epi li gen 26 espas. Yon sèl la se dezyèm yon etalaj de nòt, epi li gen twa espas pou twa nonm antye. Wi? ELÈV: Èske tout moun sa yo glisad disponib yon kote pou nou? JASON HIRSCHHORN: Gwo kesyon. Kesyon an te, yo tout nan sa yo glisad ki disponib? Wi. Tout moun sa yo glisad yo ap disponib, ak nan fiti a, mwen pral voye yon imèl ba yo nan ou anvan seksyon. Men, jodi a, paske sa a se premye a semèn, nou te gen yon kòmanse an reta. Se konsa, anjeneral, ou pral jwenn sa yo glisad, men yo ap disponib sou entènèt ak Mwen pral voye yon imèl ba yo nan ou dwa apre klas la. Nenpòt lòt kesyon? Se konsa, ankò, ranje yo nan bwat, nan pou mank de yon mo pi bon, ki kenbe miltip eleman nan yon kalite done, e yo ap pwochen youn ak lòt nan memwa. Se konsa, ankò, sa a se ki jan ou kapab fè de kalite ranje. Se konsa, apre ou te fè etalaj ou a ak ki liy premye - nòt Int, bracket twa, fèmen bracket - ou vle inisyalize li. Ou vle mete kèk valè an la. Lè sa a se ki jan ou mete kèk valè nan la, jis chwazi endis a ak ekri nimewo a. Se pou yo trase sa a sou tablo a. Èske tout moun wè? Tout moun ka wè. Dous. Se konsa, ki k ap pase yo dwe m ' etalaj rele Nòt. Kòm ou ka wè, li nan gwosè twa. Gen twa bwat an la. Chak yon sèl ka anfòm sa ki di ki kalite kalite done? ELÈV: antye relatif. JASON HIRSCHHORN: Yon nonb antye ki pè nan yon sèl sa a. Nou te ekri nòt Int, ak pawòl Bondye a premye se ki kalite done ki nan ale nan ale nan kazye yo bay nan ki etalaj. Se konsa, mwen ka anfòm twa. Poukisa mwen gen zewo moute gen sou tablo a? Poukisa pou l 'di zewo nòt egal 1? Fè m 'nan non ou. ELÈV: Kurt. JASON HIRSCHHORN: Kurt. ELÈV: Wi. JASON HIRSCHHORN: Poukisa? ELÈV: Paske endèks la premye se zewo, nou kòmanse konte nan zewo. JASON HIRSCHHORN: Se konsa, nou kòmanse konte a zewo. Se egzakteman dwat. Sa a se pati nan konfizyon ak vwayaj volonte ou leve, espesyalman lè w ap ap eseye repekte nan ranje, ki nou pral fè nan yon ti jan. Nou kòmanse konte nan zewo. Se konsa, si mwen vle, al gade nan premye a bwat postal, li pa bwat youn. Malerezman, li nan zewo bwat. Yon sèl la se dezyèm bwat yon sèl, ak nan sa a ka, youn nan twazyèm se bwat de. Ki sa ki sou bwat twa? Kote bwat twa? Oswa si mwen vle fè nòt, bracket twa, bracket fèmen, sa ki nan sa? Se konsa, ou te di pèsonaj la nil. Nenpòt panse lòt yo? Ki sa ki se bracket nòt twa bracket? ELÈV: Li pa reyèlman egziste paske ou sèlman defini kòm nòt, bracket twa. JASON HIRSCHHORN: Se ou ki di li pa reyèlman egziste. Nan kèk ka, lè nou ap fè fas ak strings, jeneralman nou pral mete yon nil N. nan fen an. Nou pral jwenn ke nan yon dezyèm fwa. Men, nan ka sa a, gen pa gen okenn bwat twazyèm isit la. Se konsa, bwat ki sot pase a nan nenpòt etalaj se gwosè mwens 1. Se konsa, si nou gen yon etalaj de n gwosè, nan bwat premye se nan zewo, youn an pase a se nan n mwens 1. Men, nan ka sa a, li pa egziste. Gen yon bagay isit la nan memwa men se pa pou nou. Nou pa posede li. Nou pa t 'mande pou li. Se konsa, si nou eseye gen aksè a li, ki nou pral fè nan yon ti jan, nou ap pwobableman ale nan tonbe nan pwoblèm. Nan ka sa a, mwen inisyalizin mwen etalaj ak twa varyab. Nou ap mete yon yon sèl nan ti bwat zewo, yon de nan bwat yon sèl, ak yon twa nan ti bwat de. okenn moun gen nenpòt kesyon sou inisyalizin yon etalaj? Se konsa, nou janbe lòt bò larivyè sa a jis kounye a. Nòt, bracket twa, fèmen bracket, ki pa egziste. Nou ap zewo Catalogue nan syans òdinatè, Se konsa nou kòmanse konte nan zewo. Bwat an dènye disponib nan nou, li se bwat la twazyèm, men sa yo rele bwat nimewo de. Desann anba a, sa a se yon altènatif fason pou inisyalizin ranje. Se konsa, olye pou kreye etalaj la sou yon sèl liy, ranpli ti bwat la an premye, Lè sa a, bwat, dezyèm lan, Lè sa a, bwat la twazyèm, ou ka fè li tout nan yon sèl liy. Se konsa, nan liy sa a, tou de ranje. Sa kreye etalaj la menm egzak kòm ki sa nou te kreye dwa isit la, men li jis fè li nan yon sèl liy. Koulye a, nou te kreye etalaj nou an. Anjeneral yon fwa ou kreye yon etalaj, ou vle fè yon bagay ak li, si wi ou non ki nan ranpli li oswa pou w jwenn bagay sa yo soti nan li epi enprime yo soti sou ekran an. Nan ka sa a, nou pwal atravè nou nòt etalaj, ki nou initialisé sou liy nan premye moute isit la nan gri. Lè sa a, sou liy, dezyèm lan, nou kòmanse iteration nan etalaj la. okenn moun gen nenpòt kesyon sou estrikti a nan yon bouk pou? Se konsa, sa a se pou la bouk. Nou gen kondisyon inisyal nou an, ak Lè sa a, kondisyon final nou an, epi lè sa a nou répétèr, mwen, chak bouk. Ak nan aparèy òtopedik yo Curly nan sa a pou bouk, sa k ap pase si m 'te nan kouri pwogram sa a? Èske okenn moun di m 'sa nou ta jwenn? [? Matu? ?] MATU lèt enprimri: Ekri tout nòt yo sou chak liy. Li ta ekri ak lèt ​​detache chak nòt sou yon liy apa. JASON HIRSCHHORN: Ki sa egzakteman li ta ekri ak lèt ​​detache? ELÈV: Li ta ekri ak lèt ​​detache yon sèl, Lè sa a, de, Lè sa a twa. JASON HIRSCHHORN: Egzakteman. Li ta ekri ak lèt ​​detache yon sèl, Lè sa a, de, Lè sa a, twa, chak sou liy ki apa a, paske nou ap ale atravè tout etalaj la epi ou ap wè ke dezyèm lan, printf la deklarasyon, nòt mwen. Se konsa, sou premye tou an nan nou an pou bouk, mwen egal zewo, ki vle di nou ap ap resevwa valè a nan nòt zewo - ki, si nou tounen nan Dyagram nou an, se youn - ak ranpli nan - oh, li di c. Sa yo ta dwe d%. Mwen pral ranje ki nan yon ti jan lè Mwen men ki soti vin jwenn nou mesye. Men, nou ap prezante yon nonb antye relatif se konsa li yo ta dwe d% dwa isit la, pa c%. Ki sa ki se c% pou? ELÈV: karaktè. JASON HIRSCHHORN: karaktè, egzakteman. Ki sa ki se youn nan lòt? Si ou pa vle fè d% pou yon nonb antye ki pè, ki lòt bagay ou ka fè? ELÈV: mwen. JASON HIRSCHHORN:% mwen, egzakteman. Se konsa, nenpòt kesyon sou iteration nan etalaj la? Se konsa, sa k ap pase si nou fè sa? Olye pou yo fè mwen se mwens pase twa, nou mwen ki pi piti a pase oswa egal a twa. Kisa k ap pase lè nou kouri sa a Kòd? Wi, Annie? ELÈV: Yo ap ale nan enprime soti etranj bagay sou liy nan katriyèm. JASON HIRSCHHORN: Se konsa, ou te di, se li ale nan enprime soti etranj bagay sou la katriyèm liy? okenn moun gen yon repons nan kesyon li? Se konsa, chans yo se ke lè nou jwenn yo a - sou sa wonn nan katriyèm nan pou nou bouk, jis tankou ou te panse, Annie, li pral nòt, twa bracket ki nou te deja kalkile fè sa ki pa egziste, e nou pral eseye ak jwenn aksè nan sa, enprime li soti, sèvi ak li kèk fason. Se konsa, òdinatè a ap pwobableman vin anraje nan nou. Ou se egzakteman dwa. Li ta ka kite pwogram nan tout ansanm. Li ta ka enprime soti yon bagay reyèlman etranj. Ou pa ka di pou asire w. Chans yo se li ap pwobableman vin anraje nan ou ak jis kite touswit. Men, sa a se yon erè komen ou pral gen kote w ap jis sou pa youn nan fen a, ak sa a se yon ensèk ki pral move maladi ou pandan tout kodaj ou. Youn nan fason mwen renmen fè se jis sou yon witbord, ale nan chak iteration nan bouk la sou bò oswa sou papye yo wè sa kap pase, ak Lè sa a, ou jeneralman reyalize, o rete tann, mwen pa ta dwe te ale mwens pase oswa egal a twa. Mwen ta dwe gen sispann nan de, ki se sa k ap pase si eta sante ou ki pi piti a pase twa. Nenpòt kesyon byen lwen tèlman? Dous. Se konsa, ou tout gen òdinatè ou louvri. Nou pral ba ou de a twa minit yo ekri yon pwogram ki kreye yon etalaj ak nonm antye yo yon sèl jiska senk an ak Lè sa a simagri soti chak nonb antye ki pè sou yon liy nouvo. Men, si ou gen nenpòt kesyon, leve men ou. Mwen kontan yo vini pa. Tankou mwen te di, kite a pran twa minit yo ekri sa a. Èske tout moun OK si mwen ale nan yon nouvo fenèt epi fèmen sa a? Mwen regrèt si ou pa gen te gen yon chans fini, men nou pwal fè li ansanm kounye a. Se konsa, moute sou ekran an, mwen te # enkli cs50.h, # genyen ladan stdio.h. Èske yon moun di m 'sa liy sa yo de fè? Michael? ELÈV: Yo genyen ladan yo bibliyotèk yo ki CS50 te fè ak ki Steve gen sove pou ou pou itilize pou fè lavi ou pi fasil. JASON HIRSCHHORN: Se konsa, ou te di ke yo gen ladan bibliyotèk yo, youn ki CS50 fè a, cs50.h, ak youn ki se jis estanda, vini ak C pake a, stdio.h. Ki sa ou vle di gen ladan bibliyotèk yo, menm si? Èske ou ka gen yon ti jan pi plis espesifik yo? ELÈV: Li fè li pou ke ou kapab sèvi ak mo Kòd sèten yo gen yon fonksyone rive san yo pa gen ale epi fè c la fonksyon tèt ou. JASON HIRSCHHORN: Èske ou ka ban m 'yon egzanp? ELÈV: Tankou printf se youn ou ka itilize. JASON HIRSCHHORN: printf. Se konsa, ou te di printf se youn nan moun fonksyon kote olye ke gen ekri printf sou pwòp ou a, printf se enkli aktyèlman nan stdio.h, kidonk, ou ka jis sèvi ak li ak asime ke li pral travay. Nan stdio.h, si ou louvri moute ki ranpli, li ta gen ladan ki jan printf travay yo, tout nan kòd la pou printf? Pouki sa w ap souke tèt ou a? ELÈV: Paske header dosye a jis gen ladan deklarasyon an fonksyon. JASON HIRSCHHORN: Egzakteman dwat. Dosye a header jis gen ladan fonksyon deklarasyon an. Se konsa, fondamantalman, lè ou konpile sa a, frape Fè Count, ki nou pral fè nan yon dezyèm lan, du a konnen ke si ou itilize printf, printf egziste. Li nan ale nan dwe defini yon kote. Li pa yon pwoblèm pou ou lè l sèvi avèk li. Lè sa a, pita sou, li pral gen ladan yo a yo menm ak zewo ki aktyèlman gen aplikasyon printf a ak fizyone yo ak kòd ou a. Ki jan ou fè asire w ke li gen ladan an yo menm ak zewo pou, di, jwenn fisèl? ELÈV: Jwenn fisèl se nan cs50.h. JASON HIRSCHHORN: Dwa. Se konsa, ki di jwenn fisèl ki egziste, fonksyon deklarasyon an. Men, Lè sa a, yo menm ki ak zewo, binè la dosye ki aktyèlman gen ladan an aplikasyon nan fisèl jwenn? Ki jan ou fè asire w ke ale ak pwogram ou an? ELÈV: Pase Linkshere a nan agiman an liy lòd. JASON HIRSCHHORN: Pase Linkshere la nan agiman an liy lòd. Ki jan ou fè fè sa? ELÈV: Se L-liy lan nan sonnen nan JASON HIRSCHHORN: Egzakteman dwat. Ou di-l cs50, dwa? Sa gen ladan yo menm ki ak zewo. ELÈV: Men, Fè fè ki pou ou, dwa? JASON HIRSCHHORN: Egzakteman. Fè fè sa pou ou, men evantyèlman, ou pa pral gen Fè, oswa ou pral gen fè yon Fè sou pwòp ou a, se konsa ke se yon bon bagay yo sonje. Si ou te ale nan sèvi ak youn nan sa yo bibliyotèk lòt, se pa sèlman ou gen yo ekri # enkli ak Lè sa a, bibliyotèk la. Ou bezwen tou konekte li pous Men, bagay sa yo de yo diferan. -L cs50 se diferan pase # enkli cs50.h. Lè sa a, nou gen Int anile prensipal aparèy òtopedik Curly, epi kounye a nou ap ale nan Kòd andedan prensipal la. Liy nan premye mwen gen isit la se yon kòmantè ki di, kreye yon etalaj ak antye youn nan senk. Ki sa ki se yon bon pawòl yo dekri sa m ' gen dwa kounye a sou ekran an, jis kòmantè andedan prensipal yo? Ki sa nou rele sa? ELÈV: Pseudocode. JASON HIRSCHHORN: Pseudocode. Mèsi, Jeffrey. Sa se egzakteman dwa. Pseudocode. Èske w mesye wè pseudocode ye anvan an? Leve men ou si ou te itilize pseudocode anvan pwoblèm mete yon sèl. Apeprè mwatye nan ou. Mwen ta trè rekòmande lè l sèvi avèk pseudocode yo kraze pwoblèm nan ki pi piti, plis fasil yo mòde koupe moso. Epitou, si ou fè pseudocode a, ou gen kòmantè ou deja lajman bati nan, se konsa ou pa bezwen tounen ladan l epi eseye figi konnen ki sa ou te fè a. Se konsa, ka yon moun ban m 'liy sa a premye yo kreye yon etalaj ak antye youn jiska senk? Ou? ELÈV: Int ak Lè sa a ou ka rele tou sa nimewo, ak Lè sa a, kare bracket senk. JASON HIRSCHHORN: Se konsa, Int nimewo, kare bracket senk. ELÈV: pèr la, ak Lè sa a, aparèy òtopedik Curly. JASON HIRSCHHORN: pèr la, aparèy òtopedik Curly. ELÈV: Yon, de, twa, kat. JASON HIRSCHHORN: Youn, de, twa, kat, senk. ELÈV: Lè sa a, aparèy òtopedik Curly ak Lè sa a virgules. JASON HIRSCHHORN: Lè Curly aparèy òtopedik ak virgules. Ekselan. Ekri an lèt detache soti chak Int sou yon liy nouvo. Èske yon lòt moun bay m 'ki kòd, tanpri? [? Matu? ?] Ale pi devan. ELÈV: Pou ( JASON HIRSCHHORN: Pou ( ELÈV: Int mwen = 0 JASON HIRSCHHORN: Int mwen = 0 ELÈV: virgules mwen mwens pase senk. JASON HIRSCHHORN: virgules, mwen mwens pase 5. ELÈV: virgules, mwen + +. JASON HIRSCHHORN: virgules, mwen + +. ELÈV: parantèz fèmen, Lè sa a, louvri BRACE-ou. JASON HIRSCHHORN: parantèz Fèmen ak de aparèy òtopedik. Anndan aparèy òtopedik yo? ELÈV: Lè sa a, printf "% d / n" JASON HIRSCHHORN: Padon, kenbe sou. Printf "% d / n, fèmen quote. ELÈV: Lè sa a, quote fèmen, vigil, konte, bracket mwen. JASON HIRSCHHORN: virgul, konte, bracket mwen. ELÈV: Padon, nimewo bracket mwen. JASON HIRSCHHORN: Numbers, bracket mwen. ELÈV: M regrèt. Lè sa a, fèmen parantèz, virgules. JASON HIRSCHHORN: Fèmen parantèz, virgules. Mwen pral delivre sa. Nou pwal fè konte. Ak ki jan mwen kouri konte? ELÈV: antislach. ELÈV: Dot pou pi devan koupe - JASON HIRSCHHORN:. / Konte, egzakteman. Mèsi poutèt ou. . / Konte. Youn, de, twa, kat, senk sou liy nouvo. Sanble li te travay. Wi, Noe? ELÈV: Ou kapab tou fè mwens pase oswa egal a kat, tankou mwen se mwens pase oswa egal a kat? Èske gen nenpòt avantaj nan fè mwens pase senk, oswa jis yon fason diferan pou ekri li? JASON HIRSCHHORN: Se konsa, kesyon an se ou te ka fè mwen se mwens pase oswa egal a kat olye pou yo mwen se mwens pase senk. Èske sa yo ki te te travay menm bagay la tou? ELÈV: Li ta dwe. JASON HIRSCHHORN: Wi. Li totalman ta gen travay menm bagay la. Estilitikman, li nan jeneralman mwens pase, epi ou pral wè nan yon dezyèm lè nou strings, ou ka itilize yon bagay rele strlèn, ki ou te wè anvan, yo ka resevwa longè nan fisèl la. Men, ou pa kapab fè mwens pase oswa egal strlèn. Ou te kapab fè mwens pase oswa egal a strlèn mwens yon sèl. Se konsa, li nan jis joli fè mwens pase strlèn. Wi? ELÈV: Ak nan aktyèl la ti tès, fè nou gen bay kòmantè sou nou Kòd kòm byen? JASON HIRSCHHORN: Kesyon an te nan ti tès, èske ou oblije bay kòmantè? Se konsa, nou pral pale plis sou Quizzes lè yo vini, men jeneralman, yon bon règ nan gwo pous se nenpòt lè ou ap ekri kòd la, bay kòmantè. Si w ap resevwa kòd la a mal men kòmantè dwa, ou ta ka jwenn kèk kredi tou de nan men m 'si mwen te korije ou sou yon seri pwoblèm oswa sou yon egzamen. Se konsa, kòmantè yo toujou bon bay. Dous. Konte. Ekselan travay. Se pou yo deplase sou. Enstriman ak kòd. Enstriman ak kòd. Nou te wè sa a anvan nan konferans. Sa a kònen lide m 'lè m' premye jwenn sa a soti. Li pwobableman pa t 'soufle okenn moun nan lide isit la, men sa a OK. Enstriman ak kòd yo ranje nan karaktè, ak yo fini ak, menm jan ou te di anvan, nil Terminator a, ki se sa a karaktè / 0. Si nou ap ale nan trase yon fil sou la Komisyon Konsèy la, nou pral trase li sou isit la. Se konsa, konbyen tan sa a fil? M regrèt. Konbyen tan sa a fil? ELÈV: [fèbl]. JASON HIRSCHHORN: Kat? Poukisa li kat? ELÈV: Paske plas nan senkyèm se pou pèsonaj la nil. JASON HIRSCHHORN: Se konsa, tach nan senkyèm se pou pèsonaj la nil. Se konsa, si m 'te nan kouri strlèn sou sa a, li ta ban m 'kat. Kòrèk. Men, etalaj la, menm si, si m 'te inisyalize sa a etalaj, konbyen espas ta mwen gen pou mande pou? ELÈV: Senk. JASON HIRSCHHORN: Senk. Mwen ta gen pou mande pou senk, men mwen kapab sèlman mete kat karaktè nan isit la paske mwen bezwen mete ki nil Terminator sou fen a. Se konsa, nou ap ale nan ekri nan "ohai" ak mete Terminator a nil nan nan fen an. Nou pral di sa a se fisèl s egal sa a. Ki sa ki se s bracket zewo? s bracket zewo, Annie? ELÈV: O. JASON HIRSCHHORN: O, egzakteman. s bracket youn? s bracket senk? s bracket senk? ELÈV: pa egziste. JASON HIRSCHHORN: pa egziste. Egzakteman dwat. Fre. Nenpòt kesyon sou konpreyansyon strings kòm ranje nan karaktè? OK, lè sa a. Youn nan pi plis pwogram pou ou guys. Ekri yon pwogram ki mande itilizatè a pou yon fisèl Lè sa a, simagri soti chak karaktè sou yon liy nouvo. Se konsa, kite a pran twa minit yo ekri pwogram sa a, ak Lè sa a nou pral Kòd li kòm yon gwoup. M regrèt. Eske ou te bezwen wè sa a? ELÈV: Non JASON HIRSCHHORN: OK. Ann pran yon sèl plis minit nan Kòd sa a, oswa omwen jwenn te kòmanse sou li. Se konsa, ou kapab kenbe k ap travay, men mwen pral yo kòmanse ale atravè tout li. Se konsa, tankou anvan, mwen gen sou ekran an # Genyen ladan cs50.h, # genyen ladan stdio.h. Int prensipal anile. Anndan aparèy òtopedik Curly prensipal la, mwen gen de kòmantè, pseudocode. Youn nan se mande pou yon fisèl soti nan itilizatè a. Dezyèm nan se enprime soti chak karaktè sou yon liy nouvo. Se konsa, Anna, ou ka ban m 'mande pou yon fisèl soti nan itilizatè a? ELÈV: printf. JASON HIRSCHHORN: printf? ELÈV: Wi. ( JASON HIRSCHHORN: ( ELÈV: ", ban m 'yon kòd. JASON HIRSCHHORN: "bay m 'yon str - Oops - fisèl. ELÈV: / n ") virgules. JASON HIRSCHHORN: Fini fisèl la, parantèz fèmen, virgules. ELÈV: Wi. Lè sa a, pwochen liy, fisèl s = jwenn fisèl. JASON HIRSCHHORN: fisèl s = jwenn fisèl. ELÈV: Wi. Lè sa a, () JASON HIRSCHHORN: () ELÈV: virgules. JASON HIRSCHHORN: virgules. Kokenn. Se konsa, mwen pral jwenn yon fisèl ak Mwen pral delivre l 'nan ki sa? Ki sa ki nan varyab la rele ke ou kreye? ELÈV: s fisèl. JASON HIRSCHHORN: varyab la rele s. Li nan fisèl kalite. Egzakteman. Bagay Next nou vle se enprime soti chak karaktè sou yon liy nouvo. Ki moun ki ka ban m 'ki Kòd? [Fèbl]? Èske ou ka bay li m 'konsa? ELÈV: Asire w. JASON HIRSCHHORN: Se pou yo fè li. Men, regrèt. Mwen pa renmen repete sa ou di paske w ap jwenn li dwa, men mwen gen repete li pou ke lè yo transkripsyon sa a, yo ka jwenn tout tèks soti nan sou transcriptions la. Se konsa, ou ka jis kenbe pale. Malerezman, mwen gen yo di ke li sou ou. Mwen regrèt, men - ELÈV: Sa se amann. Pou Int mwen 0 = JASON HIRSCHHORN: Pou Int mwen 0 = ELÈV: Mwen mwens pase - JASON HIRSCHHORN: virgules. ELÈV: Anvan sa a, nou ka mete yon varyab pou ou jwenn Int longè Non? JASON HIRSCHHORN: O, ou pa fè sa vle mete virgules a? OK. Se konsa, sa ou vle fè apre yo fin zewo? ELÈV: Mwen vle jwenn nan longè fil nan s ak mete ki nan yon varyab? JASON HIRSCHHORN: OK, Se konsa, kouman mwen fè sa? ELÈV: Se konsa, ou fè Int longè = JASON HIRSCHHORN: Int longè = ELÈV: S-T-R-L-E-N. JASON HIRSCHHORN: S-T-R-L-E-N - ELÈV: nan s. Parantèz. JASON HIRSCHHORN: (yo). ELÈV: Lè sa a, Mwen panse ke ou gen mete yon virgules ant de antye yo. JASON HIRSCHHORN: A virgules apre zewo? ELÈV: Yeah. Lè sa a, mete yon virgules apre sa, ak ou di, mwen pi piti pase longè. mwen mwens pase longè, ki se varyab la. ELÈV: Lè sa a, virgules. JASON HIRSCHHORN: virgules. ELÈV: mwen + +. JASON HIRSCHHORN: mwen + +. Genyen bouk pou nou an. OK, andedan an pou bouk. ELÈV: Lè sa a, fè printf. JASON HIRSCHHORN: printf. ELÈV: parantèz. JASON HIRSCHHORN: parantèz yo, quotes. ELÈV: parantèz yo, quotes,% c / n. JASON HIRSCHHORN: c%, OK. ELÈV: / n. JASON HIRSCHHORN: / n. ELÈV: quotes fèmen. JASON HIRSCHHORN: quotes fèmen. ELÈV: virgul. JASON HIRSCHHORN: virgul. ELÈV: S. JASON HIRSCHHORN: S. ELÈV: Sipò mwen. JASON HIRSCHHORN: Sipò mwen. ELÈV: Lè sa a, fèmen parantèz. JASON HIRSCHHORN: parantèz fèmen. ELÈV: Lè sa a, virgules. JASON HIRSCHHORN: virgules. Kokenn. Se konsa, kite a sove sa a. Fè eple. Oh ti gason. Mwen te gen yon koup la erè. Premye erè sou liy 11, li di, espere ekspresyon, ak li a bay m 'yon erè ki dezyèm lan Int, gen nan erè a. Gen kèk erè alantou la. okenn moun konnen ki sa erè ki se? Kurt? ELÈV: Mwen panse ke li la sipoze gen yon vigil epi yo pa yon virgules. JASON HIRSCHHORN: OK, yon vigil olye de yon virgules. Se konsa, se ke tout sa nou bezwen ranje? ELÈV: Non JASON HIRSCHHORN: Ki lòt bagay nou bezwen ranje? ELÈV: Nou gen genyen ladan yo string.h. JASON HIRSCHHORN: Enkli string.h. Ki kote pou mwen bezwen gen ladan sa? ELÈV: Menm kote w ap gen ladan bagay la lòt, dwa apre yo fin gen ladan stdio.h. JASON HIRSCHHORN: Ann wè si sa a kouri premye paske jeneralman, mwen renmen ranje yon sèl bagay an premye, ak Lè sa a kouri li, ak Lè sa a wè erè yo ki nou jwenn. Se konsa, nou ap ale nan klè tèminal nan ak kontwòl n, se pou yo fè période. Se konsa, yon lòt erè sou liy 11. Espere virgules. Ak mwen se toujou ap resevwa erè sou liy sa a. Se konsa, li pa ban m 'yon erè li di li pa konprann sa strlèn se, men li an, ap ban m 'erè sa a sou liy, se konsa ki lòt bagay ki mal? Make? Marcus. ELÈV: ou genyen yo retire dezyèm deklarasyon an Int? JASON HIRSCHHORN: Retire Int, dezyèm lan. Ann eseye sa a. Koulye a, klè tèminal la. Fè eple. Erè. Chal deklare bibliyotèk fonksyon strlèn. Se konsa, kounye a nou wè ke erè. Ki sa ki nou bezwen gen ladan l? ELÈV: String.h. JASON HIRSCHHORN: Enkli string.h, nou pral # enkli string.h nan tèt la nan ekran an. Se pou yo sove, fè eple. Koulye a, konpile. Se konsa, ankò, bagay sa yo nou bezwen sonje liy 12 nan bouk pou nou lè nou ap mete l 'kanpe, Int mwen = 0, longè = strlèn (yo). Sa a se yon estrateji kokenn. Style la nan sa a se gwo, nan konsepsyon de sa a se gwo. Nou ka ale nan rezon sa yo pita, men fason sa a ou sèlman bezwen rele strlèn yon fwa olye pou yo chak yon sèl tan ou kouri nan bouk la. Sepandan, ou bezwen sèvi ak yon vigil gen ak ou pa bezwen Int ankò. Si w ap deklare tou de moun ki varyab ansanm, ou pa bezwen Int ankò. Lè sa a, si w ap ale nan sèvi ak strlèn, ki se yon lòt bibliyotèk pa fonksyone enkli nan stdio.h oswa cs50.h, fè w ke ou gen ladan yo string.h. Kurt? ELÈV: Se konsa, Lè sa a, si ou pa bezwen di sa ki longè di ki kalite se, èske sa vle di li gen yo dwe genyen yon Int? Ou pa t 'kapab gen de diferan kalite a? JASON HIRSCHHORN: Se konsa, ou te kapab gen de kalite diferan. Longè se yon Int isit la, menm si. Longè se yon Int paske li nan vigil ak Lè sa a menm bagay la. ELÈV: Se konsa, li sipoze ke li pral yo dwe menm bagay la tou kòm youn nan premye? JASON HIRSCHHORN: Egzakteman. Nou pa pwal fè sa kounye a, men ou yo ka enkli de varyab sou la menm liy lè l sèvi avèk yon sèl done kalite. Se konsa, Int x, y ta kreye de varyab. Se konsa, Int x, y, si nou fè sa, li bay m 'yon rès x varyab ak y paske nou pa itilize yo. Se konsa, mete anile anvan se jis yon anpenpan Trick si w pa itilize yon bagay, yo sèvi ak li. Men, jan ou wè, mwen kreye x ak y sou liy lan menm ak yon vigil. Li nan kreye de nomb antye dwa gen. Se konsa, repons lan se wi, totalman posib yo kreye de bagay sa yo sou liy lan menm ki separe pa yon vigil. Se pou yo debarase m de sa yo, menm si. Se konsa, gen nan eple. Mèsi poutèt ou nèg pou kodaj li pou nou. Se pou yo fè l 'yon lòt fwa ankò, kouri li. Ban m 'yon kòd. [Fèbl], ou te fè pi fò nan li. Ki sa ki nan fisèl la? ELÈV: Hello. JASON HIRSCHHORN: Hello. H-E-L-L-O, chak karaktè sou yon sèl liy. Sanble gwo. Se pou yo kouri l 'ankò. Toujou ale nan tcheke pou ka kwen. Ki sa ki nan yon ka kwen bon yo tcheke? ELÈV: Yon nimewo? JASON HIRSCHHORN: Yon nimewo. Se konsa, mwen pral mete yo nan 1, epi li simagri soti 1. Li pa nan mande pou lèt, se konsa li sanble tankou travay chif yo. Bon kwen ka yo tcheke. Ki sa ki nan yon lòt kwen bon ka yo tcheke? ELÈV: Yon fil vid. JASON HIRSCHHORN: Hm? ELÈV: Tankou yon fisèl vid. JASON HIRSCHHORN: Vide fisèl. Se konsa, kite a pa mete nan anyen. Ak sa ki vin enprime soti? ELÈV: Pa gen anyen. JASON HIRSCHHORN: Pa gen anyen. Sanble tankou li fonksyone. Ou te kapab eseye plis ka kwen, men jeneralman nimewo, yon done diferan se gwo eseye, osi byen se pa gen anyen. Pa gen anyen, zewo, negatif yo toujou anpil bèl bagay eseye ak bagay ou ta dwe tès la, bagay sa yo sètènman nou pral teste pou ak Tcheke 50 pral teste pou li a. Nenpòt kesyon sou spell.c? OK, se pou yo tèt tounen. Mwen gen yon sèl plis pwogram pou ou nèg ekri. Li rele students.c. Sa a se yon pwogram ki mande itilizatè a pou senk non, Lè sa a, owaza chwazi ak simagri soti youn nan non yo. Pwogram sa a se yon ti jan ti kras pi plis patisipe pase de ki sot pase a nou te ekri, konsa poukisa pa nou pran senk minit nan Kòd li endividyèlman, ak Lè sa a nou pral Kòd li kòm yon gwoup. Pwogram sa a tou enplike kèk bagay ou ka pa te wè anvan, Se konsa, si ou gen yon kesyon sou, ki jan fè Mwen fè sa, leve men ou. Mwen pral vini sou yo ak pwen ou nan bon direksyon an. Men, nou ap tou fè l paske sa a pral gen yon bon fason yo prezante kèk sijè ki difisil. Se konsa, li ap travay, dwa? ELÈV: Yeah. JASON HIRSCHHORN: Chak fwa ou vire nan yon seri pwoblèm, gen nan plizyè fason yo fè li, men li gen kèk ki plis elegant pase lòt moun. Se pou nou plonje pous # Genyen ladan cs50.h. # Genyen ladan stdio.h. Int anile prensipal yo, aparèy òtopedik Curly. Anndan aparèy òtopedik yo Curly, Mwen gen de kòmantè. Premye a se, mande a itilizatè pou senk non. Yon sèl la se dezyèm, owaza chwazi epi enprime soti yon sèl nan non yo. Se konsa, kite a fè yon sèl la an premye, mande itilizatè a pou senk non. Ki moun ki te mande itilizatè a pou senk non epi yo ka di m 'ki jan fè sa? Se sèlman de moun ki te fè pati a an premye. Twa moun te fè pati a an premye. Kat, senk. Tom, ki jan ou fè li? ELÈV: Ou ta deklare yon fisèl ak Lè sa a Non, bracket senk. JASON HIRSCHHORN: fisèl non bracket senk. Se konsa, sa se liy sa a ap fè, fisèl Non bracket senk? ELÈV: Ou ta deklare yon etalaj de strings. JASON HIRSCHHORN: Sa a se yon etalaj de strings. Konbyen strings yo pral nan anfòm nan isit la? ELÈV: Senk. JASON HIRSCHHORN: Senk. Ekselan. Nou pral rele li non paske nou pral jwenn moun miltip. OK, kap vini yo? ELÈV: Lè sa a, ou gen yon pou bouk - JASON HIRSCHHORN: Pou bouk. ELÈV: - pou mwen 0 =. JASON HIRSCHHORN: Pou (Int mwen 0 =. ELÈV: virgules. JASON HIRSCHHORN: virgules. ELÈV: Mwen mwens pase senk. JASON HIRSCHHORN: Mwen mwens pase senk. ELÈV: virgules. JASON HIRSCHHORN: virgules. ELÈV: mwen + +. JASON HIRSCHHORN: mwen + +. ELÈV: Lè sa a, fèmen parantèz. JASON HIRSCHHORN: parantèz fèmen, ak Lè sa a kèk aparèy òtopedik Curly. Anndan aparèy òtopedik yo Curly? ELÈV: Lè sa a, printf. JASON HIRSCHHORN: printf. ELÈV: parantèz Open, d% Non. JASON HIRSCHHORN: Padon? ELÈV: Non. JASON HIRSCHHORN: Non. ELÈV: Lè sa a, espas, ak Lè sa a, d%. JASON HIRSCHHORN: Non, espas,% d. ELÈV: Lè sa a, / n, ak Lè sa a fèmen. JASON HIRSCHHORN: Se konsa, Non, espas, % D / n, parantèz fèmen. ELÈV: virgul, mwen + 1. Mwen regrèt. Fèmen quote, ak Lè sa a, vigil, mwen +1. JASON HIRSCHHORN: Fèmen quote, vigil, mwen +1. ELÈV: Wi. Lè sa a, liy kap vini an - JASON HIRSCHHORN: mwen + 1. ELÈV: Wi. Lè sa a, glise nan pwochen se non mwen bracket. JASON HIRSCHHORN: Next liy se non mwen bracket. ELÈV: = jwenn fisèl. JASON HIRSCHHORN: = Jwenn - kapital G-E-T - fisèl. Wouch, regrèt. ELÈV: Open, parantèz fèmen ak Lè sa a - JASON HIRSCHHORN: Open, fèmen paren. ELÈV: virgules. JASON HIRSCHHORN: virgules. OK, kidonk, ou inisyalize etalaj la nan strings, non, ak Lè sa a, ale nan yon pou bouk, ak senk fwa enprime soti kèk rapid itilizatè a ak Lè sa a magazen senk strings. okenn moun gen nenpòt ajisteman sa a? Tom, mwen panse ke tout moun dakò avèk ou. Recherche trè bon. OK. Poukisa ou fè mwen +1, menm si? ELÈV: Mwen vle di, pa gen yo dwe, men mwen +1 se konsa ke li nan Non yon sèl nan non senk. Sinon, li ta Non zewo nan non kat. JASON HIRSCHHORN: Se konsa, ou te fè mwen +1 paske otreman li ta gen enprime soti zewo nan kat paske sa a, se ki jan òdinatè panse, men moun pa vrèman li tankou sa. Sa se yon lòt bagay ou pral rankontre. Pafwa lè ou enprime soti yon bagay itilizatè a, ou pral vle fè l 'yon ti kras ti jan bèl pase, epi fè mwen +1 nan ka sa a se yon fason fè li bèl pase. Mwen menm mwen te wè senk de fwa, Non fisèl se senk, mwen se mwens pase senk. Mwen konnen ki kote ou te resevwa senk an. Ou te resevwa li nan men m 'di ou senk non. Men, si nou te vle fè kòd la yon ti kras ti jan pi plis gaya, se yon sèl bagay nou te kapab se soti isit la, andeyò Int, nou te ka fè yon bagay tankou sa a, # Defini, epi nou ta ka fè NON 5. Se konsa, fondamantalman, tout kote m 'ekri kapital N, kapital A, kapital M, kapital E, kapital S, ki fisèl, li pral ranplase ke ak 5 nan Kòd la. Oswa kite yo jis rele li - nou pral jis rele li NIMEWO. Se konsa, mwen defini tout bouchon NIMEWO yo dwe 5. Se konsa, koulye kote mwen gen nimewo a 5, mwen ka ranplase li ak tout NIMEWO bouchon. Epi, koulye a, si mwen vle chanje nimewo a nan non yo, tout mwen bezwen fè se liy sa a yon sèl, liy kat, kote mwen gen # Defini nimewo 5, chanje sa a 10, oswa chanje sa a 4. Lè Kòd ou a ap vin pi long, ou pa ale nan sonje tout kote ou mete konbyen non ou te vle, ak nan lòd pou ou pa manke yon, sa a se yon bon fason yo fè l ', jwenn yon bagay moute tèt ak Lè sa a, jis itilize ke fraz toupatou nan tout Kòd ou. Marcus? ELÈV: Eske se sa ke estilitikman pi pito pase globalman defini yon n konstan? JASON HIRSCHHORN: Se konsa, se ke estilitikman pi pito pase globalman defini yon n konstan? Se konsa, ou ap di ou te kapab fè sa, Int nimewo = 5? ELÈV: yo gen konsòn nan C oswa ki pa gen? JASON HIRSCHHORN: Oswa CONST - nan egal-ego. Se konsa, ou ap di jis yon varyab mondyal yo? ELÈV: Yeah. JASON HIRSCHHORN: Se konsa, estilitikman, gen nan pa gen nesesèman yon sèl dwa reponn, men tou de nan sa yo se pi bon pase jis voye sa yo o aza nimewo nan tout Kòd ou. Nou rele yo nimewo majik. Lè m 'gade nan Kòd ou a oswa lè okenn moun nan lekti atravè sa, yo pa vle jis nimewo sa yo o aza ki pa fè sans. Menm nimewo a 26, ki jeneralman se ki kantite lèt nan alfabè a, li pi bon yo defini ALPHABET moute tèt epi sove nimewo a 26 nan ki fil, si sa fè sans. Oswa sou pwoblèm mete yonn, olye ke - ankò, nou pa t 'pale sou sa a nan tan an, men olye pou yo jis voye nan yon 25 toupatou oswa yon 10, ou kapab sove nimewo a 25 kòm QUARTER oswa 10 kòm Pyès dis santim ameriken, ak ki fè li pi fasil pou Nenpòt moun ki nan lekti atravè Kòd ou a konprann pou ki sa ou te chwazi ladan nimewo. Epi tou pou ou, si ou tout tan tout tan vle mizajou nan Kòd ou a, li fè li yon ti jan plis gaya. Yeah? ELÈV: Èske sa a Kòd tou pral yo dwe disponib pou nou apre? JASON HIRSCHHORN: Tout moun sa yo kòd ke nou te ekri nan Liv la ansanm yo yo pral kouriyèl ou mesye ak disponib. Wi. Se konsa, mande itilizatè a pou senk non. Aza chwazi epi enprime youn nan non yo. Ki moun ki te fè liy sa a? Sa a se liy lan trickiest isit la. Padon, Tom. Ou te fè yon travay reyèlman bon, men sa a se yon ti jan Delice. Marcus, ale pi devan. ELÈV: Bon an premye, w ap ale nan bezwen gen ladan stdlib.h ak time.h. JASON HIRSCHHORN: Se konsa, ou ap di nan tèt la, gen ladan yo de plis bibliyotèk yo. Ou ta vle m 'gen ladan S-T-D-L-I-B dot H, Creole Bibliyotèk, e ki sa se te youn lòt yo? ELÈV: Time.h. JASON HIRSCHHORN: # enkli time.h. Se konsa, sa yo, se de plis bibliyotèk yo. Mwen sipoze kounye a nou ap ale nan dwe lè l sèvi avèk fonksyon ki genyen nan yo nan sa yo de, ki se poukisa ou te bezwen genyen ladan yo yo? ELÈV: Se konsa, lè sa a, premye w ap ale nan vle ekri srand. JASON HIRSCHHORN: Srand. ELÈV: (tan (0) JASON HIRSCHHORN: M regrèt. Srand (tan ( ELÈV: 0. JASON HIRSCHHORN: 0. ELÈV:)), virgules. JASON HIRSCHHORN: Yon lòt paren fèmen? Virgules. Mwen pral jis ranplase zewo ou a ak nil. Li pral fè sou menm bagay la, men jeneralman, ou ap wè nil, ki nou pral pale sou sa a liy nan yon dezyèm fwa. ELÈV: estilitikman pi byen? JASON HIRSCHHORN: Anjeneral, moun dwa nil, men bagay menm. ELÈV: Lè sa a, Non Int. JASON HIRSCHHORN: Int Non. ELÈV: = JASON HIRSCHHORN: = ELÈV: Rand. JASON HIRSCHHORN: Rand. ELÈV: () JASON HIRSCHHORN: () ELÈV: modulo nimewo. JASON HIRSCHHORN: Ki sa ki nan modulo? N. a? Karaktè pousan? ELÈV: karaktè pousan. Modulo NIMEWO ke ou defini moute tèt. JASON HIRSCHHORN: modulo NIMEWO. ELÈV: Lè sa a, virgules. JASON HIRSCHHORN: virgules. ELÈV: Lè sa a, nouvo liy, printf. JASON HIRSCHHORN: printf. ELÈV: ( JASON HIRSCHHORN: ( ELÈV: " JASON HIRSCHHORN: " ELÈV:% s / n JASON HIRSCHHORN:% s / n ELÈV: " JASON HIRSCHHORN:% s / n " ELÈV: virgul, non espas. JASON HIRSCHHORN: Espas - ELÈV: Oh, mwen devine, ki sa ki t 'nou rele li isit la? JASON HIRSCHHORN: Nou rele l 'non. ELÈV: Open bracket, non. JASON HIRSCHHORN: Open bracket, non. ELÈV: Fèmen bracket. JASON HIRSCHHORN: Fèmen bracket. ELÈV:) JASON HIRSCHHORN:) ELÈV: virgules. JASON HIRSCHHORN: virgules. OK, se pou yo sove. Se pou yo fè sa-a kòd. Elèv yo. Se pou yo kouri sa a kòd. Elèv yo. Pa. / Elèv yo. . / Elèv yo. Non yon sèl. Nou pral di David la. Non de, RJ. Non twa, Rob. Non kat, Lucas. Non senk, pitit Jozèf yo. Lè sa a, li simagri soti Jozèf ankò. Se konsa, kite m 'kouri sa a ankò. Kite m 'fè non yo menm. David la, RJ, Rob, Lucas, pitit Jozèf yo. Epi li te ban m 'David tan sa a. Se konsa, mwen fè menm bagay la, men li te bay m 'yon bagay diferan, ak sa a, se paske, nan kou, nou ap mande pou yon Non o aza. Se konsa, mwen panse ke, ki baze koupe nan m 'pèdi toutotou sal la, ki pi fò moun pwobableman te resevwa dwa pou pati an premye, mete kanpe ki etalaj ak Lè sa a ap resevwa tout non yo. Mwen ap pale de liy 10 a 16. Men, liy 18 a 21 yo se pwobableman kèk bagay ou pa te wè anvan, Se konsa y'a nan ale nan sa yo. Liy sa a, srand tan nil se esansyèlman - regrèt, se pou yo sote desann yon liy, Rand (). Sa ba ou yon nimewo o aza, yon nonb antye ki pè o aza. Men, si ou frape rand moun, ki yon anpil nan ou te fè - M-A-N espas R-A-N-D - nan tèminal nan tankou sa a, M-A-N espas R-A-N-D, frape antre. Ou ta vini nan manyèl la ak ta kapab li sa rand la rezilta lòd NUM pseudo bytes o aza apre ansmans kantite o aza dèlko yon fwa. Se konsa, sa a, se yon deskripsyon. Se pou sa ke rand fè yo, li bay ou yon nimewo o aza lè ou rele ke fonksyon. Malerezman, li pa vrèman o aza paske si ou jis rele o aza san yo pa resevwa li kèk pitit pitit, gen kèk kòmanse pwen, li pral toujou chwazi yon sèl la menm ak li itilize yon fòmil detèmine youn nan pwochen. Se konsa, si ou rele rand, li pral jis ba ou menm bagay la. Li pral trè previzib. Li aktyèlman pa yo pral o aza. Se konsa, sa nou bezwen fè, pou chak nan Marcus enstriksyon m ', yo te rand pitit pitit ak yon lòt bagay, ki se sa ki fonksyon an srand fè. Li grenn rand ak yon bagay yon ti jan pi plis o aza pase menm bagay la, ak li te ansmans l 'ak nil tan, ki se, jis pa konvansyon, aktyèl la tan an segonn. Se konsa, w ap an konsideran ke tout moun pa pral kouri kòd la nan egzak la dezyèm menm, se konsa li yon parye san danje ki nil tan a pwal diferan chak fwa sa a se Kòd kouri. Safe parye ke konsa, srand pral rand pitit pitit ak yon bagay diferan chak yon sèl tan. Se konsa, pa konvansyon, lè nou fè vle yon o aza nimewo, nou ekri liy sa a, srand tan nil, yo ba nou yon anpil plis o aza pitit pitit, ak Lè sa a nou kouri rand, ki ba nou yon nimewo o aza. Yeah? ELÈV: Èske ou ka di sa ou vle di pa pitit pitit? JASON HIRSCHHORN: Grenn tankou nan - se konsa rand ki pral chwazi kèk nimewo ak li pral sèvi ak kèk fòmil yo ka resevwa gen. Se konsa, li pral kòmanse ak yon bagay ak Lè sa a vire l 'nan yon bagay ki baze koupe nan ki fòmil. Si ou toujou ba li menm bagay la, li a toujou ale nan vire l 'nan la menm bagay. Se konsa, ki premye bagay ou bay li se pitit pitit la. Se konsa, ou vle bay li yon bagay diferan yo kòmanse soti ak, epi konsa li ap vire l 'nan yon bagay diferan. Lè sa a, finalman, liy 20, sa a se% rele nan modulo, ak ki konfizyon. Sa a yon bagay ki se yon ti jan diferan isit la ke ou pa fè sa vrèman gen nan matematik lavi reyèl. Men, esansyèlman, lè ou pran yon jeyan nimewo ak ou divize nan C, ki sa ki k ap pase nan rès la? ELÈV: li vin twonke. JASON HIRSCHHORN: li vin twonke. Se konsa, 20 divize pa 3 se ki sa? Ki sa ki ki retounen nan ou, 20 divize pa 3. Padon, 10 divize pa 3. Ki sa ki ki tounen vin jwenn nou? ELÈV: [fèbl]. JASON HIRSCHHORN: 10 divize pa 3 jis retounen 3, pa 3 rès 1. Se konsa, sa 3 10 retounen modulo se jis rès la, 1. Se konsa, si ou te vle konnen ki sa 10 divize pa 3 aktyèlman te, ou ta fè 10 divize pa 3, ou ta jwenn 3 ou a, ak Lè sa a ou ta fè 10 modulo 3, ak ou ta jwenn yon 1. Se konsa, ou ta reyalize ke 10 divize pa 3 se 3, rès 1. Lè sa a nan liy, rand ta ka nenpòt ki nonb antye ki pè, ki esansyèlman. Se konsa, modulo ap di, fann li pa nimewo, ki se nan ka sa a 5. Men, si ou tout tan tout tan divize pa yon nonb, la nonb antye ki pè toujou gen yo dwe pi piti pase ladan nimewo. Se konsa, si w ap divize pa yon nimewo 5, rès la se toujou yo pral zewo nan kat. Se jis ki jan matematik a travay soti. Se konsa, yon gwo kantite moduloed pa yon pi piti nimewo ap toujou retounen rès ak ap toujou retounen kèk nimewo sa a, se mwens pase kantite ou divize pa. okenn moun gen nenpòt kesyon sou modulo, paske li ap vini nan anpil, anpil sou la men, se konsa mwen vle asire tout moun konprann li? Fre. Men, nou te wè ke pwogram sa a te travay. OK, deplase sou. Se konsa, kap vini an, nou pwal antre nan fonksyon, epi nou ap ale nan ale nan rès la nan bagay sa a bèl byen vit, paske mwen vle pou li ale nan lòd liy agiman. Se konsa, fonksyon yo se esansyèlman, jan ou te wè, bwat nwa. Yo pran bagay sa yo nan yo rele paramèt, yo fè yon bagay yo, swa chanje yo oubyen kreye kèk efè segondè, epi finalman, yo pran krache soti yon bagay, ki se retounen valè la. Èske okenn moun, ban m 'yon rezon ki fè poukisa nou ta itilize fonksyon? Okenn moun? Yon rezon ki fè nou ta itilize fonksyon? Nenpòt moun ki? Mwen te wè ak de men. Ki sa ki nan yon bon rezon? Marcus? ELÈV: Si ou gen yo rele menm bagay la tou ti moso nan Kòd plizyè fwa. JASON HIRSCHHORN: OK, si ou bezwen yo rele moso nan menm nan Kòd plizyè fwa. Jeff, ou te gen yon rezon diferan? ELÈV: Jis pou ke ou ka Kòd mwens. JASON HIRSCHHORN: Ou ka Kòd mwens. Dwa. Si ou vle fè yon bagay yon anpil - nan kòd la anvan yo, mwen te kapab gen ekri nan Liv la jwenn fisèl senk fwa, men yon pou bouk fè li gade joli ak ou gen yo ekri mwens kòd. Fonksyon yo se yon lide menm jan an. Si m 'vle fè menm bagay la yon anpil, deplase li nan yon fonksyon epi rele ki fonksyone chak fwa. Sa pral fè sa bagay pou ou. Sa se yon rezon ki fè gwo yo sèvi ak fonksyon. Se konsa, anatomi nan yon fonksyon. Yon fonksyon pral jeneralman gade tankou sa a. Li pral kòmanse ak kalite a retounen, Lè sa a, ou pral jwenn non an. Li ap pran agiman yo, otreman li te ye kòm paramèt yo, ak andedan sa yo aparèy òtopedik Curly, ou pral ekri kòd ou a. Nou te wè yon fonksyon yon anpil. Sa a prensipal la. Isit la se prensipal supèrpoz sou ki anatomi mwen te gen pi bonè. Ki sa ki Int dwa isit la siyifi? Ki sa ki Int vle di? Lè m 'ekri Int prensipal (san valè). ELÈV: kalite Retounen? JASON HIRSCHHORN: Padon? ELÈV: kalite a retounen. JASON HIRSCHHORN: Int se la retounen kalite, egzakteman dwat. Main retounen yon Int. Ki sa ki se prensipal yo? ELÈV: Non Fonksyon. JASON HIRSCHHORN: prensipal la se nan Non fonksyon an. Egzakteman dwat. , San valè? Ki sa ki se anile andedan parantèz yo? ELÈV: Li pa pran nenpòt ki valè ekstèn. JASON HIRSCHHORN: Se konsa, anile - dwat. Anndan parantèz yo, nou mete an paramèt yo oswa agiman yo fonksyon pran, ki sa ki ale yo andedan kazye a nwa. Lè w ekri san valè, w ap di sa a pran pa gen anyen pous Anile Se konsa, Int prensipal vle di nan prensipal pa pran anyen pous Anndan aparèy òtopedik yo Curly, nou gen kèk Kòd, ak Lè sa a, nou wè nan fen retounen zewo. Ki sa ki retounen zewo vle di? Oke, nou te pale osijè de ki kalite retou. Main bezwen retounen yon Int. Sa a ki sa liy sa a fè. Li retounen yon Int, zewo. Natirèlman, nou pa te wè ke anpil paske se nan pwogram lan nou fè ak machin yo nou fè ak konpilateur yo nou itilize sèjousi, ou pa bezwen ke liy. Main se espesyal ase ke li konnen lè ou rive nan fen prensipal jis, retounen zewo si tout bagay ale byen. An reyalite, si gen yon bagay pa ale byen, prensipal pral souvan retounen yon diferan nimewo siyifye ke yon bagay ale mal ak pwogram ou an. Se konsa, jeneralman lè ou wè kòd, ou pa ekri retounen zewo, men li la bon konnen ke li k ap pase dèyè a sèn paske nenpòt lè ou ekri yon lòt kalite fonksyon, ou yo ale nan bezwen genyen ladan yo yon liy retou. Si w ap di mwen pral retounen yon Int, ou gen ekri retounen yon bagay. Si w di anile moute isit la nan la , anile nan konmansman prensipal san valè, pou egzanp, Lè sa a, li pa nan retounen anyen - anile vle di pa gen anyen - kidonk ou pa bezwen ke liy retou. Men, ou te janm ekri yon bagay ki pa anile pou di ki kalite a retounen, ou bezwen yon liy ki di retounen epi ou bezwen mete yon bagay gen ki matche ak chwa ki kalite a. Nenpòt kesyon sou sa? Dous. Dimansyon. Sa a se yon bagay nou te manyen sou yo tou. Chak varyab, kòm nou konnen, gen yon sèten sijè ki abòde, e ke sa a fondamantalman pale sou kote varyab la ka oswa pa ka referans. Apre sa, mwen renmen di sa k ap pase nan aparèy òtopedik Curly rete andedan aparèy òtopedik yo Curly. Se konsa, pou egzanp, si nou gade nan sa a Kòd, nou ap defini yon varyab mondyal deyò nan prensipal yo, Int yon, Moute bò isit nan tèt la. Nou ap rele yon lòt Int yon andedan prensipal la. Nou gen kèk aparèy òtopedik plis Curly, ak nou ap rele yon lòt yon Int. Nou gen twa yon a nan kòd. Sa yo se pa menm bagay la. Mwen te kreye twa varyab diferan. Lè sa a, andedan sa yo Curly enteryè aparèy òtopedik, mwen di yon 4 =. Ki yon se ke ap pale de, la premye yon sèl, yon sèl, dezyèm lan, oswa yon sèl nan twazyèm? ELÈV: yon sèl nan twazyèm. JASON HIRSCHHORN: Li nan ap pale sou yon an twazyèm. Tout moun nan sa yo yon la aktyèlman kapab te pale osijè de nan sa a an patikilye egzanp paske sijè ki abòde yo tout bagay ale nan sa yo aparèy òtopedik entim Curly. Sepandan, lè ou rele bagay sa yo menm bagay la tou Non, gen nan yon bagay yo rele kache. Se konsa, ou sèlman fè fas ak oswa ranje oswa itilize a ki pi resan varyab, oswa yon sèl la ki pi pre ou. Se konsa, andedan isit la, sa a se yon twazyèm pi pre ak sa yo ki liy, yon = 4, se konsa li afekte yon sèl nan twazyèm. Men, liy ki sot pase a, yon, 2 = ki yon se ki pale sou yo, dezyèm nan premye,, oswa yon twazyèm yon? ELÈV: Dezyèm. JASON HIRSCHHORN: Li nan ap pale sou yon, dezyèm lan. Natirèlman, twazyèm lan yon ki pi pre li nan Kòd la, men twazyèm lan yon pa egziste deyò sa yo aparèy òtopedik Curly. Yon fwa ou jwenn ak sa yo ki fèmen Curly atèl, se tankou li a ale, esansyèlman. Se konsa, de la sèlman ou te kite moun sa yo ki de premye, ak nan kou, kounye a li a ki pi pre nan yon sèl, dezyèm lan. Se konsa, ki se yon bon bagay sonje sou sijè ki abòde. Pou egzanp, mwen se asire w ke ou te rankontre sa a nan yon fè pandan y ap bouk. Si ou inisyalize andedan varyab pandan y ap bouk ak Lè sa a ou eseye nan gen aksè a li an deyò, pwobableman ou gen kèk avètisman tankou, sa a varyab pa egziste. Sa ka rive paske nan lide nan sijè ki abòde, ke bagay sa yo sèlman egziste andedan sa yo aparèy òtopedik Curly. Aparèy òtopedik Curly yo tankou yon akolad jeyan ki w ap ban Kòd ou a, se yon lòt fason yo panse sou sa. Se konsa, sa a se yon lòt fonksyon, yon bagay pou ou nèg nan kòd, hellofunction.c. Nou pral sote ki pou kounye a, men sa a se yon bagay mwen ankouraje ou pratike sou pwòp ou yo. Ekri yon pwogram nan kote apèl prensipal yon lòt fonksyon ki simagri soti yon bonjou itilizatè a. Li nan esansyèlman pran alo mond ak Abstraksyon ki printf nan yon lòt fonksyon. Men, nou pa ap ale nan fè sa koulye a paske nou pa gen tan kòm anpil kite jan mwen ta renmen. Se konsa, deklarasyon fonksyon. Nou te wè sa a anvan kòm byen. Si ou vle ekri yon lòt fonksyon, ou bezwen kite òdinatè a konnen ak prensipal konnen ke li egziste. Se konsa, sa nou pi wo pase prensipal yo, nou ekri retounen kalite a la, Non a, ak paramèt, ak Lè sa a desann pi ba a prensipal la, desann isit la, nou aktyèlman kopi ki liy ak Lè sa a ekri kòd la vrè. Se konsa, fason sa a, si ou rele fonksyon an nan prensipal nan tèt la, prensipal konnen ke alo egziste, pou egzanp, si m 'te yo rele hello, ak Lè sa a li sanble aplikasyon an desann pi ba a. Kisa k ap pase si mwen pa gen ladan sa a liy moute tèt, anile alo (san valè)? Si m 'pa gen ladan liy sa a ak apèl prensipal hello, mwen se pral jwenn yon erè. Mwen pral jwenn yon erè paske du a pa konnen ki bagay sa a egziste. Sa a se menm jan ak poukisa nou # Genyen ladan cs50.h. Ki sa ki esansyèlman cs50.h ap fè ap mete jwenn fisèl moute a. Li nan mete jwenn Int 'kanpe. Li nan mete tout moun ki fonksyon Prototypes kanpe devan prensipal pou lè ou rele yo nan prensipal la, prensipal konnen bagay sa yo egziste. Sa a ki sa sa yo. H dosye fè. Se konsa, si w ap ale nan fè pwòp ou fonksyon, ou te gen asire w ou mete ki pwototip 'kanpe. Nenpòt kesyon sou sa a byen lwen konsa? Lòd liy agiman. Sa a se ki sa nou ap ale nan fini sou li a, ak Lè sa a èspere ke nou pral peze nan kèk pset. Mwen pa konnen si nou pral kapab peze ke nan paske nan tan, men avèk ou nèg ki la a, epi si ou mesye vle di apre pou yon ti jan, nou ka ale sou li deyò. Men, nou ap ale nan fini ak lòd liy agiman pou 15 minit ki sot pase yo. Nou reveye, Michael? Ou se leve la a? Bon. Mwen pa konnen si ou dòmi ak je ou fèmen. Li ta difisil. Lòd liy agiman. Sa yo se yon fason yo pase enfòmasyon nan yon pwogram. Evantyèlman, nou pral rankontre lòt moun. Men, esansyèlman, nou pral sispann ekri Int prensipal (san valè) si nou vle pran kèk agiman liy lòd. Nou pral ekri bagay sa a rele Int prensipal (Int arg, fisèl argv, parantèz. Sa se konfizyon. Sa se yon anpil nan lèt ki pa nan moun angle, se konsa nou ap ale nan defèr yo kounye a. Arg kanpe pou konte agiman - e ankò, tout moun sa yo pral ap disponib sou entènèt - e ke sa a ki kantite agiman. Argv kanpe pou vektè agiman, ak sa yo se agiman yo tèt yo. Li nan yon etalaj de strings. Nou te aktyèlman wè yon etalaj nan strings anvan jodi a. Nou te kreye yon sèl nan dènye a Pwogram nou kode. Se konsa, isit la nan yon egzanp. Mwen ekri. / Ohai cs50 seksyon sou liy lòd mwen. Arg nan ka sa a egal 3. Argv bracket 0 se ohai, argv bracket 1 se cs50, argv bracket 2 a se seksyon. Yon fwa ankò, arg se nimewo a nan agiman, ak vwayaj ou leve yon ti kras ti jan, nou toujou konsidere non an nan la fonksyon kòm agiman an premye. Se konsa, nan ka sa a, gen twa agiman, non an nan fonksyon an ak Lè sa a moun de ke mwen tape pous Apre sa, nou pral pou konsève pou moun agiman tèt yo nan argv. Li di ankò, menm jan nou te wè anvan, nou te fè sa a nan pwogram nan dènye fwa nou kode. Ou ka deplase atravè etalaj la nan argv epi pou yo jwenn sa yo strings. Sa a esansyèlman sa nou te fè nan nan fen pwogram dènye nou an. Nou te chwazi yon non o aza ak Lè sa a ale nan non bracket tou sa ak enprime soti fisèl an ki sitiye a. Sou tèt jis etalaj nan yon sèl, paske strings tèt yo yo se ranje, jan te pale osijè de, ou ka gen ranje nan ranje, ki se esansyèlman sa argv se. Youn nan fason ou ka panse osijè de sa a se ranje ak kolòn. Mwen ka trase ki kounye a. Se konsa, argv - ki pa nan efase. Se pou yo trase anba ohai. Se konsa, si mwen te ekri nan, seksyon ohai cs50, Mwen pral tronke seksyon pou egzanp sa a. Men, esansyèlman, mwen milti-dimansyon etalaj, ohai cs50, nou pral fè rèd. Se konsa, isit la, mwen ka gen aksè a - si mwen jis bay argv yon sèl nimewo - sa a se sa ki mal. Ki sa ki nan mal nan dyagram sa a? ELÈV: Kòmanse nan zewo. JASON HIRSCHHORN: Li ta dwe kòmanse ak zewo. Mwen ta pwobableman tou Thorne li, men li depi mwen te deja trase l 'sou, mwen se ale nan kite l 'sou gen pou kounye a. Men, li kòmanse nan zewo. Sa a dwat. Mwen regrèt si sa a se piti. Èske ou ka mesye kalite wè? Se konsa, si m 'fè argv 0, mwen pral jwenn tout ohai. Si m 'fè argv 1, mwen pral jwenn tout cs50. Si m 'fè argv 2, mwen pral jwenn tout rèd. Men koulye a,, jan nou te di, strings yo ranje tèt yo. Se konsa, sa m 'ka fè se mwen ka trete sa a kòm yon etalaj milti-dimansyon, epi mwen ka fè yon bagay sou liy yo nan 0 argv, 0, ki bay m 'jis nan N. 0. 0 argv, 1, ki bay m 'jis h. 1 argv, 3, ki bay m 'jis sa a 0 desann isit la nan cs50. Se konsa, paske strings tèt yo yo ranje, nou ap mete ke nan yon lòt etalaj. Nou kounye a gen etalaj de ranje, epi nou kapab endèks nan etalaj premye nou yo ak Lè sa a, endèks nan etalaj dezyèm nou an. Men, kòm ou ta atann, nou fè sa pa jis mete sa yo de - nou fè parantèz yo kare jis dwa pwochen youn ak lòt. Se konsa, nan egzanp sa a, argv 1 se cs50 ak , 1 argv 2, tankou nou te di, se jis 5. okenn moun gen nenpòt kesyon sou milti-dimansyon ranje? Ou mesye yo ap fè pè. Dous. Se konsa, nou gen yon lòt pwogram dwa isit la, ak sa a se bagay la final nou ap pral fè kounye a. Se konsa, mwen vle ou ekri yon pwogram ki pran tout non yon itilizatè a, de, ak sèlman agiman de liy lòd, epi finalman, enprime soti yon bonjou a itilizatè ki genyen ladan Non premye yo. Se konsa, poukisa pa ou pran twa oswa kat minit nan fè sa, ak Lè sa a nou pral ale sou li kòm yon gwoup, epi Lè sa a, nou pral vlope moute? Li di ankò: isit la, lè nou di pran yon plen non itilizatè a pou chak deskripsyon an nan pwoblèm sa a, li ta dwe lòd agiman liy, pa lè l sèvi avèk jwenn fisèl. Yeah, Marcus? ELÈV: Se konsa, lè ou di de lòd agiman liy, se ke nan adisyon a . / kouri a, oswa - JASON HIRSCHHORN: Bon kesyon. Èske, ki gen ladan. / Kouri nan, twa lòd liy agiman. Oswa ki gen ladan. / Pèsonalize a, nan ka sa a, paske se la Non sa a ranpli. Se konsa, arg ta dwe twa. Men, mwen vle sèlman de agiman bay pwogram nan. Mwen ta dwe presize sa. Mwen pral fè chanjman sa a anvan mwen pas sa yo epi voye yo bay ou nèg. ELÈV: E si ou gen yon Non lekòl presegondè? JASON HIRSCHHORN: Si ou gen yon mwayen Non, w ap soti nan chans. Mwen regrèt. Oswa si w sèlman ale pa Shakira, w ap tou soti nan chans. Yeah? ELÈV: Se konsa, lè moun yo pa gen cs50.h yo, yo defini argv kòm Char zetwal argv? Oswa se li toujou rele fisèl argv? JASON HIRSCHHORN: Wi. Se konsa, fisèl, ankò, nou maske sou sa ki egzakteman sa k ap pase la. Sa a yo pral anbalaj petèt nan Mèkredi, men byen vit. Se tankou wou fòmasyon. Paske esansyèlman, li nan menm bagay la. Se konsa, kite a pran yon lòt minit nan pwogram sa a, ak Lè sa a, nou menm ki pral pran li kòm yon gwoup, epi Lè sa a, tankou mwen te di, vlope yo. Apre sa, mwen panse ke yo ap toujou siplemantè sirèt, konsa ou ta dwe mesye èspere ke pran sa, oswa tanpri pran sa. M regrèt, si w ap toujou ekri, men mwen vle plonje nan epi nou ka fini li yo ansanm. Se konsa, mwen te ekri nan, # genyen ladan cs50.h, # genyen ladan stdio.h. Int prensipal (san valè), Curly atèl, Curly atèl, andedan twa liy nan pseudocode, pran tout non yon itilizatè a, de ak sèlman de liy lòd agiman, enprime soti yon bonjou a itilizatè ki genyen ladan Non premye yo. Se konsa, yon sèl la an premye, pran tout non yon itilizatè a. Ki moun ki ka ede m 'pran tout non yon itilizatè a? Kouman pou mwen fè pati sa a? Eske ou te nèg fè pati sa a an premye? Pran tout non yon itilizatè a. Oke, pou ke yon moun lòd liy agiman, kisa pou m ekri? Kisa mwen ta dwe chanje sou deklarasyon fonksyon mwen an? ELÈV: Ou pa vle li nan dwe anile ankò. JASON HIRSCHHORN: Egzakteman. Mwen pa vle li nan dwe anile. Ki sa mwen vle li yo dwe? ELÈV: Int arg. JASON HIRSCHHORN: Int arg. ELÈV: argv fisèl. JASON HIRSCHHORN: fisèl argv. ELÈV: Sipò, bracket. JASON HIRSCHHORN: Sipò, bracket. Se egzakteman dwa, e ke sa a aktyèlman ki jan mwen pral jwenn tout non yon itilizatè a. Yo ap ale nan mete l 'nan la. Se konsa, nan ke yon moun fè. Se konsa, koulye a, mwen vle de ak sèlman de lòd liy agiman. Konsa, Noe, ki yon fason mwen kapab tcheke ki kantite lòd agiman liy mwen genyen? ELÈV: Ou fè yon si deklarasyon. JASON HIRSCHHORN: Si deklarasyon, egzakteman. Ki sa mwen vle kòm kondisyon an? ELÈV: Si arg pi gran pase 3. JASON HIRSCHHORN: Si arg gen plis pouvwa pase 3. Si arg pi gran pase 3, kisa m 'fè? ELÈV: Retounen 1. JASON HIRSCHHORN: Retounen 1. Èske ki garanti mwen gen de ak sèlman de? ELÈV: Non Si arg pi gran pase 3 ak mwens pase 2. JASON HIRSCHHORN: Si arg se pi gwo pase 3 ak arg se mwens pase 2. Ki sa ki nan yon fason mwen ka ekri sa a nan jis yon sèl liy, oswa san yo pa lè l sèvi avèk ki ak Boolean operatè? ELÈV: Se pa egal a 2. JASON HIRSCHHORN: Si arg se pa egal a 2. Egzakteman. Se konsa, si arg se pa egal a 2, ki ap ban m 'pwogram sa a, pèsonalize, lè mwen kouri li, ak ki pral ba m 'ki jan anpil lòd liy agiman? Konbyen mwen pral tcheke pou? M regrèt. Kite m 'rkonpoze sa. Si arg = 2, ki jan anpil bagay sa yo te fè itilizatè a ekri nan liy lan? ELÈV: Yon. JASON HIRSCHHORN: Jis yon sèl. Se konsa, anvan, ou te dwat, Noe. Ki sa mwen aktyèlman bezwen mete ladan l '? ELÈV: Sa egal 3. JASON HIRSCHHORN: arg pa fè egal 3. Mwen vle pou l egal a 3 paske mwen vle pèsonalize plis de lòt yo. Se konsa, si arg fè sa ki pa 3 egal, retounen 1. Poukisa ou te di retounen 1? ELÈV: Paske ki vle di li nan sa ki mal. JASON HIRSCHHORN: Sa vle di li nan sa ki mal, ak sa a ki pral fè? ELÈV: Re-rapid itilizatè a. JASON HIRSCHHORN: Li nan ale nan kite pwogram lan, se konsa li pral gen nan kouri ankò, men nou pa jwenn anyen nan isit la pou mande pou yo ankò. Mwen pa t 'mande pou sa. Se konsa, sa a, se egzakteman dwa. Retounen 1 jis kit pwogram nan. Great. Men, enprime soti yon salitasyon itilizatè a ki gen ladan Non premye yo. Kouman mwen ka fè sa? Anna reklame? ELÈV: printf. JASON HIRSCHHORN: printf. ELÈV: (" JASON HIRSCHHORN: ( ELÈV: "bonjou JASON HIRSCHHORN: "alo ELÈV:% s JASON HIRSCHHORN:% s ELÈV: / n JASON HIRSCHHORN: / n ELÈV: ", JASON HIRSCHHORN: ", ELÈV: argv JASON HIRSCHHORN: Padon? ELÈV: argv JASON HIRSCHHORN: argv ELÈV: kare parantèz 1. JASON HIRSCHHORN: parantèz kare? ELÈV: 1. JASON HIRSCHHORN: 1. ELÈV: Se) virgules. JASON HIRSCHHORN:) virgules. Se pou nou kouri sa a. Fè pèsonalize. . / Pèsonalize. Li jis kite. Poukisa li kite fimen? ELÈV: Ou pa t 'mete nenpòt agiman. JASON HIRSCHHORN: mwen pa t ' mete nenpòt agiman pous Sanble gwo. Ou mesye kloure l '. Se konsa, ankò, ou antre nan argv epi ou tcheke nan arg nan konmansman an. Moun sa yo ki se de enpòtan bagay sa yo sonje. Se konsa, nan minit de dènye nou anvan nou kite, nou pa pral jwenn nan pset de, men tankou m 'te di, si ou vle rete apre yo fin pou 10 minit, mwen ta li kè kontan ale sou avèk ou mesye lojik nan pou sa yo ansanm pwoblèm. Nou te gen yon anpil yo kouvri jodi a Se konsa, mwen pa t 'jwenn yo. Anjeneral, mwen renmen genyen ladan yo ki nan fen an. Se konsa, si ou vle bwa alantou li, bwa alantou pou 10 minit. Nou pral fè sa. Lè sa a, kòm mwen mansyone nan kòmansman an, pset zewo ak yon sèl, nou pral jwenn ki fidbak tounen ba ou kòm pi vit posib. Objektif la se jwenn pset yon sèl fidbak, kòmantè pati a, anvan pset de se akòz. Se konsa, si ou te fè kèk erè oswa estilitikman, bagay sa yo ta ka pi bon, ou pral gen enfòmasyon sa a pou ou pa pral fè menm bagay yo nan pset de. Lè sa a, nan tan kap vini la, ou ap jwenn tout nan fidbak pset ou ak kòmantè tounen anvan youn nan pwochen se akòz. Finalman, si mwen te kapab mete nan yon lòt ploge pou fidbak. Sa a se seksyon premye ou. Li te seksyon premye fwa mwen anseye ane sa a. Ale la. Ekri bagay, bon ak move, epi mwen pral sèvi ak li nan fè seksyon pi bon pwochen fwa. Ak dènye, ankò, si ou bezwen anyen, kite m 'konnen. Mwen se plis pase kontan ede ou nèg. Si ou jis vle sirèt, mwen ap gen siplemantè sirèt. Mwen se kè kontan yo pote l 'bay ou. Sa a se pral fè yon kou dwòl. Sa a se youn nan, si se pa pi renmen m ' Natirèlman, mwen te pran nan tout lavi m ', e mwen espere ke li pral ki bèl bagay pou ou. Se konsa, mwen vle fè tout bagay nan pouvwa mwen fè li ki pè pou ou. Mwen pral voye yon imèl si ou nan seksyon m nan oswa m ak Noe ansanm ak pral eseye ak pran avèk chak nan ou nèg yon tan yo tcheke nan plis pase a pwochen koup la semèn Se konsa, mwen ka jwenn yon sans nan sa ki background CS ou ye, se epi li pral tou pou ede m 'tayè sa yo seksyon nan pi bon kostim bezwen ou yo. Se konsa, se sa ki mwen te gen aliyen yo. Ankò, mwen pral wè ou deyò si ou vle yo dwe la. Sa a te semèn de seksyon. Mèsi poutèt ou guys anpil.