1 00:00:00,000 --> 00:00:02,360 >> DAVID J. Malan: Ako asi viete, Teplota sa meria pomocou 2 00:00:02,360 --> 00:00:04,360 rôzne váhy v rôznych častiach sveta. 3 00:00:04,360 --> 00:00:09,370 Napríklad, 212 stupňov Fahrenheita je 100 stupňov Celzia a 32 stupňov 4 00:00:09,370 --> 00:00:11,810 Fahrenheit je 0 stupňov Celzia. 5 00:00:11,810 --> 00:00:14,230 Nebolo by pekné, keby sme mali počítač program, ktorý nám umožnil 6 00:00:14,230 --> 00:00:16,950 previesť z, povedzme, Fahrenheit na Celzia? 7 00:00:16,950 --> 00:00:18,510 >> No, môžeme napísať, že program. 8 00:00:18,510 --> 00:00:24,350 Poďme si najprv začať s zahŕňajú cs50.h, takže môžeme použiť funkciu nazvanú 9 00:00:24,350 --> 00:00:28,610 sa plavák, ktorý, rovnako ako get int, dostane Číslo od užívateľa, ale tentoraz 10 00:00:28,610 --> 00:00:31,440 číslo s plávajúcou desatinnou čiarkou - jeden s desatinnou čiarkou. 11 00:00:31,440 --> 00:00:34,840 >> Poďme tiež obsahovať štandardné IO.H tak, že máme prístup k 12 00:00:34,840 --> 00:00:36,230 funkcie, ako je tlač f. 13 00:00:36,230 --> 00:00:40,000 A poďme tiež deklarovať hlavné obvyklým spôsobom. 14 00:00:40,000 --> 00:00:42,675 >> Poďme vedľa vyzve užívateľa k teplota v stupňoch Fahrenheita. 15 00:00:42,675 --> 00:00:46,050 16 00:00:46,050 --> 00:00:49,220 Poďme sa skutočne dostať, že teplota od užívateľa, najprv 17 00:00:49,220 --> 00:00:52,910 deklarovať premennú s názvom f typu float. 18 00:00:52,910 --> 00:00:56,750 Float, znova, čo znamená premennú, ktorá Ukladá plávajúce bodovú hodnotu, 19 00:00:56,750 --> 00:00:58,200 jeden s desatinnou čiarkou. 20 00:00:58,200 --> 00:01:01,780 >> Poďme priradiť mu návrat hodnota get plaváku. 21 00:01:01,780 --> 00:01:06,080 A potom sa poďme urobiť trochu aritmetiky na to, najprv deklarovať ďalšie float 22 00:01:06,080 --> 00:01:11,690 s názvom C pre Celzia a obchod v C výsledok nejakého spoločného aritmetiky. 23 00:01:11,690 --> 00:01:19,060 5,0 delené 9,0 násobku F mínus 32,0. 24 00:01:19,060 --> 00:01:23,440 >> Poďme sa teraz vytlačiť výsledok tohto výpočtu. 25 00:01:23,440 --> 00:01:24,730 percent f - 26 00:01:24,730 --> 00:01:27,890 znamenať zástupný symbol pre plávajúce bodová hodnota - 27 00:01:27,890 --> 00:01:31,680 čiarka C vytlačiť teplota v stupňoch Celzia. 28 00:01:31,680 --> 00:01:33,000 Poďme zachrániť finále. 29 00:01:33,000 --> 00:01:38,220 Kompilácia s F až C. Spustite program s dot lomítkom F na ° C. 30 00:01:38,220 --> 00:01:39,940 >> A skúsme tie bežné teploty. 31 00:01:39,940 --> 00:01:45,820 212 stupňov Fahrenheita je 100 stupňov Celzia. 32 00:01:45,820 --> 00:01:50,090 32 stupňov v stupňoch Fahrenheita je 0 stupňov Celzia v. 33 00:01:50,090 --> 00:01:54,240 >> Teraz vám umožní vylepšiť tento program málo bit tým, že tlačí docela toľko 0'S 34 00:01:54,240 --> 00:01:55,820 po tomto desatinné miesto. 35 00:01:55,820 --> 00:01:57,940 Ak to chcete vykonať, budem späť na riadok 11. 36 00:01:57,940 --> 00:02:03,430 A skôr než stačí zadať percent f, Idem na miesto určiť, povedzme, 37 00:02:03,430 --> 00:02:08,800 0,1 f, informuje tlačová f, že som len Ak chcete tlačiť plávajúce bodovú hodnotu 38 00:02:08,800 --> 00:02:11,750 na jednej hodnoty po desatinné miesto. 39 00:02:11,750 --> 00:02:13,630 >> Poďme znova uložiť svoj program. 40 00:02:13,630 --> 00:02:19,680 Prekompilovať s make F na ° C. Potom znova ju bodka lomítko F na ° C. A 41 00:02:19,680 --> 00:02:24,910 poďme skúsiť s, povedzme, 212, ktorý mi dáva 100,0. 42 00:02:24,910 --> 00:02:28,360 >> Teraz je potrebné poznamenať, že som to urobil niečo veľmi zámerne v riadku 9. 43 00:02:28,360 --> 00:02:35,830 Všimnite si, ako som napísal 5 je 5,0, 9 ako 9,0, a dokonca aj 32 ako 32,0. 44 00:02:35,830 --> 00:02:39,000 No, prvé dva z týchto hodnôt boli veľmi zámerne vybrané tak, aby 45 00:02:39,000 --> 00:02:42,200 s plávajúcou desatinnou čiarkou hodnoty, a to nielen preto, že konzistencie s ostatnými 46 00:02:42,200 --> 00:02:42,940 z môjho programu - 47 00:02:42,940 --> 00:02:45,110 čo jasne zahŕňa plávajúce bodové hodnoty - 48 00:02:45,110 --> 00:02:50,210 ale preto, že sa ukáže, že C, Ak rozdeliť int iným int, 49 00:02:50,210 --> 00:02:54,350 Výsledná odpoveď budete si ich sám int, aj keď to znamená 50 00:02:54,350 --> 00:02:57,450 museli vyhodiť všetko za desatinnou čiarkou. 51 00:02:57,450 --> 00:03:04,990 >> Inými slovami, keď zmením to 5,0 až 5 alebo toto 9,0-9 a potom znovu uložiť 52 00:03:04,990 --> 00:03:10,550 môj program, prekompilovať s make F na C, a potom znovu spustiť ju bodka lomítko F 53 00:03:10,550 --> 00:03:15,310 na C a typu v na vstupe, ako je 212, Všimnite si, že odpoveď budem 54 00:03:15,310 --> 00:03:17,860 sa táto doba je vlastne celkom zle. 55 00:03:17,860 --> 00:03:23,570 0.0 nie je správny stupeň v Celzia ako 212 stupňov Fahrenheita. 56 00:03:23,570 --> 00:03:24,500 >> No, čo sa deje? 57 00:03:24,500 --> 00:03:29,410 Tak, v súlade 9, pretože 5 je teraz celé číslo, a preto, že 9 je teraz 58 00:03:29,410 --> 00:03:34,810 celé číslo, výsledok matematicky by malo byť 0,5555 a tak ďalej. 59 00:03:34,810 --> 00:03:39,120 Ale pretože výsledok, v súlade s Pravidlá C je, musí byť int, že 60 00:03:39,120 --> 00:03:44,020 0,5555 dostane vyhodiť, takže nás len 0. 61 00:03:44,020 --> 00:03:48,600 >> Takže nakoniec skončím vynásobením úplne náhodne 0 krát f mínus 62 00:03:48,600 --> 00:03:52,830 32.0, ktorá je bez ohľadu na to, aké vždy mi dať 0.. 63 00:03:52,830 --> 00:03:56,930 Takže sa majte na pamäti, kedykoľvek pomocou hodnoty s plávajúcou desatinnou čiarkou v blízkosti 64 00:03:56,930 --> 00:03:59,860 ints, nemusí nutne dostanete odpoveď, takže môžete očakávať. 65 00:03:59,860 --> 00:04:04,220 A tak sa postarať o to, využiť, ako som to urobil v Prvý prípad, s pohyblivou rádovou čiarkou hodnoty 66 00:04:04,220 --> 00:04:06,530 po celú dobu nedošlo k žiadne také problémy. 67 00:04:06,530 --> 00:04:08,267