[Powered by Google Translate] [Bagian 3] [Kurang Nyaman] [Nate Hardison] [Harvard University] [Ini adalah CS50.] [CS50.TV] Baiklah, mari kita mulai. Selamat Datang Minggu 4 dari CS50. Jika kalian membuka web browser dan membuka pset 3, Perebutan dengan CS50, kita akan mulai terjadi melalui bagian dari pertanyaan di sana. Sama seperti minggu lalu, kita akan bekerja di CS50 Spaces, jika Anda juga akan menarik bahwa sampai juga, dan jika Anda pergi ke depan dan kunjungi link yang saya punya di sini di bagian atas. Sudah waktunya untuk memulai. Kami punya hi kecil kami program di sini. Gila apa-apa. Salah satu hal pertama yang saya ingin lakukan dengan kalian hari ini adalah pergi ke beberapa solusi untuk Set, Soal 1 jenis solusi misalnya, saja sehingga Anda bisa mendapatkan merasakan apa jenis staf kode menulis, apa jenis siswa kode lain menulis, dan memiliki Anda mengambil melihat hal itu karena saya tahu itu aneh ketika Anda mengirimkan solusi untuk sejumlah masalah dan mendapatkan komentar pada versi Anda sendiri, tapi kadang-kadang sangat membantu untuk melihat bagaimana orang lain melakukannya, terutama yang nice looking. Untuk sebagian besar, saya benar-benar terkesan dengan solusi yang kalian dihasilkan. Saya belum mulai melihat 2s Set Anda Soal, tetapi jika mereka sesuatu seperti yang pertama, itu berarti apa-apa selain hal-hal baik. Jika Anda melihat revisi saya, mari kita mulai sepanjang jalan turun di Revisi 1, dan kita akan mengambil cepat melihat solusi Mario. Jika Anda menarik ini, program-program yang kita akan hadir adalah benar. Tidak ada masalah dengan benar masalah ini, melainkan, kami ingin berbicara sedikit tentang masalah desain yang berbeda yang sedang digunakan di sini. Salah satu hal yang menarik tentang solusi adalah bahwa hal itu digunakan ini membangun baru yang disebut pon mendefinisikan, kadang-kadang juga disebut sebagai hash menentukan. Biarkan aku memperbesar di sini. Sebuah # define memungkinkan Anda untuk memberikan nama ke nomor tersebut dalam program Anda. Dalam kasus ini, ketinggian maksimum piramida di Mario adalah 23 dan bukannya menempatkan 23 di saya kode- kita akan lihat bahwa sebagai hard coding 23 - bukannya ini memberikan MAX_HEIGHT nama ke nomor tersebut, sehingga di sini dalam do-while loop saya Anda benar-benar dapat merujuk ke MAX_HEIGHT bukannya menempatkan nomor 23 masuk [Mahasiswa] Apa keuntungan dari melakukan hal itu? Itu pertanyaan yang bagus. Salah satunya adalah pembacaan. Keuntungan menggunakan # define adalah pembacaan. Ketika saya membaca kode ini, saya bisa melihat apa yang terjadi. Aku bisa melihat di sini bahwa kondisi ini kita sedang menguji dari ketinggian menjadi <0, yang kita bisa juga didefinisikan menjadi ketinggian minimum atau ketinggian min. Keuntungan lainnya adalah bahwa saya kemudian dapat membaca seluruh baris untuk melihat bahwa kita juga memeriksa untuk memastikan bahwa ketinggian tidak lebih besar dari ketinggian max, karena kita akan terus sementara tingginya lebih besar dari ketinggian maks. Keuntungan lainnya adalah-jika saya zoom out sedikit di sini- jika saya menjalankan program ini dan saya menjalankannya, mengatakan, dengan 23 sekarang, akan mencetak semua 23 baris begitu saja. Tapi mengatakan bahwa saya ingin mengubah ketinggian max, dan sekarang saya ingin membatasi ketinggian maksimum piramida menjadi hanya mengatakan-man, yang funky. # Include, # define MAX_HEIGHT, dan katakanlah kita ingin mengatur itu sama dengan 10. Sekarang pada titik ini, semua saya harus lakukan adalah mengubahnya dalam satu lokasi. Saya bisa mengkompilasi ulang kode, dan sekarang jika saya mencoba dan ketik 12, ia akan meminta lagi. Dalam kasus ini, kita hanya menggunakan MAX_HEIGHT sekali. Ini tidak begitu besar dari kerumitan untuk pergi dalam dan mengubahnya dalam loop sementara jika Anda perlu. Namun dalam program di mana Anda referensi angka ajaib yang sama berulang-ulang, hal ini # define mekanisme benar-benar berguna karena Anda hanya mengubah satu kali di bagian atas dari file-itu biasanya di mana Anda menempatkan mereka- dan perubahan merembes melalui sisa file. Hal-hal lain saya ingin untuk dicatat dalam tugas ini yang saya pikir tampak sangat bagus, salah satu adalah penamaan variabel. Anda lihat di sini bahwa kita punya variabel integer disebut baris dan disebut tinggi. Spasi, hash, ia membantu membuat kode sedikit lebih mudah dibaca, membuatnya sedikit lebih dimengerti apa yang sebenarnya terjadi. Hal ini berbeda untuk menggunakan, katakanlah, huruf acak atau hanya omong kosong sama sekali. Suatu hal terakhir yang saya akan menunjukkan adalah bahwa dalam untuk loop, sering kali ini iterator variabel, loket ini yang Anda gunakan dalam Anda untuk loop, itu standar dan konvensional untuk memulai mereka dengan baik i dan j kemudian dan kemudian k dan pergi dari sana jika Anda membutuhkan lebih banyak variabel, dan ini hanya sebuah konvensi. Ada banyak konvensi. Hal ini tergantung pada bahasa pemrograman yang Anda gunakan. Tapi di C, kita biasanya mulai dengan i. Ini tidak masuk akal untuk menggunakan, katakanlah, atau b tergantung pada situasi. Itu saja untuk yang satu ini. Jika Anda sekarang menarik Revisi 2, Anda akan melihat lain Mario, dan yang satu ini mirip dengan yang lain yang baru saja kita lihat, tetapi tidak sesuatu yang baik dari dingin. Jika kita melihat pada bagian ini di sini di dalam batin untuk loop, mereka menggunakan beberapa sintaks mencari gila di sini tepat di baris ini. Ini disebut ternary operator. Ini adalah sebuah pernyataan jika lain diringkas menjadi satu baris. Kondisi ini ini bagian dalam tanda kurung. Ini setara dengan mengatakan jika j > Sam. Sam. Seperti Sam mengatakan, bahwa proses pencarian linear akan menjadi sangat lambat, dan bukannya dengan pencarian biner, cara ini bekerja adalah bahwa setiap kali kita pergi melalui iterasi algoritma pencarian kami, kita akan membagi daftar dua, pada dasarnya, menjadi dua daftar yang lebih kecil. Dan kemudian pada iterasi berikutnya dari loop, kami akan membaginya lagi menjadi daftar yang lebih kecil lainnya. Seperti yang Anda lihat, masalah terus menjadi lebih kecil dan lebih kecil karena kita tetap membuang setengah dari daftar setiap saat. Bagaimana ini bekerja membuang? Hanya sebagai pengingat, apa yang akan kita lakukan jika kita komputer dan kami, katakanlah, mencari nomor 5 dalam daftar ini adalah bahwa kita akan memilih nomor di tengah. Di tengah-tengah daftar ini, karena ada 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 angka, kita akan memilih nomor baik di posisi ke-4 atau di posisi ke-5, dan kami akan menelepon bahwa tengah daftar kami. Pilih nomor di tengah. Kemudian, seperti Sam mengatakan, kami akan menguji untuk melihat apakah nomor yang sama ke nomor yang kita ingin mendapatkan atau nomor yang kita inginkan. Jika itu sama, maka kita telah menemukan itu. Kami menang. Jika tidak sama, maka ada beberapa kasus. Dua kasus yang baik jumlahnya harus lebih banyak daripada jumlah yang kita sedang melihat, atau kurang dari. Jika itu lebih besar, kita bergerak ke kanan. Dan jika itu kurang, kita bergerak ke kiri. Dan kemudian kita ulangi seluruh proses lagi di kedua setengah kanan atau kiri setengah dari daftar. Masalah pertama dalam bagian hari ini adalah untuk mengetahui bagaimana kita benar-benar dapat mulai mengungkapkan hal ini dalam kode C. Kami punya pseudocode di sini. Apa yang kita akan mulai lakukan adalah saya akan menarik sebuah ruang baru, menyimpan revisi ini sehingga kita memiliki catatan untuk nanti, kita akan menghapus semua ini, dan kemudian copy dan paste dari sejumlah masalah informasi ini ke ruang kami, dan mudah-mudahan ini tidak pecah. Sempurna. Jika kalian semua melakukan itu, copy dan paste kode ini ke ruang baru, menjadi satu kosong. Mari kita coba Daniel. Jika Anda mengkompilasi dan menjalankan program ini, cara kerjanya? >> No Apa itu katakan? Ia mengatakan kontrol mencapai akhir non-void fungsi. Ya, jadi saya mencoba menjalankannya. Pernahkah kalian melihat ini sebelumnya? Apakah Anda tahu apa artinya ini? Oke, mari kita membedah ini sedikit. Ini mengatakan di file.c on line 9, kolom 1 kita memiliki kesalahan, seperti yang Anda katakan, dan mengatakan bahwa itu berasal dari peringatan kesalahan dan peringatan tipe kembali. Sepertinya ada sesuatu yang terjadi dengan jenis kembali, yang masuk akal. Kami punya fungsi non-void, yang berarti bahwa kita punya fungsi yang tidak mengembalikan batal. Sebuah fungsi void adalah salah satu yang terlihat seperti ini: void foo (), dan itu batal karena tipe kembali adalah tidak sah, yang berarti bahwa jika kita memiliki sesuatu di sini seperti return 1, kita akan mendapatkan kesalahan kompilator untuk ini. Namun, kami memiliki fungsi non-void. Non-void fungsi kita dalam hal ini adalah fungsi pencarian kami karena memiliki jenis kembalinya bool. Ketika itu mengatakan bahwa kontrol mencapai akhir dari fungsi non-void, itu karena pencarian tidak memiliki pernyataan kembali. Ini tidak mengembalikan apa-apa tipe bool. Kita bisa memperbaikinya, dan apa yang kalian pikirkan pencarian harus kembali secara default? Apa yang harus menjadi pengembalian nilai default pencarian? Karena itulah apa yang kita dapat menempatkan di akhir. Charlotte, apakah Anda punya-? Benar atau salah >> Benar atau salah?. Yang mana? False. Saya tidak tahu. Salah? Mari kita coba. Mengapa Anda katakan return false? Itulah intuisi yang besar. [Charlotte] Saya tidak tahu. Kita akan kembali palsu dalam kasus ini karena ini akan menjadi default kita jika karena alasan tertentu daftar kosong atau jarum yang kita cari tidak ada. Kemudian di akhir, jika kita tidak kembali benar sebelumnya dalam fungsi ini, kita selalu tahu bahwa fungsi ini akan mengatakan nope, itu tidak dalam array. Hal ini tidak di tumpukan jerami. Sekarang jika kita mengkompilasi dan menjalankannya-biarkan aku menyimpan ini sehingga kita bisa tarik ke atas. Sekarang jika kita mengkompilasi dan menjalankan program kami, itu membangun. Kami mendapatkan prompt kecil kami. Jika saya memukul 4-uh-oh. Ini tidak mencetak apa pun. Sepertinya semuanya berakhir baik-baik saja. Kita harus mengisi masuk Kami berbicara tentang algoritma dalam pseudocode sedikit lalu. Biarkan aku melihat, menyimpan, dan Aku akan menarik algoritma yang kembali lagi. Mari kita memukul orang ini. Nope. Ada itu. Bagaimana kita melakukan ini? Apa yang akan menjadi strategi yang baik untuk memulai off kode ini? Anda harus memilih nomor di tengah. Bagaimana kita memilih nomor di tengah array? Ada saran? [Mahasiswa] Strlen dibagi 2. Strlen dibagi 2. Itu salah besar. Strlen bekerja dengan jenis khusus dari array. Apa jenis array? String array, array karakter. Ini semacam sama konsep yang kita ingin menerapkan, tapi kami tidak dapat menggunakan strlen karena kita tidak memiliki sebuah array karakter. Kami memiliki sebuah array ints. Tapi apa strlen mendapatkan bagi kita? Apakah Anda tahu apa itu akan bagi kita? [Mahasiswa] Strlen membuat kita panjang. Tepat, itu membuat kita panjang. Strlen mendapatkan panjang dari array bagi kita. Bagaimana kita mendapatkan bahwa dalam program pencarian kami biner? Bagaimana Anda mendapatkan panjang array? [Mahasiswa] Strlen? Anda bisa mendapatkan panjang array C diformat dengan benar string dengan strlen. Masalahnya, meskipun, adalah bahwa kita tidak memiliki sebuah array string. Jika kita melihat kembali kode ini, kita memiliki array integer. Bagaimana kita tahu berapa lama itu? [Mahasiswa] Apakah ada yang setara untuk titik akhir, seperti l int atau sesuatu? Ternyata ada sebenarnya tidak, sehingga dengan cara, ini adalah salah satu dari hal-hal yang hanya baik untuk tahu tentang C, bahwa tidak ada cara untuk mendapatkan panjang array jika semua saya berikan Anda adalah array. Alasan bekerja dengan string, alasan strlen karya, karena jika string diformat dengan benar, itu akan memiliki \ istimewa 0 karakter di akhir. Anda juga dapat bayangkan jika Anda memiliki sebuah string tidak benar diformat dan tidak ada \ 0 karakter di sana, maka semuanya tidak bekerja. [Siswa] Dapatkah Anda menambahkan \ 0? Kita bisa dalam kasus ini. Kita bisa menambahkan beberapa jenis \ 0 atau semacam menandakan karakter dan kemudian menggunakannya. Tapi itu tidak cukup akan bekerja karena 0 \ adalah untuk tipe char, dan di sini kita punya ints. Hal lain adalah jika kita menggunakan nilai khusus seperti -1 untuk menandai akhir array maka kita tidak pernah bisa menyimpan -1 dalam array bilangan bulat kita. Kami akan terjebak. Ternyata bahwa satu-satunya cara untuk mendapatkan panjang dari array di C adalah untuk benar-benar mengingatnya ketika Anda mengaturnya dan kemudian menyebarkannya sekitar dengan array sehingga setiap kali saya memiliki fungsi yang akan melakukan beberapa pekerjaan pada sebuah array bilangan bulat atau mengapung atau ganda atau apa pun, Saya juga harus memberikan fungsi panjang array, dan itulah apa yang kami lakukan di sini di fungsi pencarian. Jika Anda melihat, apa yang kami lakukan ketika kami melewati dalam array kita di sini, kami juga lulus dalam panjang, ukuran. Ini terjadi begitu saja bahwa kita telah disebut variabel ini di sini, ini parameter atau argumen. Ini disebut daftar argumen fungsi atau daftar parameter, dan ini juga disebut argumen atau parameter. Orang-orang menggunakan istilah yang berbeda pada waktu yang berbeda. Saya kadang-kadang interchange mereka sendiri. Kebetulan bahwa variabel di sini adalah bernama sama ini # define di sini. Tapi mereka tidak sama. Kapitalisasi itu penting. Jika Anda melihat apa yang terjadi di sini, kami menyatakan kami int array, yang kita sudah menelepon nomor. Kami telah memberikannya ukuran kami, yang sesuai dengan kita # define di paling atas. Ini akan menjadi 8. Dan kemudian ketika kita kemudian memanggil fungsi pencarian kami di bawah, kita lulus dalam nomor kita ingin mencari, yang kami telah diminta, didapat dari pengguna. Kami melewati dalam array, ini angka, dan kemudian kita juga harus lulus dalam ukuran array, dan kemudian nilai ukuran 8 akan disimpan atau diteruskan ke ukuran ini disebut integer variabel. Kami memiliki ukuran array. Sekarang jika kita kembali ke apa yang kita bicarakan sebelumnya, Saya pikir Missy dibesarkan titik bahwa apa yang perlu kita lakukan adalah mendapatkan panjang array dan dibagi oleh 2, dan itu akan memberi kita titik tengah. Mari kita lihat. Dapatkah saya memiliki seseorang menulis ini dan menyimpannya dalam ruang mereka? Bagaimana Leila? Dapatkah saya memiliki Anda menulis dalam hal ini? Tuliskan baris pertama di mana Anda mengambil panjang array dan mendapatkan titik tengah dan menyimpannya dalam variabel baru. Saya akan memberi Anda beberapa detik. Apakah Anda siap? [Mahasiswa terdengar] Tentu, aku bisa Anda menghitung titik tengah dari array tumpukan jerami dalam fungsi pencarian menggunakan panjang dari array tumpukan jerami, yang merupakan variabel ukuran? Rumit apa di sini. [Leila] Hanya ukuran / 2 dan hanya- Dan menyimpannya, dan tekan tombol Simpan di sini di atas, dan kami akan tarik ke atas. Sempurna. Di sana kami pergi. Mengagumkan. Seperti, ini akan mengkompilasi? [Leila] Tidak, itu harus lebih tinggi. [Nate] Ya, jadi apa yang kita perlu lakukan? [Leila] Seperti titik tengah int atau sesuatu. Mengagumkan. Ya, mari kita lakukan itu, int titik tengah = ukuran. Ini akan mengkompilasi? Mari kita menghapus komentar ini dan mendapatkannya keluar dari jalan. Apa yang tidak akan mengkompilasi tentang hal ini? Kami tidak melakukan apa-apa dengan bilangan bulat, jadi kita perlu untuk mencetak atau sesuatu seperti itu. Ya, tepatnya. Kita akan mendapatkan variabel yang tidak terpakai. Apa lagi tidak akan bekerja tentang hal ini? Saya pikir Anda mengatakan sesuatu, Sam. Titik koma. Ya, aku kehilangan orang-titik koma. Ini akan menjadi hal yang konstan sepanjang perjalanan istilah. Hal terakhir yang saya akan lakukan adalah saya akan menaruh beberapa ruang putih di kedua sisi dari operator ini di sini, karena itu biasanya bagaimana kita melakukannya sesuai dengan panduan gaya kami. Kami punya titik tengah dari array kita. Sekarang jika kita ingat kembali ke algoritma kami, apa langkah kedua yang kita harus lakukan setelah kita memiliki titik tengah? [Mahasiswa] Jika lebih besar [tak terdengar]. Ya, jadi kita harus melakukan semacam perbandingan, dan apa yang kita membandingkan di sini? Kau bilang jika lebih besar dari. Apa dalam kalimat maksud? Jumlah yang muncul, jika itu lebih besar dari titik tengah, kemudian pergi ke array? Tepat, sehingga jumlah yang muncul ketika kita- Jarum, jadi kita membandingkan dengan jarum, dan apa yang kita membandingkan terhadap jarum? Karena jarum adalah apa yang kita cari. Kita membandingkannya untuk sampai ke titik tengah. Tapi apakah masuk akal untuk memeriksa untuk melihat jika jarum titik tengah =? Apakah itu masuk akal? Apakah ada yang tidak setuju? Mari kita mencobanya, jika (jarum == titik tengah). [Mahasiswa] Apakah printf Anda menemukannya. [Nate] printf ("Kami menemukan itu \ n"); Jika tidak-aku akan mulai melakukan sesuatu yang berbeda di sini. Aku akan mulai menempatkan kawat gigi sekitar jika pernyataan sepanjang waktu hanya karena jika kita menambahkan lebih banyak barang, maka kita tidak mendapatkan kompiler. Ya, Sam. Anda punya titik. Masalahnya adalah bahwa titik tengah merupakan posisi dalam array, tapi Anda bisa mendapatkannya untuk mewakili nilai dalam posisi array. Itu poin yang bagus. Apakah semua orang mendengar apa yang dikatakan Sam? Dia mengatakan bahwa titik tengah seperti hanya mewakili posisi dalam array, tapi itu bukan elemen yang sebenarnya dalam array. Jika Anda berpikir tentang kode seperti yang tertulis sekarang, jika kita melihat array ini di sini, yang memiliki 8 elemen di dalamnya, berapakah nilai dari titik tengah akan berada di fungsi ini? [Mahasiswa] 4. [Nate] 4. Jika kita mencari nomor 4 - dan kita hanya bisa menjalankan kode ini dan menempatkan wajah sedih sedikit di sini karena kami tidak menemukan itu-jika kita menjalankan kode ini seperti sekarang, meng-upload, bangunan, biarkan aku gulir ke bawah, dan jika kita mencari nomor 4, kami menemukan itu, tapi kami tidak mendapatkan ini untuk printf ya. Salah satu alasannya adalah bahwa kita tidak kembali benar, tapi apakah kita benar-benar menemukan nomor 4? Dan Sam mengatakan tidak. Apa yang kita temukan? Kami benar-benar menemukan titik tengah, yang jika kita melihat array di sini, itu akan menjadi elemen pada indeks 4 yang kita sedang melihat, yaitu 23. Bagaimana kita benar-benar mendapatkan elemen pada titik tengah dan bukan hanya titik tengah itu sendiri? [Siswa] Kami akan masuk ke char atau sesuatu? Apa yang akan lakukan, hanya karena ingin tahu? Dapatkah Anda menguraikan lebih sedikit? Anda harus mengubah posisi menjadi nomor, jadi Anda harus membuat beberapa koneksi-saya pikir itu char, tapi tidak mungkin. Ya, itu adalah titik yang baik. Kami telah melakukan banyak hal ini posisi mengkonversi menjadi karakter, karakter ini, di dua set pertama masalah. Ternyata bahwa di sini, ini hampir mirip dengan mengakses karakter engan dalam string, jika itu masuk akal. Di sini kita ingin mengakses elemen titik tengah. Bagaimana kita melakukan itu? Kevin, apakah Anda punya saran bagaimana kita bisa melakukan itu? Anda bisa melakukan tumpukan jerami, braket terbuka, pertengahan, ditutup braket. Dapatkah Anda menulis bahwa bagi kita? Simpan di sini, dan kami akan menarik itu. Kami sedang melihat ini jalur 9, dan kami menyadari bahwa kami tidak ingin membandingkan jarum ke titik tengah, tetapi sebaliknya, kita ingin membandingkan jarum ke elemen pada titik tengah posisi dalam array tumpukan jerami kami. Cool. Di sana kami pergi. Ya, yang terlihat cukup bagus, jika (jarum == tumpukan jerami [titik tengah]). Kami menemukan itu. Sekarang jika kita jalankan kembali kode-kita naik sedikit sedikit- itu mengkompilasi, berjalan, dan sekarang jika kita mencari 4, kami tidak menemukannya karena sekarang kita benar-benar mendapatkan nomor 23. Kami mendapatkan nilai 23, dan itulah apa yang kita membandingkan dengan jarum kami. Tapi itu bagus. Itu adalah langkah ke arah yang benar. Itulah yang kami coba lakukan. Kami tidak mencoba untuk membandingkan jarum terhadap posisi dalam array melainkan terhadap unsur-unsur yang sebenarnya dalam array. Jika kita melihat ke belakang lagi sekarang di langkah berikutnya dalam algoritma kami, apa langkah selanjutnya? Leila sudah disebutkan secara singkat. [Mahasiswa] Periksa untuk melihat apakah itu lebih besar dari atau kurang dari dan kemudian memutuskan ke mana harus bergerak. [Nate] Ya, jadi bagaimana kita melakukannya? Dapatkah Anda dimasukkan ke dalam beberapa-aku akan menyimpan revisi ini, dan kemudian jika Anda masukkan ke dalam beberapa baris yang akan melakukan itu. Ya, Charlotte >> Saya punya pertanyaan.. Bukankah seharusnya titik tengah - 1 karena hal pertama adalah itu 0 diindeks, jadi jika kita menempatkan 4, itu tidak benar-benar karakter yang kita cari? Ya, dan masalah lainnya dengan itu adalah- itu menangkap besar, karena apa yang akan terjadi mungkin berakhir jika kita terus bergerak dan kita tidak pernah menyesuaikan awalnya? Saya kira apa yang kita mungkin berakhir lakukan adalah mencoba untuk mengakses elemen di posisi 8 dari array, yang dalam hal ini tidak ada. Kami akan ingin melakukan semacam akuntansi untuk fakta bahwa kita memiliki beberapa pengindeksan nol. [Charlotte] Maaf, saya berarti titik tengah - 1 dalam kurung kotak. Kita bisa melakukan itu. Kami akan kembali ke masalah ini hanya dalam sedikit. Setelah kita mulai untuk sampai ke perulangan yang sebenarnya, saat itulah kita benar-benar akan melihat ini datang ke dalam bermain. Untuk saat ini, kita bisa melakukan ini, tapi kau benar-benar benar. Bahwa pengindeksan nol akan memiliki efek yang kita perlu menjelaskan. Mari kita lihat. Bagaimana adalah lebih besar dari dan kurang dari-? [Mahasiswa] saya mendapatkan bagaimana melakukan lebih dari dan kurang dari bagian. Saya hanya tidak yakin apa yang harus mencetak jika Anda menemukan bahwa itu adalah kurang dari titik tengah tumpukan jerami atau lebih besar dari. Di sini saya dapat menyimpan apa yang aku pernah- [Nate] Ya, jika Anda menyimpan apa yang Anda miliki, dan kami akan tarik ke atas. Di sana kami pergi. [Mahasiswa] Dan saya menempatkan tanda tanya untuk apa yang saya tidak tahu. [Nate] Itu tampak hebat. Di sini kita punya tanda tanya karena kita masih tidak tahu apa yang akan kita lakukan cukup belum. Apa yang kita ingin lakukan-oops, kami punya beberapa kawat gigi semua funky pada kita. Kita akan memperbaiki ini kawat gigi. Di sana kami pergi. Dan jadi apa yang ingin kita lakukan, menurut algoritma kami, jika kita tidak menemukan jarum? Katakanlah dalam hal bahwa jarum kurang dari apa yang kita melihat. Kevin. Hanya melihat kiri setengah. Benar, jadi kita akan memasang komentar di sini yang mengatakan "melihat kiri setengah." Dan jika jarum lebih besar dari tumpukan jerami pada titik tengah, apa yang ingin kita lakukan? [Siswa] Kemudian Anda melihat di bagian kanan setengah. Lihatlah kanan setengah, "lihat bagian kanan." Tidak terlalu buruk. Oke, jadi pada titik ini, hal-hal yang tampak cukup bagus. Masalah dengan kode seperti yang tertulis adalah apa? [Siswa] Anda tidak memiliki titik akhir untuk bagian. Benar, kita tidak memiliki titik akhir untuk bagian. Kami juga hanya akan pergi melalui ini sekali. Kita hanya akan melihat satu titik tengah. Entah elemen yang ada, atau tidak. Dalam rangka untuk menyelesaikan ini, kita harus melakukan semacam pengulangan. Kita perlu terus mengulangi sampai kita menemukan bahwa baik elemen ini di sana karena kita sudah dipersempit dan akhirnya menemukannya, atau itu tidak di sana karena kami telah melihat melalui semua hal di bagian yang tepat dari array dan menemukan bahwa tidak ada di sana. Setiap kali kita sudah mendapat pengulangan ini terjadi, apa yang akan kita gunakan? [Siswa] Sebuah lingkaran. Semacam lingkaran. Ya. [Mahasiswa] Bisakah kita melakukan loop do-while dan memilikinya melakukan itu dan kemudian sementara jarum tidak sama-aku tidak yakin di mana aku akan dengan itu. Namun jenis seperti melakukan itu selama itu tidak sama dengan nilai yang input pengguna. Ya, jadi mari kita lihat, bagaimana mungkin ini menulis sendiri? Kau bilang mari kita menggunakan loop do-while. Darimana melakukan start? [Mahasiswa] Tepat setelah ukuran / 2. [Nate] Oke, dan apa yang akan kita lakukan? Kami akan mengisi sementara nanti. Apa yang akan kita lakukan? [Mahasiswa] Bukankah kita ingin melakukan semua hal yang kita miliki dalam porsi jika? [Nate] Apakah semua hal ini, yang besar. Copy dan paste. Oh, man. Mari kita lihat apakah ini bekerja, jika kita bisa tab selama ini. Indah. Oke, dan kami menyimpan sehingga kalian memilikinya. Baiklah, dan kami akan melakukan ini pada saat- apa kondisi saat Anda setelah? [Mahasiswa] Sementara jarum tidak sama, sehingga seperti tanda seru. Tapi aku tidak tahu persis apa yang belum. [Nate] Ya, ini adalah salah satu cara untuk melakukannya. Sam, apakah Anda memiliki komentar? [Sam] Saya ingat ketika saya melihat video, Aku mengambil screenshot dari salah satu-seperti ketika kita melakukan pseudocode untuk itu, ada beberapa hubungan antara max dan min. Saya pikir itu adalah sesuatu seperti jika max yang pernah kurang dari min. Got it. [Sam] Atau seperti jika max tidak kurang dari menit atau sesuatu seperti itu, karena itu berarti bahwa Anda telah mencari segalanya. Ya, jadi apa terdengar seperti max dan min yang mengacu pada? [Sam] Nilai yang-bilangan bulat yang akan mengubah relatif terhadap mana kita meletakkan titik tengah. Tepat. [Sam] Pada saat itu, itu akan [tak terdengar] menghitung max dan min. Midpoint ini max dan min ide. Apakah itu masuk akal untuk orang-orang? Jika kita mulai melihat bagaimana kita akan melakukan iterasi ini, Anda benar-benar benar bahwa kita ingin menggunakan semacam do-while loop. Tapi saya kira jika kita ingat apa yang terjadi di tempat array ini dan apa yang sebenarnya terjadi-aku akan menulis di sini- pada iterasi pertama dari pencarian biner, kita memiliki- Aku akan menggunakan b dan e untuk menunjukkan awal. Dan kemudian akhir dari array kita. Kita tahu bahwa awal adalah pada 4 tepat di sini, dan kita tahu bahwa akhir berada pada 108. Katakanlah kita sedang mencari nomor 15. Pertama kali kita melakukan ini, seperti yang kita lihat sebelumnya, titik tengah yang baik akan menjadi 16 atau 23 tergantung pada bagaimana kita menghitung hal-hal keluar. Sejak merata membagi di tengah akan memberi kita ruang ini antara 16 dan 23, kita tidak bisa merata membaginya atau membagi dan mendapatkan di titik tengah yang benar. Kita akan melihat 16. Kita akan menyadari "Hei, 16> 15 yang kita cari." Untuk kemudian melihat kiri setengah dari array apa yang kita akan berakhir lakukan adalah membuang ini bagian atas keseluruhan dan berkata, "Oke, sekarang endpoint kami akan berada di sini." Iterasi berikutnya dari loop kita, kita sekarang melihat array ini, efektif setelah dibuang bagian ini karena sekarang jika kita mengambil titik tengah untuk menjadi perbedaan antara awal dan akhir, kita menemukan titik tengah kita menjadi 8, yang kemudian kita dapat menguji 8 untuk melihat di mana itu dalam kaitannya dengan jumlah yang kita cari, 15, menemukan bahwa 15 lebih besar, jadi kami harus pindah ke bagian kanan dari daftar, yang kita tahu karena kita manusia, dan kita bisa melihatnya. Kita tahu bahwa bagian kanan akan berada di tempat kita menemukannya, tetapi komputer tidak tahu itu, jadi apa yang akan kita lakukan adalah kita akan benar-benar telah ini naik, dan sekarang awal dan akhir adalah tempat yang sama, sehingga titik tengah menjadi satu-satunya nomor dalam daftar pada saat itu, yang 15, dan kami telah menemukan itu. Apakah itu titik terang di mana ini max utuh dan notasi min akan, melacak endpoint dari array untuk mengetahui bagaimana mempersempit segalanya? Apa yang akan terjadi jika hal ini tidak sama dengan 15 sekarang? Bagaimana jika kita sedang mencari 15 dan, sebaliknya, angka ini juga 16? Kami akan mengatakan, "Oh, itu lebih besar. Kami ingin kembali ke kiri. " Dan kami akan pindah e kami ke kanan, di mana titik kita memiliki titik akhir yang akan bertentangan. Ini tidak akan mampu untuk mencari elemen lagi karena sekarang kita memiliki titik akhir dan titik awal kami, max dan min kami, sekarang membalik. Kami mencari melalui seluruh array. Kita tidak bisa menemukan apa-apa. Itulah titik di mana kita akan ingin mengatakan, "Oke, kita akan menghentikan algoritma ini. Kami tidak menemukan apa pun. Kami tahu itu tidak di sini. " Bagaimana ini terjadi? [Mahasiswa] Bagaimana tepatnya komputer beralih akhir? Bagaimana akhirnya berakhir sebelum awal? Akhirnya berakhir sebelum awal karena matematika yang akan kita lakukan setiap kali kita melakukan ini. Cara kita bertukar adalah jika Anda melihat pertama kalinya kami melakukan swap ini di mana kita memiliki awal pada 4 dan akhir semua jalan di 108 dan titik tengah kami, mengatakan, pada 16 - Aku akan me-reset kembali ini untuk 15-jika kita sedang mencari 15, kita tahu bahwa apa yang kita lakukan ketika kami memeriksa 16 dan melihat bahwa itu lebih besar dan ingin membuang bagian kanan seluruh daftar, kita melihat bahwa apa yang kita ingin lakukan adalah memindahkan e ini di sini. Efektif, e mendapat pindah ke salah satu sebelum titik tengah. Demikian juga, ketika kita melakukan ini iterasi dari algoritma dan titik tengah berada di 8, kami menemukan bahwa 8 <15, jadi kami ingin pindah b salah satu masa lalu titik tengah. Sekarang, awal dan akhir keduanya bersama-sama ini 15. Jika kita sudah terjadi untuk mencari beberapa nilai lainnya, bukan 15, atau jika 15 ini sudah bukan menjadi 16, kita akan menemukan bahwa e kita ingin memindahkan satu sebelum titik tengah. Sekarang e akan berada di sana membalik kurang dari b. Mari kita berjalan melalui bagaimana kita benar-benar berakhir coding algoritma ini. Kita tahu bahwa kita ingin memiliki perhitungan titik tengah. Kita juga tahu bahwa kita ingin melacak awal dan akhir array dari array saat kita sehingga kita dapat mengetahui dimana kiri setengah dari daftar dan di mana kanan setengah dari daftar adalah. Kami melakukannya dengan baik mulai dan akhir, atau kita bisa menyebutnya min dan max. Saya akan menggunakan memulai dan mengakhiri waktu ini. Ketika kita mulai, jika kita melihat kembali contoh kita di sini, awal kami didirikan pada awal dari array, seperti alam. Apa indeks ini? Apa yang kami harus mulai bisa? Daniel. [Daniel] Haystack [0]. [Nate] Ya, jadi kita bisa mengaturnya sama dengan tumpukan jerami [0]. Masalahnya, meskipun, adalah bahwa ini memberi kita bukan posisi dari elemen pertama. Ini memberi kita indeks dari elemen pertama atau nilai aktual pada saat itu posisi pertama. [Mahasiswa] Itu akan mengkonversi ke .20? [Nate] Apa ini akan lakukan adalah-baik, tidak akan melakukan converting apapun. Apa yang akan dilakukannya itu akan menyimpan 4 di mulai, dan kemudian akan sulit untuk membuat perbandingan terhadap mulai karena begin akan memegang nilai 4, yang merupakan awal dari array kita, tapi kami ingin melacak indeks dalam array yang bertentangan dengan nilai-nilai. Kami benar-benar akan menggunakan 0, seperti itu. Untuk akhir dari array-Charlotte dibesarkan ini sedikit lebih awal. Ini adalah di mana kita akan memperhitungkan pengindeksan nol. Charlotte, apa akhir dari array? Apa indeks akhir? [Charlotte] Ukuran - 1. Ya, dan yang ukuran yang harus kita gunakan? Haruskah kita menggunakan ukuran modal atau ukuran huruf kecil? Modal ukuran. Dalam kasus ini, kita bisa menggunakan ukuran modal. Jika kita ingin fungsi ini menjadi portabel dan menggunakan fungsi ini dalam program lain, kita benar-benar bisa menggunakan ukuran huruf kecil. Ini baik juga. Tapi Charlotte benar-benar tepat bahwa kita ingin memiliki ukuran - 1. Pada titik ini- [Mahasiswa] Bagaimana mungkin Anda dapat menggunakan ukuran huruf besar? Bagaimana kita bisa menggunakan ukuran huruf besar? Ternyata bahwa # mendefinisikan benar-benar, di bawah tenda, sebuah teks seperti mencari dan mengganti, jika itu masuk akal. Ketika Anda mengkompilasi kode Anda, tahap preprocessing dari compiler melewati file, dan mencari di mana-mana bahwa Anda telah menulis ukuran modal, dan menggantikan teks yang harfiah dengan 8, begitu saja. Dalam hal ini, ini sangat berbeda dari variabel. Ini tidak mengambil setiap ruang memori. Ini adalah trik mengganti teks sederhana. Dalam kasus ini, kita akan menggunakan ukuran. Dari sini kita ingin melakukan semacam pengulangan, dan kami berada di jalur yang benar dengan do-while loop kami. Kami ingin melakukan sesuatu sampai kondisi tidak tahan lagi, dan seperti yang kita lihat sebelumnya, kita melihat bahwa kondisi yang memang kita tidak ingin akhir menjadi kurang dari mulai. Ini adalah kondisi kita berhenti. Jika hal ini terjadi, kita ingin menghentikan dan menyatakan seperti, "Hei, kami tidak menemukan apa pun." Untuk mengungkapkan hal ini, kita ingin menggunakan beberapa jenis loop. Dalam kasus ini, itu akan loop do-while, untuk loop, loop sementara? Kami memiliki loop do-sementara di sini. Apakah kalian seperti pendekatan itu? Apakah Anda pikir kita harus mencoba pendekatan yang berbeda? Kevin, setiap pikiran? Kita bisa memiliki loop sementara karena kita tahu maksimal akan lebih besar dari menit pada anyways awal. Ya, jadi tidak ada inisialisasi yang perlu terjadi. Mereka do-while loop yang besar ketika Anda harus menginisialisasi sesuatu sebelum kemudian pengujian, sedangkan di sini kita tahu bahwa kita tidak akan terus inisialisasi ulang baik mulai dan berakhir setiap putaran loop. Kita tahu bahwa kita ingin menginisialisasi mereka, kemudian memeriksa kondisi kita. Dalam kasus ini, saya benar-benar akan pergi dengan loop sementara sederhana. Ternyata bahwa do-while loop yang digunakan cukup jarang. Banyak tempat bahkan tidak mengajarkan lakukan sementara loop. Mereka baik untuk menangani input pengguna, jadi kami telah melihat banyak dari mereka sejauh ini. Tapi normal untuk dan sementara loop yang jauh lebih umum. Ternyata kondisi ini seperti yang tertulis tidak akan benar-benar melakukan kita banyak yang baik, dan mengapa demikian? Maafkan aku, aku tidak tahu nama Anda. Saya Jerry. >> Maaf? Ini B-O-R-U-I. Oh, oke. Saya tidak melihat Anda dalam daftar saya. Oh, itu karena-oh, itu masuk akal. Apakah Anda memiliki gagasan tentang mengapa ini while loop mungkin tidak bekerja sebagaimana dimaksud, seperti yang tertulis dengan kondisi? [Jerry] Maksudmu seperti Anda ingin semua hal setelah ke-? Ya, jadi itu satu. Kita mungkin harus meletakkan semua barang-barang ini ke dalam while loop, yang benar-benar benar. Hal lain yang sedikit lebih bermasalah, meskipun, adalah bahwa kondisi ini tidak bekerja. [Siswa] Anda perlu flip itu. Benar, sehingga kondisi ini tidak akan pernah menjadi kenyataan awalnya cara kita berbicara tentang hal itu. Kami ingin melakukan sesuatu sampai > Plus. Dimulai? [Mahasiswa] Pada akhir. Karena itu hanya dihitung setengah panjang. Anda perlu menambahkan mulai. [Nate] Apa yang akan menghitung ini bagi kita? Jika kita berpikir tentang akhir pada iterasi pertama dari loop, akhirnya akan berada dalam posisi indeks 7. Mulailah berada di posisi 0. Ingat, kita sedang mencari baik posisi 3 atau posisi 4. Jika kita melihat matematika ini, hanya untuk membuatnya sedikit lebih nyata, menaruh beberapa angka di sini, kami memiliki 7, 0, jadi 7 - 0, dan kemudian / 2 adalah 3 di pembagian integer, yaitu. Kemudian kita perlu kemudian menambahkan kembali kita mulai? Kami tidak dalam kasus ini. Pada iterasi pertama, itu akan baik-baik saja karena begin adalah 0. Tapi seperti yang kita kemajuan, kita lakukan benar-benar semua hanya perlu end - mulai / 2. Ada satu trik lain di sini, dan itu adalah salah satu dari prioritas yaitu. [Mahasiswa] Apakah kita perlu kurung? [Nate] Tepat, dan itu karena jika kita tidak menempatkan tanda kurung, maka baris ini akan ditafsirkan sebagai gantinya sebagai (end) - (mulai / 2), yang kita pasti tidak ingin. Watch out bagi mereka aturan didahulukan. [Mahasiswa] Mengapa bukan akhir + dimulai? Mengapa tidak berakhir + dimulai? [Mahasiswa] Mengapa tidak? Mengapa itu +? Saya pikir kau benar. [Mahasiswa] Karena itu rata-rata? [Nate] Akhir + dimulai, Anda benar-benar benar. Wow, aku benar-benar melakukan kesalahan. Kau benar. Jika kita melakukan minus, kita akan ingin menambahkan mulai kembali masuk Dalam hal ini, Anda sangat benar bahwa kita ingin mengambil rata-rata dari dua, jadi kami ingin menambahkannya, sebagai lawan untuk mengurangi mereka. [Mahasiswa] Hal ini juga akan bekerja jika Anda melakukan end - mulai / 2 + dimulai. Ini akan jika kita lakukan-saya percaya begitu. Sebagai contoh, jika kita melihat mulai, dan kita bergeser ke sini ke 15. Sekarang mulai berada pada posisi 2. Akhir berada pada posisi 7. Jika kita kurangi mereka, kita mendapatkan 5. Membagi bahwa dengan 2, kita mendapatkan 2. Dan kemudian kita tambahkan 2 kembali, dan yang membuat kita ke posisi ke-4, yang ada di sini, yang merupakan titik tengah. [Mahasiswa] Apakah kita perlu untuk mengurus pembungkus? Dalam arti apa yang kita butuhkan untuk mengurus pembungkus? Jika jumlah atau perbedaan antara tergantung pada bagaimana kita melakukannya bukan bilangan genap. Kemudian komputer akan bingung apakah ketika itu 2,5; Anda bergerak ke kiri atau ke kanan untuk menentukan yang merupakan titik tengah? Got it. Ternyata bahwa dengan pembagian integer, kita tidak pernah mendapatkan angka-angka floating point. Kami tidak pernah mendapatkan desimal. Ini benar-benar dibuang. Jika Anda memiliki komputer membagi dua variabel int, dan satu adalah 7, dan yang lainnya adalah 2, Anda tidak akan mendapatkan 3,5 sebagai hasilnya. Ini akan mendapatkan 3. Sisanya akan dibuang, sehingga efektif pembulatan- tidak bulat melainkan lantai, jika kalian sudah familiar dengan itu dalam matematika, di mana Anda benar-benar membuang desimal, dan sehingga Anda pada dasarnya truncating itu ke terdekat Seluruh posisi, ke bilangan bulat terdekat. [Mahasiswa] Tapi kemudian itu bermasalah karena jika Anda memiliki sebuah array dari 7 elemen maka secara otomatis mengambil elemen ke-3 keluar dari titik tengah bukan 4. Bagaimana kita berurusan dengan itu? Ini bermasalah karena jika kita memiliki sebuah array dari 7, itu akan memilih 3 bukan 4. Bisakah Anda menjelaskan sedikit lebih? [Mahasiswa] Karena jika Anda memiliki 7 elemen maka unsur ke-4 akan menjadi titik tengah, kan? Ingat komentar Anda tentang menjadi nol diindeks, meskipun. [Mahasiswa] Ya, jadi di posisi 3. Itu akan menjadi titik tengah. Ya. Oh, oke. Saya melihat apa yang Anda maksud. Ini agak aneh, karena kami terbiasa dengan gagasan seluruh menyingkirkan desimal. Itu poin yang bagus. Mari kita selesaikan ini. Kami telah menghitung titik tengah kami. Kami sedang menguji untuk melihat apakah jarum kami adalah sama dengan nilai tengah. Kami mencetak bahwa kami menemukan itu, tapi benar-benar, apa yang ingin kita lakukan dalam situasi ini? Kami telah menemukan itu, jadi kami ingin membiarkan pemanggil tahu bahwa kami menemukan itu. Kami punya fungsi yang diketik fungsi boolean. Cara kita sinyal ke pemanggil fungsi kita bahwa kita siap untuk pergi yang kita katakan, "Hei, ini benar." Bagaimana kita melakukan itu, Kevin? Anda menganggukkan kepala Anda. >> [Kevin] Tambah return true. [Nate] Tepat, kembali benar. Sekarang, jika tidak sama, bagaimana kita melihat kiri setengah? Ada gagasan? Stella, ide? Anda perlu menetapkan posisi baru untuk akhir. Ya. Jadi kita harus melakukan posisi titik tengah - akhir. Besar. Kita perlu menetapkan posisi baru untuk akhir untuk melihat kiri setengah. Ini adalah apa yang kita bicarakan sebelumnya di mana Aku tetap akan kembali ke contoh ini. Saya telah mulai di sini, dan kemudian saya memiliki akhir semua cara di atas sini. Sekali lagi, jika kita sedang mencari 15, dan titik tengah kami adalah pada 16, dan kita menyadari, "Ups, 16 lebih besar. Kami ingin pindah ke kiri setengah. " Kami kemudian akan memindahkan ujung ke 15, dan kami melakukannya dengan mengambil satu jauh dari titik tengah dan menetapkan bahwa sebagai akhir baru kami. Demikian juga, jika kita ingin melihat kanan setengah, bagaimana kita melakukannya? Apakah Anda punya ide? [Siswa] Anda hanya mengatur mulai titik tengah + 1. [Nate] Besar. Dan sekarang dalam hal bahwa kita tidak menemukan apa-apa, apakah itu mendapatkan perawatan yang diambil dari bagi kita? Daniel, apakah yang bisa diambil dari perawatan bagi kita? [Daniel] No [Nate] Jika kita membuatnya melalui seluruh array dan kita tidak menemukan apa-apa, mana yang akan diperhatikan, atau harus kita mengurusnya? [Daniel] Kondisi saat. [Nate] Ya, kondisi saat, tepatnya. Ini akan mengurus melalui seluruh array jika kita tidak menemukan apa-apa. Ini while loop akan berakhir. Kami tidak pernah akan jumpai kondisi ini, dan kita bisa kembali palsu. Kami juga dapat meninggalkan ini jika di sini seperti ini karena jika ini jika pernyataan benar, dan fungsi kita akan kembali, dan jadi kami pada dasarnya akan batalkan fungsi ini pada saat ini ketika kita kembali benar. Tapi apa yang terjadi dengan struktur ini di sini? Ini akan bekerja sepenuhnya, atau apakah ada kesalahan logis di sana? Ada beberapa kesalahan logis di sana, dengan cara itu diatur. Apa mungkin itu? [Siswa] Mengapa Anda perlu - dan + 1s? Yang menetapkan array kita sampai menjadi setengah baru kami kiri dan bagian kanan. [Mahasiswa] Tapi mengapa tidak bisa Anda melakukannya tanpa - 1s dan + 1s? [Nate] Kita bisa mengaturnya sama dengan titik tengah? Apa yang mungkin bermasalah tentang hal itu? [Mahasiswa] Saya kira itu tidak efisien karena Anda sedang memeriksa nilai yang sudah diperiksa. [Nate] Tepat, sehingga Sam benar-benar tepat. Jika Anda mengatur akhir dan mulai sama dengan titik tengah bukannya - 1 dan + 1 reflektif, di beberapa titik di masa depan kita akan berakhir memeriksa titik tengah lagi. [Mahasiswa] saya mulai pset, dan kemudian aku punya sesuatu seperti itu di mana saya lupa + 1, dan itu terjebak dalam infinite loop. Benar, karena pada titik tertentu Anda tidak akan pernah mendapatkan memulai dan mengakhiri untuk benar-benar tumpang tindih. Cool. Ada satu kelemahan logis lebih, dan itu adalah bahwa ini pasti harus lain jika. Mengapa itu terjadi? Alasannya adalah jika itu bukan lagi jika-kau melihatnya, Kevin? [Kevin] Ya, karena Anda mengubah titik akhir. [Nate] Tepat. Kami mengubah titik akhir, dan jika itu ditulis seperti ini-kita membuat spasi antara- itu akan memeriksa kasus ini. Kasus ini, jika berhasil, akan membatalkan keluar dari fungsi. Kemudian akan memeriksa kasus ini selanjutnya, dan jika ini berhasil, maka akan menyesuaikan titik akhir, dan kemudian akan melanjutkan dan memeriksa kasus ini. Tapi pada saat ini, kita tidak ingin untuk melanjutkan pemeriksaan. Untungnya, kami belum me-reset titik tengah di sini, dan kita tahu bahwa kasus ini tidak akan berhasil. Tapi kita pasti ingin menempatkan lagi jika di sana meskipun itu mungkin-dalam hal ini karena kita tidak menyesuaikan titik tengah, yang akan membuat perbedaan? Tidak, karena kasus-kasus ini semua eksklusif. Sekali lagi, saya buruk. Kami tidak, saya pikir, perlu lagi ini jika. Kita bisa mencobanya dan menjalankannya dan melihat apa yang terjadi. Bangunan, terjadi kesalahan. Ini mungkin karena aku meninggalkan ini b dan e di sini. Apakah saya harus lagi sampai mereka di atas? Ini tidak terlihat seperti itu. Kami zoom out, membangun, ada kelanjutannya, jadi sekarang jika kita mencari 15, ya. Biarkan aku zoom in 15, ya. Kita bisa jalankan lagi. Meng-upload kode sumber, membangun, menjalankan. Kita dapat mencari sesuatu seperti 13, dan kita tidak mendapatkan apa-apa mencetak, sehingga tidak menemukan bahwa bagi kita. Itu bagus, karena itu tidak ada dalam daftar kami. Kita sekarang kehabisan waktu. Itu akan baik untuk minggu ini. Terima kasih untuk bergabung, dan lihat nanti. [CS50.TV]