1 00:00:00,000 --> 00:00:09,572 2 00:00:09,572 --> 00:00:12,030 Rob Bowden: Hi, Mən Rob Bowden deyiləm və in quiz0 haqqında danışmaq edək. 3 00:00:12,030 --> 00:00:13,280 4 00:00:13,280 --> 00:00:14,545 >> Belə ki, ilk sual. 5 00:00:14,545 --> 00:00:17,750 Bu sual harada Nömrəni kod lazım 6 00:00:17,750 --> 00:00:21,270 Ikili ampüller 127. 7 00:00:21,270 --> 00:00:23,550 Siz istəyirdi, siz bilər müntəzəm dönüşüm 8 00:00:23,550 --> 00:00:25,950 ondalık ikili üçün, bi-- ya. 9 00:00:25,950 --> 00:00:28,300 Amma yəqin ki, olacaq çox vaxt almaq. 10 00:00:28,300 --> 00:00:31,750 Mən sizə ki, anlamaq bilər, demək, OK, 1, orada 2 orada deyil 11 00:00:31,750 --> 00:00:33,650 4 var, 8 orada deyil. 12 00:00:33,650 --> 00:00:39,280 Asan yolu, 127 128 minus biridir. 13 00:00:39,280 --> 00:00:42,013 Ki, leftmost ampul 128-bit edir. 14 00:00:42,013 --> 00:00:43,490 15 00:00:43,490 --> 00:00:47,860 Belə ki, 127 yalnız bütün həqiqətən digər yüngül ampüller, 16 00:00:47,860 --> 00:00:51,420 ki, leftmost ildən ampul minus 1. 17 00:00:51,420 --> 00:00:52,800 Ki, sual üçün var. 18 00:00:52,800 --> 00:00:54,060 >> Sual biridir. 19 00:00:54,060 --> 00:00:56,710 3 bit Belə ki, siz 8 fərqli dəyərlər təmsil. 20 00:00:56,710 --> 00:01:01,000 Niyə, sonra, ən böyük qeyri-mənfi 7 siz təmsil edə bilər onluq tam? 21 00:01:01,000 --> 00:01:04,050 Yaxşı, əgər biz yalnız bilərsiniz 8 fərqli dəyərlər təmsil, 22 00:01:04,050 --> 00:01:07,430 sonra nə biz olacaq təmsil 7 vasitəsilə 0. 23 00:01:07,430 --> 00:01:08,745 0 dəyərlərdən biri edir. 24 00:01:08,745 --> 00:01:09,980 25 00:01:09,980 --> 00:01:11,190 >> Sual iki. 26 00:01:11,190 --> 00:01:14,610 N bit ilə, necə bir çox fərqli dəyərlər təmsil edə bilər? 27 00:01:14,610 --> 00:01:19,080 Belə ki, n bit ilə, siz var 2 hər bit üçün mümkün dəyərlər. 28 00:01:19,080 --> 00:01:22,300 Beləliklə, biz 2 mümkün dəyərlər üçün ilk bit, 2 mümkün dəyərlər 29 00:01:22,300 --> 00:01:24,450 ikinci, 2 üçüncü mümkün. 30 00:01:24,450 --> 00:01:28,730 Və belə ki, 2 dəfə 2 dəfə 2, və nəticədə cavab n 2. 31 00:01:28,730 --> 00:01:30,010 32 00:01:30,010 --> 00:01:31,100 >> Sual üç. 33 00:01:31,100 --> 00:01:33,450 Ikili 0x50 nədir? 34 00:01:33,450 --> 00:01:39,490 Belə ki, hexadecimal bir çox var ki, unutmayın ikili sadə dönüşüm. 35 00:01:39,490 --> 00:01:43,180 Belə ki, burada biz yalnız baxmaq lazımdır 5 və müstəqil 0. 36 00:01:43,180 --> 00:01:45,110 Belə ki, ikili 5 var? 37 00:01:45,110 --> 00:01:48,400 0101, ki, 1 bit və 4 bit var. 38 00:01:48,400 --> 00:01:49,900 Ikili 0 nədir? 39 00:01:49,900 --> 00:01:50,520 Çətin deyil. 40 00:01:50,520 --> 00:01:52,180 0000. 41 00:01:52,180 --> 00:01:54,970 Belə ki, yalnız onlara birlikdə qoymaq və ki, ikili tam sayı var. 42 00:01:54,970 --> 00:01:57,640 01010000. 43 00:01:57,640 --> 00:02:00,439 Siz istəyirdi və siz ki, leftmost sıfır çıxarmaq. 44 00:02:00,439 --> 00:02:01,105 Bu əlaqəsiz deyil. 45 00:02:01,105 --> 00:02:02,920 46 00:02:02,920 --> 00:02:05,733 >> Beləliklə alternativ, ondalık da 0x50 nədir? 47 00:02:05,733 --> 00:02:08,649 Siz istəyirdi əgər istəyirsinizsə, siz could-- ikitərəfli ilə daha rahat, 48 00:02:08,649 --> 00:02:11,340 ki, ikili cavab bilər və ondalık daxil çevirmək. 49 00:02:11,340 --> 00:02:13,870 Yoxsa biz yalnız xatırlayıram bilər ki, hexadecimal. 50 00:02:13,870 --> 00:02:21,140 0 Belə ki, 0-ci yerdədir, və 5 birinci yerə 16 edir. 51 00:02:21,140 --> 00:02:25,990 Belə ki, burada biz 5 dəfə 16 var ilk sıfıra plus 0 dəfə 16, 52 00:02:25,990 --> 00:02:27,520 80. 53 00:02:27,520 --> 00:02:29,710 Və siz baxdı əgər sualına adı, 54 00:02:29,710 --> 00:02:32,920 bir növ olan CS 80 idi Bu problemin cavabını işarə. 55 00:02:32,920 --> 00:02:34,460 56 00:02:34,460 --> 00:02:35,420 >> Sual beş. 57 00:02:35,420 --> 00:02:40,320 Biz olan bu Scratch script var 4 dəfə peanut yağ jelly təkrar. 58 00:02:40,320 --> 00:02:42,800 Belə ki, necə biz C kodu indi bunu? 59 00:02:42,800 --> 00:02:47,730 Bəli, biz burada qalın hissəsi siz həyata keçirilməsi üçün idi yalnız bir hissəsidir. 60 00:02:47,730 --> 00:02:51,950 Beləliklə, biz 4 loop ki, 4 loop var dəfə, printf-Ing peanut yağ jelly, 61 00:02:51,950 --> 00:02:53,910 yeni xətt ilə problem üçün xahiş kimi. 62 00:02:53,910 --> 00:02:55,250 63 00:02:55,250 --> 00:02:57,490 >> Sual altı başqa Scratch problem. 64 00:02:57,490 --> 00:03:00,210 Biz əbədi loop var ki, görəcəksiniz. 65 00:03:00,210 --> 00:03:05,000 Biz dəyişən i deyərək edirik və sonra 1-i incrementing. 66 00:03:05,000 --> 00:03:09,580 İndi biz C. var ki, bunu istəyirəm biz bu həyata bilər çox yolları. 67 00:03:09,580 --> 00:03:12,840 Burada kod oldu Bir müddət (doğru) kimi əbədi loop. 68 00:03:12,840 --> 00:03:16,600 Beləliklə, biz yalnız, dəyişən i elan kimi biz Not dəyişən i idi. 69 00:03:16,600 --> 00:03:21,950 Dəyişən i elan və əbədi (doğru) isə, biz dəyişən i deyirlər. 70 00:03:21,950 --> 00:03:25,260 Printf% i və ya% d istifadə etdiyiniz bilər belə. 71 00:03:25,260 --> 00:03:27,985 Biz dəyişən demək, və sonra arttırmayı, i ++. 72 00:03:27,985 --> 00:03:29,560 73 00:03:29,560 --> 00:03:30,830 >> Sual yeddi. 74 00:03:30,830 --> 00:03:35,560 İndi biz çox oxşar bir şey etmək istəyirəm Mario dot c problem bir seçin. 75 00:03:35,560 --> 00:03:39,110 Biz bu hashtags çap etmək istəyirəm, biz beş çap etmək istəyirəm 76 00:03:39,110 --> 00:03:40,700 bu hashes üç düzbucaqlı. 77 00:03:40,700 --> 00:03:41,770 78 00:03:41,770 --> 00:03:43,162 Belə ki, necə ki, biz bunu gedir? 79 00:03:43,162 --> 00:03:45,370 Bəli, biz bir bütün vermək kodu dəstə, və yalnız 80 00:03:45,370 --> 00:03:47,560 çap grid funksiyası doldurmaq lazımdır. 81 00:03:47,560 --> 00:03:49,540 >> Belə ki, nə PrintGrid kimi görünür? 82 00:03:49,540 --> 00:03:51,480 Yaxşı keçmiş istəyirik eni və hündürlüyü. 83 00:03:51,480 --> 00:03:53,520 Beləliklə, biz bir xarici var 4 loop ki, loop 84 00:03:53,520 --> 00:03:57,650 bu satır bütün biz çap etmək istəyirəm ki grid. 85 00:03:57,650 --> 00:04:01,250 Sonra biz inter-nested 4 loop var hər sütun üzərində çap. 86 00:04:01,250 --> 00:04:06,210 Belə ki, hər cərgə üçün, biz çap hər sütun, bir hash. 87 00:04:06,210 --> 00:04:10,045 Sonra sıra sonunda biz çap bir yeni xətt növbəti sıra getmək üçün. 88 00:04:10,045 --> 00:04:11,420 Və bütün grid üçün var. 89 00:04:11,420 --> 00:04:12,810 90 00:04:12,810 --> 00:04:13,675 >> Sual səkkiz. 91 00:04:13,675 --> 00:04:17,170 PrintGrid kimi funksiyası deyilir bir dönüş bir yan təsiri var, lakin 92 00:04:17,170 --> 00:04:17,670 dəyəri. 93 00:04:17,670 --> 00:04:19,209 Fərq izah olunur. 94 00:04:19,209 --> 00:04:23,080 Belə ki, bu xatırlayaraq əsaslanır bir yan təsiri nə. 95 00:04:23,080 --> 00:04:25,180 Yaxşı, bir geri dəyər biz PrintGrid deyil bilirik 96 00:04:25,180 --> 00:04:28,180 ildən, qaytarılması dəyəri burada bu etibarsız deyir. 97 00:04:28,180 --> 00:04:31,150 Etibarsız qaytarır ki, belə bir şey həqiqətən bir şey geri deyil. 98 00:04:31,150 --> 00:04:32,200 99 00:04:32,200 --> 00:04:33,620 Belə ki, yan təsiri nədir? 100 00:04:33,620 --> 00:04:36,620 Yaxşı, bir yan təsiri sort davam ki, bir şey 101 00:04:36,620 --> 00:04:39,500 funksiyası başa çatdıqdan sonra ki, yalnız geri deyil 102 00:04:39,500 --> 00:04:41,340 və yalnız giriş idi. 103 00:04:41,340 --> 00:04:44,970 >> Belə ki, məsələn, biz bilər qlobal dəyişən dəyişir. 104 00:04:44,970 --> 00:04:46,590 Bir yan təsiri olacaq. 105 00:04:46,590 --> 00:04:49,000 Bu halda, bir çox əhəmiyyətli yan təsiri 106 00:04:49,000 --> 00:04:51,070 ekran çap. 107 00:04:51,070 --> 00:04:53,110 Belə ki, bir yan təsiri ki PrintGrid var. 108 00:04:53,110 --> 00:04:54,980 Biz ekran bu şeyi çap. 109 00:04:54,980 --> 00:04:56,370 Və siz hesab edə bilər ki, bir yan təsiri olaraq, 110 00:04:56,370 --> 00:04:58,690 ki, bir şey bəri bu funksiya başa sonra davam. 111 00:04:58,690 --> 00:05:01,481 Bu əhatəsi xaricində bir şey var Bu funksiya nəticədə 112 00:05:01,481 --> 00:05:03,380 dəyişdirilə olunur ki, ekran məzmunu. 113 00:05:03,380 --> 00:05:05,200 114 00:05:05,200 --> 00:05:05,839 >> Sual doqquz. 115 00:05:05,839 --> 00:05:07,880 Aşağıdakı proqram düşünün xətt nömrələri 116 00:05:07,880 --> 00:05:09,740 əlavə edilmişdir müzakirə naminə. 117 00:05:09,740 --> 00:05:13,480 Bu proqram Beləliklə, biz yalnız var saxlanılması, GetString zəng 118 00:05:13,480 --> 00:05:16,220 bu dəyişən s, və sonra ki, dəyişən s çap. 119 00:05:16,220 --> 00:05:16,720 OK. 120 00:05:16,720 --> 00:05:19,090 Line bir mövcud niyə belə izah edir. 121 00:05:19,090 --> 00:05:20,920 # daxildir cs50 dot h. 122 00:05:20,920 --> 00:05:23,820 Niyə biz CS50 dot h # daxil etmək lazımdır? 123 00:05:23,820 --> 00:05:26,180 Yaxşı zəng etdiyiniz Funksiyası GetString, 124 00:05:26,180 --> 00:05:28,840 və GetString müəyyən edilir CS50 kitabxana. 125 00:05:28,840 --> 00:05:31,600 Biz olmasaydı belə # daxildir cs50 dot h, 126 00:05:31,600 --> 00:05:35,760 ki, gizli bəyannamə almaq olardı GetString funksiyası səhv 127 00:05:35,760 --> 00:05:36,840 compiler edir. 128 00:05:36,840 --> 00:05:40,110 Belə ki, biz kitabxana daxil etmək lazımdır Biz header fayl daxil etmək lazımdır, 129 00:05:40,110 --> 00:05:42,870 və ya başqa compiler deyil GetString var ki, tanımalıdır. 130 00:05:42,870 --> 00:05:44,380 131 00:05:44,380 --> 00:05:46,140 >> Xətti iki mövcud izah. 132 00:05:46,140 --> 00:05:47,890 Belə ki, standart io dot h. 133 00:05:47,890 --> 00:05:50,430 Bu tam eyni əvvəlki problem kimi, 134 00:05:50,430 --> 00:05:53,310 yerinə ilə məşğul başqa GetString, biz printf söhbət edirik. 135 00:05:53,310 --> 00:05:56,654 Biz lazım demədim əgər Belə ki, Standart io dot h daxil, 136 00:05:56,654 --> 00:05:58,820 sonra biz edə bilməz printf funksiyasından istifadə etmək üçün, 137 00:05:58,820 --> 00:06:00,653 compiler çünki bu barədə deyil. 138 00:06:00,653 --> 00:06:01,750 139 00:06:01,750 --> 00:06:05,260 >> Why-- əhəmiyyəti nədir xətti dörd ləğv? 140 00:06:05,260 --> 00:06:08,010 Belə ki, burada biz int əsas (void) var. 141 00:06:08,010 --> 00:06:10,600 Ki, yalnız bu biz deyən oldu Hər hansı bir command line əldə deyil 142 00:06:10,600 --> 00:06:12,280 əsas arqumentlər. 143 00:06:12,280 --> 00:06:17,390 Biz int demək olar ki, xatırlayıram Əsas int argc string argv mötərizədə. 144 00:06:17,390 --> 00:06:20,400 Belə ki, burada biz yalnız biz demək etibarsız demək command line dəlilləri gözardı edilir. 145 00:06:20,400 --> 00:06:21,840 146 00:06:21,840 --> 00:06:25,225 >> Dəqiq, xatirəsinə hörmət ilə izah line nə GetString altı qaytarır. 147 00:06:25,225 --> 00:06:27,040 148 00:06:27,040 --> 00:06:31,640 GetString blokunun qaytarılması yaddaş, simvol bir sıra. 149 00:06:31,640 --> 00:06:34,870 Bu, həqiqətən bir qaytarılması ilk xarakteri göstərici. 150 00:06:34,870 --> 00:06:37,170 Bir string bir char ulduz olduğunu unutmayın. 151 00:06:37,170 --> 00:06:41,360 Belə ki, ilk bir göstəricisidir xarakter hər hansı simli deyil 152 00:06:41,360 --> 00:06:43,510 istifadəçi klaviatura daxil. 153 00:06:43,510 --> 00:06:47,070 Və yaddaş malloced olur, belə ki, yaddaş yığın edir. 154 00:06:47,070 --> 00:06:49,080 155 00:06:49,080 --> 00:06:50,450 >> Sual 13. 156 00:06:50,450 --> 00:06:51,960 Aşağıdakı proqram düşünün. 157 00:06:51,960 --> 00:06:55,579 Belə ki, bütün bu proqram edir 10 bölünür 1 printf-Ing edir. 158 00:06:55,579 --> 00:06:57,370 Belə ki, tərtib zaman və edam, bu proqram 159 00:06:57,370 --> 00:07:01,170 nəticələri 0.0, baxmayaraq 1 10 bölünür 0.1. 160 00:07:01,170 --> 00:07:02,970 Belə ki, niyə 0.0 edir? 161 00:07:02,970 --> 00:07:05,510 Bəli, bu, çünki tam bölgüsü. 162 00:07:05,510 --> 00:07:08,580 Belə ki, 1 tam 10 tam edir. 163 00:07:08,580 --> 00:07:11,980 Belə ki, 1 10, hər şey bölünür integers kimi müalicə olunur, 164 00:07:11,980 --> 00:07:16,380 və C, biz tam bölgüsü nə zaman, Biz hər hansı bir kəsir kəsmək. 165 00:07:16,380 --> 00:07:19,590 Belə ki, 1 10 bölünür 0, sonra biz çalışırıq 166 00:07:19,590 --> 00:07:24,410 belə ki, bir float kimi çap bir float kimi çap sıfır 0.0 edir. 167 00:07:24,410 --> 00:07:27,400 Biz 0.0 almaq niyə və ki. 168 00:07:27,400 --> 00:07:28,940 >> Aşağıdakı proqram düşünün. 169 00:07:28,940 --> 00:07:31,280 İndi biz 0,1 çap edirik. 170 00:07:31,280 --> 00:07:34,280 Belə ki, heç tam bölgüsü, biz yalnız, 0.1 çap edirik 171 00:07:34,280 --> 00:07:37,100 lakin biz bunu çap edirik 28 onluq yerlərinə. 172 00:07:37,100 --> 00:07:41,810 Və biz bu 0,1000, bir dəstə almaq adet sıfır, 5 5 5, blah blah blah. 173 00:07:41,810 --> 00:07:45,495 Bunu niyə Belə ki, burada sual əvəzinə tam 0.1, çap? 174 00:07:45,495 --> 00:07:46,620 175 00:07:46,620 --> 00:07:49,640 >> Belə ki, burada səbəb indi point qeyri-dəqiqlik üzən. 176 00:07:49,640 --> 00:07:53,410 Bir float yalnız 32 bit olduğunu unutmayın. 177 00:07:53,410 --> 00:07:57,540 Belə ki, biz yalnız bir sonlu sayı təmsil edə bilər bu 32 point dəyərləri üzən 178 00:07:57,540 --> 00:07:58,560 bit. 179 00:07:58,560 --> 00:08:01,760 Yaxşı nəticədə sonsuz var çox üzən point dəyərləri, 180 00:08:01,760 --> 00:08:04,940 və üzən sonsuz çox var 0 və 1 arasında point dəyərləri, 181 00:08:04,940 --> 00:08:07,860 və biz açıq-aydın edə istəyirik ki, daha çox dəyərlər təmsil. 182 00:08:07,860 --> 00:08:13,230 Belə ki, biz fədakarlıq etmək lazımdır Ən dəyərlər təmsil edə bilər. 183 00:08:13,230 --> 00:08:16,960 >> Belə ki, 0.1 kimi dəyəri, yəqin biz tam təmsil edə bilməz. 184 00:08:16,960 --> 00:08:22,500 Belə ki, əvəzinə 0.1 təmsil biz nə yaxşı biz bu 0.100000 5 5 təmsil edə bilər 185 00:08:22,500 --> 00:08:23,260 5. 186 00:08:23,260 --> 00:08:26,306 Və olduqca yaxın, lakin applications bir çox üçün 187 00:08:26,306 --> 00:08:28,430 Siz narahat point qeyri-dəqiqlik üzən, 188 00:08:28,430 --> 00:08:30,930 biz yalnız təmsil edə bilməz, çünki bütün dəqiq xal üzən. 189 00:08:30,930 --> 00:08:32,500 190 00:08:32,500 --> 00:08:33,380 >> Sual 15. 191 00:08:33,380 --> 00:08:34,679 Aşağıdakı kodu düşünün. 192 00:08:34,679 --> 00:08:36,630 Biz yalnız 1 plus 1 çap edirik. 193 00:08:36,630 --> 00:08:38,289 Belə ki, burada heç bir oyun yoxdur. 194 00:08:38,289 --> 00:08:41,780 1 plus 1 2 qiymətləndirir, və sonra biz çap edirik. 195 00:08:41,780 --> 00:08:42,789 Bu yalnız 2 görüntüler. 196 00:08:42,789 --> 00:08:43,850 197 00:08:43,850 --> 00:08:44,700 >> Sual 16. 198 00:08:44,700 --> 00:08:49,450 İndi biz xarakter çap edirik 1 plus karakter 1. 199 00:08:49,450 --> 00:08:52,110 Belə ki, niyə bu deyil eyni şey çap? 200 00:08:52,110 --> 00:08:57,680 Yaxşı karakter 1 plus karakter 1, karakter 1 ASCII dəyəri 49 var. 201 00:08:57,680 --> 00:09:04,840 Belə ki, bu, həqiqətən, 49 söyləyərək plus 49, və nəticədə bu 98 çap edir. 202 00:09:04,840 --> 00:09:06,130 Belə ki, bu 2 çap deyil. 203 00:09:06,130 --> 00:09:08,070 204 00:09:08,070 --> 00:09:09,271 >> Sual 17. 205 00:09:09,271 --> 00:09:11,520 Həyata tamamlayın belə bir şəkildə aşağıda tək 206 00:09:11,520 --> 00:09:14,615 funksiyası əgər doğru qayıdır n hətta əgər n tək və yalan. 207 00:09:14,615 --> 00:09:16,710 208 00:09:16,710 --> 00:09:19,330 Bu böyük məqsədi MOD operator üçün. 209 00:09:19,330 --> 00:09:24,530 Belə ki, biz dəlil n almaq, n mod 2 quyusunun 1 bərabərdir əgər 210 00:09:24,530 --> 00:09:28,030 N bölünür deməkdir 2 bir qalan idi. 211 00:09:28,030 --> 00:09:33,270 N 2 bölünür, bir qalan idi ki, n tək, belə ki, biz doğru qayıtmaq deməkdir. 212 00:09:33,270 --> 00:09:34,910 Else biz saxta qayıtmaq. 213 00:09:34,910 --> 00:09:39,070 Siz həmçinin 2 bərabər mod n bilərdi sıfır başqa, yalan qayıtmaq doğru qayıtmaq. 214 00:09:39,070 --> 00:09:41,600 215 00:09:41,600 --> 00:09:43,640 >> Aşağıdakı recursive funksiyası düşünün. 216 00:09:43,640 --> 00:09:46,920 N Belə ki daha az və ya 1 qayıtmaq, 1 bərabər, 217 00:09:46,920 --> 00:09:50,430 n minus 1 f başqa qaytarılması n dəfə. 218 00:09:50,430 --> 00:09:52,556 Belə ki, bu funksiyası nədir? 219 00:09:52,556 --> 00:09:54,305 Bəli, bu yalnız edir faktöryel funksiyası. 220 00:09:54,305 --> 00:09:55,410 221 00:09:55,410 --> 00:09:57,405 Bu gözəl təmsil olunur n faktöryel kimi. 222 00:09:57,405 --> 00:09:58,720 223 00:09:58,720 --> 00:10:02,310 >> Belə ki, indi 19 sual, biz istəyirik Bu recursive funksiyası almaq. 224 00:10:02,310 --> 00:10:04,530 Biz iterativ etmək istəyirəm. 225 00:10:04,530 --> 00:10:05,874 Belə ki, necə biz etməliyəm? 226 00:10:05,874 --> 00:10:07,790 Yaxşı heyəti üçün həll, və yenə var 227 00:10:07,790 --> 00:10:11,090 Siz bilərdi çox yolları , biz bu int məhsul ilə başlamaq 228 00:10:11,090 --> 00:10:11,812 1 bərabərdir. 229 00:10:11,812 --> 00:10:13,520 Bu ərzində loop üçün, gedirik 230 00:10:13,520 --> 00:10:17,590 nəticədə məhsul vurulması üçün tam faktöryel ilə son. 231 00:10:17,590 --> 00:10:21,870 Int i 2 bərabərdir, belə ki, i daha az və ya n bərabər, i ++. 232 00:10:21,870 --> 00:10:24,130 >> I 2 bərabərdir nə merak bilər. 233 00:10:24,130 --> 00:10:28,380 Yaxşı, biz burada var ki, unutmayın Bizim baza halda doğru əmin olun. 234 00:10:28,380 --> 00:10:32,180 N daha az və ya bərabər olduqda belə 1, biz yalnız 1 qaytarılması edirik. 235 00:10:32,180 --> 00:10:34,830 I 2 bərabərdir burada artıq Belə ki, biz başlamaq. 236 00:10:34,830 --> 00:10:39,090 Yaxşı i 1 idi, onda the-- və ya n loop sonra, 1 olsaydı 237 00:10:39,090 --> 00:10:40,600 bütün icra deyil. 238 00:10:40,600 --> 00:10:43,190 Və belə ki, biz yalnız ki 1 olan qaytarılması məhsul. 239 00:10:43,190 --> 00:10:45,920 Eynilə, əgər n idi çox bir şey az 1-- 240 00:10:45,920 --> 00:10:49,290 Bu 0, əgər mənfi 1, whatever-- biz hələ, 1 qaytarılması olarıq 241 00:10:49,290 --> 00:10:52,260 dəqiq hansı deyil recursive versiyası edir. 242 00:10:52,260 --> 00:10:54,660 >> İndi, n böyük olduqda 1 daha sonra gedirik 243 00:10:54,660 --> 00:10:56,550 ən azı bir etmək bu loop iteration. 244 00:10:56,550 --> 00:11:00,630 Beləliklə, biz istəyirik,-nin N 5 deyək məhsul dəfə edəcəyimiz 2 bərabərdir. 245 00:11:00,630 --> 00:11:02,165 Belə ki, indi məhsul 2. 246 00:11:02,165 --> 00:11:04,040 İndi biz nə olacaq məhsul dəfə 3 bərabərdir. 247 00:11:04,040 --> 00:11:04,690 İndi 6 var. 248 00:11:04,690 --> 00:11:07,500 Product dəfə artıq 24 deyil, 4 bərabərdir. 249 00:11:07,500 --> 00:11:10,420 Product dəfə indi 120 var, 5 bərabərdir. 250 00:11:10,420 --> 00:11:16,730 Beləliklə, son nəticədə, biz qaytarılması edirik Düzgün 5 Faktorial olan 120. 251 00:11:16,730 --> 00:11:17,510 >> Sual 20. 252 00:11:17,510 --> 00:11:22,480 Bu doldurmaq üçün bir hər hansı bir alqoritmi ilə bu masa, 253 00:11:22,480 --> 00:11:25,735 biz gördük ki, bir şey ki, Bu alqoritmik run uyğun 254 00:11:25,735 --> 00:11:28,060 dəfə bu asimptotik run dəfə. 255 00:11:28,060 --> 00:11:33,270 Belə ki, bir alqoritm nə olduğunu 1 omega, lakin n böyük O nədir? 256 00:11:33,270 --> 00:11:35,970 Belə ki, sonsuz ola bilər Burada çox da cavabları. 257 00:11:35,970 --> 00:11:39,790 Biz yəqin ki, ən gördüm ki, bir tez-tez yalnız xətti axtarış edir. 258 00:11:39,790 --> 00:11:42,050 >> Ən yaxşı halda belə ssenari, biz istəyirik maddə 259 00:11:42,050 --> 00:11:44,050 axtarır edir siyahısının başlayan 260 00:11:44,050 --> 00:11:47,400 və 1 addımlar omega, biz yoxlamaq ilk şey, 261 00:11:47,400 --> 00:11:49,740 biz yalnız dərhal qayıtmaq ki, maddə aşkar. 262 00:11:49,740 --> 00:11:52,189 Ən pis halda ssenari, maddə, sonunda 263 00:11:52,189 --> 00:11:53,730 və ya maddə bütün siyahısı deyil. 264 00:11:53,730 --> 00:11:56,700 Beləliklə, biz axtarış bütün siyahısı, bütün n 265 00:11:56,700 --> 00:11:58,480 elementləri, və n o nə var. 266 00:11:58,480 --> 00:11:59,670 267 00:11:59,670 --> 00:12:04,880 >> Belə ki, indi həm də ki, bir şey var n log n omega, və n log n böyük O. 268 00:12:04,880 --> 00:12:08,650 Yaxşı ən müvafiq şey Biz burada gördüyümüz sort daxil etdik. 269 00:12:08,650 --> 00:12:12,950 Belə ki, sort, xatırlayıram birləşməsi, nəticədə Theta edir 270 00:12:12,950 --> 00:12:16,920 teta müəyyən edilir n log n omega və böyük O eyni halda. 271 00:12:16,920 --> 00:12:17,580 Həm n log n. 272 00:12:17,580 --> 00:12:18,690 273 00:12:18,690 --> 00:12:21,970 >> Omega var ki, bir şey nə var n və n kvadrat Ey? 274 00:12:21,970 --> 00:12:23,990 Bəli, yenə var çox mümkün cavab. 275 00:12:23,990 --> 00:12:26,440 Burada biz bubble növ demək nə. 276 00:12:26,440 --> 00:12:28,840 Durub sort da burada işləmək olardı. 277 00:12:28,840 --> 00:12:31,400 Ki, bubble sırala saxla ki, optimallaşdırma harada var, 278 00:12:31,400 --> 00:12:34,630 Siz əldə edə bilərlər, əgər bütün siyahısı 279 00:12:34,630 --> 00:12:37,402 nə qoymadan Hər hansı bir svopları, sonra, yaxşı, 280 00:12:37,402 --> 00:12:40,110 biz dərhal qayıda bilər siyahısı ilə başlamaq sıralanır edilib. 281 00:12:40,110 --> 00:12:43,185 , Ən yaxşı halda belə n yalnız omega var. 282 00:12:43,185 --> 00:12:45,960 Yalnız bir gözəl deyilsə ilə başlayacaq siyahısı sıralanır 283 00:12:45,960 --> 00:12:48,270 sonra biz n O mübadiləsi kvadrat var. 284 00:12:48,270 --> 00:12:49,330 285 00:12:49,330 --> 00:12:55,610 Və nəhayət, biz seçim sort var n kvadrat üçün, omega və böyük O. həm də 286 00:12:55,610 --> 00:12:56,850 >> Sual 21. 287 00:12:56,850 --> 00:12:58,870 Tam daşqın nədir? 288 00:12:58,870 --> 00:13:02,160 Yaxşı daha, daha əvvəl bənzər, biz yalnız finitely çox bit 289 00:13:02,160 --> 00:13:04,255 tam təmsil, belə ki, bəlkə 32 bit. 290 00:13:04,255 --> 00:13:06,300 291 00:13:06,300 --> 00:13:09,180 Biz imzalanmış tam var deyirlər. 292 00:13:09,180 --> 00:13:12,800 Sonra nəticədə ən yüksək müsbət sayı təmsil edə bilər 293 00:13:12,800 --> 00:13:15,910 2 üçün 31 minus 1. 294 00:13:15,910 --> 00:13:19,370 Biz cəhd nə olur sonra tam arttırmayı? 295 00:13:19,370 --> 00:13:25,320 Yaxşı, biz 31 2 getmək olacaq minus 1, aşağı mənfi 2, bütün yol 296 00:13:25,320 --> 00:13:26,490 31 üçün. 297 00:13:26,490 --> 00:13:29,470 Belə ki, bu, tam daşqın Siz incrementing saxlamaq zaman, 298 00:13:29,470 --> 00:13:32,330 və nəticədə siz bilməzsiniz hər hansı bir ali və yalnız almaq 299 00:13:32,330 --> 00:13:34,520 geri bütün yol wraps mənfi dəyər ətrafında. 300 00:13:34,520 --> 00:13:35,850 301 00:13:35,850 --> 00:13:37,779 >> Bir bufer daşqın haqqında nə? 302 00:13:37,779 --> 00:13:39,820 Belə ki, bir bufer overflow-- bufer nə xatırlayıram. 303 00:13:39,820 --> 00:13:41,000 Bu yaddaş yalnız bir yığın var. 304 00:13:41,000 --> 00:13:43,350 Bir sıra kimi bir şey bufer. 305 00:13:43,350 --> 00:13:46,120 Belə ki, bir bufer daşqın zaman Siz yaddaş daxil olmaq üçün cəhd edin 306 00:13:46,120 --> 00:13:47,880 ki, serialın sonunda kənara. 307 00:13:47,880 --> 00:13:50,410 Əgər varsa, belə ki, ölçüsü 5 və sizin array 308 00:13:50,410 --> 00:13:53,700 array bracket daxil olmaq üçün cəhd edin 5 və ya bracket 6 və ya bracket 7, 309 00:13:53,700 --> 00:13:56,610 kənarda və ya bir şey son, və ya hətta bir şey 310 00:13:56,610 --> 00:14:00,790 below-- array bracket mənfi 1-- o bütün bufer daşqınlar var. 311 00:14:00,790 --> 00:14:02,810 Siz pis yollarla yaddaş toxunan edirik. 312 00:14:02,810 --> 00:14:04,090 313 00:14:04,090 --> 00:14:04,730 >> Sual 23. 314 00:14:04,730 --> 00:14:05,760 315 00:14:05,760 --> 00:14:09,100 Sizə lazım bu bir So strlen həyata keçirmək. 316 00:14:09,100 --> 00:14:11,630 Və biz siz ki, sizə s null olmayacaq güman, 317 00:14:11,630 --> 00:14:13,790 belə ki, yoxdur null üçün hər hansı çek yoxdur. 318 00:14:13,790 --> 00:14:16,190 Və çox yolları var Bu həyata bilər. 319 00:14:16,190 --> 00:14:18,440 Burada biz yalnız sadə almaq. 320 00:14:18,440 --> 00:14:21,780 Biz n, bir counter ilə başlayın. n orada nə qədər çox simvol hesablanması. 321 00:14:21,780 --> 00:14:25,560 Belə ki, biz sonra 0 başlamaq, və bütün siyahısı üzərində təkrarlamaq. 322 00:14:25,560 --> 00:14:29,092 >> Bu bərabər s bracket 0 null terminator xarakter? 323 00:14:29,092 --> 00:14:31,425 Biz aradığınız saxla null terminator xarakter 324 00:14:31,425 --> 00:14:33,360 bizim string necə uzun müəyyən etmək üçün. 325 00:14:33,360 --> 00:14:35,890 Ki, ləğv etmək niyyətindədir hər hansı müvafiq string. 326 00:14:35,890 --> 00:14:39,400 Belə ki, s bracket bərabər 0 null terminator üçün necə? 327 00:14:39,400 --> 00:14:42,850 Bu deyil, onda biz olacaq s bracket 1, s bracket 2 baxmaq. 328 00:14:42,850 --> 00:14:45,050 Biz qədər davam null terminator tapa bilərsiniz. 329 00:14:45,050 --> 00:14:48,580 Biz bunu gördük, sonra n ehtiva simli ümumi uzunluğu, 330 00:14:48,580 --> 00:14:49,942 və biz yalnız ola bilər. 331 00:14:49,942 --> 00:14:51,180 332 00:14:51,180 --> 00:14:51,865 >> Sual 24. 333 00:14:51,865 --> 00:14:53,010 334 00:14:53,010 --> 00:14:56,050 Belə ki, bu bir olduğu ticarət off etmək lazımdır. 335 00:14:56,050 --> 00:14:59,810 Belə ki, bir şey bir yaxşı , lakin nə yol yol pis? 336 00:14:59,810 --> 00:15:02,980 Belə ki, burada, sort üçün çalışır bubble sırala daha sürətli ola bilər. 337 00:15:02,980 --> 00:15:06,530 Orada yaxşı that-- dedi edərək Çox Cavab burada. 338 00:15:06,530 --> 00:15:12,930 Amma əsas biri olduğunu bubble sort bir sorted siyahısı üçün n omega edir. 339 00:15:12,930 --> 00:15:14,950 >> Biz yalnız əvvəllər gördüm ki, masa unutmayın. 340 00:15:14,950 --> 00:15:17,600 Belə ki, bubble omega növ n, ən yaxşı ssenari 341 00:15:17,600 --> 00:15:20,010 yalnız artıq getmək edə deyil Bu liste müəyyən 342 00:15:20,010 --> 00:15:22,270 hey bu şey artıq sıralanır, və qaytarılması. 343 00:15:22,270 --> 00:15:25,960 Olursa olsun, birləşmə sort nə siz, n log n omega edir. 344 00:15:25,960 --> 00:15:29,200 Sorted siyahısı üçün, bubble belə sort sürətli olacaq. 345 00:15:29,200 --> 00:15:30,870 346 00:15:30,870 --> 00:15:32,430 >> İndi siyahıları nə haqqında bağlıdır? 347 00:15:32,430 --> 00:15:36,070 Belə ki, bir bağlı siyahı inkişaf və shrink lazım kimi çox elementləri uyğun. 348 00:15:36,070 --> 00:15:38,489 Belə that-- dedi edərək adətən birbaşa müqayisə 349 00:15:38,489 --> 00:15:40,280 bağlı olacaq bir sıra ilə sıralamaq. 350 00:15:40,280 --> 00:15:41,600 351 00:15:41,600 --> 00:15:44,050 Belə ki, seriallarda, baxmayaraq asanlıqla inkişaf və shrink 352 00:15:44,050 --> 00:15:47,130 kimi bir çox elementləri uyğun lazım, bir bağlı siyahı 353 00:15:47,130 --> 00:15:49,600 bir array an müqayisədə array təsadüfi çıxışı vardır. 354 00:15:49,600 --> 00:15:52,960 Biz hər hansı bir daxil indeksi bilərsiniz serialın xüsusi element. 355 00:15:52,960 --> 00:15:56,430 >> Belə ki, bir bağlı siyahı üçün, biz bilməz yalnız beşinci element getmək, 356 00:15:56,430 --> 00:16:00,260 Biz əvvəldən axır var biz beşinci element almaq qədər. 357 00:16:00,260 --> 00:16:03,990 Və bizi qarşısını almaq olacaq ikili axtarış kimi bir şey edir. 358 00:16:03,990 --> 00:16:08,150 Ikili axtarış danışan, ikili axtarış xətti axtarış daha sürətli olmaq üçün çalışır. 359 00:16:08,150 --> 00:16:11,120 That-- dedi edərək belə ki, bir mümkün şey 360 00:16:11,120 --> 00:16:13,380 Siz ikili edə bilməz ki, bağlı siyahıları axtarış, 361 00:16:13,380 --> 00:16:14,730 yalnız seriallarda bunu edə bilərsiniz. 362 00:16:14,730 --> 00:16:18,030 Amma yəqin ki, daha əhəmiyyətlisi, Siz ikili axtarış edə bilməz 363 00:16:18,030 --> 00:16:20,690 sıralanır deyil ki, bir sıra edir. 364 00:16:20,690 --> 00:16:23,990 Upfront sort lazımdır Bu array, yalnız və yalnız sonra bilər 365 00:16:23,990 --> 00:16:25,370 Siz ikili axtarış. 366 00:16:25,370 --> 00:16:27,660 Sizin şey deyil əgər Belə ki, ilə başlamaq sorted, 367 00:16:27,660 --> 00:16:29,250 sonra xətti axtarış daha sürətli ola bilər. 368 00:16:29,250 --> 00:16:30,620 369 00:16:30,620 --> 00:16:31,740 >> Sual 27. 370 00:16:31,740 --> 00:16:34,770 Belə ki, aşağıdakı proqram hesab, növbəti slayd olacaq. 371 00:16:34,770 --> 00:16:37,790 Bu biz olduğunuz bir aydın etmək istəyirəm olacaq 372 00:16:37,790 --> 00:16:39,980 müxtəlif dəyişənlər üçün dəyərlər. 373 00:16:39,980 --> 00:16:41,990 Belə ki baxaq. 374 00:16:41,990 --> 00:16:43,160 >> Belə bir xətt. 375 00:16:43,160 --> 00:16:45,457 Biz int x 1 bərabərdir. 376 00:16:45,457 --> 00:16:47,040 Ki, baş ki, yalnız bir şey var. 377 00:16:47,040 --> 00:16:50,440 Belə ki, xətt bir, biz görmək bizim masa, y, a, b, və tmp bütün 378 00:16:50,440 --> 00:16:51,540 blacked. 379 00:16:51,540 --> 00:16:52,280 Belə ki, x nədir? 380 00:16:52,280 --> 00:16:53,860 Yaxşı biz yalnız 1 bərabər müəyyən. 381 00:16:53,860 --> 00:16:55,020 382 00:16:55,020 --> 00:16:58,770 Və sonra, yaxşı, iki xətti biz y 2 üçün müəyyən edilir ki 383 00:16:58,770 --> 00:17:00,550 və masa artıq Bizim üçün doldurulur. 384 00:17:00,550 --> 00:17:03,040 Belə ki, x 1 və y 2-dir. 385 00:17:03,040 --> 00:17:05,890 >> İndi line üç, biz indi istəyirik mübadilə funksiyası daxilində. 386 00:17:05,890 --> 00:17:07,560 Biz nə dəyişdirmək üçün keçmək idi? 387 00:17:07,560 --> 00:17:11,609 Biz işareti x keçdi b üçün, və işareti y. 388 00:17:11,609 --> 00:17:15,160 Harada problem əvvəl ifadə x ünvanı 389 00:17:15,160 --> 00:17:17,520 0x10 və y ünvanı 0x14 edir. 390 00:17:17,520 --> 00:17:18,970 391 00:17:18,970 --> 00:17:21,909 Belə ki, bir və b bərabərdir Müvafiq 0x10 və 0x14. 392 00:17:21,909 --> 00:17:23,670 393 00:17:23,670 --> 00:17:26,250 >> İndi line üç, x və y nə var? 394 00:17:26,250 --> 00:17:28,554 Yaxşı, heç nə dəyişməyib Bu nöqtədə x və y haqqında. 395 00:17:28,554 --> 00:17:30,470 Hətta onlar baxmayaraq əsas yığını çərçivəsində daxili, 396 00:17:30,470 --> 00:17:32,469 Onlar hələ də eyni var dəyərləri əvvəl etdikləri. 397 00:17:32,469 --> 00:17:34,030 Biz hər hansı bir yaddaş redaktə yoxdur. 398 00:17:34,030 --> 00:17:35,710 Belə ki, x 1, y 2-dir. 399 00:17:35,710 --> 00:17:36,550 400 00:17:36,550 --> 00:17:37,050 Bütün hüquqlar. 401 00:17:37,050 --> 00:17:40,300 Belə ki, indi biz bir ulduz bərabər int tmp bildirib. 402 00:17:40,300 --> 00:17:44,410 Belə ki, xətt dörd, hər şey tmp istisna olmaqla eynidir. 403 00:17:44,410 --> 00:17:47,130 Biz hər hansı bir dəyərlər dəyişməyib tmp başqa bir şey. 404 00:17:47,130 --> 00:17:49,230 Biz ulduz bərabər tmp müəyyən edilir. 405 00:17:49,230 --> 00:17:50,620 Ulduz nədir? 406 00:17:50,620 --> 00:17:56,240 Yaxşı, bir xal x, Belə ki, bir ulduz 1 bərabər x gedir. 407 00:17:56,240 --> 00:18:00,080 Belə ki, hər şey kopyalanır aşağı, və tmp 1 müəyyən edilir. 408 00:18:00,080 --> 00:18:01,110 >> İndi növbəti line. 409 00:18:01,110 --> 00:18:03,380 Star ulduz b bərabərdir. 410 00:18:03,380 --> 00:18:10,000 Belə ki, xətt ilə five-- daha yaxşı, hər şey ulduz nə istisna olmaqla eynidir. 411 00:18:10,000 --> 00:18:10,830 Ulduz nədir? 412 00:18:10,830 --> 00:18:13,720 Bəli, biz yalnız ulduz x bildirib. 413 00:18:13,720 --> 00:18:16,400 Beləliklə, biz bərabər star b x dəyişən edirik. 414 00:18:16,400 --> 00:18:18,960 Star b nədir? y. y b xal. 415 00:18:18,960 --> 00:18:21,030 Belə ki, ulduz b y. 416 00:18:21,030 --> 00:18:25,140 Belə ki, biz, y x bərabər müəyyən edirik və başqa hər şey eyni. 417 00:18:25,140 --> 00:18:29,130 X indi ki, biz növbəti sıra görmək 2 və qalan yalnız aşağı kopyalanır. 418 00:18:29,130 --> 00:18:31,120 >> İndi növbəti line, ulduz b tmp bərabərdir. 419 00:18:31,120 --> 00:18:34,740 Bəli, biz yalnız ulduz b y olduğunu ifadə edərək, belə ki, biz tmp y bərabər müəyyən edirik. 420 00:18:34,740 --> 00:18:37,450 Başqa hər şey eyni, hər şey aşağı kopyalanan olur. 421 00:18:37,450 --> 00:18:42,050 Biz olan tmp bərabər y müəyyən edirik başqa bir, və hər şey eyni. 422 00:18:42,050 --> 00:18:43,210 >> İndi nəhayət, line yeddi. 423 00:18:43,210 --> 00:18:44,700 Biz geri əsas funksiyası istəyirik. 424 00:18:44,700 --> 00:18:46,350 Svop başa sonra biz istəyirik. 425 00:18:46,350 --> 00:18:48,972 Biz, b itirmiş, və tmp, lakin biz nəticədə 426 00:18:48,972 --> 00:18:51,180 hər hansı dəyərlər dəyişir deyil bu nöqtədə bir şey, 427 00:18:51,180 --> 00:18:52,800 biz yalnız x və y aşağı surəti. 428 00:18:52,800 --> 00:18:56,490 Və biz x və y var ki, görəcəksiniz İndi 2 və 1 əvəzinə 1 və 2. 429 00:18:56,490 --> 00:18:58,160 Mübadilə uğurla icra etmişdir. 430 00:18:58,160 --> 00:18:59,500 431 00:18:59,500 --> 00:19:00,105 >> Sual 28. 432 00:19:00,105 --> 00:19:01,226 433 00:19:01,226 --> 00:19:03,100 Karşılaşacağınız ki, düşünək Səhv mesajları 434 00:19:03,100 --> 00:19:06,790 ofis saat ərzində aşağıda CA və ya TF gələn il. 435 00:19:06,790 --> 00:19:08,930 Bu səhvlərin hər düzeltmek üçün necə məsləhət. 436 00:19:08,930 --> 00:19:11,160 GetString Belə undefined istinad. 437 00:19:11,160 --> 00:19:12,540 Niyə bu görmək bilər? 438 00:19:12,540 --> 00:19:15,380 Yaxşı, bir tələbə istifadə olunur Onların kodu GetString, 439 00:19:15,380 --> 00:19:20,310 Onlar düzgün cs50 daxil Hash var dot h CS50 kitabxana daxil. 440 00:19:20,310 --> 00:19:22,380 >> Yaxşı, onlar nə Bu səhvi düzəltmək üçün lazımdır? 441 00:19:22,380 --> 00:19:26,810 Onlar bir dash lcs50 nə etmək lazımdır Onlar tərtib etdiyiniz zaman command line. 442 00:19:26,810 --> 00:19:29,501 Onlar keçmək yoxdur, əgər belə cingilti dash lcs50, onlar 443 00:19:29,501 --> 00:19:32,000 faktiki var niyyətində deyil GetString həyata keçirir kodu. 444 00:19:32,000 --> 00:19:33,190 445 00:19:33,190 --> 00:19:34,170 >> Sual 29. 446 00:19:34,170 --> 00:19:36,190 Dolayısı elan kitabxana funksiyası strlen. 447 00:19:36,190 --> 00:19:37,550 448 00:19:37,550 --> 00:19:40,360 Bu artıq, onlar yoxdur müvafiq hash həyata daxildir. 449 00:19:40,360 --> 00:19:41,440 450 00:19:41,440 --> 00:19:45,410 Bu xüsusi halda, header file onlar simli dot h daxil etmək lazımdır 451 00:19:45,410 --> 00:19:48,710 və indi simli dot saat, o cümlədən İndi student-- compiler 452 00:19:48,710 --> 00:19:51,750 Bu çıxışı var strlen və bəyanatlar, 453 00:19:51,750 --> 00:19:54,120 və bilir kodunu ki düzgün strlen istifadə edir. 454 00:19:54,120 --> 00:19:55,380 455 00:19:55,380 --> 00:19:56,580 >> Sual 30. 456 00:19:56,580 --> 00:20:00,240 Daha faizi dönüşüm data dəlilləri çox. 457 00:20:00,240 --> 00:20:01,540 Belə ki, bu nədir? 458 00:20:01,540 --> 00:20:06,470 Yaxşı bu faiz unutmayın ki onlar printf üçün müvafiq ne signs--. 459 00:20:06,470 --> 00:20:08,890 Belə ki, printf biz percent-- bilər Biz bir şey çap bilər 460 00:20:08,890 --> 00:20:11,380 faiz kimi i n backslash. 461 00:20:11,380 --> 00:20:15,310 Yoxsa biz, yüzdə i kimi çap bilər kosmik, yüzdə i, kosmik, yüzdə i. 462 00:20:15,310 --> 00:20:18,950 O hər So faiz əlamətləri, biz lazım 463 00:20:18,950 --> 00:20:21,560 printf sonunda dəyişən keçmək. 464 00:20:21,560 --> 00:20:26,980 >> Beləliklə, biz demək əgər printf paren faiz i, n yaxın paren backslash 465 00:20:26,980 --> 00:20:30,270 də, biz istəyirik ki, tam çap olacaq, 466 00:20:30,270 --> 00:20:33,970 lakin sonra biz printf keçmək yoxdur bir tam həqiqətən çap etmək. 467 00:20:33,970 --> 00:20:37,182 Belə ki, burada daha çox faiz data dəlilləri çox dönüşüm? 468 00:20:37,182 --> 00:20:39,390 Ki, biz ki var faizi bütün dəstə, 469 00:20:39,390 --> 00:20:42,445 və biz kifayət qədər dəyişənlərin yoxdur həqiqətən o faizlə doldurun. 470 00:20:42,445 --> 00:20:44,850 471 00:20:44,850 --> 00:20:50,010 >> Və sonra mütləq, sual 31, mütləq bir blok 40 bayt itirdi. 472 00:20:50,010 --> 00:20:52,350 Belə ki, bu Valgrind səhv edir. 473 00:20:52,350 --> 00:20:54,720 Bu deyib haradasa kodu, 474 00:20:54,720 --> 00:20:59,010 40 bir ayrılması var bytes böyük belə ki, 40 bayt malloced 475 00:20:59,010 --> 00:21:00,515 və onu azad heç vaxt. 476 00:21:00,515 --> 00:21:02,480 477 00:21:02,480 --> 00:21:05,140 Yalnız lazımdır çox güman bir yaddaş sızıntısı tapmaq üçün, 478 00:21:05,140 --> 00:21:07,650 və sizə lazım tapmaq yaddaş bu blok azad. 479 00:21:07,650 --> 00:21:08,780 480 00:21:08,780 --> 00:21:11,910 >> Və 32 sual ölçüsü 4 etibarsız yazmaq. 481 00:21:11,910 --> 00:21:13,250 Yenə bu Valgrind səhv edir. 482 00:21:13,250 --> 00:21:15,440 Bu nə yoxdur İndi yaddaş sızması ilə. 483 00:21:15,440 --> 00:21:20,750 Bu demək likely-- ən, bu, deyil etibarsız yaddaş hüquqlarının bəzi sort. 484 00:21:20,750 --> 00:21:23,270 Və çox güman ki, bu, bəzi bufer daşqın sort. 485 00:21:23,270 --> 00:21:26,560 Harada bəlkə, bir sıra var bir tam array, və edək 486 00:21:26,560 --> 00:21:30,115 Bu ölçüsü 5 var demək, siz array bracket 5 toxunmaq cəhd edin. 487 00:21:30,115 --> 00:21:34,150 Ki, yazmaq üçün cəhd Belə ki, dəyəri yaddaş bir parça deyil 488 00:21:34,150 --> 00:21:37,440 Siz həqiqətən etmək imkanı var ki, belə ki, bu səhv almaq olacaq, 489 00:21:37,440 --> 00:21:39,272 ölçüsü 4 yalnış yazmaq deyərək. 490 00:21:39,272 --> 00:21:42,480 Valgrind etdiyiniz tanımaq gedir uyğunsuz yaddaş toxunmaq çalışırıq. 491 00:21:42,480 --> 00:21:43,980 >> Və quiz0 üçün var. 492 00:21:43,980 --> 00:21:47,065 Mən Rob Bowden deyiləm, və bu CS50 edir. 493 00:21:47,065 --> 00:21:51,104