LUCAS FREITAS: OK, saya kira sekarang kita hidup. Selamat Datang CS50 Supersection. Kita Kurang Nyaman. Nama saya Lucas Freitas. Aku salah satu CS50 Kepala TF. Ini adalah Lauren. LAUREN Carvalho: Hi, aku Lauren. Saya juga Kepala TF untuk CS50. LUCAS FREITAS: Hari ini kita hanya akan untuk memberikan gambaran tentang apa yang Anda Orang-orang telah belajar dalam satu minggu, mudah-mudahan untuk memberikan orang-orang baik yang akal untuk apa yang harus Anda ketahui untuk menetapkan satu masalah. Hanya beberapa pengumuman. Pertama-tama, jam kantor. Jam kerja yang terjadi dari hari Senin Kamis di rumah-rumah yang berbeda dalam Annenberg setiap hari. Mereka sumber daya yang sangat baik untuk Anda orang untuk datang dan mengajukan pertanyaan, dan berbicara dengan TF, dan bahkan pertukaran ide dengan siswa lain. Jadi pastikan untuk menggunakan sumber daya yang dalam mendukung Anda. Yang kedua adalah CS50 Appliance. Untuk terakhir [Tak terdengar] kalian tidak harus benar-benar memiliki alat. Anda hanya melakukan semuanya dalam komputer pribadi Anda. Tapi untuk masalah ini, Anda benar-benar memiliki untuk memiliki mesin virtual, jadi Pastikan untuk men-download CS50 Peralatan dan mengaturnya. Dan hal ketiga adalah pastikan untuk mulai masalah mengatur secepatnya hanya karena itu jauh lebih mudah untuk menemukan membantu ketika Anda berada di awal minggu. Karena orang-orang cenderung untuk menunggu sampai detik terakhir untuk memulai set masalah, dan kemudian Anda pergi ke jam kantor, dan ada banyak orang. Dimana jika Anda pergi pada hari Senin, Anda akan untuk melihat bahwa Anda dapat berbicara dengan TF cukup banyak untuk sepanjang malam, dan mereka akan lebih dari senang untuk membantu Anda. LAUREN Carvalho: Bisakah saya berhenti Anda hanya satu detik? Apakah semua orang bisa men-download the CS50 Appliance? Apakah orang mencoba? LUCAS FREITAS: Untuk men-download, dengan cara, Anda bisa mendapatkan petunjuk di cs50.net/appliance. LAUREN Carvalho: Benar. Dan itu tidak mengambil sedikit waktu untuk kami sys admin untuk mendapatkan lisensi kunci, jadi mendaftar untuk percobaan gratis pertama. Dengan cara itu Anda akan memiliki selama 30 hari, dan kemudian menunggu untuk kunci lisensi Anda yang harus memberikan kepada Anda selama satu tahun. LUCAS FREITAS: Pertama-tama, mari kita bicara sedikit tentang CS50 Appliance. The CS50 Appliance sebenarnya virtual mesin yang Anda akan berjalan di komputer Anda sendiri yang pada dasarnya menjalankan komputer lain dalam komputer Anda sendiri. Yang cukup keren. Dan sebenarnya itu digunakan di mana-mana. Orang-orang yang ke tech akan tahu bahwa ini digunakan sepanjang waktu. Anda? Dapat memiliki beberapa komputer dalam satu perangkat. Mari kita benar-benar kita lihat di Appliance itu. Ketika Anda pergi ke Appliance setelah mendaftar, Anda akan harus menempatkan nama Anda dan masuk ke Harvard sehingga kita bisa mendapatkan semua terdaftar. Anda akan melihat pada dasarnya hanya wallpaper, dan kemudian Rumah dan Sampah, dan kemudian ini ikon kecil. Ini tiga ikon sebenarnya yang paling hal penting yang dapat Anda miliki dalam Peralatan Anda. Yang pertama adalah gedit, yang merupakan teks Editor, seperti Notepad atau seperti setiap jenis editor teks. Ini hanya sesuatu yang kita gunakan untuk menulis kode dan kemudian melakukan hal-hal dengan itu. Hal kedua yang kita miliki di sini adalah Chrome. Jadi jika Anda perlu untuk menggunakan internet di Appliance, itu apa yang dapat Anda gunakan. Dan hal ketiga adalah terminal, yang sebenarnya sangat manis. Orang-orang biasanya jenis takut terminal karena ini sangat aplikasi kuno di mana Anda hanya pada dasarnya mengetik segala sesuatu dengan keyboard Anda. Tidak ada banyak interaksi dengan mouse Anda. Tapi sebenarnya terminal melakukan hal-hal yang sangat baik. Pertama-tama, mari kita pergi melalui beberapa perintah yang Anda dapat digunakan dalam terminal. LAUREN Carvalho: Dan merasa bebas untuk menghentikan kami jika Anda memiliki pertanyaan. LUCAS FREITAS: Ya. Jadi perintah pertama yang kita miliki untuk terminal ls. ls pada dasarnya berarti daftar semuanya, semua file dan semua direktur, bahwa saya memiliki di tempat itu saya di. Jadi jika saya melakukan ls di sini, aku akan melihat bahwa saya memiliki beberapa direktori. Saya memiliki desktop, download, log, dan vhosts. Mereka adalah warna biru karena mereka semua direktori. Kemudian Anda memiliki beberapa file lainnya. Anda punya seperti Halo dan hello.c, yang hanya file, dan mereka berada di warna yang berbeda. Jadi ini adalah perintah yang sangat penting hanya Anda dapat melihat apa saja file dan direktori yang Anda miliki di direktori yang Anda berada di dalam terminal. Ketika Anda melihat jharvard @ alat dan maka simbol kecil di sana, tilde, itu hanya berarti bahwa itulah direktori yang Anda berada saat ini. LAUREN Carvalho: Jadi mengetik ls hampir seperti mengklik pada folder yang tercantum di sana, di dalamnya menunjukkan Anda semua konten yang dalam folder itu. AUDIENCE: Apakah ada teks setelah hello.c ini? LAUREN Carvalho: Oh, Anda tidak bisa melihat bahwa, karena itu biru. LUCAS FREITAS: Dikatakan log dan vhost. LAUREN Carvalho: Mereka adalah hanya folder lain. Maafkan aku, itu benar-benar sulit untuk melihat. Mungkin jika kita mematikan lampu? Colton, apakah Anda ingin mencoba dan menemukan tombol lampu? Maaf tentang itu. Saya tidak berpikir tentang hal itu. LUCAS FREITAS: Tapi itu pada dasarnya - yeah, jika Anda bisa - LAUREN Carvalho: Zoom di layar Anda. LUCAS FREITAS: Saya tidak memiliki fitur itu. LAUREN Carvalho: [Tak terdengar]. OK. Nah, ada hanya banyak alami cahaya di ruangan ini juga. LUCAS FREITAS: Mari kita berasumsi bahwa ada dua direktori lain di sana. LAUREN Carvalho: Hanya beruang dengan kami. Ini adalah satu-satunya bagian yang Anda akan akan melihat terminal. LUCAS FREITAS: Perintah berikutnya adalah pada dasarnya mungkin Anda ingin mengatur file Anda - misalnya, semua file C Anda dalam satu direktori-tetapi Anda tidak memiliki direktori C hanya untuk file belum. Anda pada dasarnya dapat membuat direktori menggunakan terminal juga, yang hal yang sama seperti mengklik kanan dan mengatakan New Folder. Perintah ini membuat direktori, yang adalah mkdir, jadi pada dasarnya "membuat" dan "Direktori." Dan kemudian Anda dapat menempatkan nama direktori. Mari kita mengatakan bahwa saya ingin dipanggil, Saya tidak tahu, katakanlah pset1 Melakukan ini, saya baru saja membuat sebuah direktori. Mari kita periksa bahwa itu ada. Jadi jika saya lakukan ls, sekarang saya melihat log, dan maka pset1, dan kemudian vhosts. Jadi saya memiliki direktori baru di sana. Dan kemudian setelah Anda memiliki direktori baru, mungkin Anda ingin untuk menavigasi ke dalamnya, sehingga perintah berikutnya cd ini, yang pada dasarnya hanya berarti pergi ke direktori tertentu. Jadi jika saya ingin pergi ke pset1, Saya hanya dapat melakukan cd pset1. LAUREN Carvalho: cd singkatan dari perubahan direktori, [Tak terdengar] mampu ingat itu. LUCAS FREITAS: Dan sekarang Anda melihat bahwa bukan hanya memiliki jharvard alat, saya telah jharvard alat, dan kemudian pset1, karena itu menunjukkan saya di mana saya di komputer ini. Sekarang jika saya ingin kembali ke direktori yang sebelum ini, saya dapat melakukan cd dot dot, yang hanya berarti pergi ke direktori yang saya sebelumnya, seperti induk ini direktori, pada dasarnya. Dan sekarang saya melihat bahwa saya kembali ke jharvard. Hal berikutnya yang bisa saya melakukannya adalah rm, yang menghapus file. Sebagai contoh, mari kita pertama melakukan ls untuk melihat apa yang saya miliki di sini. Aku punya halo dan hello.c. Mari kita mengatakan bahwa saya ingin menghapusnya. Aku bisa melakukan rm halo. Ini akan mengatakan "menghapus file biasa halo? "Dan saya berkata" ya. "Dan sekarang jika saya melakukan ls, saya melihat bahwa itu tidak ada lagi. Jika saya mencoba untuk menggunakan rm untuk direktori, meskipun, itu tidak akan untuk membiarkan Anda melakukan apa-apa. Ini akan mengatakan, hei, Anda tidak dapat menghapus direktori. Jadi kita memiliki ini lain datang disebut rmdir, yang hanya pada dasarnya berarti menghapus direktori. Saya bisa, misalnya, menghapus pset1. Dan jika saya lakukan ls, saya tidak memilikinya lagi. Pertanyaan tentang ini? Tidak ada? Ya? AUDIENCE: Apakah penting bahwa Anda meninggalkan spasi setelah - setiap kali Anda mulai mengetik sesuatu di? LUCAS FREITAS: Ya. Jika saya melakukan seperti cd dan direktori, Saya harus menempatkan spasi. Apa ruang yang kau bicarakan? LAUREN CARVALHO: Ruang antara cd dan [Tak terdengar]. LUCAS FREITAS: Ya, Anda harus menempatkan ruang karena cd adalah perintah, dan kemudian string berikutnya yang jenis pada dasarnya adalah direktori. Jadi itu seperti sebuah argumen. Ya? AUDIENCE: Bila Anda daftar, semua orang adalah direktori yang berbeda, kan? LUCAS FREITAS: Ya, mereka berada di direktori. AUDIENCE: Apa perbedaan antara direktori? LUCAS FREITAS: Mereka hanya folder yang berbeda. Direktori adalah folder di komputer Anda. AUDIENCE: Buka folder. LUCAS FREITAS: Ya, itu hanya sebuah folder yang terbuka. LAUREN Carvalho: Di sini, orang-orang yang warna biru yang sebenarnya direktori yang dapat Anda masuk ke dan kemudian melihat sekelompok hal-hal yang dalam itu, yang sangat disayangkan karena Anda tidak bisa benar-benar membaca yang warna biru. Dan yang putih hanya file yang berada di dalam direktori saat ini. LUCAS FREITAS: Jadi direktori adalah folder. Yang lainnya adalah file. AUDIENCE: Apa perintah untuk me-reset atau untuk menghapus itu? LUCAS FREITAS: Untuk menghapus? LAUREN Carvalho: Untuk menghapus? LUCAS FREITAS: Saya pikir itu "jelas." Ya. Jadi Anda hanya mengetik jelas apakah layar Anda terlalu berantakan. Ada pertanyaan lain? Dan Anda akan belajar banyak lainnya perintah hanya alami selama semester karena mereka sangat berguna. Jadi sekarang mari kita bicara tentang kompilasi. Kami berbicara tentang pseudocode dan kode sumber dan kode objek. Dan ada banyak kode, dan mungkin kalian bingung tentang hal itu. Mari kita bicara sedikit tentang apa terjadi ketika Anda sedang menulis sebuah program, dan Anda kompilasi, dan itu menjadi file eksekusi. Mereka adalah semua kata yang kalian mungkin mendengar, dan mungkin Anda tidak benar-benar yakin apa yang sedang terjadi. Katakanlah, misalnya, bahwa saya ingin menulis sebuah program yang mengatakan "Halo." Itu hal pertama yang muncul dalam pikiran Anda adalah Anda jenis mencoba untuk memikirkan bagaimana Anda akan melakukan itu dalam pikiran Anda, dan Anda mungkin berpikir dalam bahasa Inggris atau beberapa bahasa lain, seperti alam bahasa, mungkin. Dan kemudian Anda berpikir, baik, jika saya ingin, misalnya, menulis sebuah program yang mengatakan "halo," Aku akan memulai sebuah program, Saya akan mencetak halo, dan kemudian saya akan keluar dari program. Ini adalah pseudocode. Ini hanya pada dasarnya Anda mencoba untuk datang dengan urutan kejadian bahwa Anda akan lakukan untuk menjadi mampu menulis sebuah program. Kemudian Anda memiliki kode sumber, dan kode sumber tidak harus secara khusus berada di C. Kita bicara tentang kode sumber dalam C karena itulah bahasa yang kita pelajari, tapi tentu saja kode dapat hampir semua bahasa pemrograman yang Anda miliki. Kemudian dalam semester, Anda akan untuk belajar bahasa lain. Itu juga kode sumber. Sebagai contoh, di sini, ini adalah sumber saya kode, dan kemudian aku termasuk perpustakaan, dan kemudian saya mulai utama, dan kemudian saya mencetak. Dan Laura akan berbicara sedikit sedikit tentang semua ini. Jadi ini adalah kode sumber. Dan apakah kode objek? Tujuannya adalah sekelompok nol dan orang-orang, pada dasarnya. Apa yang terjadi adalah Anda awalnya memiliki pseudocode, yang semua dalam bahasa Inggris. Dan Maksudku, kau memahaminya. Mungkin teman Anda memahami itu, dan kebanyakan orang akan memahami ide. Tapi komputer benar-benar bodoh, dan mereka tidak mengerti bahasa Inggris, sehingga Anda telah menerjemahkannya ke sesuatu, biasanya diterjemahkan ke dalam beberapa bahasa pemrograman. Dan Anda bisa memikirkan pemrograman yang bahasa sebagai jenis seperti bahasa bahwa Anda memberitahu bagaimana komputer Anda untuk berbicara dan memahami. Anda pada dasarnya menulis sesuatu di bahasa yang Anda berdua dan Anda komputer mengerti. Itulah kode sumber. Jadi akan bentuk pseudocode ke sumber kode, itu terserah Anda. Ini pada dasarnya Anda melakukan program anda. Tapi masalahnya adalah bahwa komputer bahkan tidak memahami bahasa pemrograman. Ia tidak memahami source code sama sekali. Ini sebenarnya hanya memahami nol dan satu. Jadi kita memiliki hal ini sangat ajaib yang disebut compiler, yang pada dasarnya adalah akan mendapatkan sumber yang disebut bahwa Anda menulis dalam bahasa kedua Anda dan komputer Anda berbicara, dan sekarang kau akan mengubah bahwa dalam nol dan satu. Jadi pada dasarnya apa yang dilakukan adalah compiler mendapat kode sumber, dalam hal ini C, itu akan mengubahnya menjadi nol dan orang-orang yang komputer memahami dan dapat membuat file executable dari itu. Apakah itu masuk akal? Anda hanya bisa memikirkan compiler sebagai semacam penerjemah yang membantu Anda menjelaskan kepada komputer persis apa yang seharusnya dilakukan. Tapi bagaimana saya mengkompilasi. Mari kita kembali ke Appliance, dan mari kita mengatakan bahwa saya melakukan program itu. Pertama saya akan membuat direktori di sini, dan aku akan menyebutnya "Praktek." Sekarang aku akan menavigasi ke direktori, sehingga praktek cd. Sekarang aku dalam praktek. Sekarang saya ingin memulai gedit, jadi bagaimana saya melakukannya? Saya juga bisa klik di sini, atau aku hanya bisa harfiah ketik "gedit," dan itu akan untuk membuka bagi saya. Sekarang aku akan mengetik program saya, jadi persis apa yang saya tulis dalam slide. Saya menyatakan perpustakaan. Aku melakukan int main, batal. Dan sekarang aku melakukan printf, halo. Sekarang aku akan menyimpan ini. Mari saya mempraktikkannya, dan Aku akan memanggil hello.c ini. Jadi sekarang itu disimpan. Jika saya ingin melakukan kompilasi, saya benar-benar dapat melakukannya di dua tempat yang berbeda. Aku juga bisa melakukannya di jendela terminal, jadi yang besar ini, atau Anda dapat menggunakan gedit yang benar-benar memiliki jendela terminal di sini. Jadi Anda bisa sangat nyaman hanya melakukan kode Anda, dan kemudian Anda dapat cukup ketik apa pun di sini, dan mencoba untuk compile. Jadi bagaimana cara mengkompilasi kode? Cara termudah yang kita miliki adalah dengan menggunakan membuat, yang merupakan fungsi yang pada dasarnya akan mengkompilasi kode Anda. Anda hanya harus mengatakan membuat halo, sehingga "Membuat" dan nama program. Oops. Ini adalah aneh. LAUREN Carvalho: Dapatkah Anda [Tak terdengar]? LUCAS FREITAS: Maaf. Aku tidak menyimpannya dalam direktori yang benar. Datang untuk berlatih, dan sekarang simpan sebagai hello.c. Maafkan aku. Sekarang itu disimpan. Mari saya hanya melakukan ls dan menjadi yakin bahwa itu di sini. OK, sekarang ada di sini. Jadi sekarang jika saya membuat halo, meludah a banyak hal, tetapi kemudian hanya memberi saya baris lain untuk terminal, yang berarti bahwa itu berhasil. Jadi sekarang jika saya melakukan ls lagi, aku benar-benar melihat file ini di hijau, yang merupakan file executable. Dan kemudian jika saya ingin menjalankannya, semua yang Saya harus lakukan adalah dot slash halo. Ini akan menyapa di sini, jadi itu persis apa yang saya minta itu. Ada satu lagi cara kompilasi, yang menggunakan dentang. Dentang hanya compiler yang kita miliki, dan itu sedikit lebih verbose untuk kompilasi. Tapi itu bekerja sama dengan baik. Jadi jika saya melakukan dentang, dan kemudian-o, dan kemudian nama yang ingin saya berikan kepada file executable, jadi mari kita katakan "Halo." Dan kemudian file yang saya inginkan untuk mengkompilasi, hello.c. Ini juga akan mengkompilasi. Dan Anda memiliki file di sini, dan Aku hanya bisa jalankan juga. Jadi keduanya bekerja. Apakah itu masuk akal? Ada pertanyaan? AUDIENCE: Dapatkah Anda zoom dalam sedikit? LUCAS FREITAS: Maaf? AUDIENCE: Zoom in? LAUREN Carvalho: Saya pikir Anda hanya dapat perintah plus. LUCAS FREITAS: Command apa? LAUREN Carvalho: Command plus. LUCAS FREITAS: No LAUREN Carvalho: Oh, itu bukan akan bekerja karena - itu karena kita mengatur resolusi untuk hal ini. LUCAS FREITAS: Saya tidak pikir kita bisa zoom in Ya, kita tidak bisa tampilannya. Apakah Anda memiliki pertanyaan lain? Maaf. AUDIENCE: Bisakah Anda mengulangi dentang? LUCAS FREITAS: dentang The? Dentang adalah hal yang sama seperti make, tapi perbedaan adalah yang pertama kali aku akan untuk menulis dentang, yang merupakan perintah, maka aku akan melakukan -0, semua, yang hanya apa yang kita akan pelajari nanti sebagai bendera. Jadi hanya berpikir bahwa Anda selalu harus meletakkan-o. Dan maka pertama, Anda akan menempatkan nama file executable, pada dasarnya file yang Anda akan menciptakan. Jadi saya bisa mengatakan, misalnya, hello2 dan maka file yang saya ingin mengkompilasi, yang merupakan file c.. Jadi itulah hello.c. Apakah itu masuk akal? AUDIENCE: Hello apa? Apa itu? LUCAS FREITAS: hello.c. Dan jika saya compile, dan jika Saya ls, saya juga memiliki hello2 bahwa saya baru saja anda kompilasi. Dan jika saya mencoba untuk menjalankannya, itu akan melakukan hal yang sama seperti halo, hanya mencetak halo. AUDIENCE: Kenapa untuk make Anda dapat menempatkan hello.c setelah? LUCAS FREITAS: Pada make, Anda tidak harus meletakkan. c. Dalam make, Anda hanya mengatakan nama program. Anda tidak harus mengatakan. C. Tapi untuk dentang, Anda harus. AUDIENCE: Dengan dentang apakah Anda juga harus menambahkan [Tak terdengar] LAUREN Carvalho: Ya. Jadi Anda juga harus ke perpustakaan. LUCAS FREITAS: Ya, itu sesuatu kita akan menggunakan nanti. Itulah yang disebut menghubungkan, dan saya pikir kita akan membicarakannya nanti. Pertanyaan lain? AUDIENCE: Apakah Anda menempatkan dentang dot slash? LUCAS FREITAS: No Dot slash hanya untuk membuka file executable. Jadi dentang, Anda hanya menulis "dentang," dan maka jika Anda ingin membuka file executable yang baru saja Anda dikompilasi, maka Anda dot tebang dan nama. Apakah itu masuk akal? AUDIENCE: Jika Anda hanya perubahan [Tak terdengar] untuk hello world, apakah Anda harus mengkompilasi ulang itu? LUCAS FREITAS: Ya. jika saya ingin mengatakan, misalnya, "halo ada, "Aku hanya bisa menyimpannya sekarang, dan saya hanya compile lagi. Jadi biarkan aku melakukan make halo. Dan jika saya melakukan halo, itu akan mengatakan "halo ada." Masuk akal? Ada pertanyaan lain? AUDIENCE: Apakah Anda harus menyertakan standar I / O untuk mengkoordinasikan pekerjaan? LUCAS FREITAS: Ya. Standar I / O pada dasarnya adalah perpustakaan yang memiliki implementasi untuk printf. Sehingga hal yang benar pada atas termasuk stdio. Itu termasuk perpustakaan yang pada dasarnya memiliki banyak berbeda alat yang dapat Anda gunakan. satu? Satunya adalah printf yaitu fungsi yang pada dasarnya cetakan pesan ke layar. Ada pertanyaan lain? Tidak ada? OK. Jadi sekarang mari kita bicara tentang - LAUREN Carvalho: Mari kita pergi ke panduan gaya. Apakah Anda ingin hanya menemukannya di sini? LUCAS FREITAS: Jadi kita akan untuk berbicara tentang gaya. LAUREN Carvalho: Oh, David tidak selesai. OK. Mengapa kita tidak kembali ke gaya di akhir? Ini benar-benar telah diperbarui saat kita bicara. LUCAS FREITAS: Ya. Mari cara untuk David untuk menyelesaikan itu. LAUREN Carvalho: Can kita beralih sebenarnya? Jadi saya harap semua orang sudah menikmati Scratch. Sayangnya, saatnya untuk menjauh dari ini - sayangnya saatnya untuk pindah dari blok-blok pemrograman cantik ke C. Tapi untungnya, semua pemrograman konstruksi bahwa Anda telah telah bekerja dengan di Scratch adalah langsung diterjemahkan ke C, dan kami akan mulai belajar tentang beberapa dari mereka sekarang. Mari kita pertama berbicara tentang kondisi dalam ekspresi Boolean. Hal ini berjalan pada cadangan daya baterai. LUCAS FREITAS: Bagaimana yang tidak bekerja? OK. Anda pergi ke sana, aku akan mendapatkan - LAUREN Carvalho: Jadi kondisi penting karena mereka memungkinkan kita untuk memperkenalkan logika ke dalam program kami. Berikut ini adalah contoh dari kondisi dalam program C. Mari kita perhatikan bagaimana ini - Jadi blok kondisi ini di sini, ini Pernyataan printf tidak akan mengeksekusi kecuali kondisi dalam kurung, n lebih besar dari 0, bernilai true. Sekarang, semua kondisi dalam f Pernyataan adalah ekspresi Boolean, yang berarti bahwa ada hanya dua pilihan. Mereka juga bisa mengevaluasi dengan benar, atau mereka dapat mengevaluasi ke false. Jadi di sini, jadi ini masuk akal, kan? n lebih besar dari 0, berarti itu adalah positif nomor, yang berarti bahwa itu akan mencetak out "Anda memilih angka positif." Ada banyak ekspresi Boolean yang dapat membentuk kondisi dengan Pernyataan init. Kami memiliki kurang dari. Ini adalah kurang dari atau sama dengan. Ini hanya lucu [Tak terdengar]. Jika Anda ingin printf terjadi jika lebih besar dari atau sama dengan 0, maka Anda akan memilih ini. Jadi sama saja menambahkan tepat setelah lebih besar dari tanda. Sama sama, yang berbeda dari hanya satu tanda sama, sama sama sebenarnya berarti bahwa apa pun yang pada sisi kiri ini adalah sama dengan apa yang ada di sisi kanan ini di mana satu tanda sama adalah apa? Apa hanya satu tanda sama? Penugasan. LUCAS FREITAS: Siapa yang bilang? Apakah itu permen? Oh, tidak. Maaf. Maaf. Anda berdua mendapatkan permen. Oh, OK! Tiga orang mendapatkan permen! LAUREN Carvalho: Jadi yang satu ini di sini adalah operator ledakan sebelumnya tanda sama, jadi itu tidak sama dengan. Jadi jika ini berada dalam kondisi saya, tubuh kondisi akan mengeksekusi hanya jika apa pun di sebelah kiri adalah tidak sama dengan apa yang ada di sebelah kanan. Saya juga dapat memiliki hanya tanda seru. Sebenarnya kita akan melihat di fitur geser bagaimana hal ini akan digunakan. LUCAS FREITAS: Ada pertanyaan? Tidak ada? LAUREN Carvalho: Kita dapat menggabungkan Ekspresi Boolean untuk membangun lebih pernyataan bersyarat rumit. Jadi di sini, jika apa pun di sebelah kiri sisi ganda bar atau apa yang ada pada sisi kanan ganda bar mengevaluasi untuk benar, maka kita akan mencetak valid. Dan kemudian turun di sini, jika apa pun yang di sisi kiri dari dua ampersands dan apa pun di sebelah kanan sisi dari dua ampersands mengevaluasi ke benar, maka kami akan mencetak valid. Ganda bar yang disebut logis OR operator ampersands ganda disebut operator logika AND. Ya? AUDIENCE: Apakah itu hanya huruf kecil l's? LAUREN Carvalho: No Mereka sebenarnya - Anda tahu backlash, seperti di atas tombol Kembali Anda? Apakah Anda melihat itu? LUCAS FREITAS: Ini sebenarnya sebuah bar. LAUREN Carvalho: Ini sebenarnya hanya dua bar. AUDIENCE: Dapatkah Anda menggunakan sama sama untuk string? LUCAS FREITAS: No Kita akan pelajari nanti sesuatu tentang itu. LAUREN Carvalho: Ada fungsi yang dapat Anda gunakan. Tapi Anda tidak perlu khawatir bahwa dulu. Bagaimana jika saya memberikan program ini nomor 5? Apa yang akan mencetak? AUDIENCE: [Tak terdengar] valid. LAUREN Carvalho: Valid? Ya. Saya tidak tahu siapa yang punya itu. [Tertawa] LAUREN Carvalho: Itu semacam menakutkan [Tak terdengar]. AUDIENCE: Jadi ganda dan, itu hanya berarti dan? LAUREN Carvalho: Ya. Jadi nomor 5 adalah baik lebih besar dari 0 dan kurang dari 100. AUDIENCE: Mengapa itu akan menjadi satu? LAUREN Carvalho: Satu ampersand adalah sebenarnya sesuatu yang berbeda, dan itu operator bitwise, yang Anda akan belajar tentang nanti. Tapi itu adalah sesuatu yang benar-benar bekerja dengan bit angka yang diberikan. LUCAS FREITAS: Hanya berpikir mereka tidak perlu khawatir tentang hal itu untuk saat ini. LAUREN Carvalho: Saya pikir itu mungkin datang minggu depan. LUCAS FREITAS: Ada pertanyaan lain? Tidak ada? LAUREN Carvalho: Jadi kita telah melihat bahwa itu blok dapat berdiri sendiri, tetapi bisa juga dipasangkan dengan dan lain blok. Jadi dalam hal ini, jika n lebih besar dari 0, kita akan mencetak "Kau mengambil angka positif. "yang lain, yang berarti jika 0 atau jika itu kurang dari 0, kita akan mencetak, "Kau memilih angka negatif." Yang menarik di sini adalah bahwa ini eksklusif satu sama lain. Ada pernah akan menjadi kasus di mana ini dan ini berdua bisa mencetak. Saya yakin Anda bekerja dengan jika / lain kotak di Scratch, jadi ini harus cukup akrab. Ya? AUDIENCE: Apakah kita perlu ruang antara int n sama getInt maka ruang di jika pernyataan? Seperti kita menggunakan garis [Tak terdengar] LAUREN Carvalho: Oh, ruang di sini? AUDIENCE: Seperti itu, tapi Anda dua spasi. Tidak, naik. Naik. LUCAS FREITAS: Hanya garis? AUDIENCE: Ya. LUCAS FREITAS: Hanya baris kosong? AUDIENCE: Ya. LAUREN Carvalho: baris kosong? Tidak. Itu hanya hal gaya. LUCAS FREITAS: Ini seperti kadang-kadang Anda hanya melewatkan beberapa baris jadi bahwa kode tidak terlihat seperti blok besar teks. LAUREN Carvalho: Saya pikir apa yang terjadi adalah bahwa kita memiliki komentar di sini, tapi saya membawanya keluar sehingga kalian akan memiliki untuk berpikir tentang kode agak dari sekedar membaca komentar saya. Secara umum, jarak tidak akan benar-benar mempengaruhi cara program Anda berjalan. Ini lebih dari hal gaya. Dan ketika kita memiliki panduan gaya diperbarui dan siap untuk pergi pada akhir supersection, kita akan bicara tentang itu lagi. Ada sesuatu yang salah dengan program ini, kan? Karena 0 adalah tidak benar-benar angka negatif. Jadi mari kita lihat apakah kita bisa memperbaikinya. Anda mungkin bisa membayangkan dengan ini mengatakan, kan? Jika n lebih besar dari 0, kita cetak, "Kamu mengambil angka positif. "Kemudian lain jika n kurang dari 0, "Kau memilih angka negatif. "yang lain," Kau memilih 0. " Sekarang hal yang menarik adalah bahwa ini bisa berlangsung selamanya. Anda dapat memiliki blok if, seorang lain jika blok, lain lain jika blok, lain jika, else if, else if, else, pada dasarnya selama Anda inginkan. Dan ketika dibangun seperti ini, ini semua akan menjadi terpisah satu sama lain. Ya? AUDIENCE: Jadi kenapa tidak Anda hanya menggunakan lain jika bukan [Tak terdengar]? LAUREN Carvalho: Dalam kasus ini, ya saya bisa menggunakan lain jika, dan itu akan baik-baik saja karena kondisi sendiri terpisah satu sama lain. Namun jika kondisi tidak eksklusif satu sama lain, hal ini akan memaksa mereka untuk tidak pernah keduanya mengevaluasi, jika itu masuk akal. AUDIENCE: Dalam hal ini, bisa kita sarang kedua jika di pertama jika? LAUREN Carvalho: Jika - apa maksudmu? AUDIENCE: Jika dua kondisi tidak saling eksklusif? LAUREN Carvalho: Jika kondisi tidak saling eksklusif? Tapi Anda ingin hanya salah satu dari mereka untuk menjalankan? AUDIENCE: Anda ingin hanya jika bukan yang lain. LAUREN Carvalho: Ya. Selalu ada akan menjadi banyak cara yang dapat Anda lakukan ini. Anda pasti dapat sarang mereka. Dan Anda akan melihat dalam slide masa depan yang Anda dapat memiliki beberapa ifs, hanya satu demi satu. Tapi ini adalah cara logis mengatur aliran program anda. LUCAS FREITAS: Dan ada satu lagi hal, adalah bahwa Anda bertanya tentang menempatkan jika dan kemudian lain jika. Itu akan bekerja dengan sempurna, tapi itu buruk desain karena pada dasarnya jika Anda periksa pertama jika, dan Anda melihat bahwa jumlahnya lebih besar dari 0, Anda hanya dapat menyelesaikan program ini. Anda tidak harus memeriksa apakah itu kurang dari 0, kan? Tapi jika Anda jika jika, itu akan memeriksa baik, sedangkan jika saya lakukan jika lain adalah, itu akan memeriksa apakah itu lebih besar dari 0. Jika ya, itu tidak akan bahkan terlihat di jalur lain kode. Jadi pada dasarnya Anda memeriksa seperti dua kali tidak perlu, jadi itu sebabnya kami lakukan jika lain jika. Ada pertanyaan lain? AUDIENCE: Jadi fungsi tersebut dari yang lain jika sama dengan apakah itu hanya jika? LAUREN Carvalho: No Anda benar-benar akan melihat dalam berikutnya geser contoh di mana ia dapat berbeda. Dalam hal ini, itu hampir sama. Jadi di sini, kami memiliki contoh beberapa jika laporan, dan fungsi tidak sama seolah-olah aku baru saja mengatakan jika lain, jika lain, jika lain. Mari kita berpikir tentang apa yang akan mencetak jika saya masukkan nomor 95 ke dalam program ini. AUDIENCE: [Tak terdengar] LAUREN Carvalho: Lalu? AUDIENCE: [Tak terdengar] LAUREN Carvalho: Ya. Jadi dalam hal ini, kondisi ini tidak saling eksklusif satu sama lain. Dan karena tidak ada yang menghentikan kondisi ini dari mengevaluasi apakah ini satu sudah memiliki, mereka hanya semua akan mencetak. Jadi bagaimana saya bisa memperbaiki ini? AUDIENCE: lain seandainya? LAUREN Carvalho: Anda dapat menggunakan lain ifs. Aku bisa mengubah urutan ini, kan? Jika saya melakukan ini pertama? Well, sebenarnya, tidak ada. Itu tidak akan bekerja untuk 95. LUCAS FREITAS: Tidak, hanya yang lain seandainya. LAUREN Carvalho: lain The ifs akan tetap ini. Apakah itu menjernihkan kebingungan antara ifs dan lain seandainya? AUDIENCE: Saya hanya ingin bertanya, jika Anda tidak menggunakan else if, itu akan berhenti? LAUREN Carvalho: Benar. Jadi hanya satu pertama ini. Jika saya memasukkan nomor 95, hanya ini akan dicetak, dan itu tidak pernah akan berkembang ke yang lain tersebut. LUCAS FREITAS: Hanya jenis pikirkan sebagai jika hal ini terjadi, lakukan ini. Yang lain adalah seperti jika tidak, cek untuk ini, dan kemudian melakukannya. Jadi seperti mereka semua saling eksklusif. Anda tidak bisa masuk ke dua atas mereka. AUDIENCE: Dapatkah Anda menggunakan logis DAN untuk situasi itu? LAUREN Carvalho: Ya. Itulah cara lain bahwa kita bisa telah tetap masalah ini. Kita bisa didefinisikan berkisar, kan? Jadi saya bisa mengatakan jika n lebih besar dari 90 dan kurang dari - baik, saya kira ini tidak benar-benar masalah, tapi di sini aku bisa mengatakan jika n lebih besar dari 80 dan kurang dari 90. Lebih besar dari 70, kurang dari 80. Itu akan juga bekerja. [Tertawa] LUCAS FREITAS: Dia takut. LAUREN Carvalho: Jangan takut. LUCAS FREITAS: Ini bukan bahwa itu akan salah. Hanya saja itu tidak perlu verbose. Seperti dalam ilmu komputer, salah satu harus sesederhana mungkin selama Anda memiliki fungsi tersebut. Apakah Anda ingin permen? AUDIENCE: Jangan membutuhkannya. LAUREN Carvalho: Kau membuatku takut semua orang, Lucas. LUCAS FREITAS: Maaf. LAUREN Carvalho: David juga menyebutkan ini beralih pernyataan di kelas. Pada dasarnya apa yang terjadi adalah saklar Pernyataan mengambil variabel. Dalam hal ini, kami mengambil integer. Jika integer adalah 1, kita akan mencetak, "Kau memilih kecil nomor. "Jika integer adalah 1," Kau mengambil sejumlah media. "Jika integer 3, "Kau memilih tinggi nomor. "Dan saya juga punya kasus standar di sini, tapi itu tidak menunjukkan up, yang terlalu buruk. Pada dasarnya, ini hanya sintaks lain. Kita bisa menerapkan ini tepat hal yang sama dengan jika dan lain jika pernyataan. Tapi ketika ada banyak yang berbeda kondisi dan banyak yang berbeda variasi pada apa yang ingin Anda lakukan untuk setiap masukan, ini adalah pilihan. Jadi itu hanya sintaks yang baik untuk tahu. Ya? AUDIENCE: Mengapa tidak ada backslash n di yang pertama? LAUREN Carvalho: Untuk atas sana? Tidak ada backslash n di sana karena getInt - jika Anda mencoba ini, itu akan memberikan prompt ini. Beri aku integer antara 1 dan 3. Dan jika saya menempatkan tendangan n, itu akan membawa saya ke baris berikutnya, tapi aku hanya ingin mereka untuk mengetik integer tepat setelah usus besar. Anda bisa menempatkan tendangan n. Ini bukan masalah besar. Ya? AUDIENCE: Untuk kode ini, apakah ini kasus satu, adalah bahwa karena itu adalah kasus pertama? Karena - LAUREN Carvalho: Tidak, tidak, tidak. Jadi ini memberikan saya integer antara 1 dan 3. Jika n adalah 1, saya mencetak ini. Jika saya telah meminta untuk surat, aku bisa memiliki mengatakan memberi saya surat antara A dan C. Maka ini akan menjadi kasus A. AUDIENCE: [Tak terdengar]. Kasus ini hanya akan [Tak terdengar] LAUREN Carvalho: Ya, benar. Ya? AUDIENCE: Bagaimana jika Anda ingin memiliki lebih dari sebuah ekspresi relasional? Jadi, bukannya mengatakan n sama dengan 1, [Tak terdengar] n lebih besar dari 1 dalam kasus pertama? LAUREN Carvalho: Sebenarnya, jika saya tidak mendefinisikan beberapa kasus, hal ini akan akan membawa turun. Jadi sebenarnya, mungkin ini bukan apa yang Anda minta. LUCAS FREITAS: Saya pikir dia menanyakan apakah kasus itu n lebih besar dari 0, kasus kurang dari 0. LAUREN Carvalho: Mungkin saklar Pernyataan ini tidak benar-benar apa yang Anda inginkan untuk digunakan dalam kasus itu. LUCAS FREITAS: Pernyataan switch hanya untuk nilai, sehingga Anda pengecekan nilai seperti ini atau itu. Jadi Anda tidak bisa benar-benar menempatkan kondisi. AUDIENCE: Bagaimana jika orang tersebut tipe dengan [Tak terdengar]? LAUREN Carvalho: Yang pasti kasus default saya, yang sayangnya Anda tidak dapat melihat. LUCAS FREITAS: [Tak terdengar] membuat mereka melihat. LAUREN Carvalho: Sebenarnya, Anda tahu apa? Mari kita pergi untuk belajar 50, dan aku akan hanya memperbesar slide pada studi 50, karena ini hanya mengganggu. Jadi biarkan aku benar-benar pergi ke kondisi. Ini hanya akan mengambil sedikit waktu. Baik. Jadi, aku minta maaf. Setidaknya sekarang kita akan dapat melihat segala sesuatu tanpa memotong. Baik. Jadi jika mereka dimasukkan ke dalam 10, kita akan default di sini untuk kasus default saya, dan saya hanya akan mencetak valid karena saya meminta mereka untuk memasukkan integer antara 1 dan 3. Ada pertanyaan lain? Ya? AUDIENCE: Katakanlah untuk satu kasus, kasus tiga, katakan Anda ingin menjadi semua hal yang sama, sehingga Anda memilih nomor itu bukan nomor menengah. Dalam hal ini, apakah itu berlebihan? Apakah Anda hanya mengubah teks di kedua dari mereka, atau akan ada beberapa redundansi? Apakah ada cara untuk menggabungkan [Tak terdengar]? LAUREN Carvalho: Ada cara untuk menggabungkan mereka, tapi saya yakin Anda bisa hanya menggabungkan yang berdekatan. Jadi jika saya tidak menentukan apa-apa untuk kasus dua, ini akan berlaku untuk kedua kasus. Oh, jika saya tidak memasukkan apa pun untuk kasus satu, ini akan berlaku untuk kasus satu dan dua. Jika itu masuk akal. AUDIENCE: Bisakah Anda mengulangi itu? LUCAS FREITAS: OK. Jika Anda melakukannya pada dasarnya, seperti, Anda memiliki hal yang sama, tetapi Anda tidak menempatkan apa pun di sini, Anda akan baik untuk kasus satu atau dua kasus, melakukan hal ini. Benar? Dan istirahat ini berarti jika Anda mendapatkan dalam kasus ini, hanya meninggalkan. Jadi itulah yang berarti rem. Jadi jika saya hanya melakukan ini, Anda melihat, itu kasus satu, dan Anda hanya akan melakukan hal ini. Jika itu terjadi dua, itu juga akan hanya datang ke sini dan melakukan itu. AUDIENCE: Tapi Anda bisa melakukannya? Jika ada sesuatu untuk kasus dua [Tak terdengar] LAUREN Carvalho: Saya tidak percaya Anda bisa melakukan itu. Saya tidak berpikir Anda dapat melewatkan sekitar. Anda bisa melakukan itu, Rob? Saya rasa tidak. AUDIENCE: Jadi hanya satu nomor bisa pergi setelah kasus, kan? Tidak mungkin ada satu kasus, koma, dua? LUCAS FREITAS: Tidak, Anda tidak bisa. Anda pasti tidak bisa. LAUREN Carvalho: Maksud saya, intinya adalah ini adalah pilihan, dan ini mungkin tidak sesuai dengan kasus penggunaan Anda, sehingga kemudian Anda akan menggunakan jika kondisi. AUDIENCE: Jadi, mengapa Anda melakukan hal ini? Saklar? LAUREN Carvalho: Saya akan menggunakan ini jika Anda sangat ditentukan - sebenarnya, Lucas, yang Anda memblokir. LUCAS FREITAS: Oh, maaf. LAUREN Carvalho: Jika Anda memiliki sangat perilaku didefinisikan yang Anda inginkan untuk setiap masukan, mungkin ini sedikit lebih ringkas daripada menuliskan jika pernyataan untuk masing-masing. AUDIENCE: Apakah yang istirahat berarti lagi? LAUREN Carvalho: istirahat berarti berhenti. Ingat, jika saya tidak memiliki istirahat ini sini, kita akan hanya jatuh ke bawah ke kasus berikutnya. LUCAS FREITAS: Istirahat berarti untuk mendapatkan keluar dari pernyataan switch. Karena jika itu 1, saya ingin untuk mencetak ini dan meninggalkan. Saya tidak ingin memeriksa apa-apa lagi. AUDIENCE: Anda tidak ingin untuk mencetak apa pun. LUCAS FREITAS: Ya. Karena itu saling eksklusif. AUDIENCE: Dan apakah ini hanya melanjutkan untuk kasus berikutnya jika kasus pertama tidak benar? Atau apakah itu menguji semua kasus pada saat yang sama? LUCAS FREITAS: Tidak, cek berurutan. Secara berurutan, yeah. Satu pertanyaan lagi, maka kita harus bergerak sehingga kita bisa menutupi semuanya. Ya? AUDIENCE: Jadi untuk kasus ini, bisa melakukan sesuatu selain hanya satu? Bisakah Anda memberikan kisaran? LUCAS FREITAS: No LAUREN Carvalho: Saya tidak berpikir Anda dapat memberikan berbagai. LUCAS FREITAS: Anda tidak bisa Anda tidak bisa memberikan kisaran. AUDIENCE: Kasus ini spesifik [Tak terdengar]. LUCAS FREITAS: Beralih adalah semacam nilai-nilai. Anda melakukan hal-hal yang berbeda tergantung pada nilai, nilai tertentu. Anda tidak dapat melakukan jangkauan, Anda tidak bisa melakukan hal lain. Ini hanya alat lain untuk melihat. LAUREN Carvalho: Kebanyakan orang tidak menggunakan beralih pernyataan yang sangat banyak dalam CS50, tapi itu ada. Baik. Jadi hal berikutnya kita akan berbicara tentang adalah operator ternary. Ini hanyalah jenis lain bersyarat. Pada dasarnya apa yang terjadi di sini adalah aku meminta integer, dan jika n lebih besar dari 100, aku akan mencetak "Tinggi." Jika tidak, aku akan mencetak "rendah." Jadi apa yang dilakukannya adalah kondisi ini di sini, di kurung, dan Anda dapat jenis memikirkan pertanyaan karena saya menanyakan apakah ini benar atau tidak. Jika itu benar, aku akan melakukan hal ini pertama hal, dan jika itu tidak benar, aku akan melakukan hal yang kedua ini. Pertanyaan tentang operator ternary? LUCAS FREITAS: Hanya ingin diketahui dari David adalah bahwa setiap kali Anda memiliki Kondisi - LAUREN Carvalho: Saya kira David menonton via live streaming. LUCAS FREITAS: Dia melakukan kehidupan sungai sekarang. Jadi, setiap kali Anda memiliki kondisi, Anda seharusnya menempatkan kurung kurawal, seperti yang kita miliki dalam sebuah saklar Pernyataan sini. Kami memiliki kurung kurawal di sini. Untuk kondisi apapun, Anda seharusnya juga menempatkan itu. LAUREN Carvalho: Anda akan melihat ini dalam panduan gaya. Kami tidak benar-benar memiliki panduan gaya sekarang. Saya pikir David masih bekerja. LUCAS FREITAS: Dia mengatakan bahwa itu hanya bekerja sekarang. LAUREN Carvalho: Oh, itu bekerja sekarang? OK. Jadi rupanya tahun ini dalam gaya membimbing, bahkan jika Anda hanya memiliki satu baris, Anda harus menempatkan orang kurung kurawal masuk Anda tidak perlu perlu untuk fungsi program. Dan mungkin kita harus istirahat setelah kondisi dan langsung untuk panduan gaya untuk membersihkan beberapa dari hal-hal ini? LUCAS FREITAS: Ya. Apakah Anda memiliki pertanyaan? AUDIENCE: Tidak, aku hanya akan menunggu sampai panduan gaya. AUDIENCE: Bisakah Anda kembali kepada operator terner? LAUREN Carvalho: Ternary, ya. LUCAS FREITAS: Operator Ternary adalah pada dasarnya pernyataan jika yang lain, tapi daripada harus memiliki dua baris memeriksa sebuah jika dan kemudian lain, Anda hanya memiliki satu baris. Jadi pada dasarnya jika saya ingin memberikan string nilai tinggi atau rendah, dan saya ingin melakukan tinggi jika n lebih besar dari 100 atau rendah jika kurang, apa yang bisa saya lakukan apakah ini [Tak terdengar] string akan menjadi, dan kemudian saya meminta program ini n lebih besar dari 100? Jadi itulah mengapa saya memiliki ungkapan ini dalam tanda kurung dan kemudian tanda tanya. Aku bertanya apakah itu lebih besar dari 100? Jika ya, itu akan menjadi tinggi. Jika tidak, itu akan menjadi rendah. Jadi pada dasarnya apa yang Anda pikirkan adalah Anda meminta pertanyaan, sehingga Anda masukkan ke dalam tanda kurung kondisi. Kemudian Anda menempatkan tanda tanya karena kau bertanya itu. Dan jika ini benar, itu akan menjadi nilai pertama [Tak terdengar] di sini. Jika tidak, aku akan menempatkan nilai yang setelah usus besar. Apakah ini masuk akal? Ini juga sesuatu yang seperti alat dalam C tetapi Anda tidak perlu khusus menggunakannya. Tetapi orang-orang CS biasanya seperti itu karena hanya menyimpan baris. LAUREN Carvalho: Ini sangat elegan. Itu banyak hanya dalam satu pernyataan. AUDIENCE: Jadi tanda persen hanya apa pun hasilnya pada baris sebelumnya? LAUREN Carvalho: Oh, maafkan aku. Tanda persen ini sebenarnya sebuah tempat untuk ini s. Dalam sebuah pernyataan printf, Anda punya ini String di sini, yang adalah apa yang akan mencetak, tetapi Anda tidak bisa hanya menempatkan ini s di sana. Jika tidak itu akan mencetak keluar s harfiah. Jadi kita menempatkan persen di sini untuk menjaga tempat ini diadakan untuk apa pun datang setelah koma. Jadi untuk string, Anda punya persen s. Untuk integer, i persen. Untuk float, persen f. Anda akan melihat orang-orang seperti kita melihat lebih banyak contoh. Tapi mungkin Anda harus berbicara tentang panduan gaya untuk sementara waktu, sekarang bahwa terserah. LUCAS FREITAS: Jika Anda pergi ke cs50.net/style, Anda akan melihat panduan gaya. Untuk masalah set, skor Anda untuk Masalah set terdiri dari ruang lingkup, yang pada dasarnya berarti jika Anda melakukan semua bagian dari masalah mengatur atau jika Anda mencoba sesuatu. Hal kedua adalah kebenaran, yang berarti adalah program anda melakukan apa yang seharusnya melakukan, atau apakah itu memiliki bug, atau tidak melakukan apa itu seharusnya dilakukan. Yang ketiga adalah desain, yang berarti Anda menerapkan dengan baik ini, atau Anda menggunakan pernyataan yang tidak perlu? Jadi misalnya, jika Anda ingin mengulang nomor 10 kali, apakah Anda menulis untuk loop atau Anda hanya melakukan 10 kali pernyataan yang sama, hanya melakukan copy dan paste. Jadi desain untuk itu. Dan akhirnya, Anda memiliki gaya. Gaya adalah seperti menilai jika kode Anda terlihat dibaca dan agak cantik. Itu hanya pada dasarnya berarti adalah kode Anda dapat dibaca? Apakah orang lain yang sedang mencari yang kode Anda dapat memahami apa yang itu lakukan? Apakah ada komentar dan sejenisnya? Mari kita bicara tentang gaya yang Anda seharusnya digunakan. Hal pertama adalah komentar. Komentar yang sangat penting bagi Anda kode karena kadang-kadang Anda lakukan program Anda, dan Anda tahu persis apa Anda ingin melakukannya Anda hanya mulai coding, hanya mengetik sekelompok C. Tapi jika orang lain sedang mencari yang Anda kode, mereka tidak akan dapat mengerti karena mereka tidak tahu hal-hal yang ada di kepala Anda, seperti pesudocode, jadi mungkin mereka akan memiliki waktu yang sulit untuk memahami apa kode lakukan. Jadi komentar yang benar-benar berguna untuk menjelaskan untuk seseorang yang melihat kode Anda apa yang dilakukannya, dan sebenarnya bahkan untuk Anda, mereka sangat berguna. Ketika Anda pergi ke lebih keras dan keras Psets, Anda akan melihat bahwa kode menjadi lagi, dan kemudian komentar yang benar-benar penting sehingga Anda ingat apa yang masing-masing bagian dari program Anda tidak. Untuk menempatkan komentar, Anda hanya dapat melakukan slash slash dan kemudian menulis komentar. Dan seluruh garis adalah bagian dari komentar, dan apa pun yang Anda tuliskan, itu tidak akan menjadi digunakan untuk kode Anda. Pada dasarnya seperti compiler akan mengabaikan itu. Apakah itu masuk akal? AUDIENCE: Apa yang Anda lakukan lagi untuk menulis komentar? LUCAS FREITAS: Ini? Slash slash? Setiap kali Anda mengetik slash slash, apa pun sejalan yang tidak akan untuk dianggap C. Ya? AUDIENCE: Jadi setelah komentar, Anda Cukup masukkan dan memulai baris baru? LUCAS FREITAS: Ya, persis. LAUREN Carvalho: The slash slash adalah untuk komentar satu baris. LUCAS FREITAS: Misalnya, di sini kita memiliki - biarkan aku memperbesar - misalnya, di sini saya menyatakan pelampung, tapi mungkin jika Anda hanya menempatkan ini dalam kode Anda, seperti Anda tidak tahu apa ini lakukan, seperti benar-benar seseorang yang melihat kode ini akan menjadi, seperti, apa sih yang terjadi? Jika Anda menempatkan komentar mengatakan "mengkonversi Fahrenheit ke Celsius, itu membuat banyak lebih masuk akal. Kau, seperti, OK, kau melakukan konversi. Apakah itu masuk akal? Jadi itu hanya sesuatu yang membantu orang siap kode Anda dan juga membuat Anda dapat mengatur kode Anda lebih baik. Hal kedua adalah bahwa Anda dapat melakukan komentar multi-line, sehingga memiliki satu komentar untuk sekelompok baris. Daripada harus menempatkan slash slash, komentar baris pertama, slash slash, baris kedua, dan seterusnya, Anda dapat menggunakan bintang slash. Cara yang Anda lakukan itu adalah bahwa untuk baris pertama komentar, Anda akan melakukan star star slash, jadi hanya seperti itu. Sama seperti di sini kita memiliki awal program, Anda biasanya menempatkan siapa Anda , apa program ini tidak, dan hal-hal seperti itu. Ini semacam seperti header untuk program tersebut. Sekali lagi, itu bukan sesuatu yang compiler akan peduli, tapi itu penting bagi Anda untuk tahu apa ini Program yang dilakukan atau untuk orang lain untuk mengetahui apa program anda lakukan. Jadi Anda slash bintang bintang, dan kemudian baris terakhir Anda akan melakukan star slash untuk dapat menutup yang komentar. Jadi pada dasarnya untuk semua jalur lain, Anda hanya bisa menulis apa pun, dan ini semua akan diabaikan. Dan juga, seperti gaya, Anda melihat bahwa setiap baris memiliki bintang, dan semua bintang-bintang selaras. Ini adalah hal penting sehingga bahwa kode Anda terlihat cantik. Kedengarannya bagus? Sekarang, kondisi. Apa David mengatakan bahwa kita harus benar-benar dimasukkan ke dalam slide tersebut, adalah bahwa ketika Anda memiliki jenis jika pernyataan atau segala kondisi, Anda harus menggunakan kurung kurawal untuk menunjukkan bahwa ini adalah apa yang akan terjadi ketika Anda memiliki kondisi tersebut. Secara teknis, ketika Anda memiliki kondisi dan kemudian baris berikutnya adalah salah satu line, Anda tidak secara teknis memiliki untuk menempatkan kurung kurawal. Pada dasarnya compiler akan mengerti tetap sebagai implisit. Tapi untuk CS50, kami meminta kalian untuk menempatkan kurung kurawal hanya agar Anda kode lebih terorganisir dan lebih mudah dibaca. Karena kode yang mendapat lebih lama jika Anda tidak memiliki kurung kurawal dan semacamnya. Itu akan benar-benar berantakan. LAUREN Carvalho: Ini adalah persis apa yang David hanya menunjukkan dalam slide saya sebelumnya. Ini jelas bekerja tanpa keriting kawat gigi, tetapi untuk alasan gaya kita akan meminta Anda menempatkan orang masuk Dan ketika Anda mulai menjalankan style50, yang merupakan jenis cek 50 untuk gaya, itu akan mengingatkan Anda untuk melakukan hal ini. LUCAS FREITAS: Dan satu hal lagi adalah ingat untuk menempatkan kurung kurawal bersama di setiap lini. Jadi yang Anda lakukan, misalnya, l's. Pergi ke baris berikutnya, buka keriting brace, maka Anda pergi ke baris berikutnya. Indentasi, yaitu empat spasi. Kemudian Anda menulis apa saja, maka lain line, dan tutup kurung kurawal. Jadi pastikan bahwa kedua keriting tersebut kawat gigi dalam baris yang berbeda. AUDIENCE: Jadi, jika kode ini punya seperti 10 ifs lain, ini harus menjadi 10 set tanda kurung? LUCAS FREITAS: Ya, untuk masing-masing. Ya. Jadi jika, lain jika, dan sebagainya. AUDIENCE: Dapatkah Anda tidak tekan Tab untuk indent? LUCAS FREITAS: Kami meminta Anda orang untuk menggunakan empat ruang. Beberapa editor teks menerjemahkan tab empat ruang secara otomatis. gedit tidak, sehingga Anda harus melakukan space space space space. Ini juga sesuatu yang beberapa programmer hanya melakukan tabs, beberapa programmer hanya melakukan empat ruang, dan beberapa orang lain bahkan melakukan dua atau tiga ruang. Hanya saja bahwa di sini kita bertanya kalian untuk melakukan empat ruang. AUDIENCE: Ada hampir pasti harus menjadi jalan bagi gedit untuk otomatis [Tak terdengar]. Seperti tidak ada [Tak terdengar] melakukan itu. LUCAS FREITAS: Ya. Saya pikir Anda bisa pergi ke Settings. AUDIENCE: Ini sudah melakukan semua itu. LUCAS FREITAS: Ini sudah tidak? OK. Jadi pastikan bahwa Anda memiliki empat ruang. AUDIENCE: Apakah kita harus meletakkan keriting kurung dalam untuk loop juga? LUCAS FREITAS: Ya. LAUREN Carvalho: Setiap kali Anda encapsulating blok kode, hanya silakan gunakan kurung kurawal. Dan sebelum Anda berpikir bahwa kita hanya menjadi sticklers tentang hal ini tidak baik untuk Alasannya, jika kalian tidak pergi untuk mendapatkan magang di perusahaan-perusahaan teknologi besar, mereka akan memberikan panduan gaya, dan mereka akan memberitahu Anda ini adalah apa yang Anda kode harus terlihat seperti. Dan meskipun Anda belajar kode seperti ini, mungkin di magang Anda harus melakukan sesuatu sama sekali berbeda. Mereka mengharapkan Anda untuk menyesuaikan dengan gaya mereka. LUCAS FREITAS: Dan satu hal lagi adalah yang Anda perhatikan bagaimana saya harus seperti x, ruang, kurang, ruang, 0? Kapanpun Anda memiliki operator - bisa seperti ditambah, dikurangi, kali, kurang, lebih besar operator, apa pun - Anda harus menempatkan spasi di sebelah kiri dan hak operator. LAUREN Carvalho: Mereka adalah disebut operan biner. Pastikan Anda selalu ruang out operan biner Anda. LUCAS FREITAS: Ini adalah bukan operan biner. LAUREN Carvalho: Itu karena dibutuhkan dua. LUCAS FREITAS: Oh, yeah. OK, switch. Pertama, Anda harus melihat bahwa sama seperti dalam sebuah pernyataan jika atau yang lain, Anda harus untuk menempatkan kurung kurawal pada baris sendiri dan di bawah penjepit keriting di sini. Perhatikan bahwa ada satu ruang setelah switch, sama seperti di jika dan lain kami memiliki satu ruang antara itu dan tanda kurung. Jadi, Anda harus menempatkan bahwa. Dan tidak ada ruang tepat setelah masing-masing kurung atau sebelum akhir kurung. Jadi Anda lihat bahwa itu semua bersama-sama, dan juga suka di sini. Ya? LAUREN Carvalho: Saya pikir kita perlu untuk melanjutkan. LUCAS FREITAS: Jadi ini adalah bagian dari panduan gaya yang Anda miliki untuk CS50. Pastikan untuk pergi ke cs50.net/style dan lihatlah ini. Ini semua sangat penting untuk skor gaya Anda. Biarkan aku kembali ke pernyataan. LAUREN Carvalho: Saya lebih suka hanya menggunakan style50. Kami hanya akan pergi langsung ke loop. Baik. Jadi mari kita kembali ke konten, sekarang bahwa kita telah melebihi bagian panduan gaya. Loops, Anda telah melihat mereka di Scratch, dan kita akan berbicara tentang mereka dalam C. Dalam untuk loop, ada tiga bagian dengan deklarasi ini untuk loop. Anda punya inisialisasi Anda yang Anda mengatur variabel Anda. Anda punya kondisi Anda, yang memeriksa untuk melihat apakah ada sesuatu yang benar atau salah dan apakah loop harus terus. Dan Anda punya update Anda, yang adalah memperbarui variabel Anda. Mari kita mengambil cepat melihat beberapa Kode C ini untuk loop dalam tindakan. Apa yang terjadi di sini dalam inisialisasi, kita sedang menyiapkan i ke 0. Dalam kondisi kami sedang memeriksa apakah saya kurang dari 10. Dan di update kita incrementing i. Jadi apa yang akan dihasilkan dari ini untuk loop? LUCAS FREITAS: Sebenarnya, pertama-tama, kalian tahu apa i + + adalah? AUDIENCE: Peningkatan oleh 1. LUCAS FREITAS: Naik 1, ya. Jadi ini adalah hal yang sama seperti melakukan i sama dengan i ditambah 1. Dan perhatikan bahwa kita tidak memiliki ruang antara i dan + +. Jadi kalian tahu apa yang akan lakukan? Dapatkah seseorang mengatakan padaku? Dan mungkin mendapatkan beberapa permen karena itu? AUDIENCE: [Tak terdengar] LUCAS FREITAS: OK. [Tak terdengar] menunjukkan semua orang kemudian [Tak terdengar]. Ya, itu akan menunjukkan "Ini adalah CS50 "10 kali. LAUREN Carvalho: Saya kira itu dalam judul slide. LUCAS FREITAS: Oh, yeah. [Tertawa] LUCAS FREITAS: Yang membantu. LAUREN Carvalho: Jadi mereka adalah untuk loop. Kita akan melihat beberapa contoh untuk loop di kemudian hari. Tapi mari kita benar-benar melihat pada Tipe kedua loop Anda akan menemukan di C, dan itu disebut loop sementara. Dalam beberapa saat loop, Anda sudah baru saja kondisi. Kondisi ini diperiksa dalam awal, dan jika kondisi yang mengevaluasi ke benar, maka kode dalam tubuh blok sementara akan mengeksekusi. Dan kode tersebut akan terus mengeksekusi selama itu kondisi tetap benar. Berikut ini adalah contoh dari sebuah loop sementara di C. Kita akan mengatur menghitung sampai 10 untuk mulai dengan. Selama hitung lebih besar dari 0, kita akan terus mencetak ini variabel di sini. Kita akan pengurangan jumlah dan kemudian memeriksa kondisi lagi. Print, pengurangan, cek kondisi lagi. Di sini kita memiliki contoh yang berhubungan untuk pertanyaan anda tadi. Kami memiliki persen s ketika kami mencetak string, dan sekarang kami mencetak sebuah int, kita memiliki persen i sebagai placeholder kami sebagai gantinya. Surat-surat semua harus cukup intuitif, s string, i untuk int. Jadi, jika kode ini dijalankan, Anda harus menghitung mundur dari 10 ke 0, mencetak setiap bilangan bulat. LUCAS FREITAS: Dan Anda dapat memikirkan persen karena rasanya seperti kosong ruang, dan kemudian Anda meletakkan ini variabel di sini dalam ruang kosong. Jadi misalnya, di sini saya hanya akan memiliki kosong, dan kemudian aku menempatkan menghitung kanan sana, nilai hitungan. Apakah itu masuk akal? Bisakah saya hanya melakukan seperti printf dan kemudian mengutip, menghitung? Apakah itu bekerja? AUDIENCE: No LUCAS FREITAS: Tidak, karena akan benar-benar mencetak kata "count" bukannya mencetak nilai. Ini adalah bagaimana Anda membuatnya mencetak nilai-nilai terhadap variabel bukannya hanya nama variabel. Ada pertanyaan? AUDIENCE: Mengapa Anda gunakan untuk sebagai menentang untuk sementara? LAUREN Carvalho: Saya akan menggunakan untuk loop jika saya tahu persis berapa banyak iterasi Saya ingin loop saya untuk menjalankan. Dalam kasus ini, itu tidak masalah karena, Maksudku, aku hanya mencoba untuk memikirkan benar-benar sederhana contoh untuk slide ini. Tapi mari kita mengatakan bahwa Anda menginginkan sesuatu untuk terus sementara - LUCAS FREITAS: Misalnya, Anda meminta masukan sampai orang memberikan masukan yang tepat. Jadi seperti sementara input tidak OK, terus meminta untuk itu. Atau seperti saat Anda sedang orang tua tidak memberikan uang, terus meminta untuk itu. [Tertawa] LAUREN Carvalho: Anda tidak tahu bagaimana banyak kali Anda harus melakukannya. LUCAS FREITAS: Karena Anda tidak tahu berapa kali itu akan terus berjalan. LAUREN Carvalho: Tapi dalam untuk loop, Anda perlu tahu berapa kali. Ya? AUDIENCE: Hanya untuk memperjelas, persen mengatakan ini adalah sesuatu akan terjadi, i untuk integer, dan backslash n - LAUREN Carvalho: Sarana? Siapa yang tahu apa artinya backslash n? Baris baru, ya. Tepat. LUCAS FREITAS: Anda dapat berpikir n sebagai baris baru. LAUREN Carvalho: Nice. AUDIENCE: Apa count yang dasbor dasbor [Tak terdengar]? LUCAS FREITAS: Hitungan dikurangi minus hal yang sama seperti plus plus, tapi bukannya meningkatkan, itu mengalami penurunan sebesar 1. LAUREN Carvalho: Setiap lebih sementara pertanyaan lingkaran? Tidak ada? Oh, kita seharusnya telah melewatkan itu. Ini adalah do while. Sangat mirip dengan while loop kecuali dalam hal ini kita memeriksa kondisi setelah kode dalam tubuh Loop mengeksekusi sekali. Jadi kita mengeksekusi kode pertama tidak peduli apa. Kemudian kita memeriksa kondisi, jalankan lagi jika kondisi benar. Anda akan menemukan diri Anda menggunakan ini ketika Anda meminta input pengguna. Karena Anda akan selalu harus bertanya sekali, dan kemudian tergantung pada apa input pengguna, Anda mungkin harus reprompt dan meminta lagi dan lagi jika input adalah bukan apa yang Anda diharapkan untuk menjadi. AUDIENCE: Jadi itu seperti bentuk bagi orang-orang untuk mengisi. LAUREN Carvalho: Ya, persis. Anda akan menemukan, saya pikir, dalam Anda pertama Pset, Anda akan harus menggunakan loop do baik untuk mengumpulkan masukan dari pengguna. AUDIENCE: Tergantung pada situasi, loop sementara Anda akan cenderung berjalan lebih sering daripada sementara loop, seperti oleh satu atau sesuatu? LAUREN Carvalho: Jika itu adalah tepat - LUCAS FREITAS: Mereka harus selalu dijalankan jumlah yang tepat waktu yang Anda ingin menjalankannya. Seperti kita menggunakan lakukan sementara karena kita benar-benar ingin mendapatkan masukan setidaknya sekali. Dalam loop sementara, kadang-kadang Anda tidak ingin untuk mengeksekusi sama sekali jika tidak kasus untuk mengeksekusi. Jadi itu tergantung pada desain. Maksudku, Anda dapat menggunakan lakukan sementara atau sementara selama kode Anda melakukan itu itu seharusnya dilakukan. LAUREN Carvalho: Tapi aku kira jawabannya untuk Anda Pertanyaannya adalah mungkin ya. Katakanlah kondisi itu palsu. Dalam satu kasus itu akan berjalan sekali, dan kasus lain itu akan berjalan nol kali. Jadi, ya. Pertanyaan lagi? Ya? AUDIENCE: Dapatkah kondisi loop menjadi untuk loop dalam hal variabel lainnya dari [Tak terdengar]. LAUREN Carvalho: Ya, itu bisa apa saja. Mungkin untuk Psets awal, Anda tidak perlu mengalami hal itu, tapi pasti itu bisa apa saja. LUCAS FREITAS: Saya pikir kami sudah selesai di sini. LAUREN Carvalho: Apakah kita? Tidak ada? LUCAS FREITAS: Loops? Ya. LAUREN Carvalho: Kita tidak seharusnya. Oh, kita sudah selesai dengan loop. OK. Sebenarnya, karena kita sudah berbicara begitu banyak, mari kita benar-benar semua menavigasi ke study.cs50.net/conditions. Dan Anda akan menavigasi turun untuk masalah widget. Well, sebenarnya, sementara orang yang mendapatkan ini diatur, CS50 Study adalah akan menjadi alat yang TF Anda akan gunakan untuk mempersiapkan bagian dan bahwa kalian dapat Anda gunakan jika Anda melewatkan bagian. Ini akan berisi sekelompok slide, beberapa tips dan trik untuk masing-masing topik, dan beberapa masalah praktek dengan solusi. Mengapa tidak semua orang hanya melihat-lihat pada masalah ini di sini. Maafkan aku, aku harus mengingatkan orang untuk membawa laptop saat ini. Tapi jika Anda tidak memiliki laptop, itu OK. Anda hanya dapat menuliskan ini ke bawah pada selembar kertas atau melihat lebih bahu tetangga Anda. Mari kita coba dan menulis sebuah program yang meminta pengguna untuk mengambil menebak, yang rata-rata jumlah anak per keluarga Unit di Amerika Serikat. Angka itu adalah 2, by the way, karena Anda dapat melihat dari contoh-contoh ini. Kami ingin mencetak rata-rata jumlah anak per keluarga di AS, maka kita ingin apa? Kami ingin mengumpulkan input dari pengguna. Dan kemudian tergantung pada apa yang user itu input, Anda akan mencetak baik ini benar atau ini tidak benar. Dan hal pertama yang Anda akan lihat, jika Anda mengklik panah kecil di bagian bawah widget masalah adalah tempat untuk menuliskan beberapa pseudocode. Jadi Anda tidak pemrograman belum. Anda hanya mendapatkan Anda ide-ide dalam rangka. Apakah ada yang ingin membantu Lucas datang dengan hak pseudocode untuk masalah ini? LUCAS FREITAS: Apa hal pertama bahwa kita mungkin harus lakukan di sini? Apa yang kalian pikirkan? AUDIENCE: [Tak terdengar] LUCAS FREITAS: Yeah, OK. Jadi, cetak. Katakan saja mencetak rata-rata ini jumlah orang? OK. Pertanyaan Print, katakanlah. Setelah saya mencetak pertanyaan ini, apa yang harus saya lakukan? AUDIENCE: Dapatkan masukan. LUCAS FREITAS: Dapatkan masukan. Ada lagi? AUDIENCE: Kondisi. LUCAS FREITAS: Kondisi. LAUREN Carvalho: Apa itu Kondisi akan menjadi? AUDIENCE: Jumlah [Tak terdengar]. LAUREN Carvalho: Benar. LUCAS FREITAS: Jadi apa yang akan saya untuk check-in kondisi? AUDIENCE: Jika itu sama dengan 2. LAUREN Carvalho: Jika itu sama dengan 2. Tepat. LUCAS FREITAS: Apakah ada sesuatu lain yang harus saya lakukan? AUDIENCE: Hitung. LUCAS FREITAS: Jadi jika sama dengan 2, katakanlah - saya hanya menulis jika input sama dengan 2, maka apa yang akan saya lakukan adalah cetak yang benar. Dan kemudian yang lain, aku akan untuk mencetak salah. Ada lagi? Tidak ada? LAUREN Carvalho: Jadi Anda dapat mengklik - tidak semua orang memiliki ini turun? LUCAS FREITAS: Apakah masuk akal? Jadi sekarang mari kita coba untuk kode ini. LAUREN Carvalho: Jika Anda mengklik sedikit panah, itu benar-benar menghemat Anda pseudocode, yang benar-benar menarik. Dan Anda dapat membuat mereka menjadi komentar jika Anda ingin hanya untuk mengingatkan diri Anda dari apa yang harus dilakukan. LUCAS FREITAS: Jadi misalnya, pertama Aku akan mencetak pertanyaan, sehingga bagaimana aku akan melakukan itu, sebenarnya? printf. Jadi printf, dan pertanyaannya adalah rata-rata jumlah anak per keluarga di AS. Lalu aku akan mendapatkan masukan dari pengguna. Jadi bagaimana saya bisa melakukan itu? AUDIENCE: Dapatkan Int. LAUREN Carvalho: getInt. LUCAS FREITAS: OK. Jadi pertama menyatakan, kan? int, sebut saja n sama getInt. Dan sekarang kondisi. Jadi saya katakan bahwa saya akan ke sini cek jawaban. Jadi pertama, jika input, yang n, sama dengan untuk - bagaimana aku akan menulis itu? AUDIENCE: Sama sama. LUCAS FREITAS: Sempurna. Jadi n. Dan perhatikan bahwa saya melakukan spasi, sama, sama, ruang, benar. Dan sekarang apa yang harus saya lakukan? Sesuatu yang sangat penting untuk gaya. Kurung kurawal. Dan kemudian aku akan mencetak. Bagaimana cara mencetak? printf. AUDIENCE: Mungkinkah dikapitalisasi? LUCAS FREITAS: No Ini seharusnya menjadi semua huruf kecil. Jadi yang benar. Apakah ini cukup untuk printf pernyataan, atau aku kehilangan sesuatu? AUDIENCE: baris baru. LUCAS FREITAS: baris baru, ya. Dan sekarang lain. AUDIENCE: Apakah ada spasi setelah printf, atau tidak? LAUREN Carvalho: Kita harus periksa panduan gaya. AUDIENCE: Seharusnya tidak. LUCAS FREITAS: Seharusnya tidak, OK. Jadi lain, printf, "Itu tidak benar." LAUREN Carvalho: Ups, kutipan Anda. LUCAS FREITAS: OK. Ada lagi? Apakah terlihat bagus? LAUREN Carvalho: Bagaimana kalau kita mencobanya? LUCAS FREITAS: Yeah, mari kita jalankan. Jadi kompilasi, dan Tampaknya ia bekerja. Mari kita coba dua anak. Itu benar. Dan sekarang mari kita jalankan lagi, tapi sekarang sebaliknya menempatkan dua anak, mari kita mengatakan bahwa aku akan dimasukkan seperti lima. Itu tidak benar. Jadi sepertinya bahwa ia bekerja. LAUREN Carvalho: Mengapa tidak Anda menunjukkan kepada mereka apa yang terjadi jika Anda meletakkan sesuatu aneh, seperti beberapa huruf. LUCAS FREITAS: Oh, yeah. Mari kita periksa juga. Bagaimana jika pengguna mencoba untuk mengacaukan dengan program anda, dan mereka hanya menulis, saya tidak tahu dua. Ini akan mengatakan coba lagi. LAUREN Carvalho: So getInt meminta mereka untuk mencoba lagi. Kita tidak harus berhati-hati itu diri kita sendiri. LUCAS FREITAS: Ya. Jadi kecuali aku benar-benar menempatkan nomor, itu akan terus meminta saya untuk mencoba lagi. AUDIENCE: Bagaimana Anda menjalankannya? LUCAS FREITAS: Cukup klik ini tombol bintang. LAUREN Carvalho: Anda harus pergi. Di sana Anda pergi. LUCAS FREITAS: Bintang tombol di sana. Ya? AUDIENCE: Apakah itu meminta [Tak terdengar] dengan angka desimal juga? LAUREN Carvalho: Saya percaya itu akan. LUCAS FREITAS: Jika tidak apa? LAUREN Carvalho: Jika mereka mengetik dalam angka desimal, saya pikir itu akan meminta. LUCAS FREITAS: Mari kita lihat. LAUREN Carvalho: Karena itu bukan int. LUCAS FREITAS: Ya. LAUREN Carvalho: Jadi itu bukan int, Dapatkan Int akan meminta Anda untuk mencoba lagi. AUDIENCE: Jadi di mana dalam kode yang akan tempat desimal yang mendorong pengguna bahwa mereka harus memasukkan integer khusus? LAUREN Carvalho: getInt sebenarnya melakukan hal itu bagi kita. AUDIENCE: Tidak, maksudku jika kita ingin untuk masuk [Tak terdengar] LUCAS FREITAS: Anda dapat mengatakan seperti rata-rata jumlah anak di AS. Saya tidak tahu. Kita dapat mengatakan, misalnya, "Silakan masukan integer. " LAUREN Carvalho: Sebuah integer sama dengan jumlah rata-rata. Maksudku, itu hanya bagaimana kata yang itu, kan? LUCAS FREITAS: Ya. Ini bukan bagian dari coding sebenarnya. Ini lebih dari seperti apa pun Anda akan ingin menulis dalam program anda. AUDIENCE: Bagaimana kita menjalankannya jika benar-benar di gedit [Tak terdengar]. Alih-alih menekan bermain? LUCAS FREITAS: Kami akan pertama compile. Kita bisa melakukannya dengan melakukan make dan nama file. Dan kemudian untuk menjalankannya, kami akan melakukan dot slash dan nama program. AUDIENCE: Saya kira apa yang saya maksudkan adalah jika kami ingin program untuk menanggapi salah, entri yang tidak valid mereka, Anda tidak harus dimasukkan ke dalam - LUCAS FREITAS: Kita tidak akan dapat melakukan itu karena kode ini mengatakan coba lagi berasal dari Get Int yang merupakan fungsi yang sudah dilaksanakan bagi kita melalui perpustakaan CS50, dan karena itu sudah diterapkan di sana, kami tidak bisa hanya [Tak terdengar]. LAUREN Carvalho: Jika Anda tidak menggunakan GetInt, maka Anda bisa melakukan itu. LUCAS FREITAS: Ya. Tetapi jika Anda menggunakan getInt, Anda tidak bisa. Ada pertanyaan lain? AUDIENCE: Bisakah Anda pergi dengan seperti GetFloat dan kemudian dapat menempatkan dalam desimal? LUCAS FREITAS: Ya. AUDIENCE: OK. Kemudian Anda hanya bisa input mengapung equals - LAUREN Carvalho: Ya. Persis sama kecuali mengapung bukan sebuah int. LUCAS FREITAS: Hanya taruh di sini dan kemudian getFloat ada. AUDIENCE: Seperti yang Anda akan melihat atau telah melihat - LAUREN Carvalho: kita memiliki tidak sampai di sana belum. AUDIENCE: - melakukan ketidaksetaraan dengan mengapung tidak [Tak terdengar] AUDIENCE: Apa titik koma artinya? LAUREN Carvalho: titik koma saja berarti bahwa pernyataan ini selesai, dan kita akan pergi ke slide berikutnya. AUDIENCE: Jadi itu perlu setiap kali? LAUREN Carvalho: Ya. Well, OK, jadi tidak untuk kondisi ini, karena mereka encapsulating sesuatu. Jadi pada dasarnya jika ada sesuatu yang menyebabkan Anda kemudian membuat kurung kurawal blok, tidak menempatkan titik koma di akhir. LUCAS FREITAS: Tapi semuanya lain, ya. Setelah Anda selesai pernyataan, menempatkan titik koma. Dan jika Anda lupa titik koma, yang compiler akan marah pada Anda, dan Anda akan memiliki mencoba untuk memperbaikinya. LAUREN Carvalho: Jika saya meletakkan titik koma di sini, yang akan menghentikan ini, dan saya akan pernah bisa mengeksekusi apa dalam, by the way. Jadi salah satu bug umum. AUDIENCE: Selalu mengeksekusi. LAUREN Carvalho: Ya. Dalam hal ini, kita akan selalu menjalankan apa yang ada di dalamnya. AUDIENCE: gaya Anda [Tak terdengar] melampirkan untuk Anda, pikir. LAUREN Carvalho: Oh, itu benar. AUDIENCE: [Tak terdengar] tunggal Hal baris [Tak terdengar] AUDIENCE: Ya? AUDIENCE: Dapatkah Anda memiliki beberapa masukan dalam satu baris? Jadi seperti yang bisa Anda meminta pengguna mencetak dua hal? LAUREN Carvalho: Tidak menggunakan - LUCAS FREITAS: No Mari kita mengatakan bahwa saya juga ingin untuk mendapatkan bilangan bulat ini m. Saya harus melakukannya dalam garis yang berbeda. AUDIENCE: Jika Anda adalah untuk menjalankan itu, bagaimana [Tak terdengar]? Ini akan mencetak prompt ada [Tak terdengar] dan kemudian Anda akan memasukkan salah satu dan - LAUREN Carvalho: Yah, menjalankannya. Maksudku, tidak ada yang menghentikan kita dari hanya menjalankannya dan melihat apa akan terjadi. LUCAS FREITAS: Saya pikir itu akan mengeluh pada kami karena kita tidak menggunakan - LAUREN Carvalho: Oops. LUCAS FREITAS: Ini mengeluh pada kita tepat sekarang karena kita tidak menggunakan ini variabel, tapi jika saya lakukan, misalnya, n adalah sama dengan sama dengan, dan m sama sama dengan, maka apa yang akan terjadi dalam kasus ini? Apa yang akan program ini lakukan? AUDIENCE: Saya hanya ingin tahu bagaimana itu akan - LAUREN Carvalho: Dia hanya ingin untuk mengetahui bagaimana tampilannya seperti, saya pikir, kan? Jadi butuh salah satu dari mereka, dan kemudian butuh yang kedua. Saya pikir kita harus bergerak, karena kita memiliki satu lagi slide show untuk pergi sebelum - Anda ingin menarik matematika? LUCAS FREITAS: Ya, matematika. LAUREN Carvalho: Berikan saya hanya satu detik. Ada numerik yang berbeda variabel dalam data C. angka pada C dapat diklasifikasikan ke dalam jenis yang berbeda, dan ini adalah orang-orang Anda akan melihat yang paling sering. Dan int adalah bilangan bulat. Anda tidak dapat memiliki desimal. Dalam Appliance, dibutuhkan 32 bit untuk menyimpan int. Sebuah float dapat memiliki desimal. Ini juga membutuhkan 32 bit untuk menyimpan pelampung di Appliance tersebut. Sebuah ganda adalah angka dengan desimal titik yang mengambil 64 bit untuk menyimpannya, yang berarti bahwa Anda hanya dapat memiliki presisi yang lebih besar karena Anda dapat memiliki lebih - apa yang Anda menyebutnya? LUCAS FREITAS: Ya, itu lagi. LAUREN Carvalho: tempat lainnya setelah titik desimal. Dan lama adalah seluruh nomor yang mengambil 64 bit untuk itu sakit di Appliance tersebut. LUCAS FREITAS: Jadi dapat lebih besar dari ints dapat. LAUREN Carvalho: Hal tentang data jenis di C adalah bahwa mereka memberitahu Anda apa jenis data yang Anda dapat menyimpan dalam variabel Anda. Mereka memberitahu Anda bagaimana Anda dapat menggunakan ini variabel dalam program Anda. Ini sangat penting untuk hanya melacak apa tipe data yang Anda gunakan, dan jika Anda perlu untuk membuang dari tipe data ke yang lain, pastikan bahwa Anda tahu persis apa yang terjadi ketika itu pengecoran berlangsung. Dan Anda akan melihat contoh kemudian di dalam slide tersebut dari kesalahan yang dapat terjadi. Mari kita lihat beberapa matematika di C dan berpikir benar-benar hati-hati, saya kira, tentang apa yang terjadi saat ini matematika berlangsung. Pada baris pertama, apa terjadi ketika saya menyatakan x? AUDIENCE: Anda memungkinkan x menjadi sesuatu? LAUREN Carvalho: Ya. Yah, aku benar-benar meminta operasi sistem 32 bit memori, kan? Di mana saya bisa menyimpan int, dan Aku akan menyebutnya int x. LUCAS FREITAS: Pada dasarnya terjadi dalam memori dan menemukan tempat yang memiliki 32 bit dan berkata, hey, aku ingin ruang ini, dan itu akan disebut x. Jadi Anda hanya cukup banyak temuan kotak dalam memori Anda untuk menyimpan nilai-nilai untuk x. LAUREN Carvalho: Dan kemudian aku menginisialisasi x, yang berarti bahwa saya hanya menyimpan nilai 2 di tempat itu, bongkahan itu memori, yang kami ajukan operasi sistem. Dan di sini apa yang kita lakukan adalah kita benar-benar menyatakan dan menginisialisasi y dalam satu baris, bukan dalam dua baris seperti yang kami lakukan di sini, yang juga merupakan baik-baik saja, Kita menambahkan 1 sampai x, dan kami menyimpan bahwa nilai y. LUCAS FREITAS: Jadi pada dasarnya apa ini baris tidak, ia menemukan sekarang kotak untuk y, dan kemudian nilainya, hal yang Anda akan dimasukkan ke dalam kotak, adalah akan menjadi nilai x ditambah 1. Sehingga memiliki kotak ini untuk y. Ia mendapat nilai x, terlihat di sini, dan melihat bahwa itu 2. Menaruhnya di sana, ditambah 1, sehingga menempatkan 3 di sana. Apakah itu masuk akal? Jadi y akan menjadi 2 dalam kasus ini. LAUREN Carvalho: Baiklah, keren. Kami melihat beberapa tambahan, jadi mari kita sekarang berpikir tentang pembagian di C. Di sini aku menyatakan dan menginisialisasi pelampung disebut jawaban dan membagi 1 dengan 10, dan kemudian saya mencetak jawabannya dua tempat desimal. Dan dicatat di sini, dalam pernyataan printf saya, ketika saya ingin mencetak sesuatu untuk dua tempat desimal,% .2 f adalah apa yang ingin saya gunakan. Jadi titik 2 hanya mengatakan Aku butuh dua tempat setelah desimal dicetak. Sekarang, apa yang akan terjadi jika saya menjalankan kode ini? Apakah ada yang punya ide? Apa yang akan mencetak? LUCAS FREITAS: Apa kita mengharapkan untuk mendapatkan. LAUREN Carvalho: Apa kita inginkan, pertama-tama? LUCAS FREITAS: [Tak terdengar] LAUREN Carvalho: 0,1, yeah. Tapi apa yang akan mencetak? AUDIENCE: [Tak terdengar] LAUREN Carvalho: Yah, tidak, sebenarnya. Ini adalah apa yang saya bicarakan tentang mengapa Anda perlu untuk melacak sangat hati-hati jenis data Anda. Jadi, apa jenis data ini? Adalah int, kan? Tak ada tempat desimal. 10 juga merupakan int. Tak ada tempat desimal. Jika saya membagi int oleh int, saya mendapatkan int yang tidak 0.1, karena ints tidak dapat memiliki tempat desimal, tetapi hanya 0. Karena int hanya memotong dari tempat-tempat desimal. LUCAS FREITAS: Jadi, setiap kali Anda melakukan operasi dengan ints, Anda akan mendapatkan int sebagai jawabannya. Jadi pada dasarnya, apa komputer lakukan, itu membagi 1 oleh 10, dan itu akan 0.1. Tapi kemudian itu seperti, tunggu, ini seharusnya menjadi integer, sehingga Anda hanya mengabaikan 0.1, jadi sekarang hanya 0. LAUREN Carvalho: Jadi ketika saya mencetak ini keluar, saya mendapatkan 0.00 daripada 0.10. LUCAS FREITAS: Apakah itu masuk akal? LAUREN Carvalho: Itu semacam malang, kan? LUCAS FREITAS: Jadi bagaimana kita bisa memperbaiki ini? LAUREN Carvalho: Mari mencoba dan memperbaikinya. Berikut ini adalah contoh di mana aku sebenarnya casting 1 dan 10 sampai mengapung. Jadi sekarang, 1 tidak lagi menjadi int. 1 adalah pelampung. By the way, ini hanya sintaks ketika Anda ingin membuang dari satu tipe data yang lain. Anda hanya dapat menempatkan jenis data dalam kurung dan memiliki hanya mendahului nilai bahwa Anda pengecoran. Jadi di sini, saya membagi pelampung oleh pelampung untuk mendapatkan jawaban yang mengambang. Dan ya, ini akan di Bahkan mencetak 0.10. Apakah itu masuk akal? LUCAS FREITAS: Jadi tipe casting hanya mengkonversi dari satu jenis yang lain. Jadi mengapung 1 sebenarnya 1.000. Tidak persis ini, tapi itu sesuatu dengan desimal yang sebenarnya 1. Apakah itu masuk akal? Ya? AUDIENCE: Bagaimana jika Anda melakukan mengambang jawaban equals 1,0 dibagi dengan 10? LAUREN Carvalho: Anda benar-benar akan untuk melihat bahwa dalam slide berikutnya. Itu sebenarnya geser kami berikutnya. Ini sebenarnya lebih baik daripada ketik casting, saya pikir. Jadi dua ini mengapung hanya dengan sifat fakta bahwa mereka memiliki tempat desimal. Ya? AUDIENCE: Bagaimana jika Anda lakukan [Tak terdengar] dibagi dengan 10? LAUREN Carvalho: Sebenarnya pelampung dibagi dengan int sebenarnya memberi Anda mengapung, sehingga akan bekerja dengan baik. Tunggu, tidak semua orang memahami hal ini? Karena ini akan menjadi benar-benar masalah besar di Pset1, sebenarnya. Ya? AUDIENCE: Bisakah Anda hanya cepat pergi ke bagian merah? LAUREN Carvalho: Bagian merah, yeah. Lucas, apakah Anda mau? LUCAS FREITAS: OK. Jadi ingat bahwa persen adalah placeholder. Ini seperti ruang kosong. Jadi mari kita mencoba untuk memahami segala sesuatu yang terjadi di sini. Persen berarti bahwa itu placeholder. Kemudian Anda memiliki f, yang berarti bahwa placeholder ini adalah untuk pelampung. Hal terakhir yang kita miliki di sini adalah .2, Yang berarti saya ingin memiliki dua desimal untuk mengapung. Jika saya hanya punya% f, mereka akan menempatkan sekelompok tempat desimal. Jadi aku hanya dapat menempatkan 0,2 atau 0,1 atau 0,5, atau apa pun, dan itu akan menempatkan bahwa jumlah tempat desimal. Satu-satunya hal adalah bahwa jika Anda menempatkan seperti .100 Atau .1,000, itu tidak benar-benar akan menempatkan semua tempat desimal karena tidak memiliki cukup memori memiliki presisi itu. Ada pertanyaan lain? Ya? AUDIENCE: Jadi mengambang hanya memungkinkan Anda melampaui bilangan bulat? LUCAS FREITAS: Ya. LAUREN Carvalho: Well, pelampung hanya memungkinkan Anda untuk memiliki tempat desimal. LUCAS FREITAS: Ini hanya berarti bahwa Anda sekarang dapat memiliki angka desimal. AUDIENCE: Mengapa kita pernah menggunakan bilangan bulat? LUCAS FREITAS: Mengapa Anda menggunakan bilangan bulat? Mungkin jika Anda menghitung dari 0 sampai 10, Anda ingin menggunakan sebenarnya integer. Anda tidak perlu menggunakan pelampung. Dalam beberapa situasi, Anda tidak harus benar-benar - LAUREN Carvalho: Mungkin Anda tidak ingin desimal. LUCAS FREITAS: Mungkin Anda tidak ingin menggunakan pelampung. LAUREN Carvalho: Hal lain adalah, ingat, keduanya menempatkan pelampung dan int mengambil 32 bit untuk menyimpan mereka, dan mungkin Anda tidak ingin menyia-nyiakan bit pada tempat desimal. LUCAS FREITAS: Ya. Jadi seperti, hanya berpikir tentang hal ini. Anda memiliki 32 bit untuk kedua int dan float. Untuk int, semua 32 bit pergi ke bagian integer. Jika Anda menggunakan pelampung dengan 32 bit, Anda memiliki bagian memori ini digunakan untuk nomor tersebut, untuk jumlah keseluruhan, dan bagian lain yang digunakan untuk tempat desimal. Jadi itu berarti bahwa Anda tidak bisa sampai ke jumlah yang sangat besar dengan mengapung karena float sudah menggunakan banyak memori untuk tempat desimal. Ya? AUDIENCE: Itu jawaban pertama, apa sebenarnya itu lakukan? Apakah pengaturan nilai float sama untuk placeholder itu untuk yang dapat Anda ingat itu di baris berikutnya? Dikatakan mengapung jawaban. LUCAS FREITAS: Ya. Jadi, float jawaban berarti Anda mendapatkan sekarang ember kecil di memori yang memegang pelampung, dan itu akan disebut jawaban. Jadi itulah yang mengapung jawabannya tidak. Dan kemudian Anda mengatakan bahwa dalam ini, Anda akan menempatkan hasil ini. Jadi Anda akan melakukan 1,0 dibagi dengan 10,0, Anda mendapatkan 0,1, dan kemudian Anda meletakkan bahwa dalam jawaban. LAUREN Carvalho: Jadi dalam satu baris, kami menyatakan dan menginisialisasi mengambang ini disebut jawaban. LUCAS FREITAS: Menariknya, meskipun ini hanya satu baris, itu melakukan beberapa operasi. Ini hanya cara C membiarkan Anda menggunakan kode kurang. Ini hal yang sama seperti yang terner operator, bagaimana Anda bisa melakukan [Tak terdengar] dalam satu baris. Ini benar-benar melakukan hal yang sama seperti melakukan mengambang jawaban, titik koma, dan maka jawabannya sama dengan ini, tapi bukannya membuat Anda melakukan dua baris untuk itu, itu seperti jalan pintas. Ya? AUDIENCE: Jadi, jika Anda berlari ini, itu akan menjadi 0,10? LUCAS FREITAS: Ya. Ya? AUDIENCE: Apakah jawaban sebenarnya kode, atau hanya nama? LAUREN Carvalho: Ini sebenarnya kode. Ini adalah apa yang kita akan untuk nama variabel kami. AUDIENCE: Jadi itu hanya nama [Tak terdengar]. LAUREN Carvalho: Ya. Saya bisa saja mengatakan mengambang x sama dengan 1.0. LUCAS FREITAS: Masalahnya adalah bahwa nama variabel adalah sesuatu yang Anda gunakan. Sangat penting bagi Anda. Untuk program yang sebenarnya, satu-satunya hal yang penting adalah nilai yang Anda memiliki di dalam ember. Alasan mengapa Anda memiliki variabel dan nama-nama variabel sehingga Anda akan tahu apa yang Anda hadapi, seperti jenis data Anda mengakses pada suatu waktu. Tapi untuk kode itu sendiri, jika Anda memanggil itu menjawab pertanyaan atau atau apa pun, cukup banyak, itu tidak masalah. Itu tidak masalah. Selama Anda konsisten dalam setiap kejadian itu dan sehingga Anda menyebutnya sesuatu yang lain. Ya? AUDIENCE: Apakah variabel melampaui fungsi? Seperti jika Anda adalah untuk membuat braket [Tak terdengar], bisa Anda hanya [Tak terdengar] menjawab lagi? LAUREN Carvalho: No AUDIENCE: [Tak terdengar] LAUREN Carvalho: No Itu akan luar lingkup variabel tertentu. Dan sebenarnya, itu semacam menarik, karena ketika kita memiliki hal-hal seperti loop atau ini jika kondisi, jika Anda mendeklarasikan variabel dalam satu set kurung kurawal, itu benar-benar hanya ada dalam kurung kurawal tersebut. AUDIENCE: Satu catatan terakhir tentang yang [Tak terdengar] mengapung. Mengapa Anda pernah ingin menggunakan ints? Ini adalah lebih dari sebuah catatan dari apa-apa, tetapi komputer Anda secara signifikan lebih baik dalam menangani ints daripada di mengapung penanganan. Ini seperti urutan besarnya lebih cepat. Jadi jika kita hanya ditangani hanya mengapung, hal akan jauh lebih lambat. LAUREN Carvalho: Sebenarnya, tampaknya ada menjadi masalah dengan mengapung. LUCAS FREITAS: Jenis alasan itu, Anda bisa berpikir, adalah bagaimana dalam biner Anda dapat mewakili bilangan bulat dengan menempatkan 0 dan 1. LAUREN Carvalho: Itu hal berikutnya. LUCAS FREITAS: OK. Mengagumkan. LAUREN Carvalho: Just terus pikiran itu. LUCAS FREITAS: OK, saya akan tell you later. LAUREN Carvalho: Sebelum kita mendapatkan apa Lucas hanya mengatakan, operator didahulukan. Ini adalah akal sehat. Kalian telah melakukan hal ini cukup. Jadi, hanya jika ada sesuatu yang dalam tanda kurung, itu akan terjadi terlebih dahulu. Ini perkalian diutamakan lebih Selain itu, pengurangan, hal-hal seperti itu. Jadi sebenarnya, hanya tidak ada yang ingin ceritakan apa sebenarnya nomor satu mengevaluasi ke? AUDIENCE: 27. LAUREN Carvalho: 27? Ya. LUCAS FREITAS: Biarkan saya memberi permen kepada orang-orang. LAUREN Carvalho: Baiklah. Bagaimana dengan nomor dua? Bagaimana dengan nomor dua? AUDIENCE: 22. LAUREN Carvalho: 22, yeah. Saya tidak tahu siapa yang punya itu. Nomor tiga? AUDIENCE: 10. LAUREN Carvalho: 10, ya. Keren. Jadi modulo. Lucas, apakah Anda ingin menjelaskan Modulo? LUCAS FREITAS: Modulo operator ini yang sebenarnya sangat berguna untuk banyak masalah. Jika saya melakukan 55 modulo 10, apa yang dilakukannya ini mari kita mengatakan bahwa saya ingin membagi 55 dengan 10. Apa yang saya dapatkan? Rasanya seperti jika saya sebenarnya hanya melakukan pembagian, apa pertama kali yang saya dapatkan integer? AUDIENCE: 5. LUCAS FREITAS: 5. Dan kemudian sisanya adalah 5, kan? Jadi seperti 5 kali 10 ditambah 5. Pada dasarnya, apa modulo tidak, ia mencoba untuk membagi angka ini dengan yang satu ini, dan itu melihat apa yang sisanya divisi. LAUREN Carvalho: Jadi itu hanya mengembalikan sisanya. Jadi nomor satu adalah apa? 5. Nomor dua? AUDIENCE: 3. LAUREN Carvalho: 3. Nomor tiga? 0. Dan empat adalah 1. Tepat. LUCAS FREITAS: Sederhana, kan? LAUREN Carvalho: Mengapa kita tidak melewatkan ini hanya karena kita tidak benar-benar memiliki waktu, dan orang-orang tampaknya mengerti. Jadi, inilah yang Lucas hanya berbicara tentang. LUCAS FREITAS: Alasan lain mengapa saya akan menggunakan ints bukan mengapung adalah yang mengapung sangat tidak tepat. Dan mengapa mereka tidak tepat? David mengatakan bahwa untuk mewakili integer, misalnya, kita menggunakan 0 dan 1, kan? Dan kemudian Anda pada dasarnya melakukan perkalian, melakukan semua operasi untuk mengetahui apa desimal nomor Anda memiliki bukan biner. Apa yang terjadi jika saya mencoba untuk menempatkan poin desimal? Sebenarnya, misalnya, jika saya memiliki jumlah seperti 3,33333? Rasanya seperti 10 lebih dari 3. Bagaimana aku akan menyimpan semua 3 adalah bahwa saya memiliki setelah itu? Ini sangat sulit, kan? Anda tidak bisa hanya memberitahu komputer, hey, saya punya 3, dan maka Anda melakukan itu selamanya. Sebenarnya komputer tidak cukup pintar untuk ini. Jadi pada dasarnya semua komputer Anda tidak adalah bahwa ia mencoba untuk menempatkan banyak digit sebagai itu bisa sampai ke memori yang Anda miliki. Jadi mari kita mengatakan bahwa itu akan mengatakan 3,3333, dan hanya itu. Sehingga tidak dapat benar-benar mengekspresikan tepat apa pelampung itu. LAUREN Carvalho: Kami memiliki jumlah terbatas bit, yang berarti bahwa tidak setiap angka desimal akan menjadi dapat diwakili tepat. Dan dalam contoh ini, jika kita mencetak 0,1, kita sekarang printing out 20 tempat. LUCAS FREITAS: Sama seperti aku mengatakan kalian, Anda bisa memasukkan nomor apapun. Tetapi jika Anda hanya melakukan dua tempat, Anda akan mendapatkan 0,10, tetapi jika Anda menempatkan 20 tempat, itu akan menunjukkan a bunch dari 's karena ini adalah apa yang dapat Anda masukkan dalam memori, kan? Tapi di sini, hingga 0, dan kemudian hanya menaruhnya a sekelompok angka acak. Ini adalah jenis seperti beberapa - LAUREN Carvalho: Ini karena kita tidak dapat mewakili desimal ini justru dengan nomor bit yang kita miliki. LUCAS FREITAS: Dan kemudian komputer pada dasarnya adalah memberikan Anda sejumlah sampah. Hal ini tidak benar-benar nilai nomor tersebut. AUDIENCE: Ini sedekat itu bisa mendapatkan [Tak terdengar] menggunakan [Tak terdengar]. LAUREN Carvalho: Jadi implikasi ini adalah bahwa katakanlah bahwa alih-alih menjadi 0.100014, apa pun, bagaimana jika itu adalah 0,0999 - baik, OK. Mari kita berpura-pura bahwa jawaban yang sebenarnya ini adalah 0,9999999. Itu sangat dekat dengan 1, tetapi itu tidak benar 1. Ini 0,99999. Itu berarti bahwa jika saya mengambil 0.999, dan aku melemparkannya ke int, saya mendapatkan 0. Saya tidak mendapatkan 1. LUCAS FREITAS: Karena ingat, pengecoran dari float ke int, Anda hanya mengabaikan semua tempat desimal. Anda hanya mengabaikan mereka. Tidak ada hal seperti pembulatan atau mengalir ketika Anda typecast. Sebenarnya, ada fungsi ini yang melakukan pembulatan, yang sangat penting, tapi Anda hanya berpikir bahwa ketika Anda melakukan typecasting, itu hanya akan menghapus segala sesuatu. Jadi bahkan jika Anda memiliki 0,99999, itu akan hanya memberikan 0 jika Anda typecast [Tak terdengar] integer. LAUREN Carvalho: Jadi hanya benar-benar menyadari floating point dalam presisi, terutama ketika Anda mulai menggunakan mengapung di Pset1. Tapi harus berjalan melalui memperingatkan Anda tentang itu juga. LUCAS FREITAS: sebenarnya Dan itu benar-benar keras, misalnya, jika saya lakukan mengambang jawaban 1 sama dengan 1,0 lebih 10, dan kemudian mengambang jawaban 2 sama dengan 10,0 lebih 100,0. Mereka adalah nomor yang sama, kan? 0.1, kan? 1 lebih dari 10 atau 10 lebih dari 100. Tapi sekarang jika saya mencoba untuk melihat kesetaraan, seperti jika jawaban 1 adalah sama dengan menjawab 2, mungkin itu tidak benar-benar akan menjadi hal yang sama. Jadi mengapung adalah jenis seperti itu. Mereka seperti melakukan kesetaraan.