[MUSIC PLAYING] SPEAKER: Baiklah. Jadi mari kita bicara tentang yang lain Hal itu semacam unik untuk C, yang merupakan tipe data dan variabel. Ketika saya mengatakan unik untuk C, saya benar-benar hanya berarti dalam konteks, jika Anda sudah programmer untuk waktu yang sangat lama, Anda sudah mungkin tidak bekerja dengan tipe data jika Anda telah menggunakan yang modern bahasa pemrograman. Bahasa modern seperti PHP dan JavaScript, yang kita juga akan melihat sedikit nanti di lapangan, Anda tidak benar-benar harus menentukan tipe data dari variabel ketika Anda menggunakannya. Anda hanya mendeklarasikan dan mulai menggunakannya. Jika itu integer, itu tahu itu integer. Jika itu karakter, itu tahu itu karakter. Jika itu sebuah kata, ia tahu itu string, disebut. Tapi di C, yang merupakan bahasa yang lebih tua, kita perlu untuk menentukan data jenis setiap variabel bahwa kita buat pertama kalinya yang kita gunakan variabel itu. Jadi C dilengkapi dengan beberapa built-in tipe data. Dan mari kita akrab dengan beberapa dari mereka. Dan kemudian setelah itu kami juga akan berbicara sedikit tentang beberapa tipe data bahwa kita telah ditulis untuk Anda, sehingga Anda dapat menggunakannya dalam CS50. Yang pertama adalah int. Tipe int data yang digunakan untuk variabel yang akan menyimpan nilai integer. Jadi 1, 2, 3, negatif 1, 2, 3, dan seterusnya. Bilangan bulat, yang merupakan sesuatu yang Anda harus diingat untuk kuis, selalu mengambil empat byte memori, yang merupakan 32 bit. Ada delapan bit dalam byte. Jadi ini berarti bahwa berbagai nilai-nilai yang integer dapat menyimpan dibatasi oleh apa yang dapat ditampung dalam 32 bit senilai informasi. Sekarang ternyata, itu lama memutuskan bahwa kita akan berpisah rentang 32 bit menjadi bilangan bulat negatif dan bilangan bulat positif, masing-masing mendapatkan setengah dari jangkauan. Jadi rentang nilai yang kami mewakili dengan rentang bilangan bulat dari negatif 2 untuk kekuatan 31 untuk 2 sampai kekuatan 31 minus 1, menyebabkan anda juga membutuhkan tempat untuk 0. Jadi pada dasarnya setengah dari nilai yang mungkin Anda dapat muat dalam sebuah int negatif, setengah positif. Dan kira-kira di sini, ini adalah tentang negatif 2 miliar untuk sekitar positif 2 miliar. Memberi atau mengambil beberapa ratus juta. Jadi itulah yang dapat Anda cocok dalam variabel integer. Sekarang kita juga memiliki sesuatu disebut unsigned integer. Sekarang unsigned int bukan Jenis terpisah dari variabel. Sebaliknya, unsigned adalah apa yang disebut kualifikasi. Memodifikasi data jenis bilangan bulat sedikit. Dan dalam hal ini, apa yang unsigned means-- dan Anda juga dapat menggunakan unsigned tipe data lainnya, bilangan bulat bukan satu-satunya. Apa itu efektif dilakukan adalah ganda kisaran positif dari nilai-nilai bahwa integer dapat mengambil di mengorbankan tidak lagi memungkinkan Anda untuk mengambil nilai-nilai negatif. Jadi jika Anda memiliki nomor yang Anda tahu akan mendapatkan lebih tinggi dari 2 miliar tapi kurang dari 4 miliar, untuk example-- yang 2 untuk 32 orang -sebuah Anda mungkin ingin menggunakan int unsigned jika Anda tahu nilai Anda tidak akan pernah negatif. Anda kadang-kadang akan memiliki digunakan untuk variabel unsigned di CS50, yang mengapa saya menyebutkan di sini. Tapi sekali lagi, rentang nilai yang Anda dapat mewakili dengan unsigned integer untuk t integer biasa, yang 0 untuk 2 pangkat 32 minus 1, atau sekitar 0-4000000000. Jadi Anda secara efektif menggandakan Kisaran positif yang dapat Anda cocok, tetapi Anda sudah menyerah semua nilai-nilai negatif. Sekarang sebagai samping, unsigned bukan satu-satunya kualifikasi bahwa kita mungkin melihat tipe data variabel. Ada juga hal-hal yang disebut pendek dan panjang dan const. Const kita akan melihat sedikit bit kemudian di kursus. Pendek dan panjang, kita mungkin tidak akan. Tapi hanya tahu bahwa ada adalah kualifikasi lainnya. Unsigned adalah bukan satu-satunya. Tapi itu satu-satunya kami akan berbicara tentang sekarang. Jadi benar semua. Jadi kita telah membahas bilangan bulat. Apa berikutnya? Chars. Jadi karakter yang digunakan untuk variabel yang akan menyimpan karakter tunggal. Char adalah singkatan karakter. Dan kadang-kadang Anda mungkin mendengar orang mengucapkannya sebagai mobil. Jadi karakter selalu mengambil satu byte memori, yang hanya 8 bit. Jadi ini berarti bahwa mereka hanya bisa muat nilai-nilai di kisaran negatif 2 untuk kekuatan ketujuh, atau negatif 128, untuk 2 pangkat 7 minus 1, atau 127. Berkat ASCII, itu lama memutuskan cara untuk memetakan angka-angka positif dari 0-127 untuk berbagai karakter bahwa semua ada pada keyboard kita. Jadi seperti yang akan kita lihat nanti di kursus, dan Anda mungkin akan datang untuk menghafal beberapa titik, ibukota A, untuk example-- ibukota karakter A-- memetakan ke nomor 65. Dan alasan untuk itu adalah karena itulah yang itu ditugaskan oleh standar ASCII. Huruf kecil A adalah 97. Karakter 0 ketika Anda sebenarnya ketik karakter, tidak mewakili angka nol, adalah 48. Anda akan belajar beberapa ini saat Anda pergi. Dan Anda pasti akan datang perlu mereka sedikit kemudian di CS50. Berikutnya tipe data utama adalah angka floating point. Jadi angka floating point juga dikenal sebagai bilangan real. Mereka pada dasarnya tidak nomor yang memiliki titik desimal di dalamnya. Floating point nilai seperti bilangan bulat juga terkandung dalam 4 byte memori. Sekarang tidak ada grafik di sini. Tidak ada nomor baris, karena menggambarkan berbagai pelampung tidak persis jelas atau intuitif. Cukuplah untuk mengatakan Anda memiliki 32 bit untuk bekerja dengan. Dan jika Anda memiliki nomor seperti pi, yang memiliki bagian bilangan bulat 3, dan floating sebuah titik bagian, atau bagian desimal 0,14159, dan seterusnya, Anda harus mampu mewakili semua itu-- bagian bilangan bulat dan bagian desimal. Jadi apa yang Anda berpikir bahwa mungkin berarti? Satu hal adalah bahwa jika desimal bagian mendapat lebih lama dan lebih lama, jika saya memiliki sangat besar bagian bilangan bulat, saya tidak mungkin dapat menjadi seperti yang tepat dengan bagian desimal. Dan itu benar-benar pembatasan pelampung. Mengapung memiliki masalah presisi. Kami hanya memiliki 32 bit untuk bekerja dengan, jadi kami hanya bisa begitu tepat dengan bagian desimal kami. Kita tidak bisa selalu memiliki desimal bagian yang tepat untuk 100 atau 200 digit, karena kita hanya memiliki 32 bit untuk bekerja dengan. Jadi itulah keterbatasan pelampung. Sekarang untungnya ada tipe data lain yang disebut ganda, yang agak berkaitan dengan masalah ini. Ganda, seperti mengapung, juga digunakan untuk menyimpan bilangan real, atau floating point nilai-nilai. Perbedaannya adalah bahwa ganda adalah presisi ganda. Mereka bisa masuk 64 bit data, atau delapan byte. Maksudnya itu apa? Nah, itu berarti kita bisa lebih banyak tepat dengan titik desimal. Daripada harus pi sampai tujuh tempat mungkin, dengan pelampung, kita mungkin dapat memilikinya untuk 30 tempat. Jika itu penting, Anda mungkin ingin menggunakan ganda bukannya pelampung. Pada dasarnya, jika Anda bekerja pada apa pun di mana memiliki tempat desimal yang sangat panjang dan banyak presisi adalah penting, Anda mungkin ingin menggunakan overfloat ganda. Sekarang untuk sebagian besar pekerjaan Anda di CS50, pelampung harus cukup. Tapi tahu bahwa ganda ada sebagai cara untuk agak berurusan dengan presisi Masalah dengan memberikan tambahan 32 bit untuk bekerja dengan nomor Anda. Sekarang ini bukan tipe data. Ini adalah tipe. Dan itu disebut batal. Dan aku berbicara tentang hal itu di sini karena kami sudah mungkin melihatnya beberapa kali sudah di CS50. Dan Anda mungkin bertanya-tanya apa itu semua tentang. Jadi kekosongan adalah tipe. Itu tidak ada. Tapi itu bukan tipe data. Kita tidak bisa membuat variabel jenis membatalkan dan memberikan nilai untuk itu. Tapi fungsi, misalnya, dapat memiliki tipe void kembali. Pada dasarnya, jika Anda melihat fungsi yang memiliki tipe void kembali, itu berarti tidak mengembalikan nilai. Dapatkah Anda memikirkan umum fungsi yang kami telah digunakan sejauh di CS50 yang tidak mengembalikan nilai? Printf adalah salah satu. Printf tidak benar-benar kembali apa-apa untuk Anda. Mencetak sesuatu ke layar, dan itu pada dasarnya efek samping dari apa yang printf tidak. Tapi itu tidak memberikan nilai kembali. Anda tidak menangkap hasil dan menyimpan dalam beberapa variabel untuk menggunakannya nanti. Itu hanya mencetak sesuatu untuk layar dan Anda sudah selesai. Jadi kita mengatakan bahwa printf adalah fungsi batal. Ia mengembalikan apa-apa. Daftar perimeter dari Fungsi juga bisa batal. Dan Anda juga telah melihat bahwa sedikit di CS50 juga. Int void main. Apakah itu membunyikan lonceng? Pada dasarnya apa artinya adalah bahwa utama tidak mengambil parameter. Tidak ada argumen bahwa mendapatkan melewati ke utama. Sekarang nanti kita akan melihat bahwa ada cara untuk melewati argumen ke utama, tapi sejauh apa kita sudah dilihat adalah int void main. Utama hanya tidak mengambil argumen. Dan jadi kita menentukan bahwa dengan mengatakan kekosongan. Kami hanya menjadi sangat eksplisit tentang fakta yang tidak mengambil argumen. Jadi untuk saat ini, cukuplah untuk mengatakan bahwa pada dasarnya batal hanya harus berfungsi sebagai placeholder untuk Anda sebagai berpikir tentang seperti apa-apa. Ini tidak benar-benar melakukan apa-apa. Tidak ada nilai kembali di sini. Tidak ada parameter di sini. Ini berlaku. Ini adalah kompleks lebih sedikit dari itu. Tapi ini harus cukup untuk bagian yang lebih baik tentu saja. Dan mudah-mudahan sekarang Anda memiliki sedikit Sedikit lebih dari konsep apa yang berlaku adalah. Jadi mereka adalah lima jenis Anda akan Pertemuan yang built-in untuk C. Namun dalam CS50 kami juga memiliki perpustakaan. CS50.h, yang dapat Anda termasuk. Dan yang akan memberikan Anda dengan dua jenis tambahan bahwa Anda mungkin akan dapat untuk digunakan pada tugas Anda, atau hanya bekerja umumnya pemrograman. Yang pertama adalah bool. Jadi tipe data Boolean, bool, digunakan untuk variabel yang akan menyimpan nilai Boolean. Jika Anda pernah mendengar istilah ini sebelumnya, Anda mungkin tahu bahwa Boolean sebuah nilai mampu hanya memegang dua nilai yang berbeda yang berbeda. Benar dan salah. Sekarang ini tampaknya cukup fundamental, kan? Ini semacam kejutan yang ini tidak ada di C seperti itu built-in. Dan dalam banyak bahasa modern, tentu saja, boolean adalah tipe data standar standar. Tapi di C, mereka sebenarnya tidak. Tapi kami telah menciptakannya untuk Anda. Jadi jika Anda merasa perlu untuk membuat variabel yang jenis bool, pastikan untuk # include CS50.h pada awal program Anda, dan Anda akan dapat membuat variabel dari jenis bool. Jika Anda lupa # include CS50.h, dan Anda mulai menggunakan Boolean-jenis variabel, Anda mungkin mengalami beberapa masalah ketika Anda mengkompilasi program Anda. Jadi hanya waspada untuk itu. Dan mungkin Anda hanya dapat memperbaiki masalah dengan pound termasuk CS50.h. Tipe data utama lainnya yang kami menyediakan untuk Anda di perpustakaan CS50 string. Jadi apa adalah string? String adalah benar-benar hanya kata-kata. Mereka koleksi karakter. Mereka kata. Mereka kalimat. Mereka paragraf. Mungkin seluruh buku, bahkan. Sangat pendek untuk sangat panjang serangkaian karakter. Jika Anda perlu menggunakan string, misalnya, untuk menyimpan kata, pastikan untuk menyertakan CS50.h pada awal program Anda sehingga Anda dapat menggunakan tipe string. Dan kemudian Anda dapat membuat variabel yang tipe data string. Sekarang nanti di lapangan, kami juga akan melihat bahwa itu tidak seluruh cerita, baik. Kami akan menemukan hal-hal disebut struktur, yang memungkinkan Anda untuk kelompok apa yang mungkin integer dan string ke dalam satu unit. Dan kita dapat menggunakannya untuk beberapa tujuan, yang mungkin berguna di kemudian hari dalam kursus. Dan kami juga akan belajar tentang jenis didefinisikan, yang memungkinkan Anda untuk membuat jenis data Anda sendiri. Kita tidak perlu khawatir tentang itu untuk saat ini. Tapi hanya tahu bahwa itu sesuatu di cakrawala, bahwa ada lebih banyak untuk ini seluruh jenis hal daripada saya mengatakan hanya sekarang. Jadi sekarang kita telah belajar sedikit tentang data dasar jenis dan tipe data CS50, mari kita berbicara tentang bagaimana bekerja dengan variabel dan membuat mereka menggunakan ini jenis data dalam program kami. Jika Anda ingin membuat sebuah variabel, semua yang perlu Anda lakukan adalah dua hal. Pertama, Anda perlu memberikan tipe. Hal kedua yang perlu lakukan adalah memberikan nama. Setelah Anda melakukan itu dan menampar titik koma di akhir baris itu, Anda telah membuat sebuah variabel. Jadi, inilah dua contoh. Int number; Surat arang ;. Apa yang telah saya lakukan di sini? Saya telah membuat dua variabel. Pertama, variabel ini Nama adalah nomor. Dan jumlah mampu memegang bilangan bulat ketik nilai, karena jenisnya adalah int. Surat adalah variabel lain yang dapat menahan karakter karena tipe data adalah arang. Cukup sederhana, bukan? Jika Anda menemukan diri Anda dalam situasi di mana Anda perlu membuat beberapa variabel dari jenis yang sama, Anda hanya perlu menentukan nama jenis sekali. Kemudian hanya daftar sebagai banyak variabel dari jenis yang Anda butuhkan. Jadi aku bisa misalnya, di sini di baris ketiga kode ini, mengatakan int tinggi ;, baris baru. Int lebar ;. Dan yang akan bekerja juga. Saya masih akan mendapatkan dua variabel disebut tinggi dan lebar, yang masing-masing adalah bilangan bulat. Tapi aku diizinkan untuk, hal yang C sintaks, mengkonsolidasikan menjadi satu baris. Int tinggi, lebar; Ini hal yang sama. Saya telah membuat dua variabel, satu disebut tinggi yang disebut lebar, yang keduanya mampu memegang nilai tipe integer. Demikian pula di sini, saya bisa membuat tiga floating point nilai sekaligus. Aku mungkin bisa membuat variabel disebut akar kuadrat dari 2-- yang mungkin akhirnya akan tahan point-- mengambang bahwa representasi dari alun-alun akar 2-- akar kuadrat dari 3, dan pi. Saya bisa melakukan ini pada tiga baris yang terpisah. Mengambang, persegi akar 2; Mengapung akar kuadrat 3; mengapung pi; dan yang akan bekerja juga. Tapi sekali lagi, saya hanya dapat mengkonsolidasikan ini menjadi satu baris kode. Membuat hal-hal sedikit lebih pendek, tidak kikuk. Sekarang secara umum, itu desain yang baik untuk hanya mendeklarasikan variabel ketika Anda membutuhkannya. Dan kita akan berbicara sedikit sedikit lebih lanjut tentang itu nanti dalam kursus ketika kita membahas ruang lingkup. Jadi tidak perlu untuk membuat semua variabel Anda pada awal program, yang beberapa orang mungkin telah melakukan masa lalu, atau itu pasti sangat umum coding praktek bertahun-tahun yang lalu ketika bekerja dengan C. Anda mungkin hanya ingin membuat hak variabel ketika Anda membutuhkannya. Baiklah. Jadi kami telah menciptakan variabel. Bagaimana kita menggunakannya? Setelah kita mendeklarasikan variabel, kita tidak perlu untuk menentukan tipe data variabel itu lagi. Bahkan, jika Anda melakukannya, Anda mungkin berakhir dengan beberapa konsekuensi yang aneh bahwa kita akan jenis mengabaikan untuk saat ini. Tapi cukup untuk mengatakan, hal-hal aneh yang akan untuk memulai terjadi jika Anda secara tidak sengaja kembali mendeklarasikan-variabel dengan nama yang sama lagi dan lagi. Jadi di sini saya memiliki empat baris kode. Dan saya memiliki beberapa komentar sana hanya menunjukkan apa yang terjadi di setiap baris hanya untuk membantu Anda mendapatkan terletak di apa yang terjadi. Jadi int jumlah ;. Anda melihat bahwa sebelumnya. Itu deklarasi variabel. Saya sekarang telah membuat sebuah variabel menelepon nomor itu mampu memegang nilai integer tipe. Saya sudah menyatakan. Baris berikutnya saya menugaskan nilai ke nomor. Jumlah sama 17. Apa yang terjadi di sana? Aku meletakkan jumlah 17 dalam variabel tersebut. Jadi jika saya pernah kemudian mencetak apa isi nomor yang di kemudian hari, mereka akan memberitahu saya itu 17. Jadi saya sudah menyatakan variabel, dan kemudian saya sudah ditugaskan itu. Kami dapat mengulangi proses lagi dengan surat arang ;. Itu deklarasi. Surat sama modal H. Itu tugas. Cukup sederhana, juga. Sekarang proses ini mungkin tampak konyol. Mengapa kita melakukan ini dalam dua baris kode? Apakah ada cara yang lebih baik untuk melakukannya? Bahkan, ada. Kadang-kadang Anda mungkin melihat ini disebut inisialisasi. Justru ketika Anda mendeklarasikan variabel dan menetapkan nilai pada waktu yang sama. Ini sebenarnya cukup hal yang umum untuk dilakukan. Bila Anda membuat sebuah variabel, Anda biasanya ingin memiliki beberapa nilai dasar. Bahkan jika itu 0 atau sesuatu. Anda hanya Anda memberikan nilai. Anda dapat menginisialisasi variabel. Int jumlah sama 17 adalah sama dengan dua baris pertama dari kode di atas. Surat Char sama h adalah sama dengan baris ketiga dan keempat dari kode di atas. Takeaway paling penting di sini ketika kita menyatakan dan menetapkan variabel adalah setelah kami sudah menyatakan, pemberitahuan Saya tidak menggunakan tipe data lagi. Saya tidak mengatakan jumlah int sama 17 pada baris kedua kode, misalnya. Aku hanya mengatakan jumlah sama 17. Sekali lagi, re-mendeklarasikan variabel setelah Anda sudah menyatakan dapat menyebabkan beberapa konsekuensi yang aneh. Jadi hanya berhati-hati itu. Aku Doug Lloyd. Dan ini CS50.