ROB BOWDEN: Hi, mwen se Rob Bowden, e kite yo pale sou quiz0. Se konsa, premye kesyon an. Sa a se kesyon an kote ou te bezwen nan kòd nimewo a 127 nan anpoul yo binè. Si ou te vle, ou te kapab fè konvèsyon an regilye soti nan bi-- oswa, ki soti nan desimal binè. Men, ki nan pwobableman pral yo pran yon anpil tan. Mwen vle di, ou ta ka figi konnen sa, OK, 1 se nan la, 2 a se nan la, 4 se nan la, 8 se nan la. Pi fasil fason, 127 se 128 mwens yon sèl. Sa anpoul limyè leftmost se 128-ti jan an. Se konsa, 127 se reyèlman jis tout nan anpoul yo limyè ak lòt, depi lè sa a leftmost a limyè lanp mwens 1. Sa a li pou kesyon an. Kesyon youn. Se konsa, avèk 3 Bits ou kapab reprezante 8 valè diferan. Poukisa, lè sa a, se 7 pi gwo ki pa negatif la nonb antye relatif desimal ou ka reprezante? Oke, si nou ka sèlman reprezante 8 valè distenk, Lè sa a, ki sa nou ap ale nan dwe repwezantan se 0 a 7. 0 pran moute youn nan valè yo. Kesyon de. Avèk Bits n, ki jan anpil distenk valè ou ka reprezante? Se konsa, avèk Bits n, ou gen 2 valè posib pou chak ti jan. Se konsa, nou gen 2 valè posib pou ti jan nan premye, 2 valè posib pou dezyèm lan, 2 posib pou twazyèm lan. Se konsa, sa a, se 2 fwa 2 fwa 2, ak finalman repons lan se 2 a n a. Kesyon twa. Ki sa ki nan 0x50 nan binè? Se konsa, sonje ke ekzadesimal gen yon trè senp konvèsyon nan binè. Se konsa, isit la, nou jis bezwen fè yon gade nan 5 an ak 0 a poukont li. Se konsa, sa ki nan 5 nan binè? 0101, ki nan ti jan a 1 ak 4 ti jan an. Ki sa ki nan 0 nan binè? Pa ekzamp. 0000. Se konsa, jis mete yo ansanm, ak sa a, se nimewo a plen nan binè. 01010000. Men, si ou te vle ou te kapab pou yo wete tout ki leftmost zewo. Li nan petinan. Se konsa, Lè sa a, altènativman, ki sa ki 0x50 nan desimal? Si ou te vle, ou could-- si w ap pi alèz ak binè a, ou ta ka pran ki repons binè ak konvèti ki nan desimal. Oswa nou te ka jis sonje ki ekzadesimal. Se konsa, ki 0 se nan plas la 0-th, ak 5 a se nan 16 la nan plas la an premye. Se konsa, isit la, nou gen 5 fwa 16 a nan premye, plis 0 fwa 16 a zewo a, se 80. Men, si ou gade nan tit nan kesyon an, li te CS 80, ki te kalite yon allusion repons lan nan pwoblèm sa a. Kesyon senk. Nou gen sa a script grafouyen, ki se repete 4 fwa manba jele. Se konsa, kouman fè nou koulye a kòd ki nan C? Oke, nou gen isit lan-- pati nan an karaktè fonse se yon pati nan sèlman ou te gen a aplike. Se konsa, nou gen yon riban 4 ki nan loupin 4 fwa, printf-ing manba manba ak konfiti, ak nouvo liy kòm pwoblèm nan mande pou. Kesyon sis, yon lòt pwoblèm grafonyen moun. Nou wè ke nou se nan yon bouk pou tout tan. Nou ap di m nan varyab ak Lè sa a incrementing mwen pa 1. Koulye a, nou vle fè sa nan C. Gen plizyè fason nou te ka te fè sa a. Isit la nou te pase nan kòd la pou tout tan bouk kòm yon pandan y ap (vrè). Se konsa, nou deklare varyab la mwen, jis tankou nou te gen varyab mwen nan grafonyen moun. Esplike mwen an varyab, ak pou tout tan pandan y ap (vrè), nou di varyab la mwen. Se konsa, printf% i-- oswa ou ta ka te itilize% d. Nou di ke varyab, ak Lè sa a, kantite li, mwen ++. Kesyon sèt. Koulye a, nou vle fè yon bagay trè menm jan Mario dot c soti nan pwoblèm mete yon sèl. Nou vle enprime hashtags sa yo, nou vle enprime yon senk pa twa rektang nan achaj sa yo. Se konsa, kouman nou pral fè sa? Oke, nou ba ou yon antye pakèt moun sou kòd, epi ou jis oblije ranpli nan fonksyon an ekri an lèt detache kadriyaj. Se konsa, sa PrintGrid sanble? Oke ou se sot pase a lajè ak wotè an. Se konsa, nou gen yon deyò 4 riban, ki nan loupin sou tout nan ranje yo nan sa a kadriyaj ke nou vle enprime soti. Lè sa a, nou gen entè-enbrike 4 riban an, sa a, se enprime sou chak kolòn. Se konsa, pou chak ranje, nou enprime pou chak kolòn, yon regle sèl. Lè sa a, nan fen ranje a nou enprime yon sèl liy nouvo pou yo ale nan pwochen ranje a. Epi sa a, li pou griy la tout antye. Kesyon uit. Yon fonksyon tankou PrintGrid di gen yon efè segondè, men se pa yon retou valè. Eksplike diferans la. Se konsa, sa depann sou ou sonje ki sa yon efè segondè se. Oke, yon retou value-- nou konnen PrintGrid pa fè sa gen valè retounen, depi dwa isit la li di anile. Se konsa, nenpòt ki bagay ki retounen anile pa reyèlman retounen anyen. Se konsa, sa se efè a bò? Oke, yon efè segondè se nenpòt ki bagay ki sòt de ap pèsiste apre pwent yo fonksyon sa ki te pa jis tounen, epi li pa te jis soti nan entrain yo. Se konsa, pou egzanp, nou ta ka chanje yon varyab mondyal. Ki ta ka yon efè segondè. Nan ka sa a an patikilye, yon efè segondè trè enpòtan se enprime nan ekran an. Se konsa, ki se yon efè segondè ki PrintGrid te genyen an. Nou enprime bagay sa yo nan ekran an. Epi ou ka panse a ke kòm yon efè segondè, depi lè sa a yon bagay ki ap pèsiste apre fonksyon sa a fini. Sa se yon bagay deyò sijè ki abòde nan fonksyon sa a ki finalman se ke yo te chanje, la sa nan ekran an. Kesyon nèf. Konsidere pwogram nan anba a, ki nimewo liy yo te ajoute pou dedomajman pou la nan diskisyon. Se konsa, nan pwogram sa a nou yo se jis rele GetString, estoke l ' nan sa a nan varyab, ak Lè sa a, enprime ki nan varyab. OK. Se konsa, eksplike poukisa liy yon sèl se prezan. # enkli cs50 dot h. Poukisa nou bezwen # enkli cs50 dot h? Oke nou ap rele nan GetString fonksyon, ak GetString se defini nan bibliyotèk la CS50. Se konsa, si nou pa t gen # enkli cs50 dot h, nou ta jwenn ke deklarasyon enplisit nan erè a fonksyon GetString soti nan du a. Se konsa, nou bezwen gen ladan bibliyotèk la nou bezwen gen ladan dosye a header, oswa lòt moun du a pa pral rekonèt ke GetString egziste. Eksplike pou kisa liy de se prezan. Se konsa, estanda io dot h. Li nan ekzakteman menm bagay la kòm pwoblèm nan anvan, eksepte olye pou yo fè fas ak GetString, nou ap pale de printf. Se konsa, si nou pa t 'di nou bezwen genyen ladan yo estanda h io dot, lè sa a nou pa ta kapab yo sèvi ak fonksyon an printf, paske du a pa ta konnen sou li. Why-- ki sa ki siyifikasyon an a anile nan liy kat? Se konsa, isit la nou gen int prensipal (san valè). Se jis di ke nou yo pa resevwa nenpòt ki lòd liy agiman prensipal la. Sonje ke nou te ka di Int prensipal Int arg fisèl argv parantèz. Se konsa, isit la nou jis di anile yo di nou yo inyore lòd liy agiman. Eksplike, ki gen rapò ak memwa, egzakteman sa GetString nan liy sis retounen. GetString ki retounen yon blòk nan memwa, yon etalaj de karaktè. Li nan reyèlman retounen yon konsèy nan pèsonaj la an premye. Sonje ke yon kòd se yon etwal Char. Se konsa, la se yon konsèy nan premye a karaktè nan tou sa fisèl la se ki itilizatè a antre nan klavye la. Epi sa k ap pase yo dwe memwa malloced, se konsa ke memwa se nan pil wòch la. Kesyon 13. Konsidere pwogram ki anba a. Se konsa, tout pwogram sa a ap fè se printf-ing 1 divize pa 10. Se konsa, lè konpile ak egzekite, pwogram sa a sorti 0.0, menm si 1 divize pa 10 se 0.1. Se konsa, poukisa se li 0.0? Oke, sa a se paske nan divizyon nonb antye relatif. Se konsa, 1 se yon nonb antye relatif, 10 se yon nonb antye relatif. Se konsa, 1 divize pa 10, tout bagay se trete kòm nonm antye yo, ak nan C, lè nou fè divizyon nonb antye relatif, nou tronke nenpòt ki pwen desimal. Se konsa, 1 divize pa 10 se 0, ak Lè sa a nou ap eseye ekri ak lèt ​​detache ke kòm yon flote, se konsa zewo enprime kòm yon flote se 0.0. Ak Se poutèt sa nou jwenn 0.0. Konsidere pwogram ki anba a. Koulye a, nou ap enprime 0.1. Se konsa, pa gen okenn divizyon nonb antye relatif, nou ap jis enprime 0.1, men nou ap enprime li a 28 kote desimal. Apre sa, nou jwenn sa a 0,1000, yon pakèt antye nan zewo, 5 5 5, bla bla bla. Se konsa, kesyon an isit la se poukisa fè li ekri ak lèt ​​detache ki, olye pou yo egzakteman 0.1? Se konsa, rezon ki fè yo isit la se kounye a pwen k ap flote enpresizyon. Sonje ke yon flote se sèlman 32 miyèt moso. Se konsa, nou ka sèlman reprezante yon nimewo fini nan k ap flote valè pwen ak sa yo 32 miyèt moso. Oke gen nan finalman enfiniman anpil valè pwen k ap flote, ak gen nan enfiniman anpil k ap flote valè pwen nan ant 0 ak 1, epi nou ap evidamman kapab reprezante menm plis valè pase sa. Se konsa, nou gen fè bèt pou touye pou kapab reprezante pi valè. Se konsa, yon valè tankou 0.1, aparamman nou pa ka reprezante ki egzakteman. Se konsa, olye pou yo reprezante 0.1 nou fè a pi bon nou ka reprezante sa a 0.100000 5 5 5. Epi sa a, bèl fèmen, men pou yon anpil nan aplikasyon pou ou gen enkyete sou pwen k ap flote enpresizyon, paske nou jis pa ka reprezante tout pwen k ap flote egzakteman. Kesyon 15. Konsidere Kòd ki anba a. Nou jis ap enprime 1 plis 1. Se konsa, pa gen okenn Trick isit la. 1 plis 1 evalye a 2, ak Lè sa a, nou ap enprime sa. Sa a jis simagri 2. Kesyon 16. Koulye a, nou ap enprime pèsonaj la 1 plis pèsonaj la 1. Se konsa, poukisa sa a pa fè sa enprime menm bagay la? Oke pèsonaj la 1 plis pèsonaj la 1, pèsonaj la 1 gen ASCII valè 49. Se konsa, sa se reyèlman li di 49 plis 49, ak finalman sa a ki pral ekri ak lèt ​​detache 98. Se konsa, sa a pa enprime 2. Kesyon 17. Ranpli aplikasyon an a enpè anba a nan yon fason ki fonksyon an retounen vre si n se yon nonm enpè ak fo si n se menm. Sa se yon gwo rezon pou operatè a mod. Se konsa, nou pran agiman nou an n, si n mod 2 egal 1, byen sa vle di ke n divize pa 2 te gen yon rès. Si n divize pa 2 te gen yon rès, ki vle di ke n se yon nonm enpè, se konsa nou retounen vre. Lòt Bagay nou retounen fo. Ou menm tou te ka fè n Mod 2 egal zewo, retounen fo, lòt bagay retounen vre. Konsidere fonksyon an repetitif pi ba a. Se konsa, si n se mwens pase oswa egal a 1, retounen 1, lòt retounen n fwa f nan n mwens 1. Se konsa, sa se fonksyon sa a? Oke, sa a se jis nan faktoryèl fonksyon. Sa a se joliman reprezante kòm n faktoryèl. Se konsa, kesyon 19 kounye a, nou vle pran fonksyon sa a repetitif. Nou vle fè li repete. Se konsa, kouman nou fè sa? Oke pou anplwaye a solisyon, epi ankò gen nan plizyè fason ou ta ka te fè sa, nou kòmanse ak sa a pwodwi Int egal 1. Ak nan tout sa a pou riban, nou ap ale yo dwe miltipliye pwodwi finalman fini ak faktoryèl la plen. Se konsa, pou int mwen egal 2, mwen se mwens pase oswa egal a n, mwen ++. Ou ka mande poukisa mwen egal 2. Oke, sonje ke isit la nou gen asire w ka baz nou an, se kòrèk. Se konsa, si n se mwens pase oswa egal a 1, nou ap jis retounen 1. Se konsa, sou isit la, nou kòmanse nan mwen egal 2. Oke si mwen te 1, lè sa a the-- oswa si n te 1, lè sa a la pou riban pa ta egzekite nan tout. Se konsa, nou ta jis retounen pwodwi, ki se 1. Menm jan tou, si n te anyen mwens pase 1-- si li te 0, negatif 1, kèlkeswa sa nou ta dwe toujou retounen 1, ki se ekzakteman ki sa a repetitif vèsyon ap fè. Koulye a, si n pi gran pase 1, Lè sa a, nou ap ale fè omwen yon iterasyon sa a riban. Se konsa nou di n se 5, Lè sa a, nou ap pral fè fwa pwodwi egal 2. Se konsa, kounye a se pwodwi 2. Koulye a, nou ap ale nan fè fwa pwodwi egal 3. Kounye a li nan 6. Pwodwi fwa egal 4, kounye a li nan 24. Pwodwi fwa egal 5, kounye a li nan 120. Se konsa, Lè sa a, finalman, n ap retounen 120, ki se kòrèkteman 5 faktoryèl. Kesyon 20. Sa a se youn nan kote ou oblije ranpli nan tablo sa a ak nenpòt algorithm bay yo, nenpòt ki bagay ki nou te wè, ki adapte sa yo kouri algoritmik fwa fwa kouri asenptotik sa yo. Se konsa, sa a se yon algorithm ki se Omega nan 1, men gwo O n? Se konsa, gen ta ka enfiniman anpil repons isit la. Youn nan ki nou te wè pwobableman pi souvan se jis rechèch lineyè. Se konsa, nan ka ki pi bon senaryo, atik la nou ap kap chèche se nan la kòmanse nan lis la e konsa nan omega nan 1 etap, premye bagay nou tcheke, nou jis imedyatman retounen ke nou jwenn atik la. Nan senaryo a ka pi mal la, atik la se nan fen a, oswa atik la se pa nan lis la nan tout. Se konsa, nou gen nan rechèch lis la tout antye, tout n eleman, ak Se poutèt sa li a o nan n. Se konsa, kounye a li nan yon bagay ki nan tou de Omega nan boutèy demi lit n n, ak gwo O nan boutèy demi lit n n. Oke bagay ki pi enpòtan nou te wè isit la se rantre sòt. Se konsa, rantre sòt, sonje, se finalman Theta nan n boutèy demi lit n, kote Theta defini si toude Omega ak gwo O se menm bagay la. Tou de n boutèy demi lit n. Ki sa ki nan yon bagay ki Omega nan n, ak O nan n okib? Bon, ankò gen nan miltip repons posib. Isit la nou rive yo di sòt jarèt. Sòt ensèsyon ta tou travay isit la. Sonje ke sòt jarèt gen ki optimize kote, si ou se kapab jwenn nan lis la tout antye san yo pa bezwen yo fè nenpòt ki echanj, lè sa a, byen, nou ka imedyatman retounen ki te lis la Ranje yo kòmanse avèk yo. Se konsa, nan senaryo a ka pi bon, li nan jis Omega n. Si li nan pa sèlman yon joliman Ranje lis yo kòmanse avèk yo, Lè sa a, nou gen O nan n okib echanj. Epi finalman, nou gen sòt seleksyon pou n okib, tou de omega ak gwo O. Kesyon 21. Ki sa ki nan nonb antye relatif debòde? Oke ankò, menm jan ak pi bonè, nou sèlman gen fini anpil Bits ki reprezante yon nonb antye relatif, se konsa petèt 32 miyèt moso. Se pou nou di nou gen yon nonb antye relatif siyen. Lè sa a, pi wo a finalman chif pozitif nou ka reprezante se 2 a 31 an mwens 1. Se konsa, sa k ap pase si nou eseye Lè sa a, kantite ki nonb antye relatif? Oke, nou ap ale nan ale soti nan 2 a 31 an mwens 1, tout wout la desann nan negatif 2 a 31 an. Se konsa, sa debòde nonb antye relatif se lè ou kenbe incrementing, epi finalman ou pa kapab jwenn nenpòt ki pi wo epi li jis vlope tout wout la tounen otou nan yon valè negatif. Ki sa ki sou yon debòde tanpon? Se konsa, yon tanpon overflow-- sonje sa yon zòn de defans se. Se jis nan yon ti moso nan memwa. Yon bagay tankou yon etalaj se yon tanpon. Se konsa, yon debòde tanpon se lè ou eseye jwenn aksè nan memwa pi lwen pase nan fen ki etalaj. Se konsa, si ou gen yon etalaj de gwosè 5 epi ou eseye jwenn aksè nan etalaj bracket 5 oswa 6 oswa bracket bracket 7, oswa nenpòt bagay pi lwen pase a fen, oswa menm anyen below-- bracket etalaj negatif 1-- tout moun sa yo yo se devèrswar tanpon. W ap manyen memwa nan move fason. Kesyon 23. Se konsa, nan yon sèl sa a ou bezwen aplike strlèn. Apre sa, nou di ou ke ou kapab asime a pa pral nil, se konsa ou pa bezwen fè nenpòt ki chèk pou nil. E gen plizyè fason ou ta ka te fè sa a. Isit la nou jis pran dwat la. Nou kòmanse ak yon vann san preskripsyon, n. n se konte konbyen karaktè gen. Se konsa, nou kòmanse nan 0, epi lè sa a nou repekte sou lis la tout antye. Èske nan bracket 0 egal a an nil pèsonaj Terminator? Sonje nou ap chèche pou pèsonaj la nil Terminator detèmine konbyen tan fisèl nou an, se. Sa ki pral mete fen nan nenpòt ki fisèl ki enpòtan. Se konsa, se nan bracket 0 egal Terminator a nil? Si li pa, lè sa a nou ap ale nan gade nan nan bracket 1, s bracket 2. Nou kenbe pral jiskaske nou jwenn Terminator a nil. Yon fwa nou te jwenn li, Lè sa a, n gen longè total fisèl la, epi nou ka jis retounen sa. Kesyon 24. Se konsa, sa a se youn nan kote ou gen fè komès la nan. Se konsa, yon sèl bagay se yon bon bagay nan yon sèl fason, men nan sa ki fason se li move? Se konsa, isit la, rantre sòt gen tandans fè dwe pi vit pase sòt jarèt. Apre li fin di that-- byen, gen yo se repons miltip isit la. Men, yon sèl prensipal la se ke sòt jarèt se Omega nan n pou yon lis Ranje. Sonje ke tab nou jis te wè pi bonè. Se konsa, ti wonn asòti Omega a n, senaryo a ka pi bon se li nan kapab jis ale sou lis la yon fwa, detèmine hey bagay sa a se deja Ranje, epi retounen. Rantre sòt, pa gen pwoblèm sa ou fè sa, se omega nan boutèy demi lit n n. Se konsa, pou lis Ranje, ti wonn sòt nan pral fè pi vit. Koulye a, sa ki sou lye lis? Se konsa, yon lis lye ka grandi ak retresi nan anfòm kòm anpil eleman jan sa nesesè. Apre li fin di that-- konsa anjeneral konparezon an dirèk ki pral gen yon lye lis ak yon etalaj. Se konsa, menm si ranje kapab fasil grandi ak retresi nan anfòm kòm anpil eleman jan sa nesesè, yon lis lye konpare ak yon yon array-- etalaj gen aksè o aza. Nou kapab endèks nan nenpòt ki eleman an patikilye nan etalaj la. Se konsa, pou yon lis lye, nou pa kapab jis ale nan eleman nan senkyèm, nou gen yo Traverse depi nan konmansman an jiskaske nou jwenn nan eleman nan senkyèm. Epi sa k ap pase yo anpeche nou soti nan fè yon bagay tankou rechèch binè. Pale de rechèch binè, binè rechèch gen tandans ka pi vit pase rechèch lineyè. Apre li fin di that-- se konsa, yon sèl bagay posib se ke ou pa ka fè binè rechèch sou lye lis, ou ka sèlman fè l 'sou ranje. Men, pwobableman plis enpòtan, ou pa kapab fè rechèch binè sou yon etalaj ki pa Ranje. Inicio ou ta ka bezwen sòt etalaj la, epi sèlman Lè sa kapab ou fè rechèch binè. Se konsa, si ou se pa bagay Ranje yo kòmanse avèk yo, Lè sa a, rechèch lineyè ta kapab pi vit. Kesyon 27. Se konsa, konsidere pwogram lan anba a, ki pral nan pwochen glise la. Lè sa a se youn nan kote nou ap ale nan vle klèman endike valè yo pou plizyè varyab. Se konsa, kite pou yo gade nan sa. Se konsa, liy yon sèl. Nou gen int x egal 1. Sa a bagay la sèlman ki te pase a. Se konsa, nan liy yon sèl, nou wè nan nou an tab, ki y, a, b, ak tan, yo tout blacked deyò. Se konsa, sa a se x? Oke nou jis mete l 'egal a 1. Lè sa a, liy de, byen, nou wè ke se y mete a 2, ak tab la se deja plen nan pou nou. Se konsa, x se 1 ak y se 2. Koulye a, liy twa, nou ap kounye a andedan fonksyon an swap. Nou sa nou te pase nan swap? Nou te pase comercial x pou yon, ak comercial y pou b. Ki kote pwoblèm nan pi bonè deklare ke adrès ki nan x se 0x10, ak adrès ki nan y se 0x14. Se konsa, yon ak b se egal a 0x10 ak 0x14, respektivman. Koulye a, nan liy twa, ki sa yo x ak y? Oke, pa gen anyen ki chanje sou x ak y nan pwen sa. Menm si yo ap andedan yon ankadreman chemine prensipal yo, yo toujou gen menm bagay la tou valè yo te fè anvan. Nou pa t 'modifye nenpòt memwa. Se konsa, x se 1, y se 2. Tout dwa. Se konsa, kounye a nou te di Int tan egal a zetwal yon. Se konsa, nan liy kat, tout bagay se menm bagay la eksepte pou tan. Nou pa chanje nenpòt ki valè nan anyen eksepte pou tan. Nou ap mete tan egal a zetwal yon. Ki sa ki se yon zetwal yon? Oke, yon pwen nan x, Se konsa, zetwal yon ki pral egal x, ki se 1. Se konsa, tout bagay se kopye atè, li tan se mete 1. Koulye a, liy kap vini an. Star yon egal zetwal b. Se konsa, pa liy five-- byen ankò, tout bagay se menm bagay la eksepte tou sa etwal yon se. Ki sa ki se yon zetwal yon? Oke, nou jis di zetwal yon se x. Se konsa, nou ap chanje x nan zetwal egal b. Ki sa ki se yon zetwal b? y. b pwen y. Se konsa, zetwal b se y. Se konsa, nou ap mete x egal a y, ak tout lòt bagay se menm bagay la. Se konsa, nou wè nan pwochen ranje a ki x se kounye a 2, ak tout rès la yo se jis kopye desann. Koulye a, nan liy nan pwochen, zetwal b egal tan. Oke, nou jis di zetwal b se y, se konsa nou ap mete y egal a tan. Tout lòt bagay se menm bagay la, se konsa tout bagay vin kopye desann. Nou ap mete y egal a tan, ki se yon sèl, ak tout lòt bagay se menm bagay la. Koulye a, finalman, liy sèt. Nou ap tounen nan fonksyon prensipal la. Nou ap apre swap se fini. Nou te pèdi yon, b, ak tan, men finalman nou yo pa chanje nenpòt ki valè nan anyen nan pwen sa a, nou jis kopi x ak y desann. Apre sa, nou wè ke x ak y yo kounye a 2 ak 1 olye pou yo 1 ak 2. Te swap a avèk siksè egzekite. Kesyon 28. Sipoze ke ou rankontre mesaj yo erè anba a pandan lè biwo ane pwochèn kòm yon CA oswa TF. Konseye ki jan yo ranje chak nan erè sa yo. Se konsa, endefini referans nan GetString. Poukisa ou ta ka wè sa a? Bon, si yon elèv lè l sèvi avèk GetString nan kòd yo, yo te byen regle enkli cs50 dot h genyen ladan bibliyotèk la CS50. Oke, sa fè yo bezwen ranje erè sa a? Yo bezwen fè yon lcs50 priz nan la liy lòd yo lè yo ap konpile. Se konsa, si yo pa pase lcs50 priz rezone, yo ap pa ale nan gen aktyèl la Kòd ki aplike GetString. Kesyon 29. Chal deklare fonksyon bibliyotèk strlèn. Oke sa a kounye a, yo pa gen fè regle a apwopriye gen ladan yo. Nan ka sa a an patikilye, dosye a header yo bezwen gen ladan se fisèl dot h, epi ki gen ladan fisèl dot h, kounye a student-- a kounye a du a gen aksè a nan deklarasyon nan strlèn, epi li konnen ke kòd ou a ap itilize ap itilize strlèn kòrèkteman. Kesyon 30. Plis konvèsyon pousan pase done agiman. Se konsa, sa ki sa a? Oke sonje ke sa yo pousan signs-- ki jan yo ap ki gen rapò ak printf. Se konsa, nan printf nou ta ka percent-- nou ta ka enprime yon bagay tankou pousan mwen antislach n. Oswa nou ta ka ekri ak lèt ​​detache tankou pousan mwen, espas, mwen pousan, espas, pousan mwen. Se konsa, pou chak nan sa yo siy pousan, nou bezwen yo pase yon varyab nan fen printf. Se konsa, si nou di paren printf pousan mwen antislach paren n fèmen, byen, nou di ke nou ap pral enprime yon nonb antye relatif, men lè sa a nou pa pase printf yon nonb antye relatif ki aktyèlman enprime. Se konsa, isit plis pousan konvèsyon pase done agiman? Sa a ki di ke nou gen yon pakèt antye nan pousantaj, epi nou pa gen ase varyab yo aktyèlman ranpli nan sa yo pousantaj. Lè sa a, definitivman, pou kesyon 31, definitivman pèdi 40 bytes nan yon sèl blòk. Se konsa, sa a se yon erè Valgrind. Sa a se ki di ke yon kote nan kòd ou a, ou gen yon alokasyon ki se 40 bytes gwo se konsa ou malloced 40 bytes, epi ou pa janm te libere li. Pifò gen anpil chans ou jis bezwen jwenn kèk fwit memwa, epi jwenn ki kote ou bezwen libere sa a blòk nan memwa. Epi kesyon 32, valab ekri nan gwosè 4. Yon fwa ankò sa a se yon erè Valgrind. Sa a pa bezwen fè ak fwit memwa kounye a. Sa a se, pi likely-- Mwen vle di, li nan kèk sòt de dwa memwa valab. Ak gen plis chans sa a se kèk sòt nan zòn de defans debòde. Ki kote ou gen yon etalaj, petèt yon etalaj nonb antye relatif, e kite yo di li nan nan gwosè 5, epi ou eseye manyen etalaj bracket 5. Se konsa, si ou eseye yo pou yo ekri ki valè, sa a pa yon moso nan memwa ke ou gen aktyèlman aksè a, ak se konsa w ap ale nan jwenn erè sa a, li di valab ekri nan gwosè 4. Valgrind ki pral rekonèt ou se ap eseye manyen memwa mal. Epi sa a, li pou quiz0. Mwen se Rob Bowden, e sa se CS50.