[MIZIK jwe] JASON HIRSCHHORN: OK, tout moun. Byenveni nan Seksyon. Sa a se CS50, nou an trè premye seksyon super. Kòm ou tout konnen, semèn pwochèn seksyon regilye ap kòmanse, men semèn sa a nou ap tout ansanm. Gen tèt mwen. Non mwen se Jason. Mwen se yon konferans nan Syans enfòmatik. Nou gen Andi, ki moun ki nan tèt TA a nan CS50. Apre sa, Scaz, Pwofesè Brian Scassellati, li se yon pwofesè nan Syans enfòmatik. Nou se tèt yo CS50 nan Yale. Ou ka toujou voye yon imèl ba nou heads@cs50.yale.edu. Nou ap fèt nan konferans. Nou pral fèt nan lè biwo. Si gen nan tout tan tout tan anyen nou kapab fè pou ou, anyen ou bezwen, santi yo lib yo rive jwenn soti nan nou. Se konsa, sa yo nou pral fè jodi a? Oswa anvan lè sa a, sa ki nan vini semèn sa a? Se konsa, lè biwo yo Lendi, Madi, Mèkredi, ak Jedi, 8:00 11:00. Genyen yon orè sou sit entènèt la. Seksyon, tankou mwen mansyone, ap kòmanse semèn pwochèn. Men, ou pral chèche konnen ki sa semèn sa a tan seksyon ou a se, ki sa jou li ye, epi ki moun ki TA ou se. Set Pwoblèm 1 se akòz nan Jedi nan midi, Vandredi a midi ak yon jou anreta. Wi, ou gen nèf jou an reta. E genyen anpil nèf kouche pwoblèm. Epi li ka sèlman itilize youn an reta jou pou chak pwoblèm mete. Wi, nan efè, tout pwoblèm kouche yo akòz Vandredi a midi. Sa se tout. Tout sa ki detay yo sou progranm la. Chak Vandredi, nou gen manje midi. Nou renmen fè sa a gwo kou santi yon ti jan pi piti. Se konsa, w ap akeyi yo RSVP. Gratis manje midi ak parèy kamarad klas ak anplwaye yo. cs50.yale.edu/rsvp. Tout bagay sa yo ki Mwen gen sou ekran an, ak plis ankò, ou ka jwenn cs50.yale.edu oswa cs50.harvard.edu, si ou ale nan Harvard ak ap gade sa a sou entènèt. Epitou sou sit entènèt sa yo, gen se yon tòn resous pou ou. Chak konferans pa sèlman gen videyo a nan konferans la, men tou nòt. Yon moun ap gade nan konferans ak pran nòt pou ou. Se konsa, ou ka jis peye atansyon pandan konferans, oswa ou ka sèvi ak nòt yo / nou an nòt yon sipleman nòt pwòp ou yo. Gen glisad sou entènèt. Sous la code-- tout bagay David ale sou nan konferans, oswa Scaz ale sou konferans, ki kòd sous ki disponib sou entènèt kòm byen, kòm tankou mwen, mansyone videyo. Seksyon, menm jan an tou, yo pral tout bagay sa yo filme-li. Tout nan tout sa yo glisad yo ap disponib. Tout moun nan ki pral Kòd ap disponib pou ou. Gen bout pantalon sou sit entènèt la kote Manm pèsonèl CS50 pase senk a 10 minit ale atravè tout sijè pou ou. Gen kèk nan moun ou te deja rankontre nan ansanm pwoblèm. Biwo èdtan, jan mwen mansyone, lendi a jedi, 8:00 11:00. CS50 etid se yon resous kokenn. Gen pwoblèm pratik, glisad echantiyon, ke yo rekonèt pinèz ke elèv renmen kouri antre nan, pou esansyèlman chak nou sijè pral kouvri nan kou sa a. Epi finalman, sou glise sa a omwen, Reference50 sa ki ba ou enfòmasyon sou tout nan fonksyon yo C ou ta ka janm espere pètèt yo sèvi ak ak anpil, anpil plis. Yon lòt fwa ankò, ki dot dot dot a fon an nan ekran an se yo endike ke gen nan menm plis resous sou moun de sit: cs50.yale.edu, cs50.harvard.edu. Se konsa, sa n'ap fè jodi a? Oke, premye, mwen pral bay ou gade nan resous yo. Deja fè sa yon sèl. Gade nan nou. Koulye a, nou ap ale nan ale sou kalite done ak operatè yo nan C. Lè sa a, Andi pral vini isit la ak ale sou bibliyotèk nan C, printf (), yon fonksyon ak kote ou yo deja abitye oswa ap byen vit vin trè yo konnen yo. Men, ou pral ale tou sou kondisyonal ak pasan. Lè sa a, finalman, Scaz ki pral pran ID a CS50. Si ou pa gen plonje nan deja nan pwoblèm Fikse 1, menm jan tou kouman yo sèvi ak nan tèminal ak itil kòmandman ak Lè sa a ba ou kèk Demonstrasyon ak pratik kodaj nan ID a CS50. Mwen anvan m 'vole nan sa a kontni sou bò sa a, okenn moun gen nenpòt kesyon byen lwen tèlman? Great. OK. Chanje angrenaj. [CHANJE GEARS] Sa ki te m 'déplacement angrenaj nan yon machin manyèl. Se konsa, kalite done nan C, ou pa ka jis gen yon x varyab ak genyen li dwe sou liy 10, yon nonb antye relatif, petèt nimewo a 1, sou liy 20, yon PO desimal 10.5, ak liy Lè sa a, yon koup pita yon fisèl, mwen renmen CS50. Nan C, varyab kapab fèt sèlman yon sèl bagay, ak yon sèl bagay sèlman. Se konsa, ou gen ba yo kalite. Yo, epi sou tablo sa a, nou gen yon lis kalite. Gen charaktèr, ki kanpe pou karaktè. Se konsa, sa a, se yon lèt A, B, C, D. Sa kapab tou yon espas, oswa ki kapab tou gen pou yon karaktè nouvo liy. Gen nonm antye relatif yo, ki se jis nimewo, tout numéros oswa nonm antye relatif rather-- men pa desimal. Pou desimal, nou gen nimewo pwen k ap flote. K ap flote pwen nimewo yo se chif ki gen desimal. Lè sa a, gen LONGS yo, ki se esansyèlman ankò nonm antye relatif. Ou ap remake ke yon long se 8 Lè nou konsidere ke yon int se 4. Mwen pral jwenn ak sa yo ki nan yon dezyèm fwa. Sa a se paske LONGS ka magazen menm plis nonm antye relatif pase yon int ka magazen. Double se yon flote long. Epi finalman, nou gen fisèl, ki se yon kalite ke ou te pwobableman itilize anvan. Si ou gen ladan hashtag # includecs50.h nan dosye sous ou, Lè sa a, ou ka itilize yon kalite fisèl. Li pa nan aktyèlman bati nan C. Gen yon koup lòt kalite kòm byen. Men, sa yo, se yo menm ki direktè lekòl ak ki w ap itilize ak rankontre. C kòm, ankò mwen mansyone, chak variable-- li kapab fèt sèlman yon sèl kalite ak yon kalite sèlman. Sa a se paske C se yon statics lang tape, kòm opoze dynamique tape lang kote si ou kreye yon varyab ou kapab chanje sa k ap estoke nan li kòm ou ale sou nan pwogram ou an. Plis pase isit la sou bò dwat bò, mwen gen gwosè yo diferan nan sa yo kalite done nan bytes. Se konsa, yon karaktè se 1 multiple. Sa a 8 miyèt moso. Lè sa vle di paske 8 Bits gen nan uit 0s ak 1S. Nou te wè moun Demonstrasyon nan premye a semèn ak sa anpoul binè. Avèk 8 Bits oswa 1 multiple, nou ka reprezante nimewo ki ant 0 a 255. Dwa. Si tout Bits 8 yo se 0 sa a, se 0. Si ti jan nan premye se 1, sa a, se nimewo a yon sèl, ak sou sa, tout wout la jiska 255. Epi sa a, poukisa pou karaktè ou kapab gen esansyèlman jiska 255 nan yo, men sa a anpil yo kouvri tout karaktè yo nou bezwen yo sèvi ak. Pou nonm antye relatif, ou ka gen 0 ak Lè sa a, ou gen 2 a 32 an mwens 1. Moun sa yo se ki jan anpil opsyon ou gen pou nonm antye relatif. Pou yon tan, ou gen 0 a 2 ak 64 an mwens 1. Se konsa, ou gen anpil, anpil, plis opsyon pou fin fou. Fisèl, sa se yon mak kesyon paske ki nan yon cliffhanger pou pita. Yeah. Mwen te kapab di tout moun nan sou kwen nan chèz yo, tankou sa ki nan ki mak kesyon? Li se yon cliffhanger. Nou pral evantyèlman kouvri gwosè a nan strings epi pale plis sou strings. Paske fisèl se aktyèlman youn nan wou yo fòmasyon nou mete yo sou sa a nan kou nan kòmansman an ak Lè sa a pou yo wete tout pita sou li a, paske strings nan C yo aktyèlman endikasyon ranje karaktè. Men, ankò, sa a, se yon cliffhanger pou pita. Mwen anvan m 'deplase sou nenpòt kesyon, kòmantè, enkyetid sou glise sa a? OK. Mwen dwe gen yon explainer kokenn. Epitou lè w ap pwogramasyon, w ap ale nan sèvi ak operatè sa yo. Siy vrèman senp ki ka fè senp operasyon, ak kote ou ap pwobableman deja trè yo konnen yo. Pou egzanp, sou bò dwat la bò men, nou wè ajoute. Pou ajoute, ou jis fè yon siy Plus. Se konsa, ou ta ka genyen de varyab x ak y. Ou ka fè x + y nan kòd ou a. Petèt ou vle di ou to-- gen nimewo a 7 ak 3, ou vle nan magazen ki nan yon varyab rele sòm. Ou ka fè int pou di ki, espas ki la sòm, non an nan varyab la, = 7 + 3; Ki sa ki ta ke magazen nan sòm total? Nenpòt moun ki? Si m 'te gen nan sòm = 7 + 3. Ki sa ki ta dwe estoke nan sòm? Ou ka jis rele li soti. ODYANS: 10. JASON HIRSCHHORN: 10! Sa a egzakteman dwat. Ki sa ki sou nan sòm total = 7 - 3, Mwen jis itilize siy priz sa. Ki sa ki k ap pase yo dwe estoke? ODYANS: 4. JASON HIRSCHHORN: 4. Sòm se pwobableman non an mal pou ki varyab, men 4 ta dwe estoke. Anpil anpil pitit nan C, sèvi ak ti kras nan Pèsonaj Star, ou pa sèvi ak yon x. , Fann li de, sèvi ak yon Forward Koupe pa senbòl la divizyon. Men, modulo, sèvi ak senbòl la pousan. Se konsa nou di Mwen vle wè int z = 7% 3, sa ki ta dwe estoke nan z? Se konsa, sa a, se esansyèlman mande sa modulo fè? Okenn moun konnen ki sa modulo fè? Yeah. y 4. Oratè 1: Li nan rès la. JASON HIRSCHHORN: Li se nan rès lè ou divize. Se konsa, 7 divize pa 3 se 2 rès 1. Se konsa, 1 ta dwe estoke. Ou te fè soustraksyon, men sa a ki jan li fonksyone. Sa a ki sa operatè a modulo fè. Li pran yon kantite divize li pa yon lòt nimewo ak retounen nan ou rès la. Se konsa, ankò, 7% 3 ba ou 1, paske 7 divize pa 3 se 2 rès 1, epi retounen rès la. Ki sa ki sou kite yo ale tounen moute yon sèl etap ak sa yo ki siy divizyon. Si m 'te fè 7 / divize pa 3 fè okenn moun konnen ki sa ki ta retounen? Oratè 2: 2. JASON HIRSCHHORN: Poukisa 2 epi yo pa 2,333? Oratè 2: Mwen panse ke li koupe koupe apre nimewo a tout antye. JASON HIRSCHHORN: Se konsa, sa a, se egzakteman dwa. Nan C, si ou fè divizyon de nonm antye relatif 7 divize pa 3, li vin repons lan ki nan ka sa a pou tout tan 2,3333 epi li jwenn ke pwen desimal ak chop tout bagay koupe apre desimal a epi li jis retounen ou 2. Se konsa, si m 'te fè 8 divize pa 3. Ki aktyèlman, nou konnen ki retounen 2,666, men li chop tout bagay desann nan desimal la, tronk li tout, ak jis retounen nan ou 2. Se konsa, 6 divize pa 3 7, divize pa 3, 8 divize pa 3, , yo tout ale nan tounen vin jwenn nou 2. Okenn moun konnen, oswa ou gen yon devine, ki di kòman mwen te kapab aktyèlman jwenn repons lan plen si mwen vle ki desimal? Yeah. Ale pi devan. Oratè 3: Sèvi ak yon flote? JASON HIRSCHHORN: Ki sa ou vle di? Oratè 3: Paske ou te di a flote se pou nimewo [fèbl] JASON HIRSCHHORN: Dwa. Se konsa, sa a, se egzakteman dwa. 7 se yon nonb antye relatif. Men, si mwen te vle vire ki nan yon kantite pwen k ap flote, Mwen ta gen nan magazen ki kòm 7.0 paske òdinatè a se reyèlman stupid-- nou te wè ki ak PB ak J example-- nan li pral sèlman fè egzakteman sa ou di li. Se konsa, si ou ekri 7, li panse ke sa ka yon nonb antye relatif. Si ou ekri 7.0, menm si nou konn bagay sa yo se ekivalan, li trete ki tankou yon k ap flote Nimewo pwen. Se konsa, si ou te fè 7.0 divize pa 3, oswa divize pa 3.0, li ta ka di, OK, kounye a nou ap fè fas ak flote. M'ap tounen vin jwenn nou 2.333333 pou tout tan. Men, pa reyèlman pou tout tan, paske kòm nou te wè tou nan konferans, nimewo sa yo pwen k ap flote yo pa egzakteman presi. Se konsa, si ou fè vle ke desimal, oswa yon pati nan ki desimal, Lè sa a, ou gen yo use-- youn nan yo gen yo dwe yon nimewo pwen k ap flote ak òdinatè a gen ke ou konprann ke sa a se yon pwen k ap flote w ap fè fas ak, pa yon nonb antye relatif. Nenpòt kesyon sou sa sou tab bò nan men dwat, byen lwen tèlman? Ou bò gòch men ou, ou kite, bò gòch men ou. Yeah. Oratè 4: Dwa. Pou jis tankou yon regilye nonm antye relatif, ou ta write-- ou ta gen yo ekri flote? JASON HIRSCHHORN: Yeah sa. Bon, si ou vle kreye yon varyab ki nan yon flote, ou bezwen di flote z egal yon bagay. Oratè 4: OK. JASON HIRSCHHORN: Men, si mwen te vle fè 7 divize pa 3 epi pou yo jwenn ki desimal, Mwen ta fè flote z = 7.0 / av 3.0; ak ki va fè m 'nan k ap flote pwen kantite. Oratè 4: OK. JASON HIRSCHHORN: Si m 'te fè yon bagay tankou int z = 7 / pa 3, ki ta ban m 'yon nonb antye relatif, paske moun yo se tout nonm antye relatif. Ki fè sans? Oratè 4: Wi. JASON HIRSCHHORN: OK. Great. Nenpòt lòt kesyon sou ki tab? Vrèman? Mwen se konsa eksite. OK. Se konsa, kèk lòt bagay ou pral sèvi avèk, souvan nan kondisyon oswa pasan, se sa yo kalite operators-- sa yo kalite ekspresyon Boolean. E kòm nou aprann, == se ki sa ou itilize yo tcheke si de bagay sa yo yo egal-ego. Se konsa, isit mwen tcheke si x == y, se pou yo ankò asime ke x se 7 ak y se 3. Se konsa, si mwen te ekri 7 == 3, ki sa ta ki tounen vin jwenn mwen? Eske se sa ke vre oubyen fo? ODYANS: Fo. JASON HIRSCHHORN: OK. Mwen santi mwen tankou tout moun ka jwenn yon sèl sa a. Se konsa, tout moun, sa ki ta ki retounen? ODYANS: Fo. JASON HIRSCHHORN: Fo. Great. 7 pa fè sa egal 3. Se konsa, 7 == 3 ta retounen fo. Ou gen yon siy pa egal, se konsa si mwen tchecke 7! = 3, sa ki ta ki retounen? ODYANS: Vrè. JASON HIRSCHHORN: Vrè. Ekselan. Yon moun te trè vigoureux nan do a ak apresye sa. Lè sa a, ou gen mwens pase operatè, mwens pase oswa egal a operatè, pi gran pase operatè, pi gwo pase oswa egal a operatè. Se konsa, yon sèl plis chèk saniti. Si mwen te gen plis pouvwa 7 pase oswa egal a 3. Ki sa ki ta ki retounen? ODYANS: Vrè. JASON HIRSCHHORN: Vrè. Wi. Ki sal tounen, bò tounen nan sal la, kokenn. Ou ka konbine sa yo ekspresyon si ou renmen, kòm byen, ak yon ki lojik e ki ki se && Oswa yon lojik OSWA ki se || ||. Se konsa, kounye a ou ka fè tès de bagay together-- Eske se sa ke komik? Poukisa se ke komik? Se konsa, si mwen te vle, mwen kapab di se 7 pi gran pase 3 ak 2 se mwens pase 4? Bon, si gen plis pouvwa 7 pase 3, sa a, se vre. 2 se mwens pase 4, sa a, se vre. Se konsa, sa tout bagay ta retounen vre. Si m 'fè tès 7 gen plis pouvwa pase 3 and-- Mwen jis davwa nimewo o aza isit lan-- 4 se mwens pase 2, byen, sa a, se fo. Se konsa, vre ak fo fè fo. Epi ou ka ale sou yo ak ou konbine kòm anpil kondisyon ansanm kòm ou ta renmen. Okenn moun gen nenpòt kesyon, kòmantè, enkyetid byen lwen tèlman? Apre sa, mwen wè kèk nan ou pran foto nan m 'nan ekran an, ki mwen apresye. Èspere ke, li pa nan Snapchat. Èspere ke, li a pou nòt ou yo. Men, tout moun sa yo yo ale yo dwe disponib sou entènèt. Se konsa, ou pa bezwen pran foto nan sa a. Fè tankou mwen mansyone, tout bagay yo ap disponib sou entènèt pou ou. OK. Mwen se sou yo ka resevwa koulis, pou fè okenn moun vle di anyen anvan sa k ap pase? Kesyon? [Entèrpozisyon vwa] JASON HIRSCHHORN: Oh, sispann. Ou nèg yo twò bèl. OK. Mwen pral tag deyò. Ann ale. Andi Peng: Nou ap ale nan fè yon chanjman gòch MIC kounye a. JASON HIRSCHHORN: mwen se pral pran sa a la. Andi Peng: Apresye sipò nan, mesye. Èske ou ka tande m 'konsa? Eske se sa ke sa ki bon? Pafè. Bèl. Kite m 'jis plise ke nan. OK. Se konsa, mwen se pral fè tankou yon jeyan enfòmasyon pil fatra sou ou nèg kounye a. E pa gen enkyetid tou sa si w ap pa swiv chak liy ti kras nan sa ki Mwen se sou yo moutre ou la. Kòm Jason di, tout bagay se konplètman sou entènèt. Jis nou ap ale nan eseye prezante tout moun yo konsèp yo kouvri nan kèk nan glisad sa yo. Se konsa, jis swiv ansanm. Pa gen enkyetid si ou pa konprann tout bagay; sepandan, si nan nenpòt ki pwen ou santi ou pèdi, leve ou men, nou pral sispann, pa gen enkyetid. Fre. Se konsa, mwen panse ke yon bagay ki gen David deja kalite mansyone nan konferans ak Jason te kalite mansyone jodi a se sa yon bibliyotèk se. Se konsa, nan pwogram, nou gen bagay sa yo rele bibliyotèk. Ki kote, esansyèlman, tout yo se jis yon seri nan fonksyon, se sa ki esansyèlman jis kòd ki nan deja te ekri pa yon moun lòt bagay ke nou kapab tout itilize nan pwogram nou yo. Se konsa, kouman fè yon nòmal travay bibliyotèk, dwa? Ou antre nan pòt la bibliyotèk. Ou gen tout bagay sa yo liv ou ka rale mete deyò epi ou ka jwenn aksè nan enfòmasyon nan liv sa yo. Menm bagay nan pwogram. Ou gen yon bibliyotèk ki gen deja te ekri pa lòt moun. Apre sa, fason ke ou kapab, kòm pwogramè oswa yon elèv, ka jwenn aksè nan ki bibliyotèk se nan hashtag # enkli. Pou egzanp, nan C nou gen twa C-- pi plis nan souvan itilize twa C estanda bibliyotèk bibliyotèk la D '/ pwodiksyon, bibliyotèk la fisèl, ak bibliyotèk la matematik. Se konsa, ki nan premye ou pwoblèm koup kouche, moun yo pral twa a ke w ap prensipalman lè l sèvi avèk. Se konsa, tankou David deja eksplike nan konferans, Mwen nan estanda / O bibliyotèk, oswa nan estanda opinyon / pwodiksyon bibliyotèk fè egzakteman sa. Li pèmèt ou, nan kòd ou a, nan opinyon anyen nan men itilizatè a ak pwodiksyon ki nan ekran an, esansyèlman enprime li nan ekran an. Se konsa, nenpòt ki lè ou itilize nenpòt fonksyon, pou egzanp printf nan fonksyon () ki nou ap ale nan ale sou pwochen glise a, asire w ke w gen ladan estanda a mwen / O bibliyotèk oswa lòt moun ou pa ap ale nan kapab sèvi ak fonksyon an printf (). Paske ou, kòm pwogramè a pa janm aktyèlman te ekri ki fonksyon, w ap sèlman lè l sèvi avèk yon moun Kòd lòt moun nan ki nan Kòd pwòp ou yo. Èske ke tout moun fè sans? Fre. Lè sa a, nou esansyèlman jwenn sou bibliyotèk la string.h ak math.h nan bibliyotèk, h jis vle bibliyotèk, lòt bibliyotèk ki ou pral evantyèlman lè l sèvi avèk nan kòd ou a. Sepandan, pou rezon nan bibliyotèk sa a, nou menm tou nou en-a class-- sa a nou gen tou sa yo rele bibliyotèk la CS50, cs50.h, kote nou, pou te lèktur ou kreye anpil enpòtan ak itil fonksyon. Se konsa, ke ou kòm yon pwogramè ka feroutaj koupe sa nou te deja ekri pou ke sa a fonksyon a disponib nan ou pou itilize ou yo. Mwen pral kouvri yon koup la fonksyon yo souvan itilize, men konnen ke sa yo se tout googleable entènèt. Santi yo lib, rale moute bibliyotèk la CS50 ak Lè sa a, ou gen tout fonksyon yo a. Yeah. Oratè 5: Se konsa, si ou pa t ' lè l sèvi avèk lojisyèl an ki se bay yo ban nou pa klas la, fè sa vle di nou ta gen download yo ak jwenn header sa a ranpli tèt nou epi di òdinatè a kote li se? Andi Peng: Gwo kesyon. Egzakteman. Se konsa, li la tankou si ou pa ap prezan fizikman nan yon bibliyotèk, gen nan pa gen fason pou ou pou w aktyèlman ale ak jwenn aksè nan li. Se konsa, menm bagay la ak pwogram nan C, ou gen a asire w ke w ap itilize nou an aparèy paske bibliyotèk la nan deja te mete nan li. Lè sa a, lè ou hashtag # enkli, bibliyotèk la a. Yeah. Bon kesyon. Tout moun sa ki bon? Fre. Tout dwa. Se konsa, nou ap ale nan frape, esansyèlman, ki sa ki fonksyon an premye ki nou kòm pwogramasyon yo ale nan dwe lè l sèvi avèk nan Kòd nou an. Se sa yo rele printf () fonksyon an. Se konsa, printf () fonksyon, jan mwen te deja di nan dènye glise nan, se enkli nan estanda I / O, estanda opinyon / pwodiksyon, bibliyotèk. Se konsa, asire w tou sa ou ap using-- oh, kite m 'gen tan pwan lazè a pointer-- chak fwa w ap itilize printf () fonksyon an, ou gen genyen ladan yo estanda nan I / O bibliyotèk oswa lòt moun, lè ou konpile, w ap ale nan jwenn yon erè paske òdinatè a yo pral tankou, oh mwen pa konnen ki kote printf () se, ou pa ap di m 'ki kote printf () se. Oke se printf () enkli nan la estanda mwen / O, se konsa lè ou sèvi ak printf (), asire w ke w gen sa liy pi wo a kòd ou a. Se konsa, pou egzanp, printf () isit la se yon fonksyon. Tout li fè se ekri an lèt detache soti yon bagay andedan parantèz yo nan itilizatè a. Èske okenn moun renmen pran yon koud nan sa ki liy sa a nan kòd dwat isit la ki pral enprime soti? Pakonsekan, repons lan la sou ekran an. Nenpòt moun ki? VERDI: Anba a. Andi Peng: vèrdi, poukisa pa ou ale pi devan epi di deklarasyon an antye? VERDI: Bonjou, non mwen se Andi, e mwen 20 ane fin vye granmoun. Andi Peng: Ah, bèl. Se konsa, nan liy sa a nou ap ale nan enprime soti, Hello, non mwen se Andi, epi mwen menm mwen 20 ane fin vye granmoun, ki se an reyalite yon deklarasyon vre. Sentaks. Se konsa, koup la pwoblèm Massachusetts Institute of Technology ki ou nèg vle asire w ke ou konnen. Quotes. Double quotes di nan òdinatè ke tout bagay andedan yo pral enprime. Tout anndan ka jis pou egzakteman ki jan ou tape li, eksepte pou souvan nan fen a, nou ap ale nan vle genyen ladan yo yon regle oh sorry-- yon n priz. Se konsa, yon n priz. Nenpòt moun ki vle pran yon devine nan sa ki ki fè nan kòd nou an? Yeah. Oratè 6: Mete l 'sou yon liy nouvo. Andi Peng: Egzakteman. Se konsa, tout bagay sa a fè se pèmèt tou sa k ap pase apre sa a, apre yo fin deklarasyon sa a, yo dwe enprime nan yon liy nouvo. Se konsa, ki lè w ap ekri ou Kòd ou pa gen bagay sa yo owaza kloure sou nan fen a ke ou pa vle. Ke tout bagay vin nètman enprime yon sèl liy ak Lè sa a nou kòmanse sou liy ki anba la a. Nenpòt moun ki sonje sa ki virgules fè lè nou ap kodaj? Yeah. Oratè 7: Deklarasyon. Andi Peng: Padon? Oratè 7: li fini deklarasyon an? Andi Peng: Yeah. Se konsa, nan C, oswa nenpòt ki pwogram lang, virgules a vle di nan fen yon liy pwogram. Se konsa, pou egzanp, nan lang angle nou itilize peryòd vle di, oh sa a se fen nan yon fraz. Nan pwogram, menm bagay, nou gen yon virgules fè yon don nan fen yon liy. Souvan, lè w ap kòmanse nan pwogram, ou pral reyalize ou bliye fè ajoute yon virgules ak Lè sa a ou eseye kouri ou Kòd epi li pa travay. Epi w ap tankou, Ah, mwen pa fè sa konnen poukisa, li ta dwe travay. Chans yo ou pwobableman bliye yon virgules oswa yon oswa yon bagay bracket yon kote. Se konsa, sa a, se enpòtan sonje. Fre. Tout dwa, montre nan men, ki jan anpil moun isit la gen tout tan tout tan pran AP Syans enfòmatik oswa pwograme nan Java anvan, tout tan tout tan? OK. Bèl. Sa pa yo pral aplikab lè sa a, men nan Java, ou gen yon bagay yo rele System.out.println ki pa egziste nan C. Se konsa, nan C, nenpòt lè ou vle ajoute nan varyab nan nenpòt sa ou vle ekri ak lèt ​​detache soti, gen nan yon sentaks espesifik nou ap ale nan sèvi ak. Sa yo rele an placeholding-- esansyèlman nou ajoute placeholders nan plas a nonb antye relatif la oswa varyab la ke nou vle enprime. Se konsa, kòm ou nèg ka wè nou te enkli yon nouvo header bibliyotèk pote isit la. Bibliyotèk la CS50. Apre sa, genyen nan ki bibliyotèk CS50 se yon fonksyon komen nou pral lè l sèvi avèk nan kou nou an rele GetInt (). Okenn moun vle pran yon koud nan sa GetInt () ka petèt dwe ap fè. ODYANS: [fèbl] Andi Peng: Padon. Pa t 'kapab tande ou. Maddie, nenpòt ki moun. Maddie: Oh, li envit ou pou yon nonb antye relatif. Andi Peng: Egzakteman. Se konsa, fonksyon sa a, yon lòt fonksyon sa a, se deja te ekri pa yon moun lòt bagay ke nou ka rele sou kounye a. Tout li se se fè w, itilizatè a la, D 'tou sa ou vle kòm kòd la ap kouri epi li estoke kèlkeswa sa nan ka sa a nou ap GetInt () - ING, se konsa sa vle di nou ap jwenn yon nonb antye relatif. Epi nou ap ale nan magazen ki nonb antye ki pè nan yon lòt ke nou te jis te fè rele laj. Ki fè sans nan tout moun? Fre. Se konsa, kounye a ke nou te ki estoke nonb antye relatif sa a, ke nou te pouse soti nan itilizatè a, nan varyab sa a, nou te kreye nan int kalite rele laj, nou ka ale pi devan ak kote ke nan printf nou an () fonksyon. Se konsa, sentaks la anjeneral pou printf () se ke tout kote nan fizik aktyèl ou liy ou vle genyen ladan ki nonb antye relatif, ou fè sa senbòl dwa gen, senbòl la pousan, ak nan di ki kalite varyab ke ou vle. Se konsa, nan laj ka sa a se yon nonb antye relatif. Se konsa, w ap ale nan gen ladan % m paske li nan yon nonb antye relatif. Lè sa a, apre ou deklarasyon, w ap ale fè vigil la ak non nan varyab la. Se konsa, isit la, nou ap ale nan enprime soti, Hello, non mwen se Andi, epi mwen menm mwen ane vid fin vye granmoun. Hashta-- oswa, sorry--, laj ak tou sa opinyon mwen. Se konsa, si m 'te opinyon 20 pou GetInt mwen () isit la, li ta enprime soti menm bagay la egzak. Men, si mwen te vle yon bagay D ' lòt moun, tankou petèt 40 oswa 45, Lè sa a, ou ta wè ke reflete kòmsadwa nan kòd la. Se konsa, sa a se yon egzanp nan yon bagay nan ki li simagri soti sanble pou ale ak pou ou kòm si li nan menm bagay la, men anba kapo a nan òdinatè a gen nan aktyèlman bagay sa yo trè diferan pase. Fre. Tout dwa. Se konsa, sa si nou vle miltip varyab? Trè fasil. Menm bagay. Nou genyen tou yon fonksyon nouvo isit la yo rele GetString (), tou te gen ladann nan bibliyotèk la CS50, Tout moun nan li fè sa se pouse itilizatè a pou yon fisèl, ki se jis yon seri karaktè, se konsa tankou yon fraz oswa tankou yon non. Se konsa, nan ka sa a, nou ta gen de placeholders% s pou fisèl ak% mwen pou nonb antye relatif. Epi nou ap ale nan swiv ki pa de varyab yo nou vle enkli, nan lòd ki yo ke yo parèt nan fraz la. Se konsa, pou egzanp, non mwen se vid, mwen vle yon non a, se konsa mwen pral gen non a an premye. Lè sa a, apre sa Epi, mwen vle laj, vle gen laj dezyèm fwa. Se konsa, si mwen te vle D ', Hello, Andi non mwen an, epi mwen menm mwen 20 ane fin vye granmoun. Si m 'antre Andi ak 20, nan egzak menm bagay ta enprime; sepandan, kounye a nou te gen de ki estoke varyab nan non menm jan tou int. Yeah. Oratè 8: Li ta dwe kapab kouri si ou chanje non ak laj nan fen sa? Andi Peng: Yeah. Sa ki nan vrèman bon kesyon. Se konsa, depi lontan istwa kout, pa gen. Paske non ak age-- sa di ki kalite varyab se non? Oratè 8: fisèl. Andi Peng: Ak sa ki di ki kalite varyab se laj? Oratè 8: nonb antye relatif. Andi Peng: Se konsa, isit la nou gen yon kontneur pou fisèl ak nonb antye relatif, dwa? Se konsa, si ou te chanje sa yo, òdinatè a pa nan ale nan konnen. Li nan ale nan tcheke pou yon fisèl, epi si ou eseye bay li yon int, li k ap pase yo dwe tankou rete tann mwen se konfonn, ou te di m 'mwen ta dwe atribue memwa pou yon int. E yo gen dwa isit la, lè li espere yon nonb antye relatif epi ou bay li yon non ak yon fisèl olye de sa, li la tou ale nan dwe pran anpil konfizyon, li pa pral kouri egzakteman wout la ou bezwen li. Se konsa, isit la, nonmen ak sentaks se trè enpòtan pou kouri kòd. Tout moun sa ki bon? Yeah. Maddie. Maddie: Isit la, mwen konnen nou te gade a egzanp nan klas, kote yo mande ki sa ki laj ou, ki sa ki non ou. Isit la, vle lòt se pou li doesn't-- si nou te nan kouri Kòd sa a, li pa ta mande pou sa? Men, ou ta jis opinyon de nonb ak Lè sa a li ta kouri tankou sa? Andi Peng: Yeah, egzakteman. Se konsa, si ou te vle pou l 'bay ekspozisyon, tanpri antre laj ou, ou ka jis ajoute yon printf () fonksyon ki di, Tanpri antre laj ou, pi wo a li. Sa se yon kesyon bon. Yeah. Oratè 9: Se konsa, ta deja ap enkli nan GetInt () [fèbl]. Andi Peng: Non, li aktyèlman se pa vre. Se konsa, tout bagay sa a fè se jis envit yon ekran vid itilizatè a nan yon bagay D '. Si ou vle l ', si ou vle l' bay enprime soti yon bagay ki di itilizatè a tankou, tanpri ban m 'laj ou, lè sa a ou ta gen yo printf () ki tèt ou. Paske tout moun sèvi ak sa a fonksyon pou bagay sa yo diferan, ou ka estoke laj, ou ka estoke adrès, ou ka estoke nimewo telefòn. Se konsa, li vrèman jiska itilizasyon endividyèl mesye ou a pou sa ou vle l 'di yo. Yeah. Oratè 10: Se konsa, jis klarifye, kote ou D 'non ak laj la konsa ke li montre moute nan plas% s? Andi Peng: Kòm nan itilizatè a? Oratè 10: Wi, tankou ki jan pou m fè l-- kote fè mwen mete Andi, ak ki kote mwen mete 20? Andi Peng: Yeah. Se konsa, si ou te aktyèlman kouri Kòd sa a, M 'ap pa aktyèlman kouri nan kòd, sa a se jis isit la kounye a. Si m 'te nan kouri kòd la, mwen ta konpile kòd la, fè dosye a, kouri kòd la, ak Lè sa a, ta jis pou de espas pou mwen pou m D 'li. Yeah. Ou nèg pral wè lè ou jwe otou ak kòd la tèt ou. Tout dwa nou ap ale pou avanse pou pi nan pwochen seksyon an nan sa ki nou pral kouvri jodi a. Nou pral ale sou sa deklarasyon kondisyonèl ye. Se konsa, si ou nèg sonje ak sonje soti nan konferans, deklarasyon kondisyonèl, tout sa yo se yo yon seri nan enstriksyon nan òdinatè a nan ki si yon kondisyon sèten se vre, ou egzekite kòd la andedan nan ki kondisyon. Se konsa, nan grafouyen esansyèlman tèm nan gwo soti nan jodi a se ke ou nèg te deja tout wè lojik la dèyè tout bagay ke nou ap kouvri. Apre sa, tout n ap fè se tradui yon bagay ki te trè entwisyon an Grafouyen, epi yo ka difisil kodaj li nan sentaks la nou pral lè l sèvi avèk pou klas la ki se C. Se konsa, lojikman, tout blòk sa a te se ke moso nan Kòd la a. Yeah. OK. Nou menm tou nou jwenn nan yon lòt moun si ... deklarasyon ki se jis yon kouch te ajoute nan konpleksite si deklarasyon an kote òdinatè a pran yon gade nan sa a epi li wè, si kondisyon sa a se vre, fè tou sa a andedan de parantèz sa yo, else-- konsa kalite tankou default a si li pa satisfè condition-- nan fè sa. Se tankou yon fouchèt nan wout la. Si li la lapli deyò, mwen mete sou yon levit lapli, lòt bagay anyen lòt bagay mwen pa mete yo sou yon levit lapli. Ki lojik fè sans nan tout moun? Fre. Tout dwa. Se konsa, tankou yon egzanp difisil nan sa a ke nou ta renmen wè nan C se si mwen te vle kreye yon varyab èdtan devwa rele. Men, si èdtan devwa ki pi piti a pase senk, mwen di Lavi se gwo. Li nan bèl bagay. Sepandan, di lit la se real-- ki se sa ki nou tout sou sa a Lendi apremidi moute Syans Hill se pwobableman fè dwat now-- ODYANS: [ri] Andi Peng: Yo fason nou ta, di ou mèsi pou sa. Fason ki nou ta hardcode sa a nan C se if-- kite nan asime nou deja genyen yon varyab nan kalite int rele èdtan devwa dwa isit la. Si èdtan devwa se mwens pase senk printf (), Lavi se gwo. Sonje kenbe / n paske ou vle yon liy nouvo apre. Ekri an lèt detache Lòt Bagay, lit la se reyèl. Tout moun konprann ki jan Mwen favorize tranzisyon soti nan blòk sa a nan blòk sa a nan kòd? Fre. Tout dwa. Se konsa, kounye a nou ap ale nan pran yon gade nan miltip Si deklarasyon tout ansanm. Se konsa nou asime nan objektif nan pwogram sa a te nou pouse itilizatè a pou yon klas. Nou èd memwa lè l sèvi avèk GetInt () pou yon klas yo, epi yo opinyon yon valè, epi ou vle montre ki kalite klas yo yo te. Se konsa, si m 'te nan konsepsyon yon pwogram, mwen vle di tipikman nan tout je nou, 90-100 se yon A, 80-90 se yon B, ak pou fè ak sou sa. Ki sa ki se mal ak sa a moso nan kòd ki li pa fè sa m 'vle l' bay fè. Yeah. Oratè 11: Yo gen pi ba limit, men yo pa gen limit anwo kay la. Andi Peng: Egzakteman. Èske tout moun tande tande sa li te di? Gen k ap pase yo dwe anwo limit, men pa limit pi ba yo. Padon, nan lòt fason alantou li, pi ba limit, pa gen limit anwo kay la. Se konsa, ou ta renmen pran yon koud nan di sa ki ta ap enprime sou sa a ekran si m 'te nan kouri Kòd sa a. Oratè 11: Yon erè? Andi Peng: Yon BSOD? Great devine, pa byen dwat. Okenn moun gen yon lòt koud? Yeah, Arawon. AARON: Si ou mete nan yon bagay ki pi konsekan pase 90, li ta montre tout klas yo ou te resevwa. Li ta montre w te resevwa yon A, ou te resevwa yon B, ou te resevwa yon C. Andi Peng: Yeah. Sa a egzakteman dwat. Se konsa, ki ta dwe bèl bagay. Sepandan, yo se mityèlman san konte, mwen panse ke. Si m 'te nan kouri pyès sa a nan kòd. Lè sa a, kite yo jis di, mwen antre klas ki nan 95. Se konsa, 95 se kounye a ki estoke nan nan int rele klas. Se konsa, C se yon lang ki kouri moute anwo jouk anba, se konsa li k ap pase yo toujou kouri moute jouk anba. Se konsa, li k ap pase yo vin isit la, li si klas yo gen plis pouvwa pase oswa egal a 90, printf () ou te resevwa yon A. Great, mwen gen yon 95, sa a, se pi gran pase 90. Li nan ale nan enprime, Mwen te resevwa yon A. Li nan pral pran yon gade nan sa a si, li k ap pase di, byen 95 tou gen plis pouvwa pase 80, li pral ekri ak lèt ​​detache nou menm tou nou te resevwa yon Got yon mak esklamasyon B, ak sou sa ak pou fè. Se konsa, kòm nou tout ka wè, sa a se yon ensèk komen ki ka rive lè nou ap ekri kòd yo gade deyò pou. Nenpòt moun ki, nenpòt kesyon sou poukisa ki te pase? Great. OK. Se konsa, kouman nou ranje sa a, se evidamman lojik pwochen kesyon an. Oke, nou gen sa yo bèl bagay rele si lòt bagay si lòt bagay si deklarasyon lòt bagay. Se konsa, ou ka wè, si ou te vle chanje ki pwoblèm, ou te vle fè chak nan la kondisyon mityèlman eksklizif, ou ta ajoute yon lòt bagay ... si deklarasyon. Apre sa, sa yo nan course-- panse a yo kòm nechèl, oswa tankou baro sou ladder-- nan ou ka ajoute kòm anpil nan sa yo menm jan ou vle pou kòm anpil kondisyon jan ou vle. Se konsa, isit, si mwen antre klas yo dwe 95. Si klas yo gen plis pouvwa pase 95, printf (), mwen te resevwa yon A. Great. Li k ap pase yo wè yon lòt bagay ... si epi li k ap pase yo konnen, Oh okenn, Mwen deja egzekite premye a lòt bagay. Mwen know-- oswa if-- an premye Mwen konnen ke Mwen pa gen fè yon gade nan nenpòt nan sa yo paske youn nan yo te deja vre. Se konsa, li k ap pase nan kouri soti nan tèt desann. Le pli vit ke yon sèl nan premye se vre, Lè sa a, li k ap pase yo sote sou tout rès la a lòt moun ... ifs yo. Ki fè sans? Se konsa, nan fason sa a ou gen diferan nivo kont kouran ak le pli vit ke youn nan yo se nan fo, rès yo tou, yo pa pral menm chèk la. Fre. Tout dwa. Se konsa, sa a se yon egzanp sou yon diferan sòt de deklarasyon kondisyonèl nou wè mwens souvan, men nou pral wè yo, li sèvi ak yo. Apre sa, yo ap souvan plis efikas pou sèten ka. Se konsa, nou gen sa yo rele yon deklarasyon switch. Se konsa, anvan nou kouvri sa ki nan yon lòt moun deklarasyon, yon lòt bagay deklarasyon si .... Isit la, nou gen ki sa yo rele deklarasyon switch. Se konsa, lè fè nou itilize switch deklarasyon se kle a? Se konsa, nan yon deklarasyon switch, ou anjeneral, tipikman, aktyèlman ou ka sèlman nonm antye relatif opinyon pou ou varyab ke w ap tcheke. Se konsa, si mwen te vle tcheke yo wè si yon number-- sèten pou egzanp yon nòt, si mwen te resevwa yon 90. Mwen vle li yo wè si sa a, se yon A, B, oswa C. mwen te kapab gen yon ka isit la. Sepandan, ka a gen yo dwe yon lòt konstan. Se konsa, nan sans sa a, nan deklarasyon switch kapab sèlman tcheke pou egalite nan de chif yo. Li pa tcheke pou nenpòt lòt bagay. Se konsa, ki nan yon bagay yo dwe trè w pran prekosyon ak lè w ap lè l sèvi avèk sa a. Se konsa, isit la, si mwen te vle tcheke yo wè si m 'lan nan klas yo 90 ki egal a 90 oswa 80 oswa 70 oswa 60, Lè sa a, ekri an lèt detache ak klas yo ki koresponn lan, Mwen ta kapab ekri ke nan yon deklarasyon switch. Se konsa, li k ap pase yo vin isit la, tcheke se sa a nonb antye relatif egal a konstan sa a? Si ou pa, li k ap pase yo sote. Èske li egal a konstan de, ak sou sa ak pou fè, jiskaske ou frape default la, si pa youn nan yo yo se egal-ego. Le pli vit ke youn nan yo se mete yo dwe egal, li pral fè sa a liy nan Kòd ak ti repo. Ki vle di li pral frape ki kouri, kraze, ak jis konplètman sote nan pati anba a nan kòd la. Se konsa, nan sans sa kalite a nan fonksyon tankou yon si lòt bagay si lòt bagay si deklarasyon. Se konsa, isit la nan yon konkrè egzanp pou ou nèg. Se konsa nou asime ke mwen te vle kreye yon varyab rele ane fonde. Apre sa, mwen vle pouse itilizatè a D ' ane a ki lekòl yo te fonde. Se konsa, mwen kapab kreye yon deklarasyon switch isit la. Li kite yo jis di, mwen D '1636. Kòd sa a isit la se pral wè switch ane te fonde ki egal 1636. Li k ap pase yo wè ka 1636, o sa yo se egal, printf () Pa ta dwe w ap nan ki nò lekòl up? Paske nou asime yo pa fè sa ale isit la si yo ale nan Harvard, kraze epi ale dirèkteman nan fen an. Si m 'te opinyon 1701, ki Mwen sipoze tout moun nan nou ta D ', li ta sote ka sa a, vini desann nan ka de ki se 1701, epi enprime Byenveni nan Yale! Kraze, ale dirèkteman nan fen an. Lòt Bagay ou pwobableman ap pran kou sa a sou entènèt nan ki case-- awizom akeyi Yale-- li pral pou yo ale nan nan ekri an lèt detache default, Alo entènèt! Epi kase. Yeah. Oratè 12: Èske ou ka sèvi ak lòt bagay olye pou yo default la? Andi Peng: Non, paske nan fason ki fonksyon sa a tout antye switch se bati, sentaks la ou bezwen sèvi ak se ka default ka. Se tankou si lòt bagay la si, sa a youn li a ka default ka. Yeah. Oratè 13: Ou petèt deja di sa a, men ou ka gen plis pase de ka? Andi Peng: Yeah, ou te kapab gen kòm anpil ka jan ou vle. Panse a li kòm jis tankou enfiniman ajoute sou. Oratè 14: Si ou chanje 1701 ak 1636, li pa vrèman fè yon dwa diferans? Li nan jis pral yo dwe tcheke pou li. Andi Peng: Sa se yon reyèlman bon kesyon. Epitou, n ap manyen sou sa a pita, men jis konnen sa a, se chanjman an deklarasyon se infinitely-- li a pi efikas pase sa li epi si lòt bagay si paske li opere lè l sèvi avèk yon kalite diferan nan fonksyon ki pèmèt ou, nan esansyèlman, nan jis so tou dwat nan nan ka ou bezwen yo dwe nan. Yeah. Oratè 14: Cool. Mèsi. Andi Peng: Yeah Oratè 14: Epi ou pa t 'kapab fè ka tankou ak pi gran pase. Andi Peng: No Se konsa, sa a, se sa k ap limite sou a deklarasyon switch se ke ou gen gen konstan sèlman, se sèlman nonm antye relatif. Yeah. OK. Se konsa, sa a se yon bagay ke ou mesye pral kontre mwens souvan nan, men mwen jis te vle prezante l 'nan ka. Nou gen isit la sa ki nan rele yon operatè tèrsyèr. Ki kote esansyèlman, li nan jis tankou yon si deklarasyon konpile nan yon sèl liy. Isit la, mwen pral ale sou liy kap vini an, nan paj kap vini an, paske li nan pi fasil yo wè. Se konsa, nou te tout wè dwa sa-a? Sa a se trè fasil yo swiv. Si m 'te vle fè yon varyab rele fisèl rele a, si yon nimewo sèten Mwen bay li se mwens pase 100, mwen vle bay ba fisèl la, lòt bagay mwen vle asiyen segondè. Sa a isit la se fè menm bagay la egzak moun uit liy nan kòd ap fè a. Se konsa, isit la mwen vle kreye yon afè varyab. Lè sa a se kondisyon an mwen se tcheke, si yon PO se mwens pase 100, lè sa a ou bay valè a nan ki ba, lòt bay valè a nan segondè. Glisad sa yo pral sou entènèt, pa gen enkyetid si ou nèg pa jwenn sa a desann. Sa a se jis yon fason ki pi senp, yon pi plis fason efikas nan kòd ekri. OK. Se konsa, kounye a nou ap ale nan antre nan sa ki, pou pifò moun se tankou yon trè, trè konfizyon bagay yo reflechi sou nan premye. Seksyon nan bouk. Se konsa, jodi a, nou ap ale nan pale sou twa kalite pasan. Nou pwal kòmanse avèk yon ti tan bouk, lè sa a pale sou yon fè pandan y ap riban, ak Lè sa a pale sou pou pasan. Se konsa, esansyèlman, pou plis nan elèv k ap aprann vizyèl yo deyò, nou genyen, esansyèlman, se yon grafik ilistrasyon nan sa ki yon riban pandan y ap fè. Se konsa, nan yon pwogram, ou ta kòmanse ak antre nan bouk la nan yon pwen sèten. Ou tcheke yon kondisyon. Men, si kondisyon an se vre, ou egzekite kòd la anndan an. Epi ou tounen otou ak ou tcheke. Si li la toujou vre ou kenbe kouri kòd sa a ozalantou yo ak alantou an yon riban. Sepandan, dezyèm nan ki kondisyon an vin fo, w ap ale nan kraze epi fini bouk la. Lè sa a se esansyèlman a Sentaks w ap ale nan itilize. Pandan ke yon kondisyon sèten se vre fè sa, si li nan pa vre, w ap ale nan sote nan fen a yo epi li deplase pi devan ak pwogram ou an. OK. Nenpòt moun ki gen yon egzanp sou sa ki ka potansyèlman rive si mwen eseye kouri pyès sa a nan Kòd? By wout la, sa a, se SAJ-- Scaz, Andi, Jason-- nou pral siyen nan Imèl nou an, Renmen, SAJ. Sa a nou. OK. Nenpòt moun ki gen yon egzanp, oswa ki gen yon lide sou sa ki sa a ta enprime? Kalite yon kesyon Trick. Se konsa, isit, sonje kondisyon an nou ap tcheke pou se pandan y ap vre. Se konsa, pandan sa a se vre, li la ale nan enprime, mwen renmen SAJ! Èske gen nenpòt ki pwen nan ki nou ta chanje sa a nan anyen otreman? Pa gen, dwa? Se konsa, nan isit la, nou gen rankontre sa ki nan pwobableman ale nan dwe bugging yon anpil nan pwogram ou, bouk la enfini. Ou ap jwenn ke si ou kouri pyès sa a nan kòd, li nan jis ale nan kenbe enprime, mwen renmen SAJ! Pandan ke nou apresye sipò a, nou pa vle òdinatè ou aksidan paske ou kenbe enprime mwen renmen SAJ! Se konsa, tanpri, tanpri, evite riban an enfini paske li nan pa janm ale evalye ak fo epi ou pa janm ap ale yo kite bouk la. Apre sa, w ap ale nan dwe aspire nan pou tout tan. Fre. OK. Kalite an dezyèm nan riban nou pral pale sou jodi a se fè a pandan y ap riban, fè pandan y ap riban. Ak sa yo rele yon fè pandan y ap riban paske ou gen yon fè ak yon ti tan. Se konsa, sa a se trè menm jan ak yon ti tan bouk, men yon ti jan diferan. Isit la, w ap ale nan fè tou sa a andedan nan sa a pandan y ap yon kondisyon sèten se vre. Se konsa, si m 'te C ak òdinatè a mwen se kouri desann pyès sa a nan kòd, Mwen pran yon gade nan tèt la. M 'ale nan C, M' ap di fè bagay sa a. Lè sa a, mwen tcheke, pandan y ap sa a se vre, mwen gen yo repete li. Men, pandan ke sa a se fo, lè sa a mwen avanse pou pi devan ak mwen pa janm tounen nan ki bouk ankò. Èske okenn moun pran yon koud nan sa ki diferans ki genyen ant sa a bouk epi nou youn nan jis gade te pratikman. Yeah. Oratè 15: Kondisyon nan vin apre olye pou yo ye anvan an? Andi Peng: Egzakteman. Se konsa, li te di kondisyon an vin apre, pa anvan. Alafen, diferans ki genyen ant sa a ak riban a pandan y ap se ke ou ap jis pral fè tou sa a andedan sa a kèlkeswa si wi ou non kondisyon ou a se oswa ou pa vre, Lè sa a, tcheke kondisyon ak nan. Se konsa, nan ka sa a, w ap always-- nan fason sa a, ou toujou ap fè si tou sa ki andedan kouri omwen yon fwa anvan tcheke yo wè si ou vle li nan kouri ankò. Ak isit la se yon egzanp de lè nou ta sèvi ak li. Se konsa, pou egzanp, si mwen te vle gen yon varyab nan kalite int yo te rele laj, e mwen vle pouse itilizatè a pou laj yo, Mwen pral fè printf () Ki laj ou? laj = GetInt (), ki se pouse itilizatè a. Se konsa, kèk moun yo pral reyèlman anmèdan. Apre sa, ou pa vle pinèz nan ou pwogram nan yon moun Anthrax tankou, oh mwen se negatif 4 ane fin vye granmoun oswa kèlkeswa sa. Nan ka si yo ki fè sa, sa a evalye vre, ki vle di ke mwen pral gen kenbe pral tounen ak ap fè sa a. Se konsa, sa a ki pral kenbe re-pouse itilizatè a l 'ban nou tankou yon reyèl Nimewo laj ak li a ale nan kenbe prale ak rétablir tounen li jouk yo ba ou yon laj reyèl pi gran pase yon sèl, oswa ou pa zewo. Se konsa, allusion, allusion. Sa a pral trè, trè itil pou youn nan pwoblèm PSet ou yo. Yeah. Oratè 16: Whoops, regrèt. Andi Peng: Oui. Oratè 16: Èske gen, pa yo dwe genyen yon estipid, but-- Andi Peng: Pa gen enkyetid. Oratè 16: --are gen règ diferan isit la, oswa ou te jis bliye yo mete sitasyon pi ba la? Andi Peng: Oh Yeah. Padon, sa a, se totalman move m 'yo. Sa ki te definitivman sipoze yon sitasyon pi ba. Bon trape. Sa pa ta kouri. OK. Se konsa, kalite nan sot pase yo nan bouk nou pral pale sou ak, finalman, kalite pi plis nan konplèks se la pou riban. Pa enkyete w si ou pa fè sa konnen ki sa sa vle di. Li trè konfizyon an premye. Nou pral ale sou yon egzanp. Tout sa ki k ap pase nan yon pou riban se ke ou gen twa deklarasyon ki w ap ale nan gen ladan. Se konsa, pou yon bagay sèten, w ap ale nan inisyalize yon varyab. W ap ale nan ajoute kondisyon an ki sa a riban ap kenbe kouri. Apre sa, lè sa a, nan fen a riban, w ap ale nan mete li. Ou ka mete ajou varyab la ke ou vle kenbe tras nan. Se konsa, nou tipikman sèvi ak pou pasan pou lè nou vle kouri yon bouk pou yon sèten kantite fwa epi nou deja konnen, Oh mwen vle sa a riban al touye tankou 10 fwa, lè sa a ou do-- mwen pral ale sou yon egzanp nan paj kap vini an. Se konsa, isit pou egzanp, nan grafouyen, si ou te vle yon bagay yo repete 10 fwa, tout sa ou te di te, repete 10 fwa Mwen renmen SAJ! ki se yon plis akseptab montre nan sipò pou nou olye ke riban an enfini. Isit la, ki jan ou ta tranzisyon nan C ak ekri se sa ki pou int-- mwen pral kreye oswa deklare yon varyab nan kalite int yo te rele m. Mwen pral inisyalize li nan 0, Se konsa, mwen = 0; ak sa a se pral yo dwe kondisyon m 'yo. Se konsa, mwen se mwens pase 10. Lè sa a, nan end-- nan deklarasyon ki sot pase a ou se ale nan gen se aktyalizasyon a nan sa k ap pase nan mwen an varyab nan fen ou a pou riban. Se konsa, li nan kalite konfizyon, paske diferan pati nan liy sa a ap pase nan diferan kalite riban an. Men, mwen pral ale sou yon pseudocode egzanp sou ki e petèt esplike sa a jis yon ti jan pi byen. Se konsa, isit la. Sa a riban an nou jis te wè. Esansyèlman nan pseudocode, ki sa ap vini nan pwogram sa a, se premye mwen kreye m, inisyalizin li nan 0. Mwen tcheke yo wè si mwen se mwens pase 10, nan ka sa premye fwa a li se paske 0 se mwens pase 10. Se konsa riban an ki pral kouri. Lè sa a, mwen pral enprime liy sa a. Lè sa a, nan fen liy sa a, dwa isit la, mwen pral fè enkreman mwen, mwen ++, tout sa ki vle di se incrementing li pa youn. Se konsa, mwen se kounye a 1. Paske li te yon fwa 0, si mwen kantite li a, li la kounye a 1. Lè sa a, mwen pral tounen nan konmansman an nan bouk la ak mwen tcheke kondisyon an. Se kondisyon an toujou vre? Wi, 1 se toujou mwens pase 10. Se konsa, li k ap pase yo enprime sa a ankò, ale ak Lè sa a kantite mwen, epi tcheke kondisyon an kontinyèlman, kontinyèlman, jiskaske ou evantyèlman jwenn nan pwen kote mwen se 10. W ap ale nan enprime sa a 10 fwa ak Lè sa a mwen ki pral egal 10. W ap ale nan tcheke kondisyon an. Se 10 mwens pase 10? Non, se sa ki fo. Se konsa, sa a riban a pa pral nan kouri, li k ap pase yo kraze, ak w ap ale nan kontinye sou ak kòd ou a. Se konsa, kòm ou nèg ka wè, sa a se yon vrèman gwo egzanp nan yon bouk ou ka pwogram nan ki kouri pou yon kantite lajan ki espesifye nan fwa. Chak klè youn? Yeah. Oratè 17: Kouman sou enkreman exponentielle, se li diferan kodaj? Andi Peng: Ou can-- nou pral ale sou sa a nan pwochen glise la. Bon kesyon. Èske anyone-- anvan m 'deplase on-- nenpòt moun nan tout konfonn, paske sa a se yon konsèp vrèman difisil. Pa gen enkyetid, si you're-- OK. Fre. Tout dwa. Jis yon glise jeneral. Sa a riban pandan y ap fè a se egzak menm bagay la pou riban te ye a. Li nan jis ekri yon lòt jan. Ou nèg ka parkourir glisad yo nan konvenyans ou pita sou. Men, jis konnen ke gen nan plizyè fason pou ekri menm bagay la rive ak pasan diferan. OK. Se konsa, kounye a nou jwenn nan kesyon an nan sa si nou gen yon riban andedan nan yon riban. Nou ap trape nan reyèl Kòmansman kalite bagay isit la. Lè ou vle fè bagay sa yo miltip fwa andedan nan lòt bagay ki fè bagay sa yo plizyè fwa, ou vle sa k ap rele yon enbrike pou riban. Pou moun nan nou ki moun ki premye wè sa a ak debarase trè konfonn, tout sa nou ap fè isit la se gen yon pou riban ki kote nou gen yon varyab nan ranje. Men, andedan nan li, nou gen tou yon lòt pou riban nan yon varyab rele kolòn. Apre sa, mwen trè sijere nou tout ki ki ap konfonn nan premye kenbe track-- trase sa a soti, trase sa a soti. Pa eseye jis rezon nan li, rale yo mete deyò. Nan tèt ou, sou pyès sa a nan papye, oswa kèlkeswa sa, ekri ranje, kenbe tras nan sa ki ranje ki egal a. Ekri kolòn, kenbe tras nan sa ki kolòn ki egal a. Ak kenbe tras nan ki sa ki enprime soti ak chak iterasyon. Chak iterasyon nan sa a riban, chak iterasyon nan ki pi gwo riban, jis kenbe sa yo lojik la. Apre sa, mwen garanti ou, ou pral renmen sa ou wè, paske li nan tou trè aplikab pou kouche pwoblèm ou. Fre. Tout dwa. Se konsa, bagay ki pi enpòtan ke ou nèg yo se pwobableman tout panse sou kounye a, se pwoblèm Mete ou 1S, ki se akòz Jedi / Vandredi. Nan pwogram water.c ou, allusion w ap ale nan gen vit itilizatè a pou yon opinyon. Nan pwogram mario.c ou w ap ale nan gen yo sèvi ak yon enbrike pou riban, ki se yon pou riban andedan yon pou riban, ekri ak lèt ​​detache yon blòk nan piramid, esansyèlman tankou sa Mario gen so nan. Lè sa a, andedan greedy-- oswa ou petèt Fè Chanje, si nenpòt nan ou nèg te janm tande pale de that-- w ap ale nan gen yo dwe trè atansyon nan premye valè k ap flote pwen. Sonje chif desimal k ap flote ak nonm antye relatif yo pa menm bagay la. Kenbe tras de ki se yon sèl ki. Apre sa, w ap ale nan sèvi ak deklarasyon kondisyonèl, tankou byen. Tout dwa, bagay pase. Mwen te gen yon minit koup kite. Style. Se konsa, sa se yon bagay ki pa fè sa aktyèlman efè efikasite a, oswa kouri aktyèl la nan kòd ou a. Sepandan, li efè nou kòm elèv klas ou, menm jan lektè ou yo. Li efè tèt ou, si w ap ap eseye jwenn yon pwoblèm. Li efè lizibilite nan kòd ou a. Se konsa, style, tankou lè w ap eseye style yon redaksyon pou angle, si ou pa t 'gen paragraf, ou gen tout bagay kalite a melanje ansanm sou yon sèl liy, li fè li vrèman difisil pou okenn moun li redaksyon ou, menm si pwen ou yo lojikman son. Menm bagay nan pwogram. Ou ka gen oribleman fènwa Kòd ki Scaz pral kouvri, epi li ka toujou kouri ak fonksyon. Men, pou nou, tankou TAS bèl nou an, ki pral ap li ak evalye psets ou, sa a pa trè bèl. Se konsa, tanpri, pou dedomajman pou la nan nou ak tèt ou, lè w ap ap eseye ranje yon pwoblèm nan kòd ou a, epi ou ap eseye li Kòd pwòp ou a, fè w ke ou swiv kèk konvansyon ke nou ap ale nan ale sou. Se konsa, an premye. Bay varyab ou non ki gen sans. Si ou vle nan magazen yon nonb antye relatif rele laj, tanpri non li laj. Pa non li wotè. Lè w ap eseye magazen yon laj nan wotè, li fè tout bagay trè konfizyon pou nou. Nou pa renmen dwe konfonn. Ou pa renmen dwe konfonn. Pa gen moun ki renmen yo dwe konfonn. Si w ap ale nan kreye yon bagay, non li yon bagay ki gen sans. Sepandan, nan pou riban, yon sèl varyab pèsonaj yo anjeneral amann. Ak nan pou riban, si ou vle jis mwen, ak J, K, santi yo lib nan jis fè sa. Konsistan inisyalizasyon. Se konsa, sa sa vle di? Sa vle di teknikman, teyorikman, ou ka kòmanse ak kreye miltip varyab sou liy lan menm. Se konsa, pou egzanp, mwen kapab kreye yon nonb antye relatif rele scaz_age, ak nonb antye relatif rele andi_age = 20, ak yon nonb antye relatif rele jason_age sou liy lan menm. Apre sa, mwen kapab tou bay se sèlman youn nan yo epi yo pa lòt moun yo nan valè. Nou mande w tanpri pa fè sa. Paske isit la ou te esansyèlman kreye twa varyab, men se sèlman youn nan yo aktyèlman te gen yon valè. Lè sa a, lè nou ap ap eseye li kòd ou a, oswa si w ap eseye ranje yon pwoblèm nan kòd ou a, li trè konfizyon yo swiv. Se konsa, jis pou lizibilite ou, pou lizibilite nou, pa fè sa. Konsistan aparèy òtopedik Curly. Gen kèk moun ki renmen mete yo aparèy òtopedik Curly nan diferan kote. Li pa reyèlman gen pwoblèm. Jis asire w ke ou ap konsistan nan ou pwòp Kòd sou kote ou renmen yo mete yo. Konsistan espas. Si ou mete yon espas apre yon pou riban, toujou fè sa. Pa sèlman renmen kalite fè l 'nan kèk kote, pa fè l 'nan lòt moun. Jis dwe konsistan. Dezyèmman, si okenn moun ta renmen yo parkourir CS50 Style Gid la, nou ofisyèlman gen yon gid style ki di ou tout nan konvansyon sa yo, plis plis ankò. Li nan sou entènèt. Se tankou cs50.net/style oswa yon bagay tankou sa. Ou ka google li. Konsistans se kle. Se konsa, pa enkyete sa lòt moun ap fè, jis asire w ke ou se konsistan nan Kòd pwòp ou yo. Nenpòt moun ki gen nenpòt kesyon sou sa? Yeah. Oratè 18: Se konsa, bagay ki kòrèk fè ak inisyalizasyon se jis gen yo tout nan yon separe liy, se ke sa w ap di? Andi Peng: Se konsa, mwen raman te sa a rive. Men, si ou te vle, si ou te vle fè tankou ekonomize espas nan kòd ou a, oswa kèlkeswa sa, ou ka fè sa. Nou mande ke ou jis pa inisyalize yon sèl bagay epi yo pa lòt moun yo. Se konsa, si ou vle fè int scaz_age, int andi_age, int jason_age, sa se amann. Jis pa inisyalize yon sèl epi yo pa lòt moun yo se tout. Kesyon? Tout dwa. Mwen pral pase sou nan mikwofòn, ak konsèy la lazè, ak baton nan Scaz nan pwen sa. Sa a se gòch. Isit la li ye. BRIAN SCASSELLATI: Mèsi. Ki jan nan ki pou son? Son se yon bon bagay? . Ekselan. OK. Se konsa, hi tout moun. Mwen pral pou yo eseye travay nan yon egzanp pratik avèk ou. Epi nou ap ale nan sèvi ak CS50 nan anviwònman devlopman, sa ki rele Devlopman anviwònman an entegre Integrated. Apre sa, ou te wè sa a demontre nan konferans. Ak nan pwoblèm Fikse 1, w ap ale nan gen yon opòtinite yo sèvi ak li, ak jwe otou ak li, epi pou yo jwenn abitye li, paske nou ap ale nan sèvi ak li nan rès la nan semès la. Se konsa, nan IDE sa, ou gen sa ki sanble tankou yon navigatè dosye trè tradisyonèl sou sou yon bò. Ou te gen yon pòsyon moute tèt ki kote ou ap ale wè kòd sous ou, ou Cfile a, kòd a ke ou ekri. , Li desann anba, ou pral gen yon fenèt tèminal ki ou pral lè l sèvi avèk tou de konpile pwogram ou an ak kouri oswa egzekite pwogram ou an. OK. Se konsa, jis ba nou yon ti kras nan fondasyon, nan ki fenèt tèminal, w ap ale nan gen lè l sèvi avèk yon seri kòmandman ki kòmandman estanda nan tout pi fò nan UNIX oswa Linux sistèm yo. Se konsa, si ou te janm itilize nenpòt ki fòm nan UNIX, Ubuntu, oswa nenpòt nan lòt gou yo, sa yo yo pral gade yo konnen yo. Si ou gen pa, pa enkyete. Pa gen anyen konplike sou yo. Yo ap jis lè l sèvi avèk yon diferan sentaks, se yon nonmen diferan konvansyon pase ou te wè anvan. Se konsa, nan lis soti dosye yo ki nan yon anyè patikilye, yo pwal santi yo sèvi ak yon lòd rele ls, oswa lis. Si ou vle wè tout bagay ak tout detay yo, ou pral sèvi ak yon lòd liy diskisyon ak ls -l. Epi sa pral montre w tout bagay nan plis detay, ki gen ladan autorisations yo pou yon dosye-a. Pou chanje anyè, ou pral sèvi ak yo lòd, ki cd. Men, ou pral kapab chanje anyè tou de pou yo ale nan anyè lakay ou. Se jis CD tout pa tèt li, CD ak de pwen ap retounen ou leve yon sèl nivo nan anyè anvan ou yo. Epi ou kapab tou cd a yon repèrtwar pa sezisman nan CD ak non an nan ki repèrtwar. Ou kapab tou kreye nouvo repèrtwar. Epi nou ap ale nan mache nan sa a nan jis yon minit. Men, jis yo mete tout bagay sou ekran an. Se konsa, ke ou ka wè yo. Ou ap gen tou kapasite a yo manipile dosye dirèkteman soti nan liy la lòd. Ou pral kapab a kapab bay kopi yo, yo deplase yo, oswa yo retire yo, ki se, se efektivman, nan efase yo. IDE nan CS50 ba ou plen nan pouvwa nan liy lòd agiman. Lè sa vle di ou ka tou fè bagay sa yo trè danjere. OK. Pou egzanp, ou kapab retire, oswa ki se Delete, yon dosye san yo pa mande pou yon konfimasyon. Epi ou ka menm retire recursively-- sa a, se r nan priz flag-- yon tout repèrtwar ak tout sa li yo. OK. Yo ap ki nan lis nan wouj paske ou ta dwe reflechi "Danje" chak fwa ou wè bagay sa yo. OK. Tout dwa. Koulye a, finalman, sa ki pou ale nan dwe reyèlman ki gen anpil valè nou la a, yo gen yon kèk ke trik nouvèl bon konnen jan ou ap navige nan fenèt tèminal sa a. Premyèman, ou ka klè ekran an nan nenpòt ki lè pa jis tape nan klè. Apre sa, w ap ale nan wè m 'fè sa byen souvan. Ou kapab tou jis montre tèks la nan yon dosye pa sezisman plis ak Lè sa a non an dosye-a. Ou ap Lè sa a, pral kapab woulo liv retounen lakay yo epi ansanm ak ki jis ak bar la ak flèch kle. Si ou genyen, jan nou te fè jodi a nan konferans, yon pwogram ki ap kouri kontinyèlman nan enfini bouk, ou ka sispann ke pwogram soti nan egzekite pa sezisman nan kontwòl, ki kenbe desann kontwòl-C. Epi ou ka dwe fè sa a plizyè fwa. Òdinatè a vin byen lwen devan yo nan ou. Epi pafwa ou bezwen bay li yon koup la ap eseye anvan li pral aktyèlman vini nan. Ou ap tou kapab sòt nan kòmandman yo ke ou jis tape lè l sèvi avèk kle a moute, flèch kle, ak Lè sa kle nan flèch desann. Ak sa ki nan pi itil se olye a sezisman soti non dosye long, ou pral kapab nan tab la itilize nan otokonple yon enstriksyon kèk. Koulye a, nou ap ale nan demontre tout moun ki nan jis yon dezyèm fwa. Se konsa, si ou pa sonje yo, pa enkyete. Sa yo se bagay sa yo ke ou pral ranmase epi sèvi ak menm jan nou ale ansanm. OK. Se konsa, nan C-- kontrèman ak nan grafouyen C se yon lang konpile. Sa vle di nou ap ale nan pran yon sous file-- sa a, se tèks la ke ou ekri, kòmandman sa yo ke ou ekri a, printf () deklarasyon, pasan yo, tout bagay else-- e nou pral pran ki dosye ak men li koupe nan yon pwogram yo rele du a. Du a pral lè sa a pran ki tèks ke ou te ekri ak tradui l 'nan enstriksyon yo binè ki òdinatè w lan se aktyèlman pral sèvi ak yo. Sa yo rele objè a oswa dosye a ègzèkutabl. Si ou gade nan sa a ranpli, w ap ale wè kòd a ke ou te ekri. Si ou gade nan sa a ranpli, w ap ale yo wè yon sekans o aza nan karaktè ki fè okenn sans tou. Sa a se paske sa a se binè la. Li pa nan vle di pou ou yo dwe lekti. Sepandan, nenpòt ki lè ou vle kouri yon bagay, ki sa w ap ale yo dwe kouri se sa a ranpli objè. Se konsa, lè nou travay ak sa yo dosye, nou pral ekri yon dosye ki nan C. Nou pral Lè sa a, konpile li, lè l sèvi avèk yon lòd tankou fè ki pral envoke sonnen nan du pou lang nan C. Epi sa yo pral pwodwi yon objè ranpli, tankou yon soti, oswa nan ka sa a, non an, dosye mwen, ke mwen te mete nan. Tout dwa. Se konsa, kite a aktyèlman eseye sa a. Se konsa, mwen te vini ak yon egzanp nan sa ki mwen te vle eseye. Ak youn nan bagay sa yo ke fasin m 'se animasyon. Se konsa, nou ap ale nan eseye fè yon ti kras nan animasyon lè l sèvi avèk jis karaktè ASCII. Karaktè nou ka enprime soti fasil kounye a. Se konsa, isit ki pi bon tantativ mwen a kreye pou ou animasyon an nan yon Bunny kouri nan zèb la wotè. Se la li ye. OK. Se konsa, li pa nan kouri ankò, men li se kanpe la nan zèb la wotè. Koulye a, si m 'te yon Animateurs, nan lekòl la fin vye granmoun vèsyon nan animasyon, ki sa mwen ta fè se Mwen ta pwodwi yon foto nan Bunny sa a nan zèb la. Lè sa a, mwen ta pwodwi yon lòt picture-- yon lòt sa yo rele cell-- ki te Bunny a sèlman yon ti kras brannen l '. Lè sa a, yon yon tyè ki te gen nan Bunny deplase yon ti kras pi lwen. Apre sa, mwen ta pwodwi yon tout antye sekans nan selil sa yo. Gen kèk kote Bunny a se sou sou bò men gòch. Lè sa a, deplase tou dousman, yon sèl pa youn nan direksyon mitan yo. Lè sa a, soti nan mitan an sou nan bò dwat la. Men, si m 'te lè sa a, reyèlman gen chans, mwen te kapab mete l 'ansanm ak mwen te kapab enkouraje yo. Apre sa, nan Bunny mwen kouri nan zèb la. Sa a gwo PowerPoint mwen je chèch pou jounen an. OK. Se konsa, sa a se kòm bon jan li vin. OK. Se konsa, isit la yon lòt fwa ankò, isit la se nou an Bunny kouri nan zèb la. Oratè 19: Yon fwa ankò. BRIAN SCASSELLATI: Youn plis tan, tout dwa. Genyen Bunny ou yo. OK. Se konsa, jodi a ki sa nou ap ale fè se nou ap ale pou yo eseye otomatize pwosesis la nan pwodwi selil sa yo. Nou pa pral byen li ale nan pwen an nan ke yo te kapab mete yo tout ansanm. Men, nou ap ale nan eseye otomatize a pwosesis pou génération sekans sa a. Lè sa a se anpil nan sa ki animasyon jodi a se tankou. Ki se, ou pa fè bagay sa yo nesesèman pa fè desen tout bagay nan men. Nou itilize yon òdinatè nan otomatize pati nan pwosesis sa a. OK. Se pou m 'chanje sou kounye a IDE CS50 nou an. Apre sa, mwen te kreye pou fi Fiziyad Kous epi kite m 'rale nan isit la yon ti kras bit-- Mwen te kreye pou nou yon pwen depa. Chak fwa ke nou mande w yo chita desann epi ekri yon moso nan kòd, sa n ap reyèlman mande ou fè se nou ap mande yo rezoud yon pwoblèm. Apre sa, fason ke ou ta dwe panse osijè de fè sa se pa kòmanse ak kèk senp yon pati nan ki solisyon. Lè sa a, bati soti nan pati sa a. Epi sa a, ki sa nou ap ale nan fè jodi a. Se konsa, olye ke ap eseye tout nan yon fwa yo ekri pakèt la tout antye de Kòd sa a, se ale nan pwodwi sa yo 10 selil animasyon, nou ap ale nan kòmanse olye pou ak yon sèl pyès ki travay. Lè sa a, nou pral bati yon ti kras alantou ki ak yon ti kras pi plis ak yon ti kras plis. Koulye a, bon bagay la sou rezoud pwoblèm nan fason sa a se ke li pral pèmèt ou kòmanse toujou ak yon bagay ke ou konnen travay epi prezante yon chanjman gradyèl. Epi sa a, yon bon fason aprann kijan nan kòd, paske chak fwa ou fè yon chanjman, ou wè sa ki enpak li te genyen an. OK. Se konsa, isit la nan pwen depa nou an. OK. Se konsa, nan kòmansman an nan dosye mwen, Mwen te regle stdio.h #included. Sa a pou m 'ka jwenn nan printf () fonksyon nan travay. Mwen Lè sa a, mwen gen fonksyon prensipal m 'yo. Lè sa a toujou sanble yon ti kras Esoteric oswa fènwa nan kèk nan ou. Se byen. Tout li di se ke fonksyon prensipal pran vle di pa gen arguments-- anile pa gen anyen nan C. Epi, se retounen pa konvansyon yon nonb antye relatif. Main toujou retounen yon nonb antye relatif, anjeneral yon kòd di pawòl te mache byen oswa ou pa t 'ale byen. OK. Men, prensipal te gen sa fòme pou nou kounye a. Mwen te Lè sa a, mete nan twa liy nan kòd. Ak ansanm ak chak liy nan Kòd, mwen te mete yon kòmantè. Koulye a, youn nan bagay sa yo ke nou pral ensiste pou di ke ou fè sa, ak li a tankou yon enpòtan pratik pwogram, se toujou kòmantè kòd ou a. Toujou ekri nan yon Angle kòmantè yon bagay ke ou panse a se kòd sipoze fè. Nan fason sa a, pita sou lè ou tounen vin jwenn li, ou ka gade nan li epi ou ka di, oh, mwen sonje sa m 'te ap eseye fè ak sa. Ou lè yon TA chita sou tab ansanm ak ou nan eseye ede ou nan lè biwo, yo ka gade nan sa a epi ale, mwen wè sa ki ou te ap eseye fè, men olye sa a se sa k ap reyèlman ap pase. OK. Se konsa, mwen te gen twa pati nan kòd m 'yo, Mwen pral premye nan tout ekri an lèt detache soti kèk pwen nan kòmansman an. Mwen pral Lè sa a, enprime soti mwen trè anpenpan Bunny. Lè sa a, kèk ti jan nan pwen nan fen an. Ak twa deklarasyon sa yo ekri an lèt detache yo ta dwe gade abitye nan ou nan pwen sa. Tout sa ki m ap fè nan chak nan yo se mwen se enprime soti yon sekans nan karaktè. Gen nan pa gen varyab enplike nan sa. Tout se jis plat. OK. Se konsa, si m 'desann kounye a terminal-- mwen kite a wè si mwen ka jwenn sa a tounen out-- ak mwen pral tape klè ankò. Oratè 20: Èske nou itilize nan doub koupe fè kòmantè? BRIAN SCASSELLATI: Èske itilize repons lan se wi nan double--. Genyen plizyè fason yo kite kòmantè nan C. Youn fason se yo sèvi ak koupe nan doub. Lòt la se yo sèvi ak yon koupe ak yon etwal ak Lè sa a fèmen ak yon zetwal yo ak yon koupe. Tout dwa. Premye a tout, mwen pral kòmanse navige alantou isit la. Se konsa, si m 'ale nan anyè lakay mwen, Mwen te chanje repèrtwar la, Mwen pral fè yon gade ak wè sa ki nan nan ki anyè, ls, lis soti. Mwen pral wè ke mwen te te resevwa de subdirectories. Se pou nou fè sa-a yon ti kras pi gwo isit la pou nou ka tout wè li. Mwen ka wè ke mwen te te resevwa de subdirectories. Mwen pral chanje anyè ale nan vorkspas. Apre sa, mwen pral sèlman tape soti pati nan li, ak Lè sa a jis frape Tab. Epi, se pral konplete rès la pou mwen. Anpenpan. Mwen pral gade epi yo wè nan vorkspas. E yo gen dwa kounye a, mwen ap travay sou supersection nan ke nou ap anseye kounye a. Se konsa, mwen pral ale nan ki anyè. E finalman, gade ak wè. Apre sa, mwen te gen ki bunny.c dosye-a. Tout dwa se pou m 'klè yon fwa plis. Apre sa, mwen pral now-- ankò mwen se toujou rete nan ke anyè ak li a di m 'mwen se nan ke anyè supersection. Mwen pral ale pi devan epi fè Bunny pwogram m 'yo. Epi sa lòd, fè Bunny, pandan y ap kònen klewon yon ti jan enpè, tou susit du a sonnen. Apre sa, li nan pwodwi pou m 'yon pwodiksyon ki se yon funny-- yon ègzèkutabl ègzèkutabl dosye rele Bunny. OK. Mwen kapab lè sa a, ak sa a son menm vin pi mal, egzekite Bunny. OK. Li kite yo wè sa ki li fè sa. OK. Sa se yon ti kras nan sa m 'te tann. Mwen te gen foto Bunny m 'ki nan la, men mwen kalite te vle li tout pou kont li. Ki sa mwen manke? Oratè 21: koupe l oswa koupe n. BRIAN SCASSELLATI: koupe n. OK. Se konsa, kite pou yo tounen soti isit la. Apre sa, mwen pral jwenn soti nan sa. Apre sa, mwen pral ale tounen nan yon sèl sa a. Li kite yo pran yon gade kounye a soti nan fonksyon prensipal m 'isit la. Se konsa, sa mwen ta dwe fè? Mwen vle fini liy. Se konsa, mwen pral mete nan yon kòmantè. Mwen pral mete nan yon printf (). Ak sa ki mwen gen yo mete nan? / n. OK. Sa m 'genyen nan fen l' ak? Virgules. Tout dwa. Koulye a, youn nan la reyèlman bagay enpòtan an se asire w ke chak fwa ou fè yon chanjman nan kòd ou a, ke ou sove li. Si ou pa gen sove kòd ou a, w ap ale nan avi yon ti kras zetwal 'kanpe. Epi sa zetwal di ou pa gen sove Kòd sa a. Si m 'konpile li kounye a, li pa ale nan reflete nenpòt nan chanjman sa yo, paske du a parèt nan dosye a sa a, se sou ki gen kapasite a, pa dosye a sa a, se louvri nan editè ou yo. Tout dwa. Se konsa nou sove li ak Lè sa a nou pral ale dwa sou desann isit la, tounen vin soti. Desann vin jwenn tèminal m 'yo. Li kite yo klè espas ki la ankò. Apre sa, nou ka ale pi devan epi yon sèl plis tan fè pwogram Bunny nou an. Ak egzekite Bunny a. Sa pa t 'travay swa. Wrong koupe. Se konsa, si ou gade nan sa ki mwen te gen, mwen mete yon / n nan la, men mwen te gen koupe a mal. Tout sa òdinatè w lan Èske se yon bagay ki eksplisit. OK? Yon ti kras erè nan ponktiyasyon, ak toudenkou ou pa jwenn sa ou vle. Tout dwa. Se konsa nou rale tounen soti ankò. Nou pral ale tounen. Oke fè ki reparasyon trè rapid. Nou pral mete koupe nan dwa a. Nou pral sove li. Nou pral rale tounen nan. Pou kèk rezon, sa a pa yo te kontan, men kite a ale pi devan epi n ap tounen nan tèminal la isit la. Debarase m de li. Nou pral rale nan. Apre sa, yon lòt fwa ankò, nou pral fè Bunny. Epi, koulye a asire w ase, li fonksyone. Hooray. OK. Se konsa, kite a eseye fè sa-a yon ti kras plis jeneral. Ann wè si olye pou yo jis enprime yon sèl ankadreman patikilye, kite a wè si nou ka fè sa-a pou nou ka jwenn tout 10 nan tout sa yo ankadreman anime ke nou te vle genyen. Se konsa, ankò, se pou yo pran sa a yon etap nan yon tan. Se pou nou premye jeneralizasyon li, pa pou m 'fè tout ankadreman yo, men se konsa m 'fè yon moun ankadreman pou m 'ka vle. Se konsa, sa ki nan diferans ki genyen ant ankadreman yo? Èske Bunny a menm bagay la tou? ODYANS: Wi. BRIAN SCASSELLATI: Yeah. Ki sa ki nan diferans lan? ODYANS: Pozisyon. BRIAN SCASSELLATI: pozisyon li yo, dwa? Ak ki jan pou m kontwole pozisyon li? Konbyen pwen mwen se mete nan kòmansman an ak ki jan anpil pwen mwen se mete nan fen an. Se konsa, mwen te gen senk nan la kòmanse ak senk nan fen an. Se pou yo ranplase ke senk ak yon pou riban. OK. Apre sa, mwen pral yo kreye yon pou bouk kounye a ke k ap pase yo di, Mwen pral enprime kèk nimewo nan pwen nan kòmansman an. Mwen pral sèvi ak yon varyab. Se pou nou di, ki jan sou mwen kòm vann san preskripsyon an nan bouk m 'yo. Apre sa, mwen pral deklare l 'kanpe tèt. Lè sa a, nan nan pou riban Mwen bezwen fè twa bagay sa yo. Premye bagay mwen bezwen fè se mwen bezwen inisyalize mwen. Kisa mwen ta dwe inisyalize li nan kòmanse yo dwe? 0. OK. Apre sa, mwen bezwen di, sa ki nan revokasyon kondisyon an? Lè m 'ta dwe sispann? Oke ki jan anpil pwen ou vle enprime sou yon sèl sa a? ODYANS: Senk. BRIAN SCASSELLATI: Senk ankò? Kouman sou kite a fè yon bagay diferan, nou te fè senk. Se pou nou montre ke li nan diferan. Oratè 22: De. BRIAN SCASSELLATI: De. OK. Se konsa, si mwen vle de pwen, ki sa mwen ta dwe mete isit la? ODYANS: Twa. BRIAN SCASSELLATI: Twa. OK. Konbyen fwa se ke ale yo ale nan? Sa k ap pase yo ale nan twa fwa, 0, 1, ak 2, Dwa? Tout dwa, se pou yo ale tounen desann nan de. Koulye a, nou pral jwenn de pwen. Ak sa ki fè mwen vle fè chak fwa mwen ale nan bouk la? Ki sa ki te chanje chak fwa mwen ale nan? Oratè 23: Ajoute yon dot. BRIAN SCASSELLATI: Mwen gen kenbe prale. Mwen pral ajoute yon dot. Mwen pral enprime yon dot, chak fwa nan bouk la. Men, ki jan mwen kenbe tras nan ki jan anpil fwa mwen te nan bouk la? Mwen lè l sèvi avèk mwen, ki varyab, ki vann san preskripsyon. Se konsa, chak fwa a, mwen pral kantite kontwa an pa youn. Koulye a, sa a, se menm bagay la pou m 'ke li di mwen = mwen + 1. Se byen. Mwen te kapab fè l 'that-- Mwen renmen an steno, se konsa mwen pral di m ++. OK. Se pou yo fè menm bagay la desann isit la nan pati anba nan. Se sèlman mwen kalite te fè sa yon sèl. Mwen pral kite ou nèg fè yon sèl sa a konplètman. Tout dwa. Se konsa, sa mwen ta dwe ekri isit la? Isit la nan mwen an pou riban. Mwen pral fè yon printf () ak mwen pral fè li pou m 'sèlman enprime yon sèl dot sou sa anba. Kisa mwen ta dwe ekri andedan sa a pou bouk kounye a? Oke, premye nan tout sa varyab mwen ta dwe itilize? Oratè 24: j. BRIAN SCASSELLATI: Mwen te kapab itilize j. Èske mwen ka itilize yon sèl la menm? Èske mwen ka itilize m ankò? Yeah. Sa a OK, paske se nan ke mwen lè l sèvi avèk moute isit la, Mwen pa bezwen yo ankò lè Mwen jwenn desann nan pwen sa a. Se konsa, sa mwen ta dwe inisyalize mwen yo? Oratè 25: 10. BRIAN SCASSELLATI: 0. Kisa mwen ta dwe tcheke? Konbyen pwen mwen bezwen kounye a nan fen a si mwen te gen de pwen nan kòmansman an? Mwen bezwen uit nan fen a, Se konsa, sa mwen ta dwe tcheke, mwen mwens than-- ODYANS: Sèt, uit, nèf. BRIAN SCASSELLATI: Mwen tande sèt. Mwen tande uit. Apre sa, mwen tande nèf. OK. Se konsa, nou ap tout nan bon nan ball-- Jason di 10. OK. Si mwen te bezwen de pwen pou youn nan premye, konbyen fè I-- ak mwen bezwen uit pwen pou a dènye yonn-mwen mete yon de moute pi wo a, sa pou m 'mete desann anba a? ODYANS: Uit. BRIAN SCASSELLATI: Uit. Paske ki k ap pase yo konte zewo a sèt. Epi sa a, uit fwa nan bouk la. OK. Ak sa ki mwen dwe fè nan fen a? ODYANS: mwen ++. BRIAN SCASSELLATI: mwen ++. Tout dwa. Se konsa, ki la kap trè bon la. Se pou nou eseye li e kite yo wè sa ki li fè sa. OK. Se konsa, nou ap ale nan sove li. Nice ak sove. Nou pral rale tounen soti. Nou pral eseye isit la nan tèminal la. Nou pral rale nan. Wouch. Nou pral, yon lòt fwa ankò, fè pwogram Bunny nou an. Apre sa, ale pi devan epi egzekite Bunny. Apre sa, li ye. Se konsa, gen nan Bunny nou an. Ki kote li te gen de pwen nan kòmansman an ak wit pwen soti nan fen an. Tout moun toujou avè m '? OK. Se konsa, nou bati li. Nou bati youn Bunny, youn ankadreman an patikilye. Koulye a, nou te kapab jeneralizasyon ke yo bati plis, diferan kalite ankadreman. Koulye a, kite a ale pi devan, epi yo gen li jenere pa sèlman yon sèl ankadreman, men kite a jenere 10 ankadreman, kote nou tou dousman fè Bunny a deplase tout wout la nan tout jaden an. Tout dwa. Se pou yo ale tounen. Epitou, n ap eseye kounye a. Se konsa, sa mwen reyèlman bezwen chanje isit la? Ki sa mwen bezwen chanje? Oratè 26: Ou premye bezwen chanje nimewo a nan pwen maksimòm premye jou a. Paske si n ap fè 10 pwen, li k ap pase yo bezwen moute selon echèl la. BRIAN SCASSELLATI: Yeah. Se konsa, kounye a mwen gen li sòt de hardwired toujou fè de pwen nan kòmansman an ak toujou fè uit pwen nan fen an. Mwen vle bati yon lòt bouk, dwa? Paske mwen pa vle bati jis yon sèl foto Bunny, Mwen vle bati 10 foto Bunny. Se konsa, mwen bezwen bati yon lòt bouk, ak jan mwen ale nan ki riban, Mwen vle chanje ki jan anpil pwen mwen enprime nan kòmansman an ak ki jan anpil pwen mwen enprime nan fen a, ki baze sou ki sik atravè bouk la Mwen se nan. Tout dwa. Se konsa an n jwenn yon lòt vann san preskripsyon. Yon moun a anvan di j, se konsa nou pral fè yon lòt j. Epi, koulye a, nou ap ale nan bati yon lòt pou riban. Kisa ki ale andedan ki riban? Bagay sa a gen yo ale andedan riban an, dwa? Bunny a gen yo ale andedan riban an? Èske mwen bezwen yon Bunny an chak nan sa yo 10 ankadreman? ODYANS: Uh-huh. BRIAN SCASSELLATI: Yeah. Mwen vle yon Bunny nan chak nan 10 ankadreman yo, dwa? Kouman sou pwen yo nan fen a, mwen bezwen sa? OK. Se konsa, mwen pral indent tout nan yo. Mwen pral mete aksan sou tout nan sa a, epi mwen pral frape Tab. Epi sa k ap pase yo pouse yo tout lòt peyi sou yon ti kras, se konsa ke li fasil pou m ' yo wè sa ki la nan bouk la. Lè sa a, mwen pral fini ak li. Se pou nou di. OK? Koulye a, nan sa a riban ki Mwen se building-- whoops, fè ki pou ou kapab see-- Mwen te gen j vann san preskripsyon mwen. Mwen pral te kòmanse li nan 0. Konbyen fwa fè mwen vle yo ale nan sa a riban? ODYANS: 10 fwa. BRIAN SCASSELLATI: 10 fwa. Se konsa, sa mwen ta dwe mete nimewo isit la? ODYANS: 9, 10. BRIAN SCASSELLATI: 9, 10, yon moun nan te resevwa yo di 11, dwa? Mwen te vle de pwen anvan , li mete m 'mwens pase 2. Mwen te vle uit pwen, Mwen mete m mwens pase 8. Koulye a, mwen vle yo ale nan 10 fwa, se konsa mwen mete j mwens than-- ODYANS: 10. BRIAN SCASSELLATI: 10. Gen nou ale. Ak sa ki m 'fè nan fen an j? ++, Kantite li. OK. Koulye a, isit la nan pati a difisil, sa ki nan pral rive kounye a si mwen fè sa? Mwen pral ekri ak lèt ​​detache 10 ankadreman? Oratè 27: Mwen panse ke yo pral tout ap menm bagay la. BRIAN SCASSELLATI: Yo 'tout tout menm bagay la tou, dwa? Paske tout nan yo yo toujou ale yo mete de pwen nan kòmansman an. Men, mwen pa vle yo tout yo gen de pwen nan konmansman an. Konbyen pwen m 'fè vle nan kòmansman an? ODYANS: Chanje. BRIAN SCASSELLATI: Mwen vle li nan chanje, dwa? Se konsa, sa m 'genyen isit la ki nan chanje chak fwa bouk la ale nan? ODYANS: Nombre de pwen, j. BRIAN SCASSELLATI: J, ki kantite pwen. Se konsa, mwen ka chanje sa a yo dwe j. Premye fwa a nan riban, sa k ap ki ap pase yo dwe? Ki sa mwen mete j nan nan an premye? ODYANS: 0. BRIAN SCASSELLATI: Se konsa, ki jan anpil fwa mwen pral fè sa? 0. Dezyèm fwa a nan riban, j la a pral fè 1 paske mwen kantite li. Konbyen pwen mwen pral ekri ak lèt ​​detache? 1. Twazyèm fwa a nan riban an, konbyen pwen mwen pral ekri ak lèt ​​detache? ODYANS: Twa. BRIAN SCASSELLATI: j a pwal 3. Konbyen pwen mwen pral ekri ak lèt ​​detache? Oh, regrèt, j k ap pase yo dwe 2. Konbyen pwen mwen pral ekri ak lèt ​​detache? ODYANS: 2. BRIAN SCASSELLATI: 2. OK, se konsa mwen pral kenbe incrementing ki jan nou ale ansanm. Kouman sou desann anba a? Ki sa ki desann isit la? Mwen pa vle toujou 8 nan fen a ankò? Oratè 28: 10. BRIAN SCASSELLATI: Mwen vle 10 pwen? Mwen vle li chanje, tou. Se konsa, ki jan mwen vle li nan chanje? ODYANS: [fèbl]. BRIAN SCASSELLATI: Bon, si mwen gen senk pwen nan kòmansman an, konbyen dot la mwen jwenn nan fen a? ODYANS: Senk. BRIAN SCASSELLATI: Si mwen gen sis pwen nan kòmansman an, konbyen mwen jwenn nan fen a? ODYANS: Kat. BRIAN SCASSELLATI: Si mwen te resevwa sèt pwen nan kòmansman an, konbyen mwen jwenn nan fen a? ODYANS: Twa. BRIAN SCASSELLATI: Si mwen te te resevwa pwen j nan kòmansman an, konbyen mwen jwenn nan fen a? 10-j. OK. Se konsa, kite a eseye ki soti. Se konsa, mwen pral pou konsève pou pwogram Bunny nou an. Yon fwa ankò nou pral rale soti. Nou pral desann nan tèminal nou an. Nou pral klè li. Apre sa, rale nan. Nou pral fè pwogram Bunny nou an, ankò. Epitou, n ap egzekite li. Uh-oh. Kenbe sou, se pou yo rale soti. Èske mwen jwenn 10 ankadreman? Oke, ki jan anpil lapen fè mwen wè 'kanpe? 1, 2, 3, 4, 5, 6, 7, 8, 9, 10. Mwen te resevwa 10 ankadreman. Eske yo se moun tout menm bagay la? ODYANS: Yeah. No BRIAN SCASSELLATI: No Ke yon moun an premye, nan Bunny se byen lwen sou bò gòch la. Apre sa, sou isit la, Bunny a se byen lwen sou mòn lan Oratè 29: Dwa. BRIAN SCASSELLATI: Se konsa, ki sa mwen bliye fè? Oratè 30: Kòmanse yon liy nouvo. BRIAN SCASSELLATI: mwen bliye yo kòmanse yon liy nouvo, ankò. Menm erè mwen te fè anvan. Tout dwa, se pou yo ale ranje sa. Koulye a, mwen te toujou te resevwa kòd la nan la fè yon liy nouvo. Poukisa nou pa t 'li travay? Oratè 31: Li pa anndan bouk la. BRIAN SCASSELLATI: Oh, li pa andedan riban an. Sa a dwat. Li nan chita deyò isit la. Epi se la pou riban tout bagay sa a, se andedan ki tèks. Se konsa, mwen pral pou avanse pou pi sa a andedan an pou riban. Epi mwen pral Contenu la devan l 'bay yo fè montre ke li nan nan plas la dwat. Epi, koulye a, nou pral sove l 'ankò. Nou pral rale soti. Nou pral chanje sou nan tèminal nou an. Rale nan. Nou pral renouvèlman pwogram Bunny nou an. Epi, koulye a, kounye a nou te gen 10 ankadreman nou an. [Bat bravo] BRIAN SCASSELLATI: OK. So. Isit la se nou an pare solèy pou pasan. Nou te kapab jenere nan la enteryè bouk ki jan anpil pwen mwen te vle ekri ak lèt ​​detache nan kòmansman an, nan fen an. Apre sa, bouk la deyò kontwole konbyen ankadreman m 'te bati a. Nou te kòmanse ak yon sèl ti kras Kernel nan pwoblèm nan, epi nou bati soti nan pwen sa a. Tout dwa. Se pou yo fè yon sèl etap plis. Ou pare? Genyen yon sèl bagay nan isit la ki kote nou te aktyèlman te resevwa kalite plis konpleksite pase nou bezwen. Se pou nou pran yon gade. Se konsa, nan pwogram Bunny nou an, si mwen rale soti isit la, Mwen aktyèlman fè kèk nan menm bagay la bagay sou yo ak sou ankò. Kisa pou mwen fè sa a, se sòt de menm bagay la repete de fwa? Oratè 32: Enprime pwen yo. BRIAN SCASSELLATI: Yeah Mwen enprime moun pwen de fwa. Vrèman, mwen ta dwe gen kòmantè sa a desann isit la. Mwen enprime kèk pwen nan la kòmansman, dwa moute isit la. Lè sa a, mwen enprime kèk pwen nan fen an. Apre sa, mwen fè kalite egzakteman menm bagay la. Ki sa nou ap ale nan kòmanse ap travay sou nan semèn kap vini yo se ke yo te kapab pran moun blòk nan kòd ki nou itilize sou yo ak sou ankò, ak nan yon pwosesis rele distraksyon, nou ap ale nan rale yo deyò epi yo ekri yo yon fwa pou ke nou kapab Lè sa a, jam itilize yo sou yo ak sou ankò. Se konsa, kite a eseye sa. Pare? Nou ap pral pran blòk sa a nan kòd. Apre sa, mwen pral pran li soti nan la. Apre sa, mwen pral define-- desann nan pati anba a, Mwen pral ekri yon fonksyon nouvo. Li pa nan pral retounen anyen. Apre sa, mwen pral rele li printDots. Li nan ale nan pran yon sèl agiman, yon nonb antye relatif ki di howManyDots mwen ta dwe enprime. Epi, koulye a olye pou yo enprime pwen j, mwen pral enprime di howManyDots mwen ta dwe enprime. Apre sa, nan yon ti kras pwoblèm isit la. Okenn moun konnen sa li ye? Sa m 'genyen an ki nan lis ki nan isit la ki pa nan defini? ODYANS: [fèbl] BRIAN SCASSELLATI: Bon jan anpil pwen se defini dwa moute isit la, men mwen lè l sèvi avèk varyab sa mwen. Se konsa, mwen pral pran varyab sa mwen ak mwen pral yo defini li desann nan isit la pito. Se konsa, kounye a li k ap pase yo stay-- Wouch, te resevwa bouchon yo fèmen sou somehow-- mwen se ale nan kenbe m desann nan isit la. Se konsa, kounye a fonksyon isit la ti kras mwen oswa sub-woutin, epi li di, konbyen pwen mwen pral ekri ak lèt ​​detache? Epi, se pral ale nan sa a riban ak enprime yo sou yo ak sou ankò. Mwen ka Lè sa a modifye pwogram m 'yo moute isit la. Ak sa ki t 'mwen rele ke fonksyon? printDots. Se konsa, mwen pral rele printDots. Konbyen pwen pou m vle enprime premye fwa a anvan Bunny a? ODYANS: j. BRIAN SCASSELLATI: j. Konbyen pwen pou m vle enprime nan fen a, apre yo fin Bunny a? 10-j. Apre sa, nan yon sèl bagay mwen manke. Kòm ou te wè nan konferans jodi a, nou ap ale nan deklare printDots moute pi wo a bay pwototip la. OK. Se konsa, sa mwen te fè se Mwen te eseye izole pati sa a reyitilize nan kòd ke mwen te fè sou yo ak sou ankò. Apre sa, mwen te eseye rale li soti pou ke nan tout sa se ki genyen nan yon sèl kote. Nan fason sa a, si mwen gen yon erè yon kote, Mwen gen sèlman yo fikse li nan yon sèl plas. Tout dwa. Se konsa nou sove li. Li kite yo asire w ke li ap travay. Se konsa nou ale deyò. Nou pral ale ankò nan tèminal nou an. Nou pral rale nan. Nou pral fè ke pwosesis Bunny. Oh. Apre sa, li nan ban m 'yon avètisman. Ki sa ki li di m 'konsa? Byen nan nenpòt nan sa yo fwa, ou toujou vle woulo liv jiska error-- an trè premye kounye a sou yon sèl sa a, mwen te sèlman te resevwa yon sèl. Li di m 'nan bunny.c, sou liy 8, kolòn 9, gen nan yon pwoblèm. Li di, ou te deklare sa a varyab m epi ou pa te itilize li. Koulye a, nòmalman, sa a, se pa erè a pi mal la. Sa a yon yon sèl fasil yo ranje. Ak an reyalite, nou ka ale tounen nan. Nou ka ale tounen nan Bunny. Ak nan ka sa a, tout sa nou ou dwe fè se debarase m de mwen, paske nou pa ap sèvi ak m nan prensipal ankò. Nou jis ap sèvi ak li nan nou an sub-woutin. Se konsa nou sove sa. Nou pral ale tounen. Apre sa, rale nan. Nou pral yon lòt fwa ankò fè Bunny. Apre sa, ankò yo se 10 ankadreman nou an. OK. Nenpòt ki lè w ap bay yon procedure-- Yeah. Oratè 33: Mwen gen a-- mwen se konfonn. Èske ou ka ale tounen nan kòd la? BRIAN SCASSELLATI: Oui. Oratè 33: Se konsa, lè ou te ekri pwototip ou, agiman an ou te li yo te rele te rele howMany? Men, below-- BRIAN SCASSELLATI: Oh yeah. Oratè 33: --called yo yon bagay diferan, mwen pa konprann. BRIAN SCASSELLATI: Poukisa yo ye diferan. Se konsa, sa a, se yon kesyon gwo. Se konsa, kesyon an te, moute isit la, mwen te ekri howMany, , li desann anba a, mwen te ekri howManyDots. Rezon ki fè la se ke moute nan pwototip ou, li la aktyèlman pa peye atansyon nan non sa yo ke ou ap mete nan. Tout li vrèman gen sousi pou se ke li nan yon nonb antye relatif. Li vle konnen fòm nan nan sa ki w ap mete nan. Koulye a, stylistically-- oops-- Kisa mwen ta dwe , se mwen renmen fè sa yo matche ak. OK. Paske ki pral kenbe l ' pi fasil pou mwen pou m sonje. Men sa ki te erè mwen an Yeah. Oratè 34: Se konsa, pou la pwototip nan travay, jis ekri ki liy, ekri pwototip a, pèmèt ke fonksyon ki vini dwat anba a li pou yo ale nan fen a ak rekipere ki sa sa vle di? BRIAN SCASSELLATI: Ki sa sa vle di se lè du a ale nan, li ale nan tèt la nan kòd ou a nan fon an. Ak sa ki pwototip sa a se, se li nan fondamantalman yon pwomès Bondye. Li di, gen k ap pase yo dwe yon fonksyon defini yon kote. Li k ap pase yo dwe rele printDots. Apre sa, li la pral pran yon sèl agiman ki k ap pase yo dwe yon nonb antye relatif epi li k ap pase yo retounen pa gen anyen, di ki anile. OK. Mwen pwomèt nou li a pral fè defini yon kote desann wout la. Men, nenpòt ki lè ou wè ki, menm jan ou desann nan rès la nan m ' fonksyon prensipal, mwen vle ou nan trete ki kòm yon fonksyon ki pran yon sèl D 'nonb antye relatif. Se konsa, lè du a desann nan sa a, li wè ke pwomès Bondye. Lè li vin desann, kenbe prale a, kenbe prale a, li jwenn premye fwa a printDots se mansyone. Apre sa, li di, O, w ap bay m 'sa a j. j nan yon nonb antye relatif. Byen ou te pwomèt m 'ki ta gen yon nonb antye relatif e ke sa a dwat. Se byen. Lè sa a, finalman, desann nan pati anba a trè, anvan m 'jwenn nan fen a nan mwen dosye, mwen fè bon sou pwomès mwen ak mwen defini li. OK? Oratè 35: Se konsa, li saves-- nan pwogram pral delivre espas vid ke li ale retounen lakay yo epi plen nan fen a? BRIAN SCASSELLATI: Li pa sou alokasyon an memwa. Li nan aktyèlman jis sou sa kalite yo ou panse ou pral pral wè. Ta dwe gen yon sèl bagay sa a agiman, oswa senk agiman? Ta dwe genyen li nonm antye relatif gen bay li, oswa strings? Sa a tout li a kap fè se yo tcheke, ou menm ki ban m 'lan dwat kalite agiman. OK? Tout dwa. Kite m 'kite ou ak yon lòt ti jan fè yon gade nan. Atizay ASCII se pa modèl la gwo nan animasyon kòm li se jodi a. Men, gen kèk moun ki nan kou pran bagay sa yo epi yo pouse li nan ekstrèm yo. Sa a se, tankou David demontre nan konferans, yon moso nan kòd ki ou ta dwe Anba okenn sikonstans eseye kopi nou. Paske li se terib estilitikman. An reyalite, li se fèt yo dwe kòm difisil ke posib li. OK. Se konsa, yo fè ankò, se pou yo rale nan isit la. Mwen pral ale kounye a, chanjman anyè. Mwen pral ale leve yon sèl nivo, tounen nan vorkspas mwen. Mwen pral Lè sa a, chanje anyè nan sa a lòt anyè ke mwen te kreye. Lè sa a se nan Entènasyonal Obfuscated C Programming Konkou. Obfuscated vle di osi difisil ke posib yo konprann. Se konsa, tanpri, pa dwe pè si ou gade nan nivo sa a epi ale, mwen pa ka li sa. Sa a pwen an nan li. OK? Men, nou gen sa a bèl bagay pwogram ke mwen se ale fè yon gade nan pa jis tape plis. Li kite yo wè si mwen ka rale soti jis yon ti jan, se konsa ou ka wè li Lè sa a se pwogram lan. Li nan yo te rele endo.c. Apre sa, li sanble sa a ak bokit kalite lèt yo F-L-U-I-D nan li. Sa a se aktyèlman yon pwogram. Li nan ekri nan pi fènwa a fason ki otè yo te kapab pètèt ekri li. Men, li la yon bèl bagay moso ti kras ki jenere yon modèl nan dinamik likid. Se konsa, nou ap ale nan bay ke modèl yon opinyon ki sanble tankou sa a, nan yon staired mete nan resipyan ak kèk likid, gen kèk likid, moute nan tèt la. Epitou, n ap genyen li simulation sa k ap pase nan li. Se konsa, mwen pral rele ki fonksyon, ENDO. Apre sa, mwen pral ba li ki dosye D 'ke mwen te te fè. Apre sa, se egzanplè nou an nan atizay ASCII. Yon plen likid similatè dinamik kouri nan liy jis yon kèk nan kòd. Kounye a ki sa la aktyèlman vrèman etonan sou pwogram sa a ti kras se ke mwen vle sispann li kounye a, se konsa mwen pral sèvi ak sa yo lòd? ODYANS: Kontwòl-C. BRIAN SCASSELLATI: kontwòl-C. OK. Se konsa, mwen pral sèvi ak kontwòl-C. C Sa pral sispann li. Mwen pral klè ankò. Epi, koulye a mwen pral envoke nan pwogram, egzekite pwogram nan, lè l sèvi avèk tèt li kòm opinyon. Epitou, n ap wè dinamik nan likid simulation nan li k ap fonn. OK. Tanpri, pa kite sa pwogram gen bagay la ki confondre ou. Se jis pou nou ka fini sou yon bagay fre epi ki enteresan. OK. Pi bon nan chans ak aparèy televisyon HD pwoblèm ou. Nou pral gen kè kontan yo reponn kesyon apre klas la. Mèsi anpil, guys.