1 00:00:00,000 --> 00:00:02,360 >> DAVID J. MALAN: Kuten ehkä tiedätte, lämpötilat mitataan 2 00:00:02,360 --> 00:00:04,360 eri mittakaavoissa eri puolilla maailmaa. 3 00:00:04,360 --> 00:00:09,370 Esimerkiksi 212 celsiusta on 100 astetta ja 32 astetta 4 00:00:09,370 --> 00:00:11,810 Fahrenheit on 0 astetta. 5 00:00:11,810 --> 00:00:14,230 Eikö olisi mukavaa, jos meillä olisi tietokone ohjelma, joka antoi meille mahdollisuuden 6 00:00:14,230 --> 00:00:16,950 muuntaa vaikkapa Fahrenheit Celsius? 7 00:00:16,950 --> 00:00:18,510 >> No, voimme kirjoittaa, että ohjelma. 8 00:00:18,510 --> 00:00:24,350 Katsotaanpa ensin aloittaa kuuluvat cs50.h, jotta voimme käyttää toimintoa kutsutaan 9 00:00:24,350 --> 00:00:28,610 saada float, joka, kuten get int, saa numero käyttäjältä, mutta tällä kertaa 10 00:00:28,610 --> 00:00:31,440 liukuluku - yksi kanssa desimaalin tarkkuudella. 11 00:00:31,440 --> 00:00:34,840 >> Katsotaanpa myös vakio io.h niin että meillä on pääsy 12 00:00:34,840 --> 00:00:36,230 toimintoja, kuten print f. 13 00:00:36,230 --> 00:00:40,000 Ja antaa myös julistaa tärkein tavalliseen tapaan. 14 00:00:40,000 --> 00:00:42,675 >> Katsotaanpa seuraavaksi pyytää käyttäjältä lämpötila Fahrenheit. 15 00:00:42,675 --> 00:00:46,050 16 00:00:46,050 --> 00:00:49,220 Katsotaanpa nyt itse saada, että lämpötila käyttäjältä, ensin 17 00:00:49,220 --> 00:00:52,910 julistamisesta muuttuja nimeltä f tyypin float. 18 00:00:52,910 --> 00:00:56,750 Float, jälleen, eli muuttuja, joka tallentaa Liukulukuarvo, 19 00:00:56,750 --> 00:00:58,200 yksi desimaalin tarkkuudella. 20 00:00:58,200 --> 00:01:01,780 >> Katsotaanpa määrittää sen tuotto arvo get float. 21 00:01:01,780 --> 00:01:06,080 Ja sitten Tehdäänpä hieman aritmeettinen sitä, ensin julistaa toisen juoksun 22 00:01:06,080 --> 00:01:11,690 nimeltään C Celsius ja säilytä C seurausta joidenkin yhteisestä laskutavasta. 23 00:01:11,690 --> 00:01:19,060 5,0 jaettuna 9,0 kertaa F miinus 32,0. 24 00:01:19,060 --> 00:01:23,440 >> Katsotaanpa nyt tulostaa tuloksen Tämän laskennan. 25 00:01:23,440 --> 00:01:24,730 prosenttia f - 26 00:01:24,730 --> 00:01:27,890 merkitsee paikanpitäjä Liukulukuarvo - 27 00:01:27,890 --> 00:01:31,680 pilkku C tulostaa lämpötila Celsius. 28 00:01:31,680 --> 00:01:33,000 Säästetään viimeinen. 29 00:01:33,000 --> 00:01:38,220 Kokoa kanssa F C. Aja ohjelma Piste slash F C. 30 00:01:38,220 --> 00:01:39,940 >> Ja yritetään näiden yhteisten lämpötiloissa. 31 00:01:39,940 --> 00:01:45,820 212 astetta Fahrenheit on 100 astetta. 32 00:01:45,820 --> 00:01:50,090 32 astetta Fahrenheit on 0 astetta Celsiusta. 33 00:01:50,090 --> 00:01:54,240 >> Nyt avulla tarkentaa tätä ohjelmaa hieman vähä tulostus ei ole aivan niin monta 0 34 00:01:54,240 --> 00:01:55,820 jälkeen desimaalin tarkkuudella. 35 00:01:55,820 --> 00:01:57,940 Voit tehdä tämän, aion palata linja 11. 36 00:01:57,940 --> 00:02:03,430 Ja sen sijaan vain määrittää prosenttia f, Aion sen sijaan määritellä vaikkapa 37 00:02:03,430 --> 00:02:08,800 0,1 f, ilmoitettuaan tulostaa f että olen vain haluat tulostaa Liukulukuarvo 38 00:02:08,800 --> 00:02:11,750 yhden arvon jälkeen desimaalin tarkkuudella. 39 00:02:11,750 --> 00:02:13,630 >> Katsotaanpa tallenna oma ohjelma. 40 00:02:13,630 --> 00:02:19,680 Kääntää se make F C. Sitten uusintana se piste slash F C. Ja 41 00:02:19,680 --> 00:02:24,910 Katsotaanpa Yritä uudelleen vaikkapa 212, joka antaa minulle 100,0. 42 00:02:24,910 --> 00:02:28,360 >> Nyt on syytä huomata, että tein jotain hyvin tietoisesti linjassa 9. 43 00:02:28,360 --> 00:02:35,830 Huomaa kuinka Kirjoitin 5 on 5,0, 9 kuten 9.0, ja jopa 32 kuin 32,0. 44 00:02:35,830 --> 00:02:39,000 No, kahden ensin mainitun arvot olivat hyvin tietoisesti valinnut olla 45 00:02:39,000 --> 00:02:42,200 liukulukuarvoja, ei vain siksi, johdonmukainen loput 46 00:02:42,200 --> 00:02:42,940 minun ohjelma - 47 00:02:42,940 --> 00:02:45,110 joka selvästi liittyy kelluva pistearvot - 48 00:02:45,110 --> 00:02:50,210 mutta koska näyttää siltä, ​​että C, Jos jakaa int toisen int, 49 00:02:50,210 --> 00:02:54,350 Saatu vastaus aiot saada on itse int, vaikka keinot 50 00:02:54,350 --> 00:02:57,450 ottaa heittää pois kaiken desimaalipilkun jälkeen. 51 00:02:57,450 --> 00:03:04,990 >> Toisin sanoen, jos tämä muuttaa 5.0 5 tai tätä 9,0-9 ja tallenna sitten 52 00:03:04,990 --> 00:03:10,550 minun ohjelma, käännä uudelleen tehdä F C, ja sitten uusinnassa se piste slash F 53 00:03:10,550 --> 00:03:15,310 C ja kirjoita tuloon, kuten 212, huomaa, että vastaus aion 54 00:03:15,310 --> 00:03:17,860 saada tämä aika on oikeastaan ​​aivan väärä. 55 00:03:17,860 --> 00:03:23,570 0.0 ei ole oikea tutkinto Celsius olevan 212 Fahrenheit. 56 00:03:23,570 --> 00:03:24,500 >> No, mitä on tekeillä? 57 00:03:24,500 --> 00:03:29,410 No, linja 9, koska 5 on nyt kokonaisluku ja koska 9 on nyt 58 00:03:29,410 --> 00:03:34,810 kokonaisluku, tulos matemaattisesti tulisi olla 0,5555 ja niin edelleen. 59 00:03:34,810 --> 00:03:39,120 Mutta koska tulos mukaan C: n sääntöjä, on oltava int, että 60 00:03:39,120 --> 00:03:44,020 0,5555 saa heittää pois, jättäen meille vain 0. 61 00:03:44,020 --> 00:03:48,600 >> Joten loppujen lopuksi, en päätyä kertomalla aivan vahingossa 0 kertaa f miinus 62 00:03:48,600 --> 00:03:52,830 32,0, mikä on mitä aina menossa antaa minulle 0. 63 00:03:52,830 --> 00:03:56,930 Joten älä pitää mielessä, milloin tahansa käyttäen liukulukuarvoja läheisyyteen 64 00:03:56,930 --> 00:03:59,860 ints, et ehkä välttämättä saat vastauksen niin odotat. 65 00:03:59,860 --> 00:04:04,220 Ja niin huolehtia käyttää, kuten tein Ensimmäisessä tapauksessa liukuluvuiksi 66 00:04:04,220 --> 00:04:06,530 koko vältetään tällaisia ​​kysymyksiä. 67 00:04:06,530 --> 00:04:08,267