1 00:00:00,000 --> 00:00:09,572 2 00:00:09,572 --> 00:00:12,030 ROB Bowden: Hi, jien Rob Bowden, u ejja nitkellmu dwar quiz0. 3 00:00:12,030 --> 00:00:13,280 4 00:00:13,280 --> 00:00:14,545 >> Allura, ewwel domanda. 5 00:00:14,545 --> 00:00:17,750 Din hija l-kwistjoni fejn inti meħtieġ għall-kodiċi l-għadd 6 00:00:17,750 --> 00:00:21,270 127 fil-basal binarja. 7 00:00:21,270 --> 00:00:23,550 Jekk int riedu, inti tista jagħmlu l-konverżjoni regolari 8 00:00:23,550 --> 00:00:25,950 minn bi-- jew, minn deċimali għall-binarju. 9 00:00:25,950 --> 00:00:28,300 Iżda li probabbilment se li tieħu ħafna ħin. 10 00:00:28,300 --> 00:00:31,750 I mean, inti tista 'figura li, OK, 1 huwa fil hemm, 2 hija fil hemm, 11 00:00:31,750 --> 00:00:33,650 4 hija fil hemm, 8 ikun fil hemmhekk. 12 00:00:33,650 --> 00:00:39,280 Mod aktar faċli, 127 huwa 128 nieqes wieħed. 13 00:00:39,280 --> 00:00:42,013 Li bozza tad-dawl leftmost huwa l-128-bit. 14 00:00:42,013 --> 00:00:43,490 15 00:00:43,490 --> 00:00:47,860 Allura 127 huwa verament biss kollha ta 'l-bozoz tad-dawl oħra, 16 00:00:47,860 --> 00:00:51,420 peress li hija l-leftmost bozza tad-dawl minus 1. 17 00:00:51,420 --> 00:00:52,800 C'est għal din id-domanda. 18 00:00:52,800 --> 00:00:54,060 >> Mistoqsija waħda. 19 00:00:54,060 --> 00:00:56,710 Allura bi 3 bits inti tista jirrappreżentaw 8 valuri distinti. 20 00:00:56,710 --> 00:01:01,000 Għaliex, allura, hija ta '7-akbar mhux negattiv li integer deċimali inti tista 'tirrappreżenta? 21 00:01:01,000 --> 00:01:04,050 Ukoll, jekk nistgħu biss jirrappreżentaw 8 valuri distinti, 22 00:01:04,050 --> 00:01:07,430 allura dak li aħna qed tmur biex tkun li jirrappreżenta huwa 0 sa 7. 23 00:01:07,430 --> 00:01:08,745 0 jieħu wieħed mill-valuri. 24 00:01:08,745 --> 00:01:09,980 25 00:01:09,980 --> 00:01:11,190 >> Mistoqsija tnejn. 26 00:01:11,190 --> 00:01:14,610 Bil n bits, kemm distinta Valuri tista tirrappreżenta? 27 00:01:14,610 --> 00:01:19,080 Allura, ma 'n bits, inti għandek 2 Valuri possibbli għal kull daqsxejn. 28 00:01:19,080 --> 00:01:22,300 Allura aħna għandna 2 Valuri possibbli għal l-ewwel ftit, 2-valuri possibbli 29 00:01:22,300 --> 00:01:24,450 għat-tieni, it-2 possibbli għat-tielet. 30 00:01:24,450 --> 00:01:28,730 U sabiex għamilhom 2 darbiet 2 darbiet 2, u finalment it-tweġiba hija 2 għall-n. 31 00:01:28,730 --> 00:01:30,010 32 00:01:30,010 --> 00:01:31,100 >> Mistoqsija tlieta. 33 00:01:31,100 --> 00:01:33,450 X'hemm 0x50 fil binarja? 34 00:01:33,450 --> 00:01:39,490 Mela ftakar li hexadecimal għandha ħafna konverżjoni sempliċi biex binarja. 35 00:01:39,490 --> 00:01:43,180 Allura hawnhekk, aħna biss bżonn tħares lejn il-5 u t-0 indipendentement. 36 00:01:43,180 --> 00:01:45,110 Allura x'hemm 5 binarja? 37 00:01:45,110 --> 00:01:48,400 0101, dak l-1 bit u l-4 daqsxejn. 38 00:01:48,400 --> 00:01:49,900 X'hemm 0 binarja? 39 00:01:49,900 --> 00:01:50,520 Mhux delikata. 40 00:01:50,520 --> 00:01:52,180 0000. 41 00:01:52,180 --> 00:01:54,970 Hekk biss jpoġġuhom flimkien, u dak l-għadd sħiħ binarju. 42 00:01:54,970 --> 00:01:57,640 01010000. 43 00:01:57,640 --> 00:02:00,439 U jekk int riedu inti tista jieħdu off li leftmost żero. 44 00:02:00,439 --> 00:02:01,105 Huwa irrilevanti. 45 00:02:01,105 --> 00:02:02,920 46 00:02:02,920 --> 00:02:05,733 >> Mela allura alternattivament, dak li huwa 0x50 fl deċimali? 47 00:02:05,733 --> 00:02:08,649 Jekk int riedu, inti could-- jekk int aktar komda mal-binarju, 48 00:02:08,649 --> 00:02:11,340 inti tista 'tieħu din ir-risposta binarju u jikkonvertu dan in deċimali. 49 00:02:11,340 --> 00:02:13,870 Jew nistgħu biss ftakar li hexadeċimali. 50 00:02:13,870 --> 00:02:21,140 Allura li huwa 0 fil-post 0-th, u 5 huwa fil-16 sa l-ewwel post. 51 00:02:21,140 --> 00:02:25,990 Allura hawnhekk, aħna għandna 5 darbiet 16 għall- ewwel, plus 0 ħinijiet 16 għall-żero, 52 00:02:25,990 --> 00:02:27,520 huwa 80. 53 00:02:27,520 --> 00:02:29,710 U jekk inti ħares lejn l- titolu għall-mistoqsija, 54 00:02:29,710 --> 00:02:32,920 kien CS 80, li kien it-tip ta ' ħjiel li t-tweġiba għal din il-problema. 55 00:02:32,920 --> 00:02:34,460 56 00:02:34,460 --> 00:02:35,420 >> Mistoqsija ħamsa. 57 00:02:35,420 --> 00:02:40,320 Għandna din l-iskrittura Scratch, li hija tirrepeti 4 darbiet butir tal-karawett jelly. 58 00:02:40,320 --> 00:02:42,800 Allura kif do we issa kodiċi li fis-C? 59 00:02:42,800 --> 00:02:47,730 Well, aħna għandna here-- l-parti b'tipa grassa hija l-unika parti li inti kellhom jimplimentaw. 60 00:02:47,730 --> 00:02:51,950 Allura aħna għandna 4 linja thats looping 4 ħinijiet,-printf Ing karawett jelly butir, 61 00:02:51,950 --> 00:02:53,910 mal-linja ġdida bħala l-problema titlob għal. 62 00:02:53,910 --> 00:02:55,250 63 00:02:55,250 --> 00:02:57,490 >> Sitt mistoqsija, problema oħra Scratch. 64 00:02:57,490 --> 00:03:00,210 Naraw li ninsabu fi dejjem loop. 65 00:03:00,210 --> 00:03:05,000 Aħna qed tgħid il-varjabbli i u mbagħad inkrementazzjoni i mill-1. 66 00:03:05,000 --> 00:03:09,580 Issa rridu li tagħmel dan fil-C. Hemm modi multipli nistgħu jkunu għamlu dan. 67 00:03:09,580 --> 00:03:12,840 Hawnhekk aħna ġara għall-kodiċi tal- dejjem loop bħala filwaqt (veru). 68 00:03:12,840 --> 00:03:16,600 Allura aħna tiddikjara l-varjabbli i, biss bħal kellna varjabbli i fil Scratch. 69 00:03:16,600 --> 00:03:21,950 Jiddikjara l-varjabbli i, u dejjem filwaqt li (veru), nistgħu ngħidu l-varjabbli i. 70 00:03:21,950 --> 00:03:25,260 Allura printf% i-- jew inti tista ħadthom użati% d. 71 00:03:25,260 --> 00:03:27,985 Aħna ngħidu dak il-varjabbli, u imbagħad inkrement huwa, i ++. 72 00:03:27,985 --> 00:03:29,560 73 00:03:29,560 --> 00:03:30,830 >> Mistoqsija sebgħa. 74 00:03:30,830 --> 00:03:35,560 Issa rridu nagħmlu xi ħaġa simili ħafna lil Mario dot c minn problema sett wieħed. 75 00:03:35,560 --> 00:03:39,110 Aħna rridu li tistampa dawn hashtags, irridu li jistampaw ta 'ħames 76 00:03:39,110 --> 00:03:40,700 billi tlieta rettangolu ta 'dawn hashes. 77 00:03:40,700 --> 00:03:41,770 78 00:03:41,770 --> 00:03:43,162 Allura kif huma aħna se tagħmel dan? 79 00:03:43,162 --> 00:03:45,370 Well, aħna nagħtuk kollu mazz ta 'kodiċi, u inti biss 80 00:03:45,370 --> 00:03:47,560 għandek timla l-funzjoni grid istampar. 81 00:03:47,560 --> 00:03:49,540 >> Allura dak li ma PrintGrid look like? 82 00:03:49,540 --> 00:03:51,480 Well int passat l- wisa 'u l-għoli. 83 00:03:51,480 --> 00:03:53,520 Allura għandna barra 4 loop, thats looping 84 00:03:53,520 --> 00:03:57,650 fuq kollha ta 'l-ringieli ta' dan grid li aħna rridu li jistampaw. 85 00:03:57,650 --> 00:04:01,250 Imbagħad għandna l-inter-nested 4 loop, li l-istampar fuq kull kolonna. 86 00:04:01,250 --> 00:04:06,210 Allura għal kull ringiela, aħna jistampaw għal kull kolonna, hash wieħed. 87 00:04:06,210 --> 00:04:10,045 Imbagħad fl-aħħar tal-filliera aħna jistampaw linja ġdida waħda biex tmur fil-filliera li jmiss. 88 00:04:10,045 --> 00:04:11,420 U li lilha għall-grid kollu. 89 00:04:11,420 --> 00:04:12,810 90 00:04:12,810 --> 00:04:13,675 >> Mistoqsija tmienja. 91 00:04:13,675 --> 00:04:17,170 Funzjoni bħal PrintGrid huwa qal li ikollhom effett sekondarju, iżda mhux ritorn 92 00:04:17,170 --> 00:04:17,670 valur. 93 00:04:17,670 --> 00:04:19,209 Jispjegaw id-distinzjoni. 94 00:04:19,209 --> 00:04:23,080 Allura dan jiddependi fuq inti ftakar liema effett sekondarju hu. 95 00:04:23,080 --> 00:04:25,180 Ukoll, ritorn value-- nafu PrintGrid ma 96 00:04:25,180 --> 00:04:28,180 għandhom valur tar-ritorn, peress dritt hawn jgħid null. 97 00:04:28,180 --> 00:04:31,150 Allura xi ħaġa li jirritorna null ma verament ritorn xejn. 98 00:04:31,150 --> 00:04:32,200 99 00:04:32,200 --> 00:04:33,620 Allura x'inhi l-effett sekondarju? 100 00:04:33,620 --> 00:04:36,620 Ukoll, effett sekondarju huwa xejn li tip ta 'tippersisti 101 00:04:36,620 --> 00:04:39,500 wara l-truf tal-funzjoni li ma kienx biss lura, 102 00:04:39,500 --> 00:04:41,340 u ma kienx biss mill-inputs. 103 00:04:41,340 --> 00:04:44,970 >> Allura, per eżempju, nistgħu bidla varjabbli globali. 104 00:04:44,970 --> 00:04:46,590 Dan ikun effett sekondarju. 105 00:04:46,590 --> 00:04:49,000 F'dan il-każ partikolari, effett sekondarju importanti ħafna 106 00:04:49,000 --> 00:04:51,070 huwa istampar għall-iskrin. 107 00:04:51,070 --> 00:04:53,110 Allura li hu effett sekondarju li PrintGrid għandha. 108 00:04:53,110 --> 00:04:54,980 Aħna istampar dawn l-affarijiet għall-iskrin. 109 00:04:54,980 --> 00:04:56,370 U inti tista 'taħseb li bħala effett sekondarju, 110 00:04:56,370 --> 00:04:58,690 peress li xi ħaġa li tippersisti wara din il-funzjoni truf. 111 00:04:58,690 --> 00:05:01,481 Dik xi ħaġa barra mill-ambitu ta 'din il-funzjoni li finalment 112 00:05:01,481 --> 00:05:03,380 qed tinbidel, il- kontenut tal-iskrin. 113 00:05:03,380 --> 00:05:05,200 114 00:05:05,200 --> 00:05:05,839 >> Mistoqsija disa. 115 00:05:05,839 --> 00:05:07,880 Ikkunsidra l-programm ta 'hawn taħt, li linja numri 116 00:05:07,880 --> 00:05:09,740 ġew miżjuda għall l-fini ta 'diskussjoni. 117 00:05:09,740 --> 00:05:13,480 Allura f'dan il-programm aħna biss ssejjaħ GetString, maħżuna 118 00:05:13,480 --> 00:05:16,220 f'dan varjabbli i, u mbagħad istampar dak il-varjabbli s. 119 00:05:16,220 --> 00:05:16,720 OK. 120 00:05:16,720 --> 00:05:19,090 Allura jispjegaw għaliex linja wieħed ikun preżenti. 121 00:05:19,090 --> 00:05:20,920 #include CS50 dot h. 122 00:05:20,920 --> 00:05:23,820 Għaliex għandna bżonn li #include CS50 dot h? 123 00:05:23,820 --> 00:05:26,180 Well aħna qed ssejjaħ l- GetString funzjoni, 124 00:05:26,180 --> 00:05:28,840 u GetString huwa definit fil-librerija CS50. 125 00:05:28,840 --> 00:05:31,600 Hekk jekk aħna ma kellhiex #include CS50 dot h, 126 00:05:31,600 --> 00:05:35,760 aħna se tikseb dik id-dikjarazzjoni impliċitu tal-iżball funzjoni GetString 127 00:05:35,760 --> 00:05:36,840 mill-kompilatur. 128 00:05:36,840 --> 00:05:40,110 Għalhekk għandna bżonn li jinkludi l-library-- għandna bżonn li jinkludi l-fajl tal-header, 129 00:05:40,110 --> 00:05:42,870 jew inkella l-kompilatur mhux se jirrikonoxxu li GetString jeżisti. 130 00:05:42,870 --> 00:05:44,380 131 00:05:44,380 --> 00:05:46,140 >> Jispjegaw għaliex linja tnejn huwa preżenti. 132 00:05:46,140 --> 00:05:47,890 Allura standard IO dot h. 133 00:05:47,890 --> 00:05:50,430 Huwa eżattament l-istess bħala l-problema ta 'qabel, 134 00:05:50,430 --> 00:05:53,310 ħlief minflok jittrattaw GetString, aħna qed jitkellem dwar printf. 135 00:05:53,310 --> 00:05:56,654 Allura jekk aħna ma jgħidu li għandna bżonn li jinkludi l-istandard IO dot h, 136 00:05:56,654 --> 00:05:58,820 allura aħna mhux se tkun kapaċi li tuża l-funzjoni printf, 137 00:05:58,820 --> 00:06:00,653 minħabba li l-kompilatur ma jkunux jafu dwar dan. 138 00:06:00,653 --> 00:06:01,750 139 00:06:01,750 --> 00:06:05,260 >> Why-- x'inhi l-importanza ta null fil-linja erbgħa? 140 00:06:05,260 --> 00:06:08,010 Allura hawnhekk għandna int prinċipali (vojt). 141 00:06:08,010 --> 00:06:10,600 Li jinsab biss qal li aħna ma jkollna ebda linja tal-kmand 142 00:06:10,600 --> 00:06:12,280 argumenti prinċipali. 143 00:06:12,280 --> 00:06:17,390 Ftakar li nistgħu ngħidu int parentesi ewlenin INT argc ARGV string. 144 00:06:17,390 --> 00:06:20,400 Allura hawnhekk għandna biss jgħidu nulli biex ngħidu aħna qed ninjoraw argumenti linja tal-kmand. 145 00:06:20,400 --> 00:06:21,840 146 00:06:21,840 --> 00:06:25,225 >> Jispjegaw, fir-rigward tal-memorja, eżattament dak GetString konformi sitt prospetti. 147 00:06:25,225 --> 00:06:27,040 148 00:06:27,040 --> 00:06:31,640 GetString huwa jirritorna blokk ta ' memorja, firxa ta 'karattri. 149 00:06:31,640 --> 00:06:34,870 Huwa tassew ma jirritornaw pointer li l-ewwel karattru. 150 00:06:34,870 --> 00:06:37,170 Ftakar li string hija stilla char. 151 00:06:37,170 --> 00:06:41,360 Allura s huwa pointer għall-ewwel karattru x'ikun l-sekwenza huwa 152 00:06:41,360 --> 00:06:43,510 li l-utent daħal fil-keyboard. 153 00:06:43,510 --> 00:06:47,070 U li l-memorja jiġri li jkun malloced, hekk li l-memorja huwa fil-borġ. 154 00:06:47,070 --> 00:06:49,080 155 00:06:49,080 --> 00:06:50,450 >> Mistoqsija 13. 156 00:06:50,450 --> 00:06:51,960 Ikkunsidra l-programm hawn taħt. 157 00:06:51,960 --> 00:06:55,579 Allura dan kollu programm qed tagħmel huwa printf-Ing 1 maqsum f'10. 158 00:06:55,579 --> 00:06:57,370 Allura meta miġbura u esegwiti, dan il-programm 159 00:06:57,370 --> 00:07:01,170 outputs 0.0, anki jekk 1 maqsum f'10 hija 0.1. 160 00:07:01,170 --> 00:07:02,970 Allura għaliex hi 0.0? 161 00:07:02,970 --> 00:07:05,510 Ukoll, dan huwa minħabba ta 'diviżjoni numru sħiħ. 162 00:07:05,510 --> 00:07:08,580 Allura 1 huwa integer, 10 huwa integer. 163 00:07:08,580 --> 00:07:11,980 Allura 1 maqsum f'10, kollox hija trattata bħala interi, 164 00:07:11,980 --> 00:07:16,380 u fis-C, meta nagħmlu diviżjoni numru sħiħ, aħna truncate kwalunkwe punt deċimali. 165 00:07:16,380 --> 00:07:19,590 Allura 1 maqsum f'10 hija 0, u allura aħna qed jippruvaw 166 00:07:19,590 --> 00:07:24,410 li jistampaw li bħala float, hekk żero stampati bħala float huwa 0.0. 167 00:07:24,410 --> 00:07:27,400 U hu għalhekk li aħna nikseb 0.0. 168 00:07:27,400 --> 00:07:28,940 >> Ikkunsidra l-programm hawn taħt. 169 00:07:28,940 --> 00:07:31,280 Issa aħna qed istampar 0.1. 170 00:07:31,280 --> 00:07:34,280 Allura l-ebda diviżjoni numru sħiħ, aħna qed biss istampar 0.1, 171 00:07:34,280 --> 00:07:37,100 imma aħna qed istampar dan 28 postijiet deċimali. 172 00:07:37,100 --> 00:07:41,810 U nikbru dan 0.1000, mazz sħiħ ta 'żerijiet, 5 5 5, blah blah blah. 173 00:07:41,810 --> 00:07:45,495 Għalhekk il-kwistjoni hawnhekk hija għaliex ma jistampaw li, minflok eżattament 0.1? 174 00:07:45,495 --> 00:07:46,620 175 00:07:46,620 --> 00:07:49,640 >> Allura r-raġuni hawn issa huwa f'wiċċ l-ilma punt impreċiżjoni. 176 00:07:49,640 --> 00:07:53,410 Ftakar li float huwa biss 32 bits. 177 00:07:53,410 --> 00:07:57,540 Allura nistgħu jirrappreżentaw biss numru finit tal galleġġjanti valuri tal-punti ma 'dawk 32 178 00:07:57,540 --> 00:07:58,560 bits. 179 00:07:58,560 --> 00:08:01,760 Ukoll hemm finalment infinitament ħafna valuri f'wiċċ l-ilma point, 180 00:08:01,760 --> 00:08:04,940 u hemm infinitament ħafna f'wiċċ l-ilma valuri tal-punti fl bejn 0 u 1, 181 00:08:04,940 --> 00:08:07,860 u aħna qed ovvjament kapaċi jirrappreżentaw valuri saħansitra aktar minn dak. 182 00:08:07,860 --> 00:08:13,230 Allura aħna għandna biex jagħmlu sagrifiċċji biex tkun tista 'tirrappreżenta aktar valuri. 183 00:08:13,230 --> 00:08:16,960 >> Allura valur bħal 0.1, apparentement ma nistgħux jirrappreżenta dak eżattament. 184 00:08:16,960 --> 00:08:22,500 Allura minflok li jirrappreżenta 0.1 nagħmlu l- aħjar li nistgħu jirrappreżenta dan 0.100000 5 5 185 00:08:22,500 --> 00:08:23,260 5. 186 00:08:23,260 --> 00:08:26,306 U li pretty qrib, iżda għal ħafna applikazzjonijiet 187 00:08:26,306 --> 00:08:28,430 għandek għalfejn tinkwieta dwar f'wiċċ l-ilma punt impreċiżjoni, 188 00:08:28,430 --> 00:08:30,930 għaliex aħna biss ma tistax tirrappreżenta punti kollha f'wiċċ l-ilma eżattament. 189 00:08:30,930 --> 00:08:32,500 190 00:08:32,500 --> 00:08:33,380 >> Mistoqsija 15. 191 00:08:33,380 --> 00:08:34,679 Ikkunsidra l-kodiċi hawn taħt. 192 00:08:34,679 --> 00:08:36,630 Aħna biss istampar 1 flimkien ma '1. 193 00:08:36,630 --> 00:08:38,289 B'hekk m'hemm l-ebda trick hawnhekk. 194 00:08:38,289 --> 00:08:41,780 1 flimkien ma '1 tevalwa sa 2, u allura aħna qed istampar dik. 195 00:08:41,780 --> 00:08:42,789 Dan biss stampi 2. 196 00:08:42,789 --> 00:08:43,850 197 00:08:43,850 --> 00:08:44,700 >> Mistoqsija 16. 198 00:08:44,700 --> 00:08:49,450 Issa aħna qed istampar tal-karattru 1 flimkien mal-karattru 1. 199 00:08:49,450 --> 00:08:52,110 Allura għaliex ma dan ma jistampaw l-istess ħaġa? 200 00:08:52,110 --> 00:08:57,680 Ukoll l-karattru 1 flimkien mal-karattru 1, il-karattru 1 għandu valur ASCII 49. 201 00:08:57,680 --> 00:09:04,840 Allura dan huwa verament qal 49 plus 49, u finalment dan se jistampaw 98. 202 00:09:04,840 --> 00:09:06,130 Allura dan ma print 2. 203 00:09:06,130 --> 00:09:08,070 204 00:09:08,070 --> 00:09:09,271 >> Mistoqsija 17. 205 00:09:09,271 --> 00:09:11,520 Tlesti l-implimentazzjoni tal fard hawn taħt b'tali mod 206 00:09:11,520 --> 00:09:14,615 li l-funzjoni jirritorna veru jekk n hija fard u falza jekk n hija saħansitra. 207 00:09:14,615 --> 00:09:16,710 208 00:09:16,710 --> 00:09:19,330 Dan huwa skop kbir għall-operatur mod. 209 00:09:19,330 --> 00:09:24,530 Allura aħna jieħdu argument n tagħna, jekk n mod 2 huwa ugwali 1, ukoll 210 00:09:24,530 --> 00:09:28,030 dan ifisser li jinqasmu n minn 2 kellhom bqija. 211 00:09:28,030 --> 00:09:33,270 Jekk n diviż bil 2 kellha kumplament, li ifisser li n hija fard, hekk aħna ritorn veru. 212 00:09:33,270 --> 00:09:34,910 Else nerġgħu lura falza. 213 00:09:34,910 --> 00:09:39,070 Inti wkoll seta 'jsir n MOD 2 partijiet ugwali żero, ritorn foloz, inkella ritorn veru. 214 00:09:39,070 --> 00:09:41,600 215 00:09:41,600 --> 00:09:43,640 >> Ikkunsidra l-funzjoni jirrikorri hawn taħt. 216 00:09:43,640 --> 00:09:46,920 Hekk jekk n hija inqas minn jew ugwali għal 1, jirritornaw 1, 217 00:09:46,920 --> 00:09:50,430 ritorn inkella n żminijiet f 'n minus 1. 218 00:09:50,430 --> 00:09:52,556 Allura x'inhi din il-funzjoni? 219 00:09:52,556 --> 00:09:54,305 Ukoll, dan huwa biss il- funzjoni fattorjali. 220 00:09:54,305 --> 00:09:55,410 221 00:09:55,410 --> 00:09:57,405 Dan huwa rappreżentat nicely kif fattorjali n. 222 00:09:57,405 --> 00:09:58,720 223 00:09:58,720 --> 00:10:02,310 >> Allura mistoqsija 19 issa, irridu jieħdu din il-funzjoni jirrikorri. 224 00:10:02,310 --> 00:10:04,530 Aħna rridu li jagħmilha iterattiv. 225 00:10:04,530 --> 00:10:05,874 Allura kif nistgħu nagħmlu dan? 226 00:10:05,874 --> 00:10:07,790 Ukoll għall-persunal soluzzjoni, u għal darb'oħra hemm 227 00:10:07,790 --> 00:10:11,090 modi multipli li seta 'jsir li, nibdew ma 'dan il-prodott int 228 00:10:11,090 --> 00:10:11,812 ugwali 1. 229 00:10:11,812 --> 00:10:13,520 U matul dan għal loop, aħna qed tmur 230 00:10:13,520 --> 00:10:17,590 li għandha multiplikazzjoni prodott li finalment jispiċċaw ma 'l-fattorjali sħiħa. 231 00:10:17,590 --> 00:10:21,870 Allura għal int i ugwali 2, i huwa inqas minn jew ugwali għal n, i ++. 232 00:10:21,870 --> 00:10:24,130 >> Inti jista 'jistaqsi għaliex I ugwali 2. 233 00:10:24,130 --> 00:10:28,380 Ukoll, ftakar li hawnhekk għandna biex kun żgur każ bażi tagħna hija korretta. 234 00:10:28,380 --> 00:10:32,180 Hekk jekk n hija inqas minn jew ugwali għal 1, aħna qed biss jirritorna 1. 235 00:10:32,180 --> 00:10:34,830 Allura hawn, aħna jibdew fil i ugwali 2. 236 00:10:34,830 --> 00:10:39,090 Ukoll jekk i kienu 1, imbagħad the-- jew jekk n kienu 1, allura l-għar loop 237 00:10:39,090 --> 00:10:40,600 ma tesegwixxi fil-livelli kollha. 238 00:10:40,600 --> 00:10:43,190 U hekk aħna kieku biss prodott ritorn, li hija l-1. 239 00:10:43,190 --> 00:10:45,920 Bl-istess mod, jekk n kienu xejn inqas minn 1-- 240 00:10:45,920 --> 00:10:49,290 kieku kien 0, negattivi 1, whatever-- aħna'd xorta jirritorna 1, 241 00:10:49,290 --> 00:10:52,260 li huwa eżattament dak li l- Verżjoni rikursivi qed tagħmel. 242 00:10:52,260 --> 00:10:54,660 >> Issa, jekk n hija akbar minn 1, allura aħna qed tmur 243 00:10:54,660 --> 00:10:56,550 biex tagħmel mill-inqas wieħed iterazzjoni ta 'dan loop. 244 00:10:56,550 --> 00:11:00,630 Mela ejja ngħidu n hija ta '5, allura aħna qed se jagħmlu żminijiet prodott ugwali 2. 245 00:11:00,630 --> 00:11:02,165 Allura issa prodott huwa 2. 246 00:11:02,165 --> 00:11:04,040 Issa aħna qed tmur biex tagħmel ħinijiet tal-prodott ugwali 3. 247 00:11:04,040 --> 00:11:04,690 Issa huwa 6. 248 00:11:04,690 --> 00:11:07,500 Ħinijiet Prodott ugwali 4, issa huwa 24. 249 00:11:07,500 --> 00:11:10,420 Ħinijiet Prodott ugwali 5, issa huwa 120. 250 00:11:10,420 --> 00:11:16,730 Hekk allura finalment, aħna qed jirritornaw 120, li huwa b'mod korrett 5 fattoriku. 251 00:11:16,730 --> 00:11:17,510 >> Mistoqsija 20. 252 00:11:17,510 --> 00:11:22,480 Dan huwa l-waħda fejn inti għandek timla f'din it-tabella ma 'kull algoritmu partikolari, 253 00:11:22,480 --> 00:11:25,735 xi ħaġa li aħna stajt tidher, li aċċessjonijiet dawn run algorithmic 254 00:11:25,735 --> 00:11:28,060 drabi dawn darbiet run asintotiku. 255 00:11:28,060 --> 00:11:33,270 Allura x'inhu algoritmu li huwa omega ta '1, iżda O kbira ta' n? 256 00:11:33,270 --> 00:11:35,970 Allura jista 'jkun hemm infinitament ħafna tweġibiet hawnhekk. 257 00:11:35,970 --> 00:11:39,790 Il-wieħed li aħna stajt tidher probabbilment l-aktar spiss huwa biss tfittxija lineari. 258 00:11:39,790 --> 00:11:42,050 >> Hekk fil-każ aħjar xenarju, il-punt aħna qed 259 00:11:42,050 --> 00:11:44,050 tfittex huwa fil- bidu tal-lista 260 00:11:44,050 --> 00:11:47,400 u għalhekk omega ta '1 passi, l-ewwel ħaġa li għandna jiċċekkjaw, 261 00:11:47,400 --> 00:11:49,740 aħna biss jirritorna minnufih li sibna l-oġġett. 262 00:11:49,740 --> 00:11:52,189 Fl-agħar każ, l-oġġett huwa fl-aħħar, 263 00:11:52,189 --> 00:11:53,730 jew l-oġġett ma tkunx fil-lista fil-livelli kollha. 264 00:11:53,730 --> 00:11:56,700 Hekk irridu tfittxija l-lista sħiħa, kollha n 265 00:11:56,700 --> 00:11:58,480 elementi, u li C'est pourquoi huwa o ta n. 266 00:11:58,480 --> 00:11:59,670 267 00:11:59,670 --> 00:12:04,880 >> Allura issa huwa xi ħaġa li dawn, kemm omega ta 'log n n, u O kbir ta' log n n. 268 00:12:04,880 --> 00:12:08,650 Ukoll l-aktar ħaġa rilevanti Rajna hawnhekk huwa jingħaqdu sort. 269 00:12:08,650 --> 00:12:12,950 Allura jingħaqdu sort, ftakar, huwa finalment Theta 270 00:12:12,950 --> 00:12:16,920 ta 'n log n, fejn theta hija definita jekk kemm omega u O kbar huma l-istess. 271 00:12:16,920 --> 00:12:17,580 Kemm n log n. 272 00:12:17,580 --> 00:12:18,690 273 00:12:18,690 --> 00:12:21,970 >> X'hemm xi ħaġa li omega ta 'n, u O ta' n kwadrat? 274 00:12:21,970 --> 00:12:23,990 Ukoll, għal darb'oħra hemm tweġibiet possibbli multipli. 275 00:12:23,990 --> 00:12:26,440 Hawnhekk aħna jiġri li ngħidu sort bużżieqa. 276 00:12:26,440 --> 00:12:28,840 Sort inserzjoni wkoll jaħdem hawn. 277 00:12:28,840 --> 00:12:31,400 Ftakar dik it-tip bużżieqa għandha li search fejn, 278 00:12:31,400 --> 00:12:34,630 jekk inti huma kapaċi jiksbu permezz tal-lista sħiħa 279 00:12:34,630 --> 00:12:37,402 mingħajr il-bżonn li tagħmel xi swaps, allura, ukoll, 280 00:12:37,402 --> 00:12:40,110 nistgħu immedjatament jirritorna dik il-lista ġiet magħżula biex tibda bil. 281 00:12:40,110 --> 00:12:43,185 Hekk fil-xenarju aħjar, huwa biss omega ta n. 282 00:12:43,185 --> 00:12:45,960 Jekk mhuwiex biss nicely magħżula lista li tibda bil, 283 00:12:45,960 --> 00:12:48,270 allura għandna O ta 'n kwadrat swaps. 284 00:12:48,270 --> 00:12:49,330 285 00:12:49,330 --> 00:12:55,610 U finalment, aħna għandna sort għażla għal n kwadrat, kemm omega u O. big 286 00:12:55,610 --> 00:12:56,850 >> Mistoqsija 21. 287 00:12:56,850 --> 00:12:58,870 X'hemm overflow integer? 288 00:12:58,870 --> 00:13:02,160 Ukoll għal darb'oħra, simili għal qabel, aħna biss finitely ħafna bits 289 00:13:02,160 --> 00:13:04,255 biex jirrappreżentaw integer, hekk forsi 32 bits. 290 00:13:04,255 --> 00:13:06,300 291 00:13:06,300 --> 00:13:09,180 Ejja ngħidu aħna għandna numru sħiħ ffirmata. 292 00:13:09,180 --> 00:13:12,800 Imbagħad finalment l-ogħla numru pożittiv nistgħu jirrappreżentaw 293 00:13:12,800 --> 00:13:15,910 hija ta '2 għall-31 minus 1. 294 00:13:15,910 --> 00:13:19,370 Allura x'jiġri jekk nippruvaw imbagħad inkrement li integer? 295 00:13:19,370 --> 00:13:25,320 Well, aħna qed tmur biex tmur minn 2 sa l-31 ta ' minus 1, it-triq kollha sa negattiv 2 296 00:13:25,320 --> 00:13:26,490 għall-31. 297 00:13:26,490 --> 00:13:29,470 Allura dan overflow numru sħiħ hija meta inti żżomm inkrementazzjoni, 298 00:13:29,470 --> 00:13:32,330 u finalment inti ma tistax jiksbu kwalunkwe ogħla u hija biss 299 00:13:32,330 --> 00:13:34,520 garżi it-triq kollha lura madwar għal valur negattiv. 300 00:13:34,520 --> 00:13:35,850 301 00:13:35,850 --> 00:13:37,779 >> What about a overflow buffer? 302 00:13:37,779 --> 00:13:39,820 Allura buffer overflow-- tiftakar dak buffer huwa. 303 00:13:39,820 --> 00:13:41,000 Huwa biss blokki ta 'memorja. 304 00:13:41,000 --> 00:13:43,350 Xi ħaġa simili firxa hija buffer. 305 00:13:43,350 --> 00:13:46,120 Allura overflow buffer huwa meta inti tipprova l-aċċess memorja 306 00:13:46,120 --> 00:13:47,880 wara t-tmiem ta 'dak array. 307 00:13:47,880 --> 00:13:50,410 Mela jekk għandek firxa ta 'daqs 5 u int 308 00:13:50,410 --> 00:13:53,700 tipprova l-aċċess bracket firxa 5 jew kategorija 6 jew kategorija 7, 309 00:13:53,700 --> 00:13:56,610 jew xi ħaġa lil hinn mill- aħħar, jew saħansitra xejn 310 00:13:56,610 --> 00:14:00,790 bracket firxa below-- negattiv 1-- kollha ta 'dawk huma tifwir buffer. 311 00:14:00,790 --> 00:14:02,810 Inti jmissu memorja b'modi ħżiena. 312 00:14:02,810 --> 00:14:04,090 313 00:14:04,090 --> 00:14:04,730 >> Mistoqsija 23. 314 00:14:04,730 --> 00:14:05,760 315 00:14:05,760 --> 00:14:09,100 Allura f'dan il-wieħed li għandek bżonn biex jimplimentaw strlen. 316 00:14:09,100 --> 00:14:11,630 U aħna jgħidlek li inti tista ' jassumu s mhux se jkun null, 317 00:14:11,630 --> 00:14:13,790 sabiex inti ma għandekx tagħmel xi kontroll għall null. 318 00:14:13,790 --> 00:14:16,190 U hemm modi multipli li seta 'jsir dan. 319 00:14:16,190 --> 00:14:18,440 Hawnhekk aħna biss jieħdu l-sempliċi. 320 00:14:18,440 --> 00:14:21,780 Aħna tibda bil-counter, n. n hija għadd kemm karattri hemm. 321 00:14:21,780 --> 00:14:25,560 Allura nibdew f'0, u allura aħna jtenni fuq il-lista sħiħa. 322 00:14:25,560 --> 00:14:29,092 >> Huwa s bracket 0 ugwali għall- karattru terminatur null? 323 00:14:29,092 --> 00:14:31,425 Ftakar aħna qed infittxu il-karattru terminatur null 324 00:14:31,425 --> 00:14:33,360 biex jiddetermina kemm string tagħna huwa. 325 00:14:33,360 --> 00:14:35,890 Li ser jittermina kwalunkwe string rilevanti. 326 00:14:35,890 --> 00:14:39,400 Allura huwa s bracket 0 ugwali għall-terminatur null? 327 00:14:39,400 --> 00:14:42,850 Jekk mhuwiex, allura aħna qed tmur biex tħares lejn bracket i 1, parentesi s 2. 328 00:14:42,850 --> 00:14:45,050 Aħna jibqgħu għaddejjin sakemm aħna isibu l-terminatur null. 329 00:14:45,050 --> 00:14:48,580 Ladarba aħna ħadthom sabuha, allura n fih it-tul totali tas-sekwenza, 330 00:14:48,580 --> 00:14:49,942 u nistgħu biss ritorn dak. 331 00:14:49,942 --> 00:14:51,180 332 00:14:51,180 --> 00:14:51,865 >> Mistoqsija 24. 333 00:14:51,865 --> 00:14:53,010 334 00:14:53,010 --> 00:14:56,050 Allura dan huwa l-waħda fejn inti għandek tagħmel l-kummerċ off. 335 00:14:56,050 --> 00:14:59,810 Allura ħaġa waħda hija tajba fil waħda mod, iżda b'liema mod huwa ħażin? 336 00:14:59,810 --> 00:15:02,980 Allura hawnhekk, jingħaqdu sort tendenza li jkun aktar mgħaġġel milli sort bużżieqa. 337 00:15:02,980 --> 00:15:06,530 Wara li qal that-- tajjeb, hemm huma tweġibiet multipli hawn. 338 00:15:06,530 --> 00:15:12,930 Iżda l-wieħed prinċipali huwa li sort bużżieqa huwa omega ta n għal lista magħżul. 339 00:15:12,930 --> 00:15:14,950 >> Ftakar dik it-tabella aħna biss raw qabel. 340 00:15:14,950 --> 00:15:17,600 Allura bużżieqa xorta omega ta n, ix-xenarju aħjar każ 341 00:15:17,600 --> 00:15:20,010 huwa huwa kapaċi li jmorru biss fuq il-lista ladarba, jiddeterminaw 342 00:15:20,010 --> 00:15:22,270 ħej din hija ħaġa diġà magħżula, u r-ritorn. 343 00:15:22,270 --> 00:15:25,960 Jingħaqdu sort, irrelevanti x'inhu inti tagħmel, hija omega ta 'log n n. 344 00:15:25,960 --> 00:15:29,200 Allura għal-lista magħżula, bubble sort għaddej biex tkun aktar mgħaġġla. 345 00:15:29,200 --> 00:15:30,870 346 00:15:30,870 --> 00:15:32,430 >> Issa dak dwar marbut listi? 347 00:15:32,430 --> 00:15:36,070 Allura lista marbuta jistgħu jikbru u tiċkien li tajbin kif ħafna elementi kif meħtieġ. 348 00:15:36,070 --> 00:15:38,489 Wara li qal that-- hekk normalment il-paragun dirett 349 00:15:38,489 --> 00:15:40,280 se jkun marbut lista ma 'firxa. 350 00:15:40,280 --> 00:15:41,600 351 00:15:41,600 --> 00:15:44,050 Allura anke jekk arrays tista faċilment jikbru u tiċkien 352 00:15:44,050 --> 00:15:47,130 li tajbin kif ħafna elementi kif meħtieġ, lista marbuta 353 00:15:47,130 --> 00:15:49,600 meta mqabbel ma 'l array-- firxa għandha aċċess bl-addoċċ. 354 00:15:49,600 --> 00:15:52,960 Nistgħu indiċi fi kwalunkwe element partikolari ta 'l-array. 355 00:15:52,960 --> 00:15:56,430 >> Allura għal-lista marbuta, ma nistgħux biss jmorru għall-ħames element, 356 00:15:56,430 --> 00:16:00,260 għandna biex travers mill-bidu sakemm aħna jiksbu l-ħames element. 357 00:16:00,260 --> 00:16:03,990 U li għaddej biex jipprevjenu lilna minn tagħmel xi ħaġa simili tfittxija binarja. 358 00:16:03,990 --> 00:16:08,150 Taħdit ta 'tfittxija binarja, tfittxija binarja tendenza li tkun aktar mgħaġġla minn tfittxija lineari. 359 00:16:08,150 --> 00:16:11,120 Wara li qal that-- hekk, ħaġa waħda possibbli 360 00:16:11,120 --> 00:16:13,380 hija li inti ma tistax tagħmel binarja tfittxija fuq listi marbuta, 361 00:16:13,380 --> 00:16:14,730 inti tista 'biss tagħmel dan fuq arrays. 362 00:16:14,730 --> 00:16:18,030 Iżda probabbilment aktar importanti, inti ma tistax tagħmel tfittxija binarja 363 00:16:18,030 --> 00:16:20,690 fuq firxa li mhix riżolta. 364 00:16:20,690 --> 00:16:23,990 Bil-quddiem jista 'jkollok bżonn biex issolvi l-array, u biss jistgħu imbagħad 365 00:16:23,990 --> 00:16:25,370 inti tagħmel tfittxija binarja. 366 00:16:25,370 --> 00:16:27,660 Hekk jekk ħaġa tiegħek mhix ssortjat li tibda bil, 367 00:16:27,660 --> 00:16:29,250 allura tfittxija lineari jista 'jkun malajr. 368 00:16:29,250 --> 00:16:30,620 369 00:16:30,620 --> 00:16:31,740 >> Mistoqsija 27. 370 00:16:31,740 --> 00:16:34,770 Sabiex jikkunsidraw il-programm hawn taħt, li se tkun fil-slide li jmiss. 371 00:16:34,770 --> 00:16:37,790 U dan huwa dak fejn aħna qed tmur jridu jiddikjaraw b'mod espliċitu 372 00:16:37,790 --> 00:16:39,980 il-valuri għall-varjabbli differenti. 373 00:16:39,980 --> 00:16:41,990 Mela ejja nħarsu lejn dak. 374 00:16:41,990 --> 00:16:43,160 >> Allura linja waħda. 375 00:16:43,160 --> 00:16:45,457 Għandna int x ugwali 1. 376 00:16:45,457 --> 00:16:47,040 Dik hija l-unika ħaġa li ġara. 377 00:16:47,040 --> 00:16:50,440 Allura fil-linja waħda, naraw fil tagħna tabella, li y, a, b, u TMP huma kollha 378 00:16:50,440 --> 00:16:51,540 blokkjat. 379 00:16:51,540 --> 00:16:52,280 Allura x'inhi x? 380 00:16:52,280 --> 00:16:53,860 Well we biss sett huwa ugwali għal 1. 381 00:16:53,860 --> 00:16:55,020 382 00:16:55,020 --> 00:16:58,770 U mbagħad linja tnejn, ukoll, naraw li y huwa stabbilit għal 2, 383 00:16:58,770 --> 00:17:00,550 u t-tabella hija diġà mimlija għalina. 384 00:17:00,550 --> 00:17:03,040 Allura x hija l-1 u Y huwa ta '2. 385 00:17:03,040 --> 00:17:05,890 >> Issa, linja tlieta, aħna qed issa ġewwa l-funzjoni tpartit. 386 00:17:05,890 --> 00:17:07,560 What did aħna jgħaddu biex tpartit? 387 00:17:07,560 --> 00:17:11,609 Aħna għadda ampersand x għall a, u ampersand y għal b. 388 00:17:11,609 --> 00:17:15,160 Fejn il-problema qabel iddikjara li l-indirizz ta 'x 389 00:17:15,160 --> 00:17:17,520 huwa 0x10, u l-indirizz ta 'y huwa 0x14. 390 00:17:17,520 --> 00:17:18,970 391 00:17:18,970 --> 00:17:21,909 Allura aub huma ugwali għal 0x10 u 0x14, rispettivament. 392 00:17:21,909 --> 00:17:23,670 393 00:17:23,670 --> 00:17:26,250 >> Issa fil-linja tlieta, liema huma x u y? 394 00:17:26,250 --> 00:17:28,554 Well, xejn ma nbidel dwar xuy f'dan il-punt. 395 00:17:28,554 --> 00:17:30,470 Anki jekk dawn qed ġewwa qafas munzell prinċipali, 396 00:17:30,470 --> 00:17:32,469 dawn ikunu għadhom l-istess Valuri huma għamlu qabel. 397 00:17:32,469 --> 00:17:34,030 Aħna jkunx immodifika memorja. 398 00:17:34,030 --> 00:17:35,710 Allura x huwa 1, y hija ta '2. 399 00:17:35,710 --> 00:17:36,550 400 00:17:36,550 --> 00:17:37,050 Kull dritt. 401 00:17:37,050 --> 00:17:40,300 Allura issa aħna qal TMP int ugwali għal istilla a. 402 00:17:40,300 --> 00:17:44,410 Allura fil-linja erbgħa, kollox huwa l-istess ħlief għall TMP. 403 00:17:44,410 --> 00:17:47,130 Aħna ma nbidlux xi valuri ta 'xejn ħlief għall TMP. 404 00:17:47,130 --> 00:17:49,230 Aħna twaqqif TMP ugwali għal istilla a. 405 00:17:49,230 --> 00:17:50,620 X'inhu star a? 406 00:17:50,620 --> 00:17:56,240 Well, punti għal x, So istilla a se x ugwali, li hija l-1. 407 00:17:56,240 --> 00:18:00,080 Allura kollox huwa kkupjata isfel, u TMP huwa stabbilit għal 1. 408 00:18:00,080 --> 00:18:01,110 >> Issa l-linja li jmiss. 409 00:18:01,110 --> 00:18:03,380 Star a ugwali stilla b. 410 00:18:03,380 --> 00:18:10,000 Allura billi linja five-- sew għal darb'oħra, kollox huwa l-istess ħlief kwalunkwe star a huwa. 411 00:18:10,000 --> 00:18:10,830 X'inhu star a? 412 00:18:10,830 --> 00:18:13,720 Well, aħna biss qal star a huwa x. 413 00:18:13,720 --> 00:18:16,400 Allura aħna qed jinbidlu x bħala ugwali għal star b. 414 00:18:16,400 --> 00:18:18,960 X'inhu star b? y. punti B sa y. 415 00:18:18,960 --> 00:18:21,030 Allura star b huwa y. 416 00:18:21,030 --> 00:18:25,140 Allura aħna qed jistabbilixxu x ugwali għal y, u kull ħaġa oħra huwa l-istess. 417 00:18:25,140 --> 00:18:29,130 Allura naraw fil-filliera li jmiss li x issa huwa 2, u l-bqija huma biss kkupjati isfel. 418 00:18:29,130 --> 00:18:31,120 >> Issa fil-linja li jmiss, star b ugwali TMP. 419 00:18:31,120 --> 00:18:34,740 Well, aħna biss qal star b huwa y, hekk aħna qed iffissar ugwali y għal TMP. 420 00:18:34,740 --> 00:18:37,450 Kollox huwa l-istess, hekk kollox gets kkupjati isfel. 421 00:18:37,450 --> 00:18:42,050 Aħna qed iffissar y ugwali għal TMP, li hija waħda, u kull ħaġa oħra huwa l-istess. 422 00:18:42,050 --> 00:18:43,210 >> Issa finalment, linja seba. 423 00:18:43,210 --> 00:18:44,700 Aħna qed lura fil-funzjoni ewlenija. 424 00:18:44,700 --> 00:18:46,350 Aħna wara tpartit huwa lest. 425 00:18:46,350 --> 00:18:48,972 Tlifna, b, u PAT, iżda fl-aħħar aħna 426 00:18:48,972 --> 00:18:51,180 mhumiex jinbidlu xi valuri ta 'xejn f'dan il-punt, 427 00:18:51,180 --> 00:18:52,800 aħna biss kopja x u r y. 428 00:18:52,800 --> 00:18:56,490 U naraw li xuy huma issa 2 u 1 minflok ta '1 u 2. 429 00:18:56,490 --> 00:18:58,160 It-tpartit tkun wettqet b'suċċess. 430 00:18:58,160 --> 00:18:59,500 431 00:18:59,500 --> 00:19:00,105 >> Mistoqsija 28. 432 00:19:00,105 --> 00:19:01,226 433 00:19:01,226 --> 00:19:03,100 Ejja ngħidu li inti tiltaqa l-messaġġi ta 'żball 434 00:19:03,100 --> 00:19:06,790 hawn taħt matul ħinijiet tal-uffiċċju sena d-dieħla bħala CA jew TF. 435 00:19:06,790 --> 00:19:08,930 Parir kif jiffissaw kull wieħed minn dawn l-iżbalji. 436 00:19:08,930 --> 00:19:11,160 Referenza hekk undefined għall GetString. 437 00:19:11,160 --> 00:19:12,540 Għaliex jista inti tara dan? 438 00:19:12,540 --> 00:19:15,380 Ukoll, jekk student qed tuża GetString fil-kodiċi tagħhom, 439 00:19:15,380 --> 00:19:20,310 huma jkunu kif suppost hash inklużi CS50 dot h biex tinkludi l-librerija CS50. 440 00:19:20,310 --> 00:19:22,380 >> Ukoll, liema do huma ħtieġa li jiffissaw dan l-iżball? 441 00:19:22,380 --> 00:19:26,810 Dawn jeħtieġ li jagħmlu lcs50 sing fil- linja ta 'kmand meta jkunu qed jikkompila. 442 00:19:26,810 --> 00:19:29,501 Hekk jekk dawn ma jgħaddu lcs50 sing clang, dawn qed 443 00:19:29,501 --> 00:19:32,000 mhux ser ikollhom l-attwali kodiċi li timplimenta GetString. 444 00:19:32,000 --> 00:19:33,190 445 00:19:33,190 --> 00:19:34,170 >> Mistoqsija 29. 446 00:19:34,170 --> 00:19:36,190 Impliċitament li tiddikjara funzjoni librerija strlen. 447 00:19:36,190 --> 00:19:37,550 448 00:19:37,550 --> 00:19:40,360 Ukoll dan issa, dawn ma jkunux għamlu l-hash xierqa jinkludu. 449 00:19:40,360 --> 00:19:41,440 450 00:19:41,440 --> 00:19:45,410 F'dan il-każ partikolari, il-fajl tal-header li għandhom bżonn biex jinkludu huwa string dot h, 451 00:19:45,410 --> 00:19:48,710 u inkluż string dot h, issa il student-- issa l-kumpilatur 452 00:19:48,710 --> 00:19:51,750 għandu aċċess għall- dikjarazzjonijiet ta 'strlen, 453 00:19:51,750 --> 00:19:54,120 u jaf li kodiċi tiegħek qed tuża strlen korrett. 454 00:19:54,120 --> 00:19:55,380 455 00:19:55,380 --> 00:19:56,580 >> Mistoqsija 30. 456 00:19:56,580 --> 00:20:00,240 Konverżjonijiet fil-mija aktar minn argumenti dejta. 457 00:20:00,240 --> 00:20:01,540 Allura dak li huwa dan? 458 00:20:01,540 --> 00:20:06,470 Ukoll ftakar li dawn mija signs-- kif dawn qed rilevanti għall printf. 459 00:20:06,470 --> 00:20:08,890 Allura fil-printf nistgħu percent-- nistgħu jistampaw xi ħaġa 460 00:20:08,890 --> 00:20:11,380 bħal fil-mija i backslash n. 461 00:20:11,380 --> 00:20:15,310 Jew nistgħu jistampaw bħal mija i, ispazju, mija i, l-ispazju, mija i. 462 00:20:15,310 --> 00:20:18,950 Allura għal kull wieħed minn dawk sinjali mija, għandna bżonn 463 00:20:18,950 --> 00:20:21,560 jgħaddu varjabbli fl-aħħar tal printf. 464 00:20:21,560 --> 00:20:26,980 >> Allura jekk aħna ngħidu paren printf mija i backslash paren n-qrib, 465 00:20:26,980 --> 00:20:30,270 ukoll, aħna ngħidu li aħna qed morna għall-istampa integer, 466 00:20:30,270 --> 00:20:33,970 iżda mbagħad ma ngħaddux printf integer li attwalment jistampaw. 467 00:20:33,970 --> 00:20:37,182 Allura hawnhekk iżjed mija konverżjonijiet minn argumenti tad-data? 468 00:20:37,182 --> 00:20:39,390 Li qal li għandna mazz sħiħ ta 'percents, 469 00:20:39,390 --> 00:20:42,445 u aħna ma jkollhomx biżżejjed varjabbli li attwalment timla f'dawk percents. 470 00:20:42,445 --> 00:20:44,850 471 00:20:44,850 --> 00:20:50,010 >> U mbagħad definittivament, għal mistoqsija 31, definittivament mitlufa 40 bytes f'wieħed blokki. 472 00:20:50,010 --> 00:20:52,350 Allura dan huwa żball Valgrind. 473 00:20:52,350 --> 00:20:54,720 Dan huwa qal li x'imkien fil-kodiċi tiegħek, 474 00:20:54,720 --> 00:20:59,010 għandek allokazzjoni li hu huwa 40 bytes kbir sabiex inti malloced 40 bytes, 475 00:20:59,010 --> 00:21:00,515 u int qatt meħlusa dan. 476 00:21:00,515 --> 00:21:02,480 477 00:21:02,480 --> 00:21:05,140 Ħafna probabbli inti biss bżonn biex isibu xi nixxija memorja, 478 00:21:05,140 --> 00:21:07,650 u ssib fejn inti għandek bżonn ħielsa dan il-blokk ta 'memorja. 479 00:21:07,650 --> 00:21:08,780 480 00:21:08,780 --> 00:21:11,910 >> U mistoqsija 32, tikteb invalidu daqs 4. 481 00:21:11,910 --> 00:21:13,250 Għal darb'oħra din hija żball Valgrind. 482 00:21:13,250 --> 00:21:15,440 Dan ma għandek tagħmel ma tnixxijiet memorja issa. 483 00:21:15,440 --> 00:21:20,750 Dan huwa, l-aktar likely-- I mean, huwa xi tip ta 'drittijiet memorja invalidi. 484 00:21:20,750 --> 00:21:23,270 U l-aktar probabbli dan huwa xi tip ta 'overflow buffer. 485 00:21:23,270 --> 00:21:26,560 Fejn għandek firxa, forsi firxa integer, u ejja 486 00:21:26,560 --> 00:21:30,115 ngħid huwa ta 'daqs 5, u int jippruvaw tmissx firxa bracket 5. 487 00:21:30,115 --> 00:21:34,150 Mela jekk inti tipprova tikteb lil dik valur, li mhux biċċa ta 'memorja 488 00:21:34,150 --> 00:21:37,440 li inti fil-fatt ikollhom aċċess għal, u hekk int ser tikseb dan l-iżball, 489 00:21:37,440 --> 00:21:39,272 qal tikteb invalidu d-daqs 4. 490 00:21:39,272 --> 00:21:42,480 Valgrind se jirrikonoxxu int jippruvaw tmissx memorja inadegwatament. 491 00:21:42,480 --> 00:21:43,980 >> U li hija għal quiz0. 492 00:21:43,980 --> 00:21:47,065 Jien Rob Bowden, u dan huwa CS50. 493 00:21:47,065 --> 00:21:51,104