1 00:00:00,000 --> 00:00:02,360 >> DAVID J. Malan: Jak asi víte, Teplota se měří pomocí 2 00:00:02,360 --> 00:00:04,360 různé váhy v různých částech světa. 3 00:00:04,360 --> 00:00:09,370 Například, 212 stupňů Fahrenheita je 100 stupňů Celsia a 32 stupňů 4 00:00:09,370 --> 00:00:11,810 Fahrenheit je 0 stupňů Celsia. 5 00:00:11,810 --> 00:00:14,230 Nebylo by hezké, kdyby jsme měli počítač program, který nám umožnil 6 00:00:14,230 --> 00:00:16,950 převést z, řekněme, Fahrenheit na Celsia? 7 00:00:16,950 --> 00:00:18,510 >> No, můžeme napsat, že program. 8 00:00:18,510 --> 00:00:24,350 Pojďme si nejprve začít s zahrnují cs50.h, takže můžeme použít funkci nazvanou 9 00:00:24,350 --> 00:00:28,610 se plovák, který, stejně jako get int, dostane Číslo od uživatele, ale tentokrát 10 00:00:28,610 --> 00:00:31,440 číslo s plovoucí desetinnou čárkou - jeden s desetinnou čárkou. 11 00:00:31,440 --> 00:00:34,840 >> Pojďme také obsahovat standardní io.h tak, že máme přístup k 12 00:00:34,840 --> 00:00:36,230 funkce, jako je tisk f.. 13 00:00:36,230 --> 00:00:40,000 A pojďme také deklarovat hlavní obvyklým způsobem. 14 00:00:40,000 --> 00:00:42,675 >> Pojďme vedle vyzve uživatele k teplota ve stupních Fahrenheita. 15 00:00:42,675 --> 00:00:46,050 16 00:00:46,050 --> 00:00:49,220 Pojďme se skutečně dostat, že teplota od uživatele, nejprve 17 00:00:49,220 --> 00:00:52,910 deklarovat proměnnou s názvem f typu float. 18 00:00:52,910 --> 00:00:56,750 Float, znovu, což znamená proměnnou, která Ukládá plovoucí bodovou hodnotu, 19 00:00:56,750 --> 00:00:58,200 jeden s desetinnou čárkou. 20 00:00:58,200 --> 00:01:01,780 >> Pojďme přiřadit mu návrat hodnota get plováku. 21 00:01:01,780 --> 00:01:06,080 A pak se pojďme udělat trochu aritmetiky na to, nejprve deklarovat další float 22 00:01:06,080 --> 00:01:11,690 s názvem C pro Celsia a obchod v C výsledek nějakého společného aritmetiky. 23 00:01:11,690 --> 00:01:19,060 5,0 děleno 9,0 násobku F minus 32,0. 24 00:01:19,060 --> 00:01:23,440 >> Pojďme se nyní vytisknout výsledek tohoto výpočtu. 25 00:01:23,440 --> 00:01:24,730 procent f - 26 00:01:24,730 --> 00:01:27,890 znamenat zástupný symbol pro plovoucí bodová hodnota - 27 00:01:27,890 --> 00:01:31,680 čárka C vytisknout teplota ve stupních Celsia. 28 00:01:31,680 --> 00:01:33,000 Pojďme zachránit finále. 29 00:01:33,000 --> 00:01:38,220 Kompilace s F až C. Spusťte program s dot lomítkem F na ° C. 30 00:01:38,220 --> 00:01:39,940 >> A zkusme ty běžné teploty. 31 00:01:39,940 --> 00:01:45,820 212 stupňů Fahrenheita je 100 stupňů Celsia. 32 00:01:45,820 --> 00:01:50,090 32 stupňů ve stupních Fahrenheita je 0 stupňů Celsia v. 33 00:01:50,090 --> 00:01:54,240 >> Nyní vám umožní vylepšit tento program málo bit tím, že tiskne docela tolik 0'S 34 00:01:54,240 --> 00:01:55,820 po tomto desetinné místo. 35 00:01:55,820 --> 00:01:57,940 Chcete-li to provést, budu zpět na řádek 11. 36 00:01:57,940 --> 00:02:03,430 A spíše než stačí zadat procent f, Jdu na místo určit, řekněme, 37 00:02:03,430 --> 00:02:08,800 0,1 f, informuje tisková f, že jsem jen Chcete-li tisknout plovoucí bodovou hodnotu 38 00:02:08,800 --> 00:02:11,750 na jedné hodnoty po desetinné místo. 39 00:02:11,750 --> 00:02:13,630 >> Pojďme znovu uložit svůj program. 40 00:02:13,630 --> 00:02:19,680 Překompilovat s make F na ° C. Pak znovu ji tečka lomítko F na ° C. A 41 00:02:19,680 --> 00:02:24,910 pojďme zkusit s, řekněme, 212, který mi dává 100,0. 42 00:02:24,910 --> 00:02:28,360 >> Nyní je třeba poznamenat, že jsem to udělal něco velmi záměrně v řádku 9. 43 00:02:28,360 --> 00:02:35,830 Všimněte si, jak jsem napsal 5 je 5,0, 9 jako 9,0, a dokonce i 32 jako 32,0. 44 00:02:35,830 --> 00:02:39,000 No, první dva z těchto hodnot byly velmi záměrně vybrány tak, aby 45 00:02:39,000 --> 00:02:42,200 s plovoucí desetinnou čárkou hodnoty, a to nejen proto, že konzistence s ostatními 46 00:02:42,200 --> 00:02:42,940 z mého programu - 47 00:02:42,940 --> 00:02:45,110 což jasně zahrnuje plovoucí bodové hodnoty - 48 00:02:45,110 --> 00:02:50,210 ale proto, že se ukáže, že C, Pokud rozdělit int jiným int, 49 00:02:50,210 --> 00:02:54,350 Výsledná odpověď budete si je sám int, i když to znamená 50 00:02:54,350 --> 00:02:57,450 museli vyhodit vše za desetinnou čárkou. 51 00:02:57,450 --> 00:03:04,990 >> Jinými slovy, když změním to 5,0 až 5 nebo toto 9,0-9 a poté znovu uložit 52 00:03:04,990 --> 00:03:10,550 můj program, překompilovat s make F na C, a poté znovu spustit ji tečka lomítko F 53 00:03:10,550 --> 00:03:15,310 na C a typu v na vstupu, jako je 212, Všimněte si, že odpověď budu 54 00:03:15,310 --> 00:03:17,860 se tato doba je vlastně docela špatně. 55 00:03:17,860 --> 00:03:23,570 0.0 není správný stupeň v Celsia jako 212 stupňů Fahrenheita. 56 00:03:23,570 --> 00:03:24,500 >> No, co se děje? 57 00:03:24,500 --> 00:03:29,410 Tak, v souladu 9, protože 5 je nyní celé číslo, a proto, že 9 je nyní 58 00:03:29,410 --> 00:03:34,810 celé číslo, výsledek matematicky by mělo být 0,5555 a tak dále. 59 00:03:34,810 --> 00:03:39,120 Ale protože výsledek, v souladu s Pravidla C je, musí být int, že 60 00:03:39,120 --> 00:03:44,020 0,5555 dostane vyhodit, takže nás jen 0. 61 00:03:44,020 --> 00:03:48,600 >> Takže nakonec skončím vynásobením zcela náhodně 0 krát f minus 62 00:03:48,600 --> 00:03:52,830 32.0, která je bez ohledu na to, jaké vždycky mi dát 0.. 63 00:03:52,830 --> 00:03:56,930 Takže se mějte na paměti, kdykoliv pomocí hodnoty s plovoucí desetinnou čárkou v blízkosti 64 00:03:56,930 --> 00:03:59,860 ints, nemusí nutně dostanete odpověď, takže můžete očekávat. 65 00:03:59,860 --> 00:04:04,220 A tak se postarat o to, využít, jak jsem to udělal v První případ, s pohyblivou řádovou čárkou hodnoty 66 00:04:04,220 --> 00:04:06,530 po celou dobu nedošlo k žádné takové problémy. 67 00:04:06,530 --> 00:04:08,267