>> DAVID J. MALAN: Kuten ehkä tiedätte, lämpötilat mitataan
eri mittakaavoissa eri puolilla maailmaa.
Esimerkiksi 212 celsiusta on 100 astetta ja 32 astetta
Fahrenheit on 0 astetta.
Eikö olisi mukavaa, jos meillä olisi tietokone ohjelma, joka antoi meille mahdollisuuden
muuntaa vaikkapa Fahrenheit Celsius?
>> No, voimme kirjoittaa, että ohjelma.
Katsotaanpa ensin aloittaa kuuluvat cs50.h, jotta voimme käyttää toimintoa kutsutaan
saada float, joka, kuten get int, saa numero käyttäjältä, mutta tällä kertaa
liukuluku - yksi kanssa desimaalin tarkkuudella.
>> Katsotaanpa myös vakio io.h niin että meillä on pääsy
toimintoja, kuten print f.
Ja antaa myös julistaa tärkein tavalliseen tapaan.
>> Katsotaanpa seuraavaksi pyytää käyttäjältä lämpötila Fahrenheit.
Katsotaanpa nyt itse saada, että lämpötila käyttäjältä, ensin
julistamisesta muuttuja nimeltä f tyypin float.
Float, jälleen, eli muuttuja, joka tallentaa Liukulukuarvo,
yksi desimaalin tarkkuudella.
>> Katsotaanpa määrittää sen tuotto arvo get float.
Ja sitten Tehdäänpä hieman aritmeettinen sitä, ensin julistaa toisen juoksun
nimeltään C Celsius ja säilytä C seurausta joidenkin yhteisestä laskutavasta.
5,0 jaettuna 9,0 kertaa F miinus 32,0.
>> Katsotaanpa nyt tulostaa tuloksen Tämän laskennan.
prosenttia f -
merkitsee paikanpitäjä Liukulukuarvo -
pilkku C tulostaa lämpötila Celsius.
Säästetään viimeinen.
Kokoa kanssa F C. Aja ohjelma Piste slash F C.
>> Ja yritetään näiden yhteisten lämpötiloissa.
212 astetta Fahrenheit on 100 astetta.
32 astetta Fahrenheit on 0 astetta Celsiusta.
>> Nyt avulla tarkentaa tätä ohjelmaa hieman vähä tulostus ei ole aivan niin monta 0
jälkeen desimaalin tarkkuudella.
Voit tehdä tämän, aion palata linja 11.
Ja sen sijaan vain määrittää prosenttia f, Aion sen sijaan määritellä vaikkapa
0,1 f, ilmoitettuaan tulostaa f että olen vain haluat tulostaa Liukulukuarvo
yhden arvon jälkeen desimaalin tarkkuudella.
>> Katsotaanpa tallenna oma ohjelma.
Kääntää se make F C. Sitten uusintana se piste slash F C. Ja
Katsotaanpa Yritä uudelleen vaikkapa 212, joka antaa minulle 100,0.
>> Nyt on syytä huomata, että tein jotain hyvin tietoisesti linjassa 9.
Huomaa kuinka Kirjoitin 5 on 5,0, 9 kuten 9.0, ja jopa 32 kuin 32,0.
No, kahden ensin mainitun arvot olivat hyvin tietoisesti valinnut olla
liukulukuarvoja, ei vain siksi, johdonmukainen loput
minun ohjelma -
joka selvästi liittyy kelluva pistearvot -
mutta koska näyttää siltä, ​​että C, Jos jakaa int toisen int,
Saatu vastaus aiot saada on itse int, vaikka keinot
ottaa heittää pois kaiken desimaalipilkun jälkeen.
>> Toisin sanoen, jos tämä muuttaa 5.0 5 tai tätä 9,0-9 ja tallenna sitten
minun ohjelma, käännä uudelleen tehdä F C, ja sitten uusinnassa se piste slash F
C ja kirjoita tuloon, kuten 212, huomaa, että vastaus aion
saada tämä aika on oikeastaan ​​aivan väärä.
0.0 ei ole oikea tutkinto Celsius olevan 212 Fahrenheit.
>> No, mitä on tekeillä?
No, linja 9, koska 5 on nyt kokonaisluku ja koska 9 on nyt
kokonaisluku, tulos matemaattisesti tulisi olla 0,5555 ja niin edelleen.
Mutta koska tulos mukaan C: n sääntöjä, on oltava int, että
0,5555 saa heittää pois, jättäen meille vain 0.
>> Joten loppujen lopuksi, en päätyä kertomalla aivan vahingossa 0 kertaa f miinus
32,0, mikä on mitä aina menossa antaa minulle 0.
Joten älä pitää mielessä, milloin tahansa käyttäen liukulukuarvoja läheisyyteen
ints, et ehkä välttämättä saat vastauksen niin odotat.
Ja niin huolehtia käyttää, kuten tein Ensimmäisessä tapauksessa liukuluvuiksi
koko vältetään tällaisia ​​kysymyksiä.