[Muzik bermain] SPEAKER 1: Baiklah, semua orang. Selamat datang ke bahagian terakhir anda dengan saya. Ia agak semester. Saya tidak percaya ini adalah, seperti, minggu 12 atau 11, sesuatu seperti itu. Tetapi kerana ia lepas kami seksyen, kami mempunyai banyak gula-gula. Dan saya akan cuba prep anda dan juga saya boleh bagi kuiz anda pada hari Rabu. Jadi mungkin bukan cara terbaik untuk, seperti, bahagian akhir kajian dengan kuiz. Tetapi kami akan cuba membuat ia menyeronokkan. Dan selalu ada gula-gula. Jadi mudah-mudahan, yang akan membuat ia lebih baik. Kuiz anda akan menjadi cantik banyak perkara yang sama seperti Kuiz Zero. Ia akan menjadi format yang sama, panjang sama. Anda akan berada dalam bilik berselerak di seluruh kampus, kerana ada dekat dengan 900 daripada anda, dan kita tidak boleh semua memegang anda di bilik-bilik seperti ini. Jadi pastikan untuk melihat semua Kuiz Satu dokumentasi talian di cs50.harvard.edu malam ini atau malam esok. Pastikan anda tahu di mana anda pergi, apa yang anda perlukan untuk membawa. Benar-benar, anda hanya perlu membawa diri anda dan pensil, dan anda harus denda. Soalan-soalan yang akan sangat banyak yang sama. Terdapat mungkin akan menjadi pasangan aneka pilihan, jawapan pendek pasangan, beberapa coding, mungkin beberapa benar / salah, sepadan macam perkara. Oleh itu, anda tidak boleh terlalu terkejut dengan format. Apa yang boleh mengejutkan ialah panjang, yang, pada tahun-tahun sebelumnya, telah lebih lama. Dalam tahun saya, saya tidak mempunyai rakan tunggal yang saya ingat kemasan peperiksaan. Terdapat seperti pelbagai muka surat dibiarkan kosong. Jadi panjang boleh menjadi jenis mengelirukan hanya kerana dalam beberapa tahun, ia mempunyai menjadi lebih lama daripada Kuiz Satu. Saya tidak tahu apa itu akan menjadi seperti tahun ini, tetapi ia adalah sesuatu untuk menyedari. Di samping itu, orang difficulty-- cenderung untuk mencari Kuiz Satu lebih sukar daripada Kuiz Zero. Sekali lagi, anda tahu, jika anda jenis berjalan daripada perasaan yang tidak selesa sedikit kerana yang tidak kamu lakukan serta anda fikir anda atau anda merasa seperti anda tidak lakukan dan juga seperti yang anda lakukan pada kuiz Satu, ingat bahawa mungkin ada yang Banyak orang lain berasa begitu. Saya pasti salah satu dari orang-orang. Kuiz satu, seperti, mencampakkan saya untuk gelung. Dan rakan-rakan saya mempunyai ini besar gambar mereka di JP Licks jenis ini dengan besar sundae, menjadi seperti, Kuiz Satu, dan kelihatan seperti mereka berada dalam air mata. Jadi, perasaan umum. Ia adalah ujian yang sukar, ia adalah kuiz sukar. Jelas sekali, jika anda keluar dan anda merasa seperti anda menggegarkan itu, hebat untuk anda. Tetapi tahu bahawa anda mungkin elok anda hampir pasti yang paling tidak sahaja jika anda berjalan keluar berasa seperti, eh, mungkin boleh mendapat yang lebih baik. Ia sukar. Mm-hm. PENONTON: Berapa banyak adalah ia bernilai berhubung dengan [didengar]? SPEAKER 1: Ia bernilai yang sama. Yeah. Tetapi sekali lagi, ia juga akan menjadi dipengaruhi oleh bagaimana lain di dalam kelas tidak, bagaimana seksyen anda lakukan, bagaimana anda telah bertambah baik dari masa ke masa. Penggredan adalah sedikit daripada sebuah kotak hitam. Jadi apa bilangan sebenar atau peratusan anda mendapatkan tidak semestinya suka langsung berkait rapat dengan gred anda akan mendapatkan. Ada banyak faktor-faktor yang pergi ke dalamnya. Maka dengan itu, kita akan melalui beberapa kajian kuiz. Saya hanya pergi untuk menjalankan ini seperti masa lalu untuk anda semua. Saya mempunyai semua jawapan untuk kuiz Salah satu tahun lepas. Jadi, jika anda semua ingin menarik bahawa sehingga pada komputer anda sendiri, jika anda telah mengambil peperiksaan ini sebelum dan anda mempunyai soalan, Saya memikirkan bahawa kita boleh hanya pergi melalui beberapa orang-orang yang lebih sukar pada itu. Oleh itu, kita boleh bercakap tentang hal itu, mungkin mendapatkan gambaran yang lebih sedikit ke dalam gerak hati di sebalik beberapa soalan-soalan ini, bagaimana untuk mendekati mereka. Juga, seperti masa lalu, Saya mempunyai dek 100-slaid yang pada dasarnya semua slaid yang saya sediakan sebelumnya bahagian sejak saya terakhir anda quiz-- mempunyai dalam dek ini. Oleh itu, kita boleh pergi melalui apa-apa yang cukup banyak bahawa kita telah berbincang mengenai terlebih dahulu yang mungkin anda ingin penjelasan lebih lanjut mengenainya. Kami boleh melakukannya pertama. Tetapi jika tidak, saya super gembira hanya untuk jenis kerja melalui masalah-masalah ini dengan anda. Dan saya benar-benar di sini untuk memberi tumpuan kepada apa yang anda semua berfikir akan menjadi yang paling penting untuk diberikan tumpuan. Seperti, jelas, semua hal ini adalah penting. Terutama kerana kami melalui Kuiz Satu, Saya pasti akan menunjukkan perkara-perkara seperti, oh, ini mungkin sesuatu anda benar-benar ingin tahu atau anda ingin mempunyai dalam lembaran menipu anda. Saya akan memberitahu kamu perkara-perkara seperti yang kita jenis pergi melalui. Maka pada masa yang sama, ada apa-apa perkara yang kamu ingin pergi ke? Juga, jika saya tidak mempunyai ia di dek saya, kita boleh tarik sehingga sesuatu di web, atau kita boleh cuba dan membuat sehingga satu contoh dengan cepat. Tetapi apa-apa konsep yang anda lelaki adalah sedikit kabur pada. [? Brian,?] Adakah anda have-- PENONTON: Oh, adalah ia terkumpul? Seperti, adalah barangan pada Kuiz Zero akan berada di sini? SPEAKER 1: Ia terkumpul, tetapi ia lebih daripada penekanan kepada perkara-perkara sejak kuiz terakhir anda. Jadi jelas, anda semua mempunyai belajar tentang pembolehubah, dan gelung, dan Syarat yang. Dan ia tidak seperti mereka yang baru pergi, kerana mereka jelas wujud dengan semua lain yang kita telah belajar sekarang. Mungkin ada satu soalan pada pelbagai, atau terdapat mungkin soalan pada carian yang berbeza. Atau mungkin ada pasangan soalan pada sesuatu yang anda mungkin yang mempunyai kaitan dengan menyusun atau kesilapan yang berbeza. Tetapi jika anda telah melihat Kuiz Satu daripada tahun lepas, anda akan melihat bahawa ia adalah sangat banyak memberi tumpuan kepada perkara-perkara yang telah berlaku sejak kuiz terakhir anda. Mengapa pintu yang sentiasa dikunci? Ia benar-benar mengganggu saya. Oleh kerana saya sentiasa cuba untuk melaluinya. Jadi itulah cukup banyak bagaimana kuiz akan. Jadi ada apa-apa konsep yang kamu ingin pergi ke? Atau kita boleh melompat terus ke dalam hanya melihat Kuiz Satu dari tahun lepas dan seperti hendak pergi melalui soalan amalan di sana. Kami juga boleh menukar kembali dan sebagainya. Ini bukan semacam satu masa perkara. Apa-apa soalan? Ya. PENONTON: Bolehkah saya bertanya soalan mengenai another-- SPEAKER 1: Satu lagi satu? PENONTON: Ini adalah dari tahun lain. SPEAKER 1: Yeah. Kami juga boleh lakukan pada tahun yang lain. PENONTON: OK. Maka pada 2011. SPEAKER 1: 2011. Ooh, yang merupakan tahun di hadapan-Ku. Biarlah aku mengeluarkan sehingga ini. PENONTON: Saya berfikir. SPEAKER 1: Aspek ini nisbah adalah membuang aku. PENONTON: 11 dan 12. SPEAKER 1: 11 dan 12. OK. Nah, di sini, mengapa kita tidak melakukan ini? Anda guys-- semua orang hanya mengambil pasangan minit untuk melihat melalui kuiz. Dan kami akan menyusun senarai. Dan kemudian kita akan pergi melalui mereka. Baiklah? Walaupun saya mendapat sekumpulan barangan ini ditubuhkan. OK. Saya hanya akan menulis perkara di atas kertas. 2011, 11 dan 12? Saya hanya akan mengubah paparan ini. OK. Itulah yang lebih baik. Lebih ini. Baiklah. Orang lain yang mempunyai apa-apa mereka ingin untuk memulakan dengan? Juga, terlupa untuk mengatakan, jika anda ingin lebih banyak daripada sekumpulan orang bercakap pada anda dan hanya memberi anda retak kursus dalam tempoh enam minggu lepas, kita menjalankan kajian semula sesi dari 07:00 kepada 8:30 malam ini di Barat Laut B103, yang juga berlaku masa lalu, di mana ia akan menjadi saya, Hana, Daven, dengan Gabe dan Rob sejenis membantu dari luar hanya jenis membuang semua maklumat yang mungkin ingin mempunyai dalam lembaran menipu anda, slash, kenal umum di sana. PENONTON: Itu juga online, bukan? SPEAKER 1: Ia juga talian. Oleh itu, anda juga boleh tinggal daripada ini cuaca menjijikkan, pergi ke asrama anda, dan hidup mengalirkannya jika anda ingin. Saya pasti banyak people-- saya tahu saya akan menjadi melakukannya jika saya berada dalam kasut anda. OK. Jadi mengapa tidak kita mula with-- semasa anda guys-- diharapkan, anda sedang mencari melalui. Jika tidak, saya mungkin hanya mula bekerja melalui perkara yang berbeza pada Kuiz Satu dari tahun lepas melainkan anda mempunyai soalan khusus. Kita bermula dengan ini soalan di sini mengenai susunan. Jadi tidak semua orang ingat jenis apa timbunan adalah? Bagaimana kita cenderung supaya- boleh sesiapa sahaja memberikan saya suatu perihalan am mengenai timbunan? Sejenis struktur data. OK. Jadi ia adalah salah satu daripada struktur data yang kita mengharapkan anda untuk membiasakan diri with-- seperti susunan, tatasusunan, beratur, sebagainya. Ya. PENONTON: Seperti Pertama Dalam, Out lepas, sesuatu. SPEAKER 1: Ia Pertama Dalam, Last Out. Tepat. Jadi timbunan yang betul-betul apa yang kita cenderung untuk berfikir apabila kita berfikir daripada timbunan sesuatu. Jadi timbunan pinggan. Plat pertama anda meletakkan akan menjadi di bahagian bawah, dan ia akan menjadi yang terakhir salah satu yang anda keluarkan pada akhir. Kerana mereka dibandingkan. Dan anda mengambil salah satu daripada bahagian bawah, biasanya, perkara crash dan pecah. Jadi susunan yang boleh anda fikirkan hanya suka timbunan pinggan. Atau contoh yang kita sentiasa suka untuk digunakan adalah dalam dewan D, anda mempunyai dulang, mereka semua sedang disusun sehingga, dan anda mengambil dari atas. Jadi yang terakhir dalam satu adalah pertama keluar. OK. Jadi dalam kes itu di sini, kita melihat kita have-- Saya tertanya-tanya jika saya benar-benar boleh zum dalam sedikit. Oleh itu, kita mempunyai ini struct sini. Betul? Jadi, anda mempunyai beberapa struct yang mempunyai beberapa int nombor kapasiti. Jadi apa yang kita berfikir yang mewakili? Ini adalah pelbagai dengan saiz KEUPAYAAN. Jadi ini benar-benar mewakili timbunan kita secara umum. Stack kami adalah benar-benar hanya satu pelbagai dengan beberapa jumlah set yang maksimum, iaitu adalah, kapasitinya. Dan kemudian kita mempunyai beberapa saiz int, yang akan mengesan saiz timbunan kami sepanjang kursus bila kita menggunakannya. OK? Dalam kes ini di sini, kita mengatakan bahawa kita saiz tindanan telah dimulakan ke 0. Jadi kita mempunyai tindanan kosong sekarang. Dan kemudian kita mahu menyelesaikan pelaksanaan pop sehingga ia kembali int di bahagian atas. Dan kemudian jika ia kosong, ia mengembalikan negatif 1. OK? Jadi saya mahu anda semua hanya untuk berfikir tentang apa yang kita boleh lakukan di sana. Apa yang mungkin menjadi salah satu yang pertama perkara yang kita akan ingin menyemak? Ada satu perkara yang besar di sini. Bilamana says-- jika ada yang pernah beberapa Jika kenyataan, seperti "Jika tindanan kosong," atau "Jika ini mengembalikan null," atau "Jika ini adalah apa sahaja" - maaf. PENONTON: Tuliskan satu kenyataan Jika. SPEAKER 1: Betul. Anda boleh menulis satu kenyataan Jika. Dan itu mungkin salah satu daripada perkara pertama yang anda mahu untuk memeriksa. OK. Setiap kali mereka memberikan anda jenis seperti kes sudut seperti ini, itu biasanya salah satu perkara pertama anda akan memeriksa dalam kod anda. Juga, sesuatu untuk mengiktiraf untuk kuiz adalah jika anda mempunyai cara yang tidak cekap untuk melakukan sesuatu, menulisnya. Kerana kita tidak penggredan anda pada reka bentuk, kami penggredan anda pada kebenaran untuk kuiz. Jadi, walaupun anda tahu bahawa itu super yang cara buruk untuk melakukan sesuatu tetapi ia berfungsi, menuliskannya, OK? Kanak-kanak benar-benar, saya lihat year-- lalu jika anda melihat satu tahun lepas, mereka seperti, melakukan piramid Mario. Dan mereka benar-benar hanya melakukan "cetak, hash, cetak, hash, hash, cetak, hash, hash, hash. " Tetapi ia adalah betul. Ia apa yang kita diceritakannya kepada, jadi anda tidak boleh mengambil mata di belakang. Jika anda turun ke wayar, jelas, anda ingin mendapatkan penyelesaian yang lebih elegan, dan penyelesaian lebih elegan akan mungkin menjadi kod kurang, yang bermaksud anda mungkin mempunyai peluang yang lebih tinggi untuk menjadi tepat. Tetapi jika anda seperti, anda tahu apa, tidak, saya tidak mempunyai masa, saya tahu ini adalah satu penyelesaian, ia bukan yang terbaik, menulisnya. Dan anda juga boleh menulis kepada sampingan, saya tahu ini adalah sesuatu yang buruk, tetapi saya tahu ia berfungsi. Jadi hanya kepala-up. OK. Jadi jelas, perkara pertama adalah kenyataan Jika ini. Jadi apa yang kita berfikir Jika ini kenyataan akan menjadi? Dan sebenarnya, biarlah saya terbuka editor Sublime besar saya. Saya akan memberi kod ini dan kemudian menunjukkan lelaki apabila ia dilakukan. Jadi int pop. OK. Jadi, jika kita mempunyai int ini pop void-- begitu jelas, ini adalah beberapa fungsi yang mengambil dalam apa-apa dan mengembalikan integer, bukan? Jadi ia hanya akan bercakap tentang timbunan ini bahawa kami telah mencipta. Jadi hanya menterjemahkan ini lalu hukuman, "jika timbunan kosong, pop kembali negatif 1, "bagaimana kita boleh berbuat demikian? Jadi Jika apa? Bagaimana kita tahu bahawa tindanan kosong? Ia hanya saiz sama dengan 0. Stack.size sama dengan 0. Juga, saya jenis buta menulis di sini. Jadi, jika saya membuat apa-apa typos-- oh, juga terlupa untuk menyebut ini. Minggu lepas, saya benar-benar digambarkan apa masalah kami adalah dengan JavaScript. Jangan mengambil kesempatan saya dan D. Anda harus sahaja kesempatan saya dan mendapatkan unsur oleh Id. Dan itu adalah keseluruhan ralat. Oleh itu, jika kamu kembali dan sebenarnya melihat melalui kod saya, jika anda hanya membuat segala-galanya yang huruf kecil d, "lupa unsur oleh Id," ia akan bekerja. Jadi seperti yang telah Kujanjikan, saya sangat rapat. Saya hanya dipermodalkan sesuatu Saya tidak sepatutnya, yang Saya pasti anda semua mempunyai dalam Serangga terakhir anda. Jadi, jika saiz kami sama dengan 0, apa yang kita patut lakukan? PENONTON: Kembali negatif 1. SPEAKER 1: Kembali negatif 1. Cool. Jadi sekarang apa yang kita lakukan? Kami mahu pop sesuatu dari. Sekarang ini berlaku di mana kita mempunyai sesuatu. Saiz kami adalah lebih besar daripada 1 atau lebih daripada 0, bukan? Kami benar-benar mempunyai sesuatu di sana. Jadi apa yang kita mahu lakukan adalah kita mahu kembali di sini. Kami akan mengatakan bahawa kita mahu untuk kembali bahagian tepi. OK? Jadi bagaimana kita boleh berbuat demikian? Bagaimana kita kembali bahagian atas tindanan? Ingat, timbunan kami adalah hanya pelbagai, bukan? Ia mempunyai kapasiti beberapa bahawa kami telah diberikan itu. Seperti yang kita telah meletakkan perkara on-- atau sebenarnya, kita akan menulis "push" selepas ini. Jika perkara-perkara yang di there-- mungkin gambar yang akan membantu. Hm, saya suka kapur besar lebih baik. Jadi jika- dan anda boleh hanya berfikir kerana timbunan kami. Jadi ini adalah 0, 1, 2. Saya tidak tahu mengapa peti saya semakin kecil. Tetapi di sana. OK. Jadi ini adalah beberapa timbunan dengan kapasiti 5. Dan mari kita mengatakan bahawa kita mempunyai sesuatu di sini dan kita mempunyai sesuatu di sini. Jadi pada ketika ini, kami saiz adalah sama dengan apa? 2. Dan jika kita mahu pop sesuatu dari itu, itu bererti kita ingin mendapatkan membuangnya ini di sini. OK? Jadi bagaimana kita akan kembali nilai ini? PENONTON: tolak Saiz 1. SPEAKER 1: Betul. Jadi saiz tolak 1, atau anda boleh buat saiz tolak tolak. Tetapi kita tidak boleh hanya melakukan saiz. Ia di dalam struct, kan? Jadi stack.struct. atau stack.size. Itulah indeks kami di sana. OK? Dan kemudian jika dilihat kembali struct kami di sini, kita dapati bahawa untuk sebenarnya mengakses array, yang perlu kita lakukan stack.numbers untuk benar-benar mengakses pelbagai itu. Supaya mengembalikan bahagian tepi. Tetapi sesuatu bahawa- jika kamu melihat di kunci jawapan, ini adalah semua mereka memberikan anda. Jadi ini adalah ia. Tetapi saya mungkin berpendapat bahawa mereka miss-- aduh, tidak apa yang saya mahukan. Saya mungkin berpendapat bahawa mereka kehilangan sesuatu, because-- ya. PENONTON: Kurangkan saiz. SPEAKER 1: Betul. Kita perlu mengurangkan saiz kami sekarang. Jadi apa yang rumit mengenai ini adalah apabila anda kembali sesuatu, fungsi anda akan keluar, kan? Jadi apa yang mungkin kita lakukan adalah sebenarnya mengurangkan saiz kami pertama. Dan kemudian kita boleh buat stack.size. Kami hanya boleh menggunakan stack.size sebagai indeks kami, tidak boleh kita? Kerana jika stack.size adalah 2, kami penyusutan itu. Dan supaya ia 1, yang adalah indice sebenar kami. Setelah kami menamatkan ini, kita sebenarnya hanya mempunyai satu array kami. Jadi ia tidak kedua-duanya. PENONTON: [didengar]? SPEAKER 1: Nah, dalam kes ini, kami baru kembali unsur di bahagian atas yang pada kami saiz itu di bahagian atas. Tetapi kami tidak melakukan apa-apa kepada saiz selepas kita dikeluarkan unsur itu. Ini tidak pernah berubah saiz kami lagi. Ini tidak benar-benar memang menukar saiz kami. Tetapi untuk membuat ia sedikit lebih jelas, anda boleh melakukan stack.size tolak tolak. Bagi saya, ia membuatkan ia, saya tidak tahu, sedikit lebih jelas bahawa- ah, bahawa anda benar-benar berubah saiz dan kembali ia. Cara lain adalah denda, kerana anda telah berubah dan kembali pada masa yang sama. Tetapi ini adalah salah satu cara untuk menulis itu yang saya mahu menunjukkan kepada anda semua. Adakah ini masuk akal? Susunan, saya fikir, adalah lebih mudah daripada beratur. [Ketawa] OK. Adakah anda mempunyai apa-apa soalan yang khusus kira-kira 11 dan 12, atau just-- PENONTON: Saya rasa ia adalah timbunan. SPEAKER 1: Saiz timbunan? PENONTON: Yeah. SPEAKER 1: Gotcha. OK. Ya, anda boleh melakukannya di salah satu daripada dua cara. OK. Jadi sekarang kita mempunyai satu lagi. Ini adalah benar-benar pelik, seperti tidak mempunyai ini pada skrin saya. Oleh itu, jika kita melihat di sini, kami kini ingin menyiapkan pelaksanaan menolak, yang sebenarnya meletakkan sesuatu, pergi dan memasukkan sesuatu ke dalam giliran kami, atau ke dalam timbunan kami. OK? Oleh itu, jika kita lihat, kita mempunyai beberapa perkara. Kami mempunyai great-- kami jika segala-galanya, setiap kali kita mempunyai salah satu daripada ini, anda semua sekurang-kurangnya perlu mendapatkan setengah mata, kerana semua yang anda perlu lakukan adalah menukarkan ini ke dalam C. Dan mereka memberikan separuh daripada ia. Jadi "jika timbunan penuh atau ia adalah negatif, kemudian tolak kembali palsu. " OK? Oleh itu kita hanya mahu positif integer untuk berada di timbunan kami. Baiklah? Dan ini akan sama ada kembali benar atau palsu. Oleh itu, kita harus [didengar] bool. OK. Jadi menterjemah. PENONTON: [didengar]. SPEAKER 1: Oh, terima kasih. Yeah. Ini adalah mengapa saya mempunyai anda semua. Int n. Perfect. Kerana kita meletakkan sesuatu ke timbunan kami. Kami benar-benar memerlukan nombor. OK. Jadi hanya mengambil yang baris terakhir yang mereka memberi kami, kami jenis kes sudut, apa yang anda fikir kami ada di sini? Jelas sekali, kita akan mempunyai beberapa Jika. OK. Oleh itu, kita berkata, Jika tindanan kami adalah penuh atau jika n adalah negatif. Jadi mungkin paling mudah untuk memulakan dengan, jadi jika n adalah kurang daripada 0 or-- ingat bagus anda DAN dan ATAU pengusaha di sana. Bagaimana kita akan menyemak untuk jika melihat timbunan kita sarat? Apa yang berlaku? PENONTON: Saiz KEUPAYAAN sama. SPEAKER 1: Tepat. Perfect. OK. Dan apa yang kita ingin lakukan di sana? PENONTON: Kembali palsu. SPEAKER 1: Kembali palsu. Perfect. Jadi separuh jalan di sana, bukan? Sekurang-kurangnya, anda semua akan mempunyai separuh daripada ini. Jadi mari kita berfikir tentang perkara ini. Jadi ini adalah tindanan kita bermula dengan. Kami cuba untuk meletakkan beberapa elemen di sini. Kami mempunyai saiz itulah sama dengan 2 sekarang. Kami mempunyai kapasiti yang sama hingga 5. Dan mari kita mengatakan bahawa kita mempunyai beberapa n itu sama dengan 3. Oleh itu, kita perlu input 3 ke ruang ini. Dan kita perlu input ke dalam indeks 2. Betul? Jadi bagaimana kita boleh melakukan ini? Cuba untuk assign-- kita ingin mengakses pelbagai kami. Jadi stack.numbers. Tetapi apa yang akan indice kita mahu ini menjadi? PENONTON: [didengar]. SPEAKER 1: Yeah. Stack.size. Dan kita mahu itu sama n, bukan? PENONTON: [didengar]. SPEAKER 1: Saya sebenarnya hanya melihat bahawa. Saya berfikir yang salah. PENONTON: Jangan anda mahu ruang yang lalu saiz semasa? SPEAKER 1: Nah, jika kita melihat di sini, saiz kami pada ketika ini ialah 2. Kami mahu ia pergi ke dalam indeks 2, kerana ini adalah bahagian tepi kami. Oleh itu, saya akan mengatakan bahawa ia harus stack.size, dan kemudian anda akan meningkat stack.size. Adakah semua orang bersetuju? Saya rasa saya bersetuju dengan itu. Anda semua boleh berhujah dengan saya jika anda ingin. Atau tidak berhujah, tetapi kita boleh berbincang. PENONTON: [didengar]. SPEAKER 1: Mm-hm, adalah di mana ia membuka kerana pengindeksan sifar. Jadi manakala di bahagian pertama, Saya fikir mereka adalah salah, dan mereka sebenarnya betul, ini sebahagian, saya benar-benar berfikir mereka adalah salah. Saya akan mengatakan anda perlu pasti input di sini. Saya rasa kita semua bersetuju kita mempunyai saiz 2. Itulah di mana kita mahu nombor baru kami pergi. Jadi stack.numbers di stack.size harus sama n. Dan kemudian kita akan menokokkan stack.size itu. ++. Dan kemudian apa yang kita mahu lakukan? Ada satu perkara yang lepas kita perlu lakukan jika kita berjaya dimasukkan ini? Kembali benar. Dan sekarang anda selesai. Jadi saya rasa seperti ia merupakan keseluruhan tolak tolak stack.size dan stack.size ++ yang perkara yang merosakkan. Ugh. Saya keep-- saya ini spontan kecenderungan untuk sentiasa melanda Kawalan, S, kerana saya tidak pernah mahu kehilangan apa-apa kerja saya. Tetapi saya tidak perlu berbuat demikian sekarang. OK. Sehingga adalah timbunan. Cool. Adakah terdapat apa-apa? Tidak jumpa apa yang anda guys soalan lain yang anda hendak suka untuk pergi lebih dari kuiz sebelum ini? Jika tidak, kita jenis boleh mula bercakap melalui Kuiz Satu daripada tahun lepas. Ya. PENONTON: Untuk pertama bahagian, saya tidak benar-benar memahami bagaimana anda dipadam nombor. Bukankah ia masih di sana? SPEAKER 1: Bilangan ini masih ada. Tetapi apa yang berlaku ialah kerana anda mempunyai ia memberitahu bahawa bahagian tepi anda di sini, apabila anda pergi untuk menambah sesuatu ke dalam tindanan, ia hanya akan menggantikannya. PENONTON: Oh, OK. SPEAKER 1: Yeah. Jadi ia seperti ia lupa dan ianya ada jenis perkara walaupun ianya ada. PENONTON: [didengar] atau apa-apa? SPEAKER 1: No. Oleh kerana kita berada dalam satu pelbagai, anda tidak perlu bimbang about-- anda akan hanya mengatasinya apabila anda memerlukannya. Baiklah. Apa-apa soalan lain? Jika tidak, kita hanya akan mula bekerja melalui. Yeah. PENONTON: Nah, yang satu ini adalah pada 2013, tetapi hanya melalui barangan SQL. SPEAKER 1: SQL? OK. Jadi ini adalah 26 melalui 29. PENONTON: Yeah. SPEAKER 1: OK. Lovely. Mari kita tarik mereka sehingga. Oh, melihat. Adakah anda semua menikmati Steve Ballmer bercakap, dengan cara itu? Ia agak kelakar, pada pendapat saya. Saya suka bahawa setiap kali saya membawa CS50 ini laman web dalam seksyen, ia seperti, oh, menonton seksyen. Dan saya seperti, mm. PENONTON: Bolehkah kita melakukannya? SPEAKER 1: Kami akan melakukannya pada akhir. Bagaimana itu? Kerana saya tahu anda semua telah sentiasa mahu. Oleh itu, kita akan melakukannya pada akhir. Satu soalan. PENONTON: [didengar]. SPEAKER 1: Ia akan menjadi bahagian meta. PENONTON: Ia seperti 5 saat. PENONTON: Betul ke? PENONTON: Ia seperti 20 saat. [INTERPOSING SUARA] [Ketawa] SPEAKER 1: Saya suka bahawa anda telah dilakukan ia, yang adalah apa yang membuatkan saya gembira. OK. 26. OK. Sebenarnya, kita hanya akan cermin ini sekarang, kerana saya tidak boleh. Ini adalah menjengkelkan. OK. Sekarang saya boleh melihat segala-galanya. Lovely. OK. Jadi jelas, ini harus membawa kembali kenangan yang hebat dari [? CSG?] Kewangan. Separuh daripada anda tentang telah digred milik anda sekarang. Separuh lagi saya akan dapat sangat, tidak lama lagi, saya janji. Oleh itu, kita mempunyai beberapa jadual SQL itulah Akaun sini. Mungkin sama dengan jadual pengguna lelaki anda. Dan kita mempunyai beberapa jumlah bahawa adalah kunci UTAMA dan mewakili Nombor akaun 12 angka. Dan kira-kira berapa banyak wang yang mereka ada. Dan nilai lalai adalah 100. Dan mereka memberikan mereka $ 100 mana-mana kali mereka membuka akaun. Saya ingin bank saya melakukannya. OK. Oleh itu, kita mahu menyiapkan skema oleh menyatakan sebelah nombor dalam imbangan jenis SQL yang sesuai. Jadi, apa yang anda semua berfikir akan menjadi jenis seperti reaksi anda untuk jenis untuk kedua-dua? PENONTON: Int. SPEAKER 1: int. OK. Dan kemudian untuk keseimbangan? Perpuluhan. OK. Jadi hak perpuluhan itu. Int terletak berhampiran. Jenis perkara yang besar ini adalah digariskan nombor akaun 12 angka. Setiap kali kita mempunyai sesuatu itu lebih besar daripada lapan digit, mereka mahu anda untuk menggunakan besar int, yang mana saya fikir is-- PENONTON: Adakah itu hanya SQL? SPEAKER 1: Ia satu-satunya masa saya dengar daripadanya adalah SQL-- seperti menggunakan int besar. Ia hanya untuk memberi anda ketepatan sedikit lebih, memastikan anda tidak Perkara Jenis melimpah. Dalam kejujuran semua, saya rasa ini adalah pasti salah satu yang di mana ia seperti, oh, ia bertujuan untuk orang-orang yang mempunyai pengetahuan yang lebih sedikit daripada SQL. Kami tidak pernah bercakap tentang ints besar dalam Serangga anda. Jadi ia adalah jenis seperti saya cukup pasti jika anda meletakkan int, ianya separuh kredit. Dan seperti yang saya katakan sebelum ini, ada pergi menjadi beberapa soalan yang hanya dimaksudkan untuk perjalanan anda, jadi bahawa tidak semua orang mendapat 100. Kerana sudah tentu, terdapat beberapa orang di CS50 yang telah melakukan ini seperti lapan tahun, dan anda seperti, apa yang anda lakukan? Tetapi yeah. Perpuluhan untuk kira-kira adalah satu jelas. Dan kemudian int besar untuk jumlah hanya kerana itu, seperti, bergaris bawah 12 angka. Apabila apa-apa ditebalkan atau ia digariskan, seperti, memberi perhatian kepadanya. Kami tidak melakukannya hanya kerana. OK. Jadi "andaikan bahawa mengenakan bank bayaran bulanan $ 20 untuk semua akaun. Dengan apa pertanyaan boleh bank memotong $ 20 dari setiap akaun walaupun ia dihasilkan oleh beberapa baki negatif? " Jadi mari kita mulakan mudah. Kami mempunyai empat perintah utama untuk SQL, yang? Adakah anda semua masih ingat empat yang besar yang saya memberitahu anda? UPDATE, DELETE, SELECT, dan sisipan. Perfect. Faham. Jadi apa yang kita berfikir kekuatan menjadi yang paling berguna untuk yang satu ini? Kami are-- UPDATE. Tepat. Jadi MENGEMASKINI, kerana kita cari pada akaun yang telah ada. Jadi ingat am kami jenis perkara yang kemas kini. Dan kemudian apa yang datang selepas UPDATE? Kami mempunyai beberapa jadual yang kami rujukan. Jadi jika saya tarik Sublime again-- UPDATE. Jadi ini adalah satu format umum. Oleh itu, kita mempunyai jadual UPDATE. Dan kemudian apa yang perkara yang akan datang kita ada? Anda boleh melakukan MANA. Dan kemudian kita mempunyai beberapa kelayakan di sini. Kemudian apa yang kita ada akan datang? Kami mempunyai beberapa sesuatu SET-- sama dengan sesuatu. Blah blah sama. Dikemaskini blah. Betul? Jadi itulah seperti yang umum idea untuk beberapa kemas kini. OK? Jadi mari kita mula mengisi ini dengan apa yang diharapkan. Jadi apa jadual kita bercakap tentang? Akaun. Dan kemudian dalam kes ini, apa yang benar-benar sejuk adalah kita bercakap mengenai tertentu pengguna dalam akaun kami, atau kita bercakap mengenai semua pengguna? Kami bercakap tentang semua pengguna. Jadi, dalam kes itu, kita boleh hanya memadam MANA kelayakan ini. MANA ini hanya apabila anda mahu untuk menghadkan apa yang anda berubah-ubah. Jika anda mahu menukar keseluruhan meja, anda hanya boleh turun itu. OK. Jadi sekarang kita berada di bahagian SET kami. Apa yang kita mahu berubah? PENONTON: Kira. SPEAKER 1: Baki. Dan kita akan supaya- bagaimana kita akan mengubah imbangan? Kami mempunyai $ 20 bayaran, bukan? Tolak 20. Dan mereka berkata ia adalah OK jika kita mempunyai baki negatif. Jadi dalam kes ini, anda tidak perlu melakukan apa-apa semakan ralat lanjut. OK? Yang benar-benar semua yang anda perlu lakukan. Cool? OK. Jadi mari kita pergi melalui satu depan. "Dengan apa SQL pertanyaan boleh di bank mendapatkan semula nombor akaun pelanggan yang terkaya dengan mengimbangkan lebih daripada $ 1,000? " Jika bank anda dan pelanggan terkaya anda hanya orang-orang dengan lebih daripada $ 1,000, Saya rasa seperti anda melakukan sesuatu yang salah. Seperti, bagaimana bank yang hidup pada itu? Seperti, kepentingan itu, tidaklah sampai. OK. Dengan perkara seperti ini, apa yang anda berfikir, empat fungsi kami, yang anda fikir kita akan digunakan? SELECT. Perfect. SELECT. OK. Jadi kami memilih beberapa pengecam DARI meja. Dan kemudian MANA keadaan. Jadi seperti yang kita pergi melalui ini, saya hanya akan untuk memberikan anda semua ulang kaji umum format umum semua ini. Jadi kami memilih beberapa jenis daripada [? perkara. ?] Dalam kes ini, ini akan menjadi biasanya beberapa ruangan. Jadi, dalam kes kami, kami mempunyai nombor, kira-kira. Dalam kes lelaki anda, mungkin ia adalah ID, nama, kata laluan. Mana-mana tiang, itulah biasanya yang kita memilih. Jadi dalam kes ini di sini, yang jenis ruang, apa pengecam kita menarik dari meja kami? Apakah yang meminta kami untuk? Ia meminta kita untuk nombor kami, bukan? Nombor-nombor akaun. Jadi ingat, hanya jumlah dalam kes ini. Jika anda semua pernah ralat, yang kotak oren cerah akan datang. Dan rasanya, yang tidak dijangka baris dalam, seperti, apa sahaja. Itu kerana anda dipanggil meja anda salah, kan? Jadi pastikan bahawa anda memanggil ruangan dengan betul. Jadi dari jadual, meja kami adalah dipanggil akaun. Sekali lagi, pastikan anda rujukan jadual anda dengan betul. Dan kemudian apa keadaan kami di sini? Apa yang kita cari? Kami mahu orang kita yang kaya. Ya. Jadi mengimbangi lebih daripada 1,000. Terdapat anda pergi. Itulah pertanyaan anda. Tidak terlalu buruk, bukan? OK. Jadi sekarang untuk terkini kami. Dengan itu, kami breezing melalui. OK. Jadi sekarang "dengan apa pertanyaan boleh bank penutup, iaitu, memadam "- yang anda tidak suka bagaimana mereka hanya memberikan anda DELETE-- "Setiap akaun yang mempunyai baki 0?" Saya rasa kita semua boleh bersetuju kami mungkin akan menggunakan DELETE. Saya mengalu-alukan untuk mengambil apa-apa perbincangan di sekitar itu. Tetapi saya fikir ia cukup selamat untuk mengatakan bahawa kita boleh menggunakan DELETE. Jadi kita akan DELETE beberapa pengguna dari meja, MANA keadaan. Jadi sama jenis benda sebagai SELECT. Jadi, dalam ini case-- oh, maaf. Saya perlu DELETE DARIPADA. Kerana kehendak DELETE memadam keseluruhan barisan. Oleh itu, kita tidak perlu bercakap tentang yang perkara khusus mengenai pengguna kami penghapusan. Jika kita memadam pengguna, kami memotong segala-galanya mengenai mereka. Jadi dalam kes ini, kita hanya perlu masukkan MANA kita dan keadaan kita. Jadi jadual kami hanya akaun kami jadual, seperti yang kita telah lakukan. Dan kemudian apa yang keadaan kami di sini? PENONTON: Kira. SPEAKER 1: Baki sama dengan 0. Betul. Semua baik. Ya. PENONTON: [didengar]. SPEAKER 1: Jadi DELETE memang menghapuskan segala-galanya. Jadi manakala dengan SELECT, SELECT mengambil masa dalam ruangan tertentu yang anda mahu kembali. Jika anda mahu segala-galanya tentang pengguna yang kembali, anda menggunakan bintang. Star berkata, kembali kepada saya segala-galanya dari pengguna ini. Atau jika anda meletakkan MANA bintang, yang ertinya hanya memberikan saya segala-galanya. Tetapi DELETE sememangnya mempunyai itu. Jadi, jika anda mengatakan, DELETE daripada akaun mana-kira sama dengan 0, ia akan pergi melalui. Dan di mana-mana baki yang sama dengan 0, ia sebenarnya melakukan hal tersebut. Ia akan menghapuskan segala-galanya. Bintang itu lebih bagi- dengan SELECT atau UPDATE, ia bercakap lebih lanjut mengenai individu yang bidang yang berkaitan kepada pengguna. Oleh itu, apabila anda SELECT bintang dari meja MANA ID sama dengan 1, yang kembali kepada anda segala sesuatu tentang pengguna dengan ID 1. Jika anda melakukannya jumlah SELECT atau SELECT ID nama koma dari pengguna MANA ID sama dengan 1, yang hanya mengembalikan bilangan mereka atau ID mereka dan nama mereka. OK? Oleh itu, kita menggunakan bintang dalam hal untuk memberikan kita segala-galanya mengenai pengguna. Dan DELETE sememangnya melakukan hal tersebut. Ia bukan sahaja memadam ID, atau hanya nama, atau apa sahaja. Yeah, tidak. Ia hanya menghapuskan keseluruhan pengguna. Oleh itu, kita tidak perlu bimbang kira-kira bintang yang ada. Jika anda mahu memadam segala-galanya, anda boleh berbuat demikian, dan ini hanya akan menjatuhkan segala-galanya. Tetapi biasanya, anda tidak mahu berbuat demikian. Tetapi jika anda pernah mahu memadam segala-galanya, anda boleh berbuat demikian. OK. Ada kamu mendapati apa-apa soalan lain? Ya. PENONTON: Bolehkah anda melakukan 26? SPEAKER 1: 26 kita hanya lakukan. PENONTON: Oh, 25, maaf. SPEAKER 1: 25. OK. 25. Oh. Mereka lakukan JavaScript. Oh, saya tidak boleh percaya. Saya akan kucar-kacir kami semula, guys. OK. Kami mendapat ini. Kami akan membuat kerja-kerja ini. Ah, jQuery. Fun. OK. Jadi kita akan melengkapkan pelaksanaan halaman web dalam apa-apa cara yang bahawa jika mereka melawat, input nama mereka, dan kembalikan borang itu, mereka mempunyai amaran ini hebat tetingkap yang akan muncul. Jadi apa-apa dengan isyarat, kita tahu bahawa kita akan mempunyai untuk menggunakan JavaScript. Yay, JavaScript. Dan jika mereka gagal untuk input yang menamakan sebelum menghantar borang ini, tiada amaran akan muncul. Oleh itu, anda boleh menggunakan jQuery, tetapi anda tidak perlu. Jadi, saya akan membiarkan anda semua bekerja pada ini hanya untuk beberapa minit. Fikirkanlah. Dan kemudian kita akan memberi kod itu. Slash saya akan cuba memikirkan Cara terbaik untuk menjelaskan jawapan ini kepada anda. Baiklah. Kami akan mendapatkan ia ditubuhkan. OK. Oleh itu, kita hanya akan berjalan melalui ini, kerana saya tahu jQuery adalah sedikit mengelirukan. JavaScript. Ia sedikit di luar sana. Jadi apa yang kita akan lakukan adalah [Didengar] sebenarnya diselesaikan masalah ini dengan jQuery. Jadi jika anda masih ingat, jQuery hanya perpustakaan yang baru sahaja dibina di atas JavaScript. Ia bermaksud untuk membuat anda kehidupan yang sedikit lebih mudah. Saya akan pasti, jika anda mempunyai masa, melihat ke atas sedikit daripada dokumentasi untuk jQuery. Tetapi ia adalah hampir sama dengan JavaScript. Ia mempunyai paradigma yang sama, di mana anda menggunakan operator dot ini dengan fungsi panggilan pada objek yang anda mempunyai. Jadi apa yang kita ada di sini adalah untuk jQuery, anda perlu sentiasa mempunyai jenis ini pembungkus, yang merupakan $ (Dokumen) .ready fungsi (fungsi) dalam kurungan di sini. OK. Jadi ini mungkin sesuatu anda mahu di dalam lembaran menipu anda. Kerana sekurang-kurangnya, anda boleh mempunyai pembungkus untuk jQuery anda. Dan ia sekurang-kurangnya akan mendapat anda berpisah sana. Jadi dengan cara yang sama bahawa kita bercakap banyak tentang JavaScript, dan kita akan bermula dengan melihat pada apa yang kita cuba untuk mengedit atau apa yang kita cuba untuk berubah. Dan yang biasanya akan menjadi Perkara pertama yang kita akan dimasukkan ke dalam. Jadi dalam kes ini, jika kita kembali kepada ini di sini dan kita melihat borang kami di sini, kita mempunyai input ini, hak, id ini input. Dan kita tahu bahawa Based pada soalan kami, kami adalah sama ada akan membuang ralat jika ini adalah kosong, atau kita akan meletakkan ini ke dalam amaran, bukan? Jadi mungkin selamat untuk mengatakan bahawa kita akan berurusan dengan input sini. jQuery adalah hampir sama dalam bahawa jika kita berfikir kembali ke CSS, apa-apa dengan ID kita melihat dengan hash satu. Apa-apa sahaja dengan kelas kami memandang dengan titik, bukan? Jadi dengan cara yang sama di sini, apa yang kita bercakap tentang adalah input. Kami melihat input yang ID dalam borang kami. Jadi, kita akan merujuk kepadanya seperti. Input. OK? Oleh itu, apabila ragu-ragu, walaupun jika anda mempunyai mana-mana, jika anda benar-benar pasti tentang bagaimana untuk pendekatan ini, A, mempunyai pembalut ini. Jadi mula ada dengan yang wrapper untuk jQuery. B, pastikan anda tahu apa yang anda berubah-ubah. Dan apabila ragu-ragu, meletakkan bahawa dalam sesuatu, dan berbuat dot, apa yang kaupandang anda perlu lakukan dengan ia. PENONTON: Apakah pembungkus itu? SPEAKER 1: pembalut ini adalah baris pertama ini. Jadi ini mengatakan, tunggu sehingga dokumen saya bersedia. Kemudian mula main dengan sesuatu. OK? Oleh itu, kita tahu kita main dengan input. Jadi kami seperti, OK, input adalah borang kami. Itulah ID kami. Jadi itulah yang kami akan cari. Dan kita mahu melihat apa yang berlaku apabila borang ini dikemukakan, bukan? Jadi seperti yang kita mungkin berfikir, kami mempunyai beberapa .submit. Jadi .submit hanya berkata, OK, borang ini bahawa kami telah dirujuk dengan input hash, apabila ia dikemukakan, melaksanakan sesuatu yang lain. Jadi, kita akan mempunyai beberapa fungsi. Perhatikan kita mempunyai fungsi tanpa nama di sini. Kami mempunyai fungsi tanpa nama di sini. Ya. PENONTON: Adakah ia sentiasa .submit, atau adakah ia hanya kerana dalam HTML, kami membuat jenis butang Serah? SPEAKER 1: Perlu diambil .submit, kerana itu beberapa bentuk yang kita mengemukakan. Kerana .submit ini tidak semestinya sesuai dengan apa butang adalah seperti untuk memanggil. Tetapi hakikat bahawa ia adalah satu membentuk bahawa kami mengemukakan. OK. Jadi notis tanpa nama fungsi sini bahawa says-- PENONTON: Saya tidak benar-benar memahami fungsi tanpa nama. SPEAKER 1: Jadi tanpa nama fungsi, mereka hanya fungsi yang tidak mempunyai nama. Jadi, daripada mempunyai beberapa fungsi utama yang calls-- kami mengatakan: Jika dokumen bersedia, maka kita akan memanggil input. Dan kemudian, apabila dikemukakan, call-- seperti, Jika dikemukakan itu-dan-jadi, kita akan memanggil beberapa fungsi lain. Fungsi tanpa nama hanya tidak mempunyai nama, dan ia hanya akan melaksanakan dalam ini macam perkara. Jadi dalam kes ini, apa ini mengatakan adalah, Apabila dokumen kami bersedia, melaksanakan fungsi ini. Fungsi ini terdiri segala-galanya di dalam sini. Dan kemudian lapisan di akhirat adalah, OK, apabila input dikemukakan, melaksanakan ini. Ia hanya satu cara menandakan apa yang perlu dilaksanakan apabila. Ia betul-betul hanya fungsi yang tidak mempunyai nama, maka mereka cenderung untuk akan bersarang ke dalam satu sama lain, kerana anda tidak boleh memanggil mereka dengan nama. OK? Secara literal, fungsi tanpa nama hanya satu fungsi tanpa nama. Itu sahaja. Hanya satu cara untuk mengurung perkara yang berbeza yang kita mahu dari segi masa tertentu. PENONTON: [didengar]. SPEAKER 1: bolong ini? Di mana? PENONTON: Dalam kurungan selepas majlis? SPEAKER 1: Selepas fungsi. Yang mana satu? PENONTON: Kedua-dua. Jika anda meletakkan, seperti, acara, atau jika anda meletakkan hujah di sana, ia adalah salah? SPEAKER 1: Dalam hal ini, saya kira anda boleh meletakkan hujah di sana. Tetapi oleh kerana kita tidak perlu hujah, sepatutnya tidak ada. Seperti, itu keseluruhannya, seperti, anda hanya boleh mempunyai perkara-perkara yang semacam perlu benda. Dengan cara yang sama, jika kita punya apa-apa fungsi yang mempunyai void-- utama seperti int, dengan tidak sah utama int, anda boleh melakukan int ARG v, apa sahaja. Tetapi jika anda tidak memerlukan mereka, anda tidak perlu mempunyai mereka di sana. Perkara yang sama. Emma, ​​adakah anda mempunyai soalan? OK. Cool. OK. Jadi apa yang kita ada setakat ini adalah apabila kami dokumen ini siap, melaksanakan ini. Sekarang kita sedang melihat apabila ia dikemukakan. Jadi sekarang kita sebenarnya mempunyai jenis dari pada daging perkara kami. Oleh itu, kita perlu mendapatkan nilai bahawa pengguna dihantar, sama ada yang menjadi nama atau kosong. Dan kemudian kita perlu sama ada pulangan amaran ini atau membuang ralat. Sama ada cara. Jadi bagaimana kita mengisytiharkan berubah-ubah dalam JavaScript? Var. Jadi katakan, nama var equals-- atau sebenarnya, kita akan melakukan nilai kerana saya fikir ia adalah nama. OK. Oleh itu, kita mempunyai beberapa nilai di sini bahawa kita nak tarik dari bentuk input kami. Jadi dengan cara yang sama bahawa kita jenis lakukan input, boleh sesiapa beritahu saya apa yang kita mungkin memanggil dalam sini jika kita mahu mendapatkan nama dari borang ini? Dan jika kita melihat kembali borang kami di sini, kita melihat bahawa kita mempunyai ID nama. PENONTON: [didengar]. SPEAKER 1: Anda tidak perlu untuk memikirkan ia sebagai array. Anda tidak perlu risau tentang itu. Oleh itu, kita hanya mempunyai beberapa nama. Dan kemudian kerana JavaScript dan perkara adalah pelik, kita tidak boleh hanya melakukan "nama." Kami benar-benar mempunyai untuk memanggil beberapa fungsi yang memberikan kita, seperti, nilai pengecam itu. OK? Supaya hanya .val. PENONTON: [didengar]. SPEAKER 1: OK. Jadi dengan JavaScript, seperti ini perkara di sini hanya akan melalui. Dan anda boleh memikirkan ini as-- itu seperti hampir getElementById, di mana getElementById akan sebenarnya kembali perkara yang penuh kepada anda. The $ ("# nama") adalah seperti, OK, saya ada, saya boleh mengaksesnya, tetapi jika anda benar-benar mahu untuk kembali nilai untuk you-- PENONTON: Adakah ia seperti penunjuk? SPEAKER 1: Ia adalah jenis seperti penunjuk. Anda boleh menganggapnya sebagai jenis suka penunjuk. Seperti, ia berkata, OK, saya tahu bagaimana untuk sampai ke sana, tetapi untuk benar-benar mendapatkan nilai daripada ia, anda perlu jelas memintanya. Dan malangnya, jelas, kita tidak melakukan terlalu banyak dengan JavaScript dan jQuery. Jadi ia akan turun kepada berapa banyak anda guys-- apa yang kamu mengetahui, apa yang berlaku kepada lihat, dan apa yang anda boleh jenis logik meneka. Oleh kerana beberapa perkara ini, anda mungkin boleh mendapatkan separuh jalan di sana. Tetapi untuk mendapatkan ia benar-benar betul, Saya rasa masalah ini mungkin mempunyai salah satu daripada skor terendah. PENONTON: Seperti, sebagai contoh, untuk [didengar] input, mengapa tidak anda perlu meletakkan Val di sana? SPEAKER 1: Untuk yang satu ini? PENONTON: Yeah. SPEAKER 1: Yeah. Oleh kerana ini adalah jenis daripada suka, seperti yang kita berkata, beberapa penunjuk, dan ini adalah saya rujukan dan sebenarnya kita mendapat nilai. PENONTON: Manakala [didengar]? SPEAKER 1: Bagi input, input hanya some-- ia seperti kita Hanya melihat ia secara keseluruhan, dan .submit ini memberitahu kita apa yang kita perlu tahu. jQuery dan JavaScript adalah pelik. Saya tahu. Saya tahu, guys. Saya tahu. Ada sebab saya tidak melakukan pengaturcaraan web. Hanya bergurau. Saya tidak mempunyai pendedahan yang cukup untuk ia. PENONTON: [didengar] CSS. [Ketawa] SPEAKER 1: OK, itu CSS. CSS adalah adil, seperti, membuat perkara yang cantik, ia tidak suka mari kita berurusan dengan data. Ada perbezaan yang ada. OK. Jadi sekarang mudah-mudahan, ini part-- juga, untuk masalah seperti ini, di mana anda tidak boleh tahu sintaks, anda boleh menjadi seperti, OK, anda boleh mempunyai beberapa nilai var dan menjadi seperti, menganggap saya mendapat nilai yang betul. Dan kemudian anda boleh mungkin menulis bahagian ini akan datang. Bahagian seterusnya akan mungkin kelihatan lebih mudah, atau ia akan membuat logik akal untuk anda semua. Sedangkan apa yang kita telah menulis setakat ini, Saya tahu saya akan menjadi seperti, umm, yeah, Saya tidak tahu bahawa pada kuiz. Anda benar-benar boleh menulis psuedocode dan kemudian memecah masuk ke dalam kod sebenar apabila you-- itu jenis seperti matematik. Jika anda pernah mempunyai beberapa masalah berbilang bahagian di mana anda tidak tahu bagaimana untuk melepasi langkah pertama, tetapi segala-galanya bergantung kepada langkah pertama, anda hanya berkata, seperti, menganggap x sama dengan 4. Dan kemudian anda berjalan dengannya, bukan? Anda boleh melakukan perkara yang sama dengan kod. Jadi, anda boleh berkata, menganggap Saya mendapat nilai yang betul. Kemudian laksanakan bahagian ini, akan datang di sini. Oleh kerana bahagian ini sebenarnya harus cukup logik. Oleh itu, kita perlu menyemak jika nilai kita kosong. Atau jika ia adalah beberapa nama, sebenarnya memberi amaran. Jadi apa yang mungkin kita mahu menyemak? Kami ingin mempunyai beberapa Jika. Apa yang anda fikir Jika kita akan menjadi? Kita perlu menyemak untuk melihat jika nilai is-- jika ia bukan rentetan kosong. Perfect. Tepat. OK. Jadi, jika itu yang terjadi, apa yang kita mahu lakukan? Kami mahu membuang beberapa amaran, bukan? Jadi ia hanya amaran. Dan kemudian apa saja yang kita mahu di dalam. Jadi apakah kita sepatutnya mempunyai dalam amaran kami? PENONTON: "Hello." SPEAKER 1: Comma. Kemudian adakah anda lelaki ingat bagaimana untuk menyatukan? PENONTON: Plus. SPEAKER 1: Plus. Oleh itu, kita mahu mempunyai plus. Dan kemudian kita perlu ditambah lagi untuk tanda seru kami. Cool. OK. Jika tidak, apa yang kita mungkin mahu lakukan? Kami tidak mahu berbuat apa-apa, kan? Oleh itu, kita hanya kembali palsu. Tidak apa yang saya mahu lakukan. OK. Dan kemudian ini, daripada course-- apa yang penting adalah untuk ingat untuk menutup fungsi tanpa nama anda. Jadi, jika anda perhatikan, kami mempunyai beberapa fungsi di sini yang berakhir di sini. Oleh itu, kita perlu menutup ini Yang pertama dan menambah koma bernoktah. Dan kemudian satu ini di sini perlu lakukan dengan fungsi tanpa nama ini, jadi kita menutupnya sana. Itulah reaksi spontan penjimatan. Ya. PENONTON: Adakah terdapat sebab yang bahawa- hanya dalam semua contoh dalam JavaScript yang saya lihat, kita mempunyai tupai-tupai kerinting pertama pada baris yang sama dengan majlis itu? SPEAKER 1: Itulah gaya. Yeah. Dan sebenarnya, jika anda mengambil 61, kita melakukan semua pendakap kerinting kami dengan cara itu. Huh? PENONTON: Jika kami lakukan melakukannya pada Serangga ini, adalah yang tidak baik untuk gaya? SPEAKER 1: No. Kami telah memberitahu dengan jelas anda semua untuk melakukan ini. Tetapi sebenarnya, ini adalah jenis konvensyen yang mendominasi dalam banyak kelas C dan JavaScript dan jQuery. Jadi jelas, saya sure-- dan sebenarnya, jika saya telah melakukan masalah ini sepenuhnya buta tanpa melihatnya, ada mungkin sangat sedikit cara saya akan mendapat penyakit ini. Saya mungkin telah menjadi seperti, OK, mungkin saya perlu merebut sesuatu yang input. Dan saya fikir mempunyai pengetahuan bahawa, seperti, OK, jika saya mahu untuk mendapatkan sesuatu dari bentuk yang mempunyai ID, Saya merujuk kepada dengan cara ini, Saya mungkin akan mendapat bahawa. Saya mungkin akan mendapat ini. Tetapi benar-benar, satu-satunya perkara yang saya rasa Saya benar-benar akan mendapatkan ini adalah di sini. Jadi ia adalah sejenis penting untuk tahu, seperti mana-mana ujian yang sukar, anda jenis memilih pertempuran anda, bukan? Jika anda tahu bahawa anda tidak akan mendapatkan bahagian pertama untuk jQuery, seperti yang saya katakan, menganggap bahawa anda mempunyai nilai ini dan melakukan apa yang anda boleh dengan ia. Dan jika anda mempunyai masa, kembali dan cuba mengisi keping. Tetapi jangan biarkan soalan seperti ini benar-benar rawa anda ke bawah. Kerana apa? Ini adalah satu soalan pada jQuery daripada keseluruhan peperiksaan. Jadi ya, ia akan menjadi besar jika anda mendapat ia. PENONTON: [didengar] anda dialu-alukan untuk menggunakan jQuery. SPEAKER 1: Anda dialu-alukan untuk menggunakan jQuery. PENONTON: OK. [Didengar]. SPEAKER 1: Bagaimana anda tidak menggunakannya? Saya perlu melihat semua JavaScript saya. Ini sebenarnya lebih mudah, Saya rasa, untuk menggunakan jQuery, kerana jQuery sebenarnya mengurangkan jumlah JavaScript anda menulis mungkin oleh, seperti, separuh. Jadi kod kami mungkin akan menjadi dua kali lebih lama tanpa itu. Jadi jika anda recognize-- terbesar perkara yang perlu mengambil dari masalah ini adalah corak. Jika anda mengakses sesuatu dari bentuk yang, anda akan menggunakan petikan-petikan, hash, apa sahaja yang anda cuba untuk mengakses. Jika ia dikemukakan, anda mahu untuk menggunakan sesuatu seperti .submit satu. Anda mungkin akan menggunakan fungsi tanpa nama di sana. Jika anda benar-benar perlu nilai sesuatu, anda akan buat sebut harga, hash, apa jua bidang iaitu, .val. Dan pengiktirafan corak seperti yang akan jauh lebih berguna daripada benar-benar mengetahui seluk cekal itu. Ya. PENONTON: Jadi jika pengguna mengemukakan nama mereka dan ia berjalan melalui kenyataan itu, akan ia turun dan kembali palsu selepas ini? SPEAKER 1: Tidak, kerana berjaga-jaga, boleh anda fikirkan ia seperti kembali. Yeah. Jadi ia akan keluar. Yeah. PENONTON: Bolehkah anda [? meletakkan?] kurungan daripada mengemukakan, kurungan, sesuatu? SPEAKER 1: saya lakukan, saya percaya. Yang ini ditutup di sini. Dan kemudian satu ini mendapat ditutup sini. PENONTON: Oh, di sana. Baiklah. SPEAKER 1: Jelas sekali, sedikit, sedikit perkara sintaksis seperti itu, kita akan mungkin hanya mengelilinginya dan menjadi seperti, jangan lupa kurungan anda. Tetapi yeah. OK. Adakah kita mempunyai satu sama lain yang kami ingin lakukan? Adakah anda semua mendapat satu pokok binari? Adakah kita mahu pergi lebih satu itu? Saya rasa seperti pokok binari dan DOMs harus titik bahawa anda semua mendapatkan cukup mudah. Saya tidak mahu anda kehilangan mata pada itu. OK. Mari kita buat DOM ini di sini. Saya mahu saya mempunyai Permukaan saya jadi saya hanya boleh melukis pada skrin. Itulah yang saya telah lakukan pada tahun lepas. OK. Jadi seperti yang saya sebutkan, kita berbincang mengenai DOM, Document Object Model. Mereka mungkin pergi untuk memberikan anda beberapa sedikit coretan seperti ini dan meminta anda untuk membuat pokok untuk itu. Dan ini hanya semua mempunyai kaitan dengan berjalan melalui tag. Jadi mari kita cuba melakukan ini. Juga, seperti biasa, jika anda semua lakukan ini kuiz, kerana saya sangat mencadangkan anda lakukan sebagai amalan, mana-mana daripada mereka yang anda seperti, Saya benar-benar tidak mendapat apa yang berlaku di sini, hanya, sudah tentu, menghantar saya e-mel dengan soalan, dan saya akan terangkan sebaik mungkin. OK. Kami mempunyai beberapa dokumen, dan kami mempunyai HTML. OK. Sebab itu kami hanya menganalisis tag di sini, bukan? Jadi apa yang kita lihat apakah comes-- kedua-dua di bawah tajuk kecil HTML? Terutamanya kerana mereka dilekukan dengan betul? Kepala dan badan. Ah. Kepala dan badan. Lovely. Sebab itu mari kita mulakan di sini dengan kepala. Apa yang kepala di bawah? Apa tag depan kami? Tajuk. Dan kemudian dalam tajuk, kuiz. OK. Jadi secara literal, ia hanya berjalan melalui tag, OK? Sebab itu jika kita mempunyai badan, seperti yang kita pergi melalui, badan mempunyai tiga perkara di dalamnya, bukan? Ia mempunyai tiga divs. Setiap div mendapat kotak sendiri sedikit. Dan apa yang di div pertama? [Didengar] Dan kemudian yang berikutnya adalah pertengahan, yang saya hanya akan menyingkatkan. Dan kemudian yang terakhir adalah bahagian bawah. Jadi benar-benar, ia hanya berjalan melalui. Dan kerana kita akan memberikan anda HTML yang betul dilekukan, anda boleh benar-benar hanya berjalan melalui dan menjadi seperti, OK, di sini adalah HTML. Jadi ini adalah paling luar yang sudut, atau paling jauh ditinggalkan, supaya mempunyai untuk menjadi perkara sendiri. Mereka itulah yang tetap kasturi yang sama. Jadi kita tahu bahawa kepala perlu berada pada tahap yang sama dengan pertubuhan, tetapi di bawah HTML. Ia adalah apa yang kami ada di sini. Kepala dan badan adalah adik-beradik, tetapi ia di bawah HTML. Dan kemudian kita hanya pergi ke dalam masing-masing. Jadi kepala mempunyai tajuk yang mempunyai kuiz, seperti yang kita lihat di sini. Dan kemudian dalam kes ini, kita mempunyai badan, yang mempunyai tiga baris. Jadi semua ini adalah adik-beradik semua di bawah badan. OK? Jadi diharapkan apabila anda melihat sesuatu seperti ini, anda seperti, ya, saya hanya dapat melukis sebatang pokok. Ia gonna menjadi besar. OK. Jadi mahu memastikan anda semua tahu bahawa. Jadi mengapa tidak kita pergi ke 32 dengan pokok binari kami? Kerana sekali anda memahami binari pokok carian, ia benar-benar tidak yang buruk. Jadi Everett, boleh saya erase-- saya bermakna, semua ini adalah dalam talian juga. Jadi, jika anda mempunyai sebarang soalan. Hilang ruang sedikit di sana, tetapi ia OK. Jadi pokok carian binari adalah hanya satu cara untuk menyusun data tidak dalam pelbagai, di mana akar sentiasa lebih besar daripada kanak-kanak di sebelah kiri dan akar adalah sentiasa kurang daripada kanak-kanak yang betul. OK. Oleh itu, kita mempunyai pokok carian ini hebat. Kami mempunyai nombor-nombor ini, 34, 59, 20, 106, 36, dan 52. Dan kita perlu mengatur mereka dalam apa-apa cara yang seperti yang akar adalah lebih besar daripada segala-galanya di sebelah kiri dan ia adalah kurang daripada semua yang di sebelah kanan. Dan biasanya, apa yang anda mahu lakukan adalah cuba mencari sesuatu tentang di tengah-tengah. Dengan pokok-pokok carian binari, anda mungkin mempunyai bermain-main sedikit dengannya. Tetapi dalam kes ini, mari kita menganggap bahawa kita tahu satu pertama ini. Jadi 36 adalah salah satu pertama kami di sini. Biasanya, saya akan cuba dan memilih sesuatu kira-kira di tengah-tengah yang akan mungkin hasil yang terbaik. Jadi sekarang kita tahu bahawa segala-galanya di bahagian ini perlu menjadi kurang daripada 36. Tetapi juga, apa yang anda boleh lihat adalah bahawa kita mempunyai dua tempat di sini. Jadi, jika kita tahu bahawa kita perlu dua nombor yang kurang daripada akar, maka anda hanya boleh memerintahkan ini dan memilih bilangan ketiga. OK. Jadi mengapa tidak kita mulakan dengan sebelah ini? Jadi, jika kita tahu bahawa segala-galanya di bahagian ini perlu menjadi kurang daripada 36-- tetapi jika kita melihat satu ini, kita tahu bahawa nombor ini mempunyai kurang daripada jumlah ini, bukan? Oleh kerana nombor ini di sini adalah di sebelah kanan. Dan ingat, sebagaimana dalam yang lebih besar kami pokok, semua yang di sebelah kanan perlu lebih besar daripada akar. Dengan cara ini, kita tahu bahawa apa yang ada dalam keperluan ini menjadi lebih besar daripada apa yang ada di sini. OK? Oleh itu, kita mempunyai dua pilihan untuk kedua-dua buih. Kami mempunyai 32 dan 34-- atau maaf. 20 dan 34. Jadi bagaimana anda berfikir kita boleh meletakkan ini dalam? Jika yang satu ini mempunyai untuk menjadi lebih besar daripada yang satu ini, itu bererti kita mahu mempunyai 20 di sini dan 34 di sini. OK. Jadi dengan cara yang sama, kita melihat pada ini jenis sub pokok. Dan kita katakan, OK, kita tidak mempunyai 36. Kami ada 106, 52, dan 59. Betul? Dalam kes ini di sini, kita tahu keperluan yang satu ini mempunyai satu perkara itu lebih besar daripada dan satu perkara yang kurang dari itu. Betul? Jadi, jika kita meletakkan ini dalam perintah, ia hanya tentang mencari nilai yang pertengahan lagi. Jadi nilai pertengahan kami adalah 59. Sebab itu kita katakan, OK, apa yang kurang daripada 59? Baiklah, itulah 52. Dan apa yang lebih besar daripada 59? Baiklah, itulah 106. OK? Jadi ia hanya sedikit seperti teka-teki. Ia biasanya membantu, terutamanya dalam pokok-pokok kecil seperti ini, jika anda hanya memerintahkan ia, jika anda tahu berapa banyak adalah di sebelah kiri dan berapa ramai berada di hak, yang boleh hanya membolehkan anda untuk memilih apa yang hendaklah sekurang-akar anda. Dan kemudian anda boleh jenis daripada bekerja dari sana. Mm-hm. 33? Pasti. OK. Oleh itu, kita mahu mencipta nod atau pokok carian binari. Dan mari kita lihat apa yang mungkin di dalamnya. Dan saya rasa ini akan sebenarnya menjadi masalah lepas kami. Ah. OK. OK. Ini seperti apa yang kita boleh fikirkan sebagai nod, kan? Kami mempunyai beberapa nilai, dan kami tahu bahawa ia akan sama ada telah meninggalkan anak-anak dan hak. Carian binari tree-- cara yang bahawa ia mempunyai, paling, dua kanak-kanak. OK? Mari kita berfikir tentang cara kita ditakrifkan senarai yang berkaitan, bukan? Kami mempunyai beberapa int yang mewakili nilai. Kami mempunyai beberapa penunjuk yang diwakili apa yang ia akan datang. Pokok carian binari adalah hampir sama. Kami masih mempunyai beberapa nilai, n, bahawa kita memberikan, bukan? Dan kemudian saya menarik ini sangat jelas dengan anak panah, kerana mereka adalah berkesan petunjuk. OK? Jadi n biasanya apa? Ia adalah beberapa nilai. Apa yang kita biasanya menetapkan ia sebagai? Satu int. Oleh itu, kita mempunyai beberapa int n, atau nilai int, atau apa sahaja yang anda ingin menyebutnya. Dan kemudian kita mempunyai kiri kanak-kanak dan kanak-kanak yang betul. Betul? Dan kita tahu bahawa apa yang mereka point-- apa yang mereka menunjuk ke? Mereka menunjuk kepada nod yang lain, bukan? Jadi bagaimana kita akan mengisytiharkan penunjuk nod? PENONTON: [didengar]. SPEAKER 1: Mm-hm. Dan kita akan mempunyai dua daripada mereka, bukan? Dan kemudian kita boleh benar-benar jangan dibiarkan untuk kanak-kanak di sebelah kiri dan tepat untuk kanak-kanak yang betul. Actually-- maaf. Kerana kita perlu struct. Jadi struct adalah kerana kita tidak mempunyai selesai mengisytiharkan nod lagi. Jadi nod adalah dalam sini. Ia adalah jenis seperti definisi rekursi, bukan? Oleh itu, apabila kita berada dalam definisi ini, kita belum selesai mengisytiharkan nod sebagai struktur, jadi kita perlu lakukan struct nod hanya untuk mengatakan, ya, kita sebenarnya merujuk kembali kepada diri kita menaip perkara. Yang seperti itu sekali diwujudkan, ia akan menjadi halus. Jadi berapa besar yang anda semua rasa ini adalah? Apakah saiz struktur ini? 12. Mengapa? Tepat. Dan sebenarnya, salah satu daripada soalan pertama satu Kuiz Satu adalah kira-kira saiz, itulah sebabnya saya bertanya. Baiklah. Kami akan akhir, kerana DCE akan menjerit pada saya jika kita tidak lakukan. Tetapi jika anda mempunyai sebarang soalan, sudah tentu, e-mel saya, beritahu saya. Anda semua akan rock itu. Saya super teruja. Anda semua akan dilakukan sebagai Rabu, dan kemudian anda akan ke tempat kerja pada akhir anda projek, dan ia akan menjadi hebat. Saya akan berada di sini seterusnya minggu 4:00-4:30 jika anda semua ingin datang mengambil kuiz anda. Jika anda ingin mencari saya suatu masa yang lain atau hanya menyelaraskan masa yang berlainan, sila beritahu saya. Jika tidak, ini adalah bahagian terakhir kami. Jadi ia adalah baik untuk melihat anda semua. Sila ambil lebih gula-gula. Dan semoga berjaya dalam kuiz anda.