1 00:00:00,000 --> 00:00:02,360 >> DAVID J. Malan: Như bạn đã biết, nhiệt độ được đo bằng cách sử dụng 2 00:00:02,360 --> 00:00:04,360 quy mô khác nhau trong khác nhau nơi trên thế giới. 3 00:00:04,360 --> 00:00:09,370 Ví dụ, 212 độ F là 100 độ C và 32 độ 4 00:00:09,370 --> 00:00:11,810 Phi Luân Hải là 0 độ C. 5 00:00:11,810 --> 00:00:14,230 Nó sẽ không được tốt đẹp nếu chúng ta có một máy tính chương trình mà cho phép chúng tôi 6 00:00:14,230 --> 00:00:16,950 chuyển đổi từ, nói, Phi Luân Hải để C? 7 00:00:16,950 --> 00:00:18,510 >> Vâng, chúng ta có thể viết chương trình đó. 8 00:00:18,510 --> 00:00:24,350 Trước tiên hãy bắt đầu với bao gồm cs50.h, để chúng tôi có thể sử dụng một chức năng được gọi là 9 00:00:24,350 --> 00:00:28,610 được thả nổi, trong đó, như get int, được một số từ người sử dụng, nhưng lần này là một 10 00:00:28,610 --> 00:00:31,440 số điểm nổi - một với một dấu thập phân. 11 00:00:31,440 --> 00:00:34,840 >> Chúng ta hãy cũng bao gồm tiêu chuẩn io.h để chúng tôi có thể truy cập 12 00:00:34,840 --> 00:00:36,230 các chức năng như in f. 13 00:00:36,230 --> 00:00:40,000 Và chúng ta hãy cũng tuyên bố chính theo cách thông thường. 14 00:00:40,000 --> 00:00:42,675 >> Chúng ta hãy tiếp theo nhắc nhở người dùng nhiệt độ trong Fahrenheit. 15 00:00:42,675 --> 00:00:46,050 16 00:00:46,050 --> 00:00:49,220 Hãy bây giờ thực sự có được nhiệt độ từ người sử dụng, đầu tiên 17 00:00:49,220 --> 00:00:52,910 khai báo một biến được gọi là f kiểu float. 18 00:00:52,910 --> 00:00:56,750 Một float, một lần nữa, có nghĩa là một biến các cửa hàng một giá trị dấu chấm động, 19 00:00:56,750 --> 00:00:58,200 một với một dấu thập phân. 20 00:00:58,200 --> 00:01:01,780 >> Chúng ta hãy gán cho nó trở lại giá trị nhận được phao. 21 00:01:01,780 --> 00:01:06,080 Và sau đó chúng ta hãy làm một chút về số học vào nó, lần đầu tiên tuyên bố nổi khác 22 00:01:06,080 --> 00:01:11,690 được gọi là C cho C và lưu trữ trong C Kết quả của một số số học thông thường. 23 00:01:11,690 --> 00:01:19,060 5,0 chia cho 9,0 lần F trừ 32.0. 24 00:01:19,060 --> 00:01:23,440 >> Bây giờ hãy in kết quả tính toán này. 25 00:01:23,440 --> 00:01:24,730 phần trăm f - 26 00:01:24,730 --> 00:01:27,890 nghĩa một giữ chỗ cho nổi giá trị điểm - 27 00:01:27,890 --> 00:01:31,680 dấu phẩy C để in ra nhiệt độ trong C. 28 00:01:31,680 --> 00:01:33,000 Hãy lưu cuối cùng của tôi. 29 00:01:33,000 --> 00:01:38,220 Biên dịch với F C. Khởi động chương trình với dấu chấm dấu gạch chéo F C. 30 00:01:38,220 --> 00:01:39,940 >> Và chúng ta hãy thử những chung nhiệt độ. 31 00:01:39,940 --> 00:01:45,820 212 độ Fahrenheit trong là 100 độ C. 32 00:01:45,820 --> 00:01:50,090 32 độ trong Phi Luân Hải là 0 độ C trong. 33 00:01:50,090 --> 00:01:54,240 >> Bây giờ cho phép tinh chỉnh chương trình này một chút bit bằng cách không in khá nhiều số 0 34 00:01:54,240 --> 00:01:55,820 sau đó số thập phân. 35 00:01:55,820 --> 00:01:57,940 Để làm điều này, tôi sẽ quay lại dòng 11. 36 00:01:57,940 --> 00:02:03,430 Và thay vì chỉ định phần trăm f, Tôi sẽ thay vì chỉ định, nói, 37 00:02:03,430 --> 00:02:08,800 0,1 f, thông báo in e rằng tôi chỉ muốn in một giá trị dấu chấm động 38 00:02:08,800 --> 00:02:11,750 để một giá trị sau chữ số thập phân. 39 00:02:11,750 --> 00:02:13,630 >> Hãy lưu lại chương trình của tôi. 40 00:02:13,630 --> 00:02:19,680 Biên dịch lại nó với make F C. Sau đó, chạy lại nó với dấu chấm dấu gạch chéo F C. Và 41 00:02:19,680 --> 00:02:24,910 chúng ta hãy thử lại với, nói, 212, mang đến cho tôi 100.0. 42 00:02:24,910 --> 00:02:28,360 >> Bây giờ nó có giá trị lưu ý rằng tôi đã làm một cái gì đó rất cố tình trong dòng 9. 43 00:02:28,360 --> 00:02:35,830 Chú ý tôi đã viết 5 là 5.0, 9 như 9.0, và thậm chí 32 như 32,0. 44 00:02:35,830 --> 00:02:39,000 Vâng, lần đầu tiên hai của những giá trị đã rất cố tình lựa chọn là 45 00:02:39,000 --> 00:02:42,200 giá trị dấu chấm động, không chỉ vì nhất quán với phần còn lại 46 00:02:42,200 --> 00:02:42,940 của chương trình của tôi - 47 00:02:42,940 --> 00:02:45,110 trong đó bao gồm rõ ràng nổi các giá trị điểm - 48 00:02:45,110 --> 00:02:50,210 nhưng bởi vì nó chỉ ra rằng C, Nếu bạn chia một int bởi int khác, 49 00:02:50,210 --> 00:02:54,350 kết quả câu trả lời bạn sẽ nhận được là chính nó là một int, ngay cả khi điều đó có nghĩa 50 00:02:54,350 --> 00:02:57,450 phải vứt bỏ tất cả mọi thứ sau dấu thập phân. 51 00:02:57,450 --> 00:03:04,990 >> Nói cách khác, nếu tôi thay đổi 5.0 này 5 hoặc 9.0 này đến 9 và sau đó lưu lại 52 00:03:04,990 --> 00:03:10,550 chương trình của tôi, biên dịch lại với make F đến C, và sau đó chạy nó với dấu chấm dấu gạch chéo F 53 00:03:10,550 --> 00:03:15,310 C và gõ vào một đầu vào giống như 212, nhận thấy rằng các câu trả lời tôi sẽ 54 00:03:15,310 --> 00:03:17,860 được thời gian này thực sự là hoàn toàn sai lầm. 55 00:03:17,860 --> 00:03:23,570 0.0 không phải là mức độ chính xác trong C là 212 Fahrenheit. 56 00:03:23,570 --> 00:03:24,500 >> Vâng, những gì đang xảy ra? 57 00:03:24,500 --> 00:03:29,410 Vâng, trong dòng 9, vì 5 bây giờ là một số nguyên và vì 9 bây giờ là một 58 00:03:29,410 --> 00:03:34,810 số nguyên, kết quả toán học nên được 0,5555 và như vậy. 59 00:03:34,810 --> 00:03:39,120 Nhưng bởi vì kết quả, theo Quy tắc C, có phải là một int, mà 60 00:03:39,120 --> 00:03:44,020 0,5555 được vứt bỏ, để lại cho chúng ta chỉ là 0. 61 00:03:44,020 --> 00:03:48,600 >> Vì vậy, cuối cùng, tôi kết thúc nhân khá tình cờ 0 lần f trừ 62 00:03:48,600 --> 00:03:52,830 32,0, đó là không có vấn đề gì luôn luôn cho tôi 0. 63 00:03:52,830 --> 00:03:56,930 Vì vậy, hãy nhớ, bất cứ lúc nào bằng cách sử dụng giá trị dấu chấm động trong gần nhau của 64 00:03:56,930 --> 00:03:59,860 ints, bạn có thể không nhất thiết phải nhận được câu trả lời để bạn mong đợi. 65 00:03:59,860 --> 00:04:04,220 Và để chăm sóc sử dụng, như tôi đã làm trong giá trị hợp đầu tiên, dấu chấm động 66 00:04:04,220 --> 00:04:06,530 suốt để tránh bất kỳ vấn đề như vậy. 67 00:04:06,530 --> 00:04:08,267