1 00:00:00,000 --> 00:00:02,360 >> Дэвид Дж. Малан: Как вы, наверное, знаете, температура измеряется с помощью 2 00:00:02,360 --> 00:00:04,360 различные масштабы в разные частях мира. 3 00:00:04,360 --> 00:00:09,370 Например, 212 градусов по Фаренгейту является 100 градусов по Цельсию и 32 градусов 4 00:00:09,370 --> 00:00:11,810 Фаренгейту 0 градусов Цельсия. 5 00:00:11,810 --> 00:00:14,230 Не было бы неплохо, если бы у нас был компьютер программа, которая позволила нам 6 00:00:14,230 --> 00:00:16,950 преобразовать, скажем, по Фаренгейту в градусы Цельсия? 7 00:00:16,950 --> 00:00:18,510 >> Ну, мы можем написать эту программу. 8 00:00:18,510 --> 00:00:24,350 Давайте сначала начнем с включают cs50.h, так что мы можем использовать функцию с именем 9 00:00:24,350 --> 00:00:28,610 получить поплавок, который, как и краткосрочный Int, получает число от пользователя, но на этот раз 10 00:00:28,610 --> 00:00:31,440 число с плавающей точкой - один с запятой. 11 00:00:31,440 --> 00:00:34,840 >> Давайте также включают в себя стандартные io.h так что мы имеем доступ к 12 00:00:34,840 --> 00:00:36,230 функции, такие как печать ф. 13 00:00:36,230 --> 00:00:40,000 И давайте также объявить главным обычным способом. 14 00:00:40,000 --> 00:00:42,675 >> Давайте следующий запрашивать у пользователя температура в градусах Фаренгейта. 15 00:00:42,675 --> 00:00:46,050 16 00:00:46,050 --> 00:00:49,220 Давайте теперь на самом деле получить, что температура от пользователя, сначала 17 00:00:49,220 --> 00:00:52,910 объявив переменную е типа поплавка. 18 00:00:52,910 --> 00:00:56,750 Поплавок, опять же, это означает, переменную, которая сохраняет значение с плавающей запятой, 19 00:00:56,750 --> 00:00:58,200 один с запятой. 20 00:00:58,200 --> 00:01:01,780 >> Давайте присвоить ему возвращение стоимость краткосрочного поплавка. 21 00:01:01,780 --> 00:01:06,080 А потом давайте сделаем немного арифметики на нем, в первую объявив другой поплавок 22 00:01:06,080 --> 00:01:11,690 называется C для Цельсию и хранить в C результатом некоторой общей арифметики. 23 00:01:11,690 --> 00:01:19,060 5.0 деленное на 9.0 раза F минус 32,0. 24 00:01:19,060 --> 00:01:23,440 >> Давайте теперь распечатать результат из этого вычисления. 25 00:01:23,440 --> 00:01:24,730 процентов е - 26 00:01:24,730 --> 00:01:27,890 означающее заполнитель для значение с плавающей точкой - 27 00:01:27,890 --> 00:01:31,680 запятая C распечатать температура в градусах Цельсия. 28 00:01:31,680 --> 00:01:33,000 Давайте спасти мою финал. 29 00:01:33,000 --> 00:01:38,220 Компиляция с F на C. Запустите программу с точечной слэш F в C. 30 00:01:38,220 --> 00:01:39,940 >> И давайте попробуем те общие температура. 31 00:01:39,940 --> 00:01:45,820 212 градусов по шкале Фаренгейта 100 градусов по Цельсию. 32 00:01:45,820 --> 00:01:50,090 32 градуса по шкале Фаренгейта является 0 градусов по шкале Цельсия. 33 00:01:50,090 --> 00:01:54,240 >> Теперь давайте уточнить эту программу немного немного, не печать довольно столько 0-х 34 00:01:54,240 --> 00:01:55,820 после этого знака после запятой. 35 00:01:55,820 --> 00:01:57,940 Чтобы сделать это, я собираюсь вернуться к линии 11. 36 00:01:57,940 --> 00:02:03,430 И вместо того, просто укажите процентное е, Я собираюсь вместо указать, скажем, 37 00:02:03,430 --> 00:02:08,800 0,1 в, информирование печати е, что только я хотите напечатать значение с плавающей запятой 38 00:02:08,800 --> 00:02:11,750 одному значению после запятой. 39 00:02:11,750 --> 00:02:13,630 >> Давайте сохраните мою программу. 40 00:02:13,630 --> 00:02:19,680 Перекомпилируйте его с макияжем F в C. Тогда повторно его точка слэш F к С. И 41 00:02:19,680 --> 00:02:24,910 давайте повторить, скажем, 212, что дает мне 100,0. 42 00:02:24,910 --> 00:02:28,360 >> Теперь стоит заметить, что я сделал что-то очень сознательно в строке 9. 43 00:02:28,360 --> 00:02:35,830 Обратите внимание, как я написал 5 составляет 5,0, 9 как 9,0, и даже 32, как 32,0. 44 00:02:35,830 --> 00:02:39,000 Ну, первые два из этих ценностей были совершенно сознательно выбран, чтобы быть 45 00:02:39,000 --> 00:02:42,200 значения с плавающей точкой, а не только потому, что согласованности с остальными 46 00:02:42,200 --> 00:02:42,940 моей программы - 47 00:02:42,940 --> 00:02:45,110 в котором четко предполагает плавающий точечные значения - 48 00:02:45,110 --> 00:02:50,210 а потому, что получается, что C, если вы разделить Int другим Int, 49 00:02:50,210 --> 00:02:54,350 в результате ответ вы собираетесь получить это Сам внутр, даже если это означает 50 00:02:54,350 --> 00:02:57,450 того, чтобы выбросить все после запятой. 51 00:02:57,450 --> 00:03:04,990 >> Другими словами, если я изменю этот 5,0 до 5 или это от 9,0 до 9, а затем сохраните 52 00:03:04,990 --> 00:03:10,550 моя программа, перекомпилировать с макияжем F к C, , а затем снова запустить его с точка слэш F 53 00:03:10,550 --> 00:03:15,310 к С и введите входом, как 212, заметить, что ответ я собираюсь 54 00:03:15,310 --> 00:03:17,860 получить на этот раз на самом деле совершенно не так. 55 00:03:17,860 --> 00:03:23,570 0.0 не является правильным степень в Цельсия, как 212 по Фаренгейту. 56 00:03:23,570 --> 00:03:24,500 >> Ну, что происходит? 57 00:03:24,500 --> 00:03:29,410 Ну, в строке 9, потому что 5 теперь целое число, а потому, что 9 Сейчас 58 00:03:29,410 --> 00:03:34,810 целое, то результат математически должен быть 0,5555 и так далее. 59 00:03:34,810 --> 00:03:39,120 Но так как результат, в соответствии с Правила Си, должен быть внутр, что 60 00:03:39,120 --> 00:03:44,020 0,5555 получает выброшены, оставляя нас с просто 0. 61 00:03:44,020 --> 00:03:48,600 >> Таким образом, в конце концов, я в конечном итоге умножения совершенно случайно 0 раз е минус 62 00:03:48,600 --> 00:03:52,830 32.0, которая есть не что несмотря ни на что всегда даст мне 0. 63 00:03:52,830 --> 00:03:56,930 Так что имейте в виду, в любое время с помощью значения с плавающей запятой в близости 64 00:03:56,930 --> 00:03:59,860 Интс, вы не могли бы обязательно получить ответ, так что вы ожидаете. 65 00:03:59,860 --> 00:04:04,220 И поэтому позаботьтесь, чтобы использовать, как я сделал в значения первый случай, с плавающей точкой 66 00:04:04,220 --> 00:04:06,530 по всему, чтобы избежать любых таких вопросов. 67 00:04:06,530 --> 00:04:08,267