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