1 00:00:00,000 --> 00:00:02,270 >> [Review: Quiz 1] 2 00:00:02,270 --> 00:00:04,620 [Ali Nahm, Oreoluwa Barbarinsa, Lucas Freitas, Rob Bowden] [Harvard Universiteti] 3 00:00:04,620 --> 00:00:07,660 [Bu CS50 edir.] [CS50.TV] 4 00:00:07,660 --> 00:00:11,610 [Lucas Freitas] hər kəs xoş gəlmisiniz. Bu viktorina 1 baxış edir. 5 00:00:11,610 --> 00:00:15,040 Bir disclaimer kimi, bu - Mən demək, biz əhatə cəhd olacaq 6 00:00:15,040 --> 00:00:17,770 mümkün, lakin qədər material demək deyil ki, 7 00:00:17,770 --> 00:00:20,780 biz viktorina 1 ola bilər ki, hər şeyi əhatə olacaq. 8 00:00:20,780 --> 00:00:25,270 Beləliklə, siz də bir mühazirə nəzər, bölmələr, siz ki, hər şey almaq əmin olun. 9 00:00:25,270 --> 00:00:28,240 Quiz 1 Çərşənbə, növbəti Çərşənbə günü olacaq. 10 00:00:28,240 --> 00:00:33,800 Belə ki, təhsil əmin olun. Bu birinci viktorina kimi, olduqca çox, olacaq 11 00:00:33,800 --> 00:00:36,390 format ilə bağlı, lakin yəqin ki, çox çətindir olacaq. 12 00:00:36,390 --> 00:00:39,600 Mən 50 gəldiyində ən azı, keçən il mən çox çətindir idi düşündüm. 13 00:00:39,600 --> 00:00:42,410 Belə ki, bir çox öyrənmək. 14 00:00:42,410 --> 00:00:45,190 >> I data strukturları əhatə gedirəm və Huffman kodlaşdırma. 15 00:00:45,190 --> 00:00:47,910 Bu, insanların bir çox mürəkkəb hesab edirəm ki, bir şey deyil 16 00:00:47,910 --> 00:00:51,930 ancaq mümkün kimi kimi asan etmək üçün cəhd gedirəm. 17 00:00:51,930 --> 00:00:56,330 İlk növbədə, biz sizə uşaqlar viktorina 1 bilmək istəyirsiniz edir 18 00:00:56,330 --> 00:01:00,970 Mən təqdim gedirəm ki, data strukturların hər konseptual təsviri başa düşürük. 19 00:01:00,970 --> 00:01:03,960 Ki, yoxdur o deməkdir ki, əslində 20 00:01:03,960 --> 00:01:07,020 Sizin viktorina 1 bir hash table həyata. 21 00:01:07,020 --> 00:01:10,250 Biz sizə bütün hash table həyata istəmirəm bəlkə biz çalışacağıq 22 00:01:10,250 --> 00:01:13,090 bəzi funksiyaları həyata etmək, 23 00:01:13,090 --> 00:01:16,940 ən ümumi əməliyyatları, lakin biz hər şeyi həyata etmək fikrində deyilik. 24 00:01:16,940 --> 00:01:21,010 Belə ki, hər bir data strukturu arxasında konsepsiyasını başa düşmək vacibdir 25 00:01:21,010 --> 00:01:23,510 və həmçinin, C kod edə bilərlər ki, 26 00:01:23,510 --> 00:01:27,880 onlar hər data strukturu var yalnız ən ümumi əməliyyatları. 27 00:01:27,880 --> 00:01:30,090 Və həmçinin, göstəricilər və structs nəzərdən 28 00:01:30,090 --> 00:01:33,470 bu data strukturlarında bir çox görünür, çünki. 29 00:01:33,470 --> 00:01:37,380 >> Birincisi, siyahıları bağlıdır. Əlaqəli siyahıları, həqiqətən serialların çox oxşardır, 30 00:01:37,380 --> 00:01:39,930 lakin əlaqədar siyahısı və bir sıra arasında fərq, 31 00:01:39,930 --> 00:01:45,160 ilk növbədə, bir bağlı siyahı bir çox çevik ölçüsü var ki, 32 00:01:45,160 --> 00:01:50,060 Diziler siz array üçün çox böyük ölçüsü seçmək üçün ya var isə, 33 00:01:50,060 --> 00:01:53,710 belə ki, o serialda bütün veri etmək olacaq bilirik ki, 34 00:01:53,710 --> 00:01:59,370 və ya sıra çevik uzunluğu var malloc istifadə etmək lazımdır. 35 00:01:59,370 --> 00:02:03,680 Bağlı siyahıları ki, daha çox elementlər əldə etmək çox asandır, 36 00:02:03,680 --> 00:02:07,210 bağlı siyahı daha çox elementləri qoymaq və ya elementləri aradan qaldırılması. 37 00:02:07,210 --> 00:02:09,370 Və həqiqətən, siz bağlı siyahı sıralanır istəmirsinizsə, 38 00:02:09,370 --> 00:02:13,950 axtarış və daimi vaxt elementləri aradan qaldırılması, 39 00:02:13,950 --> 00:02:16,800 belə O (1) vaxt, belə ki, çox rahat edir. 40 00:02:16,800 --> 00:02:20,660 Siz yalnız qovşaqlarının həmişə malloc unutmayın ehtiyatlı və pulsuz olmalıdır 41 00:02:20,660 --> 00:02:25,510 Əgər deyilsə, siz yaddaş sızıntıları lazımdır yalnız çünki. 42 00:02:25,510 --> 00:02:31,480 Belə ki, bağlı siyahıları - bir node definition yalnız biz orada nə kimi. 43 00:02:31,480 --> 00:02:35,110 Mən int n qoymaq, lakin siz istədiyiniz hər hansı bir məlumat saxlaya bilərsiniz. 44 00:02:35,110 --> 00:02:37,280 Bir string saxlamaq istəyirsinizsə, belə ki, bu gözəl var. 45 00:02:37,280 --> 00:02:41,690 Bir struct saxlamaq istəyirsinizsə, istədiyiniz nə olursa olsun,, ikiqat gözəl var. 46 00:02:41,690 --> 00:02:44,630 Mən yalnız burada nümunə üçün int n qoydu. 47 00:02:44,630 --> 00:02:46,800 Və növbəti node bir göstərici var. 48 00:02:46,800 --> 00:02:51,940 Belə ki, əsasən, bir bağlı siyahı bəzi məlumatlar var, və sonra növbəti node göstərir. 49 00:02:51,940 --> 00:02:56,710 Bu bağlı siyahısında son element varsa, bu null qeyd etmək olacaq. 50 00:02:56,710 --> 00:02:59,060 Belə ki, bu bağlı siyahı nümunəsidir. 51 00:02:59,250 --> 00:03:05,960 >> Okay, indi mən bir bağlı siyahısında bir element əlavə etmək istəyirsinizsə, biz nə görmək edək. 52 00:03:05,960 --> 00:03:08,810 Birincisi, bir funksiyası insert növü etibarsız olacaq 53 00:03:08,810 --> 00:03:11,350 Mən bir şey qayıtmaq istəmirəm, çünki. 54 00:03:11,350 --> 00:03:14,200 Mən bir arqument kimi int etmək gedirəm, 55 00:03:14,200 --> 00:03:17,090 Mən daxil etmək istəyirəm nə bilmək istəyirəm, çünki. 56 00:03:17,090 --> 00:03:21,840 Mən etmək lazımdır ilk şey nədir? Bəli, mən newnode haqqında malloc olmalıdır, 57 00:03:21,840 --> 00:03:24,240 belə ki, ilk xəttidir. 58 00:03:24,240 --> 00:03:27,580 Mən yalnız bir bağlı siyahı qoymaq üçün yeni node yaradılması edirəm. 59 00:03:27,580 --> 00:03:32,360 Mən nə edə bilər? Bəli, biz bilirik ki, bağlı siyahıları bizim uygulamalarındaki 60 00:03:32,360 --> 00:03:38,180 sinif, biz həmişə bir qlobal dəyişən kimi baş qoydu. 61 00:03:38,180 --> 00:03:41,800 Belə ki, nə biz nə edə bilər rəhbəri dəyişdirmək deyil. 62 00:03:41,800 --> 00:03:44,300 Bu yeni node yeni rəhbərlik edə bilər, 63 00:03:44,300 --> 00:03:46,670 və əvvəlki rəhbəri qeyd edəcək. 64 00:03:46,670 --> 00:03:50,390 Necə ki, biz nə edə bilər? Mən nə üçün ilk şey 65 00:03:50,390 --> 00:03:54,770 , dəyəri yeni node 'n' dəyişdirmək 66 00:03:54,770 --> 00:03:57,530 funksiyası keçildi olan. 67 00:03:57,530 --> 00:04:01,050 Sonra newnode növbəti rəhbəri olacaq. 68 00:04:01,050 --> 00:04:05,800 Baş newnode olacaq. Belə ki, olduqca sadə. 69 00:04:05,800 --> 00:04:10,090 Bir node silmə, biz kimi bunu edə bilər - 70 00:04:10,090 --> 00:04:14,790 Biz bunu edə bilər bir yolu demək deyil, 71 00:04:14,790 --> 00:04:18,160 tamam, mən silmək istəyirdi əgər, məsələn, 3, 72 00:04:18,160 --> 00:04:24,850 mən nə edə bilər yalnız əvvəlki node qeyd edir 73 00:04:24,850 --> 00:04:27,580 3 növbəti node. 74 00:04:27,580 --> 00:04:29,400 Mən yalnız kimi bir şey olardı. 75 00:04:29,400 --> 00:04:33,400 Amma bunu problem nədir? 76 00:04:33,400 --> 00:04:37,400 Mən bir yaddaş sızıntısı var, mən artıq 3 nömrəli çıxışı yoxdur. 77 00:04:37,400 --> 00:04:42,480 Ki, problem edirəm ki node azad etmək niyyətində deyiləm ki. 78 00:04:42,480 --> 00:04:45,360 Mən yaddaş sızıntısı və (anlaşılmaz) mənə nifrət gedir gedirəm. 79 00:04:45,360 --> 00:04:49,370 Belə ki, əvəzinə bunu, yəqin ki, müvəqqəti göstərici olmalıdır. 80 00:04:49,370 --> 00:04:53,210 Mən temp qoydu. Mən silmək istədiyiniz node qeyd edir. 81 00:04:53,210 --> 00:04:58,170 Və sonra mən növbəti node nöqtəsinə əvvəlki qovşaqlarının hərəkət edə bilər 82 00:04:58,170 --> 00:05:00,390 Mən silmək istədiyiniz node. 83 00:05:00,390 --> 00:05:02,730 Və nəhayət, mən göstərici azad edə bilər. 84 00:05:02,730 --> 00:05:07,480 Mən orada yaratdığı göstərici azad etmək lazımdır? 85 00:05:07,480 --> 00:05:09,560 Mən, sadəcə, çünki yoxdur - 86 00:05:09,560 --> 00:05:13,430 fərq bu node malloc istifadə yaradılmışdır ki, 87 00:05:13,430 --> 00:05:17,280 Bu yalnız yığını bir NULL keçid elan edilib isə belə ki, yığın-yığın var. 88 00:05:17,280 --> 00:05:20,000 Mən onu azad yoxdur. 89 00:05:20,000 --> 00:05:22,030 Okay. >> Belə ki, indi blokları haqqında danışmaq edək. 90 00:05:22,030 --> 00:05:24,680 Depo olduqca sadə var. 91 00:05:24,680 --> 00:05:29,540 Biz yalnız seriallarda istifadə sinif borular və sıralarında etdi, 92 00:05:29,540 --> 00:05:32,820 ancaq tanış olmalıdır - yalnız xəbərdar olmaq 93 00:05:32,820 --> 00:05:40,740 Siz həmçinin bağlı siyahıları istifadə sıralarında destesi edə bilər. 94 00:05:40,740 --> 00:05:44,460 Bir sıra varsa, nə bir yığın ola bilər? 95 00:05:44,460 --> 00:05:46,810 A yığını, ilk, bir ölçüsü var olacaq. 96 00:05:46,810 --> 00:05:49,950 Siz indi ki yığını ölçüsü nə saxlamaq lazımdır. 97 00:05:49,950 --> 00:05:52,980 Və həmçinin, nömrələri bu halda, bir sıra olardı 98 00:05:52,980 --> 00:05:55,120 Siz istəyirsinizsə, bir array ola bilər 99 00:05:55,120 --> 00:06:00,380 strings, struct bir array, siz saxlamaq istəyirəm ki, bir şey. 100 00:06:00,380 --> 00:06:03,240 Yığını haqqında: bir yığını və bir bağlı siyahı arasındakı fərq 101 00:06:03,240 --> 00:06:08,590 yığını yalnız yığını qoymaq ki, son element çıxışı var. 102 00:06:08,590 --> 00:06:11,770 Bu ilk out, son deyirlər. 103 00:06:11,770 --> 00:06:15,090 Siz qablar bir yığın var kimi, 104 00:06:15,090 --> 00:06:17,670 Siz yığını üst bir tray qoymaq əgər, 105 00:06:17,670 --> 00:06:22,670 Siz digər qablar əldə etmək ilk ki tray aradan qaldırılması lazımdır. 106 00:06:22,670 --> 00:06:26,310 Bu borular ilə eyni şey. 107 00:06:26,310 --> 00:06:31,220 Mən, məsələn, bir yığın bir element əlavə etmək istəyirsinizsə Belə ki, mən nə etməliyəm? 108 00:06:31,220 --> 00:06:34,070 Bu push adlanır və bu, olduqca sadə oldu. 109 00:06:34,070 --> 00:06:37,130 Siz ilk şey yoxlamaq əgər yığını həcmi 110 00:06:37,130 --> 00:06:40,150 böyük və ya yığını imkanlarının bərabər deyil. 111 00:06:40,150 --> 00:06:45,810 Əgər siz artıq tam gücü var, əgər başqa bir şey əlavə edə bilməz. 112 00:06:45,810 --> 00:06:51,140 Və əgər, sonra yalnız yığını üçün element əlavə etmək üçün var. 113 00:06:51,140 --> 00:06:54,530 Və nəhayət, ölçüsü arttırmayı. Belə ki, olduqca sadə var. 114 00:06:54,530 --> 00:06:57,140 Mən yalnız 2 nömrəli əlavə edin. 115 00:06:57,140 --> 00:07:00,350 Mən pop istəyirsinizsə, hansı qaldırmaq istəyirəm o deməkdir ki, 116 00:07:00,350 --> 00:07:03,870 əlavə və element dəyər qayıtmaq ki, son element, 117 00:07:03,870 --> 00:07:09,180 Mən yoxlamaq üçün ilk şey yığını boş deyil ki. 118 00:07:09,180 --> 00:07:11,510 Boş əgər, mən bir şey geri bilməz, çünki. 119 00:07:11,510 --> 00:07:14,820 Bu halda, mən -1 qaytarılması alıram. 120 00:07:14,820 --> 00:07:18,960 Əks halda, mən spec ölçüsü azalma gedirəm, 121 00:07:18,960 --> 00:07:22,510 və nömrələr (s.size) qayıtmaq. 122 00:07:22,510 --> 00:07:27,230 Niyə ölçüsü azalma və sonra s.size qayıtmaq idi? 123 00:07:27,230 --> 00:07:30,930 Bu halda, spec ölçüsü 4 var, çünki var 124 00:07:30,930 --> 00:07:33,810 və mən dördüncü element qayıtmaq istəyirsiniz? 125 00:07:33,810 --> 00:07:36,030 Lakin dördüncü element indeksi nədir? Üç. 126 00:07:36,030 --> 00:07:44,510 Mən size ildən - 3 olacaq, Mən yalnız (s.size) s.numbers qayıda bilər 127 00:07:44,510 --> 00:07:48,410 3 çünki. Belə ki, yalnız index var. 128 00:07:48,410 --> 00:07:50,380 >> İndi gəldi. Sıralarında olduqca çox eyni şey var. 129 00:07:50,380 --> 00:07:54,950 Yalnız fərq ki, əvəzinə son olan ilk deyil 130 00:07:54,950 --> 00:07:57,480 Siz ilk, ilk var. 131 00:07:57,480 --> 00:07:59,460 Bir konsert getmək üçün bekliyoruz Yəqin ki, əgər, 132 00:07:59,460 --> 00:08:04,260 yerine bir sıra bir yığın olsa xoşbəxt ola bilməz. 133 00:08:04,260 --> 00:08:07,730 Gəlib keçən şəxs olan konsert daxil olan ilk şəxs olacaq. 134 00:08:07,730 --> 00:08:09,760 Siz yəqin ki, xoşbəxt ola bilməz. 135 00:08:09,760 --> 00:08:15,020 Növbədə almaq üçün ilk şəxs də çıxmaq üçün ilk şəxsdir. 136 00:08:15,020 --> 00:08:18,720 Belə ki, bir növbə müəyyən, serialın ölçüsü olan yanaşı, 137 00:08:18,720 --> 00:08:23,360 siz də yığını rəhbəri index olan baş, var. 138 00:08:23,360 --> 00:08:29,000 İndi ilk element belə. 139 00:08:29,000 --> 00:08:32,710 Enqueue baca üçün təkan kimi eyni şeydir. 140 00:08:32,710 --> 00:08:34,980 Çox sadəlövh olsaydı, yalnız demək ki, 141 00:08:34,980 --> 00:08:39,289 Mən push üçün olduğu kimi yaxşı, mən yalnız eyni şey edə bilərsiniz. 142 00:08:39,289 --> 00:08:44,030 Bu gücü kənarda deyil, mən yalnız kontrol edə bilərsiniz. 143 00:08:44,030 --> 00:08:48,760 Əgər, mən başqa mən yalnız yeni dəyər ixrac edə bilər, yalan qayıtmaq 144 00:08:48,760 --> 00:08:50,630 və sonra ölçüsü arttırmayı. 145 00:08:50,630 --> 00:08:52,750 Amma niyə bu səhv edir? 146 00:08:52,750 --> 00:08:55,010 Bu misal görək. 147 00:08:55,010 --> 00:08:57,020 Mən məhsullarının bir dəstə enqueue çalışıram, 148 00:08:57,020 --> 00:08:58,390 və sonra mən dequeue və enqueue gedirəm. 149 00:08:58,390 --> 00:09:00,550 Yoxdur əmrləri bir çox var, lakin çox sadə. 150 00:09:00,550 --> 00:09:04,790 Mən enqueue 5, belə ki, 5 əlavə etmək üçün gedir, sonra 7 alıram 151 00:09:04,790 --> 00:09:09,310 1, 4, 6, və sonra mən bir şey dequeue istəyirəm, 152 00:09:09,310 --> 00:09:12,000 Mən ilk element aradan qaldırılması üçün gedirəm deməkdir. 153 00:09:12,000 --> 00:09:14,640 Mən sağ, sayı 3 aradan qaldırılması üçün gedirəm? 154 00:09:14,640 --> 00:09:17,320 İlk element. Okay. 155 00:09:17,320 --> 00:09:21,450 Mən başqa bir şey enqueue cəhd əgər İndi, nə olacaq? 156 00:09:21,450 --> 00:09:24,290 Mənim həyata keçirilməsinə görə, 157 00:09:24,290 --> 00:09:31,040 Mən index q.size növbəti sayı qoymaq niyyətində idi. 158 00:09:31,040 --> 00:09:35,140 Bu halda, ölçüsü 8, 159 00:09:35,140 --> 00:09:38,640 belə index 8 son mövqeyi sağ burada olacaq. 160 00:09:38,640 --> 00:09:43,900 Mən burada 1 enqueue cəhd, mən son mövqeyi yadda olunacaq 161 00:09:43,900 --> 00:09:45,870 tamamilə yanlış olan 1 nömrəli üçün. 162 00:09:45,870 --> 00:09:49,870 Mən nə istəyirəm ətrafında kesmek və birinci mövqe getmək edir. 163 00:09:49,870 --> 00:09:52,870 Bəlkə yalnız yaxşı, mən yalnız yoxlamaq üçün, deyərdim 164 00:09:52,870 --> 00:09:55,600 Mən, həqiqətən, orada bir şey qoymaq bilər. 165 00:09:55,600 --> 00:09:58,560 Əgər, mən yalnız oh, yeni tam gücü, demək 166 00:09:58,560 --> 00:10:02,010 gücü əslində - 1, və orada bir element qoymaq bilməz. 167 00:10:02,010 --> 00:10:06,150 Amma problem nədir? Bu problem ki, mən yalnız burada hər şey dequeue əgər 168 00:10:06,150 --> 00:10:08,240 və sonra mən başqa bir şey əlavə etmək üçün cəhd edin, yalnız deyərdim ki, 169 00:10:08,240 --> 00:10:11,210 yaxşı, 0 olan tam gücü idi. 170 00:10:11,210 --> 00:10:13,620 Belə ki, queue getdi. 171 00:10:13,620 --> 00:10:16,990 Siz ətrafında paketi var, və ətrafında wrapping yolu 172 00:10:16,990 --> 00:10:22,040 Siz uzaqgörən və digər psets uşaqlar mod istifadə edilmişdir. 173 00:10:22,040 --> 00:10:29,090 Siz q.size + q.head edəcəyini anlamaq evdə cəhd edə bilərsiniz 174 00:10:29,090 --> 00:10:31,080 mod qabiliyyəti, lakin siz burada kontrol əgər, 175 00:10:31,080 --> 00:10:34,760 biz bu işləri görə bilərsiniz. 176 00:10:34,760 --> 00:10:37,760 Belə ki, son misal olaraq, 8 q.size idi 177 00:10:37,760 --> 00:10:47,590 burada serialın bu mövqeyi idi, çünki və rəhbəri, 1 oldu. 178 00:10:47,590 --> 00:10:51,970 Belə ki, + 1 8, 9 olacaq. Mod gücü 9 0 olardı. 179 00:10:51,970 --> 00:10:56,640 Bu indeks 0 getmək olardı. Biz sağ mövqedə olacaq. 180 00:10:56,640 --> 00:10:59,750 Və sonra evdə növbə edin. 181 00:10:59,750 --> 00:11:04,950 Bəzi mühüm şey: bir yığını və bir sıra arasında fərq anlamaq üçün cəhd. 182 00:11:04,950 --> 00:11:11,620 Evdə, enqueue, dequeue, push və pop həyata keçirilməsi ilə çox tanış almaq üçün çalışırıq. 183 00:11:11,620 --> 00:11:16,560 Siz onların hər biri istifadə zaman da başa düşürük. 184 00:11:16,560 --> 00:11:22,830 >> Belə ki Pokemons bir dəstə ilə 10 saniyə istirahət edək. 185 00:11:22,830 --> 00:11:26,080 İndi geri data strukturları gedək. 186 00:11:26,080 --> 00:11:29,770 Masalar Hash. Bir çox hash masalar qorxuram idi. 187 00:11:29,770 --> 00:11:33,650 problem 6 dəsti, İmla Checker. 188 00:11:33,650 --> 00:11:35,980 Hash masalar və çalışır, bir çox insanlar onlardan qorxuram almaq. 189 00:11:35,980 --> 00:11:38,540 Onlar anlamaq üçün belə ağır olduğunuzu düşünürəm. Bəli? 190 00:11:38,540 --> 00:11:41,490 [Rob Bowden] Problem 5 seçin. >> Problem Bəli, 5 seçin. Thanks Rob. 191 00:11:41,490 --> 00:11:43,370 Bəli. Six Huff n 'Puff, yeah idi. 192 00:11:43,370 --> 00:11:49,340 Problem 5 Spell Checker idi qurmaq və bir hash masa və ya cəhd istifadə etmək idi. 193 00:11:49,340 --> 00:11:55,360 Bir çox onlar anlamaq çətin super idi ki, onlar əslində olduqca sadə istəyirik. 194 00:11:55,360 --> 00:12:01,290 Bir hash table əsasən, nədir? A hash table bağlı siyahıları bir sıra edir. 195 00:12:01,290 --> 00:12:06,730 Bir sıra və bir hash table arasında yeganə fərq 196 00:12:06,730 --> 00:12:09,730 hash cədvəldə bir hash funksiyası deyilən bir şey var. 197 00:12:09,730 --> 00:12:12,080 Bir hash funksiyası nədir? 198 00:12:12,080 --> 00:12:13,970 Uşaqlar burada oxuya bilərsiniz əgər mən bilmirəm. 199 00:12:13,970 --> 00:12:16,090 Bu hash masa nümunəsidir. 200 00:12:16,090 --> 00:12:19,220 Belə ki, siz 31 elementləri ilə bir sıra ki, görürük. 201 00:12:19,220 --> 00:12:22,440 Və biz bir hash table nə bir hash funksiyası var 202 00:12:22,440 --> 00:12:26,660 ki, əsas tərcümə edir, hər bir index int. 203 00:12:26,660 --> 00:12:31,740 Əgər, misal üçün, mən B. Harrison üçün seçmək istəyirsinizsə, 204 00:12:31,740 --> 00:12:34,190 Mən hash funksiyaları B. Harrison qoymaq olardı 205 00:12:34,190 --> 00:12:36,960 və hash funksiyası 24 qayıtmaq istəyirəm. 206 00:12:36,960 --> 00:12:40,930 Mən 24-ci ildə B. Harrison saxlamaq istəyirəm ki, bilirik. 207 00:12:40,930 --> 00:12:46,580 Belə ki, yalnız bir sıra olan və bir hash table olan arasında fərq var. 208 00:12:46,580 --> 00:12:48,740 Bu hash table, sizə gedir ki, bir funksiyası lazımdır 209 00:12:48,740 --> 00:12:54,740 harada saxlamaq istəyirəm ki, veri. 210 00:12:54,740 --> 00:12:57,040 Bu hash funksiyası, bir hash funksiyası üçün baxmaq istəyirəm 211 00:12:57,040 --> 00:13:00,600 ki deterministic və paylanmış edir. 212 00:13:00,600 --> 00:13:07,810 Burada görə bilərsiniz kimi, mən mağaza istəyirdi ki, məlumatların bir çox həqiqətən 19 olduğunu görmək 213 00:13:07,810 --> 00:13:12,470 əvəzinə bütün pulsuz olan 31 və 30 və 29, istifadə. 214 00:13:12,470 --> 00:13:16,920 Mən istifadə ki, hash funksiyası çox yaxşı paylanmış deyil. 215 00:13:16,920 --> 00:13:20,710 Biz yaxşı paylanmış deyəndə, o, biz istəyirik o deməkdir ki, 216 00:13:20,710 --> 00:13:26,520 təxminən ən azı 1 və ya hər biri üçün 2 - 217 00:13:26,520 --> 00:13:32,190 kimi, seriallarda göstəricilərinin hər biri üçün 1 və ya 2 fərq. 218 00:13:32,190 --> 00:13:43,950 Siz, təxminən, serialın hər bağlıdır siyahısına elementləri eyni sayda olsun. 219 00:13:43,950 --> 00:13:48,600 Və bu ki, hash cədvəldə etibarlı hash masalar kimi görmək əgər yoxlamaq üçün asandır. 220 00:13:48,600 --> 00:13:51,770 >> Sonra ağaclar. Bu ağac. 221 00:13:51,770 --> 00:13:56,400 Kompüter ağaclar nədənsə alt-üst edir. 222 00:13:56,400 --> 00:14:00,150 Belə ki, burada ağac kök və sonra yarpaqları var. 223 00:14:00,150 --> 00:14:05,630 Siz yalnız valideyn və uşaq üçün mal bilməlidir. 224 00:14:05,630 --> 00:14:12,880 Hər node əsas aşağıda olan qovşaqlarının olan onun uşaqlar var. 225 00:14:12,880 --> 00:14:19,660 Belə ki, məsələn, 2, orada 3 və digər uşaq üçün ana olacaq 226 00:14:19,660 --> 00:14:25,290 3-1 üçün valideyn və orada olan digər uşaqlar olacaq isə. 227 00:14:25,290 --> 00:14:29,990 Və 1 3 uşaq olacaq, və. 228 00:14:29,990 --> 00:14:34,610 Biz daha maraqlı bir şey, bir ikili axtarış ağac adlanır var 229 00:14:34,610 --> 00:14:39,040 bir node hüququ bütün dəyərlər 230 00:14:39,040 --> 00:14:41,660 burada, sağ olacaq - sağ, 231 00:14:41,660 --> 00:14:46,780 kök element daha çox olacaq. 232 00:14:46,780 --> 00:14:49,780 Sağ mən sağ burada sayı 5 varsa, bütün elementləri 233 00:14:49,780 --> 00:14:51,940 5 daha çox olacaq, və sol olunur 234 00:14:51,940 --> 00:14:56,770 bütün elementləri 5-dən az olacaq. 235 00:14:56,770 --> 00:14:58,780 Niyə bu faydalıdır? 236 00:14:58,780 --> 00:15:01,660 Yaxşı, mən sayı 7 burada yoxlamaq istəyirsinizsə, misal üçün, 237 00:15:01,660 --> 00:15:05,960 Mən yalnız ilk 5 getmək və mən gedirəm, 5-dən 7 böyük və ya az? 238 00:15:05,960 --> 00:15:09,540 Bu böyük, mən bu ağac hüququ olmalıdır olacaq bilirik. 239 00:15:09,540 --> 00:15:13,980 Mən baxmaq çox az məhsulları var. 240 00:15:13,980 --> 00:15:19,520 Bir ikili axtarış ağac, node həyata, mən yalnız məlumat var gedirəm 241 00:15:19,520 --> 00:15:21,750 belə int n, siz də bir simli ola bilər 242 00:15:21,750 --> 00:15:23,630 və ya istədiyini bir şey. 243 00:15:23,630 --> 00:15:28,100 Siz yalnız böyük nə müəyyən diqqətli olmalıdır, daha az edir. 244 00:15:28,100 --> 00:15:30,390 Beləliklə, siz strings əgər, misal üçün, müəyyən edə bilər 245 00:15:30,390 --> 00:15:34,690 sağ bütün bu şeyi daha uzunluğu üçün gedir ki, 246 00:15:34,690 --> 00:15:40,940 sol aşağı uzunluğu gedir, belə ki, siz həqiqətən var. 247 00:15:40,940 --> 00:15:44,930 >> Necə BST tapa həyata keçirə bilər? 248 00:15:44,930 --> 00:15:47,840 Biz nə üçün lazımdır ilk şey kök NULL olub olmadığını kontrol edir. 249 00:15:47,840 --> 00:15:50,920 Bu NULL varsa, bu şey yoxdur o deməkdir ki, 250 00:15:50,920 --> 00:15:53,330 hətta bir ağac, sağ yoxdur, çünki? 251 00:15:53,330 --> 00:15:55,790 Mən yalan qayıtmaq. 252 00:15:55,790 --> 00:15:58,740 Əks halda, mən sayı çox olarsa, yoxlamaq üçün gedirəm 253 00:15:58,740 --> 00:16:01,720 kökündə dəyəri daha. 254 00:16:01,720 --> 00:16:04,250 Mən sağ element tapmaq üçün cəhd gedirəm 255 00:16:04,250 --> 00:16:08,590 ağac. 256 00:16:08,590 --> 00:16:11,310 Mən burada recursion istifadə edirəm ki, görürük. 257 00:16:11,310 --> 00:16:14,150 Az var əgər, sonra, Mən sol baxmaq gedirəm. 258 00:16:14,150 --> 00:16:18,330 Və nəhayət, əks halda, bu, daha böyük az və ya deyil, əgər, 259 00:16:18,330 --> 00:16:20,660 bu dəyəri özü deməkdir. 260 00:16:20,660 --> 00:16:23,010 Mən yalnız doğru qayıtmaq. 261 00:16:23,010 --> 00:16:26,360 Mən, əgər, əgər istifadə ki, burada görə bilərsiniz. 262 00:16:26,360 --> 00:16:30,820 Və unutmayın viktorina 0, biz, əgər, əgər ki, bir problem var idi 263 00:16:30,820 --> 00:16:32,780 və siz təsirsizlik tapmaq idi, 264 00:16:32,780 --> 00:16:35,180 və təsirsizlik əgər istifadə idi. 265 00:16:35,180 --> 00:16:39,060 Siz əgər başqa, əgər başqa, əgər istifadə və başqa olmalıdır. 266 00:16:39,060 --> 00:16:44,240 Əgər başqa, əgər başqa burada, belə ki, mən başqa istifadə etməli? 267 00:16:44,240 --> 00:16:46,200 Mu hər kəs - yeah? 268 00:16:46,200 --> 00:16:51,140 [Tələbə danışan işitilemez] 269 00:16:51,140 --> 00:16:53,480 Bu mükəmməl. Belə ki, o, bu məsələ deyil ki var 270 00:16:53,480 --> 00:16:55,930 yalnız çünki biz əvvəl idi ki, təsirsizlik 271 00:16:55,930 --> 00:16:59,550 ki, bir vəziyyət təmin edilmişdir bəlkə, çünki 272 00:16:59,550 --> 00:17:03,570 belə bir fəaliyyət həyata, lakin sonra digər bütün şərtlər yoxlamaq üçün gedirdi. 273 00:17:03,570 --> 00:17:06,319 Amma bu halda, dərhal geri, belə ki, fərqi yoxdur. 274 00:17:06,319 --> 00:17:09,220 Belə ki, əgər başqa istifadə etmək yoxdur. 275 00:17:09,220 --> 00:17:11,740 >> Və nəhayət, in çalışır haqqında danışaq, 276 00:17:11,740 --> 00:17:13,800 hər kəsin sevimli edir. 277 00:17:13,800 --> 00:17:15,980 A cəhd seriallarda bir ağac var. 278 00:17:15,980 --> 00:17:20,369 Bu dəyərlər axtarmaq üçün çox sürətli, ancaq yaddaş bir çox istifadə edir. 279 00:17:20,369 --> 00:17:22,530 Və bu sözləri filter adətən, belə ki, zaman 280 00:17:22,530 --> 00:17:27,920 Sizin telefon bir telefon kitab kimi, məsələn, mən bilmirəm, həyata istəyirəm 281 00:17:27,920 --> 00:17:30,440 və B yazın etmək istəyirəm 282 00:17:30,440 --> 00:17:32,510 və yalnız B. olan insanların adları var 283 00:17:32,510 --> 00:17:37,960 Bu, misal üçün, bir cəhd edərək ki, həyata etmək çox asandır. 284 00:17:37,960 --> 00:17:39,820 Necə bir cəhd bir node müəyyən edirsiniz? 285 00:17:39,820 --> 00:17:43,910 Siz yalnız is_word olacaq ki, bir bool var. 286 00:17:43,910 --> 00:17:48,660 Ki, node əvvəl bütün karakterleri istifadə edərək təmsil 287 00:17:48,660 --> 00:17:51,920 Bir söz yaratmaq üçün bacardıq 288 00:17:51,920 --> 00:17:57,230 və sonra qovşaqlarının üçün göstəricilər bir sıra olacaq. 289 00:17:57,230 --> 00:18:03,120 Əgər biz bir valideyn qovşaqlarının array, belə ki, node * array var ki, bax edə bilərəmmi? Bəli? 290 00:18:03,120 --> 00:18:06,050 Belə ki, iş necə edək. Yazım çek üçün, 291 00:18:06,050 --> 00:18:08,230 biz 27 elementlər bir sıra var, 292 00:18:08,230 --> 00:18:12,150 biz bütün məktublar plus apostrof var. 293 00:18:12,150 --> 00:18:17,800 Mən lövhədə yazmaq etmək istəyirəm, çünki burada əvvəl yalnız 2 istifadə etmək üçün gedirəm. 294 00:18:17,800 --> 00:18:20,230 Okay. Belə ki, bu cəhd bir nümunəsidir. 295 00:18:20,230 --> 00:18:25,600 Mən ilk node müəyyən, mən 2 elementlərin bir sıra olacaq 296 00:18:25,600 --> 00:18:29,290 Null 2 ​​göstəricilər var, mən yalnız 'bir' və 'b' qoymaq. 297 00:18:29,290 --> 00:18:32,430 Mən is_word deyir ki bool gedirəm. 298 00:18:32,430 --> 00:18:34,420 Bu ilk bir yalan olacaq, 299 00:18:34,420 --> 00:18:37,370 yalnız, çünki bundan əvvəl hər hansı bir simvol yoxdur. 300 00:18:37,370 --> 00:18:40,900 Belə ki, bir boş söz bir söz deyil. Belə ki, yalan var. 301 00:18:40,900 --> 00:18:46,320 Mən bu lüğət 'bir' əlavə etmək istəyirsinizsə, mən nə olardı? 302 00:18:46,320 --> 00:18:49,760 Mən yalnız 'bir' üçün yeni node malloc etmək olardı, 303 00:18:49,760 --> 00:18:54,630 və sonra onun söz gerçək əlavə edin. 304 00:18:54,630 --> 00:19:00,180 Belə ki, yalnız 'bir' doğru olacaq edərək təmsil edir. Mənada? 305 00:19:00,180 --> 00:19:04,120 Mən ba 'əlavə etmək istəyirsinizsə, sonra mən' b 'üçün malloc 1 lazımdır, 306 00:19:04,120 --> 00:19:07,550 və sonra mən, yalan üçün boolean qurmaq gedirəm 307 00:19:07,550 --> 00:19:10,160 özü 'b' bir söz deyil. 308 00:19:10,160 --> 00:19:13,010 Sonra mən başqa 'bir' üçün bir, belə ki, ba 'malloc gedirəm, 309 00:19:13,010 --> 00:19:16,290 və sonra mən bu doğru bir söz var qurmaq üçün gedirəm. 310 00:19:16,290 --> 00:19:18,950 "Ba" bir söz deyil. 311 00:19:18,950 --> 00:19:21,910 Mən görmək istəyirsinizsə sonra 'b', bu lüğət əgər 312 00:19:21,910 --> 00:19:26,730 Mən yalnız ilk biri, 'b' bilərsiniz. Mən aşağı getmək və mən söz baxmaq və bu, yalan deyir. 313 00:19:26,730 --> 00:19:30,110 Belə ki, bir söz deyil. Mən ba 'yoxlamaq istəyirsinizsə, 314 00:19:30,110 --> 00:19:38,010 Mən ilk biri, 'b' gedin ve sonra 'bir' getmək, və mən doğru bax, belə bir söz. Mənada? 315 00:19:38,010 --> 00:19:41,950 Bir çox çalışır ilə qarışıq almaq. No? 316 00:19:41,950 --> 00:19:44,740 >> Nəhayət, Huffman kodlaşdırma. Huffman coding çox faydalıdır 317 00:19:44,740 --> 00:19:47,550 yaddaş saxlamaq və mətn faylları kompres, 318 00:19:47,550 --> 00:19:52,270 yalnız çünki siz, məsələn, 'bir' və 'e' istifadə bir çox dəfə, 319 00:19:52,270 --> 00:19:57,710 uşaqlar qədər 'q' və ya 'z' istifadə əgər sənədlər, lakin mən bilmirəm. 320 00:19:57,710 --> 00:20:02,040 Hər bir xarakter üçün yalnız 1 byte alaraq, 321 00:20:02,040 --> 00:20:08,520 hər bir - biz ASCII masa var ki, 256 simvol çox optimal deyil, 322 00:20:08,520 --> 00:20:11,410 daha çox istifadə ki, bəzi simvol var, çünki, 323 00:20:11,410 --> 00:20:15,180 Siz yəqin ki, o daha az yaddaş istifadə etməlidir. 324 00:20:15,180 --> 00:20:17,560 Necə Huffman kodlaşdırma istifadə edirsiniz? 325 00:20:17,560 --> 00:20:20,010 Biz Huffman ağac var. 326 00:20:20,010 --> 00:20:23,370  A Huffman ağac qovşaqlarının var 327 00:20:23,370 --> 00:20:27,760 Məktubda, 'c', 'b', 'bir' kimi olacaq ki, bir simvolu var ki, 328 00:20:27,760 --> 00:20:32,990 Siz nə məktub, söz mətn görünür ki, tezlik tezlik, 329 00:20:32,990 --> 00:20:36,280 Siz üçün Huffman ağac yaratmaq ki 330 00:20:36,280 --> 00:20:41,800 və sonra Huffman ağac sol qeyd edir ki, bir node 331 00:20:41,800 --> 00:20:47,210 və sağa qeyd edir ki, başqa bir node. Belə ki, yalnız bir ağac kimi. 332 00:20:47,210 --> 00:20:49,440 Necə bir Huffman ağac qurmaq edirsiniz? 333 00:20:49,440 --> 00:20:54,020 Siz aşağı tezliklərin var ki, 2 qovşaqlarının seçmək olacaq. 334 00:20:54,020 --> 00:20:56,490 Bir tie varsa 2 qovşaqlarının seçmək olacaq 335 00:20:56,490 --> 00:20:59,870 həmçinin ən aşağı ASCII dəyərlər ki. 336 00:20:59,870 --> 00:21:02,420 Sonra o 2 qovşaqlarının, yeni ağac yaratmaq olacaq 337 00:21:02,420 --> 00:21:08,030 ki, valideyn node ilə birgə tezlik var gedir. 338 00:21:08,030 --> 00:21:13,240 Və sonra meşə olan 2 uşaq aradan qaldırılması üçün olacaq 339 00:21:13,240 --> 00:21:15,570 və ana ilə əvəz. 340 00:21:15,570 --> 00:21:18,930 Və siz yalnız meşə 1 ağac qədər ki, demək olacaq. 341 00:21:18,930 --> 00:21:23,840 Belə ki, sizə ZAMYLA üçün Huffman ağac edəcəyini necə edək. 342 00:21:23,840 --> 00:21:29,220 Siz bütün məktublar 'A' istisna olmaqla tezliyi 1 Burada bilərsiniz; tezlik 2 var. 343 00:21:29,220 --> 00:21:34,090 Mən ASCII dəyəri və tezlik qaydaya bütün məktublar üçün qovşaqlarının yaratmışdır. 344 00:21:34,090 --> 00:21:40,090 Mən ilk ağac yaratmaq istəyirsinizsə Belə ki, 'L' və 'M' ilə olacaq. 345 00:21:40,090 --> 00:21:43,100 Belə ki, burada. Cüt tezliyi 2 olacaq 346 00:21:43,100 --> 00:21:49,470 + 1 1, çünki, sonra aşağı tezliklərin ilə növbəti 2 'Y' və 'Z' var. 347 00:21:49,470 --> 00:21:53,180 2 tezlik var - və sonra onlardan bütün var. 348 00:21:53,180 --> 00:22:00,470 Belə ki, növbəti bir ən aşağı ASCII dəyəri var ki, olanları olan olanlardır? 349 00:22:00,470 --> 00:22:04,830 'A' və 'L'. Mən yeni node yaratmaq, 350 00:22:04,830 --> 00:22:09,930 və nəhayət, 4 və 2 var, belə ki, 2 sol olacaq. 351 00:22:09,930 --> 00:22:12,430 Və bu Huffman ağac. 352 00:22:12,430 --> 00:22:16,060 Mən bəzi mətn yazmaq istəyirəm Sonra əgər, 353 00:22:16,060 --> 00:22:24,440 kimi Huffman ağac istifadə, mətn çevirmək ikili çox asandır. 354 00:22:24,440 --> 00:22:30,220 Mən sol hərəkət 0 və sağa hərəkət edir ki, əgər Məsələn, bir 1 355 00:22:30,220 --> 00:22:32,410 Nə təmsil gedir ki? 356 00:22:32,410 --> 00:22:35,530 Belə ki kimi 1, 1, sağ, belə ki, sağ, 357 00:22:35,530 --> 00:22:40,370 və sonra belə tərk 0, L olardı, sonra 1, 0, 0. 358 00:22:40,370 --> 00:22:43,950 Belə ki, 1, 0, belə ki, yalnız 1, 0, 'A'. 359 00:22:43,950 --> 00:22:47,540 Və sonra 0, 1, belə ki, 'Z'. 360 00:22:47,540 --> 00:22:52,170 Və sonra 1, 0, 0 - no. 361 00:22:52,170 --> 00:22:56,780 0 0 'Y' olacaq, belə Lazy edəcək. 362 00:22:56,780 --> 00:23:06,060 Belə ki, mənim üçün bütün var, Rob-nin üzərində olacaq. 363 00:23:06,060 --> 00:23:08,400 >> [Rob Bowden] Belə ki, həftənin 7 stuff. 364 00:23:08,400 --> 00:23:11,390 Biz, həqiqətən, hızlı üzərində getmək üçün bir çox var. 365 00:23:11,390 --> 00:23:13,430 Bitwise operatorları, bufer daşqın, 366 00:23:13,430 --> 00:23:16,760 CS50 kitabxana, sonra HTML, HTTP, CSS. 367 00:23:16,760 --> 00:23:20,990 15 20 dəqiqə kimi bütün. 368 00:23:20,990 --> 00:23:24,330 Bitwise operatorları. Siz bilmək lazımdır ki, onlardan 6 var. 369 00:23:24,330 --> 00:23:31,200 Bitwise və bitwise və ya, XOR, sol shift, sağ shift və deyil. 370 00:23:31,200 --> 00:23:35,420 Sağ keçmək və ancaq bütün mühazirə gördü. 371 00:23:35,420 --> 00:23:40,480 Biz tez burada artıq getmək lazımdır, lakin bu mövcud olan 6 olduğunu bilmək yaxşı. 372 00:23:40,480 --> 00:23:45,070 Bitwise operatorları + 4 3 bunu kimi unutmayın. 373 00:23:45,070 --> 00:23:49,420 Siz 3 və 4-binar ilə məşğul deyil. 374 00:23:49,420 --> 00:23:56,550 Bitwise operatorları ilə faktiki ədəd 3 və 4 fərdi bit ilə məşğul olur. 375 00:23:56,550 --> 00:23:59,120 >> Beləliklə, biz demək lazımdır ki, ilk bir bitwise deyil 376 00:23:59,120 --> 00:24:02,340 və bunu bütün bit flip edir. 377 00:24:02,340 --> 00:24:05,500 C, bu yazılı edirsinizsə Belə ki, burada, siz onu yazmaq olmaz 378 00:24:05,500 --> 00:24:09,380 ~ 11011 və ya hər hansı kimi, siz ~ 4 kimi yazmaq olardı 379 00:24:09,380 --> 00:24:12,970 sonra 4 ikili təmsil flip bilər. 380 00:24:12,970 --> 00:24:24,800 Belə ki, burada, 1-nin ~ bir ikili sayı 1101101 dəqiq 0 nin bütün 1-nin flip edir və bütün 0 nin. 381 00:24:24,800 --> 00:24:27,600 Mən demək ki, bu tez-tez istifadə, 382 00:24:27,600 --> 00:24:30,830 biz bir sıra ilə gəlmək istədiyiniz kimi və biz bir az onu görürsünüz edir 383 00:24:30,830 --> 00:24:35,460 bit bütün bunlardan biri istisna olmaqla, 1 harada. 384 00:24:35,460 --> 00:24:38,560 Belə ki sayı bildirmək adətən asandır 385 00:24:38,560 --> 00:24:40,630 yalnız bir bit müəyyən olduğu, 386 00:24:40,630 --> 00:24:44,650 və sonra onun ~, belə ki, hər bit bir istisna olmaqla müəyyən edilir almaq. 387 00:24:44,650 --> 00:24:50,300 Belə ki, biz bir az daha çox istifadə etmək olacaq nə. 388 00:24:50,300 --> 00:24:58,220 >> Bitwise və ya. Burada 2 ikili nömrələri, və bu 2 ədəd var 389 00:24:58,220 --> 00:25:00,780 Onlar hər mümkün təmsil ildən, olduqca nümayəndəsi 390 00:25:00,780 --> 00:25:07,290 bit birləşməsi siz fəaliyyət lazımdır bilər. 391 00:25:07,290 --> 00:25:13,540 Mən hər bit or'd zaman Burada, biz yalnız düz aşağı müqayisə etmək olacaq. 392 00:25:13,540 --> 00:25:15,410 Belə ki, sol tərəfdə biz 1 və 1 var. 393 00:25:15,410 --> 00:25:20,510 Mən bitwise zaman | o, nə üçün gedirəm? Biri. 394 00:25:20,510 --> 00:25:25,320 0 və 1 mənə vermək gedir | Sonra bitwise? Biri. 395 00:25:25,320 --> 00:25:27,840 Bitwise 1 və 0 eyni şey, bir olacaq. 396 00:25:27,840 --> 00:25:31,880 Bitwise 0 | 0 mənə 0 vermək niyyətindədir. 397 00:25:31,880 --> 00:25:37,300 0 case | Mən 0 aldığı yalnız işi 0 edir. 398 00:25:37,300 --> 00:25:40,020 Və yalnız məntiqi Örs kimi ki, hesab edə bilər. 399 00:25:40,020 --> 00:25:44,830 Siz doğru 1 və yalan 0 hesab əgər Belə ki, eyni şey burada tətbiq edilir. 400 00:25:44,830 --> 00:25:50,040 Belə ki, doğru və ya əsl həqiqətdir; doğru və ya yalan doğrudur. 401 00:25:50,040 --> 00:25:57,150 Saxta və ya əsl həqiqətdir; saxta və ya saxta əslində yalan var ki, yalnız bir şey. 402 00:25:57,150 --> 00:26:00,100 Burada bilmək lazımdır ki, misal var 403 00:26:00,100 --> 00:26:05,160 bitwise operatorları istifadə edildikdə olduqca yaxşı nümunə kimi. 404 00:26:05,160 --> 00:26:08,660 Burada, biz və ya OX20 ilə kapital 'A', 405 00:26:08,660 --> 00:26:11,830 və biz bir şey almaq, ikinci bu baxmaq lazımdır. 406 00:26:11,830 --> 00:26:16,020 Və biz ya kiçik 'a' OX20 ilə, biz bir şey almaq əgər. 407 00:26:16,020 --> 00:26:26,750 Belə ki, ASCII masa qoparmaq imkan verir. 408 00:26:26,750 --> 00:26:34,000 Okay. Burada 'A' olduğunu görmək - 409 00:26:34,000 --> 00:26:36,920 burada biz 'A' 65 decimal var. 410 00:26:36,920 --> 00:26:45,120 Amma Ox41 olan hexadecimal ilə getmək lazımdır. 411 00:26:45,120 --> 00:26:48,280 Pretty əmin biz sinif gördüm. Mən biz sinif gördüm edirəm 412 00:26:48,280 --> 00:26:52,730 Bu hexadecimal olan ikili çevirmək üçün olduqca asandır ki,. 413 00:26:52,730 --> 00:26:55,280 Belə ki, burada, mən ikili daxil 4 qoymaq istəyirsinizsə, 414 00:26:55,280 --> 00:26:59,550 ki, yalnız 0100 olacaq. 415 00:26:59,550 --> 00:27:03,620 Bu 1-in yeri, 2 yer, 4 yerdir, belə ki, bu 4. 416 00:27:03,620 --> 00:27:08,550 Sonra 0001 olacaq olan ikili daxil 1 split bilər. 417 00:27:08,550 --> 00:27:14,280 Və bu ikili 'A' nümayəndəliyi olacaq. 418 00:27:14,280 --> 00:27:22,720 Kiçik 'a', indi Ox61 olacaq alaraq, 419 00:27:22,720 --> 00:27:27,050 onun ikili bu qədər parçalanması yerləşir, belə ki, 6 - 420 00:27:27,050 --> 00:27:37,830 Həqiqətən bunu edək - no pozan var? Eraser. 421 00:27:37,830 --> 00:27:48,220 Ox61. Belə ki, ikili daxil 6 parçalanması + 4 + 2 + 0 0 olacaq. 422 00:27:48,220 --> 00:27:54,610 Və parçalanması 1 0001 olacaq. 423 00:27:54,610 --> 00:27:56,520 Bu 2 arasında fərq axtarır 424 00:27:56,520 --> 00:28:04,250 biz bir kiçik və kapital 'A' arasında yeganə fərq bu bir az olduğunu görürük. 425 00:28:04,250 --> 00:28:11,810 - Tamam Belə ki, burada geri gəlir. 426 00:28:11,810 --> 00:28:15,920 Biz bit OX20 nə baxsaq, burada geri gələn 427 00:28:15,920 --> 00:28:22,210 onun ikili daxil belə parçalanması OX20, 428 00:28:22,210 --> 00:28:27,310 0010, 0000. 429 00:28:27,310 --> 00:28:33,470 OX20, müəyyən edilir ki, yalnız bit, biz narahat ki, bu az 430 00:28:33,470 --> 00:28:38,210 kapital və kiçik 'a' arasında keçid ilə. 431 00:28:38,210 --> 00:28:47,610 Əgər bu, 'A' olan I və ya 'A', 432 00:28:47,610 --> 00:28:50,580 əgər mən və ya OX20 ilə 'A', 433 00:28:50,580 --> 00:28:53,490 nə üçün gedirəm? 434 00:28:53,490 --> 00:28:58,960 [Tələbə işitilemez] >> kiçik 'a', bir 1 Bu bit çevirmek olacaq, çünki. 435 00:28:58,960 --> 00:29:04,170 Və əgər mən və ya 'a' OX20 ilə, nə üçün gedirəm? 436 00:29:04,170 --> 00:29:08,780 Bir kiçik, çünki yalnız Oring 'a' OX20 ilə, 437 00:29:08,780 --> 00:29:14,580 Mən yalnız bir, 1 bu bir bit Oring üçün gedirəm, bu etməz, belə ki, artıq bir 1 var. 438 00:29:14,580 --> 00:29:17,960 Beləliklə, biz 'bir' və 'bir' almaq. 439 00:29:17,960 --> 00:29:24,820 >> Bitwise və. Yenə biz məntiqi və həmkarı kimi hesab edə bilər. 440 00:29:24,820 --> 00:29:28,180 Sol tərəfdə biz doğru & doğrudur. 441 00:29:28,180 --> 00:29:31,160 Bu, doğru olacaq və hallarda bütün var 442 00:29:31,160 --> 00:29:36,270 , yalan və doğru və ya doğru & yalan, və ya yalan & yalan 443 00:29:36,270 --> 00:29:38,550 bunlar doğru. 444 00:29:38,550 --> 00:29:44,170 Belə ki, nə biz əldə qədər başa 1000. 445 00:29:44,170 --> 00:29:48,830 Belə ki, indi burada, burada etibarlı bitwise deyil istifadə etdiyiniz harada, 446 00:29:48,830 --> 00:29:52,230 biz OX20 olduğu. 447 00:29:52,230 --> 00:29:54,350 Belə ki, bu OX20 edir. 448 00:29:54,350 --> 00:29:59,570 İndi nə etmək istədiklərini, bitwise OX20 of ~. 449 00:29:59,570 --> 00:30:03,600 Bütün bit flip edir. 450 00:30:03,600 --> 00:30:09,330 Mən 1101, 1111 var. 451 00:30:09,330 --> 00:30:18,940 Və 'A' ~ OX20 mənə nə verəcək ilə anded? 452 00:30:18,940 --> 00:30:22,430 Biz, həqiqətən, düşünmək lazımdır yalnız bit, bu biridir 453 00:30:22,430 --> 00:30:26,020 ci ildən bu bit bütün 1 qurmaq əgər, 454 00:30:26,020 --> 00:30:29,000 sonra biz dəqiq nə 'A' idi almaq olacaq, 455 00:30:29,000 --> 00:30:31,260 istisna olmaqla, bəlkə, nə bu qədər deyil. 456 00:30:31,260 --> 00:30:34,460 Bu 1 idi, indi, bir 0 qurmaq olacaq, çünki 457 00:30:34,460 --> 00:30:39,810 Bu nə, bu 0 olacaq ilə anded çünki. 458 00:30:39,810 --> 00:30:43,280 Belə ki, 'A' ~ OX20 mənə vermək gedir & nədir? 459 00:30:43,280 --> 00:30:48,200 [Tələbələr cavab işitilemez] >> Və 'a' və nə - bu 'A' var. 460 00:30:48,200 --> 00:30:52,170 Və 'a' & ~ OX20 mənə vermək gedir nədir? 461 00:30:52,170 --> 00:30:56,720 'A.' Bu hazırda 1 edir. 462 00:30:56,720 --> 00:30:59,570 Bu 0 ilə Anding, bir 0 etmək niyyətindədir 463 00:30:59,570 --> 00:31:02,530 və indi biz bir 'A' almaq olacaq. 464 00:31:02,530 --> 00:31:06,600 >> Həm ', A' və bu tipli ən son deyil, 465 00:31:06,600 --> 00:31:10,830 biz XOR var. Bu, çox kimi və ya, 466 00:31:10,830 --> 00:31:14,400 Bu yalnız deməkdir və ya başqa. 467 00:31:14,400 --> 00:31:18,420 Bu adətən kimi və ya real dünyada nə kimi. 468 00:31:18,420 --> 00:31:23,190 Beləliklə, siz ya 'x' və ya 'y', deyil, həm də yoxdur. 469 00:31:23,190 --> 00:31:28,700 Burada ^ 1 1 0 olacaq. 470 00:31:28,700 --> 00:31:33,650 Əsl Çünki, bu - bu məntiqi doğru və yalan ilə yaxşı iş deyil 471 00:31:33,650 --> 00:31:37,150 , bitwise və və ya kimi 472 00:31:37,150 --> 00:31:40,100 lakin əsl ^ doğru yalan. 473 00:31:40,100 --> 00:31:44,810 Onlardan yalnız biri doğrudur, əgər biz yalnız doğru qayıtmaq istəyirəm, çünki. 474 00:31:44,810 --> 00:31:50,950 Belə ^ 1 1 0. Nə ^ 1 0 haqqında? 475 00:31:50,950 --> 00:31:56,010 1-dir. ^ 0 1 ^ 0 0 0, 1. 476 00:31:56,010 --> 00:32:03,890 Belə ki, bütün hallarda, 0 bitwise bir şey 0 0 olacaq. 477 00:32:03,890 --> 00:32:10,270 1 bitwise bir şey 0 və ya 0 bitwise 1, 478 00:32:10,270 --> 00:32:14,660 bu halda | və ya ^, bu 1 olacaq və bu, &, əgər 0 olacaq. 479 00:32:14,660 --> 00:32:20,850 Və 1 bitwise 1 1 deyil yeganə halda xüsusi və ya ilə. 480 00:32:20,850 --> 00:32:24,580 Bu 0110 var. 481 00:32:24,580 --> 00:32:36,520 Belə ki, burada indi XOR istifadə - belə ki, biz geri 20 istəyirik. 482 00:32:36,520 --> 00:32:43,480 'A' ^ OX20 biz müqayisə edirik bu 2 bit edir. 483 00:32:43,480 --> 00:32:50,020 Belə ki, 1 ^ 0 mənə bir nə verəcək? A biridir. 484 00:32:50,020 --> 00:32:58,430 'A' ^ OX20 mənə vermək gedir? Bir kiçik. 485 00:32:58,430 --> 00:33:04,010 'Bir' ^ OX20 mənə vermək gedir? Capital A. 486 00:33:04,010 --> 00:33:09,310 Çünki bunu nə, OX20 ilə bu XORing 487 00:33:09,310 --> 00:33:15,380 səmərəli bit nə Flipping olunur. 488 00:33:15,380 --> 00:33:21,240 Bu bir 0 varsa, indi 1 olmaq olacaq. 489 00:33:21,240 --> 00:33:26,160 Bu 1 olduğundan, ^ 1 1 0. 490 00:33:26,160 --> 00:33:33,280 Belə ki, bizim 'a' 'A' olmuşdur və bizim 'A' 'a' olmuşdur. 491 00:33:33,280 --> 00:33:36,910 Belə ki, XOR yalnız işi Flipping həqiqətən rahat yoldur. 492 00:33:36,910 --> 00:33:39,960 Siz yalnız məktubları bir simli üzərində təkrarlamaq istəyirəm 493 00:33:39,960 --> 00:33:44,330 və hər bir xarakter halda alternativ, 494 00:33:44,330 --> 00:33:50,680 OX20 ilə yalnız XOR hər şey. 495 00:33:50,680 --> 00:33:55,220 >> İndi biz shift yazmayıblar. Sol shift yalnız əsasən, gedir 496 00:33:55,220 --> 00:34:01,250 daxil, və ya sol nömrələr bütün basmaq və onların arxasında 0 insert. 497 00:34:01,250 --> 00:34:05,550 Belə ki, burada biz 00001101 var. 498 00:34:05,550 --> 00:34:08,560 Biz, sağdan 3 0'lık in təkan olacaq 499 00:34:08,560 --> 00:34:13,580 və biz 01101000 almaq. 500 00:34:13,580 --> 00:34:16,380 Nonbinary baxımından, 501 00:34:16,380 --> 00:34:24,699 biz, həqiqətən, 13 sol keçdikdə 3 ilə, bizə 104 verir məşğul ki, görürük. 502 00:34:24,699 --> 00:34:32,530 Belə ki, sol dəyişkən, biz burada görmək, x << y əsasən x * 2 ^ y. 503 00:34:32,530 --> 00:34:40,139 ^ 3 13 * 2 ^ 3 2 so * 8 13 104, 8-dir. 504 00:34:40,139 --> 00:34:45,679 Siz yalnız ümumi ikili, necə hər bir rəqəmlə haqqında düşünüyorsanız 505 00:34:45,679 --> 00:34:49,530 biz sağdan başlamaq əgər, sonra 1-in yeri, sonra 2 yer, 4 yer. 506 00:34:49,530 --> 00:34:51,330 Belə ki, sağdan 0-ci basmaqla, 507 00:34:51,330 --> 00:34:55,080 biz yalnız 8 yerə 4 yer idi ki, hər şeyi basmaqla edirik 508 00:34:55,080 --> 00:34:57,920 və 16-nın yerə 8 yer idi ki, hər şeyi. 509 00:34:57,920 --> 00:35:01,280 Hər shift yalnız 2 çoxaldır. Bəli? 510 00:35:01,280 --> 00:35:05,210 Siz 5 keçdikdə əgər [Tələbə] nə olur? 511 00:35:05,210 --> 00:35:10,790 [Bowden] Siz 5 keçdikdə Əgər yalnız rəqəm itirəcək. 512 00:35:10,790 --> 00:35:15,410 Qaçılmaz, eyni şey var. Kimi, integers yalnız 32 bit var, 513 00:35:15,410 --> 00:35:20,750 2 həqiqətən böyük integers əlavə, belə ki, yalnız bir tam uyğun deyil. 514 00:35:20,750 --> 00:35:23,660 Belə ki, burada eyni şey. Siz 5 keçdikdə varsa, 515 00:35:23,660 --> 00:35:25,650 biz yalnız bir itirəcək. 516 00:35:25,650 --> 00:35:28,820 Və ki, "təxminən" Mən demək nə cür var 517 00:35:28,820 --> 00:35:37,470 çox uzaq keçmək əgər, siz bit itirmək yerləşir. 518 00:35:37,470 --> 00:35:39,830 >> Hüququ shift qarşı olacaq, 519 00:35:39,830 --> 00:35:43,090 biz sonuna off 0 nin itələmək olacaq yerləşir 520 00:35:43,090 --> 00:35:48,400 və məqsədləri üçün, sol 0 nin doldurun. 521 00:35:48,400 --> 00:35:52,910 Belə ki, bu bunu, biz əsasən biz artıq nə etdiyini geri edirik. 522 00:35:52,910 --> 00:35:57,780 Və biz, sagdaki üç 0 yalnız off düşmüşdür ki, bax 523 00:35:57,780 --> 00:36:02,020 və biz sağ üçün 1101 bütün yol basdı. 524 00:36:02,020 --> 00:36:08,380 Bu səmərəli, x / 2 ^ y, olan, 104 >> 3 edir. 525 00:36:08,380 --> 00:36:11,200 Belə ki, indi burada, bu, oxşar fikirdir. 526 00:36:11,200 --> 00:36:18,720 Niyə yalnız təxminən x / 2 ^ y deyil, həqiqətən x / 2 ^ y? 527 00:36:18,720 --> 00:36:22,240 Mən 4 keçdikdə olsaydı, mən bir 1 itirilmiş olardı, çünki. 528 00:36:22,240 --> 00:36:25,950 Əsasən, yalnız ümumi tam bölgüsü nə siz hesab edirəm ki, düşünürəm. 529 00:36:25,950 --> 00:36:31,070 Belə ki, 5/2 kimi 2. 2.5 deyil. 530 00:36:31,070 --> 00:36:35,000 Burada eyni fikirdir. Biz 2 bölmək, zaman 531 00:36:35,000 --> 00:36:39,910 biz yol boyunca tək bit itirə bilər. 532 00:36:39,910 --> 00:36:43,870 Belə ki, indi - ki bitwise üçün var. Ki, bilmək lazım olan bütün var. 533 00:36:43,870 --> 00:36:46,340 Biz sinif gördüm istifadə halları saxla, 534 00:36:46,340 --> 00:36:49,340 kimi bir bit maska, bitwise operatorları üçün faydalı 535 00:36:49,340 --> 00:36:53,220 və ya bit maskalar üçün istifadə edirlər. 536 00:36:53,220 --> 00:36:58,620 Capital məktublar və kiçik hərfləri, dönüşüm olduqca prototip nümunəsidir. 537 00:36:58,620 --> 00:37:01,640 >> Okay, belə ki, daşqın hücumları bufer. 538 00:37:01,640 --> 00:37:05,110 Hər kəs bu funksiya ilə yanlış nə yadda? 539 00:37:05,110 --> 00:37:10,140 12 bayt bir sıra, 12 chars, elan edək 540 00:37:10,140 --> 00:37:18,510 sonra biz 12 chars bütün string bar bizim bufer kopyalayın. 541 00:37:18,510 --> 00:37:25,080 Belə ki, problem burada nə var? 542 00:37:25,080 --> 00:37:32,270 Niyə 12 - sehrli sayı 12 olduqca çox dərhal həyata pop lazımdır? 543 00:37:32,270 --> 00:37:35,050 Bar 12-dən çox simvol olmaq olur nə olur? 544 00:37:35,050 --> 00:37:41,200 Nə bar simvol milyonlarla olur? 545 00:37:41,200 --> 00:37:46,010 Burada məsələ memcpy edir. Bar, kifayət qədər uzun olarsa 546 00:37:46,010 --> 00:37:50,330 yalnız tamamilə edəcək - 'c', 'c' yalnız 12 simvol idi ki, qayğı deyil; 547 00:37:50,330 --> 00:37:53,280 'C' buna çox bayt uyğun bilməz ki, qayğı deyil. 548 00:37:53,280 --> 00:37:58,250 Bu, yalnız tamamilə char üzerine yazılır, bunun üçün ayrılan sonra 12 bytes, 549 00:37:58,250 --> 00:38:01,830 və yaddaş keçmiş hər şey həqiqətən ki, bufer aid deyil ki, 550 00:38:01,830 --> 00:38:06,520 nə string bar ilə. 551 00:38:06,520 --> 00:38:09,780 Belə ki, bu biz sinif gördüm şəkil idi 552 00:38:09,780 --> 00:38:12,220 biz yığını böyüyən var. 553 00:38:12,220 --> 00:38:16,040 Bu şəkillər istifadə və ya yenidən onlarla tanış olmalıdır. 554 00:38:16,040 --> 00:38:21,260 Biz yığını böyüyən var, yaddaş ünvanları üst 0 başlamaq 555 00:38:21,260 --> 00:38:26,270 və altındakı 4 milyard kimi aşağı bitir. 556 00:38:26,270 --> 00:38:28,820 Biz haradasa yaddaş bizim array 'c' var 557 00:38:28,820 --> 00:38:32,260 sonra biz bunun altından bar bizim göstərici var, 558 00:38:32,260 --> 00:38:38,720 və sonra biz bu xilas çərçivəsində bizim qaytarılması ünvanı göstərici və valideyn müntəzəm nin yığını var. 559 00:38:38,720 --> 00:38:40,800 Qaytarılması ünvanı nə saxla? 560 00:38:40,800 --> 00:38:45,360 Əsas funksiyası bar çağırır, bir funksiyası foo çağırır zaman var 561 00:38:45,360 --> 00:38:48,100 qaçılmaz yekunları bar. 562 00:38:48,100 --> 00:38:52,610 Belə ki, bar qaytarır, onlar bunu deyilir ki, foo geri gedir ki, bilmək lazımdır. 563 00:38:52,610 --> 00:39:01,360 Belə ki, geri ünvanı zaman funksiyası yekunları qayıtmaq üçün var ki, funksiyası ünvanı. 564 00:39:01,360 --> 00:39:05,830 , Rahat, çünki bufer daşqın hücumlar üçün vacibdir ki səbəb olur 565 00:39:05,830 --> 00:39:09,580 hakerlər qaytarılması ünvanı dəyişdirmək istəyirəm. 566 00:39:09,580 --> 00:39:14,950 Əvəzində geri foo gedir, mən geri hacker mənə geri getmək istəyir harada getmək üçün gedirəm. 567 00:39:14,950 --> 00:39:17,760 Və, rahat, hacker tez-tez geri getmək istəyir 568 00:39:17,760 --> 00:39:22,400 biz ilk idi ki, bufer başlanğıc. 569 00:39:22,400 --> 00:39:26,170 Belə ki, daha, Little Hindistan bildiriş. 570 00:39:26,170 --> 00:39:28,490 Cihaz bir Little Hindistan sisteminin nümunəsidir, 571 00:39:28,490 --> 00:39:34,140 belə bir tam və ya pointer ləğv bayt ilə saxlanılır. 572 00:39:34,140 --> 00:39:38,980 Belə ki, burada biz bax - bu? Bəli. 573 00:39:38,980 --> 00:39:45,660 Biz Ox80, OxC0, Ox35, OxO8 görürük. 574 00:39:45,660 --> 00:39:48,250 Hexadecimal rəqəm saxla? 575 00:39:48,250 --> 00:39:50,640 Biz, Little Hindistan ci ildə hexadecimal rəqəm tərs yoxdur 576 00:39:50,640 --> 00:39:56,110 2 hexadecimal rəqəm bir byte etmək, və biz bytes geri çünki. 577 00:39:56,110 --> 00:40:00,300 Niyə biz kimi, 80530CO8 saxlamaq yoxdur ki. 578 00:40:00,300 --> 00:40:07,520 Biz sağ başlayaraq, əvəzinə, 2 pillə hər bir cüt saxlamaq. 579 00:40:07,520 --> 00:40:10,880 Yəni ünvanı start ünvan aiddir 580 00:40:10,880 --> 00:40:15,190 biz, həqiqətən, ilk növbədə kopyalayın istəyirdi ki, bizim bufer. 581 00:40:15,190 --> 00:40:19,230 Faydalı olan səbəb nə olur, çünki təcavüzkar 582 00:40:19,230 --> 00:40:24,100 əvəzinə yalnız idi ki, bir simli olan, baş 583 00:40:24,100 --> 00:40:27,060 kimi zərərsiz string, onların adı və ya bir şey, 584 00:40:27,060 --> 00:40:33,900 nə əvəzinə, simli yalnız bir ixtiyari kodu idi 585 00:40:33,900 --> 00:40:38,610 ki, onlar etmək istəyirdi nə etdi? 586 00:40:38,610 --> 00:40:45,630 Belə ki, onlar bilər - Mən heç bir cool kodu hesab edə bilməz. 587 00:40:45,630 --> 00:40:47,780 Bu baxmayaraq, bir şey ola bilər. Hər hansı fəlakətli kodu. 588 00:40:47,780 --> 00:40:51,440 Onlar istəyirdi, onlar yalnız seg çatışmazlıqlar bir şey edə bilər, lakin mənasız olardı. 589 00:40:51,440 --> 00:40:54,950 Onlar adətən sistem hack bunu. 590 00:40:54,950 --> 00:40:59,930 Okay. >> CS50 kitabxana. 591 00:40:59,930 --> 00:41:04,800 Bu, əsasən, GetInt, GetString, bütün bu funksiyaları biz sizin üçün təmin edilir. 592 00:41:04,800 --> 00:41:10,630 Beləliklə, biz char * simli var ki, biz üz blew ki, abstraksiya var 593 00:41:10,630 --> 00:41:12,450 semestr ərzində bir nöqtədə. 594 00:41:12,450 --> 00:41:18,220 Bir string simvol yalnız bir sıra olduğunu unutmayın. 595 00:41:18,220 --> 00:41:23,240 Belə ki, burada biz GetString bir ixtisar versiyasını görmək. 596 00:41:23,240 --> 00:41:25,920 Siz, həqiqətən həyata necə xatırlamaq üçün geri baxmaq lazımdır. 597 00:41:25,920 --> 00:41:30,950 Əsas detalları, biz bir zaman bir xarakter almaq qeyd 598 00:41:30,950 --> 00:41:34,570 yalnız bizə klaviatura yazaraq kimi olan, standart olan. 599 00:41:34,570 --> 00:41:37,890 Belə ki, bir zaman bir xarakteri, və biz çox simvol almaq, 600 00:41:37,890 --> 00:41:40,580 belə n + 1 gücü daha böyük olduqda, 601 00:41:40,580 --> 00:41:44,140 sonra biz bufer tutumunu artırmaq lazımdır. 602 00:41:44,140 --> 00:41:47,780 Belə ki, burada biz bufer ölçüsü misli edirik. 603 00:41:47,780 --> 00:41:51,840 Və davam edir, biz bufer daxil xarakter daxil 604 00:41:51,840 --> 00:41:56,220 biz yeni bir xətt və ya fayl və ya hər hansı sonu almaq qədər, 605 00:41:56,220 --> 00:41:59,380 bu halda, biz simli və sonra real GetString ilə tamamlayın 606 00:41:59,380 --> 00:42:05,120 biz çox yaddaş ayrılan əgər geri getmək və bir az shrink lazımdır kimi, yaddaş shrinks. 607 00:42:05,120 --> 00:42:08,830 Belə ki, göstərmək deyil, lakin əsas fikirdir 608 00:42:08,830 --> 00:42:11,960 bir zaman bir xarakter oxumaq var. 609 00:42:11,960 --> 00:42:17,140 Bu, sadəcə bir dəfə bütün şey oxuya bilməz, 610 00:42:17,140 --> 00:42:19,550 onların bufer yalnız müəyyən bir ölçüsü edir. 611 00:42:19,550 --> 00:42:26,590 Bu bufer daxil çalışır ki, simli çox böyük Belə ki, o, daşqın olacaq. 612 00:42:26,590 --> 00:42:28,940 Belə ki, burada biz qarşısını almaq ki, yalnız bir xarakter oxu 613 00:42:28,940 --> 00:42:33,750 bir zamanda və biz lazımdır zaman artır. 614 00:42:33,750 --> 00:42:40,270 Belə GetInt və digər CS50 kitabxana funksiyaları GetString istifadə edirlər 615 00:42:40,270 --> 00:42:42,310 onların uygulamalarındaki. 616 00:42:42,310 --> 00:42:45,370 Mən burada mühüm şeyi qeyd. 617 00:42:45,370 --> 00:42:49,460 Bu bir string almaq GetString çağırır. 618 00:42:49,460 --> 00:42:51,710 GetString yaddaş qayıtmaq üçün uğursuz olarsa, 619 00:42:51,710 --> 00:42:54,270 getString bir şey mallocs unutmayın ki, belə ki, GetString zəng zaman 620 00:42:54,270 --> 00:42:57,820 Siz (anlaşılmaz) siz var ki, simli azad deyil. 621 00:42:57,820 --> 00:43:02,870 Bir şey malloc üçün uğursuz əgər Belə ki, burada, biz yalnız bir bayraq kimi INT_MAX qayıtmaq ki, 622 00:43:02,870 --> 00:43:05,650 hey, biz, həqiqətən, bir tam almaq mümkün deyil idi. 623 00:43:05,650 --> 00:43:10,830 Mən sizə qayıtmaq nə ignore və ya olmalıdır 624 00:43:10,830 --> 00:43:15,540 Bir etibarlı giriş kimi rəftar etməməlidir. 625 00:43:15,540 --> 00:43:21,360 Nəhayət ki, nail ola bildimi fərz, biz xüsusi bayrağı sscanf istifadə 626 00:43:21,360 --> 00:43:23,820 deməkdir ki, ilk bir tam uyğun, 627 00:43:23,820 --> 00:43:26,770 sonra tam sonra hər hansı simvol uyğun. 628 00:43:26,770 --> 00:43:29,070 Belə ki, 1 bərabər istəyirəm bilərsiniz. 629 00:43:29,070 --> 00:43:32,940 Belə sscanf yekunları uğurla oyunları necə çox əgər? 630 00:43:32,940 --> 00:43:37,010 Uğurla bir tam Eşleşmiş əgər 1 qayıdacaqlar, 631 00:43:37,010 --> 00:43:40,890 bu bir tam uyğun olmasaydı 0 qayıdacaqlar və bu, 2 qayıdacaqlar 632 00:43:40,890 --> 00:43:45,920 Bu Eşleşmiş əgər bir tam bir xarakter izlədi. 633 00:43:45,920 --> 00:43:49,780 Belə ki, biz 1-bir şey, lakin uyğun əgər biz yeniden bilərsiniz. 634 00:43:49,780 --> 00:43:55,230 Beləliklə, biz daxil əgər 1, 2, 3, C, və ya 1, 2, 3, X, 635 00:43:55,230 --> 00:43:57,400 sonra 1, 2, 3 tam saxlanılır almaq olardı, 636 00:43:57,400 --> 00:43:59,620 X, karakter saxlanılır almaq olardı 637 00:43:59,620 --> 00:44:06,410 biz yalnız bir tam istəyirəm, çünki sscanf 2 qayıtmaq və biz yeniden olacaq. 638 00:44:06,410 --> 00:44:09,810 >> Tez HTML, HTTP, CSS əsən. 639 00:44:09,810 --> 00:44:15,340 Hypertext Markup Language web strukturu və semantika edir. 640 00:44:15,340 --> 00:44:19,960 Burada HTML tags olduğu mühazirə dən nümunəsidir. 641 00:44:19,960 --> 00:44:22,110 Biz baş yazıları, bədən tags var 642 00:44:22,110 --> 00:44:27,770 biz, biz, həqiqətən, bir başlanğıc və yaxın tag yoxdur boş tags nümunələr var 643 00:44:27,770 --> 00:44:30,820 biz yalnız link və şəkil var. 644 00:44:30,820 --> 00:44:38,480 Yekun image tag var; tag etmək lazımdır hər şey həyata ki, yalnız bir tag var. 645 00:44:38,480 --> 00:44:41,950 The link bir nümunəsidir, biz CSS keçid necə görürsünüz, 646 00:44:41,950 --> 00:44:45,910 script bir xarici JavaScript keçid necə bir nümunəsidir. 647 00:44:45,910 --> 00:44:53,100 Bu HTML bir proqramlaşdırma dili deyil, olduqca sadə, və xatırlayıram. 648 00:44:53,100 --> 00:44:58,250 Burada, siz bunu nə bir formada müəyyən və ya ən azı necə xatırlayıram? 649 00:44:58,250 --> 00:45:01,740 Belə bir forma bir hərəkət və bir üsulu var. 650 00:45:01,740 --> 00:45:06,210 Siz yalnız heç görəcəksiniz üsulları GET və POST var. 651 00:45:06,210 --> 00:45:09,040 Belə ki, GET şey URL qoymaq olur olduğu versiyası. 652 00:45:09,040 --> 00:45:11,680 URL qoymaq harada POST edir. 653 00:45:11,680 --> 00:45:18,520 Əksinə, formada hər hansı bir məlumat HTTP sorğu daha gizli daxil edilir. 654 00:45:18,520 --> 00:45:22,390 HTTP request gedir harada Belə ki, burada fəaliyyət müəyyən edir. 655 00:45:22,390 --> 00:45:27,490 Gedir harada google.com / axtarış edir. 656 00:45:27,490 --> 00:45:32,890 Metod. Get və post arasında fərqləri saxla, 657 00:45:32,890 --> 00:45:37,200 bookmark bir şey istəyirsinizsə,, yalnız bir nümunə kimi deyirlər. 658 00:45:37,200 --> 00:45:40,660 Siz POST URL favorite edə heç vaxt 659 00:45:40,660 --> 00:45:44,970 məlumat URL daxil deyil, çünki. 660 00:45:44,970 --> 00:45:49,790 >> HTTP, indi, Hypertext Transfer Protocol edir. 661 00:45:49,790 --> 00:45:54,080 Bu Hypertext Transfer Protocol, bu transfer üçün gözləmək olardı 662 00:45:54,080 --> 00:45:57,710 Hypertext Markup Language, və bunu edir. 663 00:45:57,710 --> 00:46:00,170 Amma bu da Web tapa hər hansı bir images köçürmələri, 664 00:46:00,170 --> 00:46:05,400 siz hər hansı bir downloads bir HTTP sorğu kimi. 665 00:46:05,400 --> 00:46:10,350 Belə ki, HTTP yalnız World Wide Web dilidir. 666 00:46:10,350 --> 00:46:15,610 Və burada bir HTTP sorğu bu cür etiraf etmək lazımdır. 667 00:46:15,610 --> 00:46:19,300 Tərəfində burada HTTP/1.1 yalnız versiyası deyir 668 00:46:19,300 --> 00:46:21,570 Protokolun mən istifadə edirəm. 669 00:46:21,570 --> 00:46:25,770 Siz onu görəcəksiniz kimi olduqca çox həmişə HTTP/1.1 olacaq. 670 00:46:25,770 --> 00:46:30,110 Sonra biz bu görmək bilər ki, alternativ POST olan, GET olduğunu görürük. 671 00:46:30,110 --> 00:46:40,790 Və mən ziyarət üçün çalışırıq ki, URL www.google.com/search?q = blah, blah, blah idi. 672 00:46:40,790 --> 00:46:44,240 Belə ki, unutmayın ki, bu, sual işarəsi q = blah blah blah, 673 00:46:44,240 --> 00:46:49,040 formasında təqdim edilir ki, məhsulları sortudur. 674 00:46:49,040 --> 00:46:51,830 Mənə qayıtmaq bilər cavab bu kimi bir şey olardı. 675 00:46:51,830 --> 00:46:54,050 Yenə ki, olacaq olan protokol ilə başlayan, 676 00:46:54,050 --> 00:46:59,190 Bu status kodu izlədi. Burada 200 OK. 677 00:46:59,190 --> 00:47:05,060 Və nəhayət, mən, həqiqətən istədi ki, web page təqib ediləcək. 678 00:47:05,060 --> 00:47:08,210 Mümkün status kodu görmək bilər, və siz onlara bir neçə bilməlidir. 679 00:47:08,210 --> 00:47:12,770 200 OK yəqin ki, əvvəl görmüşəm. 680 00:47:12,770 --> 00:47:17,830 403 Forbidden, 404 Not Found, 500 Daxili Server Xətası 681 00:47:17,830 --> 00:47:22,140 Bir web getmək və bir şey broken və ya onların PHP kodu qəzaları əgər, adətən 682 00:47:22,140 --> 00:47:24,930 cihaz biz isə böyük narıncı qutusu 683 00:47:24,930 --> 00:47:27,830 ki, gəlir və kimi, bir şey yanlış, deyir, bu kodu işləmir 684 00:47:27,830 --> 00:47:30,380 və ya bu funksiyasının pis. 685 00:47:30,380 --> 00:47:33,230 Adətən saytları, siz funksiyaları həqiqətən pis nə bilmədən istəmirəm 686 00:47:33,230 --> 00:47:37,880 əvəzinə onlar yalnız 500 Daxili Server səhvlər verəcəyik. 687 00:47:37,880 --> 00:47:43,050 >> TCP / IP HTTP altında 1 qatıdır. 688 00:47:43,050 --> 00:47:47,550 Internet World Wide Web xaricində olduğunu unutmayın. 689 00:47:47,550 --> 00:47:52,270 Kimi HTTP vasitəsilə getmək deyil ki, bir online oyun oynamaq, 690 00:47:52,270 --> 00:47:55,740 fərqli bir keçir - bu, hələ İnternetdən istifadə edir, 691 00:47:55,740 --> 00:47:58,900 lakin HTTP istifadə etmir. 692 00:47:58,900 --> 00:48:02,470 HTTP TCP / IP inşa protokolun yalnız bir nümunəsidir. 693 00:48:02,470 --> 00:48:07,820 IP sözün Internet Protokol deməkdir. 694 00:48:07,820 --> 00:48:11,500 Hər bir kompüter bir IP ünvanı var, onlar bu 4-rəqəmli şeylər var 695 00:48:11,500 --> 00:48:16,510 192.168.2.1, və ya hər hansı kimi; ki, yerli biri olmağa çalışır. 696 00:48:16,510 --> 00:48:23,390 Amma ki, bir IP ünvanı nümunəsidir. 697 00:48:23,390 --> 00:48:29,060 Belə ki, DNS, Domain Name Service, 698 00:48:29,060 --> 00:48:33,410 ki, faktiki IP ünvan üçün google.com kimi şeylər çevirir nə var. 699 00:48:33,410 --> 00:48:37,700 Belə bir URL daxil IP ünvanını yazın əgər, 700 00:48:37,700 --> 00:48:40,850 Google sizə gətirəcək, ancaq siz həmin şeyi xatırlamaq üçün edirlər. 701 00:48:40,850 --> 00:48:45,470 Siz əvəzinə google.com yadda edirlər. 702 00:48:45,470 --> 00:48:51,560 Biz son şey bu IP TCP hissəsi olduğu port edir. 703 00:48:51,560 --> 00:48:54,880 TCP daha yoxdur. Siz web browser çalışan, kimi, haqqında düşünün. 704 00:48:54,880 --> 00:48:58,670 Bəlkə bəzi e-poçt programlarını var; 705 00:48:58,670 --> 00:49:02,150 bəlkə Internet çalışan istifadə edir ki, bəzi digər proqram var. 706 00:49:02,150 --> 00:49:05,090 Onlar bütün internet əldə etmək lazımdır, 707 00:49:05,090 --> 00:49:08,100 ancaq kompüter yalnız 1 WiFi kart və ya hər hansı var. 708 00:49:08,100 --> 00:49:10,780 Belə ki, limanları biz split edə istəyirik ki, bir yoldur 709 00:49:10,780 --> 00:49:13,550 Bu applications İnternetdən istifadə edə bilərlər necə. 710 00:49:13,550 --> 00:49:17,230 Hər proqram, bu dinləyə bilərsiniz ki, 1 xüsusi port olur 711 00:49:17,230 --> 00:49:19,670 və ismarıcları, HTTP port 80 istifadə edir. 712 00:49:19,670 --> 00:49:22,410 Bəzi e-poçt services 25 istifadə edin. 713 00:49:22,410 --> 00:49:24,490 Aşağı saylı olanları ehtiyat edirlər. 714 00:49:24,490 --> 00:49:29,270 Siz adətən özünüz üçün ali-saylı olanları əldə edə bilərlər. 715 00:49:29,270 --> 00:49:32,010 >> CSS, Cascading Style Sheets. 716 00:49:32,010 --> 00:49:36,030 CSS ilə biz stil web pages, HTML ilə. 717 00:49:36,030 --> 00:49:38,440 Siz CSS bilər 3-cü yerləri var. 718 00:49:38,440 --> 00:49:46,300 Bu stil tags arasında, və ya tamamilə ayrı-ayrı fayl və sonra da bağlı, inline ola bilər 719 00:49:46,300 --> 00:49:48,470 Və burada CSS yalnız bir nümunəsidir. 720 00:49:48,470 --> 00:49:50,450 Bu model tanımalıdır, 721 00:49:50,450 --> 00:49:54,310 ilk nümunəsi biz bədən tag uyğun istəyirik yerləşir 722 00:49:54,310 --> 00:49:56,680 və burada biz bədən tag mərkəzə edirik. 723 00:49:56,680 --> 00:50:00,420 İkinci misal, biz şey uyğun olunur 724 00:50:00,420 --> 00:50:04,740 ID footer ilə, və biz bəzi üslub tətbiq edirik. 725 00:50:04,740 --> 00:50:07,310 Sol ki, ID footer text-aligns edək, 726 00:50:07,310 --> 00:50:09,840 bədən text-aligns mərkəzi halbuki. 727 00:50:09,840 --> 00:50:13,180 Footer bədən daxilində. 728 00:50:13,180 --> 00:50:16,470 Bu əvəzinə, text-align bədən text-align mərkəzi deyir baxmayaraq, sol edəcək. 729 00:50:16,470 --> 00:50:18,880 Bu, bütün kaskad hissəsidir. 730 00:50:18,880 --> 00:50:22,110 Siz ola bilər - siz bədən üçün stilləri belirtebilirsiniz, 731 00:50:22,110 --> 00:50:25,320 və sonra bədəndə hər şeyə daha çox xüsusi üslub daxil edə bilərsiniz, 732 00:50:25,320 --> 00:50:28,160 və hər şeyi gözləmək kimi çalışır. 733 00:50:28,160 --> 00:50:34,420 Daha xüsusi CSS specifiers üstünlük. 734 00:50:34,420 --> 00:50:46,140 Mən onu hesab edirəm. 735 00:50:46,140 --> 00:50:49,260 >> [Ali Nahm] Hi everyone. Mən yalnız sizin diqqət almaq bilər. 736 00:50:49,260 --> 00:50:53,990 Əli Ben və mən, həqiqətən, sürətli PHP və SQL vasitəsilə getmək üçün gedirəm. 737 00:50:53,990 --> 00:51:00,310 Belə ki, biz başlaya bilərsiniz. PHP PHP üçün qısa: Hypertext Preprocessor. 738 00:51:00,310 --> 00:51:03,730 Bildiyiniz lazımdır kimi, bir server-side scripting dil, 739 00:51:03,730 --> 00:51:06,800 və biz saytlarda geri sonuna üçün istifadə, 740 00:51:06,800 --> 00:51:12,540 və bu hesablamaların, arxasında-səhnələri hissəsi bir çox necə. 741 00:51:12,540 --> 00:51:17,510 Sintaksis. Bu C, sürpriz, sürpriz kimi deyil. 742 00:51:17,510 --> 00:51:22,060 Mən irəli hərəkət edə bilməz - bu, həmişə bilərsiniz əgər, ilə başlamaq üçün var. 743 00:51:22,060 --> 00:51:31,340 Siz aşırma yeni növ lazımdır bilərsiniz və sonra siz də? Php lazımdır. 744 00:51:31,340 --> 00:51:35,780 Ki, sizin PHP mətn, sizin PHP kodu nizama salmaq üçün nə həmişə var. 745 00:51:35,780 --> 00:51:39,180 Belə ki, yalnız cür ilk qoymaq harada C kimi ola bilməz. 746 00:51:39,180 --> 00:51:42,290 Siz həmişə onu əhatə lazımdır. 747 00:51:42,290 --> 00:51:47,610 Və indi, əsas sintaksis bütün dəyişənlər $ xarakteri ilə başlamaq lazımdır ki,. 748 00:51:47,610 --> 00:51:49,490 Siz onlara müəyyən etdiyiniz zaman bunu etmək lazımdır, siz bunu etmək lazımdır 749 00:51:49,490 --> 00:51:51,860 daha sonra onlara istinad etdiyiniz zaman. 750 00:51:51,860 --> 00:51:56,510 Siz həmişə $ lazımdır. Bu olduqca çox, yeni ən yaxşı dostu var. 751 00:51:56,510 --> 00:52:01,690 Siz yoxdur - C fərqli olaraq, siz onu dəyişən növü nə cür qoymaq lazım deyil. 752 00:52:01,690 --> 00:52:04,940 Siz $ lazımdır isə Belə ki, siz kimi qoymaq lazım deyil 753 00:52:04,940 --> 00:52:09,470 int x və ya simli y,, sair, sair. 754 00:52:09,470 --> 00:52:11,490 Belə ki, bir qədər fərq. 755 00:52:11,490 --> 00:52:15,590 Bunun nəticəsində kimi, PHP bir zəif növü deməkdir. 756 00:52:15,590 --> 00:52:19,310 PHP bir zəif növü dil və zəif dəyişənlərin çap etmişdir. 757 00:52:19,310 --> 00:52:24,020 Başqa sözlə, siz dəyişən növ müxtəlif növ arasında keçid edə bilərsiniz deməkdir. 758 00:52:24,020 --> 00:52:27,230 Siz int kimi sayı 1 saxlaya bilərsiniz, 759 00:52:27,230 --> 00:52:29,650 bir string kimi saxlaya bilərsiniz, və siz bir float kimi saxlaya bilərsiniz, 760 00:52:29,650 --> 00:52:33,550 və bütün ki, 1 nömrəli olacaq. 761 00:52:33,550 --> 00:52:36,080 Siz müxtəlif formalarda bunu saxlanılması edirik, baxmayaraq ki, 762 00:52:36,080 --> 00:52:39,120 hələ var - dəyişən növləri hələ sonunda aparılır. 763 00:52:39,120 --> 00:52:41,540 Belə ki, burada baxmaq əgər, siz pset 7 xatırlayıram varsa, 764 00:52:41,540 --> 00:52:43,500 bir çox yəqin ki, bu məsələləri idi. 765 00:52:43,500 --> 00:52:47,280 Iki bərabər əlamətləri, 3 bərabər əlamətləri, 4 bərabər əlamətləri. 766 00:52:47,280 --> 00:52:49,990 Okay, heç 4 bərabər əlamətləri var, lakin 2 və 3 var. 767 00:52:49,990 --> 00:52:53,320 Siz dəyərləri yoxlamaq üçün 2 bərabər əlamətləri istifadə edin. 768 00:52:53,320 --> 00:52:55,830 Bu növ üzrə kontrol edə bilərsiniz. 769 00:52:55,830 --> 00:52:58,770 Belə ki, ilk nümunəsi görmək bilər, əgər, 770 00:52:58,770 --> 00:53:02,210 Mən num_int == num_string var. 771 00:53:02,210 --> 00:53:06,710 Belə ki, int və simli, həm də, texniki, 1, 772 00:53:06,710 --> 00:53:10,790 lakin onlar müxtəlif növ istəyirik. Amma ikili bərabər üçün, hələ də keçmək lazımdır. 773 00:53:10,790 --> 00:53:15,510 Lakin, üç bərabərdir, bu dəyər eləcə də müxtəlif növ yoxlayır. 774 00:53:15,510 --> 00:53:18,760 Ki, burada ikinci halda keçmək niyyətində deyil o deməkdir ki, 775 00:53:18,760 --> 00:53:22,350 əvəzinə 3 bərabər əlamətləri istifadə olduğunuz. 776 00:53:22,350 --> 00:53:26,590 Belə ki, siz indi göstərir ki, böyük bir fərq var. 777 00:53:26,590 --> 00:53:31,570 >> String concatenation PHP istifadə edə bilərsiniz bir güclü şeydir. 778 00:53:31,570 --> 00:53:34,080 Bu, əsasən yalnız bu lazımlı dot notation var 779 00:53:34,080 --> 00:53:36,230 və siz birlikdə strings bind edə bilərsiniz. 780 00:53:36,230 --> 00:53:40,800 Belə ki, Cat var və siz Dog var, və siz birlikdə 2 strings qoymaq istəyirsinizsə, 781 00:53:40,800 --> 00:53:44,080 Bu müddət istifadə edə bilərsiniz ki, bu işləri necə növü var. 782 00:53:44,080 --> 00:53:46,660 Ayrıca, yalnız bir-birinə yanında onları edə bilərsiniz, 783 00:53:46,660 --> 00:53:49,030 Siz alt Məsələn burada edə bilərsiniz kimi, 784 00:53:49,030 --> 00:53:51,610 Mən string 1, space simli 2 echo olduğu. 785 00:53:51,610 --> 00:53:56,930 PHP kimi onları əvəz etmək üçün biləcəklər. 786 00:53:56,930 --> 00:53:59,780 Diziler. İndi, PHP, seriallarda 2 müxtəlif növ var. 787 00:53:59,780 --> 00:54:03,180 Siz müntəzəm seriallarda ola bilər, və siz də assosiativ serialların ola bilər, 788 00:54:03,180 --> 00:54:06,040 və biz indi onların yolu ilə getmək olacaq. 789 00:54:06,040 --> 00:54:08,280 Daimi diziler, yalnız bu C var 790 00:54:08,280 --> 00:54:11,240 və siz saylı olduğunu göstəriciləri var. 791 00:54:11,240 --> 00:54:13,160 Hal-hazırda yalnız bir yaratmaq üçün gedir və qoymaq edirik - 792 00:54:13,160 --> 00:54:15,500 bu, biz boş sıra yaratmaq necə, sonra biz olacaq 793 00:54:15,500 --> 00:54:17,310 İndeksin sayı 0 verilmişdir. 794 00:54:17,310 --> 00:54:19,200 Biz sayı 6, dəyəri 6 qoymaq olacaq. 795 00:54:19,200 --> 00:54:21,500 Siz burada altındakı görürük. 796 00:54:21,500 --> 00:54:24,240 Where's - index 1 nömrəli biz, dəyəri sayı 4 qoymaq olacaq 797 00:54:24,240 --> 00:54:26,720 və belə bir 6 var edə bilərsiniz, 4, var 798 00:54:26,720 --> 00:54:29,160 sonra biz hər şeyi çap etdiyiniz kimi, 799 00:54:29,160 --> 00:54:33,550 biz cəhd və index sayı 0 saxlanılan dəyər çap zaman, 800 00:54:33,550 --> 00:54:36,900 sonra biz çap olunur 6 dəyəri görəcəksiniz. Cool? 801 00:54:36,900 --> 00:54:40,160 Belə ki, sizin üçün müntəzəm Diziler var. 802 00:54:40,160 --> 00:54:42,750 Siz də indi müntəzəm serialların şeyi əlavə edə bilərsiniz başqa bir yolu 803 00:54:42,750 --> 00:54:44,780 yalnız sonunda onlara əlavə edə bilərsiniz. 804 00:54:44,780 --> 00:54:47,240 Ki, siz xüsusi index müəyyən etmək üçün yoxdur deməkdir. 805 00:54:47,240 --> 00:54:51,000 Siz görə bilərsiniz, və sonra kvadrat mötərizədə göstərilən heç bir index var. 806 00:54:51,000 --> 00:54:56,270 Və bilirsiniz - PHP yalnız siyahıda, növbəti pulsuz spot sonuna əlavə etmək biləcəklər. 807 00:54:56,270 --> 00:54:59,190 Belə ki, 0 yerində sağ orada 1 bilərsiniz 808 00:54:59,190 --> 00:55:02,690 2 ilk yerində sağ getdi. 809 00:55:02,690 --> 00:55:04,690 3 gedir - orada həmçinin əlavə olunur. 810 00:55:04,690 --> 00:55:06,720 Belə ki, növ hissi verir. Siz yalnız daim əlavə edirik, 811 00:55:06,720 --> 00:55:09,360 sonra biz, 1 nömrəli indeksi sədalanan etdiyiniz zaman 812 00:55:09,360 --> 00:55:13,080 Bu dəyəri 2 çap edəcək. 813 00:55:13,080 --> 00:55:16,800 >> Sonra biz assosiativ seriallarda ki, serialların var. 814 00:55:16,800 --> 00:55:19,370 Əvəzinə ədədi göstəriciləri olan assosiativ Diziler, 815 00:55:19,370 --> 00:55:23,630 onlar nə onlar simli ki, göstəriciləri vardır. 816 00:55:23,630 --> 00:55:25,670 Siz əvəzinə, bilərsiniz - Mən bütün bu sayı göstəriciləri xilas, 817 00:55:25,670 --> 00:55:32,140 və indi key1, key2, key3, və onlar bütün strings olduğunu demek ikiqat quotes istəyirik. 818 00:55:32,140 --> 00:55:34,470 Beləliklə, biz bu nümunə ola bilər. 819 00:55:34,470 --> 00:55:38,790 Bunun nümunəsi biz tf var ki, ki, index adı var. 820 00:55:38,790 --> 00:55:42,030 Biz kalori yemiş, index da, adı kimi "Əli" qoymaq olacaq 821 00:55:42,030 --> 00:55:47,640 biz əvəzinə simli int bu dəfə qoya bilər, 822 00:55:47,640 --> 00:55:52,240 və sonra index sevir, biz bu daxilində bütün array bilər. 823 00:55:52,240 --> 00:55:55,490 Belə ki, bu cür - bu biz necə bir konsepsiya var 824 00:55:55,490 --> 00:55:58,930 nömrələri ilə indeksləri, lakin indi biz ətrafında göstəriciləri dəyişə bilərsiniz 825 00:55:58,930 --> 00:56:03,890 əvəzinə strings kimi var. 826 00:56:03,890 --> 00:56:06,070 Siz, həmçinin, yalnız fərdi bunu başqa, bu edə bilərsiniz 827 00:56:06,070 --> 00:56:09,400 Bir yığın bütün edə bilərsiniz. Belə ki, array ki tf bilərsiniz 828 00:56:09,400 --> 00:56:13,350 sonra biz bir nəhəng kvadrat mötərizə set onları seçin. 829 00:56:13,350 --> 00:56:15,220 Belə ki şeyi sürətləndirmək bilər. 830 00:56:15,220 --> 00:56:19,730 Bu çox üslub seçim çox var. 831 00:56:19,730 --> 00:56:21,550 Biz də loops var. 832 00:56:21,550 --> 00:56:26,020 C biz bu kimi iş loops var. 833 00:56:26,020 --> 00:56:29,690 Biz sıra idi, və biz siyahısına sonuna indeksi 0-dan getdi, 834 00:56:29,690 --> 00:56:31,740 və biz doğru, bütün çap? 835 00:56:31,740 --> 00:56:33,880 , Problem assosiativ Diziler üçün, istisna olmaqla 836 00:56:33,880 --> 00:56:36,610 biz mütləq bu ədədi göstəriciləri bilmirəm 837 00:56:36,610 --> 00:56:39,610 indi biz simli göstəriciləri var. 838 00:56:39,610 --> 00:56:44,800 İndi biz yenidən, sizə ümid pset 7 istifadə edən, foreach loops istifadə edin. 839 00:56:44,800 --> 00:56:48,930 Foreach loops yalnız siyahıda hər bir hissəsi bilir. 840 00:56:48,930 --> 00:56:52,450 Və bu ki, tam ədədi index bilmək yoxdur. 841 00:56:52,450 --> 00:56:56,490 Beləliklə, siz array qoymaq, siz foreach sintaksis var, belə ki, foreach. 842 00:56:56,490 --> 00:57:00,430 Belə ki, mənim array pset adlanır və sonra kimi söz kimi 843 00:57:00,430 --> 00:57:04,530 və sonra siz istifadə etmək olacaq ki, bu yerli müvəqqəti dəyişən qoymaq 844 00:57:04,530 --> 00:57:10,690 yalnız xüsusi keçirmək niyyətində olan xüsusi şey üçün - 845 00:57:10,690 --> 00:57:14,770 bir instansiya və ya serialın bir hissəsində. 846 00:57:14,770 --> 00:57:18,350 , Pset num 1 basıb saxlayın, sonra bəlkə bu sayı 6 keçirəcək 847 00:57:18,350 --> 00:57:20,410 və sonra bu sayı 2 keçirəcək. 848 00:57:20,410 --> 00:57:26,630 Lakin bu sıra var ki, hər bir dəyər ilə getmək üçün təmin edir. 849 00:57:26,630 --> 00:57:30,530 Siz PHP bilməlidir ki, faydalı funksiyaları tələb edir, 850 00:57:30,530 --> 00:57:35,880 exit, boş, echo ki, müəyyən faylları daxil olmaqla əmin edir. 851 00:57:35,880 --> 00:57:40,490 Mən sizə pset 7 baxmaq və həmin funksiyaları baxmaq gəlir. 852 00:57:40,490 --> 00:57:42,810 Siz bu bilmək ola bilər, 853 00:57:42,810 --> 00:57:47,060 Mən mütləq dəqiq, o bütün nə bilmək olar. 854 00:57:47,060 --> 00:57:50,080 >> İndi biz, həqiqətən, tez əhatə dairəsi ilə getmək olacaq. 855 00:57:50,080 --> 00:57:53,490 Daxilində, PHP, C fərqli olaraq, bir funky şey növ 856 00:57:53,490 --> 00:57:56,170 və biz yalnız tez keçmək olacaq. 857 00:57:56,170 --> 00:57:58,930 Belə ki, biz var ki arrow da başlayacaq deyirlər. 858 00:57:58,930 --> 00:58:02,900 Və biz $ i ilə başlamaq olacaq. Belə ki, dəyişən 'i', 0 olacaq 859 00:58:02,900 --> 00:58:06,730 və biz yalnız orada böyük ağ qutusuna çap saxlamaq olacaq. 860 00:58:06,730 --> 00:58:09,220 Biz i0 ilə başlamaq olacaq, və sonra biz onu echo olacaq. 861 00:58:09,220 --> 00:58:12,670 Belə ki 0 var. 862 00:58:12,670 --> 00:58:15,210 Və sonra biz üçün loop onu arttırmayı olacaq 863 00:58:15,210 --> 00:58:17,810 və sonra 1 dəyəri olacaq. 864 00:58:17,810 --> 00:58:20,070 , One 3-dən az, belə ki, loop üçün keçməli olacaq 865 00:58:20,070 --> 00:58:23,230 və sonra biz onu yenidən çap görmək olacaq. 866 00:58:23,230 --> 00:58:25,520 Biz, 2 yenidən arttırmayı olacaq 867 00:58:25,520 --> 00:58:29,860 2 3-dən az, belə ki, loop üçün keçmək lazımdır, və bu 2 çap edəcəyik. 868 00:58:29,860 --> 00:58:35,100 Sonra 3 3-dən az olmadığını qeyd edəcəyik, biz loop üçün çıxmaq lazımdır. 869 00:58:35,100 --> 00:58:40,050 Belə ki, indi biz çıxış etdik, sonra biz aFunction daxil olacaq. 870 00:58:40,050 --> 00:58:45,010 Okay. Belə ki, bu dəyişən biz yaratdıq ki, qeyd etmək lazımdır 871 00:58:45,010 --> 00:58:48,270 'i' dəyişən yerli scoped deyil. 872 00:58:48,270 --> 00:58:50,280 Yəni bu, loop yerli deyil o deməkdir ki, 873 00:58:50,280 --> 00:58:58,060 ki, dəyişən biz hələ daxil olmaq və sonra dəyişmək, və hələ də təsirli olacaq bilər. 874 00:58:58,060 --> 00:59:02,160 İndi funksiyası getmək əgər Belə ki, biz də 'i' dəyişən istifadə ki, görürsünüz 875 00:59:02,160 --> 00:59:05,320 və biz 'i' + + arttırmayı olacaq. 876 00:59:05,320 --> 00:59:09,410 Siz 'i' dəyişən bir nüsxəsi ki, C, əsasən, ilk, düşünmək olardı. 877 00:59:09,410 --> 00:59:12,830 Bu doğru, tamamilə fərqli bir şey. 878 00:59:12,830 --> 00:59:16,560 Biz bunu çap zaman, biz çap davam edən 'i' + + çap olacaq ki, 4, 879 00:59:16,560 --> 00:59:19,640 sorry - və biz olacaq. 880 00:59:19,640 --> 00:59:22,030 Sonra ki, funksiyasının həyata son olacaq, 881 00:59:22,030 --> 00:59:24,820 və biz arrow indi olduğu olacaq. 882 00:59:24,820 --> 00:59:29,190 Ki, sonra, lakin funksiyası 'i' dəyərini dəyişdi baxmayaraq o deməkdir ki, 883 00:59:29,190 --> 00:59:32,620 kənarda funksiyası dəyişmədi, 884 00:59:32,620 --> 00:59:35,060 funksiyası ayrı-ayrı həcmi çünki. 885 00:59:35,060 --> 00:59:38,960 Ki, biz 'i' echo o, funksiyası çərçivəsində dəyişməyib o deməkdir ki, 886 00:59:38,960 --> 00:59:43,660 və belə biz yenə 3 çap olacaq. 887 00:59:43,660 --> 00:59:47,520 C. dən PHP daxilində haqqında müxtəlif şeylər 888 00:59:47,520 --> 00:59:51,130 >> İndi PHP və HTML. 889 00:59:51,130 --> 00:59:53,510 PHP web pages dinamik etmək üçün istifadə olunur. 890 00:59:53,510 --> 00:59:58,660 Bu cür şeylər müxtəlif edir. 891 00:59:58,660 --> 01:00:02,090 Biz HTML müxtəlif var. 892 01:00:02,090 --> 01:00:05,230 HTML, biz həmişə yalnız Rob göstərdi necə kimi eyni statik şey var, 893 01:00:05,230 --> 01:00:09,370 PHP, halbuki siz istifadəçi olan əsaslanır şeyi dəyişə bilərsiniz. 894 01:00:09,370 --> 01:00:11,830 Mən bu var, əgər, mən, "Siz kimi daxil -" və sonra adı 895 01:00:11,830 --> 01:00:14,420 və mən adını dəyişə bilərsiniz. Belə ki, hazırda adı, Joseph edir 896 01:00:14,420 --> 01:00:18,880 və "Mənə haqqında" malikdir, lakin sonra mən də Tommy üçün adını dəyişə bilərsiniz. 897 01:00:18,880 --> 01:00:21,700 Və fərqli bir şey olacaq. 898 01:00:21,700 --> 01:00:23,840 Beləliklə biz də onun haqqında müxtəlif şeylər dəyişə bilər, 899 01:00:23,840 --> 01:00:27,070 və adı əsasında müxtəlif məzmun verəcəkdir. 900 01:00:27,070 --> 01:00:31,430 Belə ki, PHP cür web neler dəyişə bilərsiniz. 901 01:00:31,430 --> 01:00:33,540 Burada eyni. Still, onlar müxtəlif content Qeyd edək ki, 902 01:00:33,540 --> 01:00:38,870 Əgər texniki hələ səthində eyni web page daxil baxmayaraq. 903 01:00:38,870 --> 01:00:43,450 HTML yaradan. Siz bunu edə bilərsiniz ki, 2 müxtəlif yolları var. 904 01:00:43,450 --> 01:00:48,980 Beləliklə, biz artıq sağ ilə getmək lazımdır. Ilk yolu var, - Bəli, sorry. 905 01:00:48,980 --> 01:00:51,150 Belə ki, yalnız, PHP loop üçün müntəzəm var 906 01:00:51,150 --> 01:00:56,270 və sonra PHP echo və HTML həyata səda. 907 01:00:56,270 --> 01:00:58,720 Rob HTML script sizə göstərdi nə istifadə 908 01:00:58,720 --> 01:01:04,030 və sonra yalnız web page onu çap PHP çap istifadə edərək. 909 01:01:04,030 --> 01:01:09,520 Alternativ yol PHP və HTML-birindən sanki bunu edir. 910 01:01:09,520 --> 01:01:11,940 Belə ki, loop üçün başlayır PHP xətti ola bilər 911 01:01:11,940 --> 01:01:16,020 sonra ayrı bir şey HTML xətti ola bilər, 912 01:01:16,020 --> 01:01:19,700 və sonra bir PHP ilə, yenə loop son. 913 01:01:19,700 --> 01:01:21,800 Belə ki, bu cür onu ayıran edir. 914 01:01:21,800 --> 01:01:24,020 Sol tərəfində, siz ola bilər ki, bütün - 915 01:01:24,020 --> 01:01:26,360 Bu PHP yalnız 1 yığın edir. 916 01:01:26,360 --> 01:01:28,510 Sağ siz PHP bir xətt olduğunu görə bilərsiniz 917 01:01:28,510 --> 01:01:32,540 HTML xətti var, və siz yenidən PHP bir xətt var. 918 01:01:32,540 --> 01:01:36,870 Belə ki, onlar işle onu həyata ayıran. 919 01:01:36,870 --> 01:01:39,330 Və ki, ya yol, ya da onların üçün, qeyd edəcəyik 920 01:01:39,330 --> 01:01:41,980 onlar hələ də şəkil çap, şəkil, resim, 921 01:01:41,980 --> 01:01:44,540 belə ki, HTML hələ də eyni şəkildə çap olunur. 922 01:01:44,540 --> 01:01:49,870 Və sonra hələ 3 şəkillər saytında göstərilir görəcəksiniz. 923 01:01:49,870 --> 01:01:52,820 Belə ki, eyni şey bunu 2 müxtəlif yolları var. 924 01:01:52,820 --> 01:01:55,060 >> İndi formaları və müraciətlər var. Rob, sizə göstərdi 925 01:01:55,060 --> 01:01:59,400 orada HTML formaları, və biz yalnız bu vasitəsilə breeze edəcək. 926 01:01:59,400 --> 01:02:02,040 Siz bir hərəkət və bir metodu var və hərəkət 927 01:02:02,040 --> 01:02:04,350 cür onu göndərmək niyyətində olduğunuz göstərir və metodu olub 928 01:02:04,350 --> 01:02:06,960 bir GET və ya bir POST olacaq. 929 01:02:06,960 --> 01:02:11,220 Və GET sorğu, Rob dediyi kimi, bir formada qoymaq olacaq o deməkdir ki, 930 01:02:11,220 --> 01:02:15,760 bir POST sorğu URL görmək deyil halbuki və bir URL kimi görəcəksiniz. 931 01:02:15,760 --> 01:02:17,840 Belə ki, bir qədər fərq. 932 01:02:17,840 --> 01:02:19,950 Ancaq bənzər bir şey var ki, bir şey 933 01:02:19,950 --> 01:02:22,560 POST və GET bərabər etibarsız olmasıdır. 934 01:02:22,560 --> 01:02:26,430 Belə ki, yalnız siz URL görmürəm ki, ola bilər 935 01:02:26,430 --> 01:02:28,790 ki, POST, daha təhlükəsiz deməkdir 936 01:02:28,790 --> 01:02:34,420 lakin hələ göndərilməsi etdiyiniz informasiya sizin Cookies görürük. 937 01:02:34,420 --> 01:02:38,260 Belə ki, düşünmürəm haqqında bir və ya digər. 938 01:02:38,260 --> 01:02:42,160 Qeyd etmək başqa bir şey siz də bölmə dəyişənlər var. 939 01:02:42,160 --> 01:02:45,850 Siz uşaqlar üçün istifadəçi ID məlumat almaq üçün pset 7 Bu istifadə. 940 01:02:45,850 --> 01:02:48,550 Nə oldu, bu assosiativ array istifadə edə bilərsiniz ki, 941 01:02:48,550 --> 01:02:53,310 $ _SESSION, və sonra müxtəlif şeylər əldə edə danışırsınızsa 942 01:02:53,310 --> 01:02:57,720 və pages farklı şey saxlamayın. 943 01:02:57,720 --> 01:03:00,750 >> Son şey, biz SQL, Yapılandırılmış Sorğu Dil var ki, 944 01:03:00,750 --> 01:03:04,360 və bu verilənlər bazası idarə etmək üçün bir proqramlaşdırma dilidir. 945 01:03:04,360 --> 01:03:08,220 , Dəqiq, məlumat bazaları hansılardır? Onlar masa kolleksiyaları istəyirik, 946 01:03:08,220 --> 01:03:10,630 və hər bir masa obyektlərin oxşar növ ola bilər. 947 01:03:10,630 --> 01:03:14,990 Belə ki, sizin maliyyə pset istifadəçilər bir masa var idi. 948 01:03:14,990 --> 01:03:20,610 Və niyə onlar faydalıdır? Daimi saxlanılması məlumat yoldur, çünki. 949 01:03:20,610 --> 01:03:22,840 Bu şeyi izleme və hər şeyi idarə bir yoldur 950 01:03:22,840 --> 01:03:25,890 və həqiqətən müxtəlif pages və saxlanması yolda onu görən. 951 01:03:25,890 --> 01:03:29,930 Halbuki yalnız bir dərhal anda saxlamaq əgər 952 01:03:29,930 --> 01:03:33,720 və sonra istifadə, siz xilas etdik ki, bir şey əldə edə bilməyəcək. 953 01:03:33,720 --> 01:03:37,660 Biz SQL əmrləri üçün istifadə 4 əsas şey var. 954 01:03:37,660 --> 01:03:40,190 Biz seçin, insert, sil, və yeniləmə var. 955 01:03:40,190 --> 01:03:42,880 Bu uşaqlar üçün viktorina üçün bilmək üçün həqiqətən vacibdir. 956 01:03:42,880 --> 01:03:45,990 >> Biz tez indi artıq seçin getmək lazımdır. 957 01:03:45,990 --> 01:03:48,540 Əsasən, bir verilənlər bazası satır seçilməsi edirik. 958 01:03:48,540 --> 01:03:52,400 Belə ki, siz burada, varsa - 959 01:03:52,400 --> 01:03:56,740 bu 2 fərqli şeylər var, və biz dərsləri masa seçin istəyirəm 960 01:03:56,740 --> 01:04:01,480 Ü zəhmli - zəhmli sütununda dəyəri 1 yerləşir. 961 01:04:01,480 --> 01:04:04,460 Burada görə bilərsiniz, biz, sinif adı bu 2 şey var 962 01:04:04,460 --> 01:04:08,490 CS50 və Stat110, və biz sinif kimlikleri və şüarı var. 963 01:04:08,490 --> 01:04:13,150 Beləliklə, biz ki, bütün informasiya seçin istəyirəm. 964 01:04:13,150 --> 01:04:17,480 Sonra, bu cür ki, zəhmli sütun həyata toplama ki, burada edə bilərsiniz 965 01:04:17,480 --> 01:04:25,170 bütün şeylər 1, və sonra bu sinif ID, sinif adı və seçə bilərsiniz ki, şüar malikdir. 966 01:04:25,170 --> 01:04:28,100 Bu kodu Necə dəqiq etməliyəm? Siz PHP istifadə etmək lazımdır. 967 01:04:28,100 --> 01:04:33,830 Belə ki, növ PHP və SQL-birinə bağlı necə var. 968 01:04:33,830 --> 01:04:38,130 İndi bizim kodu var və biz sorğu funksiyasından istifadə etmək olacaq 969 01:04:38,130 --> 01:04:41,370 biz pset 7 etdi və biz SQL sorğu run olacaq kimi. 970 01:04:41,370 --> 01:04:43,870 Sonra biz olacaq - 971 01:04:43,870 --> 01:04:46,280 biz həmişə yalan əgər cərgə-nin üç bərabər əgər yoxlamaq lazımdır. 972 01:04:46,280 --> 01:04:49,010 Belə ki, yenə, siz növü və dəyəri yoxlamaq istəyirəm, 973 01:04:49,010 --> 01:04:53,880 bu iş deyil, əgər, sonra biz pset 7 kimi, adi kimi, üzr istəyirəm. 974 01:04:53,880 --> 01:04:55,870 Əks halda, bu lazımlı ilə hər vasitəsilə loop istəyirəm 975 01:04:55,870 --> 01:04:59,410 foreach biz artıq getdi ilmə. 976 01:04:59,410 --> 01:05:01,280 , Biz vasitəsilə loop və biz ötən etdik ki, indi 977 01:05:01,280 --> 01:05:05,080 Bizim sorğu qəbul fərz edək, indi biz foreach loop var. 978 01:05:05,080 --> 01:05:11,050 Və ilk sırada var, belə ki, burada sıra burada, var, bu kutulu edir. 979 01:05:11,050 --> 01:05:14,010 Bu kazanılmış ki, bütün məlumatları çap olacaq. 980 01:05:14,010 --> 01:05:18,070 Belə ki, altındakı çap olacaq "Wanna Learn HTML?" 981 01:05:18,070 --> 01:05:23,370 Bu loop üçün ilk tamamlanmış, çünki Sonra, növbəti sıra getmək olacaq 982 01:05:23,370 --> 01:05:26,510 və belə sonra, bu, ikinci xətt çap olacaq 983 01:05:26,510 --> 01:05:32,120 STAT110 olacaq olan bütün Moments tapın. 984 01:05:32,120 --> 01:05:34,290 >> Son bir şey SQL güvenlik edir. 985 01:05:34,290 --> 01:05:37,300 Mən David bu mühazirə bir az toxundu bilirik. 986 01:05:37,300 --> 01:05:40,730 Daha sonra bu oxuya bilərsiniz. Bu, həqiqətən komik. 987 01:05:40,730 --> 01:05:45,320 SQL Enjeksiyon çətin şey bir növüdür. 988 01:05:45,320 --> 01:05:49,890 Siz yalnız sağ sorğu o dəyişənlər qalmaq demək edək, 989 01:05:49,890 --> 01:05:52,290 Siz ki, ilk gördüyünüz kimi. 990 01:05:52,290 --> 01:05:54,520 Belə ki, hüququ, gözəl görünür? Siz yalnız istifadəçi adı qoyulması edirik 991 01:05:54,520 --> 01:05:58,820 və SQL sorğu parol, və siz off gəmi və sizin data cədvəldə nə almaq istəyirəm. 992 01:05:58,820 --> 01:06:01,450 Ki, olduqca sadə görünür. Belə ki, kimsə qoyur demək imkan verir 993 01:06:01,450 --> 01:06:04,910 parol, bu və ya mətn burada - 994 01:06:04,910 --> 01:06:06,780 əslində qırmızı qutusu olmalıdır. 995 01:06:06,780 --> 01:06:11,920 Belə ki, onlar o parol qoymaq deyək - ki, onlar daxil budur. 996 01:06:11,920 --> 01:06:16,520 Belə ki, onlar qoyaraq OR "1" = 1 edirik. 997 01:06:16,520 --> 01:06:20,880 Üçün bir silly parol şərti. 998 01:06:20,880 --> 01:06:25,070 İndi yalnız onu əvəz edək, və indi ki, SQL sorğu qeyd edəcəyik, 999 01:06:25,070 --> 01:06:29,090 Siz qeyd edəcəyik, çünki bu, həmişə doğru üçün qiymətləndirir ki, 1000 01:06:29,090 --> 01:06:32,240 Siz SQL sorğusu bu məlumat bütün seçə bilərsiniz 1001 01:06:32,240 --> 01:06:35,420 və ya yalnız 1 = 1 ola bilər. 1002 01:06:35,420 --> 01:06:41,030 Belə ki, həmişə doğru üçün qiymətləndirmək olacaq. 1003 01:06:41,030 --> 01:06:46,610 Ki, hacker sistemi daxil qıra bilər o deməkdir ki, çünki, həqiqətən, iş gedən deyil. 1004 01:06:46,610 --> 01:06:49,300 Bu həll siz PDO sistemi istifadə etmək ki, 1005 01:06:49,300 --> 01:06:51,360 ki, siz sual işarələri istifadə o deməkdir ki, 1006 01:06:51,360 --> 01:06:53,350 nə pset 7 istifadə uşaqlar, olan 1007 01:06:53,350 --> 01:06:57,620 siz bir şey qoymaq istədiyiniz yerdə bir sual işarəsi istifadə niyyətində olduğunuz, 1008 01:06:57,620 --> 01:07:01,430 və sonra bir vergül olacaq, və sonra sonra lazımdır 1009 01:07:01,430 --> 01:07:07,610 sizin simli sonra, istədiyiniz müxtəlif dəyişənlərin sizin sual işarəsi daxil əvəz edilsin. 1010 01:07:07,610 --> 01:07:10,330 Belə ki, indi bu qırmızı sual işarələri var ki, burada qeyd edəcəyik. 1011 01:07:10,330 --> 01:07:15,420 Mən sonra ki, onları əvəz etmək üçün bilmək belə Sonra mən strings sonra dəyişənlərin qoydu. 1012 01:07:15,420 --> 01:07:18,470 Kimsə bu kimi əgər ki, əmin edəcək 1013 01:07:18,470 --> 01:07:24,050 və onlar, əmin olun ki,, və ya 1 = 1 vəziyyət var 1014 01:07:24,050 --> 01:07:30,490 arxa sonunda, bu, həqiqətən SQL sorğu qırmaq deyil ki, əmin olun. 1015 01:07:30,490 --> 01:07:33,660 Okay, PHP və SQL bir qasırğa ki, olduqca çox belə. 1016 01:07:33,660 --> 01:07:41,520 Hamınıza uğurlar yaxşı və indi Ore üçün 1017 01:07:41,520 --> 01:07:44,270 >> [Oreoluwatomiwa Babarinsa] Okay hər kəs. Bəzi JavaScript üzərində getmək üçün vaxt 1018 01:07:44,270 --> 01:07:48,840 və bəzi digər şeylər çox tez belə ki, biz axşam up yoxdur. 1019 01:07:48,840 --> 01:07:56,930 JavaScript. Bəli. JavaScript purportedly, bir sərin şey növüdür. 1020 01:07:56,930 --> 01:07:59,090 Həqiqətən JavaScript haqqında bilmək lazımdır hər şeyi, bu növ kimi 1021 01:07:59,090 --> 01:08:03,810 web app bunu etmək olacaq nə klient end. 1022 01:08:03,810 --> 01:08:08,280 Yalnız server tərəfində hər zaman qayğı istəmirəm bəzi şeylər var. 1023 01:08:08,280 --> 01:08:12,880 Bütün az qarşılıqlı, bir şey işıqlandırılması bir şey yox edilməsi. 1024 01:08:12,880 --> 01:08:15,340 Siz, həqiqətən, sizin server üçün bütün zaman danışmaq istəmirəm. 1025 01:08:15,340 --> 01:08:18,069 Və bəzi server yan etmək belə mümkün deyil. 1026 01:08:18,069 --> 01:08:21,899 Biz JavaScript kimi bir şey lazımdır görə. 1027 01:08:21,899 --> 01:08:24,359 JavaScript haqqında Cool şey: Bu dinamik çap olunur. 1028 01:08:24,359 --> 01:08:27,149 Bu deməkdir proqram bilmək lazım deyil ki, 1029 01:08:27,149 --> 01:08:30,970 siz onu yazmaq zaman nə, dəqiq, dəyişənlər var. 1030 01:08:30,970 --> 01:08:34,510 Bu çalışan kimi yalnız növ anlamaq lazımdır. 1031 01:08:34,510 --> 01:08:37,520 Bu barədə sərin ki, başqa şeylər: Bu buruq brace dil, 1032 01:08:37,520 --> 01:08:41,359 olan sintaksis C və PHP oxşar deməkdir. 1033 01:08:41,359 --> 01:08:47,050 Siz JavaScript təlim etdiyiniz zaman çox yenidən işlənməsi etmək yoxdur. 1034 01:08:47,050 --> 01:08:49,180 Burada JavaScript bir az var. 1035 01:08:49,180 --> 01:08:52,560 Burada maraqlı bir şey ki, siz baxmaq halda, 1036 01:08:52,560 --> 01:08:56,330 Biz baş tag orada JavaScript bir az var. 1037 01:08:56,330 --> 01:08:59,479 Nədir əsasən yalnız bir JavaScript faylı daxildir gedir. 1038 01:08:59,479 --> 01:09:02,260 Bu proqram JavaScript daxil ola bilər bir yoldur. 1039 01:09:02,260 --> 01:09:06,910 Sonra ikinci az, həqiqətən, bəzi daxili JavaScript edir 1040 01:09:06,910 --> 01:09:10,790 çox CSS ilə inline stil oxşar, 1041 01:09:10,790 --> 01:09:16,180 və yalnız çox tez orada bəzi kodu yazmağa edirik. 1042 01:09:16,180 --> 01:09:18,120 JavaScript serialların var. 1043 01:09:18,120 --> 01:09:20,850 Çox faydalı, ətrafında data saxlamaq üçün yalnız bir yol. 1044 01:09:20,850 --> 01:09:25,180 Çox gözəl və asan syntax. 1045 01:09:25,180 --> 01:09:29,870 Siz hər şey daxil birlikdə hər şey saxlamaq kvadrat mötərizə istifadə edin. 1046 01:09:29,870 --> 01:09:35,020 Çox mürəkkəb bir şey yoxdur. 1047 01:09:35,020 --> 01:09:38,630 Ümumi JavaScript və scripting languages ​​haqqında sərin şey 1048 01:09:38,630 --> 01:09:40,920 Siz array ölçüləri barədə narahat yoxdur ki. 1049 01:09:40,920 --> 01:09:43,880 Siz yalnız array.length istifadə və takip edə bilərsiniz, 1050 01:09:43,880 --> 01:09:46,960 və həmçinin array inkişaf və ya sizə lazım kimi shrink bilər. 1051 01:09:46,960 --> 01:09:49,279 Belə ki, hətta, hər hansı narahat ehtiyac yoxdur 1052 01:09:49,279 --> 01:09:57,050 heç bir oh, mən daha çox şey, və ya kimi bir şey ayırmaq lazımdır. 1053 01:09:57,050 --> 01:10:00,090 >> Burada cool şey JavaScript obyektlərin deyilən bir şey var ki. 1054 01:10:00,090 --> 01:10:04,800 Bu obyekt yönümlü dil, belə olduğu nə, mahiyyətcə, 1055 01:10:04,800 --> 01:10:10,100 qrup data sizin üçün bir yol birlikdə, bir struct üçün bir qədər oxşar, 1056 01:10:10,100 --> 01:10:17,280 ancaq bir struct kimi və ya assosiativ array sintaksis ilə əldə edə bilərsiniz. 1057 01:10:17,280 --> 01:10:22,520 Bu olduqca sadə və nə bu ilə edə bilərsiniz birlikdə qrup data deyil 1058 01:10:22,520 --> 01:10:24,810 Siz bağlı olan məlumatların bir dəstə var. 1059 01:10:24,810 --> 01:10:26,850 Siz bir avtomobil təsvir etmək üçün lazım olan bütün şeylər, çünki, 1060 01:10:26,850 --> 01:10:29,050 Siz müxtəlif yerlərdə bir dəstə onu ehtiyac yoxdur. 1061 01:10:29,050 --> 01:10:35,300 Siz yalnız JavaScript 1 obyekt daxil qalmaq bilər. 1062 01:10:35,300 --> 01:10:39,090 Siz yəqin bilirsiniz ki, iterating o yorucu vəzifələrdən biridir. 1063 01:10:39,090 --> 01:10:43,810 Siz yalnız yenidən üzərində bunu. Siz, avtomobil hər obyekt danışmaq lazımdır 1064 01:10:43,810 --> 01:10:47,340 və ya bir siyahı və ya kimi bir şey hər bir maddə ilə getmək lazımdır. 1065 01:10:47,340 --> 01:10:51,770 Belə ki, JavaScript, PHP, bir foreach sintaksis oxşar var. 1066 01:10:51,770 --> 01:10:54,590 Bu halda, bu loop üçün var. 1067 01:10:54,590 --> 01:10:57,300 Siz yalnız obyektlərin istifadə etmək istəyirik. 1068 01:10:57,300 --> 01:11:01,030 Siz seriallarda istifadə əgər baş verən bəzi problemlər var. 1069 01:11:01,030 --> 01:11:03,750 Bu, ümumiyyətlə, baxmayaraq ki, çox faydalıdır, o şeyi biridir 1070 01:11:03,750 --> 01:11:06,590 siz hava bir çox aradan qaldırılması, çünki 1071 01:11:06,590 --> 01:11:10,270 siz özünüz obyekt hər şey qoparmaq yoxdur çünki. 1072 01:11:10,270 --> 01:11:12,300 Siz bütün əsas adları xatırlamaq yoxdur. 1073 01:11:12,300 --> 01:11:18,270 Siz yalnız sort bu sintaksis onları geri almaq. 1074 01:11:18,270 --> 01:11:21,500 Bu, üçün, yalnız xatırlamaq istəyirəm 1075 01:11:21,500 --> 01:11:27,180 Əgər hash table bir çox oxşar şəkildə, bütün açarları geri alırıq. 1076 01:11:27,180 --> 01:11:30,880 Siz ki, xatırlayıram, bir string qoymaq zaman, siz bir şey əldə edə bilər 1077 01:11:30,880 --> 01:11:33,840 ki, bir dəyər bağlı olardı. 1078 01:11:33,840 --> 01:11:36,360 Nə bu ilə edə bilərsiniz, siz bütün sağ demək olar 1079 01:11:36,360 --> 01:11:42,120 Mən bir avtomobil qoymaq, və mən bir Ferrari adlandırıb. 1080 01:11:42,120 --> 01:11:45,290 Belə ki, siz daha sonra string Ferrari qoymaq bilər, və siz ki, əldə edə bilərsiniz. 1081 01:11:45,290 --> 01:11:50,000 Və loop üçün, bir loop edə bilərsiniz. 1082 01:11:50,000 --> 01:11:53,320 Belə ki, yalnız obyektlərin haqqında daha ətraflı. Yadınızdadırsa lazımdır bu əsas şey 1083 01:11:53,320 --> 01:12:00,340 , bu ilə istədiyiniz zaman, sintaksis kimi obyekt struct istifadə edə bilərsiniz ki, 1084 01:12:00,340 --> 01:12:04,590 Sənin bir string kimi istifadə etmək niyyətindədir cari dəyişən adı deyil istisna olmaqla. 1085 01:12:04,590 --> 01:12:07,650 Siz ki, orada baxmaq Belə ki, biz fəzalarında ilə əsas var. 1086 01:12:07,650 --> 01:12:12,500 Yaxşı, siz object.key qoymaq olsaydı, kosmik, ilə, kosmik, fəzalarında, 1087 01:12:12,500 --> 01:12:15,320 yalnız syntactically mənada deyil. 1088 01:12:15,320 --> 01:12:22,730 Belə ki, yalnız bracket sintaksis bu cür ilə bunu edə bilərsiniz. 1089 01:12:22,730 --> 01:12:26,520 >> Həmçinin, JavaScript çox dairəsi-müdrik PHP edir. 1090 01:12:26,520 --> 01:12:29,050 Siz daxilində həll 2 yol var. 1091 01:12:29,050 --> 01:12:31,960 Siz dəyişən qarşısında var ola bilməz, 1092 01:12:31,960 --> 01:12:34,060 və yalnız bu qlobal deməkdir. 1093 01:12:34,060 --> 01:12:37,050 Siz hər yerdə görə bilərsiniz. Əgər bir bəyanat əgər bu qoymaq idi, hətta, 1094 01:12:37,050 --> 01:12:42,430 başqa yerdə kodu ki, nöqtədən sonra siz ki, dəyişən görürdü. 1095 01:12:42,430 --> 01:12:46,730 Başqa bir şey, baxmayaraq ki, siz daxil etdiyiniz hər hansı funksiyası məhdud deyil, var olan 1096 01:12:46,730 --> 01:12:48,870 Bir funksiyası değilseniz, həmçinin, qlobal var. 1097 01:12:48,870 --> 01:12:53,900 Bir funksiyası əgər Lakin bu funksiya yalnız görünən deyil. 1098 01:12:53,900 --> 01:12:56,420 I Bəli, bir misal var, amma yoxdur. Bu o şeyi biridir olduğu 1099 01:12:56,420 --> 01:12:59,900 Siz qlobal olmaq istəyirəm nə dəyişənlərin idarə edə bilərsiniz 1100 01:12:59,900 --> 01:13:03,810 nə dəyişənlərin yerli olmaq istəyirəm, lakin bu barədə diqqətli olmaq lazımdır, 1101 01:13:03,810 --> 01:13:06,890 Siz C nə gözəl taxıl nəzarət növü yoxdur, çünki, 1102 01:13:06,890 --> 01:13:15,820 bir şey loop üçün elan əgər, bu loop üçün qalmaq hara gedir. 1103 01:13:15,820 --> 01:13:18,790 Biz həqiqətən üçün JavaScript istifadə qayğısına şey doğru, web pages manipulyasiya edir? 1104 01:13:18,790 --> 01:13:21,800 Mən demək ki, niyə biz bunu edirik var. 1105 01:13:21,800 --> 01:13:23,840 >> Biz DOM deyilən bir şey istifadə, Bunu etmək üçün. 1106 01:13:23,840 --> 01:13:25,850 The Document Object Model. 1107 01:13:25,850 --> 01:13:29,430 Əsasən, nə edir o bütün HTML alır 1108 01:13:29,430 --> 01:13:34,110 və bir-birinə iç içə ki, obyektlərin bir dəstə modelləri onu. 1109 01:13:34,110 --> 01:13:37,080 Bu kimi bir şey ilə başlamaq. 1110 01:13:37,080 --> 01:13:44,770 Siz orada kodu bir dəstə ki, sort var, mənim üçün sağ var - 1111 01:13:44,770 --> 01:13:46,640 Siz manipulyasiya etmək çox çətin olardı edirəm, 1112 01:13:46,640 --> 01:13:48,700 Mətn bir dəstə vasitəsilə təhlil olarıq çünki 1113 01:13:48,700 --> 01:13:52,080 və hər şeyi ayrı parça olan. Və düzgün biçimli deyil, əgər? 1114 01:13:52,080 --> 01:13:54,880 Bad şeylər olacaqdı. 1115 01:13:54,880 --> 01:13:58,140 Belə ki, JavaScript sizin üçün bu qayğı, və siz gözəl bir data strukturu almaq 1116 01:13:58,140 --> 01:14:01,390 Siz yalnız bir sənəd mənim, sol biri kimi, 1117 01:14:01,390 --> 01:14:03,530 və içərisində siz, HTML deyilən bir şey var 1118 01:14:03,530 --> 01:14:05,600 və içərisində siz bir baş və bədən 1119 01:14:05,600 --> 01:14:08,420 və baş içərisində, sair, sair və ilaxir bir mövzu var. 1120 01:14:08,420 --> 01:14:11,810 Bu, yalnız var ki, bir web page manipulyasiya asanlaşdırır 1121 01:14:11,810 --> 01:14:14,190 oh, Mən yalnız bu obyekt danışmaq istəyirəm. 1122 01:14:14,190 --> 01:14:21,340 Siz özünüz bir obyekt ilə danışmaq ki, bir çox oxşar şəkildə Sort. 1123 01:14:21,340 --> 01:14:25,980 Dediyim kimi, bütün DOM sənəd obyekt var. 1124 01:14:25,980 --> 01:14:29,290 Ya, yalnız bir yer və sonra şeyi tapmaq üçün ərzində davam edə bilər 1125 01:14:29,290 --> 01:14:33,880 və siz bunu edə bilərsiniz - bu qədər var ki, bunu köhnə stili, 1126 01:14:33,880 --> 01:14:38,130 Siz document.getElementById etmək, və sonra adı 1127 01:14:38,130 --> 01:14:42,420 Siz yəqin ki, demək bilər kimi, bu bir müddət sonra çox yöndəmsiz olur. 1128 01:14:42,420 --> 01:14:44,480 Beləliklə, siz yəqin ki, bunu istəmirəm. Biz niyə ki 1129 01:14:44,480 --> 01:14:48,760 biz bundan sonra danışmaq olacaq növbəti şey. 1130 01:14:48,760 --> 01:14:52,510 Burada əsas odur ki, bütün sağ, sağ, bütün bu elementlər var? 1131 01:14:52,510 --> 01:14:56,400 Belə ki, bəlkə zaman səhifə yük şey rəngini dəyişə bilərsiniz. 1132 01:14:56,400 --> 01:14:58,380 Belə ki, nə? Nə mənim char? 1133 01:14:58,380 --> 01:15:00,540 Mən bir şey basın zaman maraqlı bir şey etmək istəyirəm. 1134 01:15:00,540 --> 01:15:02,600 Biz hadisə mövcut niyə ki. 1135 01:15:02,600 --> 01:15:05,330 Siz, əsasən, sizin DOM heç bir element tapa bilərsiniz, 1136 01:15:05,330 --> 01:15:08,560 və sonra hey deyirlər. , Bu yükləyir və ya kimsə klik zaman 1137 01:15:08,560 --> 01:15:11,410 və ya onlar üzərində siçan, bir şey etmək zaman. 1138 01:15:11,410 --> 01:15:15,330 Və siz nə sizin üçün bu idarə funksiyaları var. 1139 01:15:15,330 --> 01:15:17,980 Bu funksiyaları hadisə işleyicileri var. 1140 01:15:17,980 --> 01:15:20,440 Nə they're - yalnız deyərək bir xülya yolu, 1141 01:15:20,440 --> 01:15:23,500 Bu hadisə olur bu funksiya yalnız icra edilir. 1142 01:15:23,500 --> 01:15:28,070 Belə ki, baş verən hadisə yapar. 1143 01:15:28,070 --> 01:15:30,810 Bu tədbir handler salınması necə. 1144 01:15:30,810 --> 01:15:34,750 Mən bəzi düyməsini var, və bunu basın zaman, partlayır. 1145 01:15:34,750 --> 01:15:40,560 Belə ki, düyməsini basın yoxdur. 1146 01:15:40,560 --> 01:15:42,910 Bu hüququ, o yaxınlaşan bir yoldur? 1147 01:15:42,910 --> 01:15:46,430 , Siz bir düyməsinə tag var və klik deyir ki, bir simli var 1148 01:15:46,430 --> 01:15:50,460 oh, yolu ilə, mənim üçün bu exploding şey. 1149 01:15:50,460 --> 01:15:53,990 Əks halda, yalnız yalnız bir müntəzəm düyməsini kimi. 1150 01:15:53,990 --> 01:15:56,550 Siz həmçinin bu başqa bir yol edə bilər, 1151 01:15:56,550 --> 01:16:02,770 biz jQuery haqqında danışmaq sonra DOM element qənimətçilik, ancaq biz saxlaya bilərsiniz. 1152 01:16:02,770 --> 01:16:07,580 >> JQuery: Bu cross-browser ki, bir kitabxanadır. 1153 01:16:07,580 --> 01:16:09,580 Siz olduqca çox şey istifadə edə bilərsiniz. 1154 01:16:09,580 --> 01:16:12,090 Və bu yalnız işləmək üçün alətlər bir çox verir. 1155 01:16:12,090 --> 01:16:15,850 JavaScript, güclü isə, sizə lazım olan bütün alətlər yoxdur, çünki 1156 01:16:15,850 --> 01:16:20,550 həqiqətən bir web app həll etmək qutusu həyata etmək istəyirəm bilər. 1157 01:16:20,550 --> 01:16:24,650 Belə ki, bir çox şeyi asanlaşdırır siz funksiyaları bir çox verir 1158 01:16:24,650 --> 01:16:28,760 normal təkrar-təkrar və üzərində, özünüz yazmaq lazımdır ki qutusuna həyata. 1159 01:16:28,760 --> 01:16:31,600 Və yalnız hər şeyi çox sadə edir. 1160 01:16:31,600 --> 01:16:35,780 Siz həmçinin bütün bu elementləri almaq imkan olan seçiciler var 1161 01:16:35,780 --> 01:16:42,800 sizin DOM daha çox sadəcə, əvəzinə bu çox uzun funksiyası zənglər istifadə üçün olan. 1162 01:16:42,800 --> 01:16:46,630 Bu seçiciler Ətraflı. Siz, deyək ki orada var 1163 01:16:46,630 --> 01:16:49,800 Mən ID ilə bir element almaq istəyirəm "rok." 1164 01:16:49,800 --> 01:16:56,450 Yaxşı, jQuery, yalnız $ və sonra bir funt var ki, bir string, sonra var "qaya". 1165 01:16:56,450 --> 01:17:01,960 Bu, çox sadə və bu problem həll ənənəvi JavaScript yolu daha çox daha sürətli edir. 1166 01:17:01,960 --> 01:17:06,120 Və sinifləri və element növləri üçün eyni şey var. 1167 01:17:06,120 --> 01:17:08,140 jQuery - bu sərin xüsusiyyətləri bir növ kompres bilər 1168 01:17:08,140 --> 01:17:14,350 sizin DOM sizin sorgular aşağı çox, çox sürətli. 1169 01:17:14,350 --> 01:17:18,980 İndi biz geri hadisə user istəyirik, və bu jQuery bir hadisə idarə necə. 1170 01:17:18,980 --> 01:17:23,090 Belə ki, nə biz burada olacaq, biz bütün sağ deyərək etdiyiniz edir. Mən script tag var, sağ? 1171 01:17:23,090 --> 01:17:25,400 Mən bu inline JavaScript var. 1172 01:17:25,400 --> 01:17:27,750 Biz nə olacaq, biz bütün sağ demək olacaq edir. 1173 01:17:27,750 --> 01:17:30,860 Sənəd, sənəd yüklü edilmişdir deməkdir ki, hazır olduqda 1174 01:17:30,860 --> 01:17:34,660 , biz funksiyası getmək üçün gedir və biz, bütün sağ demək olacaq 1175 01:17:34,660 --> 01:17:37,060 bu funksiya həqiqətən başqa bir şey edir. 1176 01:17:37,060 --> 01:17:42,320 Bu əsasən bütün sağ, mənə ID ilə element almaq, deyərək "myid." 1177 01:17:42,320 --> 01:17:47,960 Və sonra bu bunu basın zaman həyata bir funksiya handler verir. 1178 01:17:47,960 --> 01:17:49,820 Əsasən bu nə deyir, yaxşıdır. 1179 01:17:49,820 --> 01:17:52,630 , Bu səhifə yüklənir, mən, bu element tapmaq üçün gedirəm 1180 01:17:52,630 --> 01:17:56,420 Bu hadisə handler vermək və bu, əsasən sizin üçün səhifə yaradır. 1181 01:17:56,420 --> 01:18:00,520 Və bu hadisə baxılması haqqında düşünmək istəyirəm necə. 1182 01:18:00,520 --> 01:18:06,310 Siz yalnız düşünmək bütün sağ, bir şey baş zaman, mən nə üçün nə istəyirsiniz istəyirsiniz? 1183 01:18:06,310 --> 01:18:10,520 Siz, tamam, mən bu şey üçün əmin bu şey danışıqlar etmək lazımdır, düşünmək istəmirəm 1184 01:18:10,520 --> 01:18:14,660 Bu şey blah blah blah, yalnız hadisələr baxımından şey danışmaq istəyirəm, çünki. 1185 01:18:14,660 --> 01:18:17,650 Bu, bu baş. Bu, ki, baş verir. 1186 01:18:17,650 --> 01:18:20,240 Şeylər başqa şeylər tetiklemek əgər ki, böyük deyil. 1187 01:18:20,240 --> 01:18:22,150 Amma mürəkkəb kodu cəhd etmək istəmirəm 1188 01:18:22,150 --> 01:18:24,130 siz, eyni zamanda birdən çox şeyi tetiklemesini edirik 1189 01:18:24,130 --> 01:18:28,860 yalnız özünüzü bir baş ağrısı vermək üçün olacaq, çünki. 1190 01:18:28,860 --> 01:18:32,340 >> Bütün hüququ. İndi bizim səhifə hadisələr idarə etmək üçün əldə edə bilərsiniz, 1191 01:18:32,340 --> 01:18:35,640 lakin mənim istifadəçi bir düyməsinə tıklayan deyək. 1192 01:18:35,640 --> 01:18:38,040 Nə, mən geri server üçün sorğu göndərmək istəyirsinizsə 1193 01:18:38,040 --> 01:18:41,100 yeni bir səhifə yeniden olan, çünki mən, səhifə yeniden istəmirəm 1194 01:18:41,100 --> 01:18:44,390 hər bir vaxt cür yorucu olur, və niyə lazımdır 1195 01:18:44,390 --> 01:18:47,430 yenidən header aşağı çəkmək və yenidən footer üçün, 1196 01:18:47,430 --> 01:18:49,670 və bütün Səhifənin elementləri yenidən 1197 01:18:49,670 --> 01:18:53,180 yalnız salam və ya vaxt yenilemek üçün? 1198 01:18:53,180 --> 01:18:55,290 Biz Ajax kimi bir şey var nə ki, var. 1199 01:18:55,290 --> 01:18:59,150 Nə biz Ajax ilə burada edə bilərsiniz, biz bütün sağ demək olar 1200 01:18:59,150 --> 01:19:01,290 Mən server bəzi məlumatlar göndərmək istəyirəm, 1201 01:19:01,290 --> 01:19:04,010 və mən mənim səhifə təkmilləşdirə bilər geri cavab almaq istəyirsinizsə, 1202 01:19:04,010 --> 01:19:12,120 və ya bəlkə yalnız mütləq istifadəçi üçün bir şey göstərmək deyil ki, bəzi alqoritmik hesablanması yoxdur. 1203 01:19:12,120 --> 01:19:15,500 Nə bu nə etmək lazımdır? Yaxşı, siz danışmaq lazımdır URL lazımdır. 1204 01:19:15,500 --> 01:19:18,650 Sizin server yalnız magically heç bir yerdə qulaq bilməz. 1205 01:19:18,650 --> 01:19:21,960 Siz bu məlumatların göndərilməsi etdiyiniz xüsusi bir yer lazımdır. 1206 01:19:21,960 --> 01:19:26,240 Və siz də bəzi data göndərmək lazımdır, və ya bəlkə bir dataless sorğu var. 1207 01:19:26,240 --> 01:19:31,380 Siz yalnız hey, Mən diri-diri, və ya kimi bir şey deyiləm, server geri ping və demək istəyirəm. 1208 01:19:31,380 --> 01:19:35,150 Və sonra əsasən müvəffəqiyyət ilə emal funksiyası istəyirəm. 1209 01:19:35,150 --> 01:19:38,250 Siz server bəzi məlumatları geri almaq demək edək, 1210 01:19:38,250 --> 01:19:42,960 və onların səhifəsində istifadəçi adı dəyişdirmək istəyirik. 1211 01:19:42,960 --> 01:19:44,930 Beləliklə, siz geri məlumat almaq olardı, 1212 01:19:44,930 --> 01:19:48,860 və siz ekran üçün təkan olacaq. 1213 01:19:48,860 --> 01:19:51,170 Səhifə hazırdır ne olur, edir 1214 01:19:51,170 --> 01:19:56,500 siz greeter adlı düyməsini klik funksiyasını bir yaradır. 1215 01:19:56,500 --> 01:19:58,810 Ki, düyməsini basdı zaman Bu, sonra, var, 1216 01:19:58,810 --> 01:20:03,700 Siz greetings.php danışmaq, siz POST sorğu etmək 1217 01:20:03,700 --> 01:20:07,290 və hey, sizin səhifə mənə bir şey almaq, deyirlər. 1218 01:20:07,290 --> 01:20:09,890 Biz, həqiqətən, ki, təsvir etmək lazımdır, lakin greetings.php yoxdur 1219 01:20:09,890 --> 01:20:12,480 deyək, "salam dünya." geri verir 1220 01:20:12,480 --> 01:20:15,650 Belə ki, biz, "salam dünya" bu geri almaq və bu uğur 1221 01:20:15,650 --> 01:20:20,730 heç bir şey yanlış gedir fərz, sonra biz yalnız bu hədəf yerə getmək 1222 01:20:20,730 --> 01:20:25,720 biz müəyyən və biz yalnız orada cavab qalmaq. 1223 01:20:25,720 --> 01:20:31,560 Və bu bir Ajax sorğu yaradılması çox sadə yoludur. 1224 01:20:31,560 --> 01:20:34,340 >> Çox tez Rob növ, artıq bu qeyd 1225 01:20:34,340 --> 01:20:37,170 şeyi yanlış getmək bilər, pis şeylər ola bilər, 1226 01:20:37,170 --> 01:20:42,660 belə ki, bu HTTP cavab kodları ilə tanış etmək istəyirəm. 1227 01:20:42,660 --> 01:20:46,030 Nə bu hər şey tamam getdi, 200, kimi, yalnız var. 1228 01:20:46,030 --> 01:20:48,670 Başqa bir şey, pis şeylər oldu. 1229 01:20:48,670 --> 01:20:50,790 Ümumiyyətlə yadda istədiyiniz şey var. 1230 01:20:50,790 --> 01:20:53,440 Amma bu bütün bilmək gözəl var. 1231 01:20:53,440 --> 01:20:55,970 Və nəhayət, bir dəfə biz ki, bütün vasitəsilə getdi sonra, 1232 01:20:55,970 --> 01:20:58,680 biz dizayn haqqında çox tez danışmaq lazımdır 1233 01:20:58,680 --> 01:21:00,620 və sonra biz bütün tərk imkan bilər. 1234 01:21:00,620 --> 01:21:03,410 Design. Siz xatırlamaq istəyirəm Things. 1235 01:21:03,410 --> 01:21:06,950 Bu suallara özünüz soruşun: Kim bu istifadə edə bilərsiniz? 1236 01:21:06,950 --> 01:21:09,580 Onlar üçün nə istifadə edəcək? Mənim istifadəçilər haqqında nə qayğı yoxdur? 1237 01:21:09,580 --> 01:21:11,750 Onlar haqqında nə qayğı yoxdur? 1238 01:21:11,750 --> 01:21:14,500 Siz yalnız bir app etmək və yalnız inkişaf imkan istəmirəm 1239 01:21:14,500 --> 01:21:18,270 və bu nəhəng, hətta bitirmək deyil ki, bütün aparan şey olur. 1240 01:21:18,270 --> 01:21:23,900 Siz həll etmək istəyirik diskret məqsəd və planları və hər şeyi etmək istəyirəm. 1241 01:21:23,900 --> 01:21:29,000 Çaba olun. Bütün bu, əsasən, deyir 1242 01:21:29,000 --> 01:21:34,950 asan istifadəçi istifadə etmək üçün etmək;, həqiqətən, bu Slayd kimi mətn nəhəng bir damcı etmək yoxdur. 1243 01:21:34,950 --> 01:21:38,020 Siz yalnız biri getmək üçün çox asan olduğu bir şey olmaq istəyirəm 1244 01:21:38,020 --> 01:21:40,800 və onlar istəyirəm nə. 1245 01:21:40,800 --> 01:21:42,920 Siz onlara 5 pages gezinmek üçün istəmirəm 1246 01:21:42,920 --> 01:21:45,460 site sizin baş funksiyası almaq üçün. 1247 01:21:45,460 --> 01:21:49,290 Google əvvəl 5 pages var idi, əgər belə bir şey axtarmaq, 1248 01:21:49,290 --> 01:21:53,080 heç kim istifadə edir. 1249 01:21:53,080 --> 01:21:55,890 Və nəhayət, kağız prototip, fokus qrupu. 1250 01:21:55,890 --> 01:21:59,220 Yaxşı dizayn və test təcrübələri var. 1251 01:21:59,220 --> 01:22:00,730 Sizin üçün çalışır edirəm Məhz, 1252 01:22:00,730 --> 01:22:04,860 Hər kəsdən çalışdığını düşünür demək deyil. 1253 01:22:04,860 --> 01:22:14,490 Lakin Bəli, ki, var. 1254 01:22:14,490 --> 01:22:17,490 [CS50.TV]