ROB Bowden: Hi, jien Rob Bowden, u ejja nitkellmu dwar quiz0. Allura, ewwel domanda. Din hija l-kwistjoni fejn inti meħtieġ għall-kodiċi l-għadd 127 fil-basal binarja. Jekk int riedu, inti tista jagħmlu l-konverżjoni regolari minn bi-- jew, minn deċimali għall-binarju. Iżda li probabbilment se li tieħu ħafna ħin. I mean, inti tista 'figura li, OK, 1 huwa fil hemm, 2 hija fil hemm, 4 hija fil hemm, 8 ikun fil hemmhekk. Mod aktar faċli, 127 huwa 128 nieqes wieħed. Li bozza tad-dawl leftmost huwa l-128-bit. Allura 127 huwa verament biss kollha ta 'l-bozoz tad-dawl oħra, peress li hija l-leftmost bozza tad-dawl minus 1. C'est għal din id-domanda. Mistoqsija waħda. Allura bi 3 bits inti tista jirrappreżentaw 8 valuri distinti. Għaliex, allura, hija ta '7-akbar mhux negattiv li integer deċimali inti tista 'tirrappreżenta? Ukoll, jekk nistgħu biss jirrappreżentaw 8 valuri distinti, allura dak li aħna qed tmur biex tkun li jirrappreżenta huwa 0 sa 7. 0 jieħu wieħed mill-valuri. Mistoqsija tnejn. Bil n bits, kemm distinta Valuri tista tirrappreżenta? Allura, ma 'n bits, inti għandek 2 Valuri possibbli għal kull daqsxejn. Allura aħna għandna 2 Valuri possibbli għal l-ewwel ftit, 2-valuri possibbli għat-tieni, it-2 possibbli għat-tielet. U sabiex għamilhom 2 darbiet 2 darbiet 2, u finalment it-tweġiba hija 2 għall-n. Mistoqsija tlieta. X'hemm 0x50 fil binarja? Mela ftakar li hexadecimal għandha ħafna konverżjoni sempliċi biex binarja. Allura hawnhekk, aħna biss bżonn tħares lejn il-5 u t-0 indipendentement. Allura x'hemm 5 binarja? 0101, dak l-1 bit u l-4 daqsxejn. X'hemm 0 binarja? Mhux delikata. 0000. Hekk biss jpoġġuhom flimkien, u dak l-għadd sħiħ binarju. 01010000. U jekk int riedu inti tista jieħdu off li leftmost żero. Huwa irrilevanti. Mela allura alternattivament, dak li huwa 0x50 fl deċimali? Jekk int riedu, inti could-- jekk int aktar komda mal-binarju, inti tista 'tieħu din ir-risposta binarju u jikkonvertu dan in deċimali. Jew nistgħu biss ftakar li hexadeċimali. Allura li huwa 0 fil-post 0-th, u 5 huwa fil-16 sa l-ewwel post. Allura hawnhekk, aħna għandna 5 darbiet 16 għall- ewwel, plus 0 ħinijiet 16 għall-żero, huwa 80. U jekk inti ħares lejn l- titolu għall-mistoqsija, kien CS 80, li kien it-tip ta ' ħjiel li t-tweġiba għal din il-problema. Mistoqsija ħamsa. Għandna din l-iskrittura Scratch, li hija tirrepeti 4 darbiet butir tal-karawett jelly. Allura kif do we issa kodiċi li fis-C? Well, aħna għandna here-- l-parti b'tipa grassa hija l-unika parti li inti kellhom jimplimentaw. Allura aħna għandna 4 linja thats looping 4 ħinijiet,-printf Ing karawett jelly butir, mal-linja ġdida bħala l-problema titlob għal. Sitt mistoqsija, problema oħra Scratch. Naraw li ninsabu fi dejjem loop. Aħna qed tgħid il-varjabbli i u mbagħad inkrementazzjoni i mill-1. Issa rridu li tagħmel dan fil-C. Hemm modi multipli nistgħu jkunu għamlu dan. Hawnhekk aħna ġara għall-kodiċi tal- dejjem loop bħala filwaqt (veru). Allura aħna tiddikjara l-varjabbli i, biss bħal kellna varjabbli i fil Scratch. Jiddikjara l-varjabbli i, u dejjem filwaqt li (veru), nistgħu ngħidu l-varjabbli i. Allura printf% i-- jew inti tista ħadthom użati% d. Aħna ngħidu dak il-varjabbli, u imbagħad inkrement huwa, i ++. Mistoqsija sebgħa. Issa rridu nagħmlu xi ħaġa simili ħafna lil Mario dot c minn problema sett wieħed. Aħna rridu li tistampa dawn hashtags, irridu li jistampaw ta 'ħames billi tlieta rettangolu ta 'dawn hashes. Allura kif huma aħna se tagħmel dan? Well, aħna nagħtuk kollu mazz ta 'kodiċi, u inti biss għandek timla l-funzjoni grid istampar. Allura dak li ma PrintGrid look like? Well int passat l- wisa 'u l-għoli. Allura għandna barra 4 loop, thats looping fuq kollha ta 'l-ringieli ta' dan grid li aħna rridu li jistampaw. Imbagħad għandna l-inter-nested 4 loop, li l-istampar fuq kull kolonna. Allura għal kull ringiela, aħna jistampaw għal kull kolonna, hash wieħed. Imbagħad fl-aħħar tal-filliera aħna jistampaw linja ġdida waħda biex tmur fil-filliera li jmiss. U li lilha għall-grid kollu. Mistoqsija tmienja. Funzjoni bħal PrintGrid huwa qal li ikollhom effett sekondarju, iżda mhux ritorn valur. Jispjegaw id-distinzjoni. Allura dan jiddependi fuq inti ftakar liema effett sekondarju hu. Ukoll, ritorn value-- nafu PrintGrid ma għandhom valur tar-ritorn, peress dritt hawn jgħid null. Allura xi ħaġa li jirritorna null ma verament ritorn xejn. Allura x'inhi l-effett sekondarju? Ukoll, effett sekondarju huwa xejn li tip ta 'tippersisti wara l-truf tal-funzjoni li ma kienx biss lura, u ma kienx biss mill-inputs. Allura, per eżempju, nistgħu bidla varjabbli globali. Dan ikun effett sekondarju. F'dan il-każ partikolari, effett sekondarju importanti ħafna huwa istampar għall-iskrin. Allura li hu effett sekondarju li PrintGrid għandha. Aħna istampar dawn l-affarijiet għall-iskrin. U inti tista 'taħseb li bħala effett sekondarju, peress li xi ħaġa li tippersisti wara din il-funzjoni truf. Dik xi ħaġa barra mill-ambitu ta 'din il-funzjoni li finalment qed tinbidel, il- kontenut tal-iskrin. Mistoqsija disa. Ikkunsidra l-programm ta 'hawn taħt, li linja numri ġew miżjuda għall l-fini ta 'diskussjoni. Allura f'dan il-programm aħna biss ssejjaħ GetString, maħżuna f'dan varjabbli i, u mbagħad istampar dak il-varjabbli s. OK. Allura jispjegaw għaliex linja wieħed ikun preżenti. #include CS50 dot h. Għaliex għandna bżonn li #include CS50 dot h? Well aħna qed ssejjaħ l- GetString funzjoni, u GetString huwa definit fil-librerija CS50. Hekk jekk aħna ma kellhiex #include CS50 dot h, aħna se tikseb dik id-dikjarazzjoni impliċitu tal-iżball funzjoni GetString mill-kompilatur. Għalhekk għandna bżonn li jinkludi l-library-- għandna bżonn li jinkludi l-fajl tal-header, jew inkella l-kompilatur mhux se jirrikonoxxu li GetString jeżisti. Jispjegaw għaliex linja tnejn huwa preżenti. Allura standard IO dot h. Huwa eżattament l-istess bħala l-problema ta 'qabel, ħlief minflok jittrattaw GetString, aħna qed jitkellem dwar printf. Allura jekk aħna ma jgħidu li għandna bżonn li jinkludi l-istandard IO dot h, allura aħna mhux se tkun kapaċi li tuża l-funzjoni printf, minħabba li l-kompilatur ma jkunux jafu dwar dan. Why-- x'inhi l-importanza ta null fil-linja erbgħa? Allura hawnhekk għandna int prinċipali (vojt). Li jinsab biss qal li aħna ma jkollna ebda linja tal-kmand argumenti prinċipali. Ftakar li nistgħu ngħidu int parentesi ewlenin INT argc ARGV string. Allura hawnhekk għandna biss jgħidu nulli biex ngħidu aħna qed ninjoraw argumenti linja tal-kmand. Jispjegaw, fir-rigward tal-memorja, eżattament dak GetString konformi sitt prospetti. GetString huwa jirritorna blokk ta ' memorja, firxa ta 'karattri. Huwa tassew ma jirritornaw pointer li l-ewwel karattru. Ftakar li string hija stilla char. Allura s huwa pointer għall-ewwel karattru x'ikun l-sekwenza huwa li l-utent daħal fil-keyboard. U li l-memorja jiġri li jkun malloced, hekk li l-memorja huwa fil-borġ. Mistoqsija 13. Ikkunsidra l-programm hawn taħt. Allura dan kollu programm qed tagħmel huwa printf-Ing 1 maqsum f'10. Allura meta miġbura u esegwiti, dan il-programm outputs 0.0, anki jekk 1 maqsum f'10 hija 0.1. Allura għaliex hi 0.0? Ukoll, dan huwa minħabba ta 'diviżjoni numru sħiħ. Allura 1 huwa integer, 10 huwa integer. Allura 1 maqsum f'10, kollox hija trattata bħala interi, u fis-C, meta nagħmlu diviżjoni numru sħiħ, aħna truncate kwalunkwe punt deċimali. Allura 1 maqsum f'10 hija 0, u allura aħna qed jippruvaw li jistampaw li bħala float, hekk żero stampati bħala float huwa 0.0. U hu għalhekk li aħna nikseb 0.0. Ikkunsidra l-programm hawn taħt. Issa aħna qed istampar 0.1. Allura l-ebda diviżjoni numru sħiħ, aħna qed biss istampar 0.1, imma aħna qed istampar dan 28 postijiet deċimali. U nikbru dan 0.1000, mazz sħiħ ta 'żerijiet, 5 5 5, blah blah blah. Għalhekk il-kwistjoni hawnhekk hija għaliex ma jistampaw li, minflok eżattament 0.1? Allura r-raġuni hawn issa huwa f'wiċċ l-ilma punt impreċiżjoni. Ftakar li float huwa biss 32 bits. Allura nistgħu jirrappreżentaw biss numru finit tal galleġġjanti valuri tal-punti ma 'dawk 32 bits. Ukoll hemm finalment infinitament ħafna valuri f'wiċċ l-ilma point, u hemm infinitament ħafna f'wiċċ l-ilma valuri tal-punti fl bejn 0 u 1, u aħna qed ovvjament kapaċi jirrappreżentaw valuri saħansitra aktar minn dak. Allura aħna għandna biex jagħmlu sagrifiċċji biex tkun tista 'tirrappreżenta aktar valuri. Allura valur bħal 0.1, apparentement ma nistgħux jirrappreżenta dak eżattament. Allura minflok li jirrappreżenta 0.1 nagħmlu l- aħjar li nistgħu jirrappreżenta dan 0.100000 5 5 5. U li pretty qrib, iżda għal ħafna applikazzjonijiet għandek għalfejn tinkwieta dwar f'wiċċ l-ilma punt impreċiżjoni, għaliex aħna biss ma tistax tirrappreżenta punti kollha f'wiċċ l-ilma eżattament. Mistoqsija 15. Ikkunsidra l-kodiċi hawn taħt. Aħna biss istampar 1 flimkien ma '1. B'hekk m'hemm l-ebda trick hawnhekk. 1 flimkien ma '1 tevalwa sa 2, u allura aħna qed istampar dik. Dan biss stampi 2. Mistoqsija 16. Issa aħna qed istampar tal-karattru 1 flimkien mal-karattru 1. Allura għaliex ma dan ma jistampaw l-istess ħaġa? Ukoll l-karattru 1 flimkien mal-karattru 1, il-karattru 1 għandu valur ASCII 49. Allura dan huwa verament qal 49 plus 49, u finalment dan se jistampaw 98. Allura dan ma print 2. Mistoqsija 17. Tlesti l-implimentazzjoni tal fard hawn taħt b'tali mod li l-funzjoni jirritorna veru jekk n hija fard u falza jekk n hija saħansitra. Dan huwa skop kbir għall-operatur mod. Allura aħna jieħdu argument n tagħna, jekk n mod 2 huwa ugwali 1, ukoll dan ifisser li jinqasmu n minn 2 kellhom bqija. Jekk n diviż bil 2 kellha kumplament, li ifisser li n hija fard, hekk aħna ritorn veru. Else nerġgħu lura falza. Inti wkoll seta 'jsir n MOD 2 partijiet ugwali żero, ritorn foloz, inkella ritorn veru. Ikkunsidra l-funzjoni jirrikorri hawn taħt. Hekk jekk n hija inqas minn jew ugwali għal 1, jirritornaw 1, ritorn inkella n żminijiet f 'n minus 1. Allura x'inhi din il-funzjoni? Ukoll, dan huwa biss il- funzjoni fattorjali. Dan huwa rappreżentat nicely kif fattorjali n. Allura mistoqsija 19 issa, irridu jieħdu din il-funzjoni jirrikorri. Aħna rridu li jagħmilha iterattiv. Allura kif nistgħu nagħmlu dan? Ukoll għall-persunal soluzzjoni, u għal darb'oħra hemm modi multipli li seta 'jsir li, nibdew ma 'dan il-prodott int ugwali 1. U matul dan għal loop, aħna qed tmur li għandha multiplikazzjoni prodott li finalment jispiċċaw ma 'l-fattorjali sħiħa. Allura għal int i ugwali 2, i huwa inqas minn jew ugwali għal n, i ++. Inti jista 'jistaqsi għaliex I ugwali 2. Ukoll, ftakar li hawnhekk għandna biex kun żgur każ bażi tagħna hija korretta. Hekk jekk n hija inqas minn jew ugwali għal 1, aħna qed biss jirritorna 1. Allura hawn, aħna jibdew fil i ugwali 2. Ukoll jekk i kienu 1, imbagħad the-- jew jekk n kienu 1, allura l-għar loop ma tesegwixxi fil-livelli kollha. U hekk aħna kieku biss prodott ritorn, li hija l-1. Bl-istess mod, jekk n kienu xejn inqas minn 1-- kieku kien 0, negattivi 1, whatever-- aħna'd xorta jirritorna 1, li huwa eżattament dak li l- Verżjoni rikursivi qed tagħmel. Issa, jekk n hija akbar minn 1, allura aħna qed tmur biex tagħmel mill-inqas wieħed iterazzjoni ta 'dan loop. Mela ejja ngħidu n hija ta '5, allura aħna qed se jagħmlu żminijiet prodott ugwali 2. Allura issa prodott huwa 2. Issa aħna qed tmur biex tagħmel ħinijiet tal-prodott ugwali 3. Issa huwa 6. Ħinijiet Prodott ugwali 4, issa huwa 24. Ħinijiet Prodott ugwali 5, issa huwa 120. Hekk allura finalment, aħna qed jirritornaw 120, li huwa b'mod korrett 5 fattoriku. Mistoqsija 20. Dan huwa l-waħda fejn inti għandek timla f'din it-tabella ma 'kull algoritmu partikolari, xi ħaġa li aħna stajt tidher, li aċċessjonijiet dawn run algorithmic drabi dawn darbiet run asintotiku. Allura x'inhu algoritmu li huwa omega ta '1, iżda O kbira ta' n? Allura jista 'jkun hemm infinitament ħafna tweġibiet hawnhekk. Il-wieħed li aħna stajt tidher probabbilment l-aktar spiss huwa biss tfittxija lineari. Hekk fil-każ aħjar xenarju, il-punt aħna qed tfittex huwa fil- bidu tal-lista u għalhekk omega ta '1 passi, l-ewwel ħaġa li għandna jiċċekkjaw, aħna biss jirritorna minnufih li sibna l-oġġett. Fl-agħar każ, l-oġġett huwa fl-aħħar, jew l-oġġett ma tkunx fil-lista fil-livelli kollha. Hekk irridu tfittxija l-lista sħiħa, kollha n elementi, u li C'est pourquoi huwa o ta n. Allura issa huwa xi ħaġa li dawn, kemm omega ta 'log n n, u O kbir ta' log n n. Ukoll l-aktar ħaġa rilevanti Rajna hawnhekk huwa jingħaqdu sort. Allura jingħaqdu sort, ftakar, huwa finalment Theta ta 'n log n, fejn theta hija definita jekk kemm omega u O kbar huma l-istess. Kemm n log n. X'hemm xi ħaġa li omega ta 'n, u O ta' n kwadrat? Ukoll, għal darb'oħra hemm tweġibiet possibbli multipli. Hawnhekk aħna jiġri li ngħidu sort bużżieqa. Sort inserzjoni wkoll jaħdem hawn. Ftakar dik it-tip bużżieqa għandha li search fejn, jekk inti huma kapaċi jiksbu permezz tal-lista sħiħa mingħajr il-bżonn li tagħmel xi swaps, allura, ukoll, nistgħu immedjatament jirritorna dik il-lista ġiet magħżula biex tibda bil. Hekk fil-xenarju aħjar, huwa biss omega ta n. Jekk mhuwiex biss nicely magħżula lista li tibda bil, allura għandna O ta 'n kwadrat swaps. U finalment, aħna għandna sort għażla għal n kwadrat, kemm omega u O. big Mistoqsija 21. X'hemm overflow integer? Ukoll għal darb'oħra, simili għal qabel, aħna biss finitely ħafna bits biex jirrappreżentaw integer, hekk forsi 32 bits. Ejja ngħidu aħna għandna numru sħiħ ffirmata. Imbagħad finalment l-ogħla numru pożittiv nistgħu jirrappreżentaw hija ta '2 għall-31 minus 1. Allura x'jiġri jekk nippruvaw imbagħad inkrement li integer? Well, aħna qed tmur biex tmur minn 2 sa l-31 ta ' minus 1, it-triq kollha sa negattiv 2 għall-31. Allura dan overflow numru sħiħ hija meta inti żżomm inkrementazzjoni, u finalment inti ma tistax jiksbu kwalunkwe ogħla u hija biss garżi it-triq kollha lura madwar għal valur negattiv. What about a overflow buffer? Allura buffer overflow-- tiftakar dak buffer huwa. Huwa biss blokki ta 'memorja. Xi ħaġa simili firxa hija buffer. Allura overflow buffer huwa meta inti tipprova l-aċċess memorja wara t-tmiem ta 'dak array. Mela jekk għandek firxa ta 'daqs 5 u int tipprova l-aċċess bracket firxa 5 jew kategorija 6 jew kategorija 7, jew xi ħaġa lil hinn mill- aħħar, jew saħansitra xejn bracket firxa below-- negattiv 1-- kollha ta 'dawk huma tifwir buffer. Inti jmissu memorja b'modi ħżiena. Mistoqsija 23. Allura f'dan il-wieħed li għandek bżonn biex jimplimentaw strlen. U aħna jgħidlek li inti tista ' jassumu s mhux se jkun null, sabiex inti ma għandekx tagħmel xi kontroll għall null. U hemm modi multipli li seta 'jsir dan. Hawnhekk aħna biss jieħdu l-sempliċi. Aħna tibda bil-counter, n. n hija għadd kemm karattri hemm. Allura nibdew f'0, u allura aħna jtenni fuq il-lista sħiħa. Huwa s bracket 0 ugwali għall- karattru terminatur null? Ftakar aħna qed infittxu il-karattru terminatur null biex jiddetermina kemm string tagħna huwa. Li ser jittermina kwalunkwe string rilevanti. Allura huwa s bracket 0 ugwali għall-terminatur null? Jekk mhuwiex, allura aħna qed tmur biex tħares lejn bracket i 1, parentesi s 2. Aħna jibqgħu għaddejjin sakemm aħna isibu l-terminatur null. Ladarba aħna ħadthom sabuha, allura n fih it-tul totali tas-sekwenza, u nistgħu biss ritorn dak. Mistoqsija 24. Allura dan huwa l-waħda fejn inti għandek tagħmel l-kummerċ off. Allura ħaġa waħda hija tajba fil waħda mod, iżda b'liema mod huwa ħażin? Allura hawnhekk, jingħaqdu sort tendenza li jkun aktar mgħaġġel milli sort bużżieqa. Wara li qal that-- tajjeb, hemm huma tweġibiet multipli hawn. Iżda l-wieħed prinċipali huwa li sort bużżieqa huwa omega ta n għal lista magħżul. Ftakar dik it-tabella aħna biss raw qabel. Allura bużżieqa xorta omega ta n, ix-xenarju aħjar każ huwa huwa kapaċi li jmorru biss fuq il-lista ladarba, jiddeterminaw ħej din hija ħaġa diġà magħżula, u r-ritorn. Jingħaqdu sort, irrelevanti x'inhu inti tagħmel, hija omega ta 'log n n. Allura għal-lista magħżula, bubble sort għaddej biex tkun aktar mgħaġġla. Issa dak dwar marbut listi? Allura lista marbuta jistgħu jikbru u tiċkien li tajbin kif ħafna elementi kif meħtieġ. Wara li qal that-- hekk normalment il-paragun dirett se jkun marbut lista ma 'firxa. Allura anke jekk arrays tista faċilment jikbru u tiċkien li tajbin kif ħafna elementi kif meħtieġ, lista marbuta meta mqabbel ma 'l array-- firxa għandha aċċess bl-addoċċ. Nistgħu indiċi fi kwalunkwe element partikolari ta 'l-array. Allura għal-lista marbuta, ma nistgħux biss jmorru għall-ħames element, għandna biex travers mill-bidu sakemm aħna jiksbu l-ħames element. U li għaddej biex jipprevjenu lilna minn tagħmel xi ħaġa simili tfittxija binarja. Taħdit ta 'tfittxija binarja, tfittxija binarja tendenza li tkun aktar mgħaġġla minn tfittxija lineari. Wara li qal that-- hekk, ħaġa waħda possibbli hija li inti ma tistax tagħmel binarja tfittxija fuq listi marbuta, inti tista 'biss tagħmel dan fuq arrays. Iżda probabbilment aktar importanti, inti ma tistax tagħmel tfittxija binarja fuq firxa li mhix riżolta. Bil-quddiem jista 'jkollok bżonn biex issolvi l-array, u biss jistgħu imbagħad inti tagħmel tfittxija binarja. Hekk jekk ħaġa tiegħek mhix ssortjat li tibda bil, allura tfittxija lineari jista 'jkun malajr. Mistoqsija 27. Sabiex jikkunsidraw il-programm hawn taħt, li se tkun fil-slide li jmiss. U dan huwa dak fejn aħna qed tmur jridu jiddikjaraw b'mod espliċitu il-valuri għall-varjabbli differenti. Mela ejja nħarsu lejn dak. Allura linja waħda. Għandna int x ugwali 1. Dik hija l-unika ħaġa li ġara. Allura fil-linja waħda, naraw fil tagħna tabella, li y, a, b, u TMP huma kollha blokkjat. Allura x'inhi x? Well we biss sett huwa ugwali għal 1. U mbagħad linja tnejn, ukoll, naraw li y huwa stabbilit għal 2, u t-tabella hija diġà mimlija għalina. Allura x hija l-1 u Y huwa ta '2. Issa, linja tlieta, aħna qed issa ġewwa l-funzjoni tpartit. What did aħna jgħaddu biex tpartit? Aħna għadda ampersand x għall a, u ampersand y għal b. Fejn il-problema qabel iddikjara li l-indirizz ta 'x huwa 0x10, u l-indirizz ta 'y huwa 0x14. Allura aub huma ugwali għal 0x10 u 0x14, rispettivament. Issa fil-linja tlieta, liema huma x u y? Well, xejn ma nbidel dwar xuy f'dan il-punt. Anki jekk dawn qed ġewwa qafas munzell prinċipali, dawn ikunu għadhom l-istess Valuri huma għamlu qabel. Aħna jkunx immodifika memorja. Allura x huwa 1, y hija ta '2. Kull dritt. Allura issa aħna qal TMP int ugwali għal istilla a. Allura fil-linja erbgħa, kollox huwa l-istess ħlief għall TMP. Aħna ma nbidlux xi valuri ta 'xejn ħlief għall TMP. Aħna twaqqif TMP ugwali għal istilla a. X'inhu star a? Well, punti għal x, So istilla a se x ugwali, li hija l-1. Allura kollox huwa kkupjata isfel, u TMP huwa stabbilit għal 1. Issa l-linja li jmiss. Star a ugwali stilla b. Allura billi linja five-- sew għal darb'oħra, kollox huwa l-istess ħlief kwalunkwe star a huwa. X'inhu star a? Well, aħna biss qal star a huwa x. Allura aħna qed jinbidlu x bħala ugwali għal star b. X'inhu star b? y. punti B sa y. Allura star b huwa y. Allura aħna qed jistabbilixxu x ugwali għal y, u kull ħaġa oħra huwa l-istess. Allura naraw fil-filliera li jmiss li x issa huwa 2, u l-bqija huma biss kkupjati isfel. Issa fil-linja li jmiss, star b ugwali TMP. Well, aħna biss qal star b huwa y, hekk aħna qed iffissar ugwali y għal TMP. Kollox huwa l-istess, hekk kollox gets kkupjati isfel. Aħna qed iffissar y ugwali għal TMP, li hija waħda, u kull ħaġa oħra huwa l-istess. Issa finalment, linja seba. Aħna qed lura fil-funzjoni ewlenija. Aħna wara tpartit huwa lest. Tlifna, b, u PAT, iżda fl-aħħar aħna mhumiex jinbidlu xi valuri ta 'xejn f'dan il-punt, aħna biss kopja x u r y. U naraw li xuy huma issa 2 u 1 minflok ta '1 u 2. It-tpartit tkun wettqet b'suċċess. Mistoqsija 28. Ejja ngħidu li inti tiltaqa l-messaġġi ta 'żball hawn taħt matul ħinijiet tal-uffiċċju sena d-dieħla bħala CA jew TF. Parir kif jiffissaw kull wieħed minn dawn l-iżbalji. Referenza hekk undefined għall GetString. Għaliex jista inti tara dan? Ukoll, jekk student qed tuża GetString fil-kodiċi tagħhom, huma jkunu kif suppost hash inklużi CS50 dot h biex tinkludi l-librerija CS50. Ukoll, liema do huma ħtieġa li jiffissaw dan l-iżball? Dawn jeħtieġ li jagħmlu lcs50 sing fil- linja ta 'kmand meta jkunu qed jikkompila. Hekk jekk dawn ma jgħaddu lcs50 sing clang, dawn qed mhux ser ikollhom l-attwali kodiċi li timplimenta GetString. Mistoqsija 29. Impliċitament li tiddikjara funzjoni librerija strlen. Ukoll dan issa, dawn ma jkunux għamlu l-hash xierqa jinkludu. F'dan il-każ partikolari, il-fajl tal-header li għandhom bżonn biex jinkludu huwa string dot h, u inkluż string dot h, issa il student-- issa l-kumpilatur għandu aċċess għall- dikjarazzjonijiet ta 'strlen, u jaf li kodiċi tiegħek qed tuża strlen korrett. Mistoqsija 30. Konverżjonijiet fil-mija aktar minn argumenti dejta. Allura dak li huwa dan? Ukoll ftakar li dawn mija signs-- kif dawn qed rilevanti għall printf. Allura fil-printf nistgħu percent-- nistgħu jistampaw xi ħaġa bħal fil-mija i backslash n. Jew nistgħu jistampaw bħal mija i, ispazju, mija i, l-ispazju, mija i. Allura għal kull wieħed minn dawk sinjali mija, għandna bżonn jgħaddu varjabbli fl-aħħar tal printf. Allura jekk aħna ngħidu paren printf mija i backslash paren n-qrib, ukoll, aħna ngħidu li aħna qed morna għall-istampa integer, iżda mbagħad ma ngħaddux printf integer li attwalment jistampaw. Allura hawnhekk iżjed mija konverżjonijiet minn argumenti tad-data? Li qal li għandna mazz sħiħ ta 'percents, u aħna ma jkollhomx biżżejjed varjabbli li attwalment timla f'dawk percents. U mbagħad definittivament, għal mistoqsija 31, definittivament mitlufa 40 bytes f'wieħed blokki. Allura dan huwa żball Valgrind. Dan huwa qal li x'imkien fil-kodiċi tiegħek, għandek allokazzjoni li hu huwa 40 bytes kbir sabiex inti malloced 40 bytes, u int qatt meħlusa dan. Ħafna probabbli inti biss bżonn biex isibu xi nixxija memorja, u ssib fejn inti għandek bżonn ħielsa dan il-blokk ta 'memorja. U mistoqsija 32, tikteb invalidu daqs 4. Għal darb'oħra din hija żball Valgrind. Dan ma għandek tagħmel ma tnixxijiet memorja issa. Dan huwa, l-aktar likely-- I mean, huwa xi tip ta 'drittijiet memorja invalidi. U l-aktar probabbli dan huwa xi tip ta 'overflow buffer. Fejn għandek firxa, forsi firxa integer, u ejja ngħid huwa ta 'daqs 5, u int jippruvaw tmissx firxa bracket 5. Mela jekk inti tipprova tikteb lil dik valur, li mhux biċċa ta 'memorja li inti fil-fatt ikollhom aċċess għal, u hekk int ser tikseb dan l-iżball, qal tikteb invalidu d-daqs 4. Valgrind se jirrikonoxxu int jippruvaw tmissx memorja inadegwatament. U li hija għal quiz0. Jien Rob Bowden, u dan huwa CS50.