1 00:00:00,000 --> 00:00:02,360 >> David J. MALAN: Mint azt bizonyára tudják, hőmérséklet mérése 2 00:00:02,360 --> 00:00:04,360 különböző méretekben, különböző részein a világ. 3 00:00:04,360 --> 00:00:09,370 Például a 212 fok Fahrenheit 100 Celsius fok és 32 fok 4 00:00:09,370 --> 00:00:11,810 Fahrenheit 0 Celsius fok. 5 00:00:11,810 --> 00:00:14,230 Nem lenne jó, ha lenne egy számítógép program, amely lehetővé tette, hogy 6 00:00:14,230 --> 00:00:16,950 átalakítani a, mondjuk, Fahrenheit a Celsius? 7 00:00:16,950 --> 00:00:18,510 >> Nos, tudjuk írni a programot. 8 00:00:18,510 --> 00:00:24,350 Nézzük először kezdeni közé cs50.h, hogy ki tudjuk használni a függvényt hívott 9 00:00:24,350 --> 00:00:28,610 kap úszó, amely, mint kap int, kap egy számot a felhasználó, de ezúttal egy 10 00:00:28,610 --> 00:00:31,440 lebegőpontos szám - egy a tizedespont. 11 00:00:31,440 --> 00:00:34,840 >> Nézzük is szokásos io.h , hogy mi férhet hozzá 12 00:00:34,840 --> 00:00:36,230 funkciók, mint a print f. 13 00:00:36,230 --> 00:00:40,000 És nézzük azt is kijelentik fő a szokásos módon. 14 00:00:40,000 --> 00:00:42,675 >> Nézzük a következő megkérdezi a felhasználót a a hőmérséklet Fahrenheit. 15 00:00:42,675 --> 00:00:46,050 16 00:00:46,050 --> 00:00:49,220 Nézzük most tényleg kap, hogy a hőmérséklet a felhasználó, először 17 00:00:49,220 --> 00:00:52,910 nyilvánító nevű változó f típusú úszó. 18 00:00:52,910 --> 00:00:56,750 Az úszó, megint, vagyis olyan változó, amely tárolja a lebegőpontos érték, 19 00:00:56,750 --> 00:00:58,200 az egyik egy tizedes pontossággal. 20 00:00:58,200 --> 00:01:01,780 >> Nézzük hozzá, hogy a visszatérő értéke lebegőpontos. 21 00:01:01,780 --> 00:01:06,080 És akkor lássuk egy kicsit a számtani rajta, először kijelentette egy másik úszó 22 00:01:06,080 --> 00:01:11,690 úgynevezett C Celsius és tárolja a C- eredményeként néhány közös számtani. 23 00:01:11,690 --> 00:01:19,060 5.0 osztva 9,0-szor F mínusz 32,0. 24 00:01:19,060 --> 00:01:23,440 >> Nézzük most az eredmény nyomtatható Ezen számítás. 25 00:01:23,440 --> 00:01:24,730 százalék f - 26 00:01:24,730 --> 00:01:27,890 jelezve a helyőrző lebegőpontos érték - 27 00:01:27,890 --> 00:01:31,680 vessző C, hogy nyomtassa ki a hőmérséklet Celsius. 28 00:01:31,680 --> 00:01:33,000 Mentsük az utolsó. 29 00:01:33,000 --> 00:01:38,220 Töltsd ki az F C futtatni a programot A dot slash F C 30 00:01:38,220 --> 00:01:39,940 >> És próbáljuk meg azokat a közös hőmérsékleten. 31 00:01:39,940 --> 00:01:45,820 212 fok Fahrenheit 100 Celsius fok. 32 00:01:45,820 --> 00:01:50,090 32 fok Fahrenheit 0 fok Celsius. 33 00:01:50,090 --> 00:01:54,240 >> Most pedig finomítani a program egy kicsit bit, hogy nem nyomtat elég annyi a 0- 34 00:01:54,240 --> 00:01:55,820 után tizedes. 35 00:01:55,820 --> 00:01:57,940 Ehhez fogom menj vissza line 11. 36 00:01:57,940 --> 00:02:03,430 És ahelyett, hogy csak adja százalék f, Megyek helyett adja meg, mondjuk, 37 00:02:03,430 --> 00:02:08,800 0,1 f, tájékoztatta print f, hogy én csak kíván nyomtatni egy lebegőpontos értéket 38 00:02:08,800 --> 00:02:11,750 az egyik érték a tizedes pont utáni. 39 00:02:11,750 --> 00:02:13,630 >> Nézzük mentse a programot. 40 00:02:13,630 --> 00:02:19,680 Újrafordítását azt make F C, majd futtassa újra azt dot slash F C és 41 00:02:19,680 --> 00:02:24,910 nézzük újra, mondjuk, 212, ami nekem 100,0. 42 00:02:24,910 --> 00:02:28,360 >> Most érdemes megjegyezni, hogy én valami nagyon tudatosan a 9. sorban. 43 00:02:28,360 --> 00:02:35,830 Figyeljük meg, hogy írtam 5 5.0, 9 mint 9.0, és még 32-32.0. 44 00:02:35,830 --> 00:02:39,000 Nos, az első két ilyen értékek nagyon tudatosan választották, hogy 45 00:02:39,000 --> 00:02:42,200 lebegőpontos értékek, és nem csak azért, mert A következetesség a többi 46 00:02:42,200 --> 00:02:42,940 A programom - 47 00:02:42,940 --> 00:02:45,110 amely egyértelműen magában lebegő pont értékek - 48 00:02:45,110 --> 00:02:50,210 hanem azért, mert kiderül, hogy a C, ha felosztjuk az int másik int, a 49 00:02:50,210 --> 00:02:54,350 így választ fogsz kapni a maga is int, akkor is, ha ez azt jelenti 50 00:02:54,350 --> 00:02:57,450 , hogy dobja el mindent a tizedesvessző után. 51 00:02:57,450 --> 00:03:04,990 >> Más szóval, ha ezen változtatni 5.0 5 vagy az e 9,0-9 majd mentse 52 00:03:04,990 --> 00:03:10,550 a program egy újrafordítás a make F C, majd futtassa újra azt dot slash F 53 00:03:10,550 --> 00:03:15,310 C, és írja be a bemeneti, mint 212, észre, hogy a válasz fogok 54 00:03:15,310 --> 00:03:17,860 hogy ezúttal tényleg nagyon rossz. 55 00:03:17,860 --> 00:03:23,570 0.0 nem a megfelelő mértékben a Celsius mint 212 Fahrenheit. 56 00:03:23,570 --> 00:03:24,500 >> Nos, mi folyik itt? 57 00:03:24,500 --> 00:03:29,410 Nos, a 9. sorban, mert 5 ma már egész és mivel a 9. most egy 58 00:03:29,410 --> 00:03:34,810 egész szám, az eredmény matematikailag 0,5555 legyen, és így tovább. 59 00:03:34,810 --> 00:03:39,120 De mivel az eredmény szerint C szabályai, van, hogy egy int, hogy 60 00:03:39,120 --> 00:03:44,020 0,5555 lesz eldobni, így nekünk csak 0-ra. 61 00:03:44,020 --> 00:03:48,600 >> Így a végén, én a végén szorozni egészen véletlenül 0 alkalommal f mínusz 62 00:03:48,600 --> 00:03:52,830 32,0, ami nem számít, hogy milyen mindig fog adni nekem 0-ra. 63 00:03:52,830 --> 00:03:56,930 Tehát ne feledje, minden alkalommal a lebegőpontos értékek közelében 64 00:03:56,930 --> 00:03:59,860 ints, lehet, hogy nem feltétlenül kap választ, így várható. 65 00:03:59,860 --> 00:04:04,220 És így vigyázni kell használni, mint én, a első esetben, lebegőpontos értékek 66 00:04:04,220 --> 00:04:06,530 az egész, hogy elkerüljék az ilyen kérdéseket. 67 00:04:06,530 --> 00:04:08,267