1 00:00:00,000 --> 00:00:08,090 2 00:00:08,090 --> 00:00:09,810 >> JASON Hirschhorn: Selamat datang, semua orang, untuk minggu 10. 3 00:00:09,810 --> 00:00:15,130 Ini adalah minggu yang menarik karena besok adalah Quiz 1, yang kita akan mendapatkan 4 00:00:15,130 --> 00:00:16,400 dalam satu detik. 5 00:00:16,400 --> 00:00:21,770 Hari ini di bagian, kita akan pergi atas beberapa sumber daya untuk kuis, dan 6 00:00:21,770 --> 00:00:24,890 maka saya akan menjawab setiap dan semua pertanyaan kalian punya. 7 00:00:24,890 --> 00:00:27,880 Dan kita akhirnya akan berakhir dengan beberapa masalah praktek. 8 00:00:27,880 --> 00:00:30,940 >> Kita bisa menghabiskan seluruh bagian menjawab pertanyaan. 9 00:00:30,940 --> 00:00:33,240 Kita bisa menghabiskan seluruh bagian akan lebih dari masalah praktek. 10 00:00:33,240 --> 00:00:36,890 Kami hanya akan memperluas untuk mengisi ruang dan waktu yang kita miliki. 11 00:00:36,890 --> 00:00:40,590 >> Jadi saya menaruh daftar ini setiap minggu, tapi itu sangat penting minggu ini. 12 00:00:40,590 --> 00:00:44,980 Untuk belajar, jika Anda belum mulai sudah, oh boy. 13 00:00:44,980 --> 00:00:46,400 Tapi mudah-mudahan Anda sudah mulai sudah. 14 00:00:46,400 --> 00:00:50,710 Dan Anda akan melalui bahan dan sumber daya yang tercantum di sini. 15 00:00:50,710 --> 00:00:54,300 Saya akan sangat menyarankan sejumlah ini. 16 00:00:54,300 --> 00:00:58,780 >> Secara khusus, catatan kuliah yang sangat penting dan membantu. 17 00:00:58,780 --> 00:01:02,880 Study.cs50.net menyediakan primer besar pada banyak 18 00:01:02,880 --> 00:01:04,250 topik yang kita bahas. 19 00:01:04,250 --> 00:01:07,810 Ini juga memiliki beberapa besar berlatih masalah. 20 00:01:07,810 --> 00:01:11,260 Dan kemudian, Google terlalu besar. 21 00:01:11,260 --> 00:01:12,360 Saya tidak tahu apa yang akan Anda gunakan untuk. 22 00:01:12,360 --> 00:01:14,090 Tapi menggunakan Google, juga. 23 00:01:14,090 --> 00:01:16,680 >> Menjangkau saya jika Anda memiliki pertanyaan, komentar, atau kritik. 24 00:01:16,680 --> 00:01:19,420 Lihat selama sesi tinjauan slide dari tadi malam. 25 00:01:19,420 --> 00:01:21,540 Atau, jika Anda memiliki beberapa waktu, menonton video. 26 00:01:21,540 --> 00:01:24,930 Mereka menyediakan banyak membantu material dan informasi. 27 00:01:24,930 --> 00:01:29,730 Dan mencoba dan menutup jika tidak semua, banyak topik yang kita sudah dibahas dan bahwa Anda 28 00:01:29,730 --> 00:01:32,610 mungkin melihat pada kuis. 29 00:01:32,610 --> 00:01:35,590 >> Berbicara tentang kuis, yang akan besok. 30 00:01:35,590 --> 00:01:37,260 Ini 75 menit. 31 00:01:37,260 --> 00:01:40,740 Banyak dari Anda mengambil itu pada 1 pukul, dan beberapa dari Anda 32 00:01:40,740 --> 00:01:42,740 mengambil jam 5:30. 33 00:01:42,740 --> 00:01:45,300 Untuk saat ini Anda mengambil itu dan lokasi Anda mengambil itu, pastikan 34 00:01:45,300 --> 00:01:49,400 Anda memeriksa dokumen pada homepage CS50.net. 35 00:01:49,400 --> 00:01:54,340 >> Ingat bahwa Anda bisa mendapatkan satu 8 1/2 dengan 11 lembar untuk mengambil dengan Anda. 36 00:01:54,340 --> 00:01:57,310 Sering kali, orang tidak menggunakan ini lembar sama sekali selama kuis. 37 00:01:57,310 --> 00:01:59,740 Tapi benar-benar, itu adalah sangat membantu studi alat. 38 00:01:59,740 --> 00:02:04,370 Jadi menyusun lembaran yang apa Aku menghabiskan mungkin tiga atau empat jam 39 00:02:04,370 --> 00:02:07,110 lakukan ketika saya sedang belajar untuk CS50, dan itu mudah yang paling bermanfaat 40 00:02:07,110 --> 00:02:08,740 cara aku bisa belajar untuk kuis. 41 00:02:08,740 --> 00:02:10,949 Jadi bahkan jika Anda memiliki beberapa orang lain panduan belajar untuk melihat dan 42 00:02:10,949 --> 00:02:14,740 digunakan sebagai referensi, saya sangat menyarankan membuat panduan studi Anda sendiri, menempatkan 43 00:02:14,740 --> 00:02:15,490 bahwa hal bersama-sama. 44 00:02:15,490 --> 00:02:17,335 Itu benar-benar membantu Anda belajar semua materi. 45 00:02:17,335 --> 00:02:20,270 46 00:02:20,270 --> 00:02:24,810 >> Terakhir but not least dalam bagian ini, setelah besok kuis ada satu 47 00:02:24,810 --> 00:02:25,940 lebih kuliah - 48 00:02:25,940 --> 00:02:26,960 Senin depan. 49 00:02:26,960 --> 00:02:30,430 Ada satu bagian yang lebih, tidak berikutnya Selasa sebelum Thanksgiving, tetapi 50 00:02:30,430 --> 00:02:31,630 Selasa setelah itu. 51 00:02:31,630 --> 00:02:36,600 Kami akan bertemu bersama-sama untuk akhir selamat tinggal partai dan juga melakukan beberapa keren 52 00:02:36,600 --> 00:02:41,530 hal untuk mendapatkan kalian bersemangat tentang penelitian lebih lanjut dalam ilmu komputer. 53 00:02:41,530 --> 00:02:45,040 >> Ada satu proyek lagi, satu lagi adil, satu lagi Hackathon. 54 00:02:45,040 --> 00:02:47,900 Kami mendekati akhir CS50, yang menarik - 55 00:02:47,900 --> 00:02:50,950 tetapi juga, jika Anda seperti saya, agak sedih. 56 00:02:50,950 --> 00:02:53,950 Sebelum saya melanjutkan, apakah ada yang punya pertanyaan tentang apa yang 57 00:02:53,950 --> 00:02:55,200 kita sudah dibahas sejauh ini? 58 00:02:55,200 --> 00:03:02,760 59 00:03:02,760 --> 00:03:08,730 >> OK, baik mari kita membahas beberapa pertanyaan yang Anda miliki untuk kuis dan topik 60 00:03:08,730 --> 00:03:09,960 kita mungkin menutupi. 61 00:03:09,960 --> 00:03:11,540 Jadi ini adalah daftar yang saya mengumpulkan. 62 00:03:11,540 --> 00:03:15,500 Hal ini tidak berarti lengkap, tapi mudah-mudahan akan joging memori Anda jika Anda 63 00:03:15,500 --> 00:03:20,310 punya beberapa pertanyaan tentang semua ini topik, atau jika Anda memiliki pertanyaan tentang 64 00:03:20,310 --> 00:03:23,260 latihan soal dari kuis dalam beberapa tahun terakhir. 65 00:03:23,260 --> 00:03:27,470 >> Aku punya beberapa pertanyaan yang diemail ke saya, tapi saya ingin menunda 66 00:03:27,470 --> 00:03:29,490 pada mereka untuk kedua. 67 00:03:29,490 --> 00:03:34,570 Apakah Ada yang punya pertanyaan, masalah yang mereka tidak mengerti, 68 00:03:34,570 --> 00:03:38,100 jawaban mereka tidak mengerti untuk mendapatkan kita mulai? 69 00:03:38,100 --> 00:03:39,520 Avi. 70 00:03:39,520 --> 00:03:41,585 >> AUDIENCE: Dapatkah Anda hanya pergi ke DOM dan Ajax benar-benar cepat? 71 00:03:41,585 --> 00:03:46,540 Seperti, apa yang kita perlu tahu atau seharusnya mengerti tentang mereka? 72 00:03:46,540 --> 00:03:49,750 >> JASON Hirschhorn: Aku akan menjawab umumnya pertanyaan ini, apa yang harus saya 73 00:03:49,750 --> 00:03:52,100 perlu tahu tentang topik yang diberikan x? 74 00:03:52,100 --> 00:03:55,280 Karena aku punya perasaan banyak dari Anda akan menanyakan hal itu, atau 75 00:03:55,280 --> 00:03:56,570 ingin tahu tentang itu. 76 00:03:56,570 --> 00:04:02,920 Jadi sejauh bahwa topik itu dicakup dalam perkuliahan, atau bagian, atau 77 00:04:02,920 --> 00:04:06,460 study.cs50.net, masalah diatur, Anda harus akrab dengan itu. 78 00:04:06,460 --> 00:04:10,580 >> Jadi Anda tidak perlu tahu setiap jenis tag yang tersedia dalam HTML atau 79 00:04:10,580 --> 00:04:15,950 setiap jenis atribut atau properti Anda dapat memberikan sesuatu dalam CSS. 80 00:04:15,950 --> 00:04:20,204 Tetapi jika Anda melihatnya dalam contoh kuliah, jika Anda melihatnya dalam masalah 81 00:04:20,204 --> 00:04:23,290 set, Anda mungkin harus akrab dengan itu, terutama hal-hal yang Anda lihat 82 00:04:23,290 --> 00:04:24,260 dalam kuliah. 83 00:04:24,260 --> 00:04:28,510 Jadi kita bahas dokumen model objek sedikit di 84 00:04:28,510 --> 00:04:30,530 bagian, lebih lagi dalam kuliah. 85 00:04:30,530 --> 00:04:32,990 Anda harus akrab dengan yang banyak. 86 00:04:32,990 --> 00:04:34,750 >> Dan Anda harus terbiasa dengan Ajax pada tingkat yang sama. 87 00:04:34,750 --> 00:04:38,105 Kita tidak pernah melihat sangat maju atau contoh rumit Ajax, sehingga 88 00:04:38,105 --> 00:04:40,920 Anda tidak akan diminta melakukan sesuatu yang sangat rumit. 89 00:04:40,920 --> 00:04:45,180 Tapi Anda mungkin bertanya, bagaimana cara membuat panggilan Ajax menggunakan jQuery? 90 00:04:45,180 --> 00:04:47,350 Yang merupakan sesuatu yang Anda telah melihat nomor kali sebelumnya, baik dalam 91 00:04:47,350 --> 00:04:51,370 meninjau sesi dan kuliah, dan itu hanya dua baris-ish kode. 92 00:04:51,370 --> 00:04:53,190 >> Jadi itu adalah sesuatu yang Anda harus akrab dengan. 93 00:04:53,190 --> 00:04:55,550 Tapi sekali lagi, untuk semua topik ini, jika Anda pernah melihat itu 94 00:04:55,550 --> 00:04:59,220 sebelumnya, itu adalah permainan yang adil. 95 00:04:59,220 --> 00:05:01,540 Dan kami mungkin meminta Anda - jelas, kami akan menanyakan hal-hal yang Anda 96 00:05:01,540 --> 00:05:02,340 belum pernah melihat sebelumnya. 97 00:05:02,340 --> 00:05:04,240 Coding sesuatu yang Anda belum terlihat sebelumnya. 98 00:05:04,240 --> 00:05:06,570 Yang tidak mengatakan Anda belum melihat alat untuk memecahkan 99 00:05:06,570 --> 00:05:08,120 masalah itu sebelumnya. 100 00:05:08,120 --> 00:05:09,200 Anda telah melihat alat tersebut. 101 00:05:09,200 --> 00:05:11,160 >> Sebagai contoh, pada Quiz 1, jika Anda perlu kode strlen. 102 00:05:11,160 --> 00:05:12,790 Kami belum dikodekan strlen sebelumnya. 103 00:05:12,790 --> 00:05:14,980 Tapi Anda tahu bagaimana menggunakan untuk loop, Anda tahu bagaimana menggunakan jika kondisi. 104 00:05:14,980 --> 00:05:18,570 Anda tahu bagaimana menulis variabel dalam C. Ini akan menjadi hal yang sama di sini. 105 00:05:18,570 --> 00:05:22,350 Anda tidak akan diminta untuk melakukan apa pun yang Anda belum lihat sebelumnya, namun 106 00:05:22,350 --> 00:05:25,150 Anda mungkin akan diminta untuk, seperti, menempatkan sesuatu bersama-sama dengan cara baru, atau 107 00:05:25,150 --> 00:05:27,650 memecahkan berbagai jenis masalah. 108 00:05:27,650 --> 00:05:30,830 >> Maaf, itu tidak spesifik untuk Anda pertanyaan, tapi aku tidak bisa menjawab tentang 109 00:05:30,830 --> 00:05:34,390 setiap topik tunggal apa yang Anda melakukan atau tidak perlu tahu. 110 00:05:34,390 --> 00:05:36,830 Tapi juga, maaf, hal terakhir itu. 111 00:05:36,830 --> 00:05:42,900 Kami telah menghabiskan lebih banyak waktu untuk pada daftar tautan daripada yang kita miliki di Ajax. 112 00:05:42,900 --> 00:05:46,160 Anda tidak menggunakan Ajax dalam satu set masalah. 113 00:05:46,160 --> 00:05:48,510 Salah satu fitur utama yang Masalahnya mengatur itu daftar link. 114 00:05:48,510 --> 00:05:50,370 Dan kami menghabiskan banyak waktu di kuliah dan bagian menggunakannya. 115 00:05:50,370 --> 00:05:57,080 >> Jadi, kemungkinan besar daftar link akan muncul lebih sering pada kuis dari Ajax akan. 116 00:05:57,080 --> 00:06:00,390 Atau pertanyaan-pertanyaan yang berkaitan dengan link Daftar akan bernilai lebih banyak poin. 117 00:06:00,390 --> 00:06:03,520 Jadi, Anda pasti bisa fokus dan sempit dalam pada hal-hal yang lebih 118 00:06:03,520 --> 00:06:06,720 kemungkinan untuk datang karena kita memiliki menghabiskan lebih banyak waktu pada mereka. 119 00:06:06,720 --> 00:06:08,700 >> OK pertanyaan lain? 120 00:06:08,700 --> 00:06:09,890 Ya. 121 00:06:09,890 --> 00:06:13,660 >> AUDIENCE: Bisakah kita pergi atas penggunaan fungsi anonim di JavaScript? 122 00:06:13,660 --> 00:06:17,140 Aku yang sedikit bingung tentang hal itu. 123 00:06:17,140 --> 00:06:20,180 >> JASON Hirschhorn: Jadi dalam JavaScript - 124 00:06:20,180 --> 00:06:24,400 Saya mencoba untuk berpikir bagaimana saya bisa menulis ini pada - 125 00:06:24,400 --> 00:06:27,590 jadi mari kita benar-benar membuka kode ini. 126 00:06:27,590 --> 00:06:31,830 127 00:06:31,830 --> 00:06:36,030 Jadi ini adalah kode yang kami lakukan minggu lalu. 128 00:06:36,030 --> 00:06:41,400 Dan Anda pernah melihat ini sebelumnya jika Anda berada di sini di bagian pekan lalu. 129 00:06:41,400 --> 00:06:43,180 Atau Anda pernah melihat sesuatu mirip dengan ini sebelumnya. 130 00:06:43,180 --> 00:06:44,800 >> Tapi Anda bisa melihat pada baris pertama ini. 131 00:06:44,800 --> 00:06:46,950 Ini adalah bagaimana Anda mulai - 132 00:06:46,950 --> 00:06:48,010 semua orang melihat ini sebelumnya. 133 00:06:48,010 --> 00:06:51,930 Jika Anda ingin menaruh beberapa kode JavaScript, Anda memasukkannya ke dalam ini, dengan asumsi 134 00:06:51,930 --> 00:06:53,520 Anda menggunakan JQuery. 135 00:06:53,520 --> 00:06:56,940 Ini mengatakan, tidak melakukan apa-apa sampai dokumen dimuat. 136 00:06:56,940 --> 00:06:59,940 >> Dan kemudian, Curt, Anda lihat di sini kita melakukan sesuatu seperti ini - 137 00:06:59,940 --> 00:07:02,560 fungsi paren terbuka, tertutup paren. 138 00:07:02,560 --> 00:07:05,250 Jadi kita tidak memberikan ini fungsi nama. 139 00:07:05,250 --> 00:07:09,160 Kami tidak akan mendefinisikan fungsi ini seharusnya dijalankan dan kemudian 140 00:07:09,160 --> 00:07:10,830 menyebutnya beberapa kali. 141 00:07:10,830 --> 00:07:15,140 Kami hanya mengatakan dokumen ini sudah mengambil fungsi. 142 00:07:15,140 --> 00:07:16,690 Beberapa hal yang harus dilakukan. 143 00:07:16,690 --> 00:07:20,670 >> Dan kita tidak ingin menghabiskan waktu memberikan nama atau menyimpannya untuk 144 00:07:20,670 --> 00:07:21,650 lamanya. 145 00:07:21,650 --> 00:07:24,150 Kami hanya ingin menjalankan beberapa hal. 146 00:07:24,150 --> 00:07:27,500 Jadi fungsi semacam anonim dari melayani tujuan itu. 147 00:07:27,500 --> 00:07:30,280 Bila Anda tidak akan menggunakan sesuatu berulang-ulang, sehingga Anda tidak perlu 148 00:07:30,280 --> 00:07:32,420 untuk memberikan nama - Anda hanya ingin menggunakannya sekali - 149 00:07:32,420 --> 00:07:36,720 Anda hanya akan mengatakan fungsi, untuk Misalnya, dalam kasus ini, dan Anda hanya 150 00:07:36,720 --> 00:07:38,280 mendefinisikan sesuatu yang Anda bisa memberi nama. 151 00:07:38,280 --> 00:07:40,920 >> Seperti, kita bisa menarik fungsi ini keluar dan memberikan nama dan kemudian memanggil 152 00:07:40,920 --> 00:07:41,760 berfungsi di sini. 153 00:07:41,760 --> 00:07:44,270 Tapi kita tidak perlu karena kita tidak ingin membuang-buang waktu memberikan nama atau 154 00:07:44,270 --> 00:07:46,240 membuang sesuatu di ruang nama kami. 155 00:07:46,240 --> 00:07:47,530 Dan Anda akan melihat bahwa banyak. 156 00:07:47,530 --> 00:07:52,810 Sebagai contoh, kita melihat bahwa banyak dalam hal ini kode, tapi Anda pernah melihat ini sebelumnya ketika 157 00:07:52,810 --> 00:07:54,010 Anda mengklik sesuatu - 158 00:07:54,010 --> 00:07:55,980 menjalankan jenis kode. 159 00:07:55,980 --> 00:07:59,850 >> Kita bisa menentukan kode yang kita inginkan untuk menjalankan ketika kita klik, dalam hal ini, 160 00:07:59,850 --> 00:08:03,450 ID ini, sebagai fungsi yang terpisah dan kemudian menjalankan fungsi tersebut. 161 00:08:03,450 --> 00:08:07,940 Tapi dalam kasus ini, kita hanya melewatkan langkah dan bergerak ke sini dan 162 00:08:07,940 --> 00:08:10,340 hanya untuk mendefinisikan segala sesuatu yang kita inginkan terjadi dan 163 00:08:10,340 --> 00:08:12,450 tidak memberikan nama. 164 00:08:12,450 --> 00:08:15,550 Itu masih mungkin tidak memiliki menjawab pertanyaan Anda. 165 00:08:15,550 --> 00:08:15,960 >> AUDIENCE: Tidak, itu tidak. 166 00:08:15,960 --> 00:08:18,290 Maksudku, saya kira saya hanya tidak benar-benar mengerti mengapa itu akan menjadi 167 00:08:18,290 --> 00:08:20,800 berfungsi sama sekali, meskipun. 168 00:08:20,800 --> 00:08:21,590 Karena itu tidak benar-benar dipanggil. 169 00:08:21,590 --> 00:08:23,170 Ini tidak benar-benar memiliki nama. 170 00:08:23,170 --> 00:08:25,510 >> JASON Hirschhorn: Ini adalah fungsi dalam arti bahwa itu adalah serangkaian langkah, 171 00:08:25,510 --> 00:08:28,460 seperti Anda akan dimasukkan ke dalam fungsi. 172 00:08:28,460 --> 00:08:29,970 Dan itulah sebabnya kita sebut itu fungsi anonim. 173 00:08:29,970 --> 00:08:30,815 Kami tidak akan memberikan nama. 174 00:08:30,815 --> 00:08:33,159 Kami tidak akan menyia-nyiakan mencoba untuk nama itu, tapi kita bisa. 175 00:08:33,159 --> 00:08:34,890 >> Fungsi anonim, Anda selalu dapat memberi nama. 176 00:08:34,890 --> 00:08:37,620 Jadi misalnya, kode ini di sini, kita bisa menempatkan kode ini di dalam 177 00:08:37,620 --> 00:08:39,929 fungsi dan kemudian memanggil fungsi ini di sini. 178 00:08:39,929 --> 00:08:41,600 Sebaliknya, kita katakan, kita tidak akan repot-repot dengan itu. 179 00:08:41,600 --> 00:08:44,390 Kami hanya akan menulis semuanya di sini. 180 00:08:44,390 --> 00:08:49,840 >> Ini seperti kadang-kadang ketika Anda sedang menulis empat loop dalam C - kalian 181 00:08:49,840 --> 00:08:51,630 telah melihat ini sebelumnya - mungkin kau iterasi melalui forloop a 182 00:08:51,630 --> 00:08:53,090 ke i sama dengan 0. 183 00:08:53,090 --> 00:08:54,830 Saya kurang dari strlen. 184 00:08:54,830 --> 00:08:59,520 Atau Anda akan melalui beberapa array, Anda dapat menyimpan berbagai 185 00:08:59,520 --> 00:09:01,580 indeks i di beberapa variabel. 186 00:09:01,580 --> 00:09:02,830 Dan Anda menggunakan variabel tersebut. 187 00:09:02,830 --> 00:09:06,550 Jadi Anda tidak perlu menulis ulang susunan braket saya berulang-ulang. 188 00:09:06,550 --> 00:09:08,160 >> Dan itu semacam seperti variabel dummy. 189 00:09:08,160 --> 00:09:10,790 Ini tidak melayani banyak tujuan lain selain untuk membuat kode Anda sedikit lebih bersih 190 00:09:10,790 --> 00:09:12,120 dan lebih mudah dibaca. 191 00:09:12,120 --> 00:09:13,290 Fungsi yang sama di sini. 192 00:09:13,290 --> 00:09:15,665 Hanya membuat sedikit lebih mudah, tetapi fungsional tidak ada perbedaan. 193 00:09:15,665 --> 00:09:18,620 194 00:09:18,620 --> 00:09:19,330 Apakah itu menjawab pertanyaan Anda? 195 00:09:19,330 --> 00:09:19,970 >> AUDIENCE: Ya. 196 00:09:19,970 --> 00:09:20,720 >> JASON Hirschhorn: OK .. 197 00:09:20,720 --> 00:09:21,880 Mario? 198 00:09:21,880 --> 00:09:25,380 >> AUDIENCE: Kemarin mereka sering menempatkan Fungsi kurung acara. 199 00:09:25,380 --> 00:09:26,420 Apakah itu berarti sesuatu? 200 00:09:26,420 --> 00:09:30,500 Atau untuk hal-hal seperti bahwa mereka akan melakukan 201 00:09:30,500 --> 00:09:35,100 document.ready fungsi event. 202 00:09:35,100 --> 00:09:37,130 >> JASON Hirschhorn: Kami telah melihat ini, dan lagi, ini adalah hal-hal kecil yang 203 00:09:37,130 --> 00:09:39,590 mungkin saya tidak ingin menghabiskan terlalu banyak waktu. 204 00:09:39,590 --> 00:09:43,200 Karena kadang-kadang saya tidak ingin orang mendapatkan panik bahwa mereka tidak memiliki 205 00:09:43,200 --> 00:09:44,220 mendengar tentang hal-hal yang banyak. 206 00:09:44,220 --> 00:09:46,200 Tapi kita berbicara sedikit tentang event handler. 207 00:09:46,200 --> 00:09:50,360 Jadi sesuatu terjadi, dan kemudian fungsi ini dijalankan. 208 00:09:50,360 --> 00:09:53,210 Dan kemudian kami juga ingin tahu beberapa rincian tentang apa yang 209 00:09:53,210 --> 00:09:54,450 terjadi dalam acara ini. 210 00:09:54,450 --> 00:09:55,730 >> Jadi pikirkan kembali masalah set 4. 211 00:09:55,730 --> 00:09:58,390 Itu mungkin adalah cara termudah untuk memahami bahwa dalam istirahat keluar. 212 00:09:58,390 --> 00:09:59,740 Ada beberapa kode - 213 00:09:59,740 --> 00:10:01,980 seperti event yang akan terjadi, tapi acara dapat berarti banyak hal. 214 00:10:01,980 --> 00:10:06,240 Jika bisa berarti mouse diklik, maka bisa berarti anda menekan tombol panah, et 215 00:10:06,240 --> 00:10:07,190 sebagainya, dan sebagainya. 216 00:10:07,190 --> 00:10:09,800 >> Tapi itu semua disimpan dalam generik hal yang disebut peristiwa. 217 00:10:09,800 --> 00:10:12,340 Dan kemudian kita dapat mengatakan, adalah acara ini hal ini? 218 00:10:12,340 --> 00:10:13,640 Atau ini event hal ini? 219 00:10:13,640 --> 00:10:15,500 Atau, seperti apa yang terjadi dengan acara itu? 220 00:10:15,500 --> 00:10:18,660 Jadi itulah mengapa Anda membuat variabel yang ada untuk menyimpan informasi tambahan 221 00:10:18,660 --> 00:10:21,420 tentang apa yang sebenarnya terjadi bahwa Anda akan ingin 222 00:10:21,420 --> 00:10:24,840 memanfaatkan dalam fungsi. 223 00:10:24,840 --> 00:10:28,200 Tapi sekali lagi, itu mungkin salah satu hal yang kurang penting untuk menjadi super 224 00:10:28,200 --> 00:10:29,450 akrab dengan. 225 00:10:29,450 --> 00:10:31,470 226 00:10:31,470 --> 00:10:36,110 >> OK, apa pertanyaan lain memiliki orang-orang memiliki, atau batu sandungan mereka telah 227 00:10:36,110 --> 00:10:37,360 ditemui saat meninjau? 228 00:10:37,360 --> 00:10:41,260 229 00:10:41,260 --> 00:10:42,510 Kami akan kembali ke daftar itu. 230 00:10:42,510 --> 00:10:52,550 231 00:10:52,550 --> 00:10:56,080 Bagaimana selama latihan kuis, jika orang telah mengambil mereka yang sudah? 232 00:10:56,080 --> 00:10:59,110 Apa beberapa masalah yang tersandung kalian up? 233 00:10:59,110 --> 00:11:08,970 234 00:11:08,970 --> 00:11:12,720 Aku tahu pasti bahwa tahun lalu kuis benar-benar keras. 235 00:11:12,720 --> 00:11:15,670 >> AUDIENCE: Bisakah Anda menjelaskan apa serangan injeksi SQL? 236 00:11:15,670 --> 00:11:18,970 >> JASON Hirschhorn: OK, bagus. 237 00:11:18,970 --> 00:11:20,440 Jadi kita berbicara tentang hal ini sedikit. 238 00:11:20,440 --> 00:11:22,050 Ada kuliah tentang keamanan. 239 00:11:22,050 --> 00:11:25,670 Dan lagi, seperti yang saya sebutkan sebelumnya, ini samping. 240 00:11:25,670 --> 00:11:30,010 Tapi Anda akan frustrasi pada kuis ketika Anda membaca beberapa dua titik kecil 241 00:11:30,010 --> 00:11:33,040 pertanyaan, dan Anda seperti, ketika aku pernah belajar bahwa? 242 00:11:33,040 --> 00:11:35,560 >> Semua hal-hal pada mereka kuliah bahwa Anda tidak berpikir Anda perlu 243 00:11:35,560 --> 00:11:38,290 tahu, atau Anda bisa mengabaikan karena mereka tidak harus melakukan dengan 244 00:11:38,290 --> 00:11:41,860 masalah set, mereka kemungkinan akan datang lagi pada kuis. 245 00:11:41,860 --> 00:11:45,030 Jadi, keren, hal menyenangkan yang baru saja Anda pikir Daud mengatakan bagi Anda untuk 246 00:11:45,030 --> 00:11:49,070 menikmati, ia memberitahu Anda untuk Anda menikmati dan membuat Anda hanya menjadi super 247 00:11:49,070 --> 00:11:50,550 bersemangat belajar segala sesuatu ada untuk belajar 248 00:11:50,550 --> 00:11:51,670 tentang ilmu komputer. 249 00:11:51,670 --> 00:11:53,680 Hal-hal ini juga muncul di kuis. 250 00:11:53,680 --> 00:11:56,440 Jadi, bahkan hal-hal kecil yang tidak langsung berhubungan dengan masalah Anda 251 00:11:56,440 --> 00:11:59,630 ditetapkan, karena kalian sudah familiar dengan dari Kuis 0, mungkin akan muncul. 252 00:11:59,630 --> 00:12:01,530 Dan ini adalah contoh yang baik sesuatu. 253 00:12:01,530 --> 00:12:10,140 >> Jadi injeksi SQL serangan adalah ketika Anda mendapatkan beberapa informasi dari pengguna dan 254 00:12:10,140 --> 00:12:15,090 Anda ingin memasukkannya ke dalam tabel menggunakan SQL insert pernyataan, tetapi Anda 255 00:12:15,090 --> 00:12:17,680 tidak membersihkan input sebelumnya. 256 00:12:17,680 --> 00:12:21,560 Jadi, jelas kita telah melihat Pernyataan SQL. 257 00:12:21,560 --> 00:12:22,810 Aku hanya akan membuka - 258 00:12:22,810 --> 00:12:25,590 259 00:12:25,590 --> 00:12:26,840 mari kita pergi - 260 00:12:26,840 --> 00:12:31,290 261 00:12:31,290 --> 00:12:31,960 kita akan pergi ke review - 262 00:12:31,960 --> 00:12:35,180 Saya pikir, yang menutupinya? 263 00:12:35,180 --> 00:12:36,350 Saya pikir Samala lakukan. 264 00:12:36,350 --> 00:12:39,292 Jadi kita bisa mendapatkan - 265 00:12:39,292 --> 00:12:41,270 >> AUDIENCE: Di mana kau menemukan ini? 266 00:12:41,270 --> 00:12:44,990 >> JASON Hirschhorn: Jadi, jika Anda pergi ke CS50.net, kuis, dan kemudian Anda dapat 267 00:12:44,990 --> 00:12:47,170 gulir atas dan mendapatkan slide dari sesi review. 268 00:12:47,170 --> 00:12:49,860 Tapi Anda bisa melihat ini adalah contoh yang baik dari serangan injeksi SQL. 269 00:12:49,860 --> 00:12:53,690 Kami mengambil beberapa informasi dari pengguna dan mereka memberi kami sebuah string, dan kemudian kita 270 00:12:53,690 --> 00:12:55,780 ingin memasukkan string yang ke dalam database. 271 00:12:55,780 --> 00:12:59,780 Umumnya kita akan membersihkan bahwa masukan, yang berarti ada beberapa 272 00:12:59,780 --> 00:13:01,050 karakter yang berbahaya. 273 00:13:01,050 --> 00:13:04,000 >> Misalnya, dalam string SQL, kutipan ini - 274 00:13:04,000 --> 00:13:05,000 tanda kutip tunggal atau tanda kutip ganda - 275 00:13:05,000 --> 00:13:05,620 berarti sesuatu. 276 00:13:05,620 --> 00:13:08,380 Mereka berarti mengakhiri string ini di sini. 277 00:13:08,380 --> 00:13:13,090 Dan jadi jika pengguna memberikan Anda satu atau kutipan ganda, mereka bisa 278 00:13:13,090 --> 00:13:18,970 mencoba untuk perjalanan query SQL dan menyisipkan beberapa hal-hal buruk ke dalamnya. 279 00:13:18,970 --> 00:13:23,130 Dan jika mereka melakukan itu, mereka bisa mendapatkan kontrol database Anda atau melakukan 280 00:13:23,130 --> 00:13:24,760 hal-hal yang Anda tidak ingin mereka lakukan. 281 00:13:24,760 --> 00:13:28,300 >> Jadi itu sebabnya setiap kali kita mengambil SQL query, kita membersihkan masukan sebelum 282 00:13:28,300 --> 00:13:31,090 memasukkannya ke dalam database, yang berarti kita melarikan diri karakter-karakter. 283 00:13:31,090 --> 00:13:32,590 Kita akan berbicara tentang bahwa dalam satu detik. 284 00:13:32,590 --> 00:13:35,820 Tapi cerita panjang pendek, injeksi SQL serangan adalah jika Anda tidak melakukan itu - 285 00:13:35,820 --> 00:13:39,760 jika Anda tidak merawat input mereka memberi Anda sebelum meletakkan Anda 286 00:13:39,760 --> 00:13:46,830 Database, mereka bisa, seperti yang Anda lihat ke bawah di sini, menjalankan query yang, pada kenyataannya - 287 00:13:46,830 --> 00:13:52,470 mereka dimasukkan ke dalam kode mereka di sini dan baris ini pilih di sini akan pilih 288 00:13:52,470 --> 00:13:56,360 segala sesuatu dari meja tanpa apa password yang diberikan. 289 00:13:56,360 --> 00:13:58,960 Karena Anda memiliki atau 1 sama dengan 1. 290 00:13:58,960 --> 00:14:02,750 >> Jadi pada dasarnya, cerita panjang pendek, cara untuk mengambil alih database. 291 00:14:02,750 --> 00:14:07,570 Pertanyaannya, kemudian, untuk kalian, adalah dimana dalam p set 7 kau membersihkan semua 292 00:14:07,570 --> 00:14:10,010 masukan untuk query SQL Anda? 293 00:14:10,010 --> 00:14:11,230 Dimana langkah itu terjadi? 294 00:14:11,230 --> 00:14:14,150 Di mana Anda mencegah injeksi SQL Serangan terjadi di p set 7? 295 00:14:14,150 --> 00:14:20,100 296 00:14:20,100 --> 00:14:20,490 Ya. 297 00:14:20,490 --> 00:14:21,870 >> AUDIENCE: Crypt? 298 00:14:21,870 --> 00:14:23,120 >> JASON Hirschhorn: Jadi itu tidak crypt. 299 00:14:23,120 --> 00:14:52,360 300 00:14:52,360 --> 00:14:55,380 Kami tidak membuat Anda melakukan ini untuk ini masalah khusus yang ditetapkan, tapi itu terjadi 301 00:14:55,380 --> 00:14:58,190 dalam fungsi query. 302 00:14:58,190 --> 00:15:00,930 Kami benar-benar menulis untuk Anda, dan kami merawat 303 00:15:00,930 --> 00:15:03,040 sanitasi input untuk Anda. 304 00:15:03,040 --> 00:15:07,790 Tapi dalam beberapa tahun terakhir, para siswa memiliki untuk mengetik input sendiri. 305 00:15:07,790 --> 00:15:10,020 Dalam p set 7, banyak dari Anda - 306 00:15:10,020 --> 00:15:11,270 biarkan aku membuka satu file lainnya. 307 00:15:11,270 --> 00:15:18,530 308 00:15:18,530 --> 00:15:22,590 >> Jadi, Anda akan melihat di sini banyak orang, dalam masalah set 7, tidak menelepon 309 00:15:22,590 --> 00:15:25,240 fungsi ini pada string. 310 00:15:25,240 --> 00:15:27,880 Fungsi ini, htmlspecialchars, lagi - 311 00:15:27,880 --> 00:15:31,410 string ini mungkin memiliki beberapa hal bahwa dalam HTML berarti sesuatu yang lain. 312 00:15:31,410 --> 00:15:36,160 Seperti penjepit, persegi, atau sudut braket berarti sesuatu dalam HTML. 313 00:15:36,160 --> 00:15:38,980 >> Dan jadi jika Anda mencetak yang keluar ke layar atau jika Anda hanya mengambil itu dan 314 00:15:38,980 --> 00:15:42,260 mencetak yang ke HTML Anda, kekuatan yang melakukan sesuatu yang tidak Anda harapkan. 315 00:15:42,260 --> 00:15:45,180 Jadi htmlspecialchars berjalan di atas semua orang karakter khusus yang memiliki 316 00:15:45,180 --> 00:15:47,030 pertemuan dan lolos mereka. 317 00:15:47,030 --> 00:15:51,450 Jadi itu akan dicetak sebagai teks Anda ingin melihat, bukan 318 00:15:51,450 --> 00:15:53,280 mengacaukan HTML Anda. 319 00:15:53,280 --> 00:15:55,040 Kami disebut fungsi yang di header. 320 00:15:55,040 --> 00:15:57,390 Dan banyak orang lupa memanggil fungsi dalam 321 00:15:57,390 --> 00:15:58,700 kode Anda sedang menulis. 322 00:15:58,700 --> 00:16:03,970 >> Jadi, misalnya, jika nama saham memiliki sudut braket di dalamnya dan Anda lupa 323 00:16:03,970 --> 00:16:06,675 untuk memanggil fungsi ini, sudut yang bracket bisa terlempar apa 324 00:16:06,675 --> 00:16:08,250 HTML Anda tampak seperti. 325 00:16:08,250 --> 00:16:11,810 Tapi memanggil fungsi ini akan melarikan diri yang jadi itu benar-benar mencetak sebagai 326 00:16:11,810 --> 00:16:15,870 sudut braket dan tidak membuang off kode HTML Anda. 327 00:16:15,870 --> 00:16:18,760 >> Alasan yang sama kita lihat, kadang-kadang, garis miring sebelum tanda kutip ganda dalam 328 00:16:18,760 --> 00:16:22,310 baris printf karena kita tidak ingin tanda kutip ganda kebawah string. 329 00:16:22,310 --> 00:16:24,050 Kami ingin mencetaknya ke layar. 330 00:16:24,050 --> 00:16:26,920 Jadi semua ini adalah ide yang sama. 331 00:16:26,920 --> 00:16:28,260 Apakah itu menjawab pertanyaan Anda? 332 00:16:28,260 --> 00:16:31,529 333 00:16:31,529 --> 00:16:33,870 >> AUDIENCE: Jenis. 334 00:16:33,870 --> 00:16:35,300 >> JASON Hirschhorn: Apakah Anda memiliki tindak lanjut? 335 00:16:35,300 --> 00:16:43,252 >> AUDIENCE: Saya kira injeksi SQL Serangan harus dilakukan dengan itu? 336 00:16:43,252 --> 00:16:45,720 Saya tidak mengerti bagaimana keduanya terkait. 337 00:16:45,720 --> 00:16:47,610 Mengapa Anda melakukan specialchars? 338 00:16:47,610 --> 00:16:51,200 >> JASON Hirschhorn: OK, jadi SQL serangan injeksi adalah ketika Anda menyuntikkan 339 00:16:51,200 --> 00:16:59,180 beberapa string berbahaya ke seseorang Program, dan mereka hanya mengambil dan menjalankan 340 00:16:59,180 --> 00:17:01,230 query SQL dengan string Anda memberi mereka. 341 00:17:01,230 --> 00:17:04,220 Seperti yang Anda lihat di sini, bahwa bisa menjadi masalah. 342 00:17:04,220 --> 00:17:07,480 Jadi cara Anda mencegah terhadap yang Anda mengambil tali mereka yang mereka berikan 343 00:17:07,480 --> 00:17:09,220 Anda - jadi string ini di sini - 344 00:17:09,220 --> 00:17:11,240 dan Anda membersihkan itu. 345 00:17:11,240 --> 00:17:14,305 Anda melarikan diri semua hal yang berpotensi bermasalah. 346 00:17:14,305 --> 00:17:18,626 Jadi Anda tidak menafsirkannya sebagai sesuatu itu berarti sesuatu. 347 00:17:18,626 --> 00:17:23,390 >> Dan contoh bahwa dengan HTML adalah fungsi ini. 348 00:17:23,390 --> 00:17:26,060 Jadi itu ide yang sama di sini. 349 00:17:26,060 --> 00:17:27,579 Dan aku hanya menunjukkan kepada Anda lainnya contoh ketika Anda sudah 350 00:17:27,579 --> 00:17:29,030 melihat ide ini sebelumnya. 351 00:17:29,030 --> 00:17:33,913 Melarikan diri input pengguna sebelum mencetak keluar ke layar atau meletakkan 352 00:17:33,913 --> 00:17:36,782 dalam sebuah pernyataan SQL. 353 00:17:36,782 --> 00:17:40,790 >> AUDIENCE: Jadi dalam hal ini, pengguna adalah bermain-main dengan programmer. 354 00:17:40,790 --> 00:17:41,240 >> JASON Hirschhorn: Ya. 355 00:17:41,240 --> 00:17:44,800 Dengan semua ini serangan keamanan, itu selalu umumnya pengguna, atau 356 00:17:44,800 --> 00:17:47,470 seseorang, sedang mencoba untuk mess dengan Anda, programmer. 357 00:17:47,470 --> 00:17:51,038 Dan ini adalah cara Anda dapat mencegah terhadap mereka. 358 00:17:51,038 --> 00:17:54,280 >> AUDIENCE: Jadi saya punya pertanyaan tentang fungsi hash. 359 00:17:54,280 --> 00:17:59,340 Dalam Quiz 1 dari 2011, ada dua pertanyaan tentang hash satu sisi. 360 00:17:59,340 --> 00:18:02,540 Dan aku hanya ingin tahu apa artinya. 361 00:18:02,540 --> 00:18:03,660 >> JASON Hirschhorn: OK, yang kuis? 362 00:18:03,660 --> 00:18:03,770 2011? 363 00:18:03,770 --> 00:18:04,705 >> AUDIENCE: Ya. 364 00:18:04,705 --> 00:18:06,720 >> AUDIENCE: Kuis 1? 365 00:18:06,720 --> 00:18:08,620 >> AUDIENCE: [Tak terdengar]. 366 00:18:08,620 --> 00:18:09,940 Itu seperti hashing password. 367 00:18:09,940 --> 00:18:12,220 Itu tidak menempatkan hal-hal - 368 00:18:12,220 --> 00:18:13,440 >> JASON Hirschhorn: Apa halaman itu? 369 00:18:13,440 --> 00:18:15,720 >> AUDIENCE: Saya pikir itu 9 atau 10, atau keduanya. 370 00:18:15,720 --> 00:18:16,720 >> JASON Hirschhorn: Baiklah, pergi ke depan, Curt. 371 00:18:16,720 --> 00:18:17,780 Anda dapat menjawab sekaligus kita melihat. 372 00:18:17,780 --> 00:18:19,540 >> AUDIENCE: Saya pikir itu berbicara tentang hashing password. 373 00:18:19,540 --> 00:18:24,430 Seperti, ketika seseorang memasuki password, Anda mengubahnya menjadi suatu hal yang terenkripsi. 374 00:18:24,430 --> 00:18:27,395 Itulah hash password, yang berbeda dari fungsi hash yang 375 00:18:27,395 --> 00:18:30,900 menempatkan sesuatu ke dalam tabel hash. 376 00:18:30,900 --> 00:18:31,610 >> JASON Hirschhorn: Mari kita lihat. 377 00:18:31,610 --> 00:18:33,930 Biarkan aku menarik apa yang mereka berikan sebagai jawaban. 378 00:18:33,930 --> 00:18:35,440 Dan kemudian kita akan berjalan melalui itu. 379 00:18:35,440 --> 00:18:42,430 380 00:18:42,430 --> 00:18:45,400 >> Jadi Curt memberi contoh yang bagus dari hash satu arah. 381 00:18:45,400 --> 00:18:48,800 Ketika kita telah melihat ini sebelumnya, kita mengambil password dan mengubah - 382 00:18:48,800 --> 00:18:53,040 ingat, di p set 7, seseorang mungkin memiliki password yang hanya password, 383 00:18:53,040 --> 00:18:55,300 tapi kemudian itu akan dienkripsi menjadi beberapa hal yang sangat panjang. 384 00:18:55,300 --> 00:18:59,830 The hash satu arah berarti sangat mudah untuk pergi dari satu cara untuk yang lain, tetapi 385 00:18:59,830 --> 00:19:02,800 itu sangat sulit untuk pergi dari cara lain kembali. 386 00:19:02,800 --> 00:19:05,230 >> Dan Anda tahu, ketika Anda memeriksa password masyarakat dalam masalah 387 00:19:05,230 --> 00:19:08,820 set 7, Anda akan mengambil mereka - 388 00:19:08,820 --> 00:19:11,953 jadi, misalnya, mengatakan bahwa mereka ingin mengubah password mereka, Anda meminta mereka 389 00:19:11,953 --> 00:19:13,130 untuk password lama mereka. 390 00:19:13,130 --> 00:19:13,910 Anda mengambil password lama mereka. 391 00:19:13,910 --> 00:19:15,150 Anda dienkripsi itu. 392 00:19:15,150 --> 00:19:19,240 Dan kemudian membandingkan dua enkripsi daripada unencrypting asli 393 00:19:19,240 --> 00:19:20,780 satu, karena itu benar-benar sulit untuk pergi ke arah sana. 394 00:19:20,780 --> 00:19:27,070 395 00:19:27,070 --> 00:19:28,035 Ya. 396 00:19:28,035 --> 00:19:31,430 >> AUDIENCE: Bagaimana secara mendalam tidak kami pemahaman Telnet harus? 397 00:19:31,430 --> 00:19:34,870 398 00:19:34,870 --> 00:19:41,360 >> JASON Hirschhorn: Jika itu disebutkan sebentar di kuliah, hanya singkat 399 00:19:41,360 --> 00:19:43,260 pemahaman. 400 00:19:43,260 --> 00:19:45,585 Sekali lagi, kembali ke jawaban pertanyaan Avi - 401 00:19:45,585 --> 00:19:48,260 402 00:19:48,260 --> 00:19:50,430 semakin banyak hal muncul, semakin besar kemungkinan itu Anda harus super 403 00:19:50,430 --> 00:19:51,530 akrab dengan mereka. 404 00:19:51,530 --> 00:19:54,730 Jika mereka hanya datang dalam kuliah, itu hanya satu tempat. 405 00:19:54,730 --> 00:19:57,180 Tetapi jika mereka muncul dalam kuliah, bagian, dan masalah ditetapkan, maka Anda 406 00:19:57,180 --> 00:19:58,710 mungkin harus super akrab dengan mereka. 407 00:19:58,710 --> 00:20:01,320 408 00:20:01,320 --> 00:20:03,960 >> Jadi saya punya pertanyaan dari sebelumnya tentang - 409 00:20:03,960 --> 00:20:06,950 adalah adalah musim gugur 2010 - 410 00:20:06,950 --> 00:20:08,520 Quiz 1, mari kita menarik - 411 00:20:08,520 --> 00:20:17,390 412 00:20:17,390 --> 00:20:21,790 pertanyaan ini pada tumpukan dan antrian, yang kami menghabiskan sedikit adil waktu 413 00:20:21,790 --> 00:20:23,720 bicarakan dalam kuliah, bahkan meskipun kami tidak benar-benar 414 00:20:23,720 --> 00:20:26,020 pernah memukulnya di bagian. 415 00:20:26,020 --> 00:20:33,190 Jadi pertanyaan ini memberikan Anda seri perintah dan meminta Anda apa yang 416 00:20:33,190 --> 00:20:35,560 akan dicetak dalam kasus ini. 417 00:20:35,560 --> 00:20:40,180 Jadi ini adalah pertanyaan yang benar-benar masuk akal yang dapat diminta dari Anda 418 00:20:40,180 --> 00:20:43,090 guys, dan kemudian kalian harus bisa menjawabnya. 419 00:20:43,090 --> 00:20:50,020 >> Jadi kenapa tidak Anda melihat selama 30 detik, dan kemudian jika ada yang ingin 420 00:20:50,020 --> 00:20:52,140 mengusulkan jawaban kepada saya, dan maka kita akan berjalan melalui itu. 421 00:20:52,140 --> 00:21:22,590 422 00:21:22,590 --> 00:21:24,235 Baiklah, yang memiliki jawaban untuk pertanyaan 27? 423 00:21:24,235 --> 00:21:31,740 424 00:21:31,740 --> 00:21:33,860 Ya. 425 00:21:33,860 --> 00:21:40,250 >> AUDIENCE: Apakah 1, 2, 3, 3? 426 00:21:40,250 --> 00:21:40,780 >> JASON Hirschhorn: Itu benar. 427 00:21:40,780 --> 00:21:42,570 27 adalah 1, 2, 3, 3. 428 00:21:42,570 --> 00:21:44,510 Jadi mari kita lihat bagaimana kita punya itu. 429 00:21:44,510 --> 00:21:48,930 >> Pertama, kita katakan, jika s adalah antrian, apa yang akan dicetak? 430 00:21:48,930 --> 00:21:53,360 Jadi q adalah pertama, keluar pertama. 431 00:21:53,360 --> 00:21:54,680 Kita telah melihat itu sebelumnya. 432 00:21:54,680 --> 00:21:56,820 Kami melihat gambar dari orang-orang menunggu di Apple 433 00:21:56,820 --> 00:21:58,400 Menyimpan untuk membeli beberapa produk. 434 00:21:58,400 --> 00:22:00,900 Orang-orang pertama di yang orang pertama keluar. 435 00:22:00,900 --> 00:22:02,940 Hal pertama dalam antrian adalah hal pertama keluar. 436 00:22:02,940 --> 00:22:08,320 >> Jadi jika kita mendorong sesuatu ke dalam antrian, Anda menekan 1, maka kita pop 1. 437 00:22:08,320 --> 00:22:09,630 Pop hanya berarti mengambil. 438 00:22:09,630 --> 00:22:11,080 Dalam hal ini, hanya mengambil sesuatu. 439 00:22:11,080 --> 00:22:12,910 Kami mengambil yang pertama hal, itu adalah 1. 440 00:22:12,910 --> 00:22:15,200 Jadi kita akan meletakkan segala sesuatu yang kita mencetak turun di sini. 441 00:22:15,200 --> 00:22:18,110 Ini tidak lagi dalam antrian kami. 442 00:22:18,110 --> 00:22:23,500 >> Kemudian kita dorong pada 2 dan 3, dan kita pop dari hal pertama. 443 00:22:23,500 --> 00:22:25,030 Sekali lagi, karena antrian. 444 00:22:25,030 --> 00:22:33,320 Jadi kita mendapatkan 2, maka kita pasang di lain 3 dan memanggil pop lagi. 445 00:22:33,320 --> 00:22:34,980 3 kami pertama. 446 00:22:34,980 --> 00:22:40,940 >> Dan kemudian kami memiliki sejumlah besar hal-hal lain dan panggilan pop. 447 00:22:40,940 --> 00:22:43,740 Tapi sekali lagi, karena ini adalah antrian, pertama, keluar pertama. 448 00:22:43,740 --> 00:22:45,980 Kami mengambil hal pertama yang pernah menaruh masuk 449 00:22:45,980 --> 00:22:47,100 Itu 3 kami. 450 00:22:47,100 --> 00:22:50,060 Dan, dalam hal ini, kita tidak khawatir tentang semua hal-hal lain. 451 00:22:50,060 --> 00:22:51,310 Jadi itu jika ini adalah antrian. 452 00:22:51,310 --> 00:22:58,917 453 00:22:58,917 --> 00:23:00,167 Setiap pertanyaan tentang antrian? 454 00:23:00,167 --> 00:23:03,290 455 00:23:03,290 --> 00:23:04,040 >> Sebuah tumpukan yang berbeda. 456 00:23:04,040 --> 00:23:07,782 Apa singkatan yang kita miliki untuk memahami stack? 457 00:23:07,782 --> 00:23:08,750 >> AUDIENCE: Terakhir, keluar pertama. 458 00:23:08,750 --> 00:23:10,130 >> JASON Hirschhorn: LIFO, saya pikir. 459 00:23:10,130 --> 00:23:11,830 Terakhir, keluar pertama. 460 00:23:11,830 --> 00:23:15,630 Jadi kita melihat contoh stack dari nampan di ruang makan. 461 00:23:15,630 --> 00:23:17,590 Apapun tray di atas digendong. 462 00:23:17,590 --> 00:23:19,550 Dan kemudian jika nampan baru datang dalam, mereka bisa diletakkan di atas. 463 00:23:19,550 --> 00:23:21,070 Dan kemudian apa yang ada di top digendong. 464 00:23:21,070 --> 00:23:24,010 Jadi mereka nampan di bawah kekuatan tinggal di sana untuk sementara. 465 00:23:24,010 --> 00:23:28,480 >> Dalam hal ini, sekali lagi, kita akan menarik ini. 466 00:23:28,480 --> 00:23:31,770 Kami mendorong pada satu, jadi satu adalah di baris pertama. 467 00:23:31,770 --> 00:23:32,790 Dan kami pop sesuatu dari. 468 00:23:32,790 --> 00:23:37,280 Dan hanya ada satu hal yang ada di sana, jadi kami bergerak 1 di sini. 469 00:23:37,280 --> 00:23:41,940 Kemudian kami memakai 2 dan 3 dan kita pop sesuatu dari. 470 00:23:41,940 --> 00:23:43,650 >> Tapi sekali lagi, karena ini adalah antrian - 471 00:23:43,650 --> 00:23:45,010 atau ini adalah stack, agak - 472 00:23:45,010 --> 00:23:47,480 kita mengambil apa pun yang ada di terakhir. 473 00:23:47,480 --> 00:23:49,300 Apapun yang di terakhir keluar pertama. 474 00:23:49,300 --> 00:23:50,890 Dan 3 adalah di terakhir. 475 00:23:50,890 --> 00:23:56,110 Jadi kita menempatkan 3 di sana, kemudian kami memakai 3 lain dan kami 476 00:23:56,110 --> 00:23:57,360 pop sesuatu lagi. 477 00:23:57,360 --> 00:23:59,990 478 00:23:59,990 --> 00:24:05,710 Akhirnya, kita pasang di 4, 5, 6, dan 7, dan di sini kita pop. 479 00:24:05,710 --> 00:24:09,060 Dan karena itu setumpuk, kita mengambil apa pun yang dimasukkan ke dalam lalu dan menulis 480 00:24:09,060 --> 00:24:10,240 yang turun di sini. 481 00:24:10,240 --> 00:24:14,256 Jadi kita berakhir dengan 1, 3, 3, 7. 482 00:24:14,256 --> 00:24:17,380 483 00:24:17,380 --> 00:24:21,380 Apakah ada yang memiliki pertanyaan tentang tumpukan atau antrian, atau contoh ini? 484 00:24:21,380 --> 00:24:27,540 485 00:24:27,540 --> 00:24:29,030 >> OK. 486 00:24:29,030 --> 00:24:30,440 Mari kita kembali ke daftar topik. 487 00:24:30,440 --> 00:24:32,510 Bukan seperti itu, cara ini. 488 00:24:32,510 --> 00:24:34,280 Apa pertanyaan lain yang orang miliki? 489 00:24:34,280 --> 00:24:37,550 490 00:24:37,550 --> 00:24:39,480 >> AUDIENCE: Saya tidak tahu betapa pentingnya ini, tapi aku bingung oleh 491 00:24:39,480 --> 00:24:43,550 perbedaan antara berbagai jenis bahasa seperti markup, disusun, 492 00:24:43,550 --> 00:24:45,980 diinterpretasikan. 493 00:24:45,980 --> 00:24:46,750 >> JASON Hirschhorn: Itu pertanyaan yang bagus. 494 00:24:46,750 --> 00:24:50,500 Saya pikir itu agak penting, jadi mari kita pergi dengan cepat. 495 00:24:50,500 --> 00:24:56,850 Bahasa besar yang telah kita lihat sejauh ini C, PHP, dan JavaScript, dalam hal 496 00:24:56,850 --> 00:24:58,330 dari bahasa pemrograman. 497 00:24:58,330 --> 00:25:01,060 HTML, seperti yang Anda sebutkan, tidak bahasa pemrograman. 498 00:25:01,060 --> 00:25:02,260 Ini adalah bahasa markup. 499 00:25:02,260 --> 00:25:05,700 Dan kemudian kita memiliki CSS, yang juga bukan bahasa pemrograman. 500 00:25:05,700 --> 00:25:10,330 >> Kami juga telah melihat SQL, yang tidak bahasa pemrograman baik. 501 00:25:10,330 --> 00:25:15,695 Jadi SQL memungkinkan Anda untuk menulis query untuk database. 502 00:25:15,695 --> 00:25:18,370 503 00:25:18,370 --> 00:25:20,140 HTML adalah bahasa markup. 504 00:25:20,140 --> 00:25:22,570 Ini mendefinisikan bagaimana hal-hal yang terstruktur. 505 00:25:22,570 --> 00:25:26,250 Dan CSS memungkinkan Anda untuk gaya hal. 506 00:25:26,250 --> 00:25:28,520 Itu mungkin sejauh untuk apa yang Anda perlu tahu tentang ketiga. 507 00:25:28,520 --> 00:25:32,920 Tapi lebih menarik untuk angka keluar perbedaan antara C, PHP, 508 00:25:32,920 --> 00:25:34,320 dan JavaScript. 509 00:25:34,320 --> 00:25:37,900 >> Jadi salah satu perbedaan terbesar, seperti yang Anda sebutkan, adalah bagaimana mereka 510 00:25:37,900 --> 00:25:40,550 dikompilasi, atau apa pun setara adalah. 511 00:25:40,550 --> 00:25:42,580 Jadi C dikompilasi. 512 00:25:42,580 --> 00:25:43,950 Kami akan selalu menjalankan kompiler. 513 00:25:43,950 --> 00:25:51,100 Dan kemudian di mana kesalahan Anda ketika Anda menjalankan kompiler C? 514 00:25:51,100 --> 00:25:55,740 Di mana itu menunjukkan Dalam kode kesalahan Anda? 515 00:25:55,740 --> 00:25:57,860 Bagaimana Anda tahu ada sebuah kesalahan dalam kode Anda di C? 516 00:25:57,860 --> 00:25:58,770 >> AUDIENCE: Ini menunjukkan bahwa Anda di terminal. 517 00:25:58,770 --> 00:26:00,410 >> JASON Hirschhorn: Ini menunjukkan bahwa Anda dalam terminal sebagai Anda kompilasi. 518 00:26:00,410 --> 00:26:02,620 Dan jika ada kesalahan, itu tidak akan benar-benar compile. 519 00:26:02,620 --> 00:26:04,830 Jadi, Anda tahu bahwa ada kesalahan yang tepat pergi, depan waktu, sebelum Anda 520 00:26:04,830 --> 00:26:06,050 bahkan menjalankan kode Anda. 521 00:26:06,050 --> 00:26:10,010 >> Tentu saja, Anda mungkin menjalankan kode Anda dan mendapatkan kesalahan segmentasi, tapi itu 522 00:26:10,010 --> 00:26:12,350 mungkin karena yang Anda lakukan beberapa logika konyol hal. 523 00:26:12,350 --> 00:26:15,770 Tapi kode Anda dengan teknis semua benar dan bisa berlari. 524 00:26:15,770 --> 00:26:18,210 Jadi mendapat kode C disusun sebelumnya. 525 00:26:18,210 --> 00:26:19,760 Bagaimana dengan kode PHP? 526 00:26:19,760 --> 00:26:21,430 Dimana kesalahan dalam kode PHP Anda? 527 00:26:21,430 --> 00:26:23,170 Bagaimana Anda tahu bahwa Anda memiliki kesalahan dalam kode PHP Anda? 528 00:26:23,170 --> 00:26:26,038 529 00:26:26,038 --> 00:26:28,430 >> AUDIENCE: Jalankan waktu? 530 00:26:28,430 --> 00:26:31,230 >> JASON Hirschhorn: Ya, ketika Anda akan menjalankannya, Anda akan menjalankan 531 00:26:31,230 --> 00:26:32,180 Kode PHP di belakang. 532 00:26:32,180 --> 00:26:33,300 Dan kemudian Anda akan menampilkan layar. 533 00:26:33,300 --> 00:26:35,260 Anda mungkin melihat beberapa hal di atas, tapi kemudian Anda akan melihat, seperti, beberapa 534 00:26:35,260 --> 00:26:36,710 oranye, meja jelek. 535 00:26:36,710 --> 00:26:41,420 Dan itu akan memberi Anda nomor baris dan katakanlah, bla, bla, bla, hal ini 536 00:26:41,420 --> 00:26:42,400 tidak bekerja. 537 00:26:42,400 --> 00:26:48,730 >> Jadi PHP ditafsirkan baris demi baris dan dieksekusi di server. 538 00:26:48,730 --> 00:26:52,380 Dan kemudian hasilnya adalah dikirim ke Anda. 539 00:26:52,380 --> 00:26:53,340 Besar. 540 00:26:53,340 --> 00:26:56,410 Dieksekusi di garis server dengan baris dan kemudian dikirim ke Anda. 541 00:26:56,410 --> 00:26:59,010 Dan jika ada kesalahan, itu akan mengirim Anda kesalahan, tetapi Anda mungkin memiliki 542 00:26:59,010 --> 00:27:00,400 mendapatkan beberapa hal dari waktu ke depan. 543 00:27:00,400 --> 00:27:02,730 Jadi sebagian mungkin telah bekerja, tapi kemudian, beberapa hal mungkin tidak memiliki 544 00:27:02,730 --> 00:27:03,890 tidak bekerja. 545 00:27:03,890 --> 00:27:04,600 >> Bagaimana dengan JavaScript? 546 00:27:04,600 --> 00:27:06,065 Di mana Anda melihat kesalahan JavaScript? 547 00:27:06,065 --> 00:27:10,860 548 00:27:10,860 --> 00:27:12,870 Dalam p set 8, ketika Anda mendapat kesalahan, bagaimana kau tahu? 549 00:27:12,870 --> 00:27:13,710 Di mana ia akan muncul? 550 00:27:13,710 --> 00:27:15,900 >> AUDIENCE: Pada konsol, di bagian bawah. 551 00:27:15,900 --> 00:27:17,650 >> JASON Hirschhorn: Dalam konsol, di bagian bawah. 552 00:27:17,650 --> 00:27:20,160 Ini juga akan memberi Anda nomor baris, dan itu akan 553 00:27:20,160 --> 00:27:21,330 muncul di bagian bawah. 554 00:27:21,330 --> 00:27:24,320 Dan JavaScript tidak dieksekusi pada server. 555 00:27:24,320 --> 00:27:27,800 JavaScript dikirim ke komputer Anda, dan kemudian ketika sudah waktunya untuk menjalankan 556 00:27:27,800 --> 00:27:31,670 JavaScript, JavaScript adalah menjalankan baris demi baris pada 557 00:27:31,670 --> 00:27:33,410 client, di sisi Anda. 558 00:27:33,410 --> 00:27:35,570 Bukan server, sisi client. 559 00:27:35,570 --> 00:27:37,690 >> Dan juga, itu menjalankan baris demi baris. 560 00:27:37,690 --> 00:27:40,630 Dan kemudian ketika Anda akan mendapatkan error, itu akan muncul di bagian bawah. 561 00:27:40,630 --> 00:27:44,580 Demikian pula untuk PHP, beberapa di antaranya mungkin mengeksekusi, dan kemudian Anda mungkin mendapatkan 562 00:27:44,580 --> 00:27:46,310 kesalahan di kemudian hari. 563 00:27:46,310 --> 00:27:49,910 >> Juga, tidak seperti PHP sedikit, jika Anda punya kesalahan JavaScript - 564 00:27:49,910 --> 00:27:52,780 mengatakan Anda tidak melakukan yang benar kode untuk kotak peringatan - 565 00:27:52,780 --> 00:27:55,800 Anda bisa tetap menjalankan program Anda. 566 00:27:55,800 --> 00:27:58,180 Kotak peringatan tidak akan bekerja, tetapi Program Anda akan baik-baik saja. 567 00:27:58,180 --> 00:28:00,490 Mungkin saja fungsi yang akan gagal. 568 00:28:00,490 --> 00:28:02,610 >> Jadi ada beberapa yang terbesar perbedaan dalam hal bagaimana 569 00:28:02,610 --> 00:28:09,230 bahasa, atau bagaimana kode pemrograman Anda menulis benar-benar dievaluasi. 570 00:28:09,230 --> 00:28:11,970 Ada juga perbedaan lain dalam hal - perbedaan terbesar 571 00:28:11,970 --> 00:28:15,590 yang kami lihat dalam hal variabel dalam bahasa yang berbeda. 572 00:28:15,590 --> 00:28:19,660 Jadi siapa pun bisa memberi saya perbedaan antara variabel 573 00:28:19,660 --> 00:28:20,910 dalam tiga bahasa? 574 00:28:20,910 --> 00:28:24,802 575 00:28:24,802 --> 00:28:25,770 Ya. 576 00:28:25,770 --> 00:28:27,130 >> AUDIENCE: Dalam C, mereka ketat diketik. 577 00:28:27,130 --> 00:28:28,550 Dalam dua lainnya, mereka longgar diketik. 578 00:28:28,550 --> 00:28:30,040 >> JASON Hirschhorn: Dan apa artinya? 579 00:28:30,040 --> 00:28:31,775 >> AUDIENCE: Bahwa di C, Anda harus menyatakan jenis variabel ketika 580 00:28:31,775 --> 00:28:36,140 Anda mendeklarasikan variabel, seperti interbool atau arang. 581 00:28:36,140 --> 00:28:36,990 >> JASON Hirschhorn: Excellent. 582 00:28:36,990 --> 00:28:39,780 Dalam C, kita selalu harus meletakkan jenis variabel. 583 00:28:39,780 --> 00:28:41,360 Dan kita tidak bisa benar-benar mencampur jenis. 584 00:28:41,360 --> 00:28:45,750 Anda tidak bisa melakukan integer ditambah string. 585 00:28:45,750 --> 00:28:48,760 Tapi seperti yang kita lihat dalam ini lain bahasa, Anda benar-benar dapat mencampur jenis, 586 00:28:48,760 --> 00:28:51,230 dan Anda tidak pernah benar-benar harus memberikan sesuatu tipe, pernah. 587 00:28:51,230 --> 00:28:53,905 >> Jadi bagaimana kita tahu hal-hal yang variabel di PHP dan JavaScript? 588 00:28:53,905 --> 00:28:57,120 589 00:28:57,120 --> 00:28:58,685 >> AUDIENCE: Dalam PHP, mereka mulai dengan tanda dolar. 590 00:28:58,685 --> 00:29:00,810 Dalam JavaScript, ketika Anda menyatakan mereka, Anda harus memiliki sebuah bar. 591 00:29:00,810 --> 00:29:01,760 >> JASON Hirschhorn: Benar. 592 00:29:01,760 --> 00:29:03,535 Jadi di PHP, mereka mulai dengan tanda dolar. 593 00:29:03,535 --> 00:29:06,300 Dalam JavaScript, mereka harus memiliki bar, meskipun kadang-kadang mereka tidak benar-benar 594 00:29:06,300 --> 00:29:07,520 harus memiliki bar. 595 00:29:07,520 --> 00:29:09,240 Tapi itu benar. 596 00:29:09,240 --> 00:29:13,300 >> Jadi itulah perbedaan besar antara variabel. 597 00:29:13,300 --> 00:29:16,140 Saya pikir mereka mungkin, dari atas kepalaku, kedua terbesar 598 00:29:16,140 --> 00:29:19,250 perbedaan antara tiga bahasa. 599 00:29:19,250 --> 00:29:20,594 Tapi, yeah. 600 00:29:20,594 --> 00:29:24,720 >> AUDIENCE: Dan ruang lingkup variabel C terbatas pada kurung kurawal, 601 00:29:24,720 --> 00:29:27,760 di mana yang lain, itu hanya seperti, mati jika dalam fungsi saja, 602 00:29:27,760 --> 00:29:29,650 tetapi jika tidak, ini kan - 603 00:29:29,650 --> 00:29:30,240 >> JASON Hirschhorn: Benar. 604 00:29:30,240 --> 00:29:36,780 Jadi lingkup sedikit berbeda dalam C. Sebagai Anda ingat, kurung kurawal mendefinisikan 605 00:29:36,780 --> 00:29:37,710 ruang lingkup variabel. 606 00:29:37,710 --> 00:29:41,680 Jadi jika didefinisikan dalam sebuah jika kondisi, yang ada di dalam untuk loop, 607 00:29:41,680 --> 00:29:44,290 variabel hanya ada di sana. 608 00:29:44,290 --> 00:29:47,760 >> Dalam JavaScript, jika variabel didefinisikan dalam sebuah jika kondisi - 609 00:29:47,760 --> 00:29:50,750 dalam untuk loop - itu akan ada untuk fungsi itu, tapi tidak akan ada 610 00:29:50,750 --> 00:29:52,330 di luar fungsi tersebut. 611 00:29:52,330 --> 00:29:59,250 Jadi lingkup adalah sedikit lebih fleksibel dalam JavaScript dan PHP. 612 00:29:59,250 --> 00:30:00,500 Itu menjawab pertanyaan? 613 00:30:00,500 --> 00:30:03,110 614 00:30:03,110 --> 00:30:04,635 OK, pertanyaan lain? 615 00:30:04,635 --> 00:30:07,260 616 00:30:07,260 --> 00:30:08,865 Kita bisa melakukan empat menit lagi pertanyaan, kemudian 617 00:30:08,865 --> 00:30:10,740 kita akan melompat ke coding. 618 00:30:10,740 --> 00:30:12,645 >> AUDIENCE: Bisakah kita pergi ke Ajax dan berbicara tentang apa itu? 619 00:30:12,645 --> 00:30:15,670 620 00:30:15,670 --> 00:30:17,800 >> JASON Hirschhorn: Bicaralah dengan Avi setelah. 621 00:30:17,800 --> 00:30:19,170 Dia menanyakan pertanyaan itu sebelumnya. 622 00:30:19,170 --> 00:30:19,630 >> AUDIENCE: Saya buruk. 623 00:30:19,630 --> 00:30:20,880 >> JASON Hirschhorn: Jangan khawatir. 624 00:30:20,880 --> 00:30:22,740 625 00:30:22,740 --> 00:30:24,290 >> AUDIENCE: Apa sebenarnya JSON? 626 00:30:24,290 --> 00:30:28,360 627 00:30:28,360 --> 00:30:28,900 >> JASON Hirschhorn: Apa itu JSON? 628 00:30:28,900 --> 00:30:29,930 Apa pertanyaanmu? 629 00:30:29,930 --> 00:30:31,350 >> AUDIENCE: Hanya benar-benar cepat, perbedaan antara 630 00:30:31,350 --> 00:30:32,870 cetak dan gema di PHP. 631 00:30:32,870 --> 00:30:36,200 632 00:30:36,200 --> 00:30:38,490 >> JASON Hirschhorn: Mengapa kau tidak google perbedaan antara cetak dan gema? 633 00:30:38,490 --> 00:30:40,670 Sedikit perbedaan. 634 00:30:40,670 --> 00:30:42,020 Tidak begitu besar dari kesepakatan. 635 00:30:42,020 --> 00:30:44,960 Tapi Anda pasti harus google it, dan yang akan memberi Anda jawaban yang baik. 636 00:30:44,960 --> 00:30:46,910 >> JSON, mungkin lebih besar dari kesepakatan. 637 00:30:46,910 --> 00:30:49,300 Singkatan JavaScript Object Notation. 638 00:30:49,300 --> 00:30:51,865 Dan ketika telah kita lihat JSON yang digunakan? 639 00:30:51,865 --> 00:30:55,110 640 00:30:55,110 --> 00:30:55,900 Bila Anda telah melihat - 641 00:30:55,900 --> 00:30:57,400 kenapa kau bahkan tahu kata JSON? 642 00:30:57,400 --> 00:30:59,140 Bila Anda telah melihatnya? 643 00:30:59,140 --> 00:31:02,200 >> AUDIENCE: Ketika kami sedang bersiap harga saham untuk keuangan. 644 00:31:02,200 --> 00:31:02,690 >> JASON Hirschhorn: Jadi Anda melihat ketika Anda mendapatkan 645 00:31:02,690 --> 00:31:04,830 harga saham untuk keuangan. 646 00:31:04,830 --> 00:31:07,340 Dan kenapa kau melihatnya? 647 00:31:07,340 --> 00:31:09,000 >> AUDIENCE: Ketika kami mengambil semua informasi yang 648 00:31:09,000 --> 00:31:10,400 datang dalam format tersebut. 649 00:31:10,400 --> 00:31:11,700 >> JASON Hirschhorn: Jadi, Anda akan mendapatkan - 650 00:31:11,700 --> 00:31:12,540 ya. 651 00:31:12,540 --> 00:31:13,020 Silakan. 652 00:31:13,020 --> 00:31:15,210 >> AUDIENCE: [Tak terdengar] Informasi dari sebuah objek? 653 00:31:15,210 --> 00:31:17,170 >> JASON Hirschhorn: Kedua orang mengumpulkan adalah jawabannya 654 00:31:17,170 --> 00:31:18,100 kita cari. 655 00:31:18,100 --> 00:31:21,240 Anda ingin informasi dari webpage lain ini. 656 00:31:21,240 --> 00:31:23,790 Dan Anda akan berharap bahwa ketika Anda mendapatkan informasi itu, akan 657 00:31:23,790 --> 00:31:26,720 disajikan kepada Anda dalam beberapa jenis format standar. 658 00:31:26,720 --> 00:31:29,530 >> Semua orang mungkin akrab dengan nilai-nilai dipisahkan koma. 659 00:31:29,530 --> 00:31:32,970 Anda dapat mengekspor spreadsheet Excel atau jenis spreadsheet sebagai daftar 660 00:31:32,970 --> 00:31:34,540 comma-separated. 661 00:31:34,540 --> 00:31:37,370 Dan koma membagi semua bidang yang berbeda. 662 00:31:37,370 --> 00:31:38,780 JavaScript Object Notation - 663 00:31:38,780 --> 00:31:39,440 JSON - 664 00:31:39,440 --> 00:31:43,540 adalah jenis lain dari standar tata letak hal. 665 00:31:43,540 --> 00:31:49,010 Dan itu sering bagaimana kita mengambil informasi dari permintaan Ajax kami. 666 00:31:49,010 --> 00:31:51,770 >> Jadi dalam hal ini, kami mendapatkannya dari situs Yahoo. 667 00:31:51,770 --> 00:31:53,600 Mereka kembali hal yang kita dalam sebuah objek JSON. 668 00:31:53,600 --> 00:31:56,790 Dan kemudian kita tahu, karena itu standar, apa itu 669 00:31:56,790 --> 00:31:57,250 akan terlihat seperti. 670 00:31:57,250 --> 00:32:00,760 Jadi kita bisa iterate melalui array yang dikembalikan kepada kami, array 671 00:32:00,760 --> 00:32:03,180 benda-benda yang dikembalikan kepada kami. 672 00:32:03,180 --> 00:32:07,770 >> Kita mungkin perlu tahu kunci, tetapi mereka umumnya memberikan 673 00:32:07,770 --> 00:32:11,370 dokumentasi di website ketika Anda mengambil beberapa JSON 674 00:32:11,370 --> 00:32:12,170 notasi untuk mereka. 675 00:32:12,170 --> 00:32:16,940 Demikian juga, Anda dapat JSON mengkodekan suatu objek. 676 00:32:16,940 --> 00:32:19,900 Jadi ada fungsi JSON menggarisbawahi encode. 677 00:32:19,900 --> 00:32:22,970 Dan sehingga Anda dapat mengambil sebuah benda yang Anda buat, JSON encode, dan 678 00:32:22,970 --> 00:32:26,390 menyebarkannya ke sesuatu lain, jika Anda ingin. 679 00:32:26,390 --> 00:32:30,770 Dan JSON decode juga ada untuk tujuan yang sama, atau untuk 680 00:32:30,770 --> 00:32:31,780 tujuan yang berlawanan. 681 00:32:31,780 --> 00:32:36,570 >> AUDIENCE: Apakah kita perlu tahu coding untuk tabel hash dan mencoba? 682 00:32:36,570 --> 00:32:40,300 Atau apakah kita hanya perlu memahami bagaimana mereka digunakan, secara konseptual? 683 00:32:40,300 --> 00:32:44,570 >> JASON Hirschhorn: Jadi, angkat tangan jika Anda melakukan tabel hash untuk p set 4 684 00:32:44,570 --> 00:32:46,920 dengan daftar link. 685 00:32:46,920 --> 00:32:47,960 Atau p set 5. 686 00:32:47,960 --> 00:32:49,060 Jadi itu sebagian besar orang. 687 00:32:49,060 --> 00:32:50,390 P set 5, 6, siapa tahu. 688 00:32:50,390 --> 00:32:51,240 Sebuah waktu yang lama. 689 00:32:51,240 --> 00:32:54,140 >> Jadi sebagian besar yang Anda lakukan hash tabel dengan daftar link. 690 00:32:54,140 --> 00:32:56,525 Dan karena itu mungkin lebih pendekatan umum, dan karena kita menghabiskan 691 00:32:56,525 --> 00:32:59,460 banyak waktu melakukan daftar link dan hash tabel, Anda mungkin harus 692 00:32:59,460 --> 00:33:02,600 cukup akrab dengan bagaimana kode tabel hash dan daftar link. 693 00:33:02,600 --> 00:33:05,060 >> Dan jika Anda berpikir kembali untuk masalah tersebut mengatur, itu tidak benar-benar 694 00:33:05,060 --> 00:33:06,410 sekeras yang Anda harapkan. 695 00:33:06,410 --> 00:33:08,120 Dan ada banyak kurang kode dari yang Anda harapkan. 696 00:33:08,120 --> 00:33:11,150 697 00:33:11,150 --> 00:33:14,650 Aku akan mengatakan Anda harus tahu bagaimana kode tabel hash atau daftar link. 698 00:33:14,650 --> 00:33:17,010 Bukan berarti Anda akan meminta agar, tentu, tapi Anda harus 699 00:33:17,010 --> 00:33:19,730 tentu tahu bahwa. 700 00:33:19,730 --> 00:33:21,860 >> Juga, jika Anda melihat melalui kuis masa lalu, ada banyak 701 00:33:21,860 --> 00:33:26,450 pertanyaan tentang menulis fungsi pada daftar link atau daftar doubly-linked. 702 00:33:26,450 --> 00:33:28,370 Yang tampaknya datang setiap tahun. 703 00:33:28,370 --> 00:33:31,940 Masukkan kanan pada daftar link, kanan menghapus dari daftar link, kanan menyisipkan 704 00:33:31,940 --> 00:33:33,610 untuk doubly-linked, dan sebagainya. 705 00:33:33,610 --> 00:33:36,170 Sehingga, saya merasa cukup nyaman mengatakan Anda harus tahu itu. 706 00:33:36,170 --> 00:33:40,600 >> Untuk mencoba, saya akan mengatakan Anda harus pasti tahu cara kerjanya, dan mungkin 707 00:33:40,600 --> 00:33:43,570 memberikan beberapa pseudocode untuk bagaimana kode itu dan memasangnya. 708 00:33:43,570 --> 00:33:45,600 Tapi itu tidak akan menjadi hal terburuk dalam dunia jika Anda tidak tahu bagaimana 709 00:33:45,600 --> 00:33:48,870 kode itu di C. Ini akan menjadi besar jika Anda tahu bagaimana kode dalam C, tapi saya pikir 710 00:33:48,870 --> 00:33:52,516 mungkin pseudocode untuk mencoba akan menjadi yang paling Anda butuhkan 711 00:33:52,516 --> 00:33:53,270 tahu untuk mencoba. 712 00:33:53,270 --> 00:33:53,930 >> AUDIENCE: Extra kredit? 713 00:33:53,930 --> 00:33:58,290 >> JASON Hirschhorn: Dan sama dengan, jika kita masuk ke pohon pencarian biner, Anda mungkin 714 00:33:58,290 --> 00:34:02,320 perlu - dan Anda telah melihat di masa lalu, kami telah melakukan banyak - Anda tahu bagaimana 715 00:34:02,320 --> 00:34:03,380 pohon pencarian biner bekerja. 716 00:34:03,380 --> 00:34:07,150 Anda mungkin harus dapat menetapkannya dalam kode semu. 717 00:34:07,150 --> 00:34:10,510 Namun karena sebagian besar orang tidak melakukan itu pada masalah 718 00:34:10,510 --> 00:34:13,880 set, saya akan mengatakan itu mungkin kurang penting bahwa Anda tahu bagaimana kode 719 00:34:13,880 --> 00:34:17,380 dan mendirikan sebuah pohon seperti itu. 720 00:34:17,380 --> 00:34:19,679 >> Ada pertanyaan lain? 721 00:34:19,679 --> 00:34:23,234 Juga, kita dapat meminta mereka sepanjang seperti yang kita pergi melalui beberapa masalah. 722 00:34:23,234 --> 00:34:27,170 OK, kita akan melanjutkan. 723 00:34:27,170 --> 00:34:28,230 Loncat slide yang untuk saat ini. 724 00:34:28,230 --> 00:34:32,449 >> Berbicara tentang pohon, yang adalah yang pertama pertanyaan yang saya miliki untuk kalian. 725 00:34:32,449 --> 00:34:34,270 Karena ini adalah masalah. 726 00:34:34,270 --> 00:34:37,380 Aku akan mengatakan itu sangat mungkin Anda akan mendapatkan masalah seperti ini di kuis 727 00:34:37,380 --> 00:34:43,659 meminta Anda untuk kode beberapa jenis insert, menghapus, mencari, untuk satu jenis 728 00:34:43,659 --> 00:34:45,270 struktur data yang telah kita lihat. 729 00:34:45,270 --> 00:34:47,719 >> Yang muncul setiap tahun dan kami menghabiskan banyak waktu paruh kedua ini 730 00:34:47,719 --> 00:34:50,270 semester akan lebih dari tipe data ini. 731 00:34:50,270 --> 00:34:54,170 Jadi sekarang, saya telah menetapkan node dalam pohon pencarian biner. 732 00:34:54,170 --> 00:34:58,490 Dan apa yang saya ingin Anda lakukan adalah diberikan pohon pencarian biner yang dimulai 733 00:34:58,490 --> 00:35:05,450 di akar bintang node, menyelesaikan pelaksanaan fungsi di bawah ini, 734 00:35:05,450 --> 00:35:07,430 yang terjadi menjadi fungsi find. 735 00:35:07,430 --> 00:35:09,260 Dan melakukannya dengan dan tanpa recursions. 736 00:35:09,260 --> 00:35:10,860 >> Jadi saya ingin Anda untuk menulis dua fungsi. 737 00:35:10,860 --> 00:35:14,310 Satu melakukan ini dengan rekursi, satu melakukan hal ini tanpa rekursi. 738 00:35:14,310 --> 00:35:18,050 Dan jangan menganggap bahwa root akan menjadi non-null. 739 00:35:18,050 --> 00:35:21,790 Jadi kita mencari integer i di pohon mulai dari akar, dan kita perlu 740 00:35:21,790 --> 00:35:25,280 untuk menulis ini secara rekursif dan iteratif. 741 00:35:25,280 --> 00:35:26,300 Ya. 742 00:35:26,300 --> 00:35:29,730 >> AUDIENCE: Jadi Anda ingin kami untuk kembali benar jika kita menemukan itu, dan false jika kita 743 00:35:29,730 --> 00:35:30,480 tidak menemukannya. 744 00:35:30,480 --> 00:35:32,160 >> JASON Hirschhorn: Bagaimana kau tahu? 745 00:35:32,160 --> 00:35:33,100 Bagaimana kau tahu itu? 746 00:35:33,100 --> 00:35:36,500 >> AUDIENCE: Aku bertanya pertama, tapi aku dengan asumsi, karena mengatakan bool di 747 00:35:36,500 --> 00:35:37,490 awal fungsi. 748 00:35:37,490 --> 00:35:37,880 >> JASON Hirschhorn: Benar. 749 00:35:37,880 --> 00:35:41,020 Ia mengatakan bool, jadi saya bahkan tidak perlu memberitahu Anda apa yang saya harapkan Anda untuk kembali 750 00:35:41,020 --> 00:35:41,350 karena ia berkata di sana. 751 00:35:41,350 --> 00:35:42,280 Tapi itu benar. 752 00:35:42,280 --> 00:35:43,510 Kembali, benar atau salah. 753 00:35:43,510 --> 00:35:47,630 >> Jadi sebelum Anda mulai, saya akan merekomendasikan, jika Anda tidak terbiasa dengan 754 00:35:47,630 --> 00:35:51,300 pohon pencarian biner, cepat menggambar gambar itu untuk mendapatkan Anda 755 00:35:51,300 --> 00:35:51,750 pemahaman, benar. 756 00:35:51,750 --> 00:35:54,720 Itu juga akan membantu Anda saat menulis kode Anda dan memeriksa itu. 757 00:35:54,720 --> 00:35:57,830 Sekali lagi, Anda juga tidak memiliki banyak waktu pada kuis untuk melakukan semua hal yang 758 00:35:57,830 --> 00:35:59,030 bahwa kami meminta Anda untuk melakukan. 759 00:35:59,030 --> 00:36:02,350 Jadi menulis pseudo code sangat membantu. 760 00:36:02,350 --> 00:36:05,310 >> Dan kami biasanya memberikan sekitar - 761 00:36:05,310 --> 00:36:06,820 jika pseudocode adalah sempurna benar, itu 762 00:36:06,820 --> 00:36:08,910 umumnya 50% pada pertanyaan. 763 00:36:08,910 --> 00:36:11,410 Jadi bukan aturan keras dan cepat, tetapi jika Anda hanya menulis pseudocode dan itu 764 00:36:11,410 --> 00:36:13,460 benar, itu umumnya 50%. 765 00:36:13,460 --> 00:36:14,970 Jadi saya akan selalu merekomendasikan - 766 00:36:14,970 --> 00:36:16,870 jika Anda sedang diburu waktu, atau bahkan jika Anda hanya mencoba untuk mencari tahu - 767 00:36:16,870 --> 00:36:18,290 dimulai dengan pseudocode tersebut. 768 00:36:18,290 --> 00:36:24,840 Dan akhirnya, jika Anda bisa menulis ini semua di C, yang akan fantastis. 769 00:36:24,840 --> 00:36:29,010 >> Jadi mari kita mengambil tiga menit untuk bekerja pada program ini. 770 00:36:29,010 --> 00:36:33,120 Dan kemudian kita akan menulis pseudocode untuk sekali saja, dan kemudian 771 00:36:33,120 --> 00:36:35,455 kita akan kode itu secara rekursif dan kemudian iteratif. 772 00:36:35,455 --> 00:37:28,720 773 00:37:28,720 --> 00:37:30,760 >> Jika Anda memiliki pertanyaan, merasa gratis angkat tangan. 774 00:37:30,760 --> 00:37:34,270 Senang untuk berjalan-jalan dan menjawabnya sebelum kita mulai sebagai sebuah kelompok. 775 00:37:34,270 --> 00:39:22,600 776 00:39:22,600 --> 00:39:27,200 >> Mari kita melanjutkan, dan kita akan Pseudocode versi rekursif 777 00:39:27,200 --> 00:39:29,830 ini, dan kemudian kami akan kode itu. 778 00:39:29,830 --> 00:39:33,380 Jadi fungsi rekursif membutuhkan dua hal. 779 00:39:33,380 --> 00:39:35,960 Ini mungkin pertanyaan yang Anda bisa diminta. 780 00:39:35,960 --> 00:39:37,950 Kebutuhan dua hal. 781 00:39:37,950 --> 00:39:40,610 Siapa yang bisa mengangkat tangan mereka dan ceritakan apa dua hal rekursif 782 00:39:40,610 --> 00:39:43,680 Fungsi kebutuhan? 783 00:39:43,680 --> 00:39:45,030 Dengan definisi itu memiliki dua hal. 784 00:39:45,030 --> 00:39:46,280 Apa kedua hal itu? 785 00:39:46,280 --> 00:39:48,580 786 00:39:48,580 --> 00:39:49,830 Tangan baru. 787 00:39:49,830 --> 00:39:55,050 788 00:39:55,050 --> 00:39:56,390 Ya, Alden. 789 00:39:56,390 --> 00:39:57,980 >> AUDIENCE: Jadi saya tidak benar-benar yakin apakah ini adalah terminologi, tapi - 790 00:39:57,980 --> 00:39:59,715 >> JASON Hirschhorn: Aku senang Anda mengangkat tangan Anda. 791 00:39:59,715 --> 00:40:03,380 >> AUDIENCE: Perlu kasus dasar, dan perlu langkah rekursif. 792 00:40:03,380 --> 00:40:03,960 >> JASON Hirschhorn: Sempurna. 793 00:40:03,960 --> 00:40:06,340 Perlu kasus dasar dan langkah rekursif. 794 00:40:06,340 --> 00:40:10,430 Jadi apa kasus kami dasar di sini? 795 00:40:10,430 --> 00:40:12,950 >> AUDIENCE: F akar sama sama null. 796 00:40:12,950 --> 00:40:15,110 Maaf, hanya dalam pseudocode, jika itu null. 797 00:40:15,110 --> 00:40:16,360 Jika akar adalah null. 798 00:40:16,360 --> 00:40:21,900 799 00:40:21,900 --> 00:40:23,540 >> JASON Hirschhorn: Jika akar adalah null. 800 00:40:23,540 --> 00:40:23,850 Itu sangat baik. 801 00:40:23,850 --> 00:40:24,610 Itu kasus dasar kami. 802 00:40:24,610 --> 00:40:25,910 Itulah yang akan kita untuk memeriksa setiap kali. 803 00:40:25,910 --> 00:40:28,000 Dan kasus dasar adalah Hal pertama yang Anda lakukan. 804 00:40:28,000 --> 00:40:29,720 Jika Anda menekan kasus dasar, Anda sudah selesai. 805 00:40:29,720 --> 00:40:34,140 >> Sekarang kita perlu panggilan rekursif kami, dan aku akan berani bertaruh kita perlu beberapa 806 00:40:34,140 --> 00:40:35,440 rekursif panggilan di sini. 807 00:40:35,440 --> 00:40:39,630 Karena itu pohon, dan kami bisa pergi beberapa cara. 808 00:40:39,630 --> 00:40:43,190 Jadi, jika akar adalah null, kita baik. 809 00:40:43,190 --> 00:40:44,970 >> Apa yang Anda usulkan? 810 00:40:44,970 --> 00:40:49,640 Dan sekarang aku akan mulai memanggil pada kalian, karena aku tahu kalian 811 00:40:49,640 --> 00:40:50,540 semua tahu ini. 812 00:40:50,540 --> 00:40:52,610 Tapi Annie, apa yang harus baris berikutnya akan? 813 00:40:52,610 --> 00:40:53,570 Bagaimana jika kami menemukan itu? 814 00:40:53,570 --> 00:40:55,526 Apa yang kita lakukan? 815 00:40:55,526 --> 00:40:57,300 >> AUDIENCE: Jika kami menemukan itu? 816 00:40:57,300 --> 00:40:59,160 >> JASON Hirschhorn: Atau apa harus itu - 817 00:40:59,160 --> 00:41:02,124 beri saya pseudocode untuk baris di mana kami menemukan itu. 818 00:41:02,124 --> 00:41:04,700 >> AUDIENCE: Jika saya sama dengan akar i? 819 00:41:04,700 --> 00:41:06,650 >> JASON Hirschhorn: Dan maka apa yang kita lakukan? 820 00:41:06,650 --> 00:41:07,590 >> AUDIENCE: Kembali benar. 821 00:41:07,590 --> 00:41:08,530 >> JASON Hirschhorn: Great. 822 00:41:08,530 --> 00:41:16,890 Jadi jika saya adalah i - 823 00:41:16,890 --> 00:41:17,400 oh, mereka berdua disebut i. 824 00:41:17,400 --> 00:41:18,470 Itu akan membingungkan. 825 00:41:18,470 --> 00:41:23,830 Tetapi jika saya adalah saya kembali benar. 826 00:41:23,830 --> 00:41:25,620 Itu mungkin berikutnya hal yang harus kita lakukan. 827 00:41:25,620 --> 00:41:27,300 Masuk akal. 828 00:41:27,300 --> 00:41:30,610 >> OK, sekarang kita tidak melakukan rekursif kami panggilan belum, meskipun, karena rekursif suatu 829 00:41:30,610 --> 00:41:32,300 panggilan akan memanggil fungsi ini lagi. 830 00:41:32,300 --> 00:41:41,460 Jadi apa yang harus berikutnya baris pseudocode menjadi? 831 00:41:41,460 --> 00:41:42,730 Anna. 832 00:41:42,730 --> 00:41:43,980 >> AUDIENCE: Sisi kiri. 833 00:41:43,980 --> 00:41:47,040 834 00:41:47,040 --> 00:41:47,590 >> JASON Hirschhorn: Jadilah spesifik, meskipun. 835 00:41:47,590 --> 00:41:50,600 Ini adalah pohon pencarian biner, jadi apa tidak memeriksa sisi kiri memerlukan? 836 00:41:50,600 --> 00:41:51,890 >> AUDIENCE: Jadi node - 837 00:41:51,890 --> 00:41:53,342 Maafkan aku, akar. 838 00:41:53,342 --> 00:41:55,306 Dan kemudian panah kiri. 839 00:41:55,306 --> 00:41:59,234 840 00:41:59,234 --> 00:42:00,720 Node, simpul, maaf. 841 00:42:00,720 --> 00:42:01,978 Saya tidak membaca dengan benar. 842 00:42:01,978 --> 00:42:05,700 Ini disebut node, kan? 843 00:42:05,700 --> 00:42:09,270 >> JASON Hirschhorn: Ini akan disebut akar dalam fungsi itu, tapi cara baik. 844 00:42:09,270 --> 00:42:10,925 Sisi kiri - ya? 845 00:42:10,925 --> 00:42:13,780 >> AUDIENCE: Jika tidak sama i, maka kita akan memanggil 846 00:42:13,780 --> 00:42:15,130 fungsi lagi? 847 00:42:15,130 --> 00:42:15,490 >> JASON Hirschhorn: Itu benar. 848 00:42:15,490 --> 00:42:17,870 Jika tidak sama i, kita akan untuk memanggil fungsi lagi. 849 00:42:17,870 --> 00:42:21,435 Tapi apa sisi pohon yang akan kita untuk memanggil fungsi lagi? 850 00:42:21,435 --> 00:42:22,685 >> AUDIENCE: Di sisi kiri. 851 00:42:22,685 --> 00:42:25,932 852 00:42:25,932 --> 00:42:27,670 >> JASON Hirschhorn: Kami tidak selalu akan menyebutnya kiri, jika 853 00:42:27,670 --> 00:42:29,190 tidak sama itu. 854 00:42:29,190 --> 00:42:29,610 >> AUDIENCE: Oh, maaf. 855 00:42:29,610 --> 00:42:31,200 Panggilan di sebelah kanan. 856 00:42:31,200 --> 00:42:33,680 >> JASON Hirschhorn: Kami ingin tahu khusus, meskipun - ingat, dalam 857 00:42:33,680 --> 00:42:37,700 pohon pencarian biner, segalanya untuk sisi kiri lebih kecil. 858 00:42:37,700 --> 00:42:40,460 Semuanya ke kanan sisi yang lebih besar. 859 00:42:40,460 --> 00:42:43,990 Jadi itu hanya tidak - ya, silakan. 860 00:42:43,990 --> 00:42:46,805 >> AUDIENCE: Jika kurang dari i, kemudian - 861 00:42:46,805 --> 00:42:52,130 862 00:42:52,130 --> 00:42:53,380 jika itu di sebelah kiri - 863 00:42:53,380 --> 00:42:56,160 864 00:42:56,160 --> 00:42:58,606 >> JASON Hirschhorn: Jadi jika ri kurang dari - 865 00:42:58,606 --> 00:43:01,854 866 00:43:01,854 --> 00:43:09,110 jadi jika jumlah kami kurang dari i, sisi apa yang kita ingin pergi ke? 867 00:43:09,110 --> 00:43:15,120 >> AUDIENCE: Kami ingin pergi ke sisi kanan. 868 00:43:15,120 --> 00:43:16,250 >> JASON Hirschhorn: Kami ingin pergi - 869 00:43:16,250 --> 00:43:19,210 biarkan aku menggambar pohon cepat. 870 00:43:19,210 --> 00:43:23,850 Jika ini adalah 5, ini akan menjadi 3. 871 00:43:23,850 --> 00:43:29,410 Jadi jika ri adalah kurang dari lima, apa sisi kita ingin pergi ke? 872 00:43:29,410 --> 00:43:30,390 >> AUDIENCE: Maaf, apa? 873 00:43:30,390 --> 00:43:33,190 >> JASON Hirschhorn: Nomor kami adalah kurang dari jumlah kita 874 00:43:33,190 --> 00:43:34,710 melihat sekarang. 875 00:43:34,710 --> 00:43:35,890 >> AUDIENCE: Oh, maka kita ingin untuk pergi ke sisi kiri. 876 00:43:35,890 --> 00:43:36,240 Ya. 877 00:43:36,240 --> 00:43:36,920 Maaf. 878 00:43:36,920 --> 00:43:37,230 >> JASON Hirschhorn: Tepat. 879 00:43:37,230 --> 00:43:38,480 Jangan khawatir. 880 00:43:38,480 --> 00:43:41,020 Dalam biner pohon pencarian, segala sesuatu lebih rendah ke kiri, 881 00:43:41,020 --> 00:43:42,110 lebih besar adalah ke kanan. 882 00:43:42,110 --> 00:43:46,700 Jadi, jika jumlah kami kurang dari i kami memeriksa - 883 00:43:46,700 --> 00:43:48,790 karena yang Anda lihat dalam node, ia memiliki i - 884 00:43:48,790 --> 00:43:50,040 maka Anda ingin pergi ke kiri. 885 00:43:50,040 --> 00:43:55,480 886 00:43:55,480 --> 00:43:56,720 >> Dan ini adalah mudah. 887 00:43:56,720 --> 00:44:01,700 Apa itu jalur lain dari pseudocode kita perlu menulis? 888 00:44:01,700 --> 00:44:02,910 Carlos? 889 00:44:02,910 --> 00:44:05,970 >> AUDIENCE: Hal yang sama, Anda hanya beralih untuk lebih besar dari tanda 890 00:44:05,970 --> 00:44:07,420 dan pergi ke kanan. 891 00:44:07,420 --> 00:44:08,350 >> JASON Hirschhorn: Dapatkah Anda mengatakan sekali lagi? 892 00:44:08,350 --> 00:44:11,640 >> AUDIENCE: Jika nomor kami lebih besar dari saya, pergi ke kanan. 893 00:44:11,640 --> 00:44:24,900 894 00:44:24,900 --> 00:44:26,690 >> JASON Hirschhorn: Excellent job pada pseudocode tersebut. 895 00:44:26,690 --> 00:44:28,700 Mari kita melakukan ini dalam kode nyata. 896 00:44:28,700 --> 00:44:33,280 Dan lagi, pseudocode ini akan mungkin membuat Anda, karena itu 897 00:44:33,280 --> 00:44:35,480 benar, 50% untuk pertanyaan ini. 898 00:44:35,480 --> 00:44:39,720 Tapi pseudocode ini juga menerjemahkan salah satu satu, pada dasarnya, ke dalam kode. 899 00:44:39,720 --> 00:44:44,380 >> Jadi mari kita melakukan ini di C. Siapa yang bisa memberikan saya baris pertama dari kode? 900 00:44:44,380 --> 00:44:48,390 Sebenarnya, pertama, sebelum saya lakukan itu, biarkan aku menepi - 901 00:44:48,390 --> 00:44:49,260 >> AUDIENCE: Saya punya pertanyaan. 902 00:44:49,260 --> 00:44:52,430 Mengapa Anda indent baris yang kuberikan padamu? 903 00:44:52,430 --> 00:44:54,160 >> JASON Hirschhorn: Karena Aku tidak bisa menulis. 904 00:44:54,160 --> 00:44:55,240 Saya tidak tahu. 905 00:44:55,240 --> 00:44:55,650 Kau benar. 906 00:44:55,650 --> 00:44:57,780 Kalimat itu harus di sana. 907 00:44:57,780 --> 00:45:11,600 908 00:45:11,600 --> 00:45:14,480 >> OK, di sini adalah fungsi kita. 909 00:45:14,480 --> 00:45:18,090 Dan biarkan aku menepi, juga, definisi kita tentang node. 910 00:45:18,090 --> 00:45:23,320 911 00:45:23,320 --> 00:45:27,180 Apa yang terjadi jika kita tidak menulis typedef? 912 00:45:27,180 --> 00:45:30,240 Apakah ada yang tahu? 913 00:45:30,240 --> 00:45:32,570 >> AUDIENCE: Itu tidak akan dikompilasi. 914 00:45:32,570 --> 00:45:33,860 >> JASON Hirschhorn: Ini akan kompilasi, yeah. 915 00:45:33,860 --> 00:45:37,120 >> AUDIENCE: Apakah itu hanya menyatakan satu Misalnya bukannya membuatnya menjadi baru 916 00:45:37,120 --> 00:45:39,840 ketik Anda bisa menyatakan beberapa contoh? 917 00:45:39,840 --> 00:45:41,700 >> JASON Hirschhorn: Jadi itu tidak akan tahu - itu tidak akan 918 00:45:41,700 --> 00:45:43,120 hanya menyatakan satu jenis. 919 00:45:43,120 --> 00:45:46,150 Anda masih bisa membuat banyak node. 920 00:45:46,150 --> 00:45:48,070 >> AUDIENCE: Tapi bukankah kita harus menulis struct simpul setiap kali? 921 00:45:48,070 --> 00:45:48,640 >> JASON Hirschhorn: Itu benar. 922 00:45:48,640 --> 00:45:50,960 Anda harus menulis struct simpul setiap kali, bukan hanya simpul. 923 00:45:50,960 --> 00:45:55,270 Tapi dengan typedef, Anda hanya dapat menulis node setiap saat. 924 00:45:55,270 --> 00:45:58,240 OK, yang belum memberikan - yeah, Avica. 925 00:45:58,240 --> 00:46:01,520 >> AUDIENCE: Jika akar sama dengan equals null, kembali palsu. 926 00:46:01,520 --> 00:46:07,130 927 00:46:07,130 --> 00:46:09,490 >> JASON Hirschhorn: besar, dan itu kasus dasar kami. 928 00:46:09,490 --> 00:46:11,200 Baris berikutnya kode. 929 00:46:11,200 --> 00:46:13,999 Seseorang yang belum memberikan saya baris kode belum? 930 00:46:13,999 --> 00:46:14,945 Ya. 931 00:46:14,945 --> 00:46:23,360 >> AUDIENCE: Akar panah i sama sama dengan i. 932 00:46:23,360 --> 00:46:27,260 Kemudian kembali benar. 933 00:46:27,260 --> 00:46:29,162 >> JASON Hirschhorn: Great. 934 00:46:29,162 --> 00:46:32,048 Baris berikutnya? 935 00:46:32,048 --> 00:46:32,790 Ya. 936 00:46:32,790 --> 00:46:34,010 Orang lain? 937 00:46:34,010 --> 00:46:36,774 Dan kemudian Anda bisa pergi berikutnya. 938 00:46:36,774 --> 00:46:44,820 >> AUDIENCE: Lain jika akar panah i kurang dari aku kembali 939 00:46:44,820 --> 00:46:47,737 fungsi yang disebut menemukan akar - 940 00:46:47,737 --> 00:46:50,611 >> JASON Hirschhorn: Maaf. 941 00:46:50,611 --> 00:46:56,272 >> AUDIENCE: Kembali find akar menunjuk ke kiri koma i. 942 00:46:56,272 --> 00:47:01,760 943 00:47:01,760 --> 00:47:08,440 >> JASON Hirschhorn: Jadi jika ri lebih besar dari hal di pohon, kita ingin 944 00:47:08,440 --> 00:47:09,573 pergi ke kiri? 945 00:47:09,573 --> 00:47:11,790 >> AUDIENCE: Tidak, saya punya beralih. 946 00:47:11,790 --> 00:47:13,040 >> JASON Hirschhorn: Yang mana? 947 00:47:13,040 --> 00:47:16,310 948 00:47:16,310 --> 00:47:16,950 >> AUDIENCE: Tidak, ya. 949 00:47:16,950 --> 00:47:19,050 Saya memiliki kurang dari tanda di sana. 950 00:47:19,050 --> 00:47:22,890 >> JASON Hirschhorn: Benar, jika ri kurang dari apa yang ada di akar - 951 00:47:22,890 --> 00:47:25,660 akar kami saat ini - maka kita ingin pergi ke kiri. 952 00:47:25,660 --> 00:47:26,960 Dan apa baris terakhir, Anda? 953 00:47:26,960 --> 00:47:30,930 >> AUDIENCE: Pada dasarnya hal yang sama, kecuali beralih lebih besar dari atau 954 00:47:30,930 --> 00:47:34,690 sama dengan kurang dari dan kiri ke kanan. 955 00:47:34,690 --> 00:47:43,590 956 00:47:43,590 --> 00:47:43,680 >> JASON Hirschhorn: Excellent. 957 00:47:43,680 --> 00:47:48,430 Apakah Ada yang punya pertanyaan tentang hal ini? 958 00:47:48,430 --> 00:47:52,560 Jadi beberapa hal lain yang akan telah benar adalah bahwa 959 00:47:52,560 --> 00:47:53,810 bisa menjadi-ltiff. 960 00:47:53,810 --> 00:47:56,520 961 00:47:56,520 --> 00:47:59,520 Guess, secara teknis, tidak ada yang benar-benar juga harus-ltiff. 962 00:47:59,520 --> 00:48:00,950 >> Juga, mungkin ada hanya satu kasus di sini. 963 00:48:00,950 --> 00:48:02,380 Jadi itu mungkin kasus terakhir Anda. 964 00:48:02,380 --> 00:48:04,000 Anda bahkan tidak perlu itu-ltiff. 965 00:48:04,000 --> 00:48:06,160 Tapi mungkin baik untuk menulis itu, harus jelas. 966 00:48:06,160 --> 00:48:06,660 Ya. 967 00:48:06,660 --> 00:48:09,200 >> AUDIENCE: Jadi Anda tidak berpikir kuis - jika kita membuat kesalahan, misalnya, 968 00:48:09,200 --> 00:48:11,725 dalam sintaks - 969 00:48:11,725 --> 00:48:13,990 kesalahan sintaks sedikit - 970 00:48:13,990 --> 00:48:17,810 bagaimana yang bisa diambil dalam kuis? 971 00:48:17,810 --> 00:48:21,300 >> JASON Hirschhorn: Umumnya pada kuis, kecil kesalahan sintaks atau kecil 972 00:48:21,300 --> 00:48:24,010 kesalahan gaya tidak kehilangan Anda poin. 973 00:48:24,010 --> 00:48:26,610 Jadi jika Anda lupa titik koma di sini, itu akan OK. 974 00:48:26,610 --> 00:48:30,290 Jika Anda lupa untuk menutup kurung ini, yang akan OK. 975 00:48:30,290 --> 00:48:34,880 >> Kesalahan sintaks besar yang mengubah makna fungsional dari kode Anda 976 00:48:34,880 --> 00:48:37,600 secara dramatis, Anda mungkin mendapatkan diambil dari poin untuk. 977 00:48:37,600 --> 00:48:40,330 Atau secara umum, hanya kadar Anda pada apakah atau tidak Anda 978 00:48:40,330 --> 00:48:42,150 fungsi kode, bahkan - 979 00:48:42,150 --> 00:48:44,830 bukan desain yang begitu banyak, dan tidak gaya. 980 00:48:44,830 --> 00:48:50,780 981 00:48:50,780 --> 00:48:55,480 >> Mari kita sekarang kode yang berulang-ulang versi find. 982 00:48:55,480 --> 00:49:00,400 983 00:49:00,400 --> 00:49:03,450 Jadi itu akan menjadi sangat mirip, tetapi ada tentu akan menjadi 984 00:49:03,450 --> 00:49:06,250 beberapa perbedaan penting. 985 00:49:06,250 --> 00:49:09,160 Namun, pseudocode kami mungkin bisa pergi - 986 00:49:09,160 --> 00:49:11,610 kita masih dapat mengambil satu baris dari pseudocode dan mencari tahu apa yang 987 00:49:11,610 --> 00:49:14,160 baris dalam hal ini. 988 00:49:14,160 --> 00:49:18,010 >> Jadi dalam versi berulang, apa Menurut Anda, Julia, harus 989 00:49:18,010 --> 00:49:19,260 menjadi baris pertama? 990 00:49:19,260 --> 00:49:23,100 991 00:49:23,100 --> 00:49:26,920 >> AUDIENCE: Sekali lagi, dalam boolean berulang, Anda perlu mengatur untuk loop, kan? 992 00:49:26,920 --> 00:49:27,660 >> JASON Hirschhorn: OK. 993 00:49:27,660 --> 00:49:38,480 >> AUDIENCE: Jadi untuk seperti, k, untuk x sama dengan 0, x kurang dari i. 994 00:49:38,480 --> 00:49:42,260 Atau tidak, x kurang dari ukuran pohon. 995 00:49:42,260 --> 00:49:42,760 >> JASON Hirschhorn: Pohon. 996 00:49:42,760 --> 00:49:46,660 Jadi kami tidak benar-benar tahu ukuran pohon, dan kita tidak benar-benar tahu 997 00:49:46,660 --> 00:49:48,900 berapa kali kita bisa pergi, jadi apa yang berbagai jenis loop yang mungkin 998 00:49:48,900 --> 00:49:50,150 baik dalam hal ini? 999 00:49:50,150 --> 00:49:53,250 1000 00:49:53,250 --> 00:49:55,244 >> AUDIENCE: Jika yang lain? 1001 00:49:55,244 --> 00:49:57,070 >> JASON Hirschhorn: Jika lain tidak bisa menjadi satu lingkaran. 1002 00:49:57,070 --> 00:49:58,935 Jadi apa jenis loop kita hanya bisa pergi sampai beberapa kasus terpenuhi? 1003 00:49:58,935 --> 00:50:07,250 1004 00:50:07,250 --> 00:50:11,560 Apa saja jenis lain dari lingkaran di C selain untuk loop? 1005 00:50:11,560 --> 00:50:11,930 >> AUDIENCE: Sementara. 1006 00:50:11,930 --> 00:50:13,380 >> JASON Hirschhorn: Sementara, tepatnya. 1007 00:50:13,380 --> 00:50:16,430 Dalam beberapa saat loop, jangan perlu tahu bagaimana - 1008 00:50:16,430 --> 00:50:18,450 loop sementara dan untuk loop dapat melakukan hal yang sama persis, tetapi hal yang menyenangkan 1009 00:50:18,450 --> 00:50:21,500 sekitar loop sementara adalah kita tidak perlu untuk mengetahui seberapa besar pohon kita. 1010 00:50:21,500 --> 00:50:23,060 Jadi kita akan pergi sampai apa? 1011 00:50:23,060 --> 00:50:25,880 1012 00:50:25,880 --> 00:50:28,032 >> AUDIENCE: Sampai sama ukuran - 1013 00:50:28,032 --> 00:50:32,320 >> JASON Hirschhorn: Yah, itu sangat mirip dengan kasus rekursif kami. 1014 00:50:32,320 --> 00:50:33,360 Jadi - 1015 00:50:33,360 --> 00:50:36,470 >> AUDIENCE: Sementara akar i tidak sama i. 1016 00:50:36,470 --> 00:50:37,620 >> JASON Hirschhorn: Itu benar-benar dekat. 1017 00:50:37,620 --> 00:50:39,430 Sementara akar i - 1018 00:50:39,430 --> 00:50:40,610 mari kita coba. 1019 00:50:40,610 --> 00:50:41,180 Saya tidak berpikir [Tak terdengar] 1020 00:50:41,180 --> 00:50:43,026 dimana akar i tidak sama dengan i. 1021 00:50:43,026 --> 00:50:47,380 1022 00:50:47,380 --> 00:50:49,460 Kita mungkin perlu mengubahnya dalam sedikit bit, tapi yang terdengar seperti itu cukup 1023 00:50:49,460 --> 00:50:50,160 baik, untuk saat ini. 1024 00:50:50,160 --> 00:50:51,710 Jadi kita akan melakukan itu. 1025 00:50:51,710 --> 00:50:55,660 >> Juga, ingat, kita tidak bisa berasumsi per pertanyaan. 1026 00:50:55,660 --> 00:50:57,880 Anda tidak menganggap bahwa root akan menjadi non-null. 1027 00:50:57,880 --> 00:51:01,914 Jadi apa yang Anda pikir sangat Hal pertama yang harus kita lakukan adalah? 1028 00:51:01,914 --> 00:51:02,770 >> AUDIENCE: Hanya melakukan hal yang sama hal seperti sebelumnya. 1029 00:51:02,770 --> 00:51:05,260 Jika akar sama dengan equals null, kembali palsu. 1030 00:51:05,260 --> 00:51:11,030 1031 00:51:11,030 --> 00:51:12,130 >> JASON Hirschhorn: Great. 1032 00:51:12,130 --> 00:51:13,820 Sehingga bisa null. 1033 00:51:13,820 --> 00:51:15,810 Jadi kita ingin menyingkirkan itu segera. 1034 00:51:15,810 --> 00:51:19,560 Dan kemudian kita akan memeriksa apakah akar i tidak i tidak sama. 1035 00:51:19,560 --> 00:51:24,480 Jadi, katakanlah kita sedang mencari di pohon ini 3, akar i tidak sama i, sekarang 1036 00:51:24,480 --> 00:51:25,950 kita berada di loop sementara kami. 1037 00:51:25,950 --> 00:51:27,500 Apa yang ingin kita lakukan? 1038 00:51:27,500 --> 00:51:32,320 1039 00:51:32,320 --> 00:51:35,430 Dan lagi, itu akan menjadi cukup mirip dengan versi rekursif kami. 1040 00:51:35,430 --> 00:51:36,230 Ya. 1041 00:51:36,230 --> 00:51:40,470 >> AUDIENCE: Jadi Anda ingin iterate, atau terus turun pohon selama 1042 00:51:40,470 --> 00:51:42,400 root tidak sama dengan nol. 1043 00:51:42,400 --> 00:51:45,120 1044 00:51:45,120 --> 00:51:46,640 >> JASON Hirschhorn: Selama akar tidak sama dengan nol? 1045 00:51:46,640 --> 00:51:50,200 >> AUDIENCE: Akar dasbor i tidak sama dengan nol. 1046 00:51:50,200 --> 00:51:51,220 Hanya root, yeah. 1047 00:51:51,220 --> 00:51:52,920 Sebagai Selama akar adalah tidak sama dengan nol. 1048 00:51:52,920 --> 00:51:54,240 >> JASON Hirschhorn: Jadi, Anda ingin untuk mengubah ini menjadi akar 1049 00:51:54,240 --> 00:51:56,590 tidak nol tidak sama? 1050 00:51:56,590 --> 00:51:59,020 >> AUDIENCE: Ya. 1051 00:51:59,020 --> 00:52:00,800 >> AUDIENCE: Kita bisa menggabungkan ini, kan? 1052 00:52:00,800 --> 00:52:02,990 Kita tidak perlu jika, pada awalnya. 1053 00:52:02,990 --> 00:52:05,180 >> JASON Hirschhorn: OK, jadi jika kita tidak - 1054 00:52:05,180 --> 00:52:08,140 jika kita menggabungkan mereka, jadi kita akan melakukan sedangkan akar tidak nol tidak sama, dan 1055 00:52:08,140 --> 00:52:10,800 jika akar terjadi menjadi nol pada awal, apa yang kita lakukan di sini? 1056 00:52:10,800 --> 00:52:11,450 >> AUDIENCE: Kembali palsu. 1057 00:52:11,450 --> 00:52:12,730 >> JASON Hirschhorn: Great. 1058 00:52:12,730 --> 00:52:14,110 Jadi kedua-duanya mungkin akan bekerja. 1059 00:52:14,110 --> 00:52:15,645 Ini adalah cara yang berbeda, dan ini menggabungkan itu. 1060 00:52:15,645 --> 00:52:18,950 Tetapi sekali lagi, jika Anda melakukan cara baik, kami tidak akan lepas landas desain 1061 00:52:18,950 --> 00:52:19,800 menunjuk pada kuis. 1062 00:52:19,800 --> 00:52:21,020 Tapi ini terlihat baik. 1063 00:52:21,020 --> 00:52:23,940 >> Jadi sementara akar tidak sama dengan null, apa yang pertama 1064 00:52:23,940 --> 00:52:25,400 hal yang kita ingin memeriksa? 1065 00:52:25,400 --> 00:52:26,330 Orang lain? 1066 00:52:26,330 --> 00:52:29,720 Null, apa hal pertama? 1067 00:52:29,720 --> 00:52:32,850 >> AUDIENCE: Jika ri kurang dari - 1068 00:52:32,850 --> 00:52:36,140 oh, saya kira, jika kita sudah menemukannya di root. 1069 00:52:36,140 --> 00:52:40,830 Jadi, jika akar panah i adalah sama dengan i - 1070 00:52:40,830 --> 00:52:40,990 >> JASON Hirschhorn: Maaf? 1071 00:52:40,990 --> 00:52:45,840 >> AUDIENCE: Jika akar panah i sama sama i - 1072 00:52:45,840 --> 00:52:47,090 >> JASON Hirschhorn: Apa yang kita lakukan? 1073 00:52:47,090 --> 00:52:50,300 1074 00:52:50,300 --> 00:52:51,550 >> AUDIENCE: Kembali benar. 1075 00:52:51,550 --> 00:52:58,850 1076 00:52:58,850 --> 00:52:59,280 >> JASON Hirschhorn: Great. 1077 00:52:59,280 --> 00:53:00,530 Dan apa yang berikutnya? 1078 00:53:00,530 --> 00:53:04,510 1079 00:53:04,510 --> 00:53:06,843 Jeff, apa baris berikutnya kode? 1080 00:53:06,843 --> 00:53:16,190 >> AUDIENCE: Jika saya kurang dari akar panah i, maka akar sama dengan akar panah kiri. 1081 00:53:16,190 --> 00:53:21,550 >> JASON Hirschhorn: Akar equals akar panah kiri. 1082 00:53:21,550 --> 00:53:24,530 Jadi itu mungkin yang terbesar perbedaan di sini dalam hal ini berulang-ulang 1083 00:53:24,530 --> 00:53:26,600 versi menentang versi rekursif. 1084 00:53:26,600 --> 00:53:28,970 Versi rekursif, kita memanggil fungsi lagi. 1085 00:53:28,970 --> 00:53:32,640 Kami akan memperbarui root ketika kita sebut fungsi baru. 1086 00:53:32,640 --> 00:53:34,170 Di sini kita tidak memanggil fungsi baru. 1087 00:53:34,170 --> 00:53:37,610 Kami hanya hanya memperbarui akar dalam fungsi ini. 1088 00:53:37,610 --> 00:53:38,880 Itu sangat baik. 1089 00:53:38,880 --> 00:53:40,730 Dan apa baris terakhir kode? 1090 00:53:40,730 --> 00:53:43,950 1091 00:53:43,950 --> 00:53:44,880 Ya, Mario? 1092 00:53:44,880 --> 00:53:48,290 >> AUDIENCE: equals akar Lain akar panah kanan. 1093 00:53:48,290 --> 00:53:49,492 >> JASON Hirschhorn: Maaf? 1094 00:53:49,492 --> 00:53:52,340 >> Equals Akar: AUDIENCE akar panah kanan. 1095 00:53:52,340 --> 00:53:55,590 1096 00:53:55,590 --> 00:53:57,140 >> JASON Hirschhorn: Bisakah Anda juga menulis sesuatu seperti ini? 1097 00:53:57,140 --> 00:54:02,786 1098 00:54:02,786 --> 00:54:03,890 >> AUDIENCE: Saya tidak tahu. 1099 00:54:03,890 --> 00:54:05,140 >> JASON Hirschhorn: Anda tidak bisa. 1100 00:54:05,140 --> 00:54:07,302 1101 00:54:07,302 --> 00:54:08,270 Anda tidak dapat melakukan sama dengan plus. 1102 00:54:08,270 --> 00:54:10,780 OK, jadi ini terlihat baik. 1103 00:54:10,780 --> 00:54:13,620 Mengapa kita tidak hanya melakukan itu untuk membersihkannya. 1104 00:54:13,620 --> 00:54:15,220 Hal ini tampak hebat, dan ini akan bekerja. 1105 00:54:15,220 --> 00:54:16,920 Dan kita akan pecah. 1106 00:54:16,920 --> 00:54:21,460 >> Jika kiri akar adalah nol atau akar yang tepat adalah nol, kita akan datang ke sini. 1107 00:54:21,460 --> 00:54:22,470 Akar akan sama dengan nol. 1108 00:54:22,470 --> 00:54:24,270 Kami akan keluar dari lingkaran kami, dan kami akan kembali palsu. 1109 00:54:24,270 --> 00:54:26,280 Jadi ketika kita keluar dari lingkaran, kita kembali palsu. 1110 00:54:26,280 --> 00:54:29,520 1111 00:54:29,520 --> 00:54:32,793 >> Dan lagi, sementara loop yang sempurna di sini karena kita tidak tahu bagaimana 1112 00:54:32,793 --> 00:54:33,850 besar pohon kami. 1113 00:54:33,850 --> 00:54:36,460 Kami mencoba untuk menulis untuk loop, tapi kami menyadari bahwa Anda harus mencari tahu bagaimana 1114 00:54:36,460 --> 00:54:37,410 besar itu sebelumnya. 1115 00:54:37,410 --> 00:54:38,720 Ya. 1116 00:54:38,720 --> 00:54:41,790 >> AUDIENCE: Jika hal ini tidak biner pohon pencarian, itu akan menjadi nyata matematika-y 1117 00:54:41,790 --> 00:54:44,220 untuk menulis iteratif, kan? 1118 00:54:44,220 --> 00:54:47,170 Seperti, apakah itu pohon, tetapi tidak harus - 1119 00:54:47,170 --> 00:54:49,730 jadi itu tidak semua kecil di sebelah kiri, dan semua yang lebih besar di sebelah kanan. 1120 00:54:49,730 --> 00:54:52,540 Ini akan sangat sulit untuk beralih di atas, kan? 1121 00:54:52,540 --> 00:54:55,720 Kita harus menyelamatkan apa yang sebelumnya di dalam pohon dan kembali, 1122 00:54:55,720 --> 00:54:56,970 dan hal-hal seperti itu. 1123 00:54:56,970 --> 00:54:59,690 1124 00:54:59,690 --> 00:55:02,010 >> JASON Hirschhorn: Kalau bukan biner pohon pencarian, jika itu hanya 1125 00:55:02,010 --> 00:55:04,740 pohon dan hal-hal yang tidak diurutkan seperti ini - 1126 00:55:04,740 --> 00:55:07,440 dan kami menyadari sebelumnya ketika Anna membantu kami yang membuat 1127 00:55:07,440 --> 00:55:08,800 disortir membantu kita banyak - 1128 00:55:08,800 --> 00:55:12,610 kita perlu, ya, selalu menyimpan di mana kami sebelumnya. 1129 00:55:12,610 --> 00:55:14,430 Tapi mungkin ada banyak di mana kita berada previouslys. 1130 00:55:14,430 --> 00:55:17,730 Mungkin ada banyak node induk. 1131 00:55:17,730 --> 00:55:22,530 >> Mungkin cara terbaik untuk melakukannya akan adalah untuk terus mendorong hal-hal ke beberapa 1132 00:55:22,530 --> 00:55:24,170 jenis tumpukan atau antrian. 1133 00:55:24,170 --> 00:55:26,030 Anda tidak akan pernah perlu kode ini karena itu adalah masalah yang sulit. 1134 00:55:26,030 --> 00:55:30,820 Tapi Anda mendorong beberapa hal ke dalam stack atau antrian dan kemudian pop mereka pergi, dan 1135 00:55:30,820 --> 00:55:31,890 kemudian mengevaluasi mereka. 1136 00:55:31,890 --> 00:55:34,200 >> Dan kemudian memiliki beberapa hal lain di mana Anda benar-benar menempatkan node, dan 1137 00:55:34,200 --> 00:55:36,090 kemudian membuat itu, dan kemudian mencari melalui itu. 1138 00:55:36,090 --> 00:55:38,700 Itu mungkin cara terbaik untuk melakukannya. 1139 00:55:38,700 --> 00:55:42,410 OK, pertanyaan tentang masalah ini? 1140 00:55:42,410 --> 00:55:44,670 >> AUDIENCE: Ini adalah pada catatan terkait. 1141 00:55:44,670 --> 00:55:50,460 Apakah kita harus membandingkan run kali untuk tabel hash, biner 1142 00:55:50,460 --> 00:55:52,160 pohon pencarian, dan sebagainya? 1143 00:55:52,160 --> 00:55:54,310 >> JASON Hirschhorn: Mungkin. 1144 00:55:54,310 --> 00:55:56,150 Jadi mari kita lakukan yang benar-benar cepat. 1145 00:55:56,150 --> 00:55:58,490 Jalankan waktu untuk tabel hash - 1146 00:55:58,490 --> 00:55:59,090 apa yang lainnya? 1147 00:55:59,090 --> 00:56:00,050 Pohon biner? 1148 00:56:00,050 --> 00:56:02,920 >> AUDIENCE: daftar Link. 1149 00:56:02,920 --> 00:56:04,780 >> JASON Hirschhorn: OK, mari kita lakukan insert. 1150 00:56:04,780 --> 00:56:09,980 Apa O besar insert pada tabel hash? 1151 00:56:09,980 --> 00:56:13,080 1152 00:56:13,080 --> 00:56:15,285 Apa asumsi Anda membuat? 1153 00:56:15,285 --> 00:56:17,760 >> AUDIENCE: Anda memasukkan di mulai dari daftar link. 1154 00:56:17,760 --> 00:56:19,860 >> JASON Hirschhorn: Mungkin yang pertama Asumsi ini tidak ada tabrakan. 1155 00:56:19,860 --> 00:56:22,340 Jika tidak ada tabrakan, maka waktu penyisipan adalah satu. 1156 00:56:22,340 --> 00:56:26,560 Jika ada tabrakan, dan Anda melakukan chaining terpisah dan memasukkan 1157 00:56:26,560 --> 00:56:31,880 pada awal daftar link, maka penyisipan juga konstan. 1158 00:56:31,880 --> 00:56:34,700 >> Jika Anda melakukan sebuah tabel hash tetapi Anda memiliki metode yang berbeda untuk menangani 1159 00:56:34,700 --> 00:56:36,040 dengan tabrakan, apa metode yang berbeda? 1160 00:56:36,040 --> 00:56:41,580 1161 00:56:41,580 --> 00:56:42,960 Apa adalah metode yang berbeda berurusan dengan 1162 00:56:42,960 --> 00:56:44,205 tabrakan dalam tabel hash? 1163 00:56:44,205 --> 00:56:44,915 >> AUDIENCE: pemrograman Linear. 1164 00:56:44,915 --> 00:56:45,540 >> JASON Hirschhorn: pemrograman Linear. 1165 00:56:45,540 --> 00:56:47,770 Jadi kita akan terus mencari untuk tempat terbuka berikutnya. 1166 00:56:47,770 --> 00:56:50,390 Itu bukan waktu penyisipan konstan. 1167 00:56:50,390 --> 00:56:52,266 Anda bisa harus melalui seluruh tabel, sehingga 1168 00:56:52,266 --> 00:56:53,936 bisa jadi O besar n. 1169 00:56:53,936 --> 00:56:54,740 Ya. 1170 00:56:54,740 --> 00:56:57,690 >> AUDIENCE: Jika tidak hanya chaining? 1171 00:56:57,690 --> 00:57:00,160 >> JASON Hirschhorn: Kami melakukan chaining terpisah. 1172 00:57:00,160 --> 00:57:00,720 Itu yang pertama. 1173 00:57:00,720 --> 00:57:01,560 Itulah yang daftar link. 1174 00:57:01,560 --> 00:57:03,720 Nama mewah adalah chaining terpisah. 1175 00:57:03,720 --> 00:57:06,880 Bisa jadi jenis struktur daftar kita kebetulan dilakukan di daftar link. 1176 00:57:06,880 --> 00:57:10,490 >> Jadi sekali lagi, penyisipan pada tabel hash bisa menjadi waktu yang konstan. 1177 00:57:10,490 --> 00:57:13,160 Bagaimana dengan penyisipan pada antrian stacker? 1178 00:57:13,160 --> 00:57:19,260 1179 00:57:19,260 --> 00:57:20,640 >> AUDIENCE: Bukankah itu konstan? 1180 00:57:20,640 --> 00:57:21,530 >> JASON Hirschhorn: Ini waktu yang konstan. 1181 00:57:21,530 --> 00:57:23,420 Kau hanya mendorong pada. 1182 00:57:23,420 --> 00:57:24,120 OK. 1183 00:57:24,120 --> 00:57:25,380 Penyisipan, apa yang lain? 1184 00:57:25,380 --> 00:57:27,100 Pada try? 1185 00:57:27,100 --> 00:57:30,252 Apa O besar penyisipan pada mencoba? 1186 00:57:30,252 --> 00:57:32,808 >> AUDIENCE: Panjang konstan. 1187 00:57:32,808 --> 00:57:34,560 Panjang terpanjang - 1188 00:57:34,560 --> 00:57:36,998 panjang kata Anda memasukkan. 1189 00:57:36,998 --> 00:57:38,210 >> JASON Hirschhorn: Maaf? 1190 00:57:38,210 --> 00:57:39,120 Tunggu, jadi apa yang saya dengar? 1191 00:57:39,120 --> 00:57:40,260 Kau bilang - apa yang kau katakan? 1192 00:57:40,260 --> 00:57:41,650 Apa jawaban Anda, Marcus? 1193 00:57:41,650 --> 00:57:43,640 >> AUDIENCE: Panjang kata Anda memasukkan dalam karakter, 1194 00:57:43,640 --> 00:57:45,480 asumsi itu mencoba karakter. 1195 00:57:45,480 --> 00:57:46,840 >> JASON Hirschhorn: OK, jadi panjang kata. 1196 00:57:46,840 --> 00:57:49,500 Kami akan membuat asumsi bahwa itu adalah string karakter. 1197 00:57:49,500 --> 00:57:51,930 Anda mengatakan sesuatu yang berbeda, meskipun. 1198 00:57:51,930 --> 00:57:55,490 Kau bilang panjang kata terpanjang. 1199 00:57:55,490 --> 00:57:57,600 >> AUDIENCE: Itu hanya konstan, kan? 1200 00:57:57,600 --> 00:57:58,440 >> JASON Hirschhorn: Mengapa itu konstan? 1201 00:57:58,440 --> 00:58:00,970 >> AUDIENCE: Seperti, jika Anda menggunakan O besar notasi, maka tidak bervariasi berdasarkan 1202 00:58:00,970 --> 00:58:04,680 pada beberapa hal yang sudah di coba. 1203 00:58:04,680 --> 00:58:07,344 >> JASON Hirschhorn: Jadi kita akan mengatakan itu waktu yang konstan. 1204 00:58:07,344 --> 00:58:11,840 Ini adalah penyisipan konstan, dan itu karena ide ini - 1205 00:58:11,840 --> 00:58:14,820 mengatakan bahwa kita memiliki kata yang 45, atau kata yang 60, yang 1206 00:58:14,820 --> 00:58:16,800 memiliki sejumlah konstan. 1207 00:58:16,800 --> 00:58:21,050 Dan itu hanya akan dimasukkan dalam waktu yang konstan. 1208 00:58:21,050 --> 00:58:26,060 >> Dalam prakteknya meskipun, itu tidak akan, jelas, terjadi dalam satu milidetik, 1209 00:58:26,060 --> 00:58:26,590 misalnya. 1210 00:58:26,590 --> 00:58:28,880 Tapi kita akan mengatakan O besar adalah konstan untuk mencoba. 1211 00:58:28,880 --> 00:58:31,330 Dan itulah salah satu yang keuntungan terbesar. 1212 00:58:31,330 --> 00:58:33,330 >> Bagaimana dengan penyisipan ke dalam link list? 1213 00:58:33,330 --> 00:58:37,220 Hanya generik, link list diurutkan? 1214 00:58:37,220 --> 00:58:37,700 Ya. 1215 00:58:37,700 --> 00:58:38,530 >> AUDIENCE: aku punya pertanyaan. 1216 00:58:38,530 --> 00:58:42,670 Pada tes, apakah mereka pernah meminta kita waktu penyisipan itu empat langkah, 1217 00:58:42,670 --> 00:58:43,270 atau sesuatu? 1218 00:58:43,270 --> 00:58:44,300 Atau itu hanya - 1219 00:58:44,300 --> 00:58:47,670 ketika Anda mengatakan waktu penyisipan adalah satu, itu hanya berarti waktu yang konstan? 1220 00:58:47,670 --> 00:58:49,770 >> JASON Hirschhorn: Ya, mereka akan selalu bertanya, apakah O besar n? 1221 00:58:49,770 --> 00:58:51,440 O Big log n? 1222 00:58:51,440 --> 00:58:53,960 N kuadrat konstan. 1223 00:58:53,960 --> 00:58:56,520 Mereka benar-benar satu-satunya yang perlu Anda ketahui. 1224 00:58:56,520 --> 00:58:58,420 Bagaimana dengan penyisipan ke diurutkan link list? 1225 00:58:58,420 --> 00:58:59,440 >> AUDIENCE: aku punya pertanyaan - 1226 00:58:59,440 --> 00:58:59,980 pertanyaan - 1227 00:58:59,980 --> 00:59:01,060 >> JASON Hirschhorn: Apa jawabannya untuk pertanyaan itu, meskipun? 1228 00:59:01,060 --> 00:59:02,120 >> AUDIENCE: Tunggu, apa kau bertanya? 1229 00:59:02,120 --> 00:59:06,750 >> JASON Hirschhorn: Apa O besar dimasukkan ke dalam daftar tautan diurutkan? 1230 00:59:06,750 --> 00:59:07,070 >> AUDIENCE: One? 1231 00:59:07,070 --> 00:59:09,400 Tidak menunggu, ada menunggu, n. 1232 00:59:09,400 --> 00:59:11,420 >> JASON Hirschhorn: N. Selain daftar link. 1233 00:59:11,420 --> 00:59:12,706 Dan apa pertanyaan Anda? 1234 00:59:12,706 --> 00:59:16,440 >> AUDIENCE: Jadi akan Anda menulis o k atau o dari 1 untuk - 1235 00:59:16,440 --> 00:59:18,150 >> JASON Hirschhorn: Oh. 1236 00:59:18,150 --> 00:59:21,830 Saya akan menulis o dari 1, mungkin. 1237 00:59:21,830 --> 00:59:24,160 Ada satu struktur data lainnya yang akan menjadi baik. 1238 00:59:24,160 --> 00:59:25,730 Pohon, pohon pencarian biner. 1239 00:59:25,730 --> 00:59:27,510 Terdekat penyisipan pada pohon pencarian biner? 1240 00:59:27,510 --> 00:59:31,190 1241 00:59:31,190 --> 00:59:33,900 >> AUDIENCE: Login. 1242 00:59:33,900 --> 00:59:39,260 >> JASON Hirschhorn: Jadi, apa yang terburuk kasus dalam pohon pencarian biner? 1243 00:59:39,260 --> 00:59:45,350 Jadi jika kita kebetulan mulai dari 5, dan setiap jumlah lebih besar dari 5, maka 1244 00:59:45,350 --> 00:59:48,760 kita punya 5, 7, 9, 11, dan sebagainya. 1245 00:59:48,760 --> 00:59:52,255 Dalam hal ini, itu pada dasarnya hanya link daftar, dan kita harus memasukkan semua 1246 00:59:52,255 --> 00:59:52,680 jalan di akhir. 1247 00:59:52,680 --> 00:59:54,350 Jadi O besar n. 1248 00:59:54,350 --> 00:59:57,720 >> Itu bisa menjadi kasus terburuk kami pada pohon pencarian biner. 1249 00:59:57,720 --> 01:00:00,890 Jelas, Anda tidak akan pernah membangun pohon pencarian biner dengan 5 dalam 1250 01:00:00,890 --> 01:00:04,270 tengah, mengetahui 5 akan menjadi angka terendah. 1251 01:00:04,270 --> 01:00:08,030 Tapi bisa, jika Anda mulai dari awal. 1252 01:00:08,030 --> 01:00:10,980 Setiap pertanyaan ini sebelum saya beralih ke pertanyaan lain? 1253 01:00:10,980 --> 01:00:11,560 Itu pertanyaan yang bagus. 1254 01:00:11,560 --> 01:00:15,100 Aku akan tahu O besar - 1255 01:00:15,100 --> 01:00:18,620 >> AUDIENCE: Bagaimana mencari untuk keempat? 1256 01:00:18,620 --> 01:00:20,400 >> JASON Hirschhorn: Jelas kita melakukan pencarian dan penyortiran. 1257 01:00:20,400 --> 01:00:22,160 Kami melakukan semua algoritma tersebut, benar. 1258 01:00:22,160 --> 01:00:23,390 Tunggu, adalah bahwa untuk Kuis 1? 1259 01:00:23,390 --> 01:00:23,980 Apakah yang menutupi - 1260 01:00:23,980 --> 01:00:25,860 apakah Anda sudah memiliki pertanyaan di Quiz 1? 1261 01:00:25,860 --> 01:00:29,650 The big O runtime pencarian biner, insertion sort, bubble sort? 1262 01:00:29,650 --> 01:00:30,160 >> AUDIENCE: Ya. 1263 01:00:30,160 --> 01:00:32,790 >> JASON Hirschhorn: Jika Anda punya pertanyaan pada Quiz 0, kemungkinan besar Anda tidak akan 1264 01:00:32,790 --> 01:00:35,180 mendapatkan pertanyaan yang sama persis pada Quiz 1. 1265 01:00:35,180 --> 01:00:36,300 Mungkin masih baik untuk mengetahui mereka. 1266 01:00:36,300 --> 01:00:38,520 Mudah-mudahan Anda harus tahu gh sudah. 1267 01:00:38,520 --> 01:00:40,740 >> Tapi runtimes logaritmik lainnya mungkin baik untuk mengetahui. 1268 01:00:40,740 --> 01:00:42,890 Hal-hal yang tidak tercakup pada Quiz 0. 1269 01:00:42,890 --> 01:00:47,300 Seperti semua operator ini pada ini tipe data abstrak. 1270 01:00:47,300 --> 01:00:50,760 >> OK, mari kita lanjutkan. 1271 01:00:50,760 --> 01:00:52,190 Yang satu ini harus cukup cepat. 1272 01:00:52,190 --> 01:00:56,170 Dan ini adalah bahasa baru yang kita belum benar-benar dikodekan dalam sebelumnya. 1273 01:00:56,170 --> 01:00:59,300 Ini adalah pertanyaan yang diminta untuk kode dalam PHP. 1274 01:00:59,300 --> 01:01:01,950 Jadi pertimbangkan array PHP di bawah ini. 1275 01:01:01,950 --> 01:01:06,150 Menulis PHP dan / atau kode HTML sedemikian rupa sehingga output tabel dua kolom dengan TF 1276 01:01:06,150 --> 01:01:08,810 nama dan rumah-rumah. 1277 01:01:08,810 --> 01:01:11,600 >> Anda belum pernah melakukan ini sebelumnya, masalah khusus ini. 1278 01:01:11,600 --> 01:01:16,270 Tapi ini harus sangat akrab bagi apa yang Anda lakukan dalam masalah set 7. 1279 01:01:16,270 --> 01:01:21,250 Jadi aku akan berani bertaruh Anda akan diminta untuk kode sesuatu di PHP yang 1280 01:01:21,250 --> 01:01:23,880 sangat mirip dengan apa yang Anda lakukan dalam masalah set 7. 1281 01:01:23,880 --> 01:01:26,300 >> Pertama, array tidak spesifik. 1282 01:01:26,300 --> 01:01:28,140 Jenis array apa ini? 1283 01:01:28,140 --> 01:01:29,080 >> AUDIENCE: asosiatif. 1284 01:01:29,080 --> 01:01:31,250 >> JASON Hirschhorn: Ini array asosiatif. 1285 01:01:31,250 --> 01:01:33,750 Dan apa perbedaan antara array asosiatif dan obyek? 1286 01:01:33,750 --> 01:01:41,780 1287 01:01:41,780 --> 01:01:44,857 >> AUDIENCE: Sebuah objek array memiliki indeks bilangan bulat, dan array asosiatif 1288 01:01:44,857 --> 01:01:47,814 merupakan indeks dari string, atau sesuatu seperti itu. 1289 01:01:47,814 --> 01:01:50,570 1290 01:01:50,570 --> 01:01:54,880 >> JASON Hirschhorn: Jadi array benda akan memiliki indeks 1291 01:01:54,880 --> 01:01:57,090 bilangan bulat, tapi sebuah objek memiliki bidang. 1292 01:01:57,090 --> 01:02:01,590 Ini memiliki nama-nama bidang-bidang seperti nama, rumah, mahasiswa. 1293 01:02:01,590 --> 01:02:03,720 Apakah Anda punya ide? 1294 01:02:03,720 --> 01:02:06,630 >> AUDIENCE: Nah, asosiatif array di PHP, kan? 1295 01:02:06,630 --> 01:02:07,880 Dan benda di JavaScript? 1296 01:02:07,880 --> 01:02:12,330 1297 01:02:12,330 --> 01:02:14,820 >> JASON Hirschhorn: Jujur, tidak ada perbedaan nyata antara keduanya. 1298 01:02:14,820 --> 01:02:19,540 Keduanya memiliki string sebagai kunci, dan dapat pada dasarnya apa-apa sebagai nilai. 1299 01:02:19,540 --> 01:02:21,250 Bahasa yang berbeda memanggil salah satu Hal array asosiatif, 1300 01:02:21,250 --> 01:02:22,750 satu hal obyek. 1301 01:02:22,750 --> 01:02:25,960 Jadi jujur, tidak ada yang nyata perbedaan, tapi tentu ada beberapa 1302 01:02:25,960 --> 01:02:27,730 perbedaan sintaksis antara keduanya. 1303 01:02:27,730 --> 01:02:28,200 Ya. 1304 01:02:28,200 --> 01:02:33,580 >> AUDIENCE: Jadi, apakah objek juga kode di bawah kap sebagai tabel hash, kemudian? 1305 01:02:33,580 --> 01:02:35,796 >> JASON Hirschhorn: Apa yang Anda Maksudku, kode di bawah tenda? 1306 01:02:35,796 --> 01:02:38,017 >> AUDIENCE: Kami diberitahu bahwa asosiatif Array secara teknis 1307 01:02:38,017 --> 01:02:39,960 hash table. 1308 01:02:39,960 --> 01:02:44,510 Begitu juga objek juga teknis tabel hash? 1309 01:02:44,510 --> 01:02:45,350 >> JASON Hirschhorn: Aku tidak akan untuk menjawab pertanyaan itu. 1310 01:02:45,350 --> 01:02:46,600 Aku akan kembali kepada Anda pada itu. 1311 01:02:46,600 --> 01:02:48,980 Tapi aku tidak akan berpikir baik dari orang-orang seperti itu. 1312 01:02:48,980 --> 01:02:53,790 Tapi, dengan cara apapun, array asosiatif dan objek, umumnya, orang menggunakan mereka 1313 01:02:53,790 --> 01:02:54,910 istilah secara bergantian. 1314 01:02:54,910 --> 01:02:57,630 Dalam hal ini, bagian dingin adalah Anda dapat menggunakan tombol. 1315 01:02:57,630 --> 01:03:00,580 String sebagai kunci, bukan hanya angka sederhana. 1316 01:03:00,580 --> 01:03:02,070 >> Jadi saya telah berbicara tentang ini untuk sementara. 1317 01:03:02,070 --> 01:03:04,090 Mudah-mudahan, beberapa orang memiliki mendapatkan dimulai pada ini. 1318 01:03:04,090 --> 01:03:08,050 Kita akan menulis beberapa PHP dan HTML kode, sehingga kita mendapatkan dua kolom 1319 01:03:08,050 --> 01:03:11,830 meja dengan TF nama dan rumah-rumah. 1320 01:03:11,830 --> 01:03:15,380 >> OK, saya juga ingin header baris di atas meja ini. 1321 01:03:15,380 --> 01:03:18,410 Jadi aku akan mendapatkan langsung ke dalam ini. 1322 01:03:18,410 --> 01:03:20,770 Kita akan mengajukan, baru, dan kita akan - 1323 01:03:20,770 --> 01:03:27,780 1324 01:03:27,780 --> 01:03:28,320 >> OK. 1325 01:03:28,320 --> 01:03:29,970 Bagaimana cara memulai sebuah tabel? 1326 01:03:29,970 --> 01:03:32,090 Apa tag, Michael, untuk memulai sebuah tabel? 1327 01:03:32,090 --> 01:03:32,890 >> AUDIENCE: Tabel. 1328 01:03:32,890 --> 01:03:34,020 >> JASON Hirschhorn: Tabel. 1329 01:03:34,020 --> 01:03:37,870 Dan jika saya membuka tag, apa lagi yang saya butuhkan? 1330 01:03:37,870 --> 01:03:39,810 >> AUDIENCE: Sebuah kepala? 1331 01:03:39,810 --> 01:03:41,040 Atau, saya kira, kelas. 1332 01:03:41,040 --> 01:03:41,730 >> JASON Hirschhorn: Jadi, maaf. 1333 01:03:41,730 --> 01:03:45,430 Asumsikan bahwa kita sudah menulis doctab, HTML, semua hal itu. 1334 01:03:45,430 --> 01:03:50,230 Tapi kalau aku membuka tag tabel ini, apa lagi yang saya harus menulis? 1335 01:03:50,230 --> 01:03:53,450 untuk memvalidasi HTML? 1336 01:03:53,450 --> 01:03:55,000 >> AUDIENCE: Tutup itu. 1337 01:03:55,000 --> 01:03:56,050 >> JASON Hirschhorn: Tutup tag. 1338 01:03:56,050 --> 01:03:57,575 Bagaimana cara menulis tag close-table? 1339 01:03:57,575 --> 01:03:59,580 >> AUDIENCE: Dot slash meja. 1340 01:03:59,580 --> 01:04:00,960 >> JASON Hirschhorn: Slash meja, besar. 1341 01:04:00,960 --> 01:04:02,730 Mungkin masuk akal untuk menulis baik dari mereka bersama-sama karena 1342 01:04:02,730 --> 01:04:03,870 Anda harus melakukannya. 1343 01:04:03,870 --> 01:04:08,575 OK, jika saya ingin baris header, bagaimana Saya menulis baris header dengan judul? 1344 01:04:08,575 --> 01:04:11,650 1345 01:04:11,650 --> 01:04:19,290 >> AUDIENCE: Apakah kurang dari 10 jam dekat - 1346 01:04:19,290 --> 01:04:21,550 TR, yeah. 1347 01:04:21,550 --> 01:04:22,100 >> JASON Hirschhorn: TR? 1348 01:04:22,100 --> 01:04:25,080 >> AUDIENCE: Kemudian hal yang sama, slash, yeah. 1349 01:04:25,080 --> 01:04:26,610 >> JASON Hirschhorn: OK, dan memberi saya dua kolom. 1350 01:04:26,610 --> 01:04:30,100 1351 01:04:30,100 --> 01:04:33,210 >> AUDIENCE: T D? 1352 01:04:33,210 --> 01:04:34,460 >> JASON Hirschhorn: OK. 1353 01:04:34,460 --> 01:04:37,730 1354 01:04:37,730 --> 01:04:39,520 Saya ingin dua kolom. 1355 01:04:39,520 --> 01:04:40,960 Apakah ini memberi saya dua kolom? 1356 01:04:40,960 --> 01:04:43,880 Berapa banyak kolom ini? 1357 01:04:43,880 --> 01:04:45,920 One. 1358 01:04:45,920 --> 01:04:47,170 Jadi mari kita copy dan paste. 1359 01:04:47,170 --> 01:04:59,750 1360 01:04:59,750 --> 01:05:03,390 >> Jadi sebenarnya, pada kuis, semua kode ini bahwa kita telah menulis sejauh ini 1361 01:05:03,390 --> 01:05:04,710 benar-benar diberikan kepada Anda. 1362 01:05:04,710 --> 01:05:06,200 Tapi Anda harus mungkin masih tahu bagaimana menulis itu. 1363 01:05:06,200 --> 01:05:06,470 Ya. 1364 01:05:06,470 --> 01:05:10,636 >> AUDIENCE: Rumah Anda adalah antara dua. 1365 01:05:10,636 --> 01:05:11,130 >> JASON Hirschhorn: Boom. 1366 01:05:11,130 --> 01:05:12,720 Ia harus pergi di sana, kan? 1367 01:05:12,720 --> 01:05:14,600 Baik panggilan. 1368 01:05:14,600 --> 01:05:17,760 Jadi sekali lagi, semua kode ini sebenarnya diberikan kepada Anda di kuis yang sebenarnya. 1369 01:05:17,760 --> 01:05:19,570 Tapi itu menyenangkan untuk menulis, dan Anda harus tahu bagaimana menulis itu. 1370 01:05:19,570 --> 01:05:23,640 Jadi ini adalah di mana Anda perlu untuk memulai kode Anda. 1371 01:05:23,640 --> 01:05:25,150 Apa yang kita perlu menulis di sini? 1372 01:05:25,150 --> 01:05:28,640 1373 01:05:28,640 --> 01:05:30,565 >> Maaf, saya harus berubah nama file ini. 1374 01:05:30,565 --> 01:05:41,180 1375 01:05:41,180 --> 01:05:44,270 Jadi kami menyimpannya dalam sebuah file HTML., tidak dalam sebuah file PHP.. 1376 01:05:44,270 --> 01:05:47,030 Hal-hal ini akan berarti apa-apa dalam sebuah file PHP.. 1377 01:05:47,030 --> 01:05:48,500 Jadi kita dalam sebuah file HTML.. 1378 01:05:48,500 --> 01:05:50,090 Apa hal pertama Saya harus menulis? 1379 01:05:50,090 --> 01:05:52,990 Saya ingin menaruh beberapa PHP kode dalam HTML. 1380 01:05:52,990 --> 01:05:57,300 >> AUDIENCE: PHP, seperti wortel lain dan tanda tanya PHP, kan? 1381 01:05:57,300 --> 01:05:58,310 >> JASON Hirschhorn: Great. 1382 01:05:58,310 --> 01:05:59,360 Dan bagaimana saya mengakhiri itu? 1383 01:05:59,360 --> 01:06:02,510 >> AUDIENCE: Dengan tanda tanya. 1384 01:06:02,510 --> 01:06:03,120 >> JASON Hirschhorn: Itu bagus. 1385 01:06:03,120 --> 01:06:07,090 Itulah hal pertama yang saya butuhkan jika saya ingin untuk menempatkan beberapa kode PHP di sini. 1386 01:06:07,090 --> 01:06:11,210 >> AUDIENCE: saya pikir PHP. File bisa mengambil HTML. 1387 01:06:11,210 --> 01:06:12,290 >> JASON Hirschhorn: Ya. 1388 01:06:12,290 --> 01:06:15,330 Sebuah file PHP. Dapat mengambil beberapa HTML dan ditampilkan. 1389 01:06:15,330 --> 01:06:16,450 Itu buruk saya. 1390 01:06:16,450 --> 01:06:18,300 Aku hanya mencoba untuk meniru apa itu pada kuis. 1391 01:06:18,300 --> 01:06:21,910 1392 01:06:21,910 --> 01:06:24,720 >> OK, maaf untuk membingungkan Anda. 1393 01:06:24,720 --> 01:06:25,550 Ya, practice.HTML. 1394 01:06:25,550 --> 01:06:27,340 Sekarang kita akan menempatkan beberapa kode PHP masuk 1395 01:06:27,340 --> 01:06:30,530 Apa baris pertama Kode PHP saya harus menulis? 1396 01:06:30,530 --> 01:06:33,360 Aku akan pergi melalui array ini dan membuatnya menjadi meja. 1397 01:06:33,360 --> 01:06:34,600 Ya. 1398 01:06:34,600 --> 01:06:37,160 >> AUDIENCE: Anda bisa menggunakan untuk H lingkaran atau untuk loop. 1399 01:06:37,160 --> 01:06:38,415 >> JASON Hirschhorn: OK, apa yang Anda inginkan untuk digunakan? 1400 01:06:38,415 --> 01:06:40,720 >> AUDIENCE: Saya akan menggunakan untuk loop. 1401 01:06:40,720 --> 01:06:48,700 Untuk, dan kemudian Anda melakukan tanda dolar i sama dengan 0 koma dollar 1402 01:06:48,700 --> 01:06:51,580 menandatangani i kurang dari 2. 1403 01:06:51,580 --> 01:06:55,455 Dan kemudian koma i dollar menandatangani i plus plus. 1404 01:06:55,455 --> 01:07:01,890 1405 01:07:01,890 --> 01:07:03,880 >> JASON Hirschhorn: Bagaimana Anda tahu untuk menggunakan 2? 1406 01:07:03,880 --> 01:07:10,444 >> AUDIENCE: Karena ada dua array asosiatif dalam lebih besar 1407 01:07:10,444 --> 01:07:11,960 array asosiatif. 1408 01:07:11,960 --> 01:07:13,610 >> JASON Hirschhorn: Jadi hal besar itu bukan array asosiasi. 1409 01:07:13,610 --> 01:07:15,500 Hal besar hanya array normal. 1410 01:07:15,500 --> 01:07:17,380 Tapi kau benar, ada dua array asosiatif 1411 01:07:17,380 --> 01:07:18,910 dalam array kita lebih besar. 1412 01:07:18,910 --> 01:07:20,310 Itulah mengapa Anda menggunakan dua. 1413 01:07:20,310 --> 01:07:24,270 Saya merasa tidak nyaman dengan asumsi bahwa mereka 2, jadi apa cara untuk menulis 1414 01:07:24,270 --> 01:07:26,810 ini tanpa asumsi bahwa mereka 2? 1415 01:07:26,810 --> 01:07:27,507 >> AUDIENCE: [Tak terdengar]? 1416 01:07:27,507 --> 01:07:29,165 >> JASON Hirschhorn: OK, bagaimana Anda menulis itu? 1417 01:07:29,165 --> 01:07:35,262 >> AUDIENCE: tanda dolar Foreach tfs atau seperti dollar tanda tf. 1418 01:07:35,262 --> 01:07:38,360 1419 01:07:38,360 --> 01:07:41,960 >> JASON Hirschhorn: OK, jadi untuk masing-masing tfs sebagai tfs, saya ingin, sekarang 1420 01:07:41,960 --> 01:07:43,650 lagi, memiliki meja saya. 1421 01:07:43,650 --> 01:07:45,250 Jadi, siapa yang bisa memberi saya baris berikutnya kode? 1422 01:07:45,250 --> 01:07:52,870 1423 01:07:52,870 --> 01:07:59,810 >> AUDIENCE: Print, dan kemudian di kutipan, braket tr akhir 1424 01:07:59,810 --> 01:08:02,670 braket, akhir kutipan. 1425 01:08:02,670 --> 01:08:05,300 Kurung End, titik koma. 1426 01:08:05,300 --> 01:08:07,135 >> JASON Hirschhorn: OK, dan apa yang akan dilakukan? 1427 01:08:07,135 --> 01:08:08,610 >> AUDIENCE: Ini akan mengatakan, baris baru. 1428 01:08:08,610 --> 01:08:11,070 Ini akan menempatkan tag untuk baris baru. 1429 01:08:11,070 --> 01:08:13,000 >> JASON Hirschhorn: Benar, PHP ini, seperti kita bicarakan sebelumnya - ini 1430 01:08:13,000 --> 01:08:22,160 PHP akan dievaluasi, dan kemudian itu akan mencetak ke file ini 1431 01:08:22,160 --> 01:08:26,350 meja belakangnya, dan kemudian yang HTML akan dievaluasi. 1432 01:08:26,350 --> 01:08:27,810 Kami hanya menyalin ini HTML kami punya di sini. 1433 01:08:27,810 --> 01:08:28,120 Ya. 1434 01:08:28,120 --> 01:08:29,470 >> AUDIENCE: [Tak terdengar]? 1435 01:08:29,470 --> 01:08:30,290 >> JASON Hirschhorn: Maaf? 1436 01:08:30,290 --> 01:08:31,240 Ada di sini. 1437 01:08:31,240 --> 01:08:33,590 Jatuh 2012. 1438 01:08:33,590 --> 01:08:35,970 Jangan melihat jawaban, mari kita bersama-sama mengatasinya. 1439 01:08:35,970 --> 01:08:37,330 Jadi kita mencetak baris tabel. 1440 01:08:37,330 --> 01:08:38,550 Jadi Anda mungkin dalam ayunan hal. 1441 01:08:38,550 --> 01:08:41,060 Apa baris berikutnya kode kita perlu menulis? 1442 01:08:41,060 --> 01:08:42,926 Assam, beri saya baris berikutnya kode. 1443 01:08:42,926 --> 01:08:46,290 >> AUDIENCE: Anda perlu nama tf itu. 1444 01:08:46,290 --> 01:08:54,319 Tf terbuka kurung tanda kutip nama kurung tertutup. 1445 01:08:54,319 --> 01:08:57,310 >> JASON Hirschhorn: Beri aku nama mereka. 1446 01:08:57,310 --> 01:08:58,540 >> AUDIENCE: Anda perlu untuk mencetak itu. 1447 01:08:58,540 --> 01:08:59,790 >> [Interposing SUARA] 1448 01:08:59,790 --> 01:09:01,963 1449 01:09:01,963 --> 01:09:03,430 >> JASON Hirschhorn: OK, bagaimana cara mencetaknya? 1450 01:09:03,430 --> 01:09:04,680 >> [Interposing SUARA] 1451 01:09:04,680 --> 01:09:08,609 1452 01:09:08,609 --> 01:09:10,350 >> JASON Hirschhorn: saya hilang sesuatu sekarang. 1453 01:09:10,350 --> 01:09:12,470 Apa yang saya hilang? 1454 01:09:12,470 --> 01:09:13,720 >> AUDIENCE: Anda membutuhkan tanda dolar. 1455 01:09:13,720 --> 01:09:15,960 1456 01:09:15,960 --> 01:09:17,210 >> JASON Hirschhorn: Apa lain saya hilang? 1457 01:09:17,210 --> 01:09:20,100 1458 01:09:20,100 --> 01:09:21,650 Semua kita telah dicetak sejauh ini adalah tr tersebut. 1459 01:09:21,650 --> 01:09:25,589 1460 01:09:25,589 --> 01:09:27,470 >> AUDIENCE: Tutup tr setelah itu. 1461 01:09:27,470 --> 01:09:28,720 >> JASON Hirschhorn: Jadi kita perlu untuk menutup tr setelah. 1462 01:09:28,720 --> 01:09:34,390 1463 01:09:34,390 --> 01:09:37,906 Siapakah yang melihat apa yang kita hilang on line 16? 1464 01:09:37,906 --> 01:09:39,340 Ya, Anna. 1465 01:09:39,340 --> 01:09:47,050 >> AUDIENCE: Anda perlu membuka a td dan kurung kurawal. 1466 01:09:47,050 --> 01:09:49,380 >> JASON Hirschhorn: Dan di mana kita menempatkan kurung kurawal? 1467 01:09:49,380 --> 01:09:51,790 >> AUDIENCE: Sekitar nama tf. 1468 01:09:51,790 --> 01:09:53,080 >> JASON Hirschhorn: Seperti ini? 1469 01:09:53,080 --> 01:09:55,420 >> AUDIENCE: Ya. 1470 01:09:55,420 --> 01:09:59,000 Dan kemudian tutup td. 1471 01:09:59,000 --> 01:10:00,250 >> JASON Hirschhorn: Seperti itu? 1472 01:10:00,250 --> 01:10:03,370 1473 01:10:03,370 --> 01:10:06,950 >> AUDIENCE: Apakah Anda perlu kutip ganda tanda di sebelah kurung kurawal? 1474 01:10:06,950 --> 01:10:07,460 >> JASON Hirschhorn: Di sini? 1475 01:10:07,460 --> 01:10:08,710 Tidak, Anda tidak. 1476 01:10:08,710 --> 01:10:10,820 1477 01:10:10,820 --> 01:10:12,550 Jadi itulah yang benar. 1478 01:10:12,550 --> 01:10:12,940 Ya. 1479 01:10:12,940 --> 01:10:15,290 >> AUDIENCE: Jadi perbedaan antara yang dan encatenating dengan titik-titik ini, jika 1480 01:10:15,290 --> 01:10:18,420 Anda menggunakan titik, Anda harus memiliki tanda kutip ganda, maka titik, 1481 01:10:18,420 --> 01:10:20,370 maka titik - 1482 01:10:20,370 --> 01:10:20,520 >> JASON Hirschhorn: Benar. 1483 01:10:20,520 --> 01:10:23,800 Jadi kau mengatakan ada sebuah akhir cara menulis ini seperti itu. 1484 01:10:23,800 --> 01:10:26,760 1485 01:10:26,760 --> 01:10:28,966 Apa operator Rangkaian di JavaScript? 1486 01:10:28,966 --> 01:10:31,200 >> AUDIENCE: Sebuah tanda plus. 1487 01:10:31,200 --> 01:10:34,710 Anda lupa untuk menempatkan keriting penjepit kembali. 1488 01:10:34,710 --> 01:10:35,760 >> JASON Hirschhorn: Great. 1489 01:10:35,760 --> 01:10:38,850 Dan ada satu garis yang lebih kode yang hilang. 1490 01:10:38,850 --> 01:10:40,130 Siapa yang bisa memberi saya baris terakhir kode kita hilang? 1491 01:10:40,130 --> 01:10:43,940 1492 01:10:43,940 --> 01:10:47,602 >> AUDIENCE: Hanya hal yang sama persis, hanya dengan rumah bukan nama. 1493 01:10:47,602 --> 01:10:52,960 1494 01:10:52,960 --> 01:10:53,450 Besar 1495 01:10:53,450 --> 01:10:54,390 >> JASON Hirschhorn: Great. 1496 01:10:54,390 --> 01:10:59,320 Dan sintaks Anda tepat untuk mendapatkan hal-hal dalam array asosiasi. 1497 01:10:59,320 --> 01:11:04,450 Jadi dalam kuis yang sebenarnya, Anda benar-benar menyerah sampai di sini. 1498 01:11:04,450 --> 01:11:05,710 Jadi kode ini diberikan kepada Anda. 1499 01:11:05,710 --> 01:11:07,750 Yang Anda harus menulis yang ini empat baris dan ingat untuk 1500 01:11:07,750 --> 01:11:09,190 menutup tag table. 1501 01:11:09,190 --> 01:11:11,370 Kalian benar-benar melakukan semua itu dan lebih. 1502 01:11:11,370 --> 01:11:11,810 Ya. 1503 01:11:11,810 --> 01:11:14,850 >> AUDIENCE: Jadi akan fungsional sama jika Anda hanya memiliki bahwa semua di 1504 01:11:14,850 --> 01:11:17,250 satu panggilan cetak besar, kan? 1505 01:11:17,250 --> 01:11:19,630 Dan kemudian hanya concatenated pada, dan sebagainya? 1506 01:11:19,630 --> 01:11:20,730 >> JASON Hirschhorn: Seperti itu? 1507 01:11:20,730 --> 01:11:21,980 >> AUDIENCE: Ya. 1508 01:11:21,980 --> 01:11:23,810 1509 01:11:23,810 --> 01:11:26,940 Ini tidak akan terlihat baik jika Anda melihat itu ketika Anda memeriksa 1510 01:11:26,940 --> 01:11:28,550 elemen pada website Anda, kan? 1511 01:11:28,550 --> 01:11:29,800 >> JASON Hirschhorn: Saya setuju. 1512 01:11:29,800 --> 01:11:35,410 1513 01:11:35,410 --> 01:11:38,710 Jika saya dimuat halaman web ini, akan saya dapat melihat kode PHP ini, pernah? 1514 01:11:38,710 --> 01:11:39,240 >> AUDIENCE: No 1515 01:11:39,240 --> 01:11:40,080 >> JASON Hirschhorn: No 1516 01:11:40,080 --> 01:11:42,240 Dan sebenarnya, aku tidak akan. 1517 01:11:42,240 --> 01:11:43,920 >> AUDIENCE: Ini bukan HTML, kan? 1518 01:11:43,920 --> 01:11:45,000 Jadi, Anda mungkin bisa - 1519 01:11:45,000 --> 01:11:46,780 >> JASON Hirschhorn: Jadi PHP ini akan dievaluasi sisi server. 1520 01:11:46,780 --> 01:11:51,020 PHP selalu dievaluasi sisi server, sehingga Anda tidak pernah bisa melihat kode PHP. 1521 01:11:51,020 --> 01:11:52,980 >> AUDIENCE: Tapi kau akan bisa melihat hasil cetakan. 1522 01:11:52,980 --> 01:11:53,480 >> JASON Hirschhorn: Benar. 1523 01:11:53,480 --> 01:11:55,510 Dan itu benar-benar tidak mungkin menempatkan semuanya di telepon. 1524 01:11:55,510 --> 01:11:59,740 Mungkin format itu baik untuk Anda, atau mungkin meletakkannya di satu baris. 1525 01:11:59,740 --> 01:12:01,521 Jelas. 1526 01:12:01,521 --> 01:12:03,596 Tapi ya, bagus. 1527 01:12:03,596 --> 01:12:06,470 >> AUDIENCE: Bagaimana bisa ada yang tidak ada penyorotan teks untuk 1528 01:12:06,470 --> 01:12:07,550 semua perintah PHP? 1529 01:12:07,550 --> 01:12:09,370 Karena saya ingat melihat itu. 1530 01:12:09,370 --> 01:12:11,620 >> JASON Hirschhorn: Karena itu . HTML mengajukan di sini di bagian atas. 1531 01:12:11,620 --> 01:12:20,390 1532 01:12:20,390 --> 01:12:21,650 Di sana Anda pergi. 1533 01:12:21,650 --> 01:12:25,752 1534 01:12:25,752 --> 01:12:28,800 >> AUDIENCE: Jika kita melakukan metode awal dengan untuk loop, benar, jika kita 1535 01:12:28,800 --> 01:12:33,500 ingin mengakses TFS itu, bukan kita melakukan tfs braket braket 0, maka 1536 01:12:33,500 --> 01:12:35,180 [Tak terdengar]? 1537 01:12:35,180 --> 01:12:35,970 >> JASON Hirschhorn: Anda akan - 1538 01:12:35,970 --> 01:12:40,560 sehingga Anda katakan untuk untuk loop, Anda akan dilakukan di dollar tanda tfs bracket 1 1539 01:12:40,560 --> 01:12:41,850 atau i, benar. 1540 01:12:41,850 --> 01:12:46,780 Atau tanda dolar i menutup braket dan kemudian braket persegi 1541 01:12:46,780 --> 01:12:49,600 tanda kutip ganda, ya. 1542 01:12:49,600 --> 01:12:50,640 >> OK, baik. 1543 01:12:50,640 --> 01:12:53,020 Kami memiliki satu lagi satu cepat. 1544 01:12:53,020 --> 01:12:55,090 Tujuh menit, jadi saya ingin untuk pergi ke satu ini. 1545 01:12:55,090 --> 01:12:56,160 Ini adalah contoh lain. 1546 01:12:56,160 --> 01:12:58,740 Kita sekarang bahasa yang sama sekali lain. 1547 01:12:58,740 --> 01:12:59,990 >> Kami memiliki beberapa kode HTML. 1548 01:12:59,990 --> 01:13:02,480 1549 01:13:02,480 --> 01:13:07,460 Ini semacam kecil di layar, tapi Aku ingin kau melihat melalui itu benar-benar 1550 01:13:07,460 --> 01:13:11,140 cepat, dan seseorang dapat memberitahu saya, jika saya harus memuat halaman web ini, 1551 01:13:11,140 --> 01:13:12,390 apa yang akan saya lihat? 1552 01:13:12,390 --> 01:13:22,710 1553 01:13:22,710 --> 01:13:26,450 Jelaskan segala sesuatu tentang halaman web ini. 1554 01:13:26,450 --> 01:13:28,630 Noah? 1555 01:13:28,630 --> 01:13:30,450 Apa yang akan saya lihat? 1556 01:13:30,450 --> 01:13:38,140 >> AUDIENCE: Kode di ujung depan Google dengan merasakan teks dan 1557 01:13:38,140 --> 01:13:39,190 tombol submit. 1558 01:13:39,190 --> 01:13:41,180 >> JASON Hirschhorn: Dan apa akan tombol katakan? 1559 01:13:41,180 --> 01:13:42,430 >> AUDIENCE: Kirim. 1560 01:13:42,430 --> 01:13:44,620 1561 01:13:44,620 --> 01:13:45,160 Oh, cari. 1562 01:13:45,160 --> 01:13:45,840 Maafkan aku. 1563 01:13:45,840 --> 01:13:46,830 >> JASON Hirschhorn: Ini akan mengatakan pencarian. 1564 01:13:46,830 --> 01:13:47,520 Ingat, nama. 1565 01:13:47,520 --> 01:13:50,550 Apa yang digunakan untuk nama? 1566 01:13:50,550 --> 01:13:53,774 Nama atribut ini, apa yang digunakan untuk? 1567 01:13:53,774 --> 01:13:55,470 >> [Interposing SUARA] 1568 01:13:55,470 --> 01:13:59,300 >> AUDIENCE: Itu namanya ketika itu diklik? 1569 01:13:59,300 --> 01:14:00,160 >> JASON Hirschhorn: Itu bisa menjadi. 1570 01:14:00,160 --> 01:14:02,690 Tapi apa yang kita umumnya melihat - mengapa kita memberikan nama antrian ini? 1571 01:14:02,690 --> 01:14:03,830 Mengapa kita melihat itu? 1572 01:14:03,830 --> 01:14:05,220 Ya. 1573 01:14:05,220 --> 01:14:08,600 >> AUDIENCE: Bukankah itu menjadi indeks variabel global super? 1574 01:14:08,600 --> 01:14:12,740 >> JASON Hirschhorn: Ya, biasanya ketika formulir ini akan menyerahkan, dan kemudian di mana 1575 01:14:12,740 --> 01:14:13,500 akan ini tunduk? 1576 01:14:13,500 --> 01:14:14,750 Apa halaman? 1577 01:14:14,750 --> 01:14:16,820 1578 01:14:16,820 --> 01:14:18,460 Noah, apa halaman akan ini tunduk? 1579 01:14:18,460 --> 01:14:25,710 1580 01:14:25,710 --> 01:14:27,700 >> AUDIENCE: Saya tidak yakin. 1581 01:14:27,700 --> 01:14:28,920 >> JASON Hirschhorn: Dimana bisa kita dapat menemukannya? 1582 01:14:28,920 --> 01:14:31,025 Di mana Anda menemukan apa yang Halaman itu tunduk kepada? 1583 01:14:31,025 --> 01:14:32,850 Apa baris kode? 1584 01:14:32,850 --> 01:14:34,040 >> AUDIENCE: Form tindakan. 1585 01:14:34,040 --> 01:14:34,650 >> JASON Hirschhorn: Tepat. 1586 01:14:34,650 --> 01:14:35,130 Aksi. 1587 01:14:35,130 --> 01:14:37,100 Jadi itu menyerahkan ke halaman pencarian. 1588 01:14:37,100 --> 01:14:38,630 Pencarian backslash. 1589 01:14:38,630 --> 01:14:40,140 Jadi itulah yang benar. 1590 01:14:40,140 --> 01:14:40,680 Metode apa? 1591 01:14:40,680 --> 01:14:42,090 >> AUDIENCE: Dapatkan. 1592 01:14:42,090 --> 01:14:42,490 >> JASON Hirschhorn: Dapatkan. 1593 01:14:42,490 --> 01:14:43,420 Tepat. 1594 01:14:43,420 --> 01:14:44,490 Jadi kita membaca ini. 1595 01:14:44,490 --> 01:14:45,180 Ini akan menjadi formulir. 1596 01:14:45,180 --> 01:14:45,910 Kau tepat. 1597 01:14:45,910 --> 01:14:50,340 Dua hal pada formulir, judul halaman dan bagian atas akan menjadi Google. 1598 01:14:50,340 --> 01:14:54,270 >> Jadi di sini adalah dua pertanyaan yang harus bisa menjawab tentang halaman ini. 1599 01:14:54,270 --> 01:15:01,760 Jika HTML ini hidup di website ini dan pengguna input bug ke dalam teks ini 1600 01:15:01,760 --> 01:15:06,900 lapangan di sini, apa URL akan pengguna menemukan dirinya pada 1601 01:15:06,900 --> 01:15:08,150 mengirimkan formulir? 1602 01:15:08,150 --> 01:15:10,980 1603 01:15:10,980 --> 01:15:12,510 >> Jadi kita memiliki ini di sini. 1604 01:15:12,510 --> 01:15:13,720 Aku akan kembali ke Halaman ini, meskipun. 1605 01:15:13,720 --> 01:15:16,980 Aku akan menulis bagian pertama ini. 1606 01:15:16,980 --> 01:15:18,230 Dapatkah orang melihat di sini? 1607 01:15:18,230 --> 01:15:30,620 1608 01:15:30,620 --> 01:15:32,906 OK, Mario, Anda pikir Anda tahu? 1609 01:15:32,906 --> 01:15:34,700 Apa halaman? 1610 01:15:34,700 --> 01:15:37,630 >> AUDIENCE: Backslash pencarian. 1611 01:15:37,630 --> 01:15:38,880 >> JASON Hirschhorn: Aku akan untuk pindah ke sini. 1612 01:15:38,880 --> 01:15:44,800 1613 01:15:44,800 --> 01:15:49,155 OK, backslash pertanyaan pencarian mark q sama dengan bug. 1614 01:15:49,155 --> 01:15:53,560 1615 01:15:53,560 --> 01:15:55,165 Ada yang punya saran yang berbeda? 1616 01:15:55,165 --> 01:15:57,910 1617 01:15:57,910 --> 01:15:59,160 Ya. 1618 01:15:59,160 --> 01:16:01,700 1619 01:16:01,700 --> 01:16:03,740 >> Jadi bagaimana kita mendapatkan ini? 1620 01:16:03,740 --> 01:16:05,520 Nah, kami telah melihat ini sebelumnya. 1621 01:16:05,520 --> 01:16:07,170 Dan Anda datang dengan ini sebelumnya. 1622 01:16:07,170 --> 01:16:08,870 Kau benar, Nuh, bahwa tindakan memberitahu kita apa 1623 01:16:08,870 --> 01:16:11,700 Halaman kita akan. 1624 01:16:11,700 --> 01:16:12,820 >> Kita juga tahu metode apa. 1625 01:16:12,820 --> 01:16:13,420 Kami melakukan get. 1626 01:16:13,420 --> 01:16:17,040 Dan perbedaan antara get dan post adalah bahwa mendapatkan menampilkan di URL 1627 01:16:17,040 --> 01:16:18,490 dan pasca tidak. 1628 01:16:18,490 --> 01:16:22,760 Jadi jika saya menulis posting di sana di metode, apa yang akan berbeda? 1629 01:16:22,760 --> 01:16:24,250 >> AUDIENCE: Ini hanya akan menjadi pencarian slash. 1630 01:16:24,250 --> 01:16:25,400 >> JASON Hirschhorn: Ini akan hanya akan memangkas pencarian. 1631 01:16:25,400 --> 01:16:27,400 Tidak ada di sini yang akan terjadi. 1632 01:16:27,400 --> 01:16:30,030 Tapi karena itu adalah mendapatkan, URL ditampilkan sebagai berikut. 1633 01:16:30,030 --> 01:16:35,140 Pertama kita melihat tanda tanya dan kita melihat nama dan nilai. 1634 01:16:35,140 --> 01:16:42,730 Katakanlah ada satu kolom teks lain dan Saya memberi nama r dan saya memasukkan 1635 01:16:42,730 --> 01:16:45,220 nilai, ulat. 1636 01:16:45,220 --> 01:16:48,560 Apa yang akan terlihat seperti ini sekarang? 1637 01:16:48,560 --> 01:16:52,040 Saya telah satu bidang teks lebih, saya memberikan nama dari r dan nilai ulat. 1638 01:16:52,040 --> 01:16:56,990 >> AUDIENCE: Setelah bar Anda akan memiliki ulat ampersand. 1639 01:16:56,990 --> 01:16:58,380 >> JASON Hirschhorn: Itu tidak ampersand. 1640 01:16:58,380 --> 01:17:00,500 >> AUDIENCE: Atau hanya apa pun dan simbol. 1641 01:17:00,500 --> 01:17:01,330 >> JASON Hirschhorn: Ya, ada. 1642 01:17:01,330 --> 01:17:03,700 Kau benar, aku salah. 1643 01:17:03,700 --> 01:17:05,660 Itu seperti g. 1644 01:17:05,660 --> 01:17:06,910 >> AUDIENCE: Caterpillar. 1645 01:17:06,910 --> 01:17:08,840 1646 01:17:08,840 --> 01:17:11,090 r sama dengan ulat, maaf. 1647 01:17:11,090 --> 01:17:13,970 1648 01:17:13,970 --> 01:17:14,700 >> JASON Hirschhorn: Apakah ada ada r di sana? 1649 01:17:14,700 --> 01:17:16,680 >> AUDIENCE: Tidak, tidak ada. 1650 01:17:16,680 --> 01:17:18,030 >> JASON Hirschhorn: Kita akan bicara tentang hal itu setelah kelas. 1651 01:17:18,030 --> 01:17:18,930 Itu tepat sekali. 1652 01:17:18,930 --> 01:17:20,530 Jadi dan benar. 1653 01:17:20,530 --> 01:17:23,430 Dan kemudian Anda bisa memiliki banyak dari ini, dan mereka semua akan digabungkan 1654 01:17:23,430 --> 01:17:24,950 bersama-sama dengan itu dan. 1655 01:17:24,950 --> 01:17:25,900 Jadi itulah yang benar. 1656 01:17:25,900 --> 01:17:27,700 >> Ada satu pertanyaan lagi. 1657 01:17:27,700 --> 01:17:30,676 Sketsa ini HTML DOM, mulai dengan dokumen. 1658 01:17:30,676 --> 01:17:33,330 1659 01:17:33,330 --> 01:17:34,570 Kita bisa melakukannya dalam dua menit. 1660 01:17:34,570 --> 01:17:36,790 Kita akan melakukannya di sini. 1661 01:17:36,790 --> 01:17:38,040 Aku akan kembali ke halaman web ini. 1662 01:17:38,040 --> 01:17:40,630 1663 01:17:40,630 --> 01:17:42,160 OK, kita mulai dengan dokumen. 1664 01:17:42,160 --> 01:17:49,698 1665 01:17:49,698 --> 01:17:52,090 >> Apa selanjutnya? 1666 01:17:52,090 --> 01:17:53,910 Jadi, ketika Anda membaca - 1667 01:17:53,910 --> 01:17:54,540 >> AUDIENCE: HTML. 1668 01:17:54,540 --> 01:17:55,790 >> JASON Hirschhorn: HTML berikutnya. 1669 01:17:55,790 --> 01:17:57,850 Kita akan pergi tag by tag. 1670 01:17:57,850 --> 01:18:00,890 Apa setelah HTML? 1671 01:18:00,890 --> 01:18:01,550 >> AUDIENCE: Head. 1672 01:18:01,550 --> 01:18:02,800 >> JASON Hirschhorn: Head. 1673 01:18:02,800 --> 01:18:05,090 1674 01:18:05,090 --> 01:18:08,520 Apa setelah kepala? 1675 01:18:08,520 --> 01:18:09,770 >> AUDIENCE: Judul. 1676 01:18:09,770 --> 01:18:11,880 1677 01:18:11,880 --> 01:18:12,560 >> JASON Hirschhorn: Judul. 1678 01:18:12,560 --> 01:18:14,740 Dan judul memiliki nilai Google, tapi aku tidak akan 1679 01:18:14,740 --> 01:18:16,240 menulis bahwa dalam untuk saat ini. 1680 01:18:16,240 --> 01:18:18,750 OK, mana tubuh pergi? 1681 01:18:18,750 --> 01:18:20,890 >> AUDIENCE: Juga datang dari HTML. 1682 01:18:20,890 --> 01:18:21,490 >> JASON Hirschhorn: Tepat. 1683 01:18:21,490 --> 01:18:22,820 Tubuh datang dari dari sini. 1684 01:18:22,820 --> 01:18:25,970 1685 01:18:25,970 --> 01:18:30,330 Apakah semua orang melihat mengapa itu yang terjadi? 1686 01:18:30,330 --> 01:18:32,970 Anda mungkin harus mampu mencari out ini, juga, bahkan jika saya tidak memiliki 1687 01:18:32,970 --> 01:18:33,665 lekukan yang bagus ini. 1688 01:18:33,665 --> 01:18:37,680 >> Lekukan semacam memberikan begitu saja, tetapi Anda dapat melihat bahwa tag kepala memiliki 1689 01:18:37,680 --> 01:18:41,240 telah ditutup, yang berarti kita mungkin tidak bisa turun di sini. 1690 01:18:41,240 --> 01:18:43,460 Kita harus pergi kembali ke apa pun adalah tepat sebelum kepala 1691 01:18:43,460 --> 01:18:44,730 tag, atau di bawah itu. 1692 01:18:44,730 --> 01:18:46,720 Kami bahkan dengan tag kepala. 1693 01:18:46,720 --> 01:18:48,560 >> Dan di bawah tubuh berjalan form. 1694 01:18:48,560 --> 01:18:50,300 Berdasarkan bentuk, ada dua input. 1695 01:18:50,300 --> 01:18:53,330 1696 01:18:53,330 --> 01:18:54,420 OK. 1697 01:18:54,420 --> 01:18:55,490 Itu saja yang saya punya. 1698 01:18:55,490 --> 01:18:56,980 Kuis 1 adalah besok. 1699 01:18:56,980 --> 01:18:58,350 Aku sangat bersemangat untuk kalian. 1700 01:18:58,350 --> 01:18:59,690 Ini akan menjadi ledakan. 1701 01:18:59,690 --> 01:19:00,250 >> Jika Anda memiliki - 1702 01:19:00,250 --> 01:19:00,600 >> AUDIENCE: [Tepuk Tangan] 1703 01:19:00,600 --> 01:19:02,460 >> JASON Hirschhorn: Oh hentikan, hentikan. 1704 01:19:02,460 --> 01:19:04,520 Tapi tidak, aku bercanda. 1705 01:19:04,520 --> 01:19:07,220 Jika Anda memiliki pertanyaan, tepat setelah bagian, aku akan berada di luar. 1706 01:19:07,220 --> 01:19:11,700 Jika Anda memiliki pertanyaan malam ini, jangan ragu untuk menghubungi, email, GChat, 1707 01:19:11,700 --> 01:19:12,740 pembawa merpati saya. 1708 01:19:12,740 --> 01:19:13,950 Good luck besok. 1709 01:19:13,950 --> 01:19:16,220 Memiliki Thanksgiving istirahat yang indah, jika saya tidak melihat Anda sebelum itu. 1710 01:19:16,220 --> 01:19:19,320 Dan aku akan melihat Anda setelah Thanksgiving pada hari Selasa untuk final kami 1711 01:19:19,320 --> 01:19:20,295 bagian party ever. 1712 01:19:20,295 --> 01:19:21,545 >> AUDIENCE: [Tak terdengar]. 1713 01:19:21,545 --> 01:19:25,270 1714 01:19:25,270 --> 01:19:25,790 >> JASON Hirschhorn: Great. 1715 01:19:25,790 --> 01:19:28,900 OK, saya akan melihat kalian berikutnya minggu, atau dalam dua minggu. 1716 01:19:28,900 --> 01:19:30,150 Dan semoga sukses besok. 1717 01:19:30,150 --> 01:19:32,203