1 00:00:00,000 --> 00:00:02,360 >> DAVID J. MALAN: Seperti yang anda mungkin tahu, suhu diukur menggunakan 2 00:00:02,360 --> 00:00:04,360 skala yang berbeza di berbeza bahagian dunia. 3 00:00:04,360 --> 00:00:09,370 Sebagai contoh, 212 darjah Fahrenheit adalah 100 darjah Celsius dan 32 darjah 4 00:00:09,370 --> 00:00:11,810 Fahrenheit adalah 0 darjah Celsius. 5 00:00:11,810 --> 00:00:14,230 Bukankah lebih baik jika kita mempunyai komputer program yang membolehkan kita untuk 6 00:00:14,230 --> 00:00:16,950 menukar daripada, katakan, Fahrenheit untuk Celsius? 7 00:00:16,950 --> 00:00:18,510 >> Nah, kita boleh menulis program itu. 8 00:00:18,510 --> 00:00:24,350 Mari pertama bermula dengan termasuk cs50.h, supaya kita boleh menggunakan fungsi yang dipanggil 9 00:00:24,350 --> 00:00:28,610 mendapatkan terapung, yang mana, seperti mendapatkan int, mendapat nombor dari pengguna, tetapi kali ini yang 10 00:00:28,610 --> 00:00:31,440 nombor titik terapung - satu dengan titik perpuluhan. 11 00:00:31,440 --> 00:00:34,840 >> Mari kita juga merangkumi io.h standard supaya kita mempunyai akses kepada 12 00:00:34,840 --> 00:00:36,230 fungsi seperti cetak f. 13 00:00:36,230 --> 00:00:40,000 Dan mari kita juga mengaku utama dengan cara biasa. 14 00:00:40,000 --> 00:00:42,675 >> Mari kita datang segera pengguna untuk suhu dalam Fahrenheit. 15 00:00:42,675 --> 00:00:46,050 16 00:00:46,050 --> 00:00:49,220 Mari kita sekarang benar-benar mendapatkan suhu yang dari pengguna, pertama oleh 17 00:00:49,220 --> 00:00:52,910 mengisytiharkan pembolehubah yang dipanggil f jenis apung. 18 00:00:52,910 --> 00:00:56,750 Float A, sekali lagi, bermakna pembolehubah yang menyimpan nilai titik terapung, 19 00:00:56,750 --> 00:00:58,200 satu dengan titik perpuluhan. 20 00:00:58,200 --> 00:01:01,780 >> Mari kita sediakan pulangan nilai daripada acara apung. 21 00:01:01,780 --> 00:01:06,080 Dan kemudian mari kita buat sedikit aritmetik padanya, pertama mengisytiharkan apungan lain 22 00:01:06,080 --> 00:01:11,690 dipanggil C untuk Celsius dan kedai di C hasil daripada beberapa aritmetik biasa. 23 00:01:11,690 --> 00:01:19,060 5.0 dibahagikan dengan 9.0 kali F tolak 32.0. 24 00:01:19,060 --> 00:01:23,440 >> Sekarang mari kita mencetak hasilnya pengiraan ini. 25 00:01:23,440 --> 00:01:24,730 peratus f - 26 00:01:24,730 --> 00:01:27,890 menandakan pemegang tempat bagi terapung titik nilai - 27 00:01:27,890 --> 00:01:31,680 koma C untuk mencetak suhu dalam Celsius. 28 00:01:31,680 --> 00:01:33,000 Mari kita menyimpan akhir saya. 29 00:01:33,000 --> 00:01:38,220 Menyusun dengan F untuk C. Run program ini dengan dot slash F C. 30 00:01:38,220 --> 00:01:39,940 >> Dan mari kita cuba yang biasa suhu. 31 00:01:39,940 --> 00:01:45,820 212 darjah di Fahrenheit adalah 100 darjah Celsius. 32 00:01:45,820 --> 00:01:50,090 32 darjah di Fahrenheit adalah 0 darjah dalam Celsius. 33 00:01:50,090 --> 00:01:54,240 >> Sekarang mari memperbaiki program ini sedikit sedikit dengan tidak mencetak cukup sebagai banyak 0 ini 34 00:01:54,240 --> 00:01:55,820 selepas itu tempat perpuluhan. 35 00:01:55,820 --> 00:01:57,940 Untuk melakukan ini, saya akan kembali ke garisan 11. 36 00:01:57,940 --> 00:02:03,430 Dan bukan hanya nyatakan peratus f, Saya akan nyatakan sebaliknya, katakan, 37 00:02:03,430 --> 00:02:08,800 0.1 f, memaklumkan f cetak bahawa saya hanya ingin mencetak Nilai titik apung 38 00:02:08,800 --> 00:02:11,750 kepada satu nilai selepas tempat perpuluhan. 39 00:02:11,750 --> 00:02:13,630 >> Mari kita menyimpan semula program saya. 40 00:02:13,630 --> 00:02:19,680 Susun semula dengan make F untuk C. Kemudian memutarkan lagi dengan dot slash F untuk C. Dan 41 00:02:19,680 --> 00:02:24,910 mari kita mencuba lagi dengan, katakan, 212, yang memberikan saya 100.0. 42 00:02:24,910 --> 00:02:28,360 >> Kini ia diperhatikan yang saya lakukan sesuatu yang sangat sengaja selaras 9. 43 00:02:28,360 --> 00:02:35,830 Perhatikan bagaimana saya menulis 5 adalah 5.0, 9 sebagai 9.0, dan juga 32 sebagai 32.0. 44 00:02:35,830 --> 00:02:39,000 Nah, dua orang yang awal pertama adalah nilai-nilai sangat sengaja dipilih untuk menjadi 45 00:02:39,000 --> 00:02:42,200 mata yang terapung, bukan hanya kerana konsisten dengan yang lain 46 00:02:42,200 --> 00:02:42,940 program saya - 47 00:02:42,940 --> 00:02:45,110 yang dengan jelas melibatkan terapung mata yang - 48 00:02:45,110 --> 00:02:50,210 tetapi kerana ia ternyata C itu, Jika anda membahagikan int an oleh int lain, 49 00:02:50,210 --> 00:02:54,350 menyebabkan jawapan anda akan mendapat adalah sendiri int, walaupun jika cara yang 50 00:02:54,350 --> 00:02:57,450 perlu buang segala-galanya selepas titik perpuluhan. 51 00:02:57,450 --> 00:03:04,990 >> Dalam erti kata lain, jika saya mengubah kepada 5.0 5 atau ini 9,0-9 dan kemudian menyimpan semula 52 00:03:04,990 --> 00:03:10,550 program saya, susun semula dengan solekan F kepada C, dan kemudian berjalan semula dengan slash dot F 53 00:03:10,550 --> 00:03:15,310 kepada C dan jenis dalam input seperti 212, melihat bahawa jawapan yang saya akan 54 00:03:15,310 --> 00:03:17,860 mendapatkan masa ini sebenarnya agak salah. 55 00:03:17,860 --> 00:03:23,570 0.0 bukan ijazah yang betul dalam Celsius sebagai 212 Fahrenheit. 56 00:03:23,570 --> 00:03:24,500 >> Nah, apa yang berlaku? 57 00:03:24,500 --> 00:03:29,410 Nah, dalam talian 9, kerana 5 adalah kini merupakan integer dan kerana 9 adalah kini merupakan 58 00:03:29,410 --> 00:03:34,810 integer, hasilnya secara matematik harus 0,5555 dan sebagainya. 59 00:03:34,810 --> 00:03:39,120 Tetapi kerana hasilnya, menurut Peraturan C, perlu int, bahawa 60 00:03:39,120 --> 00:03:44,020 0,5555 mendapat dibuang, meninggalkan kita dengan hanya 0. 61 00:03:44,020 --> 00:03:48,600 >> Jadi pada akhirnya, saya akhirnya mendarabkan agak tidak sengaja 0 kali f tolak 62 00:03:48,600 --> 00:03:52,830 32.0, yang tidak kira apa sentiasa akan memberikan saya 0. 63 00:03:52,830 --> 00:03:56,930 Jadi jangan ingat, bila-bila masa menggunakan mata yang terapung di berdekatan 64 00:03:56,930 --> 00:03:59,860 Ints, anda mungkin tidak semestinya mendapatkan jawapan supaya anda harapkan. 65 00:03:59,860 --> 00:04:04,220 Dan sebagainya menjaga untuk digunakan, seperti yang saya lakukan dalam nilai kes pertama, titik terapung 66 00:04:04,220 --> 00:04:06,530 di seluruh untuk mengelakkan sebarang isu-isu tersebut. 67 00:04:06,530 --> 00:04:08,267