[MUSIC PLAYING] SPEAKER 1: Baiklah, semua orang. Selamat datang di bagian terakhir dengan saya. Sudah cukup semester. Aku tidak percaya ini, seperti, minggu 12 atau 11, sesuatu seperti itu. Tapi karena itu terakhir kami bagian, kami memiliki banyak permen. Dan aku akan mencoba dan persiapan Anda serta saya bisa untuk kuis Anda pada hari Rabu. Jadi mungkin bukan cara terbaik untuk, seperti, bagian akhir dengan yang asli kuis. Tapi kami akan mencoba dan membuatnya menyenangkan. Dan selalu ada permen. Jadi mudah-mudahan, itu akan membuatnya lebih baik. Kuis Anda akan menjadi cantik banyak hal yang sama seperti Kuis Zero. Ini akan menjadi format yang sama, panjang yang sama. Anda akan berada di kamar yang tersebar di kampus, karena ada dekat dengan 900 dari Anda, dan kita tidak bisa semua menahan Anda dalam kamar seperti ini. Jadi pastikan untuk melihat semua Kuis Satu dokumentasi online di cs50.harvard.edu malam ini atau besok malam. Pastikan Anda tahu di mana Anda pergi, apa yang Anda butuhkan untuk membawa. Benar-benar, Anda hanya perlu membawa diri dan pensil, dan Anda harus baik-baik saja. Pertanyaan-pertanyaan akan sangat banyak yang sama. Mungkin akan ada beberapa pilihan ganda, beberapa jawaban singkat, beberapa coding, mungkin beberapa benar / salah, pencocokan macam hal. Jadi Anda tidak perlu terlalu terkejut dengan format. Apa yang bisa mengejutkan adalah panjang, yang pada tahun-tahun sebelumnya, Telah banyak lagi. Pada tahun saya, saya tidak punya teman satu yang saya ingat menyelesaikan ujian. Ada seperti multiple halaman dibiarkan kosong. Jadi panjang dapat jenis disorientasi hanya karena dalam beberapa tahun, ia memiliki jauh lebih lama dari Kuis One. Saya tidak tahu apa itu akan menjadi seperti tahun ini, tapi itu adalah sesuatu yang harus diperhatikan. Selain itu, orang difficulty-- cenderung untuk menemukan Kuis Satu lebih sulit daripada Kuis Zero. Sekali lagi, Anda tahu, jika Anda jenis berjalan keluar merasa sedikit gelisah karena Anda tidak melakukan sebaik yang Anda pikir Anda akan atau Anda merasa seperti Anda tidak lakukan juga seperti yang Anda lakukan pada Kuis One, ingat bahwa mungkin ada banyak orang lain merasa seperti itu. Aku pasti salah satu dari orang-orang. Kuis satu, seperti, melemparkan saya untuk satu lingkaran. Dan teman-teman saya punya ini besar foto mereka di JP Licks jenis dengan ini besar sundae, menjadi seperti, Quiz One, dan tampak seperti mereka menangis. Jadi itu adalah perasaan umum. Ini ujian berat, itu adalah kuis yang sulit. Jelas, jika Anda keluar dan Anda merasa seperti Anda mengguncang itu, bagus untuk Anda. Tapi tahu bahwa Anda mungkin not-- Anda hampir pasti tidak sendiri jika Anda berjalan keluar merasa seperti, eh, mungkin bisa mendapatkan lebih baik. Keras. Mm-hm. AUDIENCE: Berapa harganya layak dalam kaitannya dengan [tak terdengar]? SPEAKER 1: Ini perlu sama. Ya. Tapi sekali lagi, itu juga akan menjadi dipengaruhi oleh bagaimana sisa kelas tidak, bagaimana bagian Anda tidak, bagaimana Anda telah meningkat dari waktu ke waktu. Grading adalah sedikit dari kotak hitam. Jadi apa jumlah aktual atau persentase yang Anda dapatkan belum tentu seperti langsung berkorelasi dengan kelas Anda akan mendapatkan. Ada banyak faktor yang masuk ke dalamnya. Maka dengan itu, kita akan pergi melalui beberapa review kuis. Aku hanya akan menjalankan ini seperti terakhir kali untuk kalian. Saya memiliki semua jawaban untuk Kuis Satu tahun lalu. Jadi jika kalian ingin menarik bahwa pada komputer Anda sendiri, jika Anda telah mengambil ujian ini sebelum dan Anda memiliki pertanyaan, Aku berpikir kita bisa hanya pergi melalui beberapa dari yang lebih sulit itu. Jadi kita bisa bicara tentang hal itu, mungkin mendapatkan wawasan yang lebih kecil ke dalam intuisi balik beberapa pertanyaan-pertanyaan ini, bagaimana mendekati mereka. Selain itu, seperti terakhir kali, Saya memiliki dek 100-slide yang memiliki pada dasarnya semua slide yang saya telah disiapkan untuk sebelumnya bagian sejak quiz-- aku terakhir Anda ada di dek ini. Jadi kita bisa melalui apa pun cukup banyak yang kita bicarakan sebelumnya yang mungkin Anda ingin sedikit lebih klarifikasi tentang. Kita bisa melakukan yang pertama. Tapi sebaliknya, Aku super senang hanya untuk jenis pekerjaan melalui masalah ini dengan Anda. Dan aku benar-benar di sini untuk fokus pada apa yang kalian pikirkan akan sangat penting untuk fokus pada. Seperti, jelas, semua hal ini penting. Terutama karena kita melalui Kuis One, Saya pasti akan menunjukkan hal-hal seperti, oh, ini mungkin sesuatu Anda benar-benar ingin tahu atau Anda ingin memiliki pada lembar contekan Anda. Aku akan memberitahu Anda hal-hal seperti yang kita semacam melalui. Jadi pada catatan itu, apakah ada hal-hal bahwa kalian ingin pergi? Juga, jika saya tidak memilikinya di dek saya, kita dapat menarik sesuatu di web, atau kita dapat mencoba dan membuat sebuah contoh dengan cepat. Tapi konsep apapun yang Anda orang ini agak kabur pada. [? Brian,?] Apakah Anda have-- AUDIENCE: Oh, apakah kumulatif? Seperti, adalah hal baru di Quiz Nol akan berada di sini? SPEAKER 1: Ini kumulatif, tapi itu jauh lebih dari penekanan pada hal-hal sejak kuis terakhir Anda. Jadi jelas, kalian punya belajar tentang variabel, dan loop, dan conditional. Dan tidak seperti mereka yang baru pergi, karena mereka jelas melekat pada segala sesuatu lain yang telah kita pelajari sekarang. Mungkin ada pertanyaan pada jenis, atau ada mungkin pertanyaan pada pencarian yang berbeda. Atau mungkin ada beberapa pertanyaan pada mungkin sesuatu yang Anda yang berkaitan dengan kompilasi atau kesalahan yang berbeda. Tetapi jika Anda telah melihat Kuis Satu dari tahun lalu, Anda akan melihat bahwa itu adalah sangat banyak terfokus pada hal-hal yang telah terjadi sejak kuis terakhir Anda. Mengapa pintu itu selalu terkunci? Ini benar-benar mengganggu saya. Karena aku selalu mencoba untuk pergi melalui itu. Jadi itu cukup banyak bagaimana kuis akan. Jadi apakah ada konsep yang kalian ingin pergi? Atau kita bisa melompat tepat ke hanya melihat Quiz One dari tahun lalu dan jenis akan melalui praktek pertanyaan di sana. Kami juga dapat beralih kembali dan sebagainya. Ini bukan semacam satu kali hal. Ada pertanyaan? Iya Nih. AUDIENCE: Bisakah saya meminta pertanyaan tentang another-- SPEAKER 1: Satu lagi? AUDIENCE: Ini dari satu tahun lagi. SPEAKER 1: Ya. Kita juga dapat melakukan satu tahun lagi. AUDIENCE: OK. Maka pada 2011. SPEAKER 1: 2011. Ooh, itu adalah tahun sebelum saya. Biarkan aku melakukan ini atas. AUDIENCE: saya pikir. SPEAKER 1: Aspek ini Rasio adalah melempar me off. AUDIENCE: 11 dan 12. SPEAKER 1: 11 dan 12. OKE. Nah, di sini, mengapa tidak kita lakukan ini? Anda guys-- semua orang hanya mengambil beberapa menit untuk melihat melalui kuis. Dan kita akan mengkompilasi daftar. Dan kemudian kita akan pergi melalui mereka. Baiklah? Sementara saya mendapatkan bunch hal ini mengatur. OKE. Aku hanya akan menulis hal di atas kertas. 2011, 11 dan 12? Aku hanya akan mengubah tampilan ini. OKE. Itu lebih baik. Selama ini. Baiklah. Orang lain punya yang mereka ingin memulai dengan? Juga, lupa mengatakan, jika Anda ingin lebih dari sekelompok orang berbicara pada Anda dan hanya memberikan Anda retak Tentu saja dalam enam minggu terakhir, kita menjalankan tinjauan sesi dari 07:00 untuk 08:30 malam di Northwest B103, yang juga terjadi Terakhir kali, di mana itu akan menjadi aku, Hannah, Daven, dengan Gabe dan Rob jenis membantu dari sela-sela hanya jenis melemparkan semua Informasi yang Anda mungkin ingin memiliki pada lembar contekan Anda, slash, tahu secara umum ada. AUDIENCE: Itu juga secara online, kan? SPEAKER 1: Ini juga secara online. Jadi Anda juga bisa tinggal keluar dari ini Cuaca menjijikkan, pergi ke asrama Anda, dan live-streaming jika Anda ingin. Saya yakin banyak people-- Aku tahu aku akan akan melakukan itu jika saya berada di sepatu Anda. OKE. Jadi kenapa tidak kita mulai with-- saat Anda guys-- mudah-mudahan, Anda melihat melalui. Jika tidak, saya mungkin hanya mulai bekerja melalui hal-hal yang berbeda pada Quiz One dari tahun lalu, kecuali jika Anda memiliki pertanyaan spesifik. Kita akan mulai dengan ini pertanyaan di sini tentang tumpukan. Jadi tidak semua orang ingat jenis apa tumpukan adalah? Bagaimana kita cenderung to-- siapa pun dapat hanya memberikan saya gambaran umum dari stack? Suatu jenis struktur data. OKE. Jadi itu salah satu struktur data yang kita mengharapkan Anda untuk menjadi akrab with-- seperti tumpukan, array, antrian, sebagainya. Iya Nih. AUDIENCE: Seperti Pertama Dalam, Keluar terakhir, sesuatu. SPEAKER 1: Ini Pertama Dalam, Last Out. Tepat. Jadi stack persis apa yang kita cenderung berpikir tentang ketika kita berpikir dari setumpuk hal. Jadi tumpukan piring. Piring pertama Anda meletakkan akan berada di bawah, dan itu akan menjadi yang terakhir salah satu yang Anda keluarkan di akhir. Karena mereka menumpuk. Dan Anda mengambil salah satu dari bagian bawah, biasanya, hal kecelakaan dan istirahat. Jadi tumpukan Anda bisa memikirkan hanya seperti tumpukan piring. Atau contoh yang kita selalu ingin menggunakan adalah di lorong-lorong D, Anda memiliki nampan, mereka semua menumpuk, dan Anda mengambil dari atas. Jadi yang terakhir di adalah yang pertama keluar. OKE. Jadi dalam kasus ini, kami lihat kami have-- aku bertanya-tanya jika saya benar-benar dapat memperbesar sedikit. Jadi kita memiliki ini struct di sini. Yang Tepat? Jadi Anda memiliki beberapa struct yang memiliki beberapa int jumlah kapasitas. Jadi apa yang kita pikirkan yang mewakili? Ini adalah sebuah array dengan ukuran KAPASITAS. Jadi ini benar-benar mewakili tumpukan kami secara umum. Tumpukan kami benar-benar hanya sebuah array dengan beberapa nomor set yang max, yaitu, KAPASITAS nya. Dan kemudian kita memiliki beberapa ukuran int, yang akan melacak ukuran tumpukan kami seluruh kursus ketika kita menggunakannya. OKE? Dalam hal ini di sini, kami mengatakan bahwa kami ukuran stack telah diinisialisasi ke 0. Jadi kita memiliki tumpukan kosong sekarang. Dan kemudian kita ingin menyelesaikan pelaksanaan pop sedemikian rupa sehingga mengembalikan int di atas. Dan kemudian jika itu kosong, itu kembali negatif 1. OKE? Jadi saya ingin kalian hanya berpikir tentang apa yang kita lakukan di sana. Apa yang mungkin menjadi salah satu yang pertama hal yang kita ingin memeriksa? Ada suatu hal yang besar di sini. Setiap kali says-- jika ada pernah beberapa Jika pernyataan, seperti "Jika tumpukan kosong," atau "Jika ini kembali null," atau "Jika ini adalah apa pun" - maaf. AUDIENCE: Menulis pernyataan Jika. SPEAKER 1: Benar. Anda bisa menulis pernyataan Jika. Dan itu mungkin salah satu hal pertama yang Anda ingin memeriksa. OKE. Setiap kali mereka memberi Anda jenis seperti kasus sudut seperti ini, itu biasanya salah satu hal pertama Anda akan memeriksa dalam kode Anda. Juga, sesuatu untuk mengakui untuk kuis adalah jika Anda memiliki cara yang tidak efisien untuk melakukan sesuatu, menuliskannya. Karena kita tidak dengan kadar Anda pada desain, kami nilai berdasarkan kebenaran untuk kuis. Jadi bahkan jika Anda tahu bahwa itu super cara yang buruk untuk melakukan sesuatu tetapi bekerja, menuliskannya, OK? Anak-anak Secara harfiah, saya telah melihat year-- lalu jika Anda melihat pada satu tahun lalu, mereka seperti, melakukan Mario piramida. Dan mereka benar-benar hanya melakukan "print, hash, cetak, hash, hash, cetak, hash, hash, hash. " Tapi itu benar. Itu apa yang kita diberitahu untuk, sehingga Anda tidak dapat mengambil poin dari. Jika Anda sampai ke kawat, jelas, Anda ingin mendapatkan solusi yang lebih elegan, dan solusi yang lebih elegan mungkin akan menjadi kode kurang, yang berarti Anda mungkin memiliki kesempatan lebih tinggi untuk menjadi benar. Tapi jika Anda seperti, Anda tahu apa, tidak, saya tidak punya waktu, saya tahu ini adalah solusi, itu bukan yang terbaik, menulis itu. Dan Anda bahkan dapat menulis di sisi, saya tahu ini mengerikan, tapi aku tahu itu bekerja. Jadi hanya kepala-up. OKE. Jadi jelas, hal pertama adalah pernyataan Jika ini. Jadi apa yang kita pikirkan Jika ini Pernyataan akan menjadi? Dan sebenarnya, biar terbuka up saya besar Sublime Editor. Aku akan kode ini dan kemudian menunjukkan kalian bila dilakukan. Jadi int pop. OKE. Jadi jika kita memiliki int ini pop void-- jadi jelas, ini adalah beberapa fungsi yang diperlukan dalam apa-apa dan mengembalikan integer, kan? Jadi itu hanya akan berbicara tentang tumpukan ini yang telah kita buat. Jadi hanya menerjemahkan terakhir ini kalimat, "jika tumpukan kosong, pop harus kembali negatif 1, "bagaimana mungkin kita melakukan hal itu? Jadi Jika apa? Bagaimana kita tahu bahwa tumpukan kosong? Hanya saja ukuran sama dengan 0. Stack.size sama dengan 0. Juga, Aku agak menulis buta di sini. Jadi jika saya membuat typos-- oh, juga lupa menyebutkan ini. Minggu lalu, saya benar-benar tahu apa masalah kita dengan JavaScript. Jangan memanfaatkan I dan D. Anda hanya harus memanfaatkan I dan mendapatkan elemen dengan Id. Dan itu seluruh kesalahan. Jadi, jika kalian kembali dan benar-benar melihat melalui kode saya, jika Anda hanya membuat segalanya huruf kecil d, "lupa elemen dengan Id," ia akan bekerja. Jadi seperti yang saya janjikan, saya sangat dekat. Aku hanya dikapitalisasi sesuatu Aku tidak seharusnya, yang Saya yakin kalian telah di PSET terakhir Anda. Jadi jika ukuran kita sama dengan 0, apa yang harus kita lakukan? AUDIENCE: Kembali negatif 1. SPEAKER 1: Kembali negatif 1. Keren. Jadi sekarang apa yang kita lakukan? Kami ingin pop sesuatu dari. Sekarang hal ini terjadi di mana kita memiliki sesuatu. Ukuran kami lebih besar dari 1 atau lebih besar dari 0, kan? Kami benar-benar memiliki sesuatu di sana. Jadi apa yang ingin kita lakukan adalah kita ingin kembali di sini. Kita akan mengatakan kami ingin untuk kembali atas tumpukan. OKE? Jadi bagaimana mungkin kita melakukan hal itu? Bagaimana kita kembali puncak stack? Ingat, tumpukan kami hanya sebuah array, kan? Ini memiliki beberapa kapasitas bahwa kita telah diberikan itu. Seperti yang telah kita meletakkan segala sesuatu on-- atau sebenarnya, kita akan menulis "push" setelah ini. Jika hal-hal yang di besar-- mungkin gambar akan membantu. Hm, saya suka kapur besar yang lebih baik. Jadi if-- dan Anda bisa hanya menganggap ini sebagai tumpukan kami. Jadi ini adalah 0, 1, 2. Aku tidak tahu mengapa kotak saya semakin kecil. Tapi ada. OKE. Jadi ini adalah beberapa tumpukan dengan kapasitas 5. Dan katakanlah kita memiliki sesuatu di sini dan kami memiliki sesuatu di sini. Jadi pada titik ini, kami Ukuran sama dengan apa? 2. Dan jika kita ingin pop sesuatu dari itu, itu berarti kita ingin mendapatkan menyingkirkan ini di sini. OKE? Jadi bagaimana kita mengembalikan nilai ini? AUDIENCE: Ukuran minus 1. SPEAKER 1: Benar. Jadi ukuran minus 1, atau Anda bisa melakukan ukuran dikurangi dikurangi. Tapi kita tidak bisa hanya melakukan ukuran. Ini dalam struct, kan? Jadi stack.struct. atau stack.size. Itu indeks kami di sana. OKE? Kemudian jika kita melihat kembali struct kami di sini, kita melihat bahwa untuk benar-benar mengakses array, yang perlu kita lakukan stack.numbers untuk benar-benar mengakses array. Sehingga mengembalikan atas tumpukan. Tapi sesuatu itu-- jika kalian melihat di kunci jawaban, ini semua mereka memberikan. Jadi ini dia. Tapi aku mungkin berpendapat bahwa mereka miss-- ooh, bukan apa yang saya inginkan. Saya mungkin berpendapat bahwa mereka kehilangan sesuatu, because-- ya. AUDIENCE: Kurangi ukuran. SPEAKER 1: Benar. Kita perlu untuk mengurangi ukuran kami sekarang. Jadi apa yang rumit tentang ini adalah setelah Anda kembali sesuatu, fungsi Anda akan keluar, kan? Jadi apa yang kita mungkin lakukan sebenarnya mengurangi ukuran pertama kami. Dan kemudian kita hanya bisa melakukan stack.size. Kami hanya bisa menggunakan stack.size sebagai indeks kami, tidak bisa kita? Karena jika stack.size adalah 2, kami pengurangan itu. Dan jadi 1, yang adalah indice kami sebenarnya. Setelah kita menyingkirkan ini, kita benar-benar hanya memiliki satu hal dalam array kita. Jadi tidak baik. AUDIENCE: [tidak terdengar]? SPEAKER 1: Nah, dalam hal ini, Kami baru saja kembali elemen di bagian atas yang ada di kami Ukuran yang di atas. Tapi kita tidak melakukan apa-apa untuk Ukuran setelah kami dihapus elemen. Hal ini tidak berubah ukuran kita belum. Ini tidak benar-benar inheren mengubah ukuran kami. Tetapi untuk membuatnya sedikit lebih jelas, Anda bisa melakukan stack.size dikurangi dikurangi. Bagi saya, itu membuat saya tidak tahu, sedikit lebih jelas itu-- ah, bahwa Anda benar-benar berubah ukuran dan mengembalikannya. Cara lain baik-baik saja, karena Anda berubah dan kembali pada saat yang sama. Tapi ini adalah cara lain untuk menulis itu yang saya ingin menunjukkan kalian. Apakah itu masuk akal? Tumpukan, saya pikir, adalah jauh lebih mudah daripada antrian. [TERTAWA] OKE. Apakah Anda memiliki pertanyaan spesifik sekitar 11 dan 12, atau hanya-- AUDIENCE: Saya pikir itu tumpukan. SPEAKER 1: Ukuran tumpukan? AUDIENCE: Ya. SPEAKER 1: Gotcha. OKE. Ya, Anda bisa melakukannya di salah satu dari dua cara tersebut. OKE. Jadi sekarang kita memiliki yang lain. Ini benar-benar aneh, seperti tidak memiliki ini di layar saya. Jadi kalau kita lihat di sini, sekarang kita ingin menyelesaikan implementasi push, yang benar-benar menempatkan sesuatu, pergi dan memasukkan sesuatu ke dalam antrian kami, atau ke tumpukan kami. OKE? Jadi jika kita perhatikan, kita memiliki beberapa hal. Kami memiliki besar-kita jika segalanya, setiap kali kita memiliki salah satu dari ini, kalian harus setidaknya mendapatkan setengah titik, karena semua yang harus Anda lakukan adalah mengubahnya menjadi C. Dan mereka memberikan setengah dari itu. Jadi "jika stack penuh atau negatif, kemudian dorong harus kembali palsu. " OKE? Jadi kita hanya ingin positif bilangan bulat untuk berada di tumpukan kami. Baiklah? Dan ini akan baik kembali benar atau salah. Jadi kita harus [tak terdengar] bool. OKE. Jadi menerjemahkan. AUDIENCE: [tidak terdengar]. SPEAKER 1: Oh, terima kasih. Ya. Ini adalah mengapa saya memiliki kalian. Int n. Sempurna. Karena kita menempatkan sesuatu ke tumpukan kami. Kami benar-benar membutuhkan beberapa nomor. OKE. Jadi hanya mengambil yang baris terakhir yang mereka memberi kami, seperti kami kasus sudut, apa yang Anda pikir kita miliki di sini? Jelas, kita akan memiliki beberapa Jika. OKE. Jadi kami mengatakan, jika tumpukan kita penuh atau jika n negatif. Jadi mungkin paling mudah untuk memulai dengan, jadi jika n kurang dari 0 or-- ingat bagus Anda AND dan OR operator di sana. Bagaimana kita akan memeriksa untuk melihat apakah tumpukan kita penuh? Apa yang terjadi? AUDIENCE: Ukuran KAPASITAS yang sama. SPEAKER 1: Tepat. Sempurna. OKE. Dan apa yang kita ingin lakukan di sana? AUDIENCE: Kembali palsu. SPEAKER 1: Kembali palsu. Sempurna. Jadi setengah jalan di sana, kan? Paling tidak, kalian akan memiliki setengah dari ini. Jadi mari kita berpikir tentang hal ini. Jadi ini adalah tumpukan kita mulai dengan. Kami mencoba untuk menempatkan beberapa unsur di sini. Kami memiliki ukuran yang sama dengan 2 sekarang. Kami memiliki kapasitas yang setara dengan 5. Dan katakanlah kita memiliki beberapa n yang sama dengan 3. Jadi kita perlu untuk memasukkan 3 ke ruang angkasa ini. Dan kita perlu untuk memasukkan ke dalam indeks 2. Yang Tepat? Jadi bagaimana mungkin kita melakukan ini? Mencoba untuk assign-- kami ingin mengakses array kita. Jadi stack.numbers. Tapi apa indice akan Kami ingin ini menjadi? AUDIENCE: [tidak terdengar]. SPEAKER 1: Ya. Stack.size. Dan kami ingin yang sama n, kan? AUDIENCE: [tidak terdengar]. SPEAKER 1: Aku benar-benar hanya melihat itu. Saya pikir itu salah. AUDIENCE: Jangan Anda ingin ruang melewati ukuran saat ini? SPEAKER 1: Nah, jika kita lihat di sini, ukuran kami pada saat ini adalah 2. Kami ingin pergi ke indeks 2, karena ini adalah bagian atas tumpukan kami. Jadi saya akan mengatakan bahwa itu harus stack.size, dan kemudian Anda akan meningkatkan stack.size. Apakah semua orang setuju? Saya pikir saya setuju dengan itu. Kalian bisa berdebat dengan saya jika Anda ingin. Atau tidak membantah, tapi kita bisa membicarakan hal ini. AUDIENCE: [tidak terdengar]. SPEAKER 1: Mm-hm, di mana itu buka karena nol pengindeksan. Jadi sedangkan di bagian pertama, Saya pikir mereka salah, dan mereka benar-benar benar, ini bagian, saya benar-benar berpikir mereka salah. Aku akan mengatakan Anda harus pasti masukan di sini. Saya pikir kita semua setuju kami memiliki ukuran 2. Itulah di mana kita ingin nomor baru untuk pergi. Jadi stack.numbers di stack.size harus sama n. Dan kemudian kita akan kenaikan stack.size tersebut. ++. Dan kemudian apa yang kita ingin lakukan? Ada satu hal yang harus kita lakukan jika kita berhasil dimasukkan ini? Kembali benar. Dan sekarang Anda sudah selesai. Jadi saya merasa seperti itu adalah seluruh dikurangi dikurangi stack.size dan stack.size ++ yang mengacaukan semuanya. Ugh. Saya keep-- saya punya ini spontan kecenderungan untuk selalu memukul Control, S, karena saya tidak pernah ingin kehilangan pekerjaan saya. Tapi aku tidak perlu melakukan itu sekarang. OKE. Jadi itu stack. Keren. Apakah ada sesuatu? Apakah kalian menemukan pertanyaan lain yang akan Anda ingin pergi lebih dari kuis sebelumnya? Jika tidak, kita bisa jenis mulai berbicara melalui Kuis Satu dari tahun lalu. Iya Nih. AUDIENCE: Untuk pertama bagian, aku tidak benar-benar memahami bagaimana Anda menghapus nomor. Bukankah masih ada? SPEAKER 1: Jumlah masih ada. Tapi apa yang terjadi adalah bahwa karena Anda sudah mengatakan bahwa bagian atas tumpukan Anda di sini, ketika Anda pergi untuk menambahkan sesuatu ke stack, itu hanya akan menggantinya. AUDIENCE: Oh, OK. SPEAKER 1: Ya. Jadi seperti dia lupa dan itu ada jenis hal meskipun itu ada. AUDIENCE: [tidak terdengar] atau apa? SPEAKER 1: No. Karena kita berada di sebuah array, Anda tidak memiliki khawatir about-- Anda hanya akan menimpanya ketika Anda membutuhkannya. Baiklah. Ada pertanyaan lain? Jika tidak, kita hanya akan mulai bekerja melalui. Ya. AUDIENCE: Nah, yang satu ini pada 2013, tapi hanya akan melalui hal-hal SQL. SPEAKER 1: SQL? OKE. Jadi ini adalah 26 sampai 29. AUDIENCE: Ya. SPEAKER 1: OK. Indah. Mari kita tarik mereka ke atas. Oh, lihat. Apakah kalian menikmati Steve Ballmer berbicara, dengan cara? Itu cukup lucu, menurut pendapat saya. Saya suka bahwa setiap kali saya membawa CS50 dunia situs selama bagian, itu seperti, oh, menonton bagian. Dan aku seperti, mm. AUDIENCE: Bisakah kita melakukannya? SPEAKER 1: Kami akan melakukannya di akhir. Bagaimana? Karena aku tahu kalian selalu ingin. Jadi kita akan melakukannya di akhir. Satu pertanyaan. AUDIENCE: [tidak terdengar]. SPEAKER 1: Ini akan menjadi bagian meta. AUDIENCE: Ini seperti 5 detik. AUDIENCE: Benarkah? AUDIENCE: Ini seperti 20 detik. [Interposing SUARA] [CANDA TAWA] SPEAKER 1: aku seperti itu Anda sudah melakukan itu, yang adalah apa yang membuat saya bahagia. OKE. 26. OKE. Sebenarnya, kita hanya akan cermin ini sekarang, karena saya tidak bisa. Ini menjengkelkan. OKE. Sekarang aku bisa melihat semuanya. Indah. OKE. Jadi jelas, ini harus membawa kembali kenangan besar dari [? CSG?] Keuangan. Setengah dari Anda tentang telah Anda dinilai sekarang. Sisi lain saya akan sampai ke sangat, sangat segera, aku janji. Jadi kita memiliki beberapa tabel SQL itu Account di sini. Mungkin mirip dengan tabel pengguna guys '. Dan kami memiliki beberapa nomor itu adalah kunci PRIMARY dan merupakan Nomor rekening 12 digit. Dan keseimbangan adalah berapa banyak uang yang mereka miliki. Dan nilai default adalah 100. Dan mereka memberi mereka $ 100 setiap kali mereka membuka rekening. Saya berharap bank saya melakukan itu. OKE. Jadi kami ingin menyelesaikan skema dengan menentukan samping jumlah saldo sesuai jenis SQL. Jadi apa yang kalian pikir akan jenis seperti reaksi spontan Anda untuk jenis untuk kedua? AUDIENCE: Int. SPEAKER 1: Sebuah int. OKE. Dan kemudian untuk keseimbangan? Decimal. OKE. Jadi desimal hak. Int dekat. Jenis hal besar adalah ini menggarisbawahi nomor rekening 12 digit. Setiap kali kita memiliki sesuatu yang lebih besar dari delapan digit, mereka ingin Anda gunakan besar int, yang saya pikir is-- AUDIENCE: Apakah itu hanya SQL? SPEAKER 1: Ini satu-satunya waktu saya pernah mendengar itu adalah SQL-- seperti menggunakan int besar. Ini hanya untuk memberi Anda sedikit lebih presisi, memastikan Anda tidak meluap jenis hal. Di semua kejujuran, saya pikir ini pasti salah satu yang di mana itu seperti, oh, itu dimaksudkan untuk orang-orang yang memiliki pengetahuan sedikit lebih dari SQL. Kami tidak pernah berbicara tentang int besar dalam PSET Anda. Jadi itu seperti aku cukup yakin jika Anda menempatkan int, itu setengah kredit. Dan seperti yang saya katakan sebelumnya, ada akan ada beberapa pertanyaan yang hanya dimaksudkan untuk perjalanan Anda, jadi bahwa tidak semua orang mendapat 100. Karena tentu saja, ada beberapa orang di CS50 yang telah melakukan ini untuk seperti delapan tahun, dan Anda seperti, apa yang kamu lakukan? Tapi ya. Desimal untuk keseimbangan adalah jelas salah satu. Dan kemudian besar int untuk nomor hanya karena itu, seperti, menggarisbawahi 12-digit. Setiap kali sesuatu dalam huruf tebal atau itu digarisbawahi, seperti, membayar perhatian untuk itu. Kami tidak melakukan hal itu hanya karena. OKE. Jadi "misalkan mengenakan Bank biaya bulanan $ 20 pada semua account. Dengan apa permintaan bisa bank memotong $ 20 dari setiap akun bahkan jika itu hasil dari beberapa saldo negatif? " Jadi mari kita mulai sederhana. Kami memiliki empat perintah utama untuk SQL, yang? Apakah kalian ingat empat yang besar yang saya katakan? UPDATE, DELETE, SELECT, INSERT dan. Sempurna. Got it. Jadi apa yang kita pikirkan kekuatan paling berguna untuk yang satu ini? Kami are-- UPDATE. Tepat. Jadi UPDATE, karena kita cari di rekening yang sudah ada. Jadi ingat umum kita semacam itu adalah pembaruan. Dan kemudian apa yang terjadi setelah UPDATE? Kami memiliki beberapa tabel bahwa kita referensi. Jadi jika saya menarik Sublime again-- UPDATE. Jadi ini adalah format umum. Jadi kita memiliki tabel UPDATE. Dan kemudian apa hal berikutnya yang kita miliki? Anda dapat melakukan MANA. Dan kemudian kita memiliki beberapa kualifikasi di sini. Dan kemudian apa yang kita miliki selanjutnya? Kami memiliki beberapa hal SET-- sama dengan sesuatu. Bla bla sama. Diperbarui bla. Yang Tepat? Jadi itulah seperti umum Ide untuk beberapa pembaruan. OKE? Jadi mari kita mulai mengisi ini dengan apa yang seharusnya. Jadi apa tabel yang kita bicarakan? Akun. Dan kemudian dalam hal ini, apa yang benar-benar keren adalah yang sedang kita bicarakan khusus pengguna dalam rekening kami, atau yang kita bicarakan semua pengguna? Kita bicara tentang semua pengguna. Jadi dalam hal ini, kita hanya bisa menghapus MANA kualifikasi ini. MANA hanya ketika Anda ingin untuk membatasi apa yang Anda berubah. Jika Anda ingin mengubah seluruh yang meja, Anda hanya bisa drop itu. OKE. Jadi sekarang kita berada di bagian SET kami. Apa yang ingin kita ubah? AUDIENCE: Balance. SPEAKER 1: Balance. Dan kita akan to-- bagaimana kita akan mengubah keseimbangan? Kami memiliki biaya $ 20, kan? Minus 20. Dan mereka mengatakan tidak apa-apa jika kita memiliki saldo negatif. Jadi dalam hal ini, Anda tidak perlu untuk melakukan pengecekan kesalahan lebih lanjut. OKE? Yang secara harfiah semua yang harus Anda lakukan. Keren? OKE. Jadi mari kita pergi melalui berikutnya. "Dengan apa yang query SQL bisa dengan Bank mengambil nomor rekening pelanggan terkaya dengan menyeimbangkan lebih besar dari $ 1.000? " Jika bank Anda dan pelanggan terkaya Anda hanya orang-orang dengan lebih dari $ 1.000, Saya merasa seperti Anda melakukan sesuatu yang salah. Seperti, bagaimana bank bertahan hidup itu? Seperti, bunga itu, tidak cukup. OKE. Dengan hal semacam ini, apa yang dilakukan Anda berpikir, dari empat fungsi kami, Menurut Anda kita akan menggunakan? SELECT. Sempurna. SELECT. OKE. Jadi kita memilih beberapa identifier FROM tabel. Dan kemudian WHERE kondisi. Jadi seperti yang kita pergi melalui ini, aku hanya akan untuk memberikan kalian penyegaran umum pada format umum dari semua ini. Jadi kita memilih semacam dari [? hal. ?] Dalam hal ini, ini akan menjadi biasanya beberapa kolom. Jadi dalam kasus kami, kami memiliki nomor, keseimbangan. Dalam kasus orang Anda, mungkin itu ID, nama, password. Salah satu dari mereka kolom, yang biasanya apa yang kita memilih. Jadi dalam hal ini di sini, yang jenis kolom, identifier apa kita menarik dari meja kami? Apa meminta kami untuk? Ini meminta kita untuk nomor kita, kan? Nomor rekening. Jadi ingat, hanya nomor dalam kasus ini. Jika kalian pernah kesalahan, yang kotak oranye terang akan datang. Dan itu seperti, tak terduga baris di, seperti, apa pun. Itu karena Anda disebut meja Anda salah, kan? Jadi pastikan bahwa Anda memanggil kolom dengan benar. Jadi dari meja, meja kami adalah disebut rekening. Sekali lagi, pastikan Anda referensi meja Anda dengan benar. Dan kemudian apa kondisi kita di sini? Apa yang kita cari? Kami ingin orang-orang kaya. Iya Nih. Jadi keseimbangan yang lebih besar dari 1.000. Ini dia. Itu permintaan Anda. Tidak terlalu buruk, kan? OKE. Jadi sekarang untuk terakhir kami. Dengan itu, kita breezing melalui. OKE. Jadi sekarang "dengan apa permintaan bisa penutupan Bank, yaitu, menghapus "- kau tidak suka bagaimana mereka hanya memberikan Anda DELETE-- "Setiap account yang memiliki keseimbangan 0?" Saya pikir kita semua bisa sepakat kami mungkin akan menggunakan DELETE. Aku dipersilakan untuk mengambil diskusi sekitar itu. Tapi saya pikir itu cukup aman untuk mengatakan bahwa kita bisa menggunakan DELETE. Jadi kita akan DELETE beberapa pengguna dari meja, WHERE kondisi. Jadi semacam sama hal seperti SELECT. Jadi dalam hal ini case-- oh, maaf. Aku harus DELETE FROM. Karena akan DELETE menghapus seluruh baris. Jadi kita tidak perlu bicara tentang yang hal-hal tertentu tentang pengguna kami menghapus. Jika kita menghapus pengguna, kami menghapus segala sesuatu tentang mereka. Jadi dalam hal ini, kita hanya perlu mengisi MANA kami dan kondisi kita. Jadi meja kami hanya account kita tabel, seperti yang telah kami lakukan. Dan lalu apa kondisi kita di sini? AUDIENCE: Balance. SPEAKER 1: Balance sama dengan 0. Yang Benar. Semuanya baik. Iya Nih. AUDIENCE: [tidak terdengar]. SPEAKER 1: Jadi DELETE inheren menghapus segalanya. Jadi sementara dengan SELECT, SELECT mengambil dalam kolom tertentu yang Anda ingin kembali. Jika Anda ingin segala sesuatu tentang pengguna kembali, Anda menggunakan bintang. Bintang mengatakan, kembali ke saya segala sesuatu dari pengguna ini. Atau jika Anda menempatkan MANA bintang, yang berarti hanya memberi saya segalanya. Tapi DELETE inheren memiliki itu. Jadi jika Anda mengatakan, DELETE dari account di mana keseimbangan sama dengan 0, itu akan pergi melalui. Dan di mana-mana keseimbangan yang sama dengan 0, itu inheren melakukan itu. Ini akan menghapus segala sesuatu. Bintang ini lebih for-- dengan SELECT atau UPDATE, itu berbicara lebih banyak tentang individu bidang yang sesuai dengan pengguna. Jadi, ketika Anda SELECT membintangi dari tabel WHERE ID sama dengan 1, yang kembali ke Anda segala sesuatu tentang pengguna dengan ID 1. Jika Anda adalah untuk melakukan nomor SELECT atau SELECT ID nama koma dari pengguna WHERE ID sama dengan 1, yang hanya mengembalikan jumlah mereka atau ID dan nama mereka. OKE? Jadi kita menggunakan bintang dalam kasus untuk memberi kita segala sesuatu tentang pengguna. Dan DELETE inheren melakukan itu. Ini tidak hanya menghapus ID, atau hanya nama, atau apa pun. Ya, ada. Itu hanya akan menghapus seluruh pengguna. Jadi kita tidak perlu khawatir tentang bintang di sana. Jika Anda ingin menghapus segala sesuatu, Anda bisa melakukan itu, dan ini hanya akan meninggalkan semuanya. Tapi biasanya, Anda tidak ingin melakukan itu. Tetapi jika Anda pernah ingin menghapus segala sesuatu, Anda bisa melakukan itu. OKE. Apakah kalian menemukan pertanyaan lain? Iya Nih. AUDIENCE: Bisakah Anda melakukan 26? SPEAKER 1: 26 kami baru saja melakukannya. AUDIENCE: Oh, 25, maaf. SPEAKER 1: 25. OKE. 25. Oh. Mereka melakukan JavaScript. Oh, aku tidak bisa percaya. Aku akan mengacaukan kami lagi, guys. OKE. Kami punya ini. Kita akan membuat karya ini. Ah, jQuery. Fun. OKE. Jadi kita akan menyelesaikan pelaksanaan halaman web sedemikian rupa bahwa jika mereka kunjungi, masukan nama mereka, dan menyerahkan formulir, mereka memiliki peringatan besar Jendela yang akan muncul. Begitu pun dengan peringatan, kita tahu bahwa kita akan harus menggunakan JavaScript. Yay, JavaScript. Dan jika mereka gagal untuk memasukkan nama sebelum mengirimkan formulir, tidak ada peringatan akan muncul. Jadi, Anda dapat menggunakan jQuery, tetapi Anda tidak perlu. Jadi aku akan membiarkan kalian bekerja hal ini hanya untuk beberapa menit. Pikirkan itu. Dan kemudian kami akan kode itu. Slash saya akan mencoba dan memikirkan Cara terbaik untuk menjelaskan jawaban ini kepada Anda. Baiklah. Kita akan mendapatkannya mengatur. OKE. Jadi kita hanya akan berjalan melalui ini, karena saya tahu jQuery adalah sedikit membingungkan. JavaScript. Ini sedikit di luar sana. Jadi apa yang akan kita lakukan adalah [Tak terdengar] benar-benar dipecahkan masalah ini dengan jQuery. Jadi jika Anda ingat, jQuery hanya perpustakaan yang hanya dibangun di atas JavaScript. Ini dimaksudkan untuk membuat Anda hidup sedikit lebih mudah. Saya pasti akan, jika Anda punya waktu, melihat lebih sedikit dari dokumentasi untuk jQuery. Tapi itu sangat mirip dengan JavaScript. Itu punya paradigma yang sama, di mana Anda menggunakan operator dot ini untuk memanggil fungsi pada objek yang Anda miliki. Jadi apa yang kita miliki di sini adalah untuk jQuery, Anda harus selalu memiliki semacam ini pembungkus, yang merupakan $ (Document) .ready (function) Fungsi dalam kurung di sini. OKE. Jadi ini mungkin sesuatu Anda inginkan pada lembar contekan Anda. Karena setidaknya, Anda dapat memiliki pembungkus untuk jQuery Anda. Dan setidaknya akan mendapatkan Anda berpisah di sana. Jadi dengan cara yang sama bahwa kita berbicara banyak tentang JavaScript, dan kami akan mulai dengan melihat apa yang kita coba untuk mengedit atau apa yang kita mencoba untuk berubah. Dan itu biasanya akan menjadi Hal pertama yang kita akan dimasukkan ke dalam. Jadi dalam hal ini, jika kita kembali ke ini di sini dan kita melihat bentuk kami di sini, kami memiliki input ini, benar, id ini input. Dan kita tahu bahwa Berbasis pada pertanyaan kami, kami yang baik akan membuang kesalahan jika ini kosong, atau kita akan menempatkan Ini menjadi peringatan, kan? Jadi mungkin aman untuk mengatakan bahwa kita akan berhadapan dengan input di sini. jQuery sangat mirip dalam bahwa jika kita berpikir kembali ke CSS, apa pun dengan ID kita melihat dengan hash. Apa-apa dengan kelas kami memandang dengan titik, kan? Jadi dengan cara yang sama di sini, apa kita bicarakan adalah input. Kami melihat masukan yang ID dalam bentuk kami. Jadi kita akan lihat seperti itu. Input. OKE? Jadi bila ragu, bahkan jika Anda memiliki tempat, jika Anda benar-benar yakin tentang bagaimana pendekatan ini, A, memiliki wrapper ini. Jadi mulai dari sana dengan pembungkus untuk jQuery. B, pastikan bahwa Anda tahu apa yang Anda berubah. Dan bila ragu, menempatkan bahwa dalam sesuatu, dan melakukan dot, apa pun yang Anda pikir Anda harus melakukan dengan itu. AUDIENCE: Apa bungkusnya? SPEAKER 1: wrapper The adalah baris pertama ini. Jadi ini mengatakan, tunggu sampai dokumen saya siap. Kemudian mulai bermain-main dengan hal-hal. OKE? Jadi kita tahu bahwa kita sedang bermain-main dengan input. Jadi kita seperti, OK, input adalah formulir kami. Itulah ID kami. Jadi itulah yang kami akan mencari. Dan kami ingin melihat apa yang terjadi ketika formulir ini diajukan, kan? Jadi seperti yang kita mungkin berpikir, kami memiliki beberapa .submit. Jadi .submit hanya mengatakan, OK, formulir ini bahwa kita telah direferensikan dengan input hash, ketika itu disampaikan, mengeksekusi sesuatu yang lain. Jadi kita akan memiliki beberapa fungsi. Perhatikan kita memiliki fungsi anonim di sini. Kami memiliki fungsi anonim di sini. Iya Nih. AUDIENCE: Apakah akan selalu .submit, atau hanya karena dalam HTML, kami membuat jenis tombol Submit? SPEAKER 1: Perlu .submit, karena itu beberapa bentuk yang kita ajukan. Karena .submit ini tidak selalu sesuai dengan apa tombol seperti memanggil. Tapi fakta bahwa itu adalah bentuk bahwa kita mengirimkan. OKE. Jadi perhatikan anonim Fungsi sini bahwa says-- AUDIENCE: Saya tidak benar-benar memahami fungsi anonim. SPEAKER 1: Jadi anonim fungsi, mereka hanya fungsi yang tidak memiliki nama. Jadi, bukannya memiliki beberapa fungsi utama bahwa calls-- kita bisa mengatakan, jika dokumen siap, maka kita akan memanggil masukan. Dan kemudian, ketika disampaikan, call-- seperti, Jika demikian-dan-begitu disampaikan, kami akan memanggil beberapa fungsi lainnya. Fungsi anonim hanya tidak memiliki nama, dan itu hanya akan mengeksekusi dalam hal-hal. Jadi dalam hal ini, apa ini mengatakan adalah, Ketika dokumen kami sudah siap, melaksanakan fungsi ini. Fungsi ini terdiri dari segala sesuatu dalam sini. Dan kemudian lapisan berikutnya adalah di, OK, ketika input disampaikan, jalankan ini. Ini hanya cara menunjukkan apa yang harus dijalankan ketika. Ini benar-benar hanya fungsi yang tidak memiliki nama, sehingga mereka cenderung bersarang ke satu sama lain, karena Anda tidak bisa menyebut nama mereka. OKE? Secara harfiah, fungsi anonim hanya fungsi tanpa nama. Itu dia. Hanya cara untuk merangkum hal yang berbeda bahwa kita ingin dijalankan pada waktu tertentu. AUDIENCE: [tidak terdengar]. SPEAKER 1: Ventilasi? Di Mana? AUDIENCE: Dalam kurung setelah fungsi? SPEAKER 1: Setelah fungsi. Yang mana? AUDIENCE: Keduanya. Jika Anda menempatkan, seperti, acara, atau jika Anda menempatkan argumen di sana, apakah itu salah? SPEAKER 1: Dalam hal ini, saya kira Anda bisa menempatkan argumen di sana. Tapi karena kita tidak perlu argumen, tidak boleh ada. Seperti, itu secara keseluruhan, seperti, Anda hanya harus memiliki hal-hal yang semacam diperlukan itu. Dengan cara yang sama bahwa jika kita punya fungsi yang memiliki void-- utama int seperti, dengan int void main, Anda bisa melakukan int arg v, apa pun. Tapi jika Anda tidak membutuhkan mereka, Anda tidak harus memiliki mereka di sana. Hal yang sama. Emma, ​​apakah Anda memiliki pertanyaan? OKE. Keren. OKE. Jadi apa yang kita miliki sejauh ini adalah ketika kami dokumen sudah siap, jalankan ini. Sekarang kita sedang melihat ketika itu diserahkan. Jadi sekarang kita benar-benar memiliki semacam daging hal kami. Jadi kita perlu untuk mendapatkan nilai yang pengguna disampaikan, apakah yang menjadi nama atau kosong. Dan kemudian kita perlu baik kembali peringatan ini atau melempar kesalahan. Either way. Jadi bagaimana kita mendeklarasikan variabel di JavaScript? Var. Jadi katakanlah, nama var equals-- atau sebenarnya, kita akan melakukan nilai karena saya pikir itu nama. OKE. Jadi kita memiliki beberapa nilai di sini bahwa kita ingin menarik dari bentuk masukan kami. Jadi dengan cara yang sama yang kami jenis melakukan input, bisa ada yang bilang padaku apa yang kita mungkin menelepon dalam sini jika kita ingin mendapatkan nama dari bentuk? Dan jika kita melihat kembali bentuk kami di sini, kita melihat bahwa kita memiliki ID nama. AUDIENCE: [tidak terdengar]. SPEAKER 1: Anda tidak memiliki untuk menganggapnya sebagai sebuah array. Anda tidak perlu khawatir tentang itu. Jadi kita hanya memiliki beberapa nama. Dan kemudian karena JavaScript dan hal-hal yang aneh, kita tidak bisa hanya melakukan "nama." Kami benar-benar harus menelepon beberapa fungsi yang memberi kita, seperti, nilai pengenal itu. OKE? Sehingga hanya val. AUDIENCE: [tidak terdengar]. SPEAKER 1: OK. Jadi dengan JavaScript, semacam ini hal yang benar di sini hanya melewati. Dan Anda bisa memikirkan ini as-- itu seperti hampir getElementById, di mana getElementById akan benar-benar kembali hal penuh untuk Anda. The $ ("# nama") adalah seperti, OK, saya memilikinya, saya bisa mengaksesnya, tetapi jika Anda benar-benar menginginkannya untuk mengembalikan nilai untuk you-- AUDIENCE: Apakah seperti pointer? SPEAKER 1: Ini adalah jenis seperti pointer. Anda bisa menganggapnya sebagai jenis seperti pointer. Seperti, ia mengatakan, OK, saya tahu bagaimana untuk sampai ke sana, tapi untuk benar-benar mendapatkan nilai dari itu, Anda harus secara eksplisit meminta untuk itu. Dan sayangnya, jelas, kita tidak melakukan terlalu banyak dengan JavaScript dan jQuery. Jadi itu akan turun ke berapa banyak Anda guys-- apa yang Anda kebetulan tahu, apa yang Anda kebetulan melihat, dan apa Anda dapat jenis logis menebak. Karena beberapa hal tersebut, Anda mungkin bisa mendapatkan separuh perjalanan. Namun untuk mendapatkannya benar-benar tepat, Saya pikir masalah ini mungkin memiliki salah satu nilai terendah. AUDIENCE: Seperti, misalnya, untuk [tidak terdengar] input, kenapa tidak Anda harus meletakkan val sana? SPEAKER 1: Untuk yang satu ini? AUDIENCE: Ya. SPEAKER 1: Ya. Karena ini adalah jenis dari suka, seperti yang kita katakan, beberapa pointer, dan ini adalah saya referensi dan benar-benar mendapatkan kita nilai. AUDIENCE: Bahwa [tidak terdengar]? SPEAKER 1: Untuk input, input hanya some-- itu seperti kami hanya melihat itu secara keseluruhan, dan .submit ini memberitahu kita apa yang kita perlu tahu. jQuery dan JavaScript aneh. Saya tahu. Aku tahu, orang-orang. Saya tahu. Ada alasan saya tidak melakukan pemrograman web. Hanya bercanda. Saya tidak punya cukup paparan itu. AUDIENCE: [tidak terdengar] CSS. [CANDA TAWA] SPEAKER 1: OK, itu CSS. CSS adalah, seperti, membuat hal-hal yang cukup, tidak seperti mari kita berurusan dengan data. Ada perbedaan di sana. OKE. Jadi sekarang mudah-mudahan, ini part-- juga, untuk masalah seperti ini, di mana Anda tidak dapat mengetahui sintaks, Anda bisa seperti, OK, Anda bisa memiliki beberapa nilai var dan menjadi seperti, menganggap saya mendapat nilai dengan benar. Dan kemudian Anda mungkin bisa menulis ini bagian selanjutnya. Bagian berikutnya mungkin akan tampak jauh lebih mudah, atau itu akan membuat logis akal untuk kalian. Padahal apa yang telah kita tulis sejauh ini, Aku tahu aku akan menjadi seperti, umm, ya, Aku tidak tahu bahwa pada kuis. Anda benar-benar dapat menulis psuedocode dan kemudian masuk ke kode nyata ketika you-- itu jenis seperti matematika. Jika Anda pernah memiliki beberapa Masalah multi-bagian mana Anda tidak tahu bagaimana bisa melewati langkah pertama, tapi segalanya bergantung pada langkah pertama, Anda hanya mengatakan, seperti, asumsikan x sama dengan 4. Dan kemudian Anda jalankan dengan itu, kan? Anda dapat melakukan hal yang sama dengan kode. Jadi Anda bisa mengatakan, asumsikan Aku punya nilai yang tepat. Kemudian lakukan bagian selanjutnya ini di sini. Karena bagian ini benar-benar harus cukup logis. Jadi kita perlu memeriksa jika nilai kita kosong. Atau jika itu adalah beberapa nama, benar-benar memberikan peringatan. Jadi apa yang kita ingin memeriksa? Kami ingin memiliki beberapa Jika. Apa yang Anda pikirkan Jika kita akan menjadi? Kita perlu memeriksa untuk melihat apakah nilai is-- jika tidak string kosong. Sempurna. Tepat. OKE. Jadi, jika itu yang terjadi, apa yang kita ingin lakukan? Kami ingin melemparkan beberapa peringatan, kan? Jadi itu hanya peringatan. Dan kemudian apa pun yang kita inginkan di dalam. Jadi apa yang harus kita untuk memiliki dalam peringatan kami? AUDIENCE: "Halo." SPEAKER 1: Koma. Dan kemudian melakukan kalian ingat bagaimana menggabungkan? AUDIENCE: Plus. SPEAKER 1: Plus. Jadi kita ingin memiliki plus. Dan kemudian kita perlu ditambah lagi untuk tanda seru kami. Keren. OKE. Jika tidak, apa yang ingin kita lakukan? Kami tidak ingin melakukan apa-apa, kan? Jadi kita hanya kembali palsu. Tidak apa yang saya ingin lakukan. OKE. Dan kemudian ini, dari course-- apa yang penting adalah ingat untuk menutup fungsi anonim Anda. Jadi jika Anda perhatikan, kami memiliki beberapa Fungsi sini bahwa berakhir di sini. Jadi kita perlu menutup ini pertama dan menambahkan titik koma. Dan kemudian satu ini di sini harus dengan fungsi anonim ini, jadi kami menutupnya sana. Itu reaksi spontan dari tabungan. Iya Nih. AUDIENCE: Apakah ada alasan itu-- hanya dalam semua contoh dalam JavaScript yang pernah saya lihat, kita memiliki kurung kurawal pertama pada baris yang sama seperti fungsi? SPEAKER 1: Itu gaya. Ya. Dan sebenarnya, jika Anda mengambil 61, kita melakukan semua kurung kurawal kita seperti itu. Hah? AUDIENCE: Jika kita tidak melakukan itu pada PSET, adalah bahwa buruk bagi gaya? SPEAKER 1: No. Kami telah secara eksplisit mengatakan kalian untuk melakukan hal ini. Tapi sebenarnya, ini adalah jenis konvensi mendominasi di banyak kelas C dan JavaScript dan jQuery. Jadi jelas, aku sure-- dan benar-benar, jika saya yang melakukan masalah ini benar-benar buta tanpa melihat itu, mungkin ada sangat sedikit cara saya akan mendapatkan ini. Saya mungkin telah seperti, OK, mungkin aku perlu untuk mengambil sesuatu yang input. Dan saya pikir memiliki pengetahuan itu, seperti, OK, jika saya ingin mendapatkan sesuatu dari bentuk yang memiliki ID, Saya menyebutnya dengan cara ini, Saya mungkin akan mendapatkan itu. Saya mungkin mendapatkan ini. Tapi sungguh, satu-satunya hal yang saya pikir Saya benar-benar dapatkan adalah ini di sini. Jadi itu semacam penting untuk tahu, karena dengan ujian yang sulit, Anda jenis memilih pertempuran Anda, kan? Jika Anda tahu bahwa Anda tidak akan mendapatkan bagian pertama untuk jQuery, seperti yang saya katakan, berasumsi bahwa Anda memiliki nilai ini dan melakukan apa yang Anda bisa dengan itu. Dan jika Anda punya waktu, kembali dan mencoba dan mengisi lembar. Tapi jangan biarkan pertanyaan seperti ini benar-benar rawa Anda ke bawah. Karena apa? Ini adalah salah satu pertanyaan pada jQuery dari seluruh ujian. Jadi ya, itu akan lebih bagus lagi jika Anda mendapatkannya. AUDIENCE: [tidak terdengar] Anda dipersilakan untuk menggunakan jQuery. SPEAKER 1: Anda Selamat datang untuk menggunakan jQuery. AUDIENCE: OK. [Tak terdengar]. SPEAKER 1: Bagaimana Anda tidak menggunakannya? Saya harus melihat semua saya JavaScript. Itu sebenarnya jauh lebih mudah, Saya pikir, untuk menggunakan jQuery, karena jQuery sebenarnya mengurangi Jumlah JavaScript Anda menulis mungkin oleh, seperti, setengah. Jadi kode kita mungkin akan dua kali lebih lama tanpa itu. Jadi jika Anda recognize-- terbesar hal untuk mengambil dari masalah ini adalah pola. Jika Anda mengakses sesuatu dari formulir, Anda akan menggunakan tanda kutip, hash, apa pun yang Anda coba akses. Jika itu yang disampaikan, Anda ingin menggunakan sesuatu seperti .submit a. Anda mungkin akan menggunakan fungsi anonim di sana. Jika Anda benar-benar membutuhkan nilai sesuatu, Anda akan melakukan kutipan, hash, apa pun bidang yang, val. Dan pola mengakui seperti itu akan akan jauh lebih berguna daripada benar-benar mengetahui sepele. Iya Nih. AUDIENCE: Jadi jika pengguna menyerahkan nama mereka dan itu berjalan melalui pernyataan itu, akan itu turun dan kembali palsu setelah ini? SPEAKER 1: Tidak, karena peringatan itu, Anda bisa memikirkan seperti return. Ya. Sehingga akan keluar. Ya. AUDIENCE: Bisakah Anda [? tempat?] kurung dari kirimkan, kurung, sesuatu? SPEAKER 1: saya lakukan, saya percaya. Yang satu ini ditutup di sini. Dan kemudian satu ini akan ditutup sini. AUDIENCE: Oh, ada. Baiklah. SPEAKER 1: Jelas, sedikit, hal-hal kecil sintaksis seperti itu, kita akan mungkin hanya lingkaran dan menjadi seperti, jangan lupa kurung Anda. Tapi ya. OKE. Apakah kita memiliki satu sama lain bahwa kita ingin lakukan? Apakah kalian mendapatkan pohon yang biner? Apakah kita ingin pergi ke satu itu? Saya merasa seperti pohon biner dan DOM harus poin bahwa kalian mendapatkan cukup mudah. Saya tidak ingin Anda kehilangan poin itu. OKE. Mari kita lakukan DOM ini di sini. Aku berharap aku punya Permukaan saya jadi saya hanya bisa menggambar di layar. Itulah yang saya digunakan untuk melakukan tahun lalu. OKE. Jadi seperti yang saya sebutkan, kami berbicara tentang DOM, Document Object Model. Mereka mungkin akan memberi Anda beberapa sedikit potongan seperti ini dan meminta Anda untuk membuat sebuah pohon untuk itu. Dan ini hanya semua harus dilakukan dengan berjalan melalui tag. Jadi mari kita coba dan melakukan hal ini. Juga, seperti biasa, jika kalian melakukan kuis ini, karena saya sangat menyarankan Anda lakukan sebagai praktek, salah satu dari mereka yang Anda seperti, Aku benar-benar tidak mendapatkan apa yang terjadi di sini, hanya, tentu saja, mengirimkan saya email dengan pertanyaan, dan saya akan menjelaskan sebisa mungkin. OKE. Kami memiliki beberapa dokumen, dan kami memiliki HTML. OKE. Jadi kami hanya menganalisis tag di sini, kan? Jadi apa yang kita lihat comes-- apa dua subpos bawah HTML? Terutama karena mereka menjorok benar? Kepala dan tubuh. Ah. Kepala dan tubuh. Indah. Jadi mari kita mulai di sini dengan kepala. Apa kepala di bawah? Apa tag berikutnya? Judul. Dan kemudian dalam judul, kuis. OKE. Jadi secara harfiah, itu hanya berjalan melalui tag, OK? Jadi jika kita memiliki tubuh, seperti yang kita pergi melalui, Tubuh memiliki tiga hal di dalamnya, kan? Itu punya tiga divs. Setiap div mendapatkan kotak kecil sendiri. Dan apa yang ada di div pertama? [Tidak terdengar] Dan kemudian yang berikutnya adalah tengah, yang aku hanya akan menyingkat. Dan kemudian yang terakhir adalah bawah. Jadi benar-benar, itu hanya berjalan melalui. Dan karena kita akan memberikan HTML Anda yang menjorok benar, Anda dapat benar-benar hanya dijalankan melalui dan menjadi seperti, OK, di sini adalah HTML. Jadi ini adalah terluar sudut, atau terjauh kiri, sehingga harus hal sendiri. Ini adalah pada lekuk yang sama. Jadi kita tahu bahwa kepala perlu berada pada tingkat yang sama seperti tubuh, namun di balik HTML. Itu yang kita miliki di sini. Kepala dan tubuh adalah saudara kandung, tapi mereka berada di bawah HTML. Dan kemudian kami hanya pergi ke masing-masing. Jadi kepala memiliki judul, yang memiliki kuis, seperti yang kita lihat di sini. Dan kemudian dalam hal ini, kita memiliki tubuh, yang memiliki tiga baris. Jadi ini semua saudara semua di bawah tubuh. OKE? Jadi mudah-mudahan ketika Anda melihat sesuatu seperti ini, Anda seperti, ya, saya hanya bisa menggambar pohon. Ini akan menjadi besar. OKE. Jadi ingin memastikan kalian tahu itu. Jadi kenapa tidak kita pergi ke 32 dengan pohon biner kita? Karena setelah Anda memahami biner pohon pencarian, itu benar-benar tidak buruk. Jadi Everett, bisa saya erase-- saya Maksudku, ini semua online, juga. Jadi jika Anda memiliki pertanyaan. Kehilangan sedikit ruang di sana, tapi itu OK. Jadi pohon pencarian biner adalah hanya cara untuk mengatur data tidak dalam array, di mana akar selalu lebih besar dari anak kiri dan akar adalah selalu kurang dari anak kanan. OKE. Jadi kita memiliki ini pohon pencarian besar di sini. Kami memiliki angka-angka ini, 34, 59, 20, 106, 36, dan 52. Dan kita perlu mengatur mereka sedemikian rupa sehingga akar lebih besar dari semua yang ada di sisi kiri dan kurang dari semua yang ada di sisi kanan. Dan biasanya, apa yang Anda ingin lakukan adalah mencoba dan menemukan sesuatu tentang di tengah. Dengan pohon pencarian biner, Anda mungkin memiliki untuk bermain-main sedikit dengan itu. Tapi dalam kasus ini, mari kita berasumsi bahwa kita tahu pertama ini. Jadi 36 adalah salah satu pertama kami di sini. Biasanya, saya akan mencoba dan memilih sesuatu tentang di tengah yang akan mungkin menghasilkan hasil terbaik. Jadi sekarang kita tahu bahwa segala sesuatu di sisi ini harus kurang dari 36. Tapi juga, apa yang Anda bisa lihat adalah bahwa kita memiliki dua tempat di sini. Jadi, jika kita tahu bahwa kita perlu dua angka yang kurang dari akar, maka Anda hanya bisa memesan ini dan memilih nomor ketiga. OKE. Jadi kenapa tidak kita mulai dengan sisi ini? Jadi, jika kita tahu bahwa segala sesuatu di sisi ini harus kurang dari 36-- tetapi jika kita melihat yang satu ini, kita tahu bahwa jumlah ini harus kurang dari jumlah ini, kan? Karena nomor ini di sini adalah di sisi kanan. Dan ingat, seperti dalam yang lebih besar kami pohon, semua yang ada di sebelah kanan harus lebih besar dari akar. Dengan cara ini, kita tahu bahwa apa yang ada dalam kebutuhan ini lebih besar dari apa pun yang ada di sini. OKE? Jadi kita memiliki dua pilihan untuk dua gelembung tersebut. Kami memiliki 32 dan 34-- atau menyesal. 20 dan 34. Jadi bagaimana menurut Anda kita mungkin menempatkan ini dalam? Kalau yang satu ini harus lebih besar dari satu ini, itu berarti kita ingin memiliki 20 di sini dan 34 di sini. OKE. Jadi dengan cara yang sama, kita melihat di jenis sub pohon. Dan kita katakan, OK, kita belum 36. Kami memiliki 106, 52, dan 59. Yang Tepat? Dalam hal ini di sini, kita tahu bahwa ini salah satu kebutuhan untuk memiliki satu hal yang lebih besar dari dan satu hal yang kurang dari itu. Yang Tepat? Jadi, jika kita menempatkan ini dalam rangka, itu hanya tentang menemukan bahwa nilai tengah lagi. Jadi nilai tengah kami adalah 59. Jadi kita katakan, OK, apa yang kurang dari 59? Nah, itulah 52. Dan apa yang lebih besar dari 59? Nah, itu 106. OKE? Jadi itu hanya sedikit seperti sebuah teka-teki. Ini biasanya membantu, terutama di pohon-pohon kecil seperti ini, jika Anda hanya memesan, jika Anda tahu berapa banyak yang di sebelah kiri dan berapa banyak berada di benar, itu hanya bisa memungkinkan Anda untuk memilih apa yang harus di root. Dan kemudian Anda bisa jenis dari bekerja dari sana. Mm-hm. 33? Tentu. OKE. Jadi kita ingin membuat sebuah node atau pohon pencarian biner. Dan mari kita lihat apa yang mungkin di dalamnya. Dan saya pikir akan ini benar-benar menjadi masalah terakhir kami. Ah. OKE. OKE. Ini seperti apa yang kita bisa anggap sebagai simpul, kan? Kami memiliki beberapa nilai, dan kita tahu bahwa itu akan baik telah meninggalkan dan anak-anak yang benar. Pencarian biner tree-- artinya bahwa ia memiliki, paling banyak, dua anak. OKE? Mari kita berpikir tentang cara kita mendefinisikan linked list, kan? Kami memiliki beberapa int yang mewakili nilai. Kami memiliki beberapa pointer yang diwakili apa itu akan berikutnya. Pohon pencarian biner sangat mirip. Kami masih memiliki beberapa nilai, n, yang kita berikan, kan? Dan kemudian saya menarik ini sangat eksplisit dengan panah, karena mereka secara efektif pointer. OKE? Jadi n biasanya apa? Ini beberapa nilai. Apa yang kita biasanya menunjuk sebagai? Int. Jadi kita memiliki beberapa n int, atau nilai int, atau apa pun yang Anda ingin menyebutnya. Dan kemudian kita memiliki kiri anak dan anak kanan. Yang Tepat? Dan kita tahu bahwa apa yang mereka point-- apa yang mereka menunjuk ke? Mereka menunjuk ke node lain, kan? Jadi bagaimana kita mendeklarasikan pointer simpul? AUDIENCE: [tidak terdengar]. SPEAKER 1: Mm-hm. Dan kita akan memiliki dua dari mereka, kan? Dan kemudian kita bisa benar-benar jangan berangkat ke anak kiri dan tepat untuk anak kanan. Actually-- maaf. Karena kita perlu struct. Jadi struct adalah karena kita belum selesai menyatakan node belum. Jadi node dalam sini. Ini semacam seperti definisi rekursif, kan? Jadi ketika kita berada dalam definisi ini, kita belum selesai menyatakan node sebagai struktur, jadi kita harus melakukan struct simpul hanya untuk mengatakan, ya, sebenarnya kita merujuk kembali ke diri kita mengetik hal. Itu seperti setelah itu dibuat, itu akan baik-baik saja. Jadi seberapa besar kalian pikir ini? Apa ukuran struktur ini? 12. Mengapa? Tepatnya. Dan pada kenyataannya, salah satu pertanyaan pertama Kuis Satu adalah tentang ukuran, itulah sebabnya saya bertanya. Baiklah. Kita akan berakhir, karena DCE akan berteriak padaku jika kita tidak. Tapi jika kalian memiliki pertanyaan, Tentu saja, email saya, beritahu saya. Kalian akan batu itu. Saya sangat gembira. Kalian akan dilakukan sebagai Rabu, dan kemudian Anda akan mendapatkan untuk bekerja pada akhir Anda proyek, dan itu akan menjadi luar biasa. Saya akan berada di sini berikutnya Minggu 4:00-04:30 jika kalian ingin datang mengambil kuis Anda. Jika Anda ingin menemukan saya beberapa waktu yang lain atau hanya mengkoordinasikan waktu yang berbeda, merasa bebas untuk membiarkan saya tahu. Jika tidak, ini adalah bagian terakhir kami. Jadi itu bagus untuk melihat kalian. Silakan mengambil lebih permen. Dan keberuntungan pada kuis Anda.