1 00:00:00,000 --> 00:00:02,360 >> DAVID J. Malan: Kot verjetno veste, Temperature se merijo 2 00:00:02,360 --> 00:00:04,360 različne lestvice v različnih delih sveta. 3 00:00:04,360 --> 00:00:09,370 Na primer, 212 stopinj Celzija, je 100 stopinj Celzija in 32 stopinj 4 00:00:09,370 --> 00:00:11,810 Fahrenheit je 0 stopinj Celzija. 5 00:00:11,810 --> 00:00:14,230 Ali ne bi bilo lepo, če bi imeli računalnik Program, ki nam je omogočilo, da 6 00:00:14,230 --> 00:00:16,950 pretvorbo iz, recimo, Fahrenheit da Celzija? 7 00:00:16,950 --> 00:00:18,510 >> No, lahko zapišemo, da je program. 8 00:00:18,510 --> 00:00:24,350 Poglejmo najprej začeti s vključujejo cs50.h, tako da bomo lahko uporabite funkcijo imenovano 9 00:00:24,350 --> 00:00:28,610 dobili plovec, ki je, kot get notr, dobi število od uporabnika, vendar tokrat 10 00:00:28,610 --> 00:00:31,440 število s plavajočo vejico - ena z decimalno vejico. 11 00:00:31,440 --> 00:00:34,840 >> Oglejmo tudi standardni io.h tako da imamo dostop do 12 00:00:34,840 --> 00:00:36,230 deluje kot tiskalni f. 13 00:00:36,230 --> 00:00:40,000 In naj tudi razglasi glavni na običajen način. 14 00:00:40,000 --> 00:00:42,675 >> Poglejmo naslednji poziv uporabniku za temperature v stopinjah Fahrenheita. 15 00:00:42,675 --> 00:00:46,050 16 00:00:46,050 --> 00:00:49,220 Dajva zdaj dejansko dobili, da je temperatura od uporabnika, najprej z 17 00:00:49,220 --> 00:00:52,910 razglasitvi spremenljivko f tipa float. 18 00:00:52,910 --> 00:00:56,750 Float, še enkrat, kar pomeni, da je spremenljivka shrani plavajočo vejico vrednost, 19 00:00:56,750 --> 00:00:58,200 eno z decimalno vejico. 20 00:00:58,200 --> 00:01:01,780 >> Dajmo mu dodeliti vrnitev Vrednost get likvidna sredstva. 21 00:01:01,780 --> 00:01:06,080 In potem naredimo malo aritmetike na njej, prvi razglasitvi drug plovec 22 00:01:06,080 --> 00:01:11,690 imenovano C Celzija in shranite v C rezultat neke skupne aritmetike. 23 00:01:11,690 --> 00:01:19,060 5.0 deljeno s 9,0-kratnim F minus 32,0. 24 00:01:19,060 --> 00:01:23,440 >> Pojdimo zdaj natisniti rezultata tega računanja. 25 00:01:23,440 --> 00:01:24,730 odstotkov f - 26 00:01:24,730 --> 00:01:27,890 ki pomeni ogrado za plavajočo vejico vrednost - 27 00:01:27,890 --> 00:01:31,680 vejica C natisniti temperature v stopinjah Celzija. 28 00:01:31,680 --> 00:01:33,000 Oglejmo si rešil finale. 29 00:01:33,000 --> 00:01:38,220 Zbere z F do C. Zaženite program z dot slash F do C. 30 00:01:38,220 --> 00:01:39,940 >> In poskusimo tiste skupne temperature. 31 00:01:39,940 --> 00:01:45,820 212 stopinj v Fahrenheit je 100 stopinj Celzija. 32 00:01:45,820 --> 00:01:50,090 32 stopinj v Fahrenheit je 0 stopinj Celzija v. 33 00:01:50,090 --> 00:01:54,240 >> Sedaj omogoča omejite tem programu malo bit, ki ga ne tiska čisto toliko 0-jev 34 00:01:54,240 --> 00:01:55,820 po tem decimalno mesto. 35 00:01:55,820 --> 00:01:57,940 Če želite to narediti, da bom pojdite nazaj na linijo 11. 36 00:01:57,940 --> 00:02:03,430 In ne samo navesti odstotno f, Bom namesto tega opredeliti, recimo, 37 00:02:03,430 --> 00:02:08,800 0.1 f, informiranje print f, da sem samo želite natisniti s plavajočo vejico vrednost 38 00:02:08,800 --> 00:02:11,750 eno vrednostjo po decimalno mesto. 39 00:02:11,750 --> 00:02:13,630 >> Oglejmo shranili svoj program. 40 00:02:13,630 --> 00:02:19,680 Ga prevedem z make F do C. Nato ga ponovite z dot slash F in C, 41 00:02:19,680 --> 00:02:24,910 dajmo poskusiti znova z, recimo, 212, ki mi daje 100,0. 42 00:02:24,910 --> 00:02:28,360 >> Zdaj je treba omeniti, da sem nekaj zelo namerno v vrstici 9. 43 00:02:28,360 --> 00:02:35,830 Opazuj, kako sem napisal 5 je 5,0, 9 kot 9,0, ali celo 32 kot 32,0. 44 00:02:35,830 --> 00:02:39,000 No, so bili prvi dve od teh vrednot zelo zavestno odločili, da bodo 45 00:02:39,000 --> 00:02:42,200 vrednosti s plavajočo vejico, ne samo zato, ker usklajenosti z ostalimi 46 00:02:42,200 --> 00:02:42,940 mojega programa - 47 00:02:42,940 --> 00:02:45,110 ki je očitno povezan s plavajočo točkovni vrednosti - 48 00:02:45,110 --> 00:02:50,210 ampak zato, ker se je izkazalo, da je C, če ste razdeliti int drug int, 49 00:02:50,210 --> 00:02:54,350 Nastalo odgovor boste dobili, je sam int, tudi če to pomeni 50 00:02:54,350 --> 00:02:57,450 da bi vrgel proč vse decimalno vejico. 51 00:02:57,450 --> 00:03:04,990 >> Z drugimi besedami, če zamenjam 5,0 do 5 ali to 9,0-9 in nato shranili 52 00:03:04,990 --> 00:03:10,550 moj program, prevesti z make F do C, in nato ponovno zagnati z dot poševnica F 53 00:03:10,550 --> 00:03:15,310 na C in tip v vložkom kot 212, opazili, da je odgovor bom 54 00:03:15,310 --> 00:03:17,860 se ta čas je pravzaprav zelo narobe. 55 00:03:17,860 --> 00:03:23,570 0.0 ni pravilna izobrazba Celsius kot 212 Fahrenheit. 56 00:03:23,570 --> 00:03:24,500 >> No, kaj se dogaja? 57 00:03:24,500 --> 00:03:29,410 No, v vrstici 9, ker 5 je zdaj število in ker je zdaj 9 58 00:03:29,410 --> 00:03:34,810 število, rezultat matematično mora biti 0,5555 in tako naprej. 59 00:03:34,810 --> 00:03:39,120 Toda, ker rezultat, po katerem Pravila C je, mora biti int, da 60 00:03:39,120 --> 00:03:44,020 0,5555 gets vrgli proč, nam je zapustil le 0. 61 00:03:44,020 --> 00:03:48,600 >> Torej, na koncu, sem na koncu pomnoži čisto po naključju 0 krat f minus 62 00:03:48,600 --> 00:03:52,830 32.0, ki je ne glede na to, kaj vedno dogaja, da me 0. 63 00:03:52,830 --> 00:03:56,930 Torej, imejte v mislih, kadar koli uporabo plavajočo vejico vrednosti v bližini 64 00:03:56,930 --> 00:03:59,860 ints, morda ne nujno dobili odgovor, da ste pričakovali. 65 00:03:59,860 --> 00:04:04,220 In tako poskrbel za uporabo, kot sem storil v Vrednosti prvi primer, plavajoči vejici 66 00:04:04,220 --> 00:04:06,530 ves, da bi se izognili takih vprašanj. 67 00:04:06,530 --> 00:04:08,267