[MIZIK jwe] Oratè 1: Sa a se CS50 ak sa a se kòmansman an nan semèn de. Se konsa, kite a plonje dwat nan yon bagay ki se buggy, se konsa pale. Se konsa, sou isit la se CS50 IDE ak mwen te rale moute nan avanse sa a screen-- modi li. Beke alèt yo. Tout dwa. Mwen te rale moute ekran sa a isit la, ki te gen yon pwogram trè senp. Si nou desann, pi fò nan sa a se jis kòmantè, men isit la nan liy 13 a 17 nou gen yon pwogram nan. Li nan syntactically valab, ki vle di si Mwen konpile li, li pral konpile epi kouri, men li la buggy. Pwogram sa a reklamasyon nan kòmantè yo moute tèt ke li ta dwe enprime 10 zetwal, men li pa fè sa. Apre sa, ki baze sou eksperyans ou, oswa pli vit yo dwe eksperyans avèk C, èske ou kapab lojikman disène poukisa sa a se, an reyalite, buggy? Yeah? ODYANS: Li ale soti nan zewo rive 10. Sa a 11 itérations. Oratè 1: Yeah. Se konsa, li k ap pase soti nan zewo moute nan ak egal a 10, ki nan kou se 11 itérations. Se konsa, li k ap pase yo ekri an lèt detache, tout bon, 11 zetwal yo. Se konsa, konvansyon an syans òdinatè nan pifò lang programmation se, tout bon, jis yo kòmanse konte nan zewo, men konte jiska, men se pa nan la valè ke ou aktyèlman pran swen sou. Koulye a, sa a se yon sèl bagay ki pran yon ti kras ap resevwa itilize yo e menm grate, ki fèt kòm li se pou pwogramasyon ki pa oswa ki pa òdinatè syantis yo ak pou timoun lajman, ki fèt yo gen ou kòmanse konte jeneralman nan yon sèl. Epi sa a, amann. Ou ka absoliman kòmanse konte nan yon sèl si sa a pi alèz. Ak konte jiska ak nan 10, men ou pral reyalize semèn sa a patikilyèman ak pi lwen pase sa jis pou anpil bagay nan pwogram asime ke 0 se premye a chif ak kote ou konte, ki w ap ale nan jwenn li pi fasil jis jwenn nan sa a abitid nan kòmanse soti nan zewo yo epi konte jiska valè a ou pran swen sou kounye a ki soti nan jwenn ale. Se konsa, ki te fiks sa. Nou chanje mwens la pase oswa egal nan jis mwens pase. Se pou nou pran yon gade nan yon dezyèm egzanp isit la. Se konsa, pwogram sa a twò reklamasyon nan li yo kòmantè moute tèt ke li ta dwe enprime dis zetwal, men li pa fè sa. Ki sa ki nan pinèz la isit la? Se konsa, what-- ak regrèt, se pou yo dwe klè. 10 zetwal yo. Youn pou chak liy, men li pa fè sa. Se konsa, an reyalite, kite m 'ale pi devan epi konpile yon sèl sa a paske li nan yon ti kras mwens klè ki baze sou ki deskripsyon. Kite m 'ale nan anyè sous nou an. Fè buggy youn koupe dot, youn buggy. OK, mwen wè 11 zetwal, ki se toujou pwoblèm, men yo ap tou tout nan yon sèl liy. Ki sa ki nan pwoblèm nan isit la? Yeah. ODYANS: [fèbl]. Oratè 1: Yeah. Se konsa, sa a se yon sibtilite ke ou ka sonje m 'fè kout mansyone nan. Menm si tout bagay sanble bèl, ak li a joliman utilize, epi li kalite sanble Grafouyen-tankou nan ki liy 16 ak 17 yo, tout bon, dantle anba ke pou riban. Sa a indiféran. Òdinatè a pa fè sa konnen oswa wè espas blan. Blan espas se jis pou nou moun, estilitikman. Òdinatè a konnen ki lè ou gen aparèy òtopedik Curly, ki ta, tout bon, ranje pwoblèm sa a. Se konsa, si nou aktyèlman te ale nan ak klèman mete nan sa yo aparèy òtopedik Curly ki ta ranje pwoblèm sa a pa fè klè nan du a ke mwen aktyèlman vle al touye de liy nan kòd ankò, e ankò, e ankò. Men, sa ki nan eksplikasyon an fondamantal? Dwa? Nou pa entèdi bezwen Curly aparèy òtopedik tout tan tout tan an, menm si li nan pwobableman pi bon pratik jwenn nan ki abitid de tout fason menm si li ajoute de karaktè nan kòd ou yo. poukisa? ODYANS: [fèbl]? Oratè 1: Yeah se konsa sa a, se yon lòt solisyon tout ansanm. Dwa? Espesyalman si nan premye gade ou pa fè sa vrèman apresye sa k ap pase sou. Oke, siman nou te kapab jis fè de bagay nan yon fwa ak jis evite pwoblèm nan tout ansanm. Epi sa a, amann, men kounye a, pou rezon a jodi a, ki sa se eksplikasyon an pou pinèz la? Poukisa yo te tout moun sa yo zetwal sou yon sèl liy? Yeah? ODYANS: Li sanble ke si ou gen yon sèl liy nan kòd, ou ka fè li san yo pa sa yo. Oratè 1: Egzakteman. Sa a se jis yon konvansyon imen. Moun reyalize ke li nan yon ti kras anmèdan oswa fatigan gen yo mete aparèy òtopedik Curly tout nan tan an si tout sa ou vle fè se egzekite yon sèl liy nan kòd. Se konsa, moun deside kèk tan de sa ki sa a, se amann. Si ou vle mete tout nan riban ou sou jis ki liy yon sèl tankou sa a, sa a, se amann ak yon sèl la virgules nan fen an. Men, ou ka sèlman fè yon sèl sa yo liy san yo pa aparèy òtopedik yo Curly. Se konsa, lè style CS50 gid kòm pral pwen ou a, ou ap wè ke jeneralman li se yon bon abitid jwenn nan sa a jouk w ap byen konfòtab segare soti nan sa yo kalite konvansyon ak ap fè bagay pwòp ou yo. Se konsa, lontan ke w ap pwòp tèt ou ki konsistan. Epitou, n ap pale plis sou style yon ti jan ti kras pita jodi a. Se konsa, kite m 'louvri moute yon lòt pwogram. Natirèlman, nou ta dwe ranje ke 10 kòm byen. Kite m 'ale pi devan epi ekri yon reyèl pwogram rapid ke mwen pral rele, kite la di, bouk dot C. Se konsa, riban dot C. Ak nan bouk dot C Mwen pral gen, gen ladan estanda mwen / O dot H int anile prensipal la. Epi, koulye a kite a jis fè, tout bon, yon bouk. Se konsa, 4 int mwen vin zewo. Mwen se mwens pase, di, 50. Mwen plis, plis. Lè sa a, nan isit la kite a ale pi devan epi enprime F. Lè sa a, mwen vle enprime mwen ak yon liy nouvo, virgules. Lè sa a ta dwe enprime nan tout nimewo soti nan zewo jiska 50? Yon tèt kèk nods. Yon NOS kèk. Ki sa ki nan pinèz la deja? Ki sa ki nan erè a fasil mwen te fè? Yeah. ODYANS: [fèbl]. Oratè 1: Yeah. Se konsa, menm si li sanble tankou sa a se sa m 'gen entansyon, sonje ke mwen tou se jis yon karaktè ASCII. Se konsa, si mwen vle di, ekri an lèt detache "I." Li nan literalman ale ekri ak lèt ​​detache I. Se konsa, si mwen vle ploge nan yon kontneur valè mwen aktyèlman bezwen fè sa ak Lè sa a ploge nan la valè de mwen dynamique. Sinon mwen jis ale nan jwenn 50 Mwen la sou ekran an. Se konsa, kite m 'ale pi devan epi fè sa-a riban, kouri li, epi, tout bon, nou gen tout wout la moute nan 49. Men, si mwen woulo liv tounen nan tan mwen wè nimewo a zewo nan kòmansman an. Oke, sa si mwen kalite vis moute? E si mwen fè sa? Jis paske mwen pa panse. Ki sa ki nan pwogram sa a. Yon fwa ap konpile epi kouri, pral fè lojikman? ODYANS: Pa gen anyen. Oratè 1: Pa gen anyen. Poukisa se sa? ODYANS: Mwen se fèt pou zewo. Se konsa, kondisyon an se fo. Oratè 1: Yeah, egzakteman. Tout kòd la ki kòrèk, syntactically. Sa a pral konpile, sa a Kòd pral kouri, men li la pa pral fè anyen itil paske mwen inisyalize sou I zewo. Nou Lè sa a, tcheke, se mwen pi gran pase 50? Li evidan, pa gen okenn, li pa. Se konsa, riban a pa janm ègzekutra nan tout. E si nou fè yon bagay yon ti kras plis ensousyan? Se konsa, sa si nou fè tankou int mwen vin zewo. Epi, koulye a kite m 'sèvi ak pandan y ap nan bouk, ki te yon lòt kondisyon. Epi pandan ke y M 'ap di, pandan y ap Mwen gen plis pouvwa pase oswa egal a zewo, ak Lè sa a nan isit la mwen ale pi devan epi sove dosye a, fè riban. Apre sa, mwen se sou yo kouri li. Kisa mwen pral wè sa a tan ak yon riban pandan y ap? Yeah. ODYANS: Yon riban enfini? Oratè 1: Yon riban enfini? Wi, e poukisa? ODYANS: Paske li toujou zewo. Oratè 1: Yeah. Se konsa, mwen se inisyalizèd kòm zewo. Natirèlman mwen se toujou pi gwo pase oswa egal a 0 kòm yon rezilta. Se konsa, mwen jis ale nan wè sa a enfiniman. Epi, koulye a, sa a te vini yon fwa oswa de fwa nan tèt kou a. Kisa k ap pase lè ou gen yon riban enfini? ODYANS: Kontwòl C. Oratè 1: Yeah. Se konsa, Kontwòl C pral evantyèlman reponn. Malerezman, nou te enprime soti dè milyon ak dè milyon de zero deja e konsa òdinatè a gen kalite te resevwa devan yo nan m '. Se konsa, li k ap pase ki inyore m 'pou yon ti kras. Men, si ou jis frape kontwòl C yon kèk fwa sou ou Mac oswa PC klavye, evantyèlman li ta, tout bon, mete fen nan. Men, si se pa sa, nou pral montre w kèk teknik anvan lontan kote ou ka aktyèlman lafòs touye pwogram, anpil tankou nan Windows ak Mac OS, si yo bezwen. Men, kite a eseye yon lòt bagay. Se pou nou aktyèlman kantite I. Èske sa a toujou ap pase yo dwe enfini? Kite m 'kouri sa a. Epi, koulye a ou kapab kalite wè sa ki k ap pase. Sa a, tou, se yon riban enfini. Men, sa a se yon ti jan nan yon kesyon Trick. Sa a se ale nan enprime nimewo pou tout tan? ODYANS: No Oratè 1: No Poukisa? Mwen tande kèk NOS sou isit la. Someone-- Yeah. ODYANS: Ou pa gen ase Bits yo reyèlman kenbe prale. Oratè 1: Tout dwa. Se konsa, mwen pa gen ase Bits kenbe prale. Se konsa, sa ki pwal pase? Li nan jis ale nan sispann? ODYANS: Nan kèk pwen li pral fèmen the-- Oratè 1: Li pral fèmen desann nan bouk, men poukisa? Ki sa ki nan pral rive nan la trè fen nan limit li yo? Yeah? ODYANS: Li pral sik tounen nan nimewo negatif. Oratè 1: Pou nimewo negatif, oswa si nou te jis trete pozitif, zewo omwen. Se konsa, repons lan se wi, absoliman. Sonje byen, nou te wè dènye fwa ke si ou kantite Bits ou youn twò anpil fwa, epi ou gen avan debòde kapasite a nan int ou oswa kèlkeswa sa kalite a done se, w ap ale nan vlope toutotou, pwobableman, de nonb negatif. Oswa si ou te presize ke ou seri ta dwe sèlman pozitif, ki ou ka fè, men nou pa te wè ki ankò, ou ta ka fini omwen tounen nan zewo. Malgre ke, aktyèlman wi. Nan ka sa a, negatif nimewo, nan ka sa a bouk la ki pral mete fen paske mwen se pa, an reyalite, pi gran pase oswa egal a zewo si li nan negatif. Se konsa, malerezman, ki jan lontan nou ta gen yo rete tann? Kounye a, nou ap jiska sa ki, 2 milyon-ich? Nou se tankou 2 milya dola, nou ap ale nan oblije rete tann jiskaske nou ka aktyèlman wè sentòm sa a. Men, nou ka wè l 'yon ti kras pi vit, maybe-- kite a wè si nou ka entèwonp. Vini non sou. Menm meni yo yo parèt tou dousman. Tout dwa. Se konsa, nou pral tounen vin jwenn ke anvan lontan. Li se yon bon time-- modi li, puppies. Li se yon bon moman pou kèk anons. Se konsa, si ou ta ka renmen angaje yo nan YHack, ki se ke yo te yon evènman patwone pa zanmi nou an nan Yale. Epi, tout bon, kèk nan la nan kou TFs nan Yale yo ki patisipe nan sa a. YHack se yon entènasyonal Hack-yon-thon akomode pa ak ki te fèt nan Yale, yo pote ansanm 1,500 tankou entru èspri ak kreasyon tout mond lan. Si sa a se nan enterè, pran yon gade isit la. Si sa a se twò yon ti tan sou mòn lan ekran, pran yon gade nan glisad la jodi a pou URL la pou yhack.org. Se konsa, tou yon kèk anons rapid. Se konsa, ofisyèlman seksyon pral kòmanse semèn pwochèn tou de isit la ak New Haven. Kenbe nan tèt ou ou pral resevwa yon imel pita nan fen semèn gen plis chans. Li pran yon bon bout tan pou CS50 nan seksyon, bay tout pèp la nan la klas-la ak tout moun k ap deplase alantou. Apre sa, tout Fellows yo Fòmasyon ' orè yo tou toujou solidifye, men rete sou estasyon pou yon imel ak si bezwen dwe, ou ka re-seksyon gen apre. Study.cs50.net. Se konsa, menm si ou se yon patisipan konstan a seksyon, reyalize ke prèske tout nan resous ki nou itilize nan seksyon se piblikman disponib nan CS50 Etidye nan URL sa a isit la. Se konsa, si ou ta tout tan tout tan renmen re revizyon materyèl ki sot nan seksyon, oswa li pi devan, oswa ou pa ka fè l 'kèk semèn, reyalize ke echantiyon glisad, ak pwoblèm, ak definisyon, ak plis ankò, yo tout gen kòm byen. Biwo èdtan rezime jodi a, ak demen, ak Mèkredi, ak Jedi tcheke nan kou a sit entènèt pou orè a. Epi tou, kounye a lansman jodi a se CS50 Diskite sou. Se konsa, si ak lè ou gen kesyon pou youn ak lòt oswa pou anplwaye kou a nan, ak yo jeneralman k ap travay sou kèk pwoblèm mete, reyalize ke ou pa fè sa nesesèman gen tounen vin jwenn moun-a ou. Si gen nan pa gen yon sèl la, ou kapab rive jwenn soti nan nou epi kamarad klas sou entènèt atravè CS50 Diskite sou. Se konsa, sa a se yon diskisyon tablo pou kou a, ak reyalize ke sa a se petèt pi bon an mete yo kòmanse lè ou gen kesyon lè deyò nan biwo heures an patikilye. Manje midi ap kòmanse moute semèn sa a tou. Nan Dife ak glas [Fèbl] nan New Haven. Pran yon gade nan la kou a sit yo nan lòd yo RSVP. Premye vini, premye sèvi pou sa. Si ou pa jwenn nan semèn sa a nou pral fè sa yo pi chak vandredi pandan tèm nan. OK, e kounye a, yon mo sou nòt. Patikilyèman jan nou antre nan pwoblèm mete yon sèl, ki se soti semèn sa a, ak pwoblèm mete de ak apre sa. Ki jan nou ale sou evalye P kouche ak evalye bon jan kalite a ladan l '? Se konsa, li nan kat aks ke nou itilize nan CS50, e yo ap kat sa yo isit la. Dimansyon, ki kaptire sou yon nimerik baz jis ki jan anpil nan P mete nan ou te atake. Li nan apeprè koresponn ak efò, ak li nan fason nou nan kaptire t 'ou eseye mwatye P a mete yo, tout nan P seri a. Sa a se yon yon sèl fasil jwenn pafè nòt sou si ou fè, tout bon, eseye tout aspè nan P seri a. Se konsa, kenbe ki nan tèt li. Correct se egzakteman sa. Èske travay Kòd ou kòm spesifikasyon la epi kòm echantiyon solisyon baton yo ' sijere ke kòd ou a ta dwe, an reyalite, travay. Tcheke 50, si ou pa gen te rankontre li ankò, se nan P mete yon sèl spesifikasyon epi yo pral jeneralman ba ou repons lan se wi / pa gen okenn repons kòm si kòd ou a kòrèk. Omwen byen lwen tèlman kòm nou ap ale evalye li ki baze sou tès yo ke nou kouri nan pwogram sa a. Design se pi plis subjectif. Sa a se fason byen ekri se kòd ou yo. Lè sa a se yon bagay ki ou pral jwenn pi bon nan sou tan, ak li nan yon bagay ki nou pral bay plis fidbak kalitatif sou. Ak nan konsepsyon mwen ta ka vle di anvan lontan ou ta ka dwe tante nan kèk P mete fè yon bagay loopingly, men yo gen petèt twa, oswa kat, oswa senk pasan enbrike avan oswa pandan y ap pare solèy pasan. Sa jeneralman ta dwe kòmanse fè ou sumilye e yo ta jeneralman gen konsidere kòm move konsepsyon. Men, ou pral kòmanse yo wè nan klas-la ak soti nan klas fason bon pou fè bagay sa yo, move fason pou fè bagay sa yo ke ta ka tout dwe kòrèk, men se pa nesesèman byen fèt. Fè tankou ekri yon redaksyon. Ou ka kapab mete pawòl sou yon paj ki gramatikalman kòrèk, men redaksyon an an oswa tèz yo ap nan se jis konplètman dezoryante oswa unpersuasive. Se konsa, ke sa ta kapab analòg la nan la mond ekri nan move oswa bon konsepsyon. Ak style, tou, se jistis subjectif. Men, nan omwen nou espere konsistans. Sa a se fason bèl se kòd ou yo. Èske bagay sa yo joliman utilize? Èske varyab ou byen yo te rele / Èske tout a parantèz ou ak aparèy òtopedik Curly ki aliyen menm jan yo ta dwe? Nou fè gen yon gid style CS50 kòm pwoblèm mete nan pral pwen ou nan. Moun sa yo ki pi alèz yo se Byenveni nan pèdi de sa toutotan ou se pwòp tèt ou ki konsistan. Lè sa a, tou, se yon leson nou pral ranfòse nan seksyon. Se konsa, si tout bagay sa yo te yon ti kras vit, reyalize P mete nan ak seksyon pral antre nan plis pwofondè anvan lontan. Men, jeneralman nou gen trè kèk bokit pou CS50. Nòt yo jeneralman sou yon echèl nan yon sèl nan twa, oswa yon sèl nan senk. Nou literally-- ak mwen pa ka di sa a ase nan premye semèn nan. Twa se yon bon bagay. Se konsa, menm si, wi, twa soti nan senk nòmalman, matematik, ta kapab yon pousan 60 oswa tankou yon mwens D. Twa se, an reyalite, bon. Epi, an reyalite, nou espere pifò elèv nan klas la yo kòmanse koupe tèm nan alantou Dezan, ak threes, ak four. Pwobableman pa anpil Fives. Pa twò anpil moun. Men, jeneralman yo kòmanse nan plas ki dous nan koub la se konsa ke kòm tan ap pwogrese, gen nan aktyèlman plas pou, ak opòtinite pou pwogresyon anwo kay la. Se konsa, tanpri pa egalize twa ak 60%. Li nan pi plis abstrè pase sa. Fòmil la ak ki nou kalkile klas se filaplon jan sa a. Correct se vo pi plis la. Design se vo yon ti kras mwens. Style se vo yon ti kras mwens. Lè sa a jeneralman kaptire kantite tan ki ale nan ap resevwa chak a aks sa yo jis dwat. Style se super fasil, yo ta dwe super rapid, men li la yon abitid fasil yo ka resevwa parese sou yo. Correct ta ka pran ou pi fò nan tan an. Kouri dèyè desann kèk fòs ensèk pran ki èdtan siplemantè oswa plis, epi konsa, ki fè nòt nan finalman kaptire sa. Se konsa, kounye a yon mo ki pi grav. Depi CS50 gen nan distenksyon, pou pi bon oswa pou pi mal, pou yo te petèt pi bon konnen ak pwoblèm yo ki nan akademik onètete pase sa pifò nenpòt ki lòt kou. Ak tout bon, li se yo mwen konnen ki nou voye plis elèv, malerezman, pou rezon disiplinè chak ane kòm yon rezilta. Se konsa, nan enterè a nan plen divilgasyon, se pou yo pale yon ti tan sou sa ki ale sou nan CS50, ak sa ou ka fè, ak sa ou kapab gen janm bliye jan Bondye. Se konsa, isit la depi 2007, lè Mwen eritye kou a, se nimewo a nan ka Piblisite Komisyon Konsèy. Piblisite Komisyon Konsèy se disiplinè Harvard la kò, oswa kounye a Avoka nan Honor, nan ki ka yo refere lè elèv yo fè yon bagay ki nan kou a progranm konsidere rezonab. Gen nan pa gen modèl reyèl isit la, mwen ta ka di. Li fluktuan sou la ane men jeneralman sa a se nimewo a nan ka ki yo refere. Nimewo a nan elèv yo ki te enplike? Li twò varye. Tipikman, ane pase a pou egzanp, 29 elèv yo nan Harvard te Piblisite akòste, se konsa pale. 29 nan yo elèv yo ye kounye a, de nan disip yo elèv yo anvan, ki te kolabore nan kèk fason ankouraje yo. Lè sa a, an tèm de la pousantaj, li la anjeneral sou 3% nan klas la ki, malerezman, fè sa yo kalite desizyon. Se konsa, ane pase a li te 3.5% nan kò elèv CS50 nan sa ki te Piblisite akòste, se konsa pale. Se konsa, sa tout bagay sa yo vle di? Ak sa ki nou aktyèlman fè? Se konsa, pou divilgasyon konplè, nou absoliman, kòm syantis konpitè, gen zouti lojisyèl a jete nou an ak li a trè fasil pou nou, nan etidye ekite Règleman, kamarad klas ki lòt la ki pa travèse liy sa yo sou yon kwa konpare chak soumèt ane sa a kont chak soumèt pou uit ane ki sot pase. Software fè bagay sa a. Epi finalman li a je imen ki deside si wi ou non, al gade kèk gen pwoblèm pou plis desizyon, men lojisyèl sètènman ede. Lè sa a, franchman, pou rezon sa ke mwen panse ke nou gen tankou nimewo gwo nan CS50. Li pa paske CS50 elèv oswa CS elèv yo plis jeneralman nenpòt ki mwens onèt pase nenpòt lòt elèv yo, li nan jis nou gen nan zouti ak teknik yo ak ki pran pas sa a an premye. Men, nou fè kenbe yon je sou tout bagay sa yo kòm byen, ankò, nan enterè yo sou rekonèt travay la ki nan ke yo te mete nan pa yon majorite super nan klas la. Ak politik kou a nan sou onètete akademik, menm si li nan yon pakèt moun sou paragraf long ak yon pakèt moun sou bal ki èspere ke byen lizib, li reyèlman bouyi desann yo dwe rezonab. Apre sa, règ la pi bon nan gwo pous ki nou ofri moute nan progranm a se sa a, sans nan nan tout travay ke ou soumèt a kou sa a dwe pwòp ou yo. Ak tout bon, nan prèske tout nan tout sa yo ka refere pou aksyon disiplinè li te paske nan kèk yon sèl fen elèv lannwit tipikman vire li oswa li Kòd sou francheman nan yon kondisip klas, ki Lè sa a, te adopte li nan antye li yo oswa siyifikativman ladan l '. Men, reyèlman, sa a se OK. Ak tout bon, nan biwo èdtan, glise yo nan papye ou ve yo te lage si ou te vin nan biwo èdtan semèn pase a ankouraje kòm anpil. Ou se absoliman akeyi ak ankouraje yo diskite sou kouche pwoblèm ak kamarad klas. Pou ede youn ak lòt lè baryè. Men, jeneralman règ la nan gwo pous ta dwe gen sa a, "lè w ap mande pou èd, ou ka montre kòd ou a bay lòt moun, men ou pa kapab gade leur. " Se konsa, nan lòt mo, si mwen se gen difikilte nan kèk P seri ak mwen chita la nan la manje sal, oswa nan bibliyotèk la, oswa nan sal klas la ap eseye jwenn kèk fòt, Mwen kapab sètènman montre kòd m 'sou ekran m' moun nan chita bò kote m ', sètènman anplwaye a, men tou, yon kondisip klas. Men, si solisyon an ki kondisip klas mwen ofri se, oh, isit la jis pran yon gade nan ki sa Mwen te fè, ki kwaze liy. Apre sa, mwen ta bay gabèl di sa a, se jeneralman yon bagay ki rezonab pou pifò moun trè fasil tach liy lan nan. Se konsa, wè progranm a pou plis detay. Epi, koulye a youn nan plis nan aspè kontwovèsyal nan CS50 progranm ki mwen te panse mwen ta pale ak nan konklizyon isit la se kloz nan regrèt sa yo rele. Se konsa, isit la nan tout enprime la amann. Men, an jeneral nou te wè sou sot pase 8 ane yo ki plis sa, tout bon, prèske nan tout CS50 nan ka nan delwayote akademik yo te rezilta a nan jis pòv pran desizyon an reta nan mitan lannwit. Rezilta a nan estrès, rezilta a yo te mank de manje, mank de dòmi, twò anpil P kouche, twò anpil dat limit, angajman twò anpil. Estrès bati moute nan yon 2:00 AM, 3:00 AM, 4:00 AM, ak yon dat limit parèt. Pifò elèv nan ka sa yo te jis te fè desizyon move paske yo te vle trè byen regrèt nan Nan denmen maten si se pa minit pita, men jouk ane pase a pa te gen okenn valv lage ke sa yo te kapab elèv yo aktyèlman louvri moute ki aktyèlman postal la pwoblèm tèt sou san yo pa pè pou yo te demare nan kolèj tout ansanm. Epi, tout bon, nou prezante sa a kloz regrèt ane pase a, ki di ke si nan lespas 72 èdtan, twa jou, nan travèse kèk liy preskri nan progranm a ou vini pou pi devan pou youn nan an an kou tèt ak nou pral gen yon chat sou li. Gen toujou gen kèk rezilta, kontrè ak sa ki nan te rapòte ki di lekontrè. Gen se toujou kèk rezilta ki se desizyonèl pa kou a, jeneralman zeroing yon P seri oswa pran kèk lòt aksyon, men nou pral, tout bon, manch li tèt nou epi yo pa al gade li pi wo yo te rezilta a ta ka pi plis grav. Epi, tout bon, yo pataje sa ki te pase ane pase a, nan uit ane yo, e kounye a, nèf ane, nan anseye kou sa a ak apre brikolaj ak divès kalite manch, vire divès kalite kadran sou tan lontan an plizyè ane sou onètete akademik, ak wè pou chak done yo pa gen okenn aparan enpak, menm nan diskou tankou sa a, sa a te men desann pi bon bagay nou te prezante pedagojik nan uit ane ansanm liy sa yo nan CS50. 19 elèv yo te vin pou pi devan anba sa a kloz ane pase. Nou te pran pa gen okenn aksyon pou sèt nan elèv sa yo, pou detèmine si ke yo te san nesesite enkyete. Yo pa te gen, an reyalite, janbe lòt yon liy, men li te yon bon chat gen Alòske. Nou zero 11 nan nòt yo ki te soumèt. Ak nan yon sèl ka nou te mande yon elèv yo dwe fè yon pwoblèm mete. Men, plis konvenkan, onètman, ak sa yo 19 cha, ki te fason pi plis pase m ' espere gen, chak nan yo 10 minit nan petèt yon Lè sa va rive long, tou te pote nan limyè yon kantite pwoblèm konsènan pwoblèm familyal, pwoblèm zanmi, pwoblèm sante mantal ke nou Lè sa a, angaje, ak benediksyon elèv la, rezidan dwayen, oswa zanmi, oswa nenpòt ki lòt nimewo nan resous sipò. Se konsa, ke sa a te pa lwen youn a sèvi avèk yo pi byen nan tan nou an ak youn nan entèvansyon yo pi byen. Avèk ki te di, li pa te gen okenn D 'sou pousantaj la deteksyon yo jete akademik plis jeneralman. Apre sa, mwen bay gabèl di, sous-ensemble sa a elèv ane pase a te yon demografik ke nou deja pa janm idantifye anvan epi pa janm te konekte ak anvan. Se konsa, sa yo te bèl bagay istwa siksè menm si yo te mennen l 'bay limyè nan mwens pase sikonstans pi bon. Se konsa, kenbe sa a nan tèt ou paske ou kapab fè, petèt, kèk desizyon pòv tèt ou anreta nan mitan lannwit, ki di ke gen REKOU lontan kòm elèv la nan ke sitiyasyon posede leve, li vini pou pi devan pou ke nou kapab gen sa kalite chat ak fè fas ak li nan yon fason sa a, se edikasyon, ak Lè sa a nou ka mete l 'dèyè nou jou kap vini an. Se konsa, san yo pa plis tarde, pran an kwen koupe nan konvèsasyon sa a, rezon ki fè yo puppies yo yo moute se jis kraze glas la pou yon moman. Apre sa, malerezman, yo ap tout dòmi, men sa ki te sipoze rive isit la te tout moun te sipoze tranble ak kalite detann Apre sa konvèsasyon trè lou. Men, aparamman mwen mete puppies yo nan dòmi. Men, si ou ale nan CS50 nan puppies koupe sou sit wèb, ou ka gade yo tout lajounen. Patikilyèman petèt 2:00, oswa 3:00, oswa 4:00 AM nan mitan lannwit yo wè yon sekou estrès ti kras la. Se konsa, se sa ki koupe puppies. Tout dwa. Pa t 'ki plezi? OK. Se konsa, tounen nan kèk òdinatè syans, si mwen ka. Se konsa, sonje ke dènye fwa nou te kòmanse kap pa sèlman nan prensipal yo, ki te fonksyon an default, nan lè drapo vèt klike ekivalan, men nou te kòmanse yon ti tan tou ekri kèk nan pwòp fonksyon nou an. Apre sa, konsa byen lwen okenn nan fonksyon sa yo yo te patikilyèman gwo oswa etofe. Ou ap jwenn nan sa yo ki pi gwo fonksyon pwobableman, P mete 2, P mete 3, definitivman P mete 4 ak pati. Dwa koulye a pi fò nan pwogram ou an, si se pa tout nan yo, sètènman pou P ka mete 1 dwe fè antyèman nan prensipal la. Si pwogram ou a sèlman senk liy, 10 liy, menm 20 liy long, parfe rezonab yo ekri li tout moun ki nan prensipal la ak pa sou konplike kòd ou a, men sa n ap fè jodi a ak pati ap eseye tou prezante kèk teknik konsepsyon bon se konsa ke kòm kòd ou a vin pi plis konplike ak jan pwoblèm sa yo ou vle jwenn pi difisil epi rezoud plis enteresan ou gen, sòt de, zouti yo nan bwat zouti ou a ak ki nan konsepsyon bon solisyon ak sa yo. Se konsa, kite a pran yon gade rapid tounen nan pwogram sa a soti nan semèn pase a mwen, ki te fonksyon zewo dot C. Epi remake ke, byen tou senpleman, li sanble tankou sa a ak de fonksyon, prensipal ak non ekri an lèt detache. Ak panse tounen oswa petèt ranvèse jeni jodi a, sa ki te motivasyon an pou entwodwi yon fonksyon nan liy 28 rele, ekri an lèt detache non? Oswa sa ki te sa a yon egzanp sou nan tèm de yon prensip oswa Takeaway, si ou ta. Gen kèk murmura. Kisa? Yeah se konsa Fonksyonèl Dekonpozisyon se kalite wout la anpenpan nan li di: dekonpoze pwogram ou an pati konstitiyan li yo ak Lè sa a sèvi ak moun ki pati yo rasanble yon tout antye. Se konsa, ki twò se jis kalite nan yon gren deja, men sa a se petèt menm yon pi bon egzanp nan yon bagay jis rele distraksyon. Dwa? Distraksyon ki pral yo dwe youn nan tèm yo renouvlab nan CS50 epi tou li syans òdinatè plis jeneralman depi li nan yon teknik ak kote ou ka rezoud pwoblèm plis efikasite paske ou ka ekri solisyon plis entwitif ak nan yon fason ki balans ak se konprann pa lòt moun. Ki sa mwen vle di pa sa? Se konsa, joui li se pi plis lizib fè yon gade nan yon pwogram tankou sa a, super kout menm si li se. Lè ou wè sou liy 22 ke gen nan yon fonksyon rele, non ekri an lèt detache. Ke non pou kont li di ki sa li fè. Sa fonksyon aparamman pran D 'ant parantèz li yo, ak aparamman fè yon bagay, prezimableman simagri non an. Se konsa, menm si nou absoliman te kapab gen fè sa nou te fè yon semèn de sa, ki te jis pran liy sa a aktyèl la nan kòd, jwenn m de sa a, epi pou yo jwenn m de sa a tout ansanm, nou sòt de distrè lwen nosyon de enprime yon non. Mwen pa pran swen si w ap itilize ekri an lèt detache def. Mwen pa pran swen si ou gen yon pousan S ak yon N. antislach sa yo yo se detay èkstrèmeman Esoteric. Ki sa mwen pran swen sou kòm yon pwogramè se enprime yon non. Se konsa, sa ki pi bon fason yo fè sa pase lè w rele yon fonksyon, non ekri an lèt detache? Se konsa, sa ki te youn nan motivasyon yo pou fè yon bagay tankou sa a. Fè kòd la plis lizib, plis ki kapab itilize ankò, epi tou li pwòp tèt ou deskriptif. Koulye a, kite a pran yon gade nan yon lòt egzanp, ki te fonksyon yon sèl, ki nou te gen sou isit la. Se konsa, yon sèl sa a se petèt menm plis irezistib paske, nan ka sa a, Mwen pa vle jis jwenn yon int. Mwen vle yo ka resevwa yon int pozitif. Epi li vire soti yo ka resevwa yon pozitif int sa ou dwe fè yon pakèt moun sou legwork. Dwa? Li pa yon senp yon sèl liy rele tankou y'ap nonmen non ekri an lèt detache te, ki se Byensir mwens konvenkan. Pou jwenn yon int pozitif, logically-- kite m 'woulo liv tounen desann nan kache sa a. Ki sa ki sa ou dwe fè? Tankou tout zouti sa yo nou gen nan moman sa a yo bagay sa yo tankou ekri an lèt detache soti nan def Standard Bibliyotèk ak tou nan bibliyotèk CS50 nou gen Jwenn Int, ak Jwenn Flote, Jwenn Long Long, Jwenn fisèl, men se yon sèl la sèlman, konvnabl, kounye a se Jwenn Int. Se konsa, si zouti a sèlman ou gen nan ti bwat zouti ou a se Jwenn Int, ki jan nou ale sou mete ann aplikasyon li jwenn int pozitif? ODYANS: Kreye yon boutèy demi lit epi tcheke sou si opinyon nan yo ke yo te bay te pozitif oswa ou pa. Oratè 1: pafè. Egzakteman. Yon lòt zouti nou genyen nan nou an bwat zouti ki sòti nan yon semèn oswa de de sa se jis konstwi nan loupin. Se konsa, yeah, si nou itilize yon ti tan bouk, oswa yon fè pandan y ap riban, oswa yon avan bouk nou te ka pwobableman jwenn lwen avèk nenpòt nan moun ki nan kèk fòm. Nou ka aplike nosyon de jwenn int pozitif pa jis lè l sèvi avèk Jwenn Int, ak Lè sa a jis kenbe rele li ankò, li kenbe pestering itilizatè a jouk li oswa li te aktyèlman ba nou sa nou vle. Se konsa, kounye a, sa a distraksyon nan pwosesis la pou trape yon int pozitif nan yon fonksyon rele Jwenn pozitif Int se yon ti kras pi plis irezistib paske gade nan sa a. Sa yo se tankou 10 plis liy nan kòd ki yo patisipe nan ap resevwa yon int pozitif, epi mwen pa reyèlman sousye ki jan ou fè li. Tout sa mwen pran swen se ke ou ka fè li, Se konsa, mwen te ak kache tout detay sa yo dèyè yon fonksyon rele Jwenn pozitif Int sa, tout bon, gen fè sa a pandan y ap riban. Ak wè semèn pase a pou sentaks la gen, men li jis deklare N, epi li simagri soti nan enstriksyon itilizatè a. Li rele Jwenn Int ak Lè sa a li tcheke kondisyon sa a ankò, e ankò, e ankò jiskaske itilizatè a kolabor. Se konsa, kounye a, yon chèk saniti kèk. Pou moun petèt abitye ak kèk pwogram, poukisa se te deklare N, poukisa mwen kreye N andeyò fè a pandan y ap riban? Poukisa li sou liy 29 epi yo pa sou tankou 33, pou egzanp. ODYANS: Paske lè ou deklare li deyò, li kalite ki gen plis, la pi gwo scope-- Oratè 1: Bon. ODYANS: --and si ou deklare li anndan bouk la, [fèbl] paske li pa konnen sou li. Oratè 1: Egzakteman. Si m 'ka simplify-- li nan yon pwoblèm nan sijè ki abòde. Apre sa, sijè ki abòde refere a kontèks la nan ki yon varyab egziste oswa se kapab itilize. Apre sa, règ la bèl nan gwo pous isit la se ke jeneralman lè ou deklare oubyen kreye yon varyab ou ka sèlman sèvi ak li andedan nan ki pi pre a globale aparèy òtopedik Curly. Se konsa, sa sa vle di? Si m ', olye de sa, defèt sa a epi ale ak yon bagay ki santi l yon ti kras ki pi senp. Dwa? Liy 32 jis sanble cleaner m 'kounye a. M ap fè tou de bagay sa yo nan yon fwa ak Lè sa a plase bò dwat nan men gòch la. Pwoblèm nan kounye a ki baze sou ki definisyon nan sijè ki abòde se ka ki N dwe itilize nan liy 31 ak 32 andedan nan sa a riban, men ki kote pa ke definisyon ka li pa dwe itilize? Nan liy ki sa? Yeah. ODYANS: 35. Oratè 1: 35. Definitivman pa 35. Epi tou kote lòt bagay? ODYANS: 34. Oratè 1: Menm 34 se pwoblèm paske li nan deyò nan aparèy òtopedik yo Curly. Se konsa, an reyalite, kite a wè sa ki rive. Dwa? Sa a ta ka sanble yon ti kras entwisyon ou non ta ka, men kite a wè a ki sa du te di lè nou ale nan anyè sous la jodi a. Fè fonksyon yon sèl. Oh, mwen bondye. Bon, mwen finalman fini ki, nan chemen an. Tout dwa. Ak sa ki nan pwoblèm nan isit la? Trè Esoteric fè yon gade nan. Men, isit la a ki sa mwen typed-- fè fonksyon yon sèl. Isit la nan sa ki fè pwovoke, ki se aktyèlman lè l sèvi avèk sonnen nan du ak kèk nan moun ki drapo ke nou pral wè ankò anvan lontan. Epi ankò, toujou gade nan premye erè a, paske li ta ka jis gen yon kaskad san sans efè sou lòt liy yo. Se konsa, sa sa vle di se ke nan pwoblèm se nan 1.c. fonksyon Li se sou liy 32. Lè li nan nan kolòn, oswa karaktè, 13. Se konsa, lè editè tèks ou a, ki kapab ede w idantifye ki kote pwoblèm nan ye. Se konsa, si mwen woulo liv moute, ki sa ki liy 32? Sa a tout bon yon sèl sa a ki nan deja make dwat isit lan-- rès varyab n. Men, li la pa rès. Mwen lè l sèvi avèk li. Men, nan la du konfonn, paske li sèlman egziste andedan nan sijè ki abòde sa a. Se konsa, mwen pa ka sèvi ak li isit la. Mwen pa ka sèvi ak li isit la. Apre sa, du a, Se poutèt sa, pa menm pran swen ke mwen ap eseye. Li sanble yo dwe rès nan sijè ki abòde aktyèl li yo. Se konsa, nou ka elaji sijè ki abòde lan nan fè ekzakteman ki sa nou te kòmanse with-- int n. E menm si li pa fè sa gade kòm elegant, petèt, epi nou ap pran yon liy siplemantè isit la, kounye a li nan nan sijè ki abòde toupatou. Se konsa nou eseye ankò. Se konsa, fè fonksyon yon sèl. Nice. Epi, koulye a si mwen si mwen kouri fonksyon yon sèl, se pou yo bay li negatif 10, negatif 1, 0, 1, epi li tout bon travay. Se konsa, gen nan yon lòt solisyon isit la. Ou konnen ki sa? E si mwen reyèlman kap batay ak sa a? Mwen pa konnen a ki kote N a sipoze ale. Ou konnen ki sa? Mwen jis ale nan mete l 'tout nan fason nan tèt la nan dosye mwen isit la. Ki sa ki ta sa a, ou panse? Yeah? ODYANS: [fèbl]. Oratè 1: Yeah. Se konsa, mwen te fè l 'mondyal, se konsa pale. Si ou gen yon varyab sa a, se deyò tout nan fonksyon ou ki se pèmèt, ak kòd la ta dwe konpile, ak n pral kounye a dwe aksesib pa sèlman nan jwenn int pozitif, men tou, nan main-- ki se yon ti kras inkyétant paske gen nan deja yon n nan prensipal yo, se konsa pi plis sou sa nan jis yon moment-- men sa a ta dwe konsidere kòm move konsepsyon. Tout dwa. Si ou gen resort yon bagay tankou, o, mwen pral jis mete l 'kanpe isit la paske kòd a sanble yo konpile se jeneralman yo pa pratik la pi byen. Olye de sa ou vle yo chwazi sijè ki abòde lan etrwat posib pou varyab ou a, ki ta vle di ale ak desen inisyal nou an, ki se dwa isit la. Koulye a, kòm yon sou kote, si ou t 'gen yon idantik-yo te rele varyab isit la, fason c a ta okipe sa a men menm si sa a pa pral rive twò often-- se ke sa a se toujou parfe amann nan isit la. Men, definisyon sa a nan n nan liy 22 pral lonbraj yon sèl la mondyal la. Se konsa, yon sèl sa a ap travay nan prensipal yo, ak yon sèl la mondyal pral aktyèlman aplike lè w ap nan jwenn pozitif Int Men, plis sou sa yon lòt lè, men jis pou moun kirye. Se konsa, nan ti bout tan, nou ranje sa a isit la. Koulye a, kite a toumante apa de lòt moso anvan nou gade nan yon dènye liy nan Kòd nan pwogram sa a. Jwenn Int pozitif. Ki sou bò gòch-men nan mo li yo se pawòl Bondye int la. Ki sa sa siyifi ou panse? Konsa byen lwen nou te sitou wè anile. Yeah? ODYANS: Li nan ki kalite varyab ke w ap poze kesyon sou. Oratè 1: Yeah Li nan ki kalite, kite m ' pa di varyab, men kalite a ki gen valè ke mwen mande tounen pou. Ak tout bon, sa a, se entwisyon isit la, èspere ke. Dwa? Si ou vle yo ka resevwa yon int pozitif, ki sa ki li ou vle fonksyon-la tankou nou an volontè ki soti nan semèn pase a nan men ou tounen yon moso papye avèk yon int sou li? Se konsa, nou te espesifye ki la sa yo rele kalite retounen nan fonksyon sa a se jwenn int pozitif. Si nou pa t 'vle l' bay retounen anyen, ou di anile. Si ou vle l 'bay retounen yon fisèl, ou di fisèl. Si ou vle l 'bay retounen yon flote, ou di flote. Men, yon sèl la sèlman ki aplike isit la lojikman, paske mwen lè l sèvi avèk jwenn int, menm si mwen mete restriksyon sou li a valè pozitif, se retounen yon int. Se konsa, Kontrèman, ki sa sa vle di ke gen nan yon anile nan parantèz? Ki sa ki fè parantèz yo jeneralman defini? Yeah? ODYANS: Sa vle di nan la fonksyon pa aktyèlman ap resevwa li. Oratè 1: Sa vle di nan la fonksyon pa aktyèlman ap resevwa sa? ODYANS: Yon opinyon. Oratè 1: Yon D ', tou. Se konsa, tout bon, si parantèz isit la ou presize anile, ki jis vle di mwen pa vle nenpòt opinyon. Mwen pral fè fas ak pwoblèm nan tèt mwen. Ak tout bon, ou pa bezwen di jwenn pozitif anyen int. Ou jis di, jwenn int pozitif, e ke fonksyon pral ale koupe ak fè sa li yo. Men, te gen yon ti kras Trick mwen te te jwe isit la tan sa a tout antye a asire w sa a compiles Kòd. Remake int-- jwenn pozitif int void-- se sou liy 27. Men, pou kèk rezon w pèdi etranj li la tou moute isit la sou liy 16. Epi jis pou bon mezi mwen pral repete sa a se konsa li a parfe idantik. Apre sa, mwen te di pwototip ak yon ti kras yon sèl-liy kòmantè. Kisa k ap pase si mwen efase sa, Apre sa, kounye a relance fè fonksyon 1, antre. Whoops. Rete tann yon minit. Ki kote nan tab mwen an? Huh? Sibstiti. Fè fonksyon 1. Gen nou ale. OK. Pa t 'sove li byen. Se konsa, mwen panse ke gen nan yon ti kras ensèk isit la kote mwen pa wè non an tab nan moman an. Se konsa, sa k ap pase isit la? Enplisit deklarasyon nan fonksyon jwenn int pozitif se valab nan C99. Se konsa, konfizyon ankò. Se konsa, sa se sa a indicative de? Oke, li sanble ke C se trè estipid. Oke, li nan pwogram lan lang, ou pito du a se. Li sèlman konnen sa ou genyen anseye l ', li li a sèlman ale nan konnen yon bagay si ou te anseye l 'devan. Nan lòt mo, nan prensipal nan moman sa a, mwen ap eseye rele yon fonksyon rele jwenn Int pozitif. Men, du a pa pral a yon avi ki jwenn Int pozitif egziste jouk liy 26. Se konsa, sa ki du a fè se jis erè le pli vit ke li vin nan liy 17, di enplisit deklarasyon a jwenn int pozitif, ki se jis yon fason anpenpan nan li di: Mwen pa fè sa konnen ki sa jwenn int pozitif se ankò. Lòt lang tankou Java ak Piton ak Ruby ta ka gade devan yo. C pa fè sa. Se konsa, wout la nou ranje sa a se youn nan de fason. Swa yon sèl, si pwoblèm nan se ke jwenn int pozitif pa te wè anvan, byen, kite m 'jis avanse pou li nan tèt la. Sa ta ranje pwoblèm sa a. Men, jeneralman, li nan konsidere kòm pi bon teknik yo mete fonksyon prensipal ou a trè a tèt pou ke yon moun lekti kòd ou a konnen sa ki pwogram lan fè, paske prensipal se pa sa antere l 'tout wout la nan pati anba a oswa nan mitan yo. Li nan nan tèt la anpil. Se konsa, ki pa santi ideyal. Epi ou ka aktyèlman jwenn nan sitiyasyon kote si apèl yon sèl fonksyon yon lòt, ki fè apèl yon lòt, ou ka jwenn nan yon pwoblèm kote ni ka ale pi wo a lòt la, ak lojik. Se jis pa posib. Se konsa, wout la nan travay alantou sa a se jis pran siyati fonksyon an nan, se konsa yo speak-- liy lan premye kote li nan declared-- ak jis kopi, kole li nan la tèt, men pa ak Curly braces-- jis ak yon virgules. Se tankou yon ti kras allusion nan sa ki ap vini yo. Ak an reyalite, tout tan sa a lè nou te wè bagay sa yo tankou estanda io.h ak cs50.h, Menm jan an tou, nan sa yo dot h dosye ki genyen lòt prototip. Epitou, n ap wè ke anvan lontan. Se konsa, nan ti bout tan, lè ou gen yon pwogram nan yon dosye ki gen plizyè fonksyon san konte prensipal la, ou prèske toujou vle deklare yo jis pa fason pou premye yo liy, ki te swiv pa yon virgules, nan tèt la anpil nan dosye a. Sa ki te yon anpil tout nan yon fwa. Nenpòt kesyon? Nenpòt kesyon? Tout dwa. Se konsa, kite yo deplase sou Lè sa a, nan yon bagay tankou tous. Oh. Kouman sere. Tout dwa. Tous. Se konsa, isit la se yon c mete sou pye yon pwogram nou te fè lòt jou a nan Grafouyen ki anpil tou senpleman jis di tous, tous, tous. Tout dwa. Men, yon moun te di yon kèk jou de sa ke gen nan yon fason pou netwaye kòd sa a moute deja. Tout dwa? Le pli vit ke w ap kopye ak rakle pwobableman move konsepsyon. Omwen yon fwa nou jwenn nan kat oswa senk oswa 20 touse, li santi l move pratik. Nou jis kenbe kopi, kole. Ki sa ki nan solisyon an evidan netwaye pwogram sa a moute? ODYANS: Loop. Oratè 1: Yeah. Se konsa, sèvi ak yon riban. Apre sa, nou ka sèvi ak yon-riban pou, yon ti tan riban, nenpòt ki kantite apwòch. Ak tout bon, se sa ki nou fè nan vèsyon yon sèl isit la. Mwen te olye pou reekri li nan vèsyon youn nan cough.c yo dwe jis tous ki nan yon-riban pou. Tout dwa, men gen nan yon opòtinite kounye a kalite kòmansman nan konsepsyon sa a yon ti kras pi plis tankou leson an nou te anseye yon ti moman de sa, ki se sa a men ta kwè ke mwen te yo kreye yon fonksyon rele tous, se pou yo konsidere sèlman pou moman yon ki sa li k ap pase yo sanble. Se konsa, si mwen vle yon bagay yo touse, mwen jis bezwen yo sèvi ak ekri an lèt detache f andedan fonksyon an. Ak tout bon mwen wi. Ak an reyalite, tout bagay sa a tan, nenpòt ki lè w ap enprime yon bagay yo ekran an, yon pwogramè ta rele ke yon efè segondè. Li nan pa m 'Distribiye tounen yon moun yon valè. Li nan m 'pran kèk aksyon ke sa ta kapab vizyèlman evidan. Men, sa a tous fonksyon, li retounen anyen ki baze sou liy premye li yo? Non, paske kalite retounen li yo se anile, ki jis vle di li pa nan Distribiye m 'anyen tounen. Li ta ka fè yon bagay vizyèlman, men li pa nan Distribiye m ' do yon moso papye tankou semèn pase a. Li bezwen nenpòt opinyon? No Se konsa, li nan anile isit la tou. Se konsa, sa a twò se kalite sou-jeni pwoblèm sa a. Dwa? Mwen te fè pwogram nan plis konplèks, plis liy nan kòd, Mwen pa t 'fè li nenpòt ki plis fonksyonèl, men sa a ta dwe yon wòch kite, petèt, pou yon pi laj kontèks ki gen plis konplike kòd. Men, sa ki sou sa a? -Kisa M 'done-- jis regardant nan sa a san gade nan kòmantè a nan tèt la anpil nan file-- a sa gen Mwen fondamantalman fè isit la ak tous mwen aplikasyon sa a, se diferan? Yeah, nan do? ODYANS: Fè li pou ou kapab gen yon karaktè fèmen. Oratè 1: Yeah. Se konsa, sa santi l kalite bèl. Dwa? Se tankou ajoute yon karakteristik yo ou pwogram oswa fonksyon ou, nan ka sa a. Li toujou kontinye retounen pa gen anyen. Li ta ka gen yon efè segondè vizyèl, paske li nan rele ekri an lèt detache f. Men koulye a, mwen te parametrized fonksyon an, ki vle di mwen te espesifye pran D 'nan kalite int ak rele li n, men mwen te kapab rele l 'anyen mwen vle. An reyalite, li te kapab jis pou fwa yo dwe menm plis eksplisit. Lè sa a, mwen te kapab jis chanje sa a isit la. Men, pwen an se ke sa a se ki jan mwen kreye yon fonksyon ki pran opinyon. Men, si ou sonje ranvèrsan a petèt sou entènèt nan yon sèl a mache-kuvèt yo, nan katriyèm ak egzanp final tous, ou pral avi isit la mwen te jeneralize kòd m 'kalite further-- a distrè li pi lwen. Fè tankou tous ak etènye, tou de yo se sou tankou li di yon bagay oswa fè kèk kalite son. Save ta dwe nan korespondan blòk grafonyen moun. Se konsa, sa m 'te nan vèsyon sa a, nou ka jis ti koutje sou nan, se tous se jis tankou li di: [TOUS], touse, ak pandan se tan, etènye se tankou li di: [achoo]. Se konsa, mwen te jeneralize aplikasyon an nan tout sa yo mete ann aplikasyon pa kounye a sa a fonksyon jenerik, di, ki se enteresan pou rezon a jodi a sèlman paske li toujou pa gen yon kalite retou. Men, ki jan anpil entrain li genyen? ODYANS: De. Oratè 1: De. Se konsa, si ou vle pran an de agiman, jis separe yo ak yon vigil. Men, si ou vle Lè sa a, rele ke fonksyon, remake ke ou jis rele di, quote, unquote, pou agiman an premye, komen n, pou agiman, dezyèm lan. Se konsa, ankò, nou jis gen kounye a nan blòk bilding pou ke nou kapab aktyèlman aplike kèk nan pwòp fonksyon nou an. Tout dwa. Nenpòt kesyon sou sa yo? Se konsa, kounye a kite a kale tounen yon kouch si se konsa. Apre sa, objektif la, finalman, se mete pwoblèm semèn pwochen an ki pral yo dwe sou cryptogrophy-- atizay la nan eskalade enfòmasyon. Apre sa, espesyalman, enfòmasyon ki pral gen ou ankripte oswa dechifre a pwal tèks. Se konsa, ki kalite envite kesyon an jodi a tankou byen, sa k ap pase anba kapo a ak tèks pi lwen pase ASCII soti nan semèn zewo, ak ki jan nou aktyèlman kapab kòmanse manipile li? Se konsa, isit la se Non Zamyla a. Ak nan tèks, ke sa ta kapab antre an tankou fonksyon an jwenn fisèl. Apre sa, kòmanse kounye a, lè ou wè yon fisèl tankou sa a men Z-A-M-Y-L-A-- kòmanse panse a li tankou si chak nan karaktè sa yo se nan yon bwat nan li yo pwòp. Ak tout bon, nan yon semèn oswa konsa nan tan, chak nan sa yo bwat ki pral reprezante anpil espesyalman yon blòk nan memory-- yon mòde nan memwa. Se konsa, chak nan lèt sa yo, finalman, pral reprezante 8 miyèt moso. Epitou, n ap aktyèlman wè sa k ap pase sou anba kapo a nan òdinatè mwen an. Men, pou pa li sifizan jis fè yon gade nan Zamyla nan lantiy sa a, annakò ak sa chak nan lèt sa yo se nan ti bwat pwòp li yo. Apre sa, joliman ase nan C nou kapab aksè chak nan sa yo bwat dirèkteman. Se konsa, si ou vle jwenn premye a lèt nan non li, super fasil nan C. Si ou vle jwenn dènye a lèt, super fasil kòm byen ak yon moso nouvo sentaks. Se konsa, mwen pral ale pi devan nan CS50 IDE epi louvri moute fisèl la zewo dot C. Ak nan egzanp sa a isit la, gen yon koup de bagay sa yo nouvo pral sou. Se konsa, premye nan liy 19, nou te wè sa a fisèl jwenn fè anvan. Se konsa, menm jan yon chèk saniti rapid, si yon moun te ka ofri moute vèbalman eksplikasyon yon pwofàn la nan sa k ap pase nan liy 19. Fè tankou jis tradui sa a nan Angle ke yon kolokasyon pa nan CS50 ta ka konprann. Yeah. ODYANS: Gen opinyon itilizatè yon nan fisèl epi estoke l 'nan yon nan varyab. Oratè 1: Bon. Fè D 'nan itilizatè yon afè epi estoke l 'nan yon nan varyab. Sa bon. Se konsa, sou bò dwat- bò, nou rele jwenn fisèl. Sa retounen yon valè ki pa t 'jwenn asiyen ki sòti bò men dwat-ou sou bò goch men- bò nan yon varyab rele nan sa a, se fèt nan magazen yon kòd. Egzakteman. Se konsa, kounye liy 22, pou chak kòmantè a nan liy 21, evidamman simagri ki fisèl yon karaktè pou chak liy. Men, ki jan? Se konsa, premye a tout, nou inisyalize m '0. Lè sa a, ki jan nou ale nan nan fen Non Zamyla a? Oke, nan fen Non Zamyla a, mwen te kapab manyèlman tape nan pèsonaj la sot pase yo nan non li yon jan kanmenm, oswa nimewo a nan li. Dwa? Si nou tounen isit lan-- Z-A-M-L-- Y-L-A-- konsa mwen te kapab tape nan. Ki sa ki nan endèks la nan Dènye lèt Zamyla a? Si sa a se 0-- pale tankou yon programmer-- 0, 1, 2, 3, 4, 5, Mwen heard-- konsa tout bon, dènye lèt la nan non Zamyla a se sizyèm lan, men si nou konte soti nan 0, li k ap pase yo dwe nimewo 5. Se konsa, kenbe sa nan tèt ou isit la. Li sanble gen nan yon fonksyon nan C rele strlèn, ak tounen lakay ou nan jounen an ak nan jou sa a toujou, yon anpil nan pwogramasyon chwazi nan senk non pou yo fonksyon ki son tankou mo sa yo yo ap eseye di. Se konsa, strlèn se fisèl longè. Se konsa, sa ki ta longè afè de S retounen lè Zamyla se opinyon an? ODYANS: Senk. Oratè 1: Z-A-M-Y-L. Sis. Dwa? Ki sa ki nan longè a nan non Zamyla a? Dwa? Epi jis nan reyalite, sis lèt yo. Dwa? Se konsa, ki sa sa vle di pou riban nou an? Nou pral ale nan 0 jiska sis, ki ki pral ban nou senk itérations. Kisa nou fè sou chak iterasyon? Oke, pousan C, yon moun dvine lòt jou a, vle di yon kontneur pou ki sa? ODYANS: Char. Oratè 1: Jis yon Char. Se konsa, yon sèl pa character-- karaktè miltip tankou yon fisèl. Lè sa a, isit la nan liy lan nouvo ke nou te gen enprime deyò. Lè sa a, isit la nan sentaks nan nouvo. Si ou vle enprime soti-th a mwen karaktè nan S nan fisèl, se konsa pale, ou ka senpleman di nan non nan S nan fisèl, ak Lè sa a louvri bracket kare, ak Lè sa a, fèmen bracket kare, ak yon m mitan yo. Lè li nan kalite bèl nan ki li kalite sanble yon kare jis tankou kare yo nan ki Zamyla a karaktè egziste sou ke foto a. Se konsa, si mwen aktyèlman kouri sa a kounye a, kite a wè sa ki rive. Fè fisèl 0 dot koupe fisèl 0, ak Lè sa a mwen se ale nan tape nan non Zamyla a. Gen nan pa gen èd memwa, paske mwen pa t ' itilize ekri an lèt detache f, men sa a amann. Mwen jis konnen ki sa fè. Ak tout bon, li simagri soti Non Zamyla a, yon sèl pou chak liy. Koulye a, kite a gen yon ti kras ensousyan. Sipoze ke mwen pa t 'konnen sou strlèn ak mwen kalkile, tout dwa, pa gen yon k ap pase yo gen yon non pi gwo pase tankou 50 karaktè. Se pou nou ale pi devan epi compile sa a ak relance li, ak Lè sa a tape nan Zamyla ankò. Lojikman, ki sa ki la pwogram pral eseye ekri ak lèt ​​detache? Z-A-M-Y-L-A Lè sa a, tankou 45 bytes unknown nan memwa. Ak tout bon, nou pral tounen vin ak ide sa a nan memwa. Men, jis lojikman, si Non Zamyla a se sa a depi lontan, tankou pou chak foto a isit la, sa nou ap di se kenbe enprime, kenbe enprime, kenbe enprime, kenbe enprime, kenbe enprime, tout wout la nan pèsonaj la 50th, ki moun ki konnen sa ki pwal pase. Se konsa, kite a aktyèlman pran yon gade. Se pou yo tape nan Zamyla. Enteresan. Nou te resevwa chans. Jis yon pakèt antye nan espas blan. Oh. Genyen yon karaktè Funky. Li sanble kalite tankou yon kesyon etranj make a, men gen se non Zamyla a. Se pou nou jwenn vrèman ensousyan. Kouman sou nou enprime soti 500 blòk nan enkoni an? Se pou nou ale pi devan epi fè sa-a osi byen ak Lè sa a re-kouri. Apre sa, nan kite plen ekran l ', paske nou bezwen wè plis espas. Zamyla. Got chans ankò. Dare nou jwenn plis ensousyan? Se pou nou jwenn plis ensousyan. 50,000 karaktè. Sa a se pi siman pa yon bon lide. Tout dwa. Fè fisèl 0. Sa a pral Demo dènye nou an. Zamyla. Pwa. Pwa. OK. Se konsa, memwa mwen se reyèlman vid kounye a, ki se aktyèlman kalite pratik. Sa mwen ap ap eseye jwenn to-- tout dwa. Epi, koulye a mwen jis ale nan jwenn ensousyan. 500,000. Make-- kite nan plen ekran-li. Antre nan. Zamyla. Gen nou ale. Mwen pa gen okenn lide ki sa ki se, men li son move. Tout dwa. Ak an reyalite, pi vit, si w ap nan mitan kèk nan ere nan lè biwo ak nan pwoblèm mete yon sèl, ou ta ka trè byen rankontre sa a. Fòt Segmentation aktyèlman fè gen yon siyifikasyon ki byen defini. Sa vle di kèk kalite erè ki gen rapò ak yon segman nan memwa. Ak nan tèm pwofàn la, sa vle di nou manyen memory-- nou itilize RAM nan òdinatè mwen an ke mwen pa ta dwe te te gen aksè a. Epi sa a, sa ki nan tou de pwisan ak danjere tou sou C se ke ou aktyèlman gen aksè illimité antye a nan pwogram ou an memwa oswa bytes oswa RAM, plis espesyalman. Se konsa, menm si non an Zamyla se sèlman sis karaktè long, Mwen ka toujou ale nenpòt kote nan memwa mwen vle. Apre sa, kòm yon sou kote, si ou te tout tan tout tan li kèk atik sou ane yo sou kèk sèvè oswa kèk pwogram ap resevwa fann oswa rache sa a, se pran avantaj de yon bagay rele yon debòde tanpon esplwate ke nou pral aktyèlman pale sou nan yon kèk semèn, sa a, se jeneralman refere li a yon jan kanmenm tricking yon òdinatè nan mache byen pi lwen pase limit yo nan memwa ke li ta dwe gen, ak jwenn yon bagay juicy nan ki memory-- yon modpas, petèt, yon fason a kontourn kèk nimewo seri tcheke, oswa jis jeneralman kapab fè je chèch ak òdinatè a se egzekite kòd ki pa t 'gen entansyon. Men, kite a tounen vin jwenn reyalite pou jis yon ti moman kote pwogram sa a te aplike ak strlèn, ak prezante yon sèl bagay moute isit la. Ki sa ki nan nouvo nan mitan twa liy tèt sa yo? Se konsa, fisèl dot h. Li sanble gen nan bibliyotèk sa a yo rele Fisèl Dot H, oswa bibliyotèk la fisèl, ki gen dosye header, se konsa pale, se fisèl dot h ki ban m ' aksè nan fonksyon strlèn sa a. Si m 'retire okenn pati sa, du a se ale nan rele nan m 'nan kèk fòm. Men, ou konnen ki sa? Koulye a, kite a jwenn vrèman nuans. Nan liy 22, gen nan yon bagay kalite a inefficient-- seryezman fèt, arguably-- sou liy sa a nan kòd. Panse tounen nan ki jan pou-bouk yo nan faz egzekisyon ak sa ki etap rive ankò ak ankò, li again-- inisyalizasyon a, kondisyon an, kòd la ki vin egzekite, lè sa a kantite a oswa chanjman nan, lè sa a kondisyon an, Lè sa a, kòd a, lè sa a chanjman an, Lè sa a, kondisyon an, lè sa a kòd la, Lè sa a, chanjman an, ak pou fè. Se konsa, sa ta kapab yon ti kras inkyétant oswa mal fè isit la? Yeah, nan ble. ODYANS: Strlèn se rele anpil, anpil fwa. Oratè 1: Yeah. Se konsa, strlèn yo rele anpil fwa, men ki sa ki longè a nan non an nan Zamyla premye fwa bouk la ègzekutra? ODYANS: Sis. Oratè 1: Sis. Oke, ki sa ki longè a nan non li yon dezyèm fwa kòd la ègzekutra? ODYANS: Sis. Oratè 1: Tout dwa. Li nan toujou sis. Dwa? Non Zarla la a pa gen anyen chanje, menm si M 'ap chache a sèlman yon pati nan lèt yo ki nan non li. Se konsa, lefèt ke mwen se efektivman mande kesyon sa a, sa ki nan longè a nan Zamyla, sa ki nan longè a a Zamyla, sa ki nan longè a nan Zamyla, sis fwa ki apa a, oswa sèt menm, se jis estipid, paske se sa ki imuiabl repons. Se konsa, ki sa mwen kapab aktyèlman fè se sa a men nan fisèl yon sèl Mwen gen yon vèsyon très pi bon isit la. There-- fisèl whoops-- de mwen gen yon vèsyon très pi bon dans M 'fè sa a men olye pou yo jis inisyalizin mwen a 0, Mwen menm mwen te ak yon vigil deklare yon varyab dezyèm rele n-- mwen pa te vle di int ankò. Mwen pa ta dwe, an reyalite. Men, mwen di n. Lè sa a, mwen inisyalize n Pou strlèn nan nan n, se konsa ke kounye a konbyen fwa strlèn debarase egzekite nan total? Jis yon fwa. Se konsa, sa a se sa nou vle di pi bonè sou pi bon konsepsyon. Aktyèlman yon fwa kòd ou a ki kòrèk, ale retounen lakay yo epi panse a, Mwen lè l sèvi avèk menm tankou ti memwa oswa kòm kèk segond oswa milisgond nan tan òdinatè kòm posib aplike kèk pwoblèm? Apre sa, mwen pral woulo liv leve, li jis mansyone ke gen nan mansyone sa a a nil nan vèsyon sa a, men nou pwal tounen vin jwenn ke anvan lontan. Paske pou kounye a, kite a pran yon gade nan kote sa a ki pral mennen nou. Se konsa, yon sèl, li vire soti ki kounye a ke nou gen kapasite nan fè yon gade nan karaktè endividyèl, nou ka ogmante yon bagay soti nan semèn 0 ki te trè Esoteric ak sòt de entérésan nan moman an. Men koulye a,, epi sitou lè nou li ale nan chifreman nan yon semèn, li k ap pase yo dwe trè pwisan. Li sanble ke ak kèk done types-- antye ak flote ak charaktèr ak strings ak lòt things-- kèk nan yo ka trè fasil konvèti nan yon lòt. Pou egzanp, lè nou te pale sou ASCII kèk tan isit la nan ago-- lèt majiskil A a M, dot, dot, dot-- nou te di ke gen nan yon kat ant lèt sa yo ak chif yo. Ak nan reyalite, li kenbe verite pou lèt miniskil kòm byen. Miniskil yon se 97, kapital yon se 65. Apre sa, nan yon nimewo nan ASCII, ki se jis kat sa a sistèm pou tout moun ki lòt lèt yo. Se konsa, sa sa vle di? Oke, mwen pral ale pi devan epi louvri moute reyèl byen vit yon bagay yo rele ASCII 0, pi fò nan ki se kòmantè. Epi ankò sou entènèt ou ka toujou ti koutje sou nan kòmantè yo. Apre sa, pran yon gade ki sa sa a ki pral fè. Se konsa, li nan te resevwa yon fonksyon prensipal la. Mwen te difisil-kode nimewo yo jis pou kounye a, paske mwen konnen sa m ap fè a. Mwen konnen sa m 'vle wè isit la. Apre sa, mwen te inisyalizèd mwen nan 65. Apre sa, mwen konte moute a 26 lèt totalize. Ak sa ki mwen pral enprime yon sèl liy nan yon moman si ou ka entèprete sa a make liy? Ki sa ki vin enprime? Yeah. ODYANS: Eske ou pral ekri ak lèt ​​detache lèt la ki koresponn ak kat jeyografik la nan la valè lèt ak valè nonb antye relatif? Oratè 1: Egzakteman. Mwen pral enprime lèt la ki koresponn a valè a nonb antye relatif, ak vis vèrsa, jan sa a. Oke sa a, yon moun te di anvan, se jis yon kontneur pou yon Char. Li toujou se. Sa a, nan kou, se yon kontneur pou yon int-- pa yon liy nouvo. Epi, koulye a remake, premye valè mwen ke Mwen rakorde nan pou ki kontneur se pa sèlman I. m ap di, nan parantèz, Char mwen menm, ki Char nan parantèz se di du a, trete mwen pa tankou sa li ye, ki se yon kantite. Trete li kòm yon karaktè vrè. Lè nou konsidere ke valè a dezyèm mwen rakorde in-- I-- ta dwe jis pou yon nimewo. Se konsa, si mwen konpile program-- sa a kidonk sa a se fè ASCII 0, dot ASCII koupe 0-- Mwen jis jwenn sa a ti kras tablo sou la men ki montre m 'tout nan posib la mapin san yo pa gen panse ke li a oswa figi li soti sou pwòp m 'yo. Apre sa, mwen tou enprime soti, remake lèt yo miniskil, paske yon liy kèk pita, mwen tou enprime soti kat sa a kòm byen, ki se jis yo di ke yon fwa ou konprann sa k ap pase anba kapo a, ou kapab otomatikman konvèti retounen ak lide. Ak nan reyalite, si yon moun pami nou 'fè sa a nan lekòl klas yo oswa tande sou yon moun mitik pran yon nòt yo, e pase l 'bay l' oswa yon zanmi l 'nan klas, men ou grenpe moute nan lèt pa tankou Yon vin B, ak B vin C, oswa yon bagay pi konplike pase sa, byen, ki jan ou ta ale sou mete ann aplikasyon ke kòm yon jenn ti kabrit? Oke, ou jis kalite konnen Yon vin B, B vin C, men matematik, sa ki te ke jenn ti kabrit ap fè? Ki sa ou te ajoute nan chak lèt? Efektivman, 1. Se konsa, lè ou chanje A jiska B, sa a, se kalite tankou chanje 65 a 66, ki vle di matematik jis ajoute 1. Se konsa, si ou te aplike ke ti kras teknik mansonjè pou pwofesè ou nan kòd, ou ta ka fè egzakteman ki jis lè yo ajoute yon lèt yon sèl ansanm. Se konsa, anvan lontan, nou ap ale nan wè ki jan nou kapab pran avantaj de ke yo aktyèlman vrèman goumen ak Dekode enfòmasyon. Nan entre-temps la, konnen ke nou te kòmanse prezante yon koup lòt bibliyotèk isit lan-- fisèl la yon sèl jodi a. Apre sa, yon sit trè itil èspere ke w ap jwenn yo rele sa reference.cs50.net, ki te anplwaye a ansèyman mete tèt yo ansanm, se konsa ke si ou vle gade moute travay ki jan strlèn, ou ka kòmanse sezisman Non fonksyon an nan, klike strlèn a, ak Lè sa a yon eksplikasyon mwens konfòtab ki pral parèt. Oswa si ou vle ofisyèl la Linux ki baze sou eksplikasyon, ou ka klike plis confortable nan tèt dwat, epi li pral prezante menm enfòmasyon an, men an tèm pi konplike. Sa se yon resous itil nan aktyèlman konnen ki sa tout bagay fè. Pwochen fwa nou ap ale nan pran yon gade nan Ovaltine ak plis ankò, epi prezante tèt nou nan mond lan nan chifreman. Anvan lè sa a, nou pral wè ou pita semèn sa a. Epi, koulye a, Colton Ogden. Al gade nan ou nan Mèkredi. [MIZIK jwe] [MIZIK jwe] Oratè 1: Ki sa ki nan [Top] n'ap fè? Oratè 1: Mwen manje desè mwen an? Ki jan ou fè manje l '? Avèk men ou? [MIZIK jwe]