>> DAVID J. Malan: Ako asi viete, Teplota sa meria pomocou
rôzne váhy v rôznych častiach sveta.
Napríklad, 212 stupňov Fahrenheita je 100 stupňov Celzia a 32 stupňov
Fahrenheit je 0 stupňov Celzia.
Nebolo by pekné, keby sme mali počítač program, ktorý nám umožnil
previesť z, povedzme, Fahrenheit na Celzia?
>> No, môžeme napísať, že program.
Poďme si najprv začať s zahŕňajú cs50.h, takže môžeme použiť funkciu nazvanú
sa plavák, ktorý, rovnako ako get int, dostane Číslo od užívateľa, ale tentoraz
číslo s plávajúcou desatinnou čiarkou - jeden s desatinnou čiarkou.
>> Poďme tiež obsahovať štandardné IO.H tak, že máme prístup k
funkcie, ako je tlač f.
A poďme tiež deklarovať hlavné obvyklým spôsobom.
>> Poďme vedľa vyzve užívateľa k teplota v stupňoch Fahrenheita.
Poďme sa skutočne dostať, že teplota od užívateľa, najprv
deklarovať premennú s názvom f typu float.
Float, znova, čo znamená premennú, ktorá Ukladá plávajúce bodovú hodnotu,
jeden s desatinnou čiarkou.
>> Poďme priradiť mu návrat hodnota get plaváku.
A potom sa poďme urobiť trochu aritmetiky na to, najprv deklarovať ďalšie float
s názvom C pre Celzia a obchod v C výsledok nejakého spoločného aritmetiky.
5,0 delené 9,0 násobku F mínus 32,0.
>> Poďme sa teraz vytlačiť výsledok tohto výpočtu.
percent f -
znamenať zástupný symbol pre plávajúce bodová hodnota -
čiarka C vytlačiť teplota v stupňoch Celzia.
Poďme zachrániť finále.
Kompilácia s F až C. Spustite program s dot lomítkom F na ° C.
>> A skúsme tie bežné teploty.
212 stupňov Fahrenheita je 100 stupňov Celzia.
32 stupňov v stupňoch Fahrenheita je 0 stupňov Celzia v.
>> Teraz vám umožní vylepšiť tento program málo bit tým, že tlačí docela toľko 0'S
po tomto desatinné miesto.
Ak to chcete vykonať, budem späť na riadok 11.
A skôr než stačí zadať percent f, Idem na miesto určiť, povedzme,
0,1 f, informuje tlačová f, že som len Ak chcete tlačiť plávajúce bodovú hodnotu
na jednej hodnoty po desatinné miesto.
>> Poďme znova uložiť svoj program.
Prekompilovať s make F na ° C. Potom znova ju bodka lomítko F na ° C. A
poďme skúsiť s, povedzme, 212, ktorý mi dáva 100,0.
>> Teraz je potrebné poznamenať, že som to urobil niečo veľmi zámerne v riadku 9.
Všimnite si, ako som napísal 5 je 5,0, 9 ako 9,0, a dokonca aj 32 ako 32,0.
No, prvé dva z týchto hodnôt boli veľmi zámerne vybrané tak, aby
s plávajúcou desatinnou čiarkou hodnoty, a to nielen preto, že konzistencie s ostatnými
z môjho programu -
čo jasne zahŕňa plávajúce bodové hodnoty -
ale preto, že sa ukáže, že C, Ak rozdeliť int iným int,
Výsledná odpoveď budete si ich sám int, aj keď to znamená
museli vyhodiť všetko za desatinnou čiarkou.
>> Inými slovami, keď zmením to 5,0 až 5 alebo toto 9,0-9 a potom znovu uložiť
môj program, prekompilovať s make F na C, a potom znovu spustiť ju bodka lomítko F
na C a typu v na vstupe, ako je 212, Všimnite si, že odpoveď budem
sa táto doba je vlastne celkom zle.
0.0 nie je správny stupeň v Celzia ako 212 stupňov Fahrenheita.
>> No, čo sa deje?
Tak, v súlade 9, pretože 5 je teraz celé číslo, a preto, že 9 je teraz
celé číslo, výsledok matematicky by malo byť 0,5555 a tak ďalej.
Ale pretože výsledok, v súlade s Pravidlá C je, musí byť int, že
0,5555 dostane vyhodiť, takže nás len 0.
>> Takže nakoniec skončím vynásobením úplne náhodne 0 krát f mínus
32.0, ktorá je bez ohľadu na to, aké vždy mi dať 0..
Takže sa majte na pamäti, kedykoľvek pomocou hodnoty s plávajúcou desatinnou čiarkou v blízkosti
ints, nemusí nutne dostanete odpoveď, takže môžete očakávať.
A tak sa postarať o to, využiť, ako som to urobil v Prvý prípad, s pohyblivou rádovou čiarkou hodnoty
po celú dobu nedošlo k žiadne také problémy.