1 00:00:00,000 --> 00:00:02,750 >> [Bölmə 9] [Daha Rahat] 2 00:00:02,750 --> 00:00:04,750 [Rob Bowden] [Harvard Universiteti] 3 00:00:04,750 --> 00:00:06,750 [Bu CS50 edir.] [CS50.TV] 4 00:00:06,750 --> 00:00:12,130 >> Bütün hüququ. Əsasən bu gün bəzi suallar bütün sizin uşaqlar var. 5 00:00:12,130 --> 00:00:15,070 Mən bəzi mövzular gezmek edə bilər 6 00:00:15,070 --> 00:00:17,570 heç bir xahiş hər hansı bir sualınız varsa bir az. 7 00:00:17,570 --> 00:00:20,660 İnşallah siz. Hər hansı bir sualınız var? 8 00:00:20,660 --> 00:00:25,220 Bəlkə keçmiş sınavlar, hər şeyi hazırda rahat deyilik. 9 00:00:34,630 --> 00:00:37,850 >> Bəli. >> [Tələbə] Siz bufer daşqın hücumları artıq getmək edə bilərəmmi? >> [Rob] Sure. 10 00:00:37,850 --> 00:00:45,530 Əsas misal həqiqətən burada ola bilər. 11 00:00:45,530 --> 00:00:48,720 Bufer daşqın hücumların arxasında əsas məşğul 12 00:00:48,720 --> 00:00:51,540 biz burada, bəzi bufer var. 13 00:00:51,540 --> 00:00:54,110 Char c - yalnız ölçüsü 12 olan - 14 00:00:54,110 --> 00:00:57,580 lakin sonra biz bufer bir şey daxil edilir 15 00:00:57,580 --> 00:01:00,050 lakin biz daxil nə qədər dəqiq yoxlanılması deyil. 16 00:01:00,050 --> 00:01:06,740 Burada C strlen (bar) daxil edilir, lakin uzun bar necə bilir. 17 00:01:06,740 --> 00:01:11,970 12 simvol artıq var, onda bu bufer daşqın gedir. 18 00:01:11,970 --> 00:01:15,830 Bu şəkil baxaraq - 19 00:01:15,830 --> 00:01:20,840 Siz 61 əgər siz layout bu növ ilə daha çox tanış olacaq 20 00:01:20,840 --> 00:01:25,760 və xilas çərçivəsində göstərici və qaytarılması ünvanı və müəssisənin gündəlik yığını ilə məşğul 21 00:01:25,760 --> 00:01:27,760 və bu faktiki şeyi. 22 00:01:27,760 --> 00:01:31,340 Amma burada yalnız biz var ki, bilmək lazımdır 23 00:01:31,340 --> 00:01:35,990 bizim bufer üçün bu kiçik kosmik. 24 00:01:35,990 --> 00:01:39,480 Burada biz c (0) var və biz belə c, 1, 2, 3, 4, 5 və var. 25 00:01:39,480 --> 00:01:44,810 Normal şəraitdə biz adi olaraq bu bufer doldurmaq olardı. 26 00:01:44,810 --> 00:01:50,480 Biz daxil əgər 'salam' biz h-e-l-l-o / 0 istiyorum, 27 00:01:50,480 --> 00:01:52,900 və sonra boş bir dəstə. 28 00:01:52,900 --> 00:01:57,910 Bir hacker üçün - oh, mən bu nümunəsidir danışarlar. 29 00:01:57,910 --> 00:02:02,470 Bir hacker üçün biz bu harada kimi bir şey almaq 30 00:02:02,470 --> 00:02:04,760 nə onlar xüsusi çalışdığınız edir 31 00:02:04,760 --> 00:02:07,890 adətən qaytarılması ünvanı yalnış düçar edər. 32 00:02:07,890 --> 00:02:12,510 Bir funksiyası zəng və sizin yığını çərçivəsində yığını üzərinə basdı olur zaman 33 00:02:12,510 --> 00:02:14,690 ki yığını çərçivəsində necə bilmək lazımdır - 34 00:02:14,690 --> 00:02:21,020 yaxşı, deyilir ki, funksiyası bu adlı funksiyası qayıtmaq üçün necə lazımdır. 35 00:02:21,020 --> 00:02:23,780 Əsas zəngləri foo Belə ki, foo, əsas qayıtmaq lazımdır 36 00:02:23,780 --> 00:02:26,300 və belə ki, bu qayıdışı ünvanı nə var. 37 00:02:26,300 --> 00:02:28,800 Amma nə hacker nə olacaq edir 38 00:02:28,800 --> 00:02:30,820 xüsusi qaytarılması ünvanı ilə yalnış 39 00:02:30,820 --> 00:02:40,090 harada yenidən - Little Indian - bu sadə deyil, lakin hər byte geri edir. 40 00:02:40,090 --> 00:02:47,300 Bu return address qədər kompüter narahatdır 41 00:02:47,300 --> 00:02:51,390 Bu ünvan dönən foo qaytarılması ekvivalent və ya əsas deyil 42 00:02:51,390 --> 00:02:53,850 və ya hər hansı funksiyası çağırıb. 43 00:02:53,850 --> 00:02:54,800 Belə ki, bu ünvana geri olacaq 44 00:02:54,800 --> 00:02:58,130 sadəcə bu ünvanı olmaq olur 45 00:02:58,130 --> 00:03:04,740 olan ya bəzən nə onlar burada nə qaytarılması ünvanı istifadə edir 46 00:03:04,740 --> 00:03:09,150 Onlar bilirlər ki, xüsusi bir funksiyası var artıq. 47 00:03:09,150 --> 00:03:12,630 Mən funksiyası adlanır nə xatırlayıram bilməz. 48 00:03:12,630 --> 00:03:14,630 Sonra bu qədər baxmaq lazımdır. 49 00:03:14,630 --> 00:03:17,570 >> Burada nə onlar yapýyorsun qaytarılması ünvan keçən edir 50 00:03:17,570 --> 00:03:26,310 yığını özü və bu bir qədər qəribə olduğu üçün 51 00:03:26,310 --> 00:03:29,530 yaddaş harada nümunələri var - 52 00:03:29,530 --> 00:03:34,350 yaddaş read-yalnız, oxumaq-yazmaq qədər split və yürütülebilir yaddaş edilə bilər 53 00:03:34,350 --> 00:03:38,710 - biz əvvəl olduğu read-yalnız yaddaş gördük yerləşir 54 00:03:38,710 --> 00:03:43,960 Mən char * s demək əgər = salam mən salam dəyişdirə bilməz. 55 00:03:43,960 --> 00:03:46,200 Ki, oxumaq yalnız var yaddaş. 56 00:03:46,200 --> 00:03:49,570 Yürütülebilir yaddaş bu fikir də var 57 00:03:49,570 --> 00:03:53,870 yürütülebilir yaddaş kodunuzu mətn seqment olardı. 58 00:03:53,870 --> 00:03:57,350 Sizin adi ünvanı kosmik layout baxanda - 59 00:03:57,350 --> 00:04:03,090 Mən yaxşı bir şəkil olacaq inanıram - 60 00:04:08,200 --> 00:04:12,170 Bu işləri - biz burada yığını var. Biz data yaddaş var. 61 00:04:12,170 --> 00:04:16,360 Əsasən bu Yoksay. Bu, bizim yığın edir. 62 00:04:16,360 --> 00:04:18,810 Və sonra biz aşağı burada, bizim əsas proqram kodu var. 63 00:04:18,810 --> 00:04:27,480 Bu, bizim * = salam char kimi strings qoymaq yerə bənzər 64 00:04:27,480 --> 00:04:29,730 ki, oxumaq yalnız var. 65 00:04:29,730 --> 00:04:33,590 Amma siz də yürütülebilir kimi bu əsas proqram kodu qeyd edə bilər. 66 00:04:33,590 --> 00:04:37,950 Və bunu edirik və ya əməliyyat sistemi yoxdur ki, əgər doğru 67 00:04:37,950 --> 00:04:40,910 sonra bu yaddaş yalnız yer olmalıdır 68 00:04:40,910 --> 00:04:44,830 kod həqiqətən həyata bilər 69 00:04:44,830 --> 00:04:48,550 olan bufer daşqın hücum bu cür biz burada o deməkdir ki, 70 00:04:48,550 --> 00:04:53,800 Bu qədər burada yığını yaddaş icra çalışır, çünki səmərəsiz olardı. 71 00:04:53,800 --> 00:04:57,230 Şəkillər ilk fark. 72 00:04:57,230 --> 00:04:59,270 Biz yığını böyüyən var. 73 00:04:59,270 --> 00:05:01,270 Burada yığını aşağı artır. 74 00:05:01,270 --> 00:05:03,270 CS50 məqsədləri üçün yığını qədər artır. 75 00:05:03,270 --> 00:05:09,520 >> Bu bufer daşqın bu xüsusi növü alt mümkündür 76 00:05:09,520 --> 00:05:15,110 qeyri-yürütülebilir regionlarda yaddaş bu yürütülebilir bölgələri olan. 77 00:05:15,110 --> 00:05:21,420 Amma bu, yalnız çox nadir hallarda yürütülebilir yaddaş yürütülebilir kimi qeyd olunur ki, baş verir. 78 00:05:21,420 --> 00:05:26,520 Bu, sadəcə, oxumaq yalnız və yenidən yazmaq lazımdır istifadə olunur ki, yalnız şeylər çalışır 79 00:05:26,520 --> 00:05:28,990 bu hələ çox səmərəli edir. 80 00:05:28,990 --> 00:05:31,950 Və burada biz istədiyiniz nə qoymaq bilər. 81 00:05:31,950 --> 00:05:35,020 Bu, faktiki olaraq 61 bu il bir Pset kimi edilməzsə, 82 00:05:35,020 --> 00:05:38,400 ancaq keçən il bu təklif və ya hər hansı əvvəlki ilin baxsaq 83 00:05:38,400 --> 00:05:44,110 bir Pset Siz xüsusi ehtimal olunur ki, burada kodunu daxil ehtimal edirik ki, 84 00:05:44,110 --> 00:05:48,960 bəzi xüsusi dəyər çap və ya fərqli bir dəyər qayıtmaq 85 00:05:48,960 --> 00:05:51,400 çap üçün ehtimal olunur ki, dəyəri. 86 00:05:51,400 --> 00:05:57,770 Və ya daha çox ağılla, siz zəng və ya yazmaq istəyir - 87 00:05:57,770 --> 00:06:03,320 , belə ki, burada qədər qayıdacaq və sonra burada bəzi coding icra edəcəyik 88 00:06:03,320 --> 00:06:09,720 və daşqınlar ağıllı sonra bu qaytarılması ünvanı olmaq üçün istifadə nə qayıdacaqlar. 89 00:06:09,720 --> 00:06:11,970 Biz bu yalnış lazım belə olsa da 90 00:06:11,970 --> 00:06:16,720 bura gəlib, biz hələ bir yerdə ki, qaytarılması ünvanı xatırlamaq 91 00:06:16,720 --> 00:06:18,890 biz, əsas və ya hər hansı qayıda bilər ki, 92 00:06:18,890 --> 00:06:23,800 biz hətta hər şeyi səhv getdi fark heç kimi və bu. 93 00:06:23,800 --> 00:06:30,100 Lakin şeyi ki, bəlkə burada daxili biz iPhone gelbroke olduğu halda belə etdi. 94 00:06:30,100 --> 00:06:35,670 Things normal kimi getmək - biz bəzi proqram run və hər şeyi qaytarılması başa kimi 95 00:06:35,670 --> 00:06:38,540 Bu qayıtmaq ehtimal nə, lakin bu vaxt 96 00:06:38,540 --> 00:06:41,820 Siz bütün əməliyyat sistemi məhv idarə. 97 00:06:41,820 --> 00:06:50,950 Siz kodu bufer daşqınlar barəsində həqiqətən faydalanaraq bilmək lazım deyil. 98 00:06:50,950 --> 00:06:58,060 Bu əsas fikir bilmək lazımdır daşdı olunur ki, bufer, 99 00:06:58,060 --> 00:07:02,010 və bu, biz yoxlanılması deyilik, çünki bu daşdı edilə bilər ki, səbəb olur 100 00:07:02,010 --> 00:07:06,110 bunun çərçivəsində həqiqətən istəyirik. 101 00:07:06,110 --> 00:07:09,880 >> [Tələbə] yalnız həddi yoxlanılması qarşısını almaq üçün həll? 102 00:07:09,880 --> 00:07:13,600 [Rob] Bəli. Bu halda həll olacaq 103 00:07:13,600 --> 00:07:20,850 bar strlen 12-1 daha böyükdür, əgər deyə bilər ya - 104 00:07:20,850 --> 00:07:24,970 Siz sonunda / 0 lazımdır, çünki - 105 00:07:24,970 --> 00:07:34,090 və ya özünüz loop üçün ki, yalnız nüsxə ilk 11 simvol bilər 106 00:07:34,090 --> 00:07:39,710 və ya, həqiqətən, siz ki, bufer daşqın deyil əmin kontrol edirik burada yalnız bir şey. 107 00:07:45,580 --> 00:07:49,050 >> Digər suallar? Bəli? 108 00:07:49,050 --> 00:07:52,760 [Tələbə] Siz çalışır və bəlkə proqramlaşdırma (Işitilemez) haqqında bir şey haqqında danışmaq olar. 109 00:07:52,760 --> 00:07:58,720 [Rob] Sure. 110 00:07:58,720 --> 00:08:03,500 Faktiki proqram - 111 00:08:03,500 --> 00:08:08,190 biz sizə imtahan trie bir həyata etmək etmək heç vaxt 112 00:08:08,190 --> 00:08:12,840 Bu hash masalar edənlərə haqsızlıq olardı. 113 00:08:12,840 --> 00:08:16,030 Və eyni sizə imtahan hash table həyata etmək heç vaxt 114 00:08:16,030 --> 00:08:18,560 Bu çalışır edənlərə haqsızlıq olardı. 115 00:08:18,560 --> 00:08:25,220 Siz bununla belə trie və ya bir hash masa struct və ya hər hansı struct bilməlidir. 116 00:08:25,220 --> 00:08:30,230 Bu, həqiqətən, biz gördük data strukturu hər hansı doğrudur. 117 00:08:30,230 --> 00:08:33,559 Əlaqəli siyahıları, dizilir skews, ikili ağacları - 118 00:08:33,559 --> 00:08:38,190 Siz ürək həmin structs müəyyən etmək lazımdır. 119 00:08:38,190 --> 00:08:44,810 A trie - Siz nə etmək lazımdır yalnız şey deməkdir ki, biz sizə verəcəyik bəlkə 120 00:08:44,810 --> 00:08:50,070 bəzi söz və ya bir şey və biz trie tikintisi demək lazımdır - 121 00:08:50,070 --> 00:08:52,870 sizə söz bəlkə bir set vermək lazımdır 122 00:08:52,870 --> 00:08:56,280 və biz bu lüğət təmsil bir trie tikintisi kimi edirik. 123 00:08:56,280 --> 00:09:05,980 >> Bizim lüğət pişik və it edək. 124 00:09:05,980 --> 00:09:10,790 Trie ideyası Biz bu serialın ilə başlamaq - 125 00:09:10,790 --> 00:09:16,510 26 slots - 126 00:09:16,510 --> 00:09:24,490 və hər slot slot faktiki index biz narahat olduğunuz məktub uyğundur. 127 00:09:24,490 --> 00:09:28,560 Belə ki, burada, biz trie daxil pişik daxil çalışdığınız əgər 128 00:09:28,560 --> 00:09:35,360 ilk xarakterli olacaq olan 'c' 'a 0, onda b 1, c 2. 129 00:09:35,360 --> 00:09:38,090 Biz ikinci indeksi daxil olacaq, 130 00:09:38,090 --> 00:09:41,100 və biz off bir trie yaratmaq olacaq. 131 00:09:41,100 --> 00:09:47,080 Biz 26 slots olacaq. 132 00:09:47,080 --> 00:09:51,140 Və sonra biz index pişik ikinci xarakter gedir. 133 00:09:51,140 --> 00:09:53,340 Bu 0 spot olacaq olan 'a' var. 134 00:09:53,340 --> 00:09:56,960 Və 26 ləkələr var olacaq. 135 00:09:56,960 --> 00:10:05,650 Sonra 't' üçün getmək və biz də enir həqiqətən cür əhəmiyyətli olan olardı 136 00:10:05,650 --> 00:10:13,990 çünki - Bu bura qədər gəlib bildirin. Burada 't' üçün trie var. 137 00:10:13,990 --> 00:10:23,370 Bu 't' 19 index edir deyirlər. 138 00:10:23,370 --> 00:10:31,020 Çalışır haqqında xatırlamaq vacib şey yalnız bu göstəricilər takip bilməz. 139 00:10:31,020 --> 00:10:35,470 Siz həmçinin bu həqiqətən bir söz sonunda olub takip lazımdır. 140 00:10:35,470 --> 00:10:38,570 Belə ki, burada daxili biz deyir ki, bayraq bir növ lazımdır 141 00:10:38,570 --> 00:10:41,520 tamam, bu həqiqətən bir söz sonu. 142 00:10:41,520 --> 00:10:46,830 Biz sonra bizim lüğət daxil fəlakətli daxil cəhd olan səbəbi 143 00:10:46,830 --> 00:10:49,930 Eyni başlayaraq 3 simvol var 144 00:10:49,930 --> 00:10:57,250 lakin daha gedir, biz bu sözün sonu olduğunu qəbul etmək lazımdır. 145 00:10:57,250 --> 00:11:01,330 Biz ca "axtarmaq üçün cəhd və ya alternativ bəlkə bir söz deyil 146 00:11:01,330 --> 00:11:06,100 lakin biz burada sonra biz aşağı almaq - 147 00:11:06,100 --> 00:11:10,270 və ya c və sonra biz bir baxmaq olardı - 148 00:11:10,270 --> 00:11:13,940 biz tanımaq lazımdır ki, bu node gələn bir göstərici var baxmayaraq 149 00:11:13,940 --> 00:11:15,940 bu sözün sonunda təmsil etmir. 150 00:11:15,940 --> 00:11:19,430 >> Belə ki, nə o deməkdirmi ki, - siz nə demək gedirdi? 151 00:11:19,430 --> 00:11:22,760 Ki, struct kimi görünür nə deməkdir? 152 00:11:22,760 --> 00:11:25,760 [Tələbə] Bu bool idi ya yox idi sonra 26 uzun və ki, göstəricilər bir sıra var. 153 00:11:25,760 --> 00:11:47,430 [Rob] Bəli. Beləliklə, biz bir struct trie * göstəricilərinə lazımdır - burada biz [26] haqqında demək lazımdır 154 00:11:47,430 --> 00:11:49,590 və sonra burada nöqtəli vergül. 155 00:11:49,590 --> 00:11:53,210 Amma Pset, biz də apostrophes üçün hesab etmək lazımdır, 156 00:11:53,210 --> 00:11:58,170 siz indeksi 27 və ya bir şey ilə Apostrof ki, ağır kodu lazım idi. 157 00:11:58,170 --> 00:12:00,440 Lakin burada biz yalnız 26 qayğı. 158 00:12:00,440 --> 00:12:11,830 Və sonra biz bəlkə bir ildə char və ya bool lazımdır - Bu söz zəng edək. 159 00:12:11,830 --> 00:12:18,120 Mən heç çalışır haqqında bilmək lazımdır deyə düşünürəm 3 şeyi 2. - 160 00:12:18,120 --> 00:12:24,370 onları tikinti, onların struct, və son şey onların run-time edir. 161 00:12:24,370 --> 00:12:28,250 Və ya bir trie axtarış - >> trie uzunluğu nədir? 162 00:12:28,250 --> 00:12:47,500 Biz k biz axtarır üçün baş sözün uzunluğu olduğu o (k) demək yerdir; 163 00:12:47,500 --> 00:12:53,850 lakin eyni zamanda biz demək - ən azı Pset 5 Speller xatirinə - deyə 164 00:12:53,850 --> 00:12:59,470 Lüğətə ən uzun söz 45 simvol, belə ki, bu əsasən 165 00:12:59,470 --> 00:13:04,900 daimi vaxt olan 45 Ç. 166 00:13:04,900 --> 00:13:09,660 Belə ki, bir üst bound sonra uzun sözü varsa - 167 00:13:09,660 --> 00:13:15,130 və ya hətta ingilis lüğət kimi - Sizin uzun sözü bir üst bound var. 168 00:13:15,130 --> 00:13:19,970 Və ya hər hansı bir lüğət - bir uzun yuxarı sözü bağlı var. 169 00:13:19,970 --> 00:13:25,480 Olursa olsun siz yapýyorsun nə daimi zaman, 170 00:13:25,480 --> 00:13:33,810 həqiqətən çalışan arasında bir fərq var demək deyil, çünki k O gözəl 171 00:13:33,810 --> 00:13:40,120 Yalnız 3 simvol sözləri olan bir əlifba qarşı 45-karakter söz. 172 00:13:40,120 --> 00:13:52,870 Ki, haqqında başqa bir şey ki, - 173 00:13:52,870 --> 00:13:57,520 oh, çünki yalnız 45 ən uzun söz olur ki, 174 00:13:57,520 --> 00:14:02,330 eyni zamanda nin alqoritm N. O deyək çünki cür silly edir 175 00:14:02,330 --> 00:14:06,510 Tamam Yaxşı, yaddaş yalnız 2 ^ 32 bayt qədər dəstəkləyir, çünki, 176 00:14:06,510 --> 00:14:11,770 sonra N ən çox 4 milyard olduğunu və niyə bir nöqtədə olan, daimi vaxt var 177 00:14:11,770 --> 00:14:14,870 bu bir üst bound var olduğu şey bu cür demək silly var 178 00:14:14,870 --> 00:14:19,540 hər şey daimi vaxt, çünki biz yalnız daimi zaman azalda bilər ki, 179 00:14:19,540 --> 00:14:22,320 ki, yol hesab zaman. 180 00:14:22,320 --> 00:14:25,470 Amma biz yəqin ki, bu, həm də qəbul edirəm. 181 00:14:25,470 --> 00:14:31,780 Hər halda ya izah O (1) siz söz üst-həmsərhəddir uzunluğu var deməkdir; 182 00:14:31,780 --> 00:14:34,070 O (k) sözü sizin uzunluğu deməkdir - 183 00:14:34,070 --> 00:14:40,900 yaxşı, k sözü uzunluğu deməkdir. 184 00:14:44,060 --> 00:14:47,280 >> Bəli. >> [Tələbə] Bu bool mu - çünki sizin trie zaman 185 00:14:47,280 --> 00:14:53,220 Siz pişik gedəcəyini və sonra növbəti göstərici getmək - bu idi kimi görünürdü 186 00:14:53,220 --> 00:14:59,860 ki, doğrudur bərabərdir əgər və sonra demək - siz t ilə kimi doğru qoymaq olardı? 187 00:14:59,860 --> 00:15:06,560 [Rob] Bu halda hesab edək siz yalnız cəhd və ilə gəlmək olar nümunələri bir çox 188 00:15:06,560 --> 00:15:12,310 sadə və / və ya ifrat nümunələri və nə ola bilər, belə ki, sözü 'bir' hesab edək. 189 00:15:12,310 --> 00:15:21,320 Bizim orijinal trie - 190 00:15:21,320 --> 00:15:35,510 biz burada 1 qoymaq istəyirik, və ya biz aşağı burada bir 1 qoymaq istəyirəm. 191 00:15:35,510 --> 00:15:41,350 Mən sonunda yəqin ki, ola / və ya ki, deyərdim. 192 00:15:41,350 --> 00:15:46,000 Mən bir səbəb hesab edə bilməz - və ya, həqiqətən, sizin wouldn't - 193 00:15:46,000 --> 00:15:51,060 Siz hətta uzaq getmək lazım deyil, çünki mən orada qoymaq deyil səbəb olur. 194 00:15:51,060 --> 00:15:55,820 Biz bu trie ayırmaq lazımdır heç vaxt. 195 00:15:55,820 --> 00:15:57,950 Biz yalnız orada 1 qoydu. 196 00:15:57,950 --> 00:16:03,310 Bu hələ null işarə edir. 197 00:16:03,310 --> 00:16:09,430 Biz yalnız bir simvol olacaq əgər 198 00:16:09,430 --> 00:16:17,220 yalnız istifadə kimi məktub işarələmək üçün başqa trie aşağı genişləndirmək üçün heç bir səbəb yoxdur. 199 00:16:17,220 --> 00:16:21,260 Eynilə, biz 'bir' orada qoyduğu əgər 200 00:16:21,260 --> 00:16:27,860 sonra mütləq bütün bunlar yalnız bütün dövrlərdə 0 olardı. 201 00:16:27,860 --> 00:16:36,060 >> [Tələbə] Amma biz bu 'bir' qeyd edir ki, bir başlanğıc trie ehtiyac yoxdur? 202 00:16:36,060 --> 00:16:43,570 [Rob] Biz bir qlobal və ya bir şey struct trie * t 203 00:16:43,570 --> 00:16:47,270 burada işarə, lakin yalnız bir göstərici var. 204 00:16:47,270 --> 00:16:51,500 Bu işarə ki, bir tam partladılmış trie deyil. 205 00:16:51,500 --> 00:17:02,000 [Tələbə] Okay. Sözü mən - Necə biz məktub 'i'təyin edərdi? 206 00:17:02,000 --> 00:17:06,380 [Rob] Onun sual ki, cavab bilər. Tutun. 207 00:17:06,380 --> 00:17:15,060 - Yəni bir məsələ olduğu və özü bir trie edir 208 00:17:15,060 --> 00:17:17,880 Mən Pset bunu yazılı olardı yol bilmirəm. 209 00:17:17,880 --> 00:17:19,880 Əvvəlki struct pis idi. 210 00:17:19,880 --> 00:17:41,690 Və bir pointer - Amma biz də struct node bir bool deyil edə bilər - 211 00:17:41,690 --> 00:17:46,500 Siz onu yazmaq bilər çox yolları həqiqətən var. 212 00:17:46,500 --> 00:18:01,800 Alternativ olaraq bir trie bir struct olmaq lazım deyil. 213 00:18:01,800 --> 00:18:21,250 * Typedef node - hətta trie ola bilər - 214 00:18:21,250 --> 00:18:34,760 node [26] bir trie edir və bu struct artıq. 215 00:18:34,760 --> 00:18:44,270 Pset siz gözlənilir ki, yol hesab üçün çalışırıq Ben - indi var olacaq. 216 00:18:44,270 --> 00:18:47,650 [Tələbə] Mən baxış iclası çəkdi və mən yalnız getmək edirəm - 217 00:18:47,650 --> 00:18:50,670 kimi bir bir sonra növbəti getmək varsa - >> [Rob] Yəni, onlar bunu necə var? 218 00:18:50,670 --> 00:18:53,750 [Tələbə] Və sonra əsl var, əgər bu iş deyil - 219 00:18:53,750 --> 00:18:58,710 [Rob] Bəli. Ki, iş yoxdur. Bu yer tullantılar - 220 00:18:58,710 --> 00:19:03,910 Siz mütləq siz ilk növbədə lazım deyil ki, trie bütün digər səviyyədə var. 221 00:19:03,910 --> 00:19:08,410 Burada hər çirkin əldə - 222 00:19:08,410 --> 00:19:11,530 əsasən nə mən burada çalışıram asılı deyil - 223 00:19:11,530 --> 00:19:15,000 yerine çalışır 26 göstəricilərinə olan, 224 00:19:15,000 --> 00:19:20,810 belə 26 bool pointer, bool pointer, bool pointer, və var. 225 00:19:28,940 --> 00:19:34,410 >> [Tələbə] Siz ki, 2 serialların edə bilməz? Bools və göstəricilər bir sıra bir array? 226 00:19:34,410 --> 00:19:38,060 [Rob] Siz ancaq sonra etmək lazımdır istədiyiniz bilər - 227 00:19:38,060 --> 00:19:41,500 Booleans və göstəricilər 2 Diziler. 228 00:19:41,500 --> 00:19:47,340 Daha sonra Booleans sizin array qurmaq lazımdır - 229 00:19:47,340 --> 00:19:51,240 Booleans sizin array trie kimi böyük olmalıdır 230 00:19:51,240 --> 00:19:53,200 Siz yalnız 26 booleans ola bilməz, çünki. 231 00:19:53,200 --> 00:19:57,010 Hər bir mümkün inkişaf var - 232 00:19:57,010 --> 00:20:03,240 kimi trie 26-dan artıq doğru və ya yalan mümkün sözləri var. 233 00:20:03,240 --> 00:20:08,240 Bu noktada, onlar həmçinin, yalnız trie ilə aşağı artır ki, bir struct ola bilər. 234 00:20:08,240 --> 00:20:15,210 Mən burada nə istəyirsiniz - çünki bu doğru görünmür? 235 00:20:15,210 --> 00:20:23,640 Belə ki, trie * t - 236 00:20:23,640 --> 00:20:30,200 Siz typedef (node ​​*) [26] trie edə bilərsiniz; 237 00:20:30,200 --> 00:20:33,090 mən arıyorum syntax ola bilər. 238 00:20:36,740 --> 00:20:41,450 Və bu, yalnız müntəzəm trie olmalıdır. 239 00:20:44,900 --> 00:20:47,440 Mən əmin deyiləm. 240 00:20:47,440 --> 00:20:54,850 Amma ki, biz nəzərdən bunu yolu, belə ki, çox, mükəmməl gözəl işləyir. 241 00:20:54,850 --> 00:20:57,850 Bu deyil, əgər bu halda yalnız bool söz və sonra 26 bir sıra 242 00:20:57,850 --> 00:21:01,750 sonra növbəti səviyyəsi getmək üçün var. 243 00:21:01,750 --> 00:21:05,420 Mən bunu istəyirəm yolu haqqında düşünmək lazımdır. 244 00:21:07,500 --> 00:21:09,550 >> Digər suallar? 245 00:21:09,550 --> 00:21:12,540 [Tələbə] Mən başqa bir şey haqqında sual edə bilərəmmi? >> [Rob] Bəli. 246 00:21:12,540 --> 00:21:19,040 [Tələbə] Siz fərq nə üzərində getmək olarmı və zaman Ajax qarşı jQuery istifadə edin? 247 00:21:19,040 --> 00:21:24,550 [Rob] Onlar tamamilə fərqli və özləri edir. 248 00:21:24,550 --> 00:21:32,720 JQuery Ajax imkan vermir. Bu, bizə Ajax bəzi asan istifadə vermək yoxdur. 249 00:21:32,720 --> 00:21:38,480 Amma Ajax JavaScript sövq gəlir. JavaScript Ajax imkanları var. 250 00:21:38,480 --> 00:21:47,490 Mən istəyirəm zaman mən bir səhifə artıq Ben və oxşatmaq Ajax deməkdir Bütün - 251 00:21:47,490 --> 00:21:52,820 Mən bir şey basın zaman yeni məlumat yükləmək üçün səhifə yeniden ehtiyac yoxdur. 252 00:21:52,820 --> 00:21:55,020 Mən yalnız yeni məlumat tələb. 253 00:21:55,020 --> 00:22:01,220 Siz Facebook və ya bir şey baxmaq olar. 254 00:22:01,220 --> 00:22:05,580 Şəbəkə Inspect. 255 00:22:05,580 --> 00:22:07,460 Bu Shrink. 256 00:22:12,070 --> 00:22:14,940 Down burada biz bütün bu sorğu əldə etdiyiniz görürük. 257 00:22:14,940 --> 00:22:18,990 İndi basın zaman - Mən hətta bir şey basın əvvəl də, bu, Ajax edir. 258 00:22:18,990 --> 00:22:24,140 Mən bu basın əgər Lakin, o, aşağı burada sorğuların dəstə etmək olacaq 259 00:22:24,140 --> 00:22:33,530 yalnız bu sorğu edilməsi, - oh, indi artıq burada. 260 00:22:33,530 --> 00:22:36,590 Nin canlandıraq. 261 00:22:36,590 --> 00:22:38,580 Daha bunu. 262 00:22:38,580 --> 00:22:42,090 Biz bütün bu sorğu almaq ki, bax, lakin bu hələ də səhifə loading prosesində ola bilər. 263 00:22:42,090 --> 00:22:47,400 Facebook səhifə yüklü sonra da bu daimi sorğu edir bildiriş. 264 00:22:47,400 --> 00:22:51,470 Burada basın əgər, bəzi data bir daha sorğu etmək lazımdır 265 00:22:51,470 --> 00:22:54,990 Mən yalnız tıklayan şey cavab edir. 266 00:22:54,990 --> 00:23:04,660 Ajax yalnız nə var. Bu ilk səhifə ilə yükləmək deyil ki, məlumat üçün çəkmək imkan verir. 267 00:23:04,660 --> 00:23:12,050 >> JQuery ayrı. JQuery asan bir çox şeyi edir ki, yalnız bir JavaScript kitabxana. 268 00:23:12,050 --> 00:23:28,660 JQuery ilə bu üstünlüyü bir çox bu yalnız edir - 269 00:23:28,660 --> 00:23:34,030 dollar işarəsi - dollar işarəsi JavaScript cari dəyişən deyil. 270 00:23:34,030 --> 00:23:43,460 Belə ki, jQuery - bunu bütün kimi söyləyərək var $ = heyəti bütün dəstə - 271 00:23:43,460 --> 00:23:46,690 bütün bu məhsulları ilə bəzi böyük funksiyası kimi - 272 00:23:46,690 --> 00:23:52,650 və sonra kimi yolları ki, dollar işarəsi istifadə 273 00:23:52,650 --> 00:24:23,940 $ ("# Footer"). Stil ("text-align", "center"). 274 00:24:23,940 --> 00:24:32,330 JQuery bizə bir böyük üstünlüyü sintaksis bu növ verir - 275 00:24:32,330 --> 00:24:35,650 digər xüsusiyyətləri vardır, lakin biz sizə ən diqqət istəyirəm nə 276 00:24:35,650 --> 00:24:38,760 yalnız bu kimi elementləri seçin edə olunur. 277 00:24:38,760 --> 00:24:42,780 Müntəzəm, düz-köhnə JavaScript sizin kimi şeylər edə bilərsiniz 278 00:24:42,780 --> 00:24:50,490 ID footer-dot ilə element sənəd-dot-almaq - Mən bu nöqtədə nə bilmirəm - 279 00:24:50,490 --> 00:24:52,790 CSS və ya stil və ya bir şey haqqında bir şey - 280 00:24:52,790 --> 00:24:58,930 lakin sonra alternativ olaraq, biz sinif seçin istədiklərini deyirlər. 281 00:24:58,930 --> 00:25:06,330 İndi biz bu üslubu ilə bir sinif footer ilə hər şeyi üslubu. 282 00:25:06,330 --> 00:25:16,070 Biz hər hansı bir Stil ci maddələrdə istəyirdi, hətta əgər. 283 00:25:16,070 --> 00:25:22,000 Belə ki, bu selector - Bu kimi DOM şeyi seçə bilərsiniz olan olduqca rahat 284 00:25:22,000 --> 00:25:29,420 düz köhnə JavaScript sinif adı ilə sənəd-dot-almaq elementləri etmək olardı ildən 285 00:25:29,420 --> 00:25:34,260 və ya nə və ya Mən bir tag istəyirdi, mən tag adı ilə elementləri almaq demək lazımdır istədiyiniz. 286 00:25:34,260 --> 00:25:37,530 Belə ki, mən bu şeyi bütün daxil olan xüsusi yollarını bilmək lazımdır. 287 00:25:37,530 --> 00:25:40,810 Funksiyaları Mən bir sinif və ya ID istifadə edirəm asılı olaraq müxtəlif olacaq 288 00:25:40,810 --> 00:25:46,420 və ya bir tag və ya nə, jQuery yalnız mənim üçün ki, yoxdur halbuki. 289 00:25:46,420 --> 00:25:53,120 >> [Tələbə] jQuery bu səhifənin ilkin üslubu bunu etdiyiniz zaman istifadə edilə gedir? 290 00:25:53,120 --> 00:25:56,570 Və ya üslubu dəyişdirmək üçün artıq var sonra - >> [Rob] onu dəyişdirmək üçün. 291 00:25:56,570 --> 00:25:58,440 [Tələbə] artıq yüklənmiş oldu sonra. >> [Rob] Bəli. 292 00:25:58,440 --> 00:26:07,020 Hər hansı bir ilkin üslubu - yaxşı, hətta - 293 00:26:07,020 --> 00:26:09,970 ümumiyyətlə dəyişmə bu cür istifadə edir. 294 00:26:09,970 --> 00:26:14,330 Siz dəyişə bilməz - bu mükəmməl gözəl iş olardı. 295 00:26:14,330 --> 00:26:17,720 Amma adətən bu kimi stil dəyişə bilməz. 296 00:26:17,720 --> 00:26:20,610 Bunun yerine, yeni bir sinif və ya bir şey vermək istədiyiniz 297 00:26:20,610 --> 00:26:24,650 CSS artıq müəyyən bir şəkildə ki, sinif üçün müəyyən edilmişdir, halbuki. 298 00:26:24,650 --> 00:26:28,920 Bu maddələr verərək yeni bir sinif seçilməsi alıram 299 00:26:28,920 --> 00:26:32,200 Mən artıq nazil edilmişdir ki, üslub tətbiq edirəm. 300 00:26:32,200 --> 00:26:36,720 [Tələbə] Beləliklə, siz onay bir neçə və seçdiyiniz ki, hər şeyi seçin 301 00:26:36,720 --> 00:26:41,820 yeni bir stil dəyişdirmək və müxtəlif axtarır başlayın. >> [Rob] Bəli. 302 00:26:41,820 --> 00:26:45,490 Haqqında xatırlamaq başqa şeylər - 303 00:26:45,490 --> 00:26:48,350 yaxşı, siz jQuery haqqında xatırlamaq lazımdır bir neçə funksiyaları var. 304 00:26:48,350 --> 00:26:55,570 Biz ID P. ilə bir şey seçilməsi demək edək 305 00:26:55,570 --> 00:27:00,500 >> [Tələbə] Siz həmişə funt istifadə etmək varmı? 306 00:27:00,500 --> 00:27:09,600 [Rob] Bu ID deməkdir. Bu CSS ekvivalent, belə ki, CSS seçiciler - bu ilham edir. 307 00:27:09,600 --> 00:27:12,410 Harada bir footer stil etmək istəyirdi əgər CSS - 308 00:27:12,410 --> 00:27:16,950 və ya ID footer ilə bir şey - 309 00:27:16,950 --> 00:27:23,490 Bu text-align kimi olacaq: mərkəzi; 310 00:27:23,490 --> 00:27:28,820 Siz imtahan CSS yazmaq lazım deyil, ancaq seçiciler bilmək lazımdır. 311 00:27:28,820 --> 00:27:34,280 Onu oxumaq üçün necə bilmək lazımdır - Siz nə bilmək lazımdır. 312 00:27:34,280 --> 00:27:36,000 Amma biz heç vaxt - 313 00:27:36,000 --> 00:27:42,390 Siz müxtəlif mümkün üslubu şeyi yadda ehtiyac yoxdur. Və ya onların hər hansı. 314 00:27:42,390 --> 00:27:50,020 >> JQuery şey xatırlamaq lazımdır - 315 00:27:50,020 --> 00:27:58,380 Siz dot-HTML, və jQuery ümumi model xatırlamaq lazımdır - bu yenidən yazmaq imkan verir. 316 00:27:58,380 --> 00:28:09,640 A ümumi model biz ("# f") $ var. Html 317 00:28:09,640 --> 00:28:15,650 Mən yalnız düz parantez qoymaq əgər ki, HTML almaq deməkdir; 318 00:28:15,650 --> 00:28:23,870 halbuki mən HTML demək və burada mən istəyirəm nə qoymaq əgər - bir şey üçün bəzi link - 319 00:28:23,870 --> 00:28:30,410 Bu mötərizə daxilində bir şey qoyaraq artıq HTML edir. 320 00:28:30,410 --> 00:28:33,760 Funksiyaları bir dəstə arasında olduqca ümumi var. 321 00:28:33,760 --> 00:28:38,360 Mətn ilə eyni şey var. 322 00:28:38,360 --> 00:28:41,720 HTML və mətn arasında fərq mətn bu daxil etmək üçün gedir ki, 323 00:28:41,720 --> 00:28:46,350 kimi hərfi az-çox, daha çox-çox əvəzinə bir anker tag kimi. 324 00:28:46,350 --> 00:28:53,000 Və mətn yalnız bunu, eyni olacaq. 325 00:28:53,000 --> 00:28:55,760 Deyil sənədin HTML - Bu sənədin mətni almaq olacaq 326 00:28:55,760 --> 00:29:01,810 lakin bu element ərzində yalnız mətn. 327 00:29:01,810 --> 00:29:08,430 'F' bir giriş üçün ID olmaq olur başqa biridir, 328 00:29:08,430 --> 00:29:14,250 sonra-f-dot-val hash - Mən kimi bir şey üçün giriş qurmaq istəyirsinizsə - 329 00:29:14,250 --> 00:29:17,900 mən bir onay hit deyək və mən bir default dəyəri qurmaq istəyirik - 330 00:29:17,900 --> 00:29:26,070 dot-val - 3 - - Mən hətta bilmirəm ki, avtomatik olaraq mətn qutusunda 3 daxil daxil olacaq, 331 00:29:26,070 --> 00:29:35,980 I 3-dot-val demək əgər ki, mənim üçün, mətn qutusuna hazırda nə geri olacaq. 332 00:29:35,980 --> 00:29:39,690 >> Bu formu doğrulama üçün faydalı olduğu 333 00:29:39,690 --> 00:29:48,030 Mən yalnız onlar həqiqətən şeyi doldurulmuş əmin etmək istəyirsinizsə. 334 00:29:48,030 --> 00:29:54,710 Mən təqdim edib sonra qaçılmaz server bəzi səhifəsinə göndərilə əgər bunu bir yoldur - 335 00:29:54,710 --> 00:30:00,190 kimi bizim üçün PHP olacaq - və ki, data emal cəhd və deyərdim 336 00:30:00,190 --> 00:30:03,030 indi deyir ki, bir səhifə onları yönləndirən onlar, bir şey doldurun etməyib 337 00:30:03,030 --> 00:30:05,050 Siz hər şeyi doldurmaq etməyib. 338 00:30:05,050 --> 00:30:11,650 Əvəzində bunu olan val boş olduqda, JavaScript / jQuery yalnız bilərsiniz. 339 00:30:11,650 --> 00:30:17,270 Boş quotes - və ya val edir. 340 00:30:17,270 --> 00:30:23,120 Indi biz bu sahəyə doldurun etməyib ki, onlara xəbərdarlıq edə bilər - yalnız olacaq. 341 00:30:23,120 --> 00:30:26,990 Qaçılmaz siz PHP server-side yoxlanılması etmək lazımdır, çünki 342 00:30:26,990 --> 00:30:31,210 Siz yalnız bütün brauzerlərdə JavaScript aradan bırakabilirsiniz. 343 00:30:31,210 --> 00:30:36,180 Amma JavaScript, bu aktiv var olanlar üçün rahat edir 344 00:30:36,180 --> 00:30:42,940 və brauzerlər faktiki olaraq doxsan doqquz-point-bir şey faiz indi onu var. 345 00:30:42,940 --> 00:30:46,630 Çox az adam JavaScript söndürmək. 346 00:30:46,630 --> 00:30:52,850 Bu istifadəçi rahatlığı edir. Siz PHP qiymətləndirmə etmək lazımdır. 347 00:30:52,850 --> 00:30:55,990 Siz JavaScript qiymətləndirmə etməlidir. 348 00:30:55,990 --> 00:30:57,950 >> [Tələbə] # f burada nə aid deyil? 349 00:30:57,950 --> 00:31:00,020 [Rob] # f hansı aid deyil? 350 00:31:00,020 --> 00:31:04,350 ID 'f' ilə sənədin bəzi element var. 351 00:31:04,350 --> 00:31:09,850 Biz baxmaq lazımdır - yəqin ki, Facebook nümunələri çox olduğu elementlərin gəlmək əgər 352 00:31:09,850 --> 00:31:17,820 elementləri tag altında burada axtarır Mən burada qeyd olunur ki, bu div bax - 353 00:31:17,820 --> 00:31:22,670 və ya bütün səhifə - Bəli, bu qədər var. Bu ID pagelet_bluebar var. 354 00:31:22,670 --> 00:31:26,730 Konsol I jQuery istifadə etdiyiniz güman. 355 00:31:26,730 --> 00:31:40,030 Belə ki, o seçir mən pagelet_bluebar seçin bilər, və mən səhv etdim. 356 00:31:46,470 --> 00:31:52,250 Nin cəhd edək - və ya bəlkə onlar jQuery və xarakter başqa bir şey eşlenen istifadə olunur. 357 00:31:52,250 --> 00:32:04,970 Bilirəm bir şey daha yaxşı nümunə jQuery istifadə edir - 358 00:32:04,970 --> 00:32:10,600 hələ də burada bizim elementləri baxaraq - biz burada sinif navbar bərabərdir. 359 00:32:10,600 --> 00:32:12,330 Bu sinif Navbar'da ilə bir şeydir, 360 00:32:12,330 --> 00:32:19,180 belə ki, bizim konsol daxilində biz sinif Navbar'da ilə şey arayabilirsiniz. 361 00:32:19,180 --> 00:32:21,770 Burada biz bu artıq hərəkət və bu nə görə bilərsiniz. 362 00:32:21,770 --> 00:32:29,850 Mən etmək istəyirdi. Mətn ki, bu mətn, belə ki, mən log yuxarıda hesabat üçün parametrləri görmək 363 00:32:29,850 --> 00:32:35,760 Burada əsasən bütün, lakin hələ ki, HTML tag ərzində mətn var olan. 364 00:32:35,760 --> 00:32:52,230 Mən yalnız bir link HTML təyin edə bilər 365 00:32:52,230 --> 00:32:56,550 mən bar qurtarmaq lazımdır. İndi ki, YouTube bağlı oldu tamamilə yalnız belə mövzu xilas. 366 00:32:56,550 --> 00:32:59,630 >> Və hər hansı bir formada misal var? 367 00:32:59,630 --> 00:33:01,940 Burada bir forması var. 368 00:33:01,940 --> 00:33:05,830 Mən sağ-basın və burada ona gəlib element yoxlayacaq bilər. 369 00:33:05,830 --> 00:33:08,460 Mən onun ID mətn axtarış olduğunu görmək, 370 00:33:08,460 --> 00:33:16,910 belə aşağı burada ID mətn axtarış edə əgər. 371 00:33:16,910 --> 00:33:23,190 Mən artıq gətirmək lazımdır və mən ki, mən üçün axtarış edilmişdir düzgün şey görmək. 372 00:33:23,190 --> 00:33:27,670 Mən. Val etmək istəyirsinizsə, mən orada tipli nə mənə verəcək. 373 00:33:27,670 --> 00:33:36,010 Mən etmək istəyirdi salam bu salam burada onu dəyişdirmək lazımdır - jQuery. 374 00:33:36,010 --> 00:33:45,780 Təbii ki ID document.get element kimi gülünc edə bilər - mətn axtarış - 375 00:33:45,780 --> 00:33:54,000 Mən hətta bu nöqtədə nə bilmirəm - dot dəyəri - xeyr, mən ki, oğlan unuttum. 376 00:33:54,000 --> 00:33:59,110 Belə ki, salam var. Mən bir şey bərabərdir müəyyən istədiyiniz necə bilmirəm. 377 00:33:59,110 --> 00:34:00,930 Bəli, belə ki, dəyişdi. 378 00:34:00,930 --> 00:34:07,510 Amma bu point istifadə jQuery bu və bir çox saytlarda istifadə etmək üçün ehtiyac yoxdur. 379 00:34:07,510 --> 00:34:13,050 Hətta yekun layihə kimi - ilk şey - bir web layihə edirik, əgər 380 00:34:13,050 --> 00:34:20,030 Mən sizə bütün bu funksiyaları rahatlığı əldə edə bilərsiniz, belə ki, yalnız jQuery daxil edir gəlir. 381 00:34:22,580 --> 00:34:27,750 >> [Tələbə] Mən DOM istifadə edərək, bir element almaq üçün fərqli bir yol gördüm edirəm. 382 00:34:27,750 --> 00:34:32,520 Siz dot istifadə və sonra aşağı davam etmək lazımdır? 383 00:34:32,520 --> 00:34:36,630 [Rob] Siz bunu edə bilərsiniz. Bu, çox yaxşı olardı əgər mən bilmirəm. 384 00:34:36,630 --> 00:34:38,900 Bu yolu getmək çətindir. 385 00:34:38,900 --> 00:34:43,179 Bir nümunəsidir - biz hər hansı bir forma var əgər mən hətta bilmirəm - 386 00:34:43,179 --> 00:34:48,940 lakin document.forms Bu səhifədə ki formalarının siyahısını qayıtmaq üçün gedir, 387 00:34:48,940 --> 00:34:55,070 sonra 0 ilk forması olacaq document.forms edə bilərsiniz. 388 00:34:55,070 --> 00:35:03,070 Dot - Mən ki, adlı etdik nə bilmirəm - belə ki, hətta bir adı yoxdur, 389 00:35:03,070 --> 00:35:08,050 belə ki, bəlkə giriş işləyəcək. No 390 00:35:08,050 --> 00:35:11,050 Mən hətta bu almaq üçün necə bilmirəm - element-I-tag adı daxil almaq. 391 00:35:11,050 --> 00:35:23,630 Bəli, mənə daxil verdi və indi 0 giriş istəyirəm 392 00:35:23,630 --> 00:35:31,320 və mən onun dəyər seçin istəyirəm, belə ki, mətn olacaq. 393 00:35:31,320 --> 00:35:33,890 Mən hər halda tag adı ilə get elementləri bunu başa idi. 394 00:35:33,890 --> 00:35:36,210 Birbaşa seçin bəzi yol ola bilər 395 00:35:36,210 --> 00:35:43,480 Mən yalnız tags giriş adlı almaq üçün idi kimi forma 0, lakin bu barədə gözəl şey vasitəsilə hələ də 396 00:35:43,480 --> 00:35:49,880 ki, bu formada bir uşaq idi, əks halda mən yalnız ki, əgər düz ön up 397 00:35:49,880 --> 00:35:56,680 Bu bütün sənədin bütün səhifədəki bütün elementləri seçin olardı 398 00:35:56,680 --> 00:36:00,580 əvəzinə yalnız forma və yəqin ki, hətta mən istəyirəm olmayacaq. 399 00:36:00,580 --> 00:36:06,180 Mən hətta olan bir bilmirəm. Bilmirəm. 400 00:36:06,180 --> 00:36:13,450 Mən bizim səhifədə ilk giriş element bu kiçik qutusu danışarlar. 401 00:36:13,450 --> 00:36:20,450 >> [Tələbə] Bu olduqca olmayan 402 00:36:20,450 --> 00:36:27,420 və bəlkə cür silly, lakin cavab açarı bu PHP deyir - 403 00:36:27,420 --> 00:36:35,660 Mən cavab düyməsi və ya qeydlər olub bilmirəm, lakin bu PHP server-side deyir 404 00:36:35,660 --> 00:36:39,590 və JavaScript klient edir. 2 arasında fərq nədir? 405 00:36:39,590 --> 00:36:45,550 [Rob] JavaScript klient və PHP server-yan arasında fərq. 406 00:36:45,550 --> 00:36:51,890 Sizcə əvvəl slash / istifadə node js eşitmişəm ki, əgər 407 00:36:51,890 --> 00:36:56,280 JavaScript yalnız klient deyil, CS50 məqsədləri üçün bu - 408 00:36:56,280 --> 00:36:59,340 və ya ən azı bu viktorina nin məqsədləri üçün deyil. 409 00:36:59,340 --> 00:37:03,800 PHP server-side olan. No JavaScript. 410 00:37:03,800 --> 00:37:08,700 Siz web yazmaq zaman server PHP yazılı olacaq. 411 00:37:08,700 --> 00:37:11,670 Siz server JavaScript yazılı heç vaxt. 412 00:37:11,670 --> 00:37:17,190 JavaScript JavaScript kodu icra etdiyi brauzer göndərilən əldə qədər başa çatır. 413 00:37:17,190 --> 00:37:22,250 Və JavaScript kodu istəyirəm, çünki başqa brauzer yaşamaq lazımdır 414 00:37:22,250 --> 00:37:25,830 yalnız bu tıklayarak kimi JavaScript-y şey bir sort, nə 415 00:37:25,830 --> 00:37:31,720 Mən səhifəni yenidən deyiləm. Bu, mənim üçün yalnız JavaScript yenidən format şeylər. 416 00:37:31,720 --> 00:37:36,490 JavaScript server yaşamış, onda mən istər-istəməz bir şey tələb etmək lazımdır 417 00:37:36,490 --> 00:37:39,490 server nə bilmək. 418 00:37:39,490 --> 00:37:45,380 PHP - brauzer PHP kimi bir şey yoxdur. 419 00:37:45,380 --> 00:37:52,090 Mən bir səhifə tələb zaman - belə ki, burada mən bu səhifəni tələb deyək. 420 00:37:52,090 --> 00:37:57,270 Bu tələb edir o deməkdir ki, - 421 00:37:57,270 --> 00:38:04,270 Yenile - bu səhifəni yenileyin olacaq - 422 00:38:04,270 --> 00:38:07,210 bu tələbi yerinə bizim server gedir. 423 00:38:07,210 --> 00:38:13,190 Bu, bu şəxsiyyət vəsiqəsi ilə bu mövzu qayıtmaq lazımdır ki, görür 424 00:38:13,190 --> 00:38:23,740 belə ki, indi ki, PHP tərcüməçi that page şərh edir ki, bəzi PHP olacaq 425 00:38:23,740 --> 00:38:28,680 və yalnız HTML, CSS, bəlkə JavaScript, nə onu çevirmək. 426 00:38:28,680 --> 00:38:36,930 Bu tələbi emal və mətn və məhsullarının bütün alır ki, PHP var 427 00:38:36,930 --> 00:38:39,170 Mən, həqiqətən, verilənlər bazası üçün baxıram. 428 00:38:39,170 --> 00:38:44,750 Amma nə server yarpağı yalnız HTML / JS / CSS edir. 429 00:38:44,750 --> 00:38:48,630 Server yarpağı olan heç bir PHP var ki, həqiqətən əgər, çünki 430 00:38:48,630 --> 00:38:53,890 sonra browser nə PHP nə deyil, çünki onunla nə heç bir fikrim yoxdur olardı. 431 00:38:53,890 --> 00:39:00,250 Amma eyni düşüncə JavaScript, klient, çünki 432 00:39:00,250 --> 00:39:02,250 onu MySQL daxil bilməz. 433 00:39:02,250 --> 00:39:07,430 PHP server-side, çünki onu MySQL daxil yoxdur. 434 00:39:07,430 --> 00:39:12,880 >> [Tələbə] Siz HTTP cookies ilə təhlükəsizlik narahatlıqları bir artıq getmək edə bilərəmmi? 435 00:39:12,880 --> 00:39:18,390 [Rob] Bu biz bilmək lazımdır olacaq şeylər deyil. 436 00:39:18,390 --> 00:39:24,500 HTTP cookies ilə təhlükəsizlik narahatlıq bəzi. 437 00:39:24,500 --> 00:39:28,550 Burada böyük sual mənim cookie PHP / ID ki, burada görürük. 438 00:39:28,550 --> 00:39:33,560 Bu universal PHP sizin sessiya kimi. 439 00:39:33,560 --> 00:39:39,550 Sizin sessiya PHP daxilində təsdiq etmək lazımdır heç vaxt ki, bir şey deyil 440 00:39:39,550 --> 00:39:45,690 Bu sessiya üzərində tam nəzarət var ki, server, çünki. 441 00:39:45,690 --> 00:39:47,690 Siz bütün bu toxuna bilməz. 442 00:39:47,690 --> 00:39:53,120 Amma bu cookie var - bu bir - 443 00:39:53,120 --> 00:39:57,500 və mən istifadə etmək istəyirdi əgər indi mənim kimi daxil bilər tahmin - 444 00:39:57,500 --> 00:40:06,610 qaçılmaz siz server üçün bir sorğu etmək - lakin bu ki, cookie var. 445 00:40:06,610 --> 00:40:09,890 Bu server səhifə qaytarır. Sorğu edilir. 446 00:40:09,890 --> 00:40:12,580 Bu artıq siz hər hansı bir fikir var. 447 00:40:12,580 --> 00:40:17,230 Belə ki, siz növbəti sorğu bilir ki, belə ki, cookie daxil gedir 448 00:40:17,230 --> 00:40:19,810 Bu əvvəl bu sorğu edən şəxsdir. 449 00:40:19,810 --> 00:40:23,830 Bu istifadəçi ilə bağlı olan sessiya məlumatdır. 450 00:40:23,830 --> 00:40:28,210 Siz istifadə hər səhifə üçün daxil yoxdur niyə ki. 451 00:40:28,210 --> 00:40:33,380 Burada təhlükəsizlik məsələ cookie internet üzərində göndərilir ki. 452 00:40:33,380 --> 00:40:41,490 Biz burada HTTPS istifadə etdiyiniz, belə ki, bu halda ki, biz bu məhsulları Şifreleme deməkdir. 453 00:40:41,490 --> 00:40:49,870 Biri gəlib və yalnız mənim cookie oğurlamaq və indi server onlar mənə etdiyiniz edirəm bilməz. 454 00:40:49,870 --> 00:40:52,060 Amma düz HTTP ilə onlar. 455 00:40:52,060 --> 00:40:57,650 Just yalnız hava wi-çek bütün dinləyə bilərsiniz ki, bu Wireshark / Firesheep məhsulları kimi 456 00:40:57,650 --> 00:41:01,380 və istədiyiniz hər hansı intercept, Bəli belə. 457 00:41:01,380 --> 00:41:12,430 >> [Tələbə] oxşar təhlükəsizlik riski bir növ post istifadəçi ID nin saxlanılması 458 00:41:12,430 --> 00:41:16,860 ki, sərbəst konsolları və şeyi istifadə redaktə edilə bilər, çünki. 459 00:41:16,860 --> 00:41:23,410 [Rob] Bəli. Burada istifadəçi gəlir ki, yalnız bir şey kimi məsələlər çox var 460 00:41:23,410 --> 00:41:26,940 Siz doğrulamak üçün lazımdır. 461 00:41:26,940 --> 00:41:37,650 Mən bir post etmək haqqında Ben kimi üçün faydalı olardı hallarda var. 462 00:41:37,650 --> 00:41:39,650 Blah, blah, blah, blah, blah. Sonra cavab edib. 463 00:41:39,650 --> 00:41:44,540 Bu post sorğu şəxsiyyətimi daxil əgər Bu, çox faydalı olardı, çünki 464 00:41:44,540 --> 00:41:48,610  Mən bu post birləşmək istəyirik. 465 00:41:48,610 --> 00:41:54,820 Amma edə bilməz ki, mən bir post sorğu etmək üçün pulsuz deyiləm, çünki - yalnız özünüz kimi 466 00:41:54,820 --> 00:41:57,820 öz post xahişi ilə gəlmək - 467 00:41:57,820 --> 00:42:00,960 ki, istifadəçi ID istifadə edir və indi sizin kimi göndərmək olacaq. 468 00:42:00,960 --> 00:42:07,440 Server-side mən doğru istifadəçi ID olan post müraciətləri etibar edə bilməz niyə ki. 469 00:42:07,440 --> 00:42:09,720 Mənim sessiyasında aid nə var. 470 00:42:09,720 --> 00:42:15,140 Beləliklə, mən sessiya sıra istifadəçi ID baxmaq və mən bazasında ki, daxil 471 00:42:15,140 --> 00:42:17,580 həqiqətən, bu post edən istifadəçi kimi. 472 00:42:17,580 --> 00:42:19,580 [Tələbə] Və sizin cookie əsasında? 473 00:42:19,580 --> 00:42:24,690 [Rob] Bəli. Bu sorğu edən istifadəçi kimi sizə uyğun cookie istifadə edir. 474 00:42:24,690 --> 00:42:30,570 Bu sessiya istifadəçi ID həyata çıxarmaz və sonra bazasında edər 475 00:42:30,570 --> 00:42:32,960 ki, istifadəçi ID istifadə edərək,. 476 00:42:32,960 --> 00:42:40,330 Bu kimi düyməsinə - ki, həqiqətən bunu nə - 477 00:42:40,330 --> 00:42:43,810 Mən burada tapa gedən deyiləm. Bu Ajax funksiyası olacaq 478 00:42:43,810 --> 00:42:46,780 Ajax funksiyası nədir? 479 00:42:46,780 --> 00:42:55,500 Mənim JavaScript nə tapmaq edək. 480 00:42:55,500 --> 00:42:59,710 Bu bir müddət əvvəl CS50 layihə idi. 481 00:42:59,710 --> 00:43:02,880 Mən nə xatırlayıram bilməz. 482 00:43:02,880 --> 00:43:12,530 Ajax funksiyası - bütün Ajax funksiyası edir bu ID ilə bir səhifə üçün bir Ajax sorğu edilməsi - 483 00:43:12,530 --> 00:43:15,810 ID 22453 ilə. 484 00:43:15,810 --> 00:43:20,180 Bu da bir post sorğu deyil. Bu daha asan edir bir get tələb var. 485 00:43:20,180 --> 00:43:27,860 Mən URL nə bilirdi varsa - bu kimi / ID = 22453 kimi bir şey var - 486 00:43:27,860 --> 00:43:33,290 və ya ID = 22453 - 487 00:43:33,290 --> 00:43:40,290 bu URL ziyarət kimi olacaq. 488 00:43:40,290 --> 00:43:44,600 Bir problem kimi çox ola, lakin bu bir loop yazmaq olduqca asan deyil ki, 489 00:43:44,600 --> 00:43:48,500 yalnız görmək nə olan yenə üzərində bu URL baxın niyyətində olan 490 00:43:48,500 --> 00:43:51,180 Şeyi minlərlə göndərmək Isawyouharvard. 491 00:43:51,180 --> 00:43:56,960 Onlar CS50-based Isawyouharvard ismarıc olmaq üçün edirlər. 492 00:43:56,960 --> 00:44:01,200 Necə ən xoşuma gəldi tapa bilərəm? 493 00:44:01,200 --> 00:44:03,720 Onlar da, olduqca tez silindi almaq üçün edirlər. 494 00:44:03,720 --> 00:44:06,490 Bu, ən xoşuma gəldi deyil. Orada getmək. 495 00:44:06,490 --> 00:44:13,400 Ən xoşuma gəldi səhifə Cheaters - bu anda bu olduqca müvafiq deyil. 496 00:44:13,400 --> 00:44:21,230 Wow Oh. Onlar artıq olmuşdur ki, bu ildən isə hər hansı silinmiş etdik 497 00:44:21,230 --> 00:44:25,590 cheated. Bu bütün silindi. 498 00:44:25,590 --> 00:44:28,680 Bu yüksək olur ki, bir post var heç vaxt. 499 00:44:28,680 --> 00:44:32,860 Bu açıq-aydın ən xoşuma gəldi səhifə almaq üçün cheated edilmişdir. 500 00:44:36,570 --> 00:44:39,310 >> Ətraflı suallar? 501 00:44:39,310 --> 00:44:46,050 [Tələbə] biz XHTML haqqında nə bilməlidir? 502 00:44:46,050 --> 00:44:49,710 [Rob] Faktiki olaraq heç bir şey. Bu yalnız nə. 503 00:44:49,710 --> 00:44:59,220 Bu və XML olan HTML arasındakı fərq görünüşü çox oxşardır 504 00:44:59,220 --> 00:45:09,080 HTML HTML istisna olmaqla biz yalnız tags təyin dəsti var. 505 00:45:09,080 --> 00:45:15,380 Lakin XML ilə - XML ​​yalnız bir XML sənəd edə bilər bir ümumi format kimi 506 00:45:15,380 --> 00:45:17,580 Siz istədiyiniz hər hansı məqsədlər üçün. 507 00:45:17,580 --> 00:45:25,950 Belə ki, məsələn, mən istəyirdim, mən kursları üçün XML tikintisi bilər - 508 00:45:25,950 --> 00:45:28,860 və mən, həqiqətən CS50 bu bir API var ki, düşünürəm. 509 00:45:28,860 --> 00:45:31,590 Mənim XML sənəd kimi bir şey baxmaq bilər - 510 00:45:31,590 --> 00:45:39,330 kursları və əlbəttə bəzi sonu kursları lazımdır. 511 00:45:39,330 --> 00:45:48,920 Mən bir kurs ola bilər və bu adı CS50 bərabərdir ola bilər. 512 00:45:48,920 --> 00:45:58,080 Və sonra mənim son kurs və mən, burada daxili tələbələri qoymaq bilər 513 00:45:58,080 --> 00:46:07,010 sonra tələbələrlə daxilində Mən kimin adı nə olursa olsun bir tələbə bir siyahısı var. 514 00:46:07,010 --> 00:46:10,180 Mən ki, tələbə başa və. 515 00:46:10,180 --> 00:46:16,070 Mən yalnız bir ixtiyari XML sənəd inşa etmək nə, lakin etibarlı XML edir. 516 00:46:16,070 --> 00:46:23,700 XML - bu bütün strukturu bu sort və gözəl şey - biz hətta XML zəng ki, səbəb 517 00:46:23,700 --> 00:46:26,820 şey bu sort analiz etmək çox asan olmasıdır. 518 00:46:26,820 --> 00:46:32,580 Bu sənəd almaq və həyata bir sıra etmək çox asandır. 519 00:46:32,580 --> 00:46:39,370 Və XHTML HTML etibarlı XML olmaq cəhdidir. 520 00:46:39,370 --> 00:46:42,580 Onsuz da bu HTML olduqca oxşar görünür. 521 00:46:42,580 --> 00:46:52,160 Fərqlər bəzi siz daxil kimi şeylər edə bilərlər HTML bəlkə type mətn bərabərdir 522 00:46:52,160 --> 00:46:55,550 default olan mən ki, ehtiyac yoxdur. 523 00:46:55,550 --> 00:47:00,010 Aradan. 524 00:47:00,010 --> 00:47:05,160 >> Bu etibarsız XHTML etmək ki, burada 2 şey var. 525 00:47:05,160 --> 00:47:08,750 Ilk şey bütün XML tags bir yekun tag lazımdır ki,. 526 00:47:08,750 --> 00:47:13,040 Bu çizgi hansı istiqamətdə deyil - belə ki, giriş halda mən nə lazımdır? 527 00:47:13,040 --> 00:47:15,060 Bu istiqamətdə? Bu yanlış görünür. 528 00:47:15,060 --> 00:47:19,380 Digər istiqamət. 529 00:47:19,380 --> 00:47:21,960 Self-bağlanması tag. 530 00:47:21,960 --> 00:47:29,560 İkinci şey XML ilə kimi əsas dəyər cüt bu növ lazımdır ki,. 531 00:47:29,560 --> 00:47:32,130 Bu onunla bağlı bir dəyər lazımdır. 532 00:47:32,130 --> 00:47:35,050 Belə ki, özü və əlil istəyirəm nə ifadə baxmayaraq - 533 00:47:35,050 --> 00:47:37,110 Bu giriş aradan olmalıdır - 534 00:47:37,110 --> 00:47:39,110 yalnış XHTML var. 535 00:47:39,110 --> 00:47:47,110 Mən, həqiqətən, yazmaq lazımdır əlil əlil bərabərdir. 536 00:47:47,110 --> 00:47:49,620 İndi etibarlı XHTML var. 537 00:47:49,620 --> 00:47:54,850 Və bu şey bir XML-based növ HTML çevirmək ki, yalnız bu cüzi fərqlər var. 538 00:47:54,850 --> 00:48:04,880 >> [Tələbə] XML cəmi niyə (eşidilmir) kimi öz X vasitəsilə kimi açılan haqqında 539 00:48:04,880 --> 00:48:19,450 [Rob] CSV kimi olan şey - CSV yalnız ayrılmış dəyərlər var - 540 00:48:19,450 --> 00:48:23,550 yalnız bir tablo düşünürəm. A CSV əsasən bir elektron tablo edir. 541 00:48:23,550 --> 00:48:26,720 Siz bəlkə sütun və satır bir dəstə var ki, 542 00:48:26,720 --> 00:48:29,600 asılı o sütun data lakin bu. 543 00:48:29,600 --> 00:48:38,310 XML daha çox siz ki, - siz məlumatların əsassız iyerarxiya. 544 00:48:38,310 --> 00:48:43,200 Mən buna birdən çox tələbələr var ki, çox kursları ola bilər 545 00:48:43,200 --> 00:48:45,460 ki, bir elektron tablo düşünmək çətin olacaq yerləşir - 546 00:48:45,460 --> 00:48:51,010 yalnız bir tablo - CSV xüsusilə yalnız bir tablo kimi - 547 00:48:51,010 --> 00:48:58,760 belə ki, bütün CS50, 51, və 61 və o çərçivəsində bütün malik ki, bir elektron tablo 548 00:48:58,760 --> 00:49:03,230 bu dəfə bağlı tələbələr, bəlkə görüş dəfə və şey ki, sort bütün. 549 00:49:03,230 --> 00:49:09,140 Başqa şey tag adları elementləri bütün bir gözəl ad vermək ki, 550 00:49:09,140 --> 00:49:13,140 belə bir CSV faylı oxu cəhd və bu, həqiqətən görən nə analiz etmək çətin ola bilər. 551 00:49:13,140 --> 00:49:20,130 Deyil bir nəfər gəlib - nə kimi ki, belə XML daha çox insan okunabilir 552 00:49:20,130 --> 00:49:26,380 həqiqətən nə CSV fayl və ya kimi bir proqramçı və ya bir şey deyildir - 553 00:49:26,380 --> 00:49:30,640 Bir şablon XML faylı kimi onlara verə bilər və onlar xətləri edin və - 554 00:49:30,640 --> 00:49:33,590 oh, mən burada mənim ad daxil ehtimal edirəm. 555 00:49:33,590 --> 00:49:37,440 Bu, daha çox lazımlı format var. 556 00:49:37,440 --> 00:49:42,440 CSV istifadə çox var, lakin XML müxtəlif məqsədlər var. 557 00:49:46,050 --> 00:49:49,680 >> Ətraflı suallar? 558 00:49:49,680 --> 00:49:51,900 Digər suallar? 559 00:49:56,410 --> 00:50:00,520 Şaquli scaling üfüqi scaling qarşı - əvvəlki viktorina From [Tələbə]. 560 00:50:00,520 --> 00:50:04,660 [Rob] Siz ki, bilmək lazım deyil. Mən biz hətta müzakirə düşünmürəm. 561 00:50:04,660 --> 00:50:07,340 Mən yalnız bir-off comment idi təxmin edirəm. 562 00:50:07,340 --> 00:50:12,660 Oh. Şaquli scaling qarşı üfüqi bilmək lazımdır bir şey deyil. 563 00:50:12,660 --> 00:50:18,570 Mən fərq kimi hesab edirəm - yaxşı oh, cavab əsas fərq deyəcəklər. 564 00:50:18,570 --> 00:50:26,030 Şaquli scaling yalnız mənim kompüter zəif görən, oh kimi. Mən daha yaxşı bir almaq lazımdır. 565 00:50:26,030 --> 00:50:29,150 Üfüqi scaling oh isə, mənim kompüter zəif edir - 566 00:50:29,150 --> 00:50:33,360 mənə eyni məsələ ilə bağlı bütün işləri onlardan 20 əldə edək. 567 00:50:40,300 --> 00:50:45,520 >> [Tələbə] biz sıralarında edilməsi bağlı siyahı yolu üzərində getmək bilər. >> [Rob] Sure. 568 00:50:45,520 --> 00:50:50,000 Bu array yolu çox asandır. 569 00:50:50,000 --> 00:50:53,140 Kuyrukları edilməsi bağlı siyahı yol. 570 00:50:53,140 --> 00:50:58,350 Birincisi, nə bir bağlı siyahısı üçün struct kimi görünür? 571 00:50:58,350 --> 00:51:17,060 [Tələbə] biz bunu edirsiniz - >> [Rob] nin onun nə edək - Bəli. 572 00:51:17,060 --> 00:51:30,000 Int val; sonra struct node * Növbəti; 573 00:51:30,000 --> 00:51:34,560 belə ki, biz burada nümunə üçün istifadə edəcəyik nə. 574 00:51:34,560 --> 00:51:37,660 Həqiqətən bu stuff yazın edək. 575 00:51:40,030 --> 00:51:49,600 Nin linked_list edək. 576 00:51:51,750 --> 00:51:53,750 Bizim struct - 577 00:52:05,360 --> 00:52:13,060 Okay. İndi bizim queue baxaraq biz var - 578 00:52:13,060 --> 00:52:16,090 yalnız bir qlobal növbə edək. 579 00:52:16,090 --> 00:52:23,130 Bu node * queue olacaq və biz dequeue funksiyası var. 580 00:52:23,130 --> 00:52:28,330 Mən bu şeyi də doğru və ya yalan ləğv edə bilər danışarlar - bunu edək. 581 00:52:28,330 --> 00:52:38,690 Bool dequeue - oh - və biz dequeueing edirik. Hmm. 582 00:52:38,690 --> 00:52:45,200 Int dequeue - biz əvvəl bu nə idi? 583 00:52:45,200 --> 00:52:54,340 Int dequeue və biz bool enqueue var və biz doğru bir vasitə enqueue lazımdır. 584 00:52:54,340 --> 00:53:01,360 Ilk enqueue nə edək. 585 00:53:01,360 --> 00:53:06,520 Biz növbə var. Biz növbəyə bir şey daxil etmək istəyirəm. 586 00:53:06,520 --> 00:53:12,720 Bunu etmək üçün ən yaxşı yolu nədir? 587 00:53:12,720 --> 00:53:20,270 Biz başlamaq üçün bəzi qlobal göstərici var kimi burada bizim queue hazırda görünür. 588 00:53:20,270 --> 00:53:24,910 Bizim queue var. 589 00:53:24,910 --> 00:53:30,350 Biz ilk element alaraq dequeue fərz etsək, 590 00:53:30,350 --> 00:53:36,570 biz onlar kimi sıralarında iş ki, bizim node daxil istədiyiniz gedir? 591 00:53:36,570 --> 00:53:43,440 Çox sonunda [Tələbə]. >> [Rob] Bəli. Sıralarında həyata ilk ilk ehtimal olunur. 592 00:53:43,440 --> 00:53:48,030 Hansı yeni element burada daxil edilməlidir o deməkdir ki,. Okay. 593 00:53:48,030 --> 00:53:53,220 >> Geri kodu gələn 594 00:53:53,220 --> 00:53:59,760 ki Biz queue üzərində loop istəyirəm ki, deməkdir. 595 00:53:59,760 --> 00:54:10,210 Nin node * Cari = növbə edək; cari bərabər NULL deyil isə. 596 00:54:10,210 --> 00:54:16,960 Mən olardı - bütün sağ, ayrılıqda bunu bildirin. 597 00:54:16,960 --> 00:54:20,460 Birincisi, cari = queue. 598 00:54:20,460 --> 00:54:24,660 Cari NULL kimi off başlayır, biz nə etməliyəm? 599 00:54:24,660 --> 00:54:28,410 Biz bu 2 yolları edəcəyik. Ilk bu yol. 600 00:54:28,410 --> 00:54:31,450 Cari NULL əgər biz nə etməliyəm? 601 00:54:31,450 --> 00:54:34,850 Bu queue NULL əgər bərabərdir? 602 00:54:38,550 --> 00:54:43,960 [Tələbə] Bu yalan geri olacaq. >> [Rob] biz saxta qayıtmaq lazımdır? 603 00:54:43,960 --> 00:54:47,120 Nə boş siyahısına daxil bir şey daxil ilə səhv var? 604 00:54:47,120 --> 00:54:49,080 [Tələbə] Heç bir şey ki, səhv edir. Üzr istəyirik. 605 00:54:49,080 --> 00:54:55,980 [Rob] Bəli. Belə ki, burada yalnız fərq mənim qlobal queue mənim yeni node göndərilir edir. 606 00:54:57,840 --> 00:55:02,880 Və sonra mən queue NULL əgər mənim çek var. 607 00:55:02,880 --> 00:55:05,960 Yalan qaytarın. 608 00:55:05,960 --> 00:55:20,910 Və sonra val i bərabərdir növbə; queue növbəti NULL bərabərdir; doğru geri. 609 00:55:20,910 --> 00:55:25,890 Okay. Mən burada hadisələri gedirəm. 610 00:55:25,890 --> 00:55:29,570 Biz nə xatırlayıram ki, son dəfə 611 00:55:29,570 --> 00:55:35,660 Biz bunu bu cür ilə ** node ilə işləmək üçün daha asan olduğunu söylədi. 612 00:55:35,660 --> 00:55:43,880 Belə ki, indi cari queue olmaq və gedən və burada aşağı gəlir - 613 00:55:43,880 --> 00:55:53,010 isə cari - isə * Cari bərabər NULL edir - 614 00:55:53,010 --> 00:55:58,230 ikinci bu barədə we'll müzakirəsi - belə ki, mənə yalnız cari bunu bildirin. 615 00:55:58,230 --> 00:56:00,860 Cari Növbəti. Okay. 616 00:56:00,860 --> 00:56:12,910 Mən null göstərici çatana qədər bu şəkildə baxanda bu mənim göstəricilər bütün üzərində iterating olunur. 617 00:56:12,910 --> 00:56:17,710 Bu null göstərici Mən yeni node ilə əvəz etmək istədiyiniz göstərici olacaq. 618 00:56:17,710 --> 00:56:21,910 IPad versiyası baxanda - 619 00:56:21,910 --> 00:56:27,800 mənim orijinal göstərici və bağlı siyahı boş onda cari burada qeyd edir. 620 00:56:27,800 --> 00:56:29,630 Bu null qeyd edir, 621 00:56:29,630 --> 00:56:34,440 bu mən bəzi digər yeni node qeyd etmək hərəkət başa göstəricisidir. 622 00:56:34,440 --> 00:56:38,150 Halbuki nümunə up burada bu halda 623 00:56:38,150 --> 00:56:42,720 sonra cari buradan axır gedir - Mən bir az messed. 624 00:56:42,720 --> 00:56:50,700 Cari cari Sonrakı ünvanı olması ehtimal edilir. 625 00:56:50,700 --> 00:57:00,200 Mən istədiyiniz nədir? Cari so * Cari Mənə bir node verir. 626 00:57:00,200 --> 00:57:04,440 Sonrakı bir keçir. 627 00:57:04,440 --> 00:57:10,700 Hal-hazırda burada işarə edirəm. 628 00:57:10,700 --> 00:57:13,720 Qırmızı edək - mən Hal-hazırda burada işarə edirəm. 629 00:57:13,720 --> 00:57:19,710 Sonra * Cari bu node istinad edir. 630 00:57:19,710 --> 00:57:25,080 Və * Cari növbəti istinadlar bu node, amma ki, mən istədiyiniz nə deyil. 631 00:57:25,080 --> 00:57:27,700 Mən node üçün bu göstərici istəyirəm. 632 00:57:27,700 --> 00:57:40,530 Belə ki, bu node ki pointer növbəti (current *) ampersand edir. 633 00:57:47,660 --> 00:57:54,360 >> Bu nöqtədə vaxt mən rəsmi mən əvəz etmək istəyirəm ki node əldə etdik. 634 00:57:54,360 --> 00:58:13,770 Cari bu sıralarında bütün əvəz edək - və indi biz tamamlayın. 635 00:58:13,770 --> 00:58:21,760 Orada hatası, lakin fikir ola bilər ki, yol bu cür insert ilə 636 00:58:21,760 --> 00:58:28,130 biz dəyişdirmək istədiyiniz göstəricilər ilə işləmək daha asandır 637 00:58:28,130 --> 00:58:32,780 əvəzinə takip ehtiyacı - tamam, mənim start NULL edir? 638 00:58:32,780 --> 00:58:36,430 Oh o? Sonra xüsusi bir şey olması üçün start node yaratmaq lazımdır 639 00:58:36,430 --> 00:58:40,310 Mən qeyd növbəti şey NULL qədər başqa mən, təkrarlamaq lazımdır 640 00:58:40,310 --> 00:58:46,740 və sonra mən əvəz lazımdır - növbəti şey nə - mənim malloc node. 641 00:58:46,740 --> 00:58:50,740 Əvəzində o hallarda ayrı-ayrı ehtiyacı, burada yalnız işi ilə məşğul 642 00:58:50,740 --> 00:58:54,990 Mən artıq NULL olmaq istəyirəm ki, NULL ki, pointer, nə 643 00:58:54,990 --> 00:59:01,820 və çünki bu başqa asan həyat indi current * olmalıdır edir - 644 00:59:01,820 --> 00:59:05,460 [Tələbə] Onlar hələ bir node ölçüsü edirsiniz? 645 00:59:05,460 --> 00:59:10,480 [Rob] Bəli. Mən hələ bir node mallocing alıram. 646 00:59:10,480 --> 00:59:12,980 [Tələbə] bir node * ölçüsü olacaq mı? 647 00:59:12,980 --> 00:59:20,990 Bu, bizim bağlı siyahısı əgər [Rob] bura gələn halda düşünürəm. 648 00:59:28,330 --> 00:59:33,190 Bu adam null off göstərir. 649 00:59:33,190 --> 00:59:36,950 Burada ki, sonra niyə loop, cari points 650 00:59:36,950 --> 00:59:41,510 Bu NULL ki göstəricisidir. 651 00:59:41,510 --> 00:59:50,380 İndi yeni bir node işaret üçün bu göstərici dəyişə istəyirəm. 652 00:59:50,380 --> 00:59:58,390 Node belə malloc ölçüsü - Birinci mən ki, yeni node malloc. 653 00:59:58,390 --> 01:00:11,070 Ki, bir node * qaytarır və indi bu göstərici dəyişən * Cari bərabər üçün qurur 654 01:00:11,070 --> 01:00:15,780 Mən ayrılmış ki, bu yeni node. 655 01:00:15,780 --> 01:00:26,490 Cari ** bir node Belə ki, sonra * current * bir node olacaq, 656 01:00:26,490 --> 01:00:32,540 Mən bir şey node ölçüsü mallocing alıram və bu bir node bir pointer qayıdır 657 01:00:32,540 --> 01:00:39,630 bu bir node * - belə hər iki tərəf düzgün eyni növü var. 658 01:00:39,630 --> 01:00:46,610 Nə mən yalnız ayrılan NULL, əgər, belə ki, saxta qayıtmaq; 659 01:00:46,610 --> 01:00:54,750 bu parantez lazımdır axşamı - başqa mən onları olmaq istədiyiniz nə onların qəbulu başa 660 01:00:54,750 --> 01:00:57,730 şeyi sifariş necə deyil, çünki. 661 01:00:57,730 --> 01:00:59,690 Kimi şərh olunur ki, parantez olmadan 662 01:00:59,690 --> 01:01:03,010 ki dereference cari arrow-val. 663 01:01:03,010 --> 01:01:07,010 Əvəzində cari dereference bir node mənə gətirir istəyirsinizsə. 664 01:01:07,010 --> 01:01:10,620 Sonra ki, node ilə bağlı dəyər almaq istəyirəm. 665 01:01:10,620 --> 01:01:17,670 >> [Tələbə] Mən işarələrindən ki bypass və dəyərinə düz getmək üçün icazə düşündüm. 666 01:01:17,670 --> 01:01:22,640 [Rob] Onlar bunu. Mən əgər var - nin queue nümunəsidir deyək. 667 01:01:22,640 --> 01:01:28,400 Mən queue * bir node çünki queue-arrow-val i bərabərdir etməyə icazə alıram. 668 01:01:28,400 --> 01:01:39,160 Kimi cari uzun arrow-val və ya bir şey, bəzi gözəl sintaksis olsaydı 669 01:01:39,160 --> 01:01:42,540 2 dereferences etdi, sonra bu yaxşı olardı. 670 01:01:42,540 --> 01:01:44,790 [Tələbə] Belə ki, arrow yalnız 1 dereference üçün. >> [Rob] Bəli. 671 01:01:44,790 --> 01:01:53,590 Alternativ olaraq I (** current.val) Bu yazmaq bilər. 672 01:01:53,590 --> 01:02:02,490 Mən də (* queue). Val kimi növbə yazmaq bilər kimi. 673 01:02:04,430 --> 01:02:09,250 Belə ki, daxil edək. Yaxşı ki, mən yalan danışarlar növbə var. 674 01:02:09,250 --> 01:02:12,030 Dequeue əhəmiyyətli dərəcədə qısa olacaq. 675 01:02:12,030 --> 01:02:18,280 Nin təmizlik üçün burada boşluq qoymaq edək. 676 01:02:18,280 --> 01:02:22,820 Belə ki, dequeue. Nə element dequeueing edirəm? 677 01:02:22,820 --> 01:02:24,820 [Tələbə] Birinci? >> [Rob] Bəli. 678 01:02:24,820 --> 01:02:32,880 Mənim ilk bir NULL varsa - return - I biz qayıtmaq istəyirəm nə bilmirəm - INT_MAX; 679 01:02:32,880 --> 01:02:37,580 və sonra INT_MAX geri əgər görmek üçün bir çek etməlidir. 680 01:02:37,580 --> 01:02:44,090 Ki, inc başqa biz istəyir almaq şey sort var - 681 01:02:44,090 --> 01:02:54,610 biz yalnız queue val qayıda bilər? Ki, biz nə istəyirik nədir? 682 01:02:54,610 --> 01:02:58,010 Dequeue də dolayısı, növbə olan maddə rədd 683 01:02:58,010 --> 01:03:10,840 elə ilk deyək - nin bizim queue ilk node qeyd etmək bir tmp almaq imkan verir. 684 01:03:10,840 --> 01:03:15,510 İndi biz queue növbəti şey nöqtəyə növbə irəliləmək istəyirik. 685 01:03:15,510 --> 01:03:21,450 İndi biz tmp sol var. Tmp val biz qayıtmaq istədiyiniz şeydir. 686 01:03:21,450 --> 01:03:24,180 Belə ki, val = tmp-> val; 687 01:03:24,180 --> 01:03:31,190 lakin biz geri əvvəl biz tmp azad və val qaytarmalıdır. 688 01:03:31,190 --> 01:03:36,350 Burada əməliyyatları sifariş ki, biz tmp qamarlamaq lazımdır vacibdir 689 01:03:36,350 --> 01:03:40,520 Biz növbəti element üçün növbə hərəkət əvvəl. 690 01:03:40,520 --> 01:03:44,860 Biz tmp azad əvvəl dəyər almaq lazımdır 691 01:03:44,860 --> 01:03:48,710 sonra biz Val qayıda bilər. 692 01:03:48,710 --> 01:03:50,680 >> [Tələbə] biz növbəti növbə növbə müəyyən etməlidir? 693 01:03:50,680 --> 01:03:57,800 [Rob] Bəli. Ki, bir pis loop yaratmaq / hər halda onu azad sonra işləməyəcək. 694 01:03:57,800 --> 01:03:59,900 Queue = queue-> gələn. 695 01:03:59,900 --> 01:04:03,230 Biz növbəti element irəli növbəti element daxil növbə irəliləmək istəyirik 696 01:04:03,230 --> 01:04:08,170 Bu element hazırda nə üçün. 697 01:04:08,170 --> 01:04:17,660 Depo əhəmiyyətli dərəcədə ki, - ki dequeue daha asan kimi tam eyni deyil 698 01:04:17,660 --> 01:04:20,190 biz yığını qarşısında off çəkərək edirik, çünki. 699 01:04:20,190 --> 01:04:24,030 Biz yalnız bir node ayrılması istədiyiniz End queue çox oxşar olacaq 700 01:04:24,030 --> 01:04:27,670 və yığını qarşısında daxil, belə ki, biz hətta bir şey üzərində loop ehtiyac yoxdur. 701 01:04:27,670 --> 01:04:31,420 Biz yalnız qarşısında birbaşa daxil edin. 702 01:04:42,500 --> 01:04:44,640 Hər kəs yaxşıdır? 703 01:04:44,640 --> 01:04:49,760 Okay. >> Ətraflı suallar? 704 01:04:49,760 --> 01:04:56,570 [Tələbə] əsas hər şeyi mən ən son mühazirə yadda saxlamaq lazımdır? 705 01:04:56,570 --> 01:04:58,730 [Rob] Ən son məruzə. 706 01:04:58,730 --> 01:05:01,620 Siz hər hansı bir kodu bilmək lazım deyil. 707 01:05:01,620 --> 01:05:07,590 Siz mühüm fikir bilməlidir. 708 01:05:07,590 --> 01:05:11,650 Nate yarım heç bir kod yox idi və həmin slaydlar online. 709 01:05:11,650 --> 01:05:15,220 Onlar yalnız onlara baxmaq kimi istəyirik və onlar əsas fikir var. 710 01:05:15,220 --> 01:05:28,630 Mənim yarım - ilk şey etibar edə bilməz ümumi fikir bilmədən. 711 01:05:28,630 --> 01:05:38,070 Bu faktdır ki, bəlkə compiler prosesi pis ola bilər kimi, 712 01:05:38,070 --> 01:05:40,870 lakin hətta mənbə kodu gözəl görünür ki, fərqi yoxdur. 713 01:05:40,870 --> 01:05:46,390 Compiler xüsusi kodunu dəyişdirmək üçün dəyişdirilə bilər, çünki 714 01:05:46,390 --> 01:05:50,860  tərtib prosesində. 715 01:05:50,860 --> 01:05:58,140 Kimi eyni zamanda - Mən o bu əsas fikir kimi hesab edirəm. 716 01:05:59,560 --> 01:06:09,030 >> [Tələbə] biz Firesheep ilə bağlı bir şey bilmək lazım deyil ki, qeyd mi - 717 01:06:09,030 --> 01:06:13,110 və ya biz bilmək lazımdır? 718 01:06:13,110 --> 01:06:18,360 Şeyi Nate yarısında, Nate toxunub ki, bir şey ilə [Rob] - 719 01:06:18,360 --> 01:06:22,760 Firesheep, Wireshark kimi - Mən hətta o ətraflı Firesheep etdi düşünmürəm. 720 01:06:22,760 --> 01:06:28,620 Siz həmçinin ki, bir şey idi - bu Firesheep idi - ötən həftə? 721 01:06:28,620 --> 01:06:31,110 Ki, toxunmaq mi? 722 01:06:31,110 --> 01:06:34,060 [Tələbə] Bəli, biz ola bilər edirəm - >> [Rob] Bəli. 723 01:06:34,060 --> 01:06:40,880 Biz sizə Firesheep çıxış vermək üçün gedir və bu şərh demək deyilik. 724 01:06:40,880 --> 01:06:44,960 Bu, sadəcə olacaq - bu Firesheep nə kimi bir sual olardı? 725 01:06:44,960 --> 01:06:47,290 Nə üçün istifadə olunur? 726 01:06:47,290 --> 01:06:52,120 [Tələbə] Mən yalnız Firefox və ya bir şey versiyası 4 işləyir edirəm. 727 01:06:52,120 --> 01:06:55,320 [Rob] Bu artıq sınıq bilər. 728 01:07:11,430 --> 01:07:14,070 Mən heç bir fikrim yoxdur. 729 01:07:14,070 --> 01:07:18,330 Onlar, özünüz aradan görünmür 730 01:07:18,330 --> 01:07:21,210 amma bəlkə ən son Firefox ilə işləmir. 731 01:07:21,210 --> 01:07:24,790 Bu uyğun olacağını söylədi, çünki [Tələbə] Mən, həqiqətən, quraşdırma çalışdı. 732 01:07:24,790 --> 01:07:28,880 [Rob] ki, mən bu ən son Firefox ilə işləmir danışarlar. 733 01:07:28,880 --> 01:07:32,360 Amma fikir hələ də göstərmək üçün nəzərdə idi nə dayanır. 734 01:07:32,360 --> 01:07:39,430 Bu nə qədər dünyanın zamanı HTTPS yaşayan deyil absurd idi. 735 01:07:39,430 --> 01:07:43,820 Hətta son 2 ildə və ya nə olursa olsun, hələ var - dramatik təkmilləşdirilməsi var 736 01:07:43,820 --> 01:07:47,210 HTTPS istifadə edən web sites sayı. 737 01:07:49,920 --> 01:07:52,580 >> [Tələbə] biz HTTP artıq getmək lazımdır? 738 01:07:52,580 --> 01:07:58,050 [Rob] bu protokolu? >> [Tələbə] biz bilirik ki, bəzi şeyləri. 739 01:07:58,050 --> 01:08:06,220 [Rob] Bütün hüquqlar. Basic şey sizin şəbəkə nişanı bilərsiniz hər şey var. 740 01:08:06,220 --> 01:08:12,160 Mən bir səhifə tələb zaman - əsas şeylər üçün üst qədər geri gəlir. 741 01:08:12,160 --> 01:08:16,090 Siz burada mən edən sorğu bilərsiniz. 742 01:08:16,090 --> 01:08:19,220 Chrome bizim üçün qəşəng bütün format olur 743 01:08:19,220 --> 01:08:21,970 tələbi URL bu olduğu, sorğu metodu, GET idi 744 01:08:21,970 --> 01:08:24,800 və status kodu 200 OK idi. 745 01:08:24,800 --> 01:08:28,279 Mən görünüşü mənbə hit varsa, mən daha çox birbaşa ki, bax - 746 01:08:28,279 --> 01:08:35,680 biz bu ya göstərə bilər, lakin bu onların arasında şərh çox çətin deyil - və bu deyil. 747 01:08:35,680 --> 01:08:41,729 Burada edilən birbaşa tələb edir, belə ki, bu, mən getdi o deməkdir ki, 748 01:08:41,729 --> 01:08:48,160 apps.cs50.net/discuss/threads/inbox/all/HTTP/1.1. 749 01:08:48,160 --> 01:08:57,569 Və istifadə protokol faktiki olaraq olan HTTP/1.1 idi - bu, həmişə olacaq. 750 01:08:57,569 --> 01:09:01,490 Burada artıq GET istifadə, belə ki, bu da POST ola bilər. 751 01:09:01,490 --> 01:09:04,660 Və sonra enir - bütün yol cavab başlıqlarını aşağı - biz ki, mənbə keçirmək əgər, 752 01:09:04,660 --> 01:09:07,740 biz 200 OK görmək olduğu bu. 753 01:09:07,740 --> 01:09:11,069 Bu mümkün müxtəlif status kodları bilirik. 754 01:09:11,069 --> 01:09:15,520 Mən nəzərdən biz bu bir neçə demək mi 755 01:09:15,520 --> 01:09:20,640 belə 403, 404 - ümumi olanları o cür. 756 01:09:20,640 --> 01:09:26,810 Ki, əsas fikirdir. 757 01:09:29,990 --> 01:09:35,120 Yalnız HTTP və HTTPS arasında fərq bu şifreleme edir. 758 01:09:35,120 --> 01:09:42,319 Siz >> [Tələbə] edilir? >> [Rob] Mən belə düşünürəm. Yaxşı, yep. 759 01:09:42,319 --> 01:09:46,470 [Tələbə] Siz necə şifrələmə işləri haqqında çox ümumiyyətlə danışmaq olacaq? 760 01:09:46,470 --> 01:09:49,920 Biz Huffman faylları kompressor misal üçün danışdıq, çünki 761 01:09:49,920 --> 01:09:54,890 siz həqiqətən fayl ərzində hashtable göndərdi, çünki onları decompress üçün necə 762 01:09:54,890 --> 01:09:56,950 belə ki, necə şifreleme çalışır? 763 01:09:56,950 --> 01:10:00,830 Necə siz həqiqətən müştəri göndərdi əgər məlumat şifrelemek üçün necə bilmirəm 764 01:10:00,830 --> 01:10:05,740 Bu əsas - və həqiqətən ki, əsas qamarlamaq bilər -? 765 01:10:05,740 --> 01:10:07,740 Ümumi proses necə işləyir? 766 01:10:07,740 --> 01:10:09,870 [Rob] şifreleme ümumi proses - 767 01:10:09,870 --> 01:10:15,590 Mən cavab inanılmaz ətraflı məsələdir. 768 01:10:15,590 --> 01:10:21,490 Qısa var - yaxşı, Tommy və mən qısa etdi. 769 01:10:21,490 --> 01:10:26,060 Təəssüf ki, 26 dəqiqə kimi, belə bir qısa deyil. Bu uzun. 770 01:10:26,060 --> 01:10:31,530 Amma bizim qısa, bu yalnız bir nümunəsi olan RSA idi 771 01:10:31,530 --> 01:10:40,420 və bu RSA ümumi HTTPS protokolunun hissəsidir. 772 01:10:40,420 --> 01:10:46,060 Ideyası - RSA ictimai əsas Kriptoqrafiya nümunəsidir 773 01:10:46,060 --> 01:10:49,690 olan 2 ayrı-ayrı düymələri var deməkdir. 774 01:10:49,690 --> 01:10:51,690 Siz, həqiqətən, hər şeyi şifrelemek üçün 1 düyməsini istifadə, 775 01:10:51,690 --> 01:10:54,410 və siz hər şeyi decrypt başqa bir düyməsindən istifadə edin. 776 01:10:54,410 --> 01:10:58,360 Şeyi şifrelemek üçün istifadə ki, bu əsas ictimai olan biridir. 777 01:10:58,360 --> 01:11:03,500 Haqqinda bu şifreleme açarı göndərə bilərsiniz. 778 01:11:03,500 --> 01:11:08,280 Onlar ki, şifreleme açarı göndərmək, və siz onlara geri bir şey göndərmək istədiyiniz zaman 779 01:11:08,280 --> 01:11:13,550 sizin data bütün şifrelemek və onlara göndərmək üçün şifreleme düyməsindən istifadə edin. 780 01:11:13,550 --> 01:11:16,110 Belə ki, onlar xüsusi açarı ilə yalnız olanlardır. 781 01:11:16,110 --> 01:11:22,630 Ki, xüsusi açarı məlum oldu onda hər kəs veri decrypt edə bilər. 782 01:11:22,630 --> 01:11:27,980 Amma xüsusi açarı - ictimai düyməsi üçün riyazi bağlıdır amma siz bilərsiniz olan 783 01:11:27,980 --> 01:11:33,640 xüsusi açarı data decrypt üçün istifadə edilə bilər ki, - digər birini anlamaq. 784 01:11:33,640 --> 01:11:36,630 Onlar xüsusi açar ilə yeganə olduğundan, 785 01:11:36,630 --> 01:11:38,920 onlar məlumatları oxuya bilərsiniz olan yeganə istəyirik. 786 01:11:38,920 --> 01:11:44,170 Ictimai əsas, ictimai Belə ki, baxmayaraq 787 01:11:44,170 --> 01:11:47,660 Mən eyni istifadə - Mən Google.com və ya nə üçün getmək zaman, 788 01:11:47,660 --> 01:11:50,010 onlar, mən çox bilmirəm ola bilər - amma Google.com getmək əgər, 789 01:11:50,010 --> 01:11:54,770 o Google.com gedir, o gedir Google.com - 790 01:11:54,770 --> 01:11:59,250 biz bütün lakin biz istəyirik öz məlumat şifrelemek üçün eyni ictimai düyməsindən istifadə edə bilərsiniz. 791 01:11:59,250 --> 01:12:04,010 Amma bizim heç biri həyata rəqəm edə olacaq - decrypt edə olacaq 792 01:12:04,010 --> 01:12:09,940 ictimai əsas decrypt mümkün deyil, onların informasiya, çünki. 793 01:12:09,940 --> 01:12:13,050 Bu, yalnız encrypt bilər. 794 01:12:13,050 --> 01:12:23,250 Və bu fun / ətraflı math var - modul operatorlar və göstəricilərlə və stuff bir dəstə kimi, 795 01:12:23,250 --> 01:12:28,890 yalnız xüsusi açarı bilən yalnız odur ki aparılır ki, 796 01:12:28,890 --> 01:12:33,620 ictimai əsas şifreleme məhsulları decrypt. 797 01:12:33,620 --> 01:12:38,020 Bəli. Daha ətraflı məlumat üçün RSA qısa baxın. 798 01:12:38,020 --> 01:12:41,880 [Tələbə] ki, internet saytında mı? 799 01:12:41,880 --> 01:12:46,210 [Rob] Bəli, mən bu nöqtədə olduğunu düşünürəm. Və ya ən azı bir YouTube link dərc edilib. 800 01:12:51,330 --> 01:12:57,190 Baxaq. Shorts. Mən bu həftə 2-bağlı olardı. Bəli. RSA. 801 01:12:57,190 --> 01:13:03,780 Və bu - 24 dəqiqə - bu oynayacağıq BİZ beləyik. 802 01:13:03,780 --> 01:13:05,780 Bu uzun biri. 803 01:13:07,740 --> 01:13:09,740 >> Ətraflı suallar? 804 01:13:09,740 --> 01:13:14,770 [Tələbə] Siz bitmasks haqqında qısaca danışmaq bilərmi? >> [Rob] Sure. 805 01:13:14,770 --> 01:13:23,090 Qısaca, fikir yalnız kimi - >> [Tələbə], Rob nədir? 806 01:13:23,090 --> 01:13:32,760 [Rob] Bitmasks. Bu fikir - yalnız biz bəzi var deyək - bəzi tam istifadə BİZ beləyik - 807 01:13:32,760 --> 01:13:41,490 int x - belə ki, biz 0 başlamaq. 808 01:13:41,490 --> 01:13:47,900 İndi, bu tam 32 bit, belə ki, o bit hər hansı bir 1 təmsil etmək üçün istifadə edilə bilər 809 01:13:47,900 --> 01:13:50,600 xüsusi FLAC. 810 01:13:50,600 --> 01:13:56,210 Siz əməliyyat sistemi kodları baxsaq, onlar bütün yer üzərində istifadə yerdir 811 01:13:56,210 --> 01:14:03,900 bəlkə üst qədər haradasa onlar hash-müəyyən yerləşir - 812 01:14:03,900 --> 01:14:09,020 Bəzi misallara keçək. 813 01:14:09,020 --> 01:14:22,720 Man-2-açıq - açıq-sistem biz onun dəlilləri bir int bayraqları ki, burada edə bilərsiniz - 814 01:14:22,720 --> 01:14:29,120 ki, mübahisə bu bayraqları bəzi kimi gözləyir nə. 815 01:14:29,120 --> 01:14:33,030 Biz O_append, O_ASYNC, O_CLOEXEC bax 816 01:14:33,030 --> 01:14:37,130 O_CREAT, və s. 817 01:14:37,130 --> 01:14:45,260 O_DIRECT. Bayraqları bu cür yerdə hash-müəyyən edilir. 818 01:14:45,260 --> 01:14:47,260 Onların bütün dəqiq 1 bit var. 819 01:14:47,260 --> 01:14:57,600 Belə ki, O_CREAT hash-müəyyən 1 kimi, sol-shift, 4 ola bilər (1 << 4). 820 01:14:57,600 --> 01:15:02,280 Yalnız olacaq O_CREAT I istifadə zaman - Bu olmaq üçün gedir - 821 01:15:02,280 --> 01:15:09,350 ikili 1, 0, 0, 0, 30-ish adet sıfır əvvəl. 822 01:15:09,350 --> 01:15:13,930 Bu, yalnız bir az bir set var ki, bit bu bayraq təmsil edir. 823 01:15:13,930 --> 01:15:18,160 Və başqa heç bir bayraq 4 sol keçdikdə olacaq. 824 01:15:18,160 --> 01:15:30,390 Mən bunu bir tək tam 32 bayraqları qədər təmsil edə edirəm - 825 01:15:30,390 --> 01:15:40,850 x = O_CREAT bit müdrik və ya O_DIRECT. 826 01:15:40,850 --> 01:15:43,640 Siz yalnız bayraqları hər hansı 2 aldığınız edirik. 827 01:15:43,640 --> 01:15:48,600 İndi x 2 bit uyğun olan müəyyən 2 bit üçün gedir 828 01:15:48,600 --> 01:15:53,490 O_CREAT və O_DIRECT edir. 829 01:15:53,490 --> 01:15:58,740 O yolu - belə ki, biz açıq funksiyası daxil x keçdi 830 01:15:58,740 --> 01:16:02,950 və açıq ehtiyacları faktiki olaraq müəyyən nə bayraqları görmək. 831 01:16:02,950 --> 01:16:06,480 Bu kimi şeylər hara gedir, belə ki, ki, 832 01:16:06,480 --> 01:16:19,340 (x & O_CREAT) bir şey varsa, 833 01:16:19,340 --> 01:16:27,110 və ya (x & O_DIRECT) başqa bir şey varsa, 834 01:16:27,110 --> 01:16:30,300 sonra biz qoymuşuq vermədi ki, bəzi bayrağı ola bilər - 835 01:16:30,300 --> 01:16:35,730 əgər (x & o_ - Mən digər bayraqları nə bilmirəm - 836 01:16:35,730 --> 01:16:42,140 (X & O_RDONLY) - xüsusi vəziyyət icra etmək niyyətində deyil. 837 01:16:42,140 --> 01:16:44,030 Və kodu məhəllə icra etmək niyyətində deyil, 838 01:16:44,030 --> 01:16:48,030 o 2 bayraqları müəyyən edilmişdir, çünki bu 2 vardır. 839 01:16:48,030 --> 01:16:57,400 Və C, 0 deyil ki, bir dəyər doğru olduğunu görürük. 840 01:16:57,400 --> 01:17:05,020 Belə ki, (x & O_CREAT) 0 və ya O_CREAT ya olacaq 841 01:17:05,020 --> 01:17:07,990 O_CREAT yalnız bir bit set var. 842 01:17:07,990 --> 01:17:12,800 Ki, bit Növbəti müəyyən edilir, onda bu O_CREAT qayıtmaq üçün gedir - 843 01:17:12,800 --> 01:17:16,640 yalnız bit müəyyən olduğu ikili. 844 01:17:16,640 --> 01:17:23,400 Ki, bit Növbəti müəyyən deyil, onda biz bayraq müəyyən deyil bilirik olan halda, 0 qayıtmaq olacaq. 845 01:17:23,400 --> 01:17:25,400 Ki, bitmasks istifadə necə. 846 01:17:25,400 --> 01:17:29,050 Mən əvvəlki imtahan və ya bəlkə sinif və ya bir şey haqqında düşünmək - 847 01:17:29,050 --> 01:17:35,150 siz də bir dəyişən ikili çap bitmasks istifadə edə bilərsiniz. 848 01:17:35,150 --> 01:17:46,250 Sol-shift, 0, 1 - - üzərində loop - Mən istifadə edə bilərsiniz və sonra çap x & ki, əgər - 849 01:17:46,250 --> 01:17:52,570 x & 1, sol shift, 0 əgər - onda çap 0 və ya 1. Və ya 1 başqa çap 0 çap. 850 01:17:52,570 --> 01:18:00,620 Və sonra mən artıq bir daha getmək - əgər x & 1, sol-shift, 2 - o deməkdir ki, ikinci bit 851 01:18:00,620 --> 01:18:04,450 dəyişən müəyyən edilir, belə ki, mən bir 0 çap 1, başqa çap. 852 01:18:04,450 --> 01:18:06,860 Və biz, həqiqətən, əks qaydada çünki bunu etmək istəyirəm bilər edirəm 853 01:18:06,860 --> 01:18:10,120 adətən siz sol ən yüksək sifariş bit olmaq istəyirəm 854 01:18:10,120 --> 01:18:24,510 və sağ aşağı sifariş bit, belə ki, yəqin ki loop 4 int i = 31 I 0 hit ilə qədər 855 01:18:24,510 --> 01:18:32,320 sonra dəqiq vəziyyəti ki, - x & 1, sol-shift, i əgər; başqa 1 0 çap. 856 01:18:32,320 --> 01:18:34,320 [Tələbə] təşəkkür edirik. 857 01:18:36,280 --> 01:18:38,550 >> [Rob] Mən biz vaxt həyata olduğunuzu düşünürəm. 858 01:18:38,550 --> 01:18:42,840 Out-of-zaman saniyə son bir neçə ildə bir daha suallar? 859 01:18:42,840 --> 01:18:47,710 Bütün hüquqlar. Sabah Uğurlar. 860 01:18:47,710 --> 01:18:54,780 Bu gələn həftə isteğe olacaq sonuncu bölmə idi. 861 01:18:54,780 --> 01:19:03,770 Mən sınavlar geri vermək lazımdır və biz onların üzərində getmək və bəlkə ki, başqa şeylər üzərində bilərsiniz 862 01:19:03,770 --> 01:19:09,230 Siz layihə şeyi, və ya gələcək CS dərsləri şeylər maraqlı, və ya final idi və ya - Mən bilmirəm. 863 01:19:09,230 --> 01:19:12,070 Amma bu son material dolu bölüm. 864 01:19:12,070 --> 01:19:15,070 Bye! 865 01:19:15,070 --> 01:19:20,970 (Alqış) 866 01:19:22,250 --> 01:19:24,420 >> [CS50.TV]