1 00:00:00,000 --> 00:00:02,360 >> David J. Malan: Kaip jūs turbūt žinote, temperatūra matuojama naudojant 2 00:00:02,360 --> 00:00:04,360 skirtingi masteliai skiriasi pasaulio dalyse. 3 00:00:04,360 --> 00:00:09,370 Pavyzdžiui, 212 laipsnių pagal Celsijų yra 100 laipsnių Celsijaus ir 32 laipsnių 4 00:00:09,370 --> 00:00:11,810 Farenheito yra 0 laipsnių Celsijaus. 5 00:00:11,810 --> 00:00:14,230 Ar nebūtų puiku, jei mes turėjome kompiuterį programa, kuri leido mums 6 00:00:14,230 --> 00:00:16,950 paversti, tarkim, Farenheito į Celsijaus? 7 00:00:16,950 --> 00:00:18,510 >> Na, mes galime parašyti, kad programą. 8 00:00:18,510 --> 00:00:24,350 Tegul pirmasis pradėti įtraukti cs50.h, todėl, kad mes galime naudoti funkciją, vadinamą 9 00:00:24,350 --> 00:00:28,610 gauti plūdę, kuri, kaip get int, gauna skaičius nuo vartotojo, bet šį kartą 10 00:00:28,610 --> 00:00:31,440 slankiojo kablelio skaičius - vienas su kablelio. 11 00:00:31,440 --> 00:00:34,840 >> Leiskite taip pat standartinę io.h kad mes turime prieigą prie 12 00:00:34,840 --> 00:00:36,230 funkcijas, pavyzdžiui, spausdinimo f. 13 00:00:36,230 --> 00:00:40,000 Ir tegul deklaruoja Pagrindinis įprastu būdu. 14 00:00:40,000 --> 00:00:42,675 >> Tegul šalia paskatinti vartotoją Farenheito temperatūros. 15 00:00:42,675 --> 00:00:46,050 16 00:00:46,050 --> 00:00:49,220 Tegul dabar faktiškai gauti tą temperatūrą iš vartotojo, pirmiausia 17 00:00:49,220 --> 00:00:52,910 deklaruojant kintamąjį vadinamą f tipo plūdės. 18 00:00:52,910 --> 00:00:56,750 Plūdės, vėl, o tai reiškia, kad kintamasis saugo slankiojo kablelio, 19 00:00:56,750 --> 00:00:58,200 vienas su kablelio. 20 00:00:58,200 --> 00:01:01,780 >> Leiskite priskirti jai grąžą vertė get plūdės. 21 00:01:01,780 --> 00:01:06,080 Ir tada darykime aritmetinio tiek ant jo, pirmasis skelbiantis vieną plūdę 22 00:01:06,080 --> 00:01:11,690 vadinamas C temperatūrai ir laikykite C rezultatas tam tikru bendru aritmetika. 23 00:01:11,690 --> 00:01:19,060 5,0 padalinta 9,0 karto F minus 32,0. 24 00:01:19,060 --> 00:01:23,440 >> Tegul dabar pats spausdinti rezultatas Šio apskaičiavimo. 25 00:01:23,440 --> 00:01:24,730 procentų f - 26 00:01:24,730 --> 00:01:27,890 reiškiantis už rezervuotą vietą slankiojo kablelio vertė - 27 00:01:27,890 --> 00:01:31,680 kablelis C spausdinti temperatūrą Celsijaus. 28 00:01:31,680 --> 00:01:33,000 Išsaugokime savo finalą. 29 00:01:33,000 --> 00:01:38,220 Sudaryti su F į C Run programos dot slash F iki C 30 00:01:38,220 --> 00:01:39,940 >> Ir pabandykime yra tos pačios temperatūra. 31 00:01:39,940 --> 00:01:45,820 212 laipsnių pagal Celsijų yra 100 laipsnių Celsijaus. 32 00:01:45,820 --> 00:01:50,090 32 laipsnių pagal Celsijų yra 0 laipsnių Celsijaus. 33 00:01:50,090 --> 00:01:54,240 >> Dabar leidžia patobulinti šią programą mažai tiek ne spausdinti gana daug 0-ųjų 34 00:01:54,240 --> 00:01:55,820 po to kablelio. 35 00:01:55,820 --> 00:01:57,940 Norėdami tai padaryti, aš ruošiuosi grįžti į eilutę 11. 36 00:01:57,940 --> 00:02:03,430 Ir, o ne tik nurodyti procentų f, Aš ruošiuosi vietoj nurodyti, tarkim, 37 00:02:03,430 --> 00:02:08,800 0,1 f, informuoti spausdinimo f, kad aš tik norite spausdinti slankiojo kablelio 38 00:02:08,800 --> 00:02:11,750 į vieną reikšmę po kablelio. 39 00:02:11,750 --> 00:02:13,630 >> Leiskite išsaugokite savo programą. 40 00:02:13,630 --> 00:02:19,680 Perkompiliuoti jį su make F iki C. Tada pakartotas su dot slash F į C And 41 00:02:19,680 --> 00:02:24,910 tegul bandykite dar kartą su, tarkim, 212, kuris suteikia man 100,0. 42 00:02:24,910 --> 00:02:28,360 >> Dabar verta paminėti, kad aš kažkas labai sąmoningai vadovaujantis 9. 43 00:02:28,360 --> 00:02:35,830 Atkreipkite dėmesį, kaip aš parašiau 5 yra 5,0, 9 kaip 9,0, ir net 32 ​​kaip 32,0. 44 00:02:35,830 --> 00:02:39,000 Na, pirmieji du iš šių reikšmių buvo labai sąmoningai pasirinko būti 45 00:02:39,000 --> 00:02:42,200 slankiojo kablelio reikšmės, o ne tik todėl, kad nuoseklumo su likusiu 46 00:02:42,200 --> 00:02:42,940 mano programa - 47 00:02:42,940 --> 00:02:45,110 kuris aiškiai apima kintamų taško verčių - 48 00:02:45,110 --> 00:02:50,210 bet todėl, it turns out, kad C, Jei padalinti int kitos int, 49 00:02:50,210 --> 00:02:54,350 todėl atsakymas, kad jūs ketinate gauti yra pati int, net jei tai reiškia, 50 00:02:54,350 --> 00:02:57,450 atsižvelgdamas išmesti viską po kablelio. 51 00:02:57,450 --> 00:03:04,990 >> Kitaip tariant, jei aš pakeisti šį 5,0 iki 5 ar tai 9,0-9 ir tada išsaugokite 52 00:03:04,990 --> 00:03:10,550 mano programa, perkompiliuoti su make F iki C ir tada iš naujo paleisti jį su dot slash F 53 00:03:10,550 --> 00:03:15,310 C ir tipo RCA tipo kaip 212, pastebėsite, kad atsakymas, kurį aš ruošiuosi 54 00:03:15,310 --> 00:03:17,860 gauti šį kartą iš tiesų yra gana negerai. 55 00:03:17,860 --> 00:03:23,570 0,0 nėra teisinga laipsnis Celsijaus kaip 212 Farenheito. 56 00:03:23,570 --> 00:03:24,500 >> Na, kas čia vyksta? 57 00:03:24,500 --> 00:03:29,410 Na, pagal 9, nes 5 yra dabar sveikasis skaičius ir dėl 9 dabar 58 00:03:29,410 --> 00:03:34,810 sveikasis skaičius, rezultatas matematiškai turėtų būti 0,5555 ir pan. 59 00:03:34,810 --> 00:03:39,120 Bet kadangi rezultatas, atsižvelgiant į C "taisyklės, turi būti int, kad 60 00:03:39,120 --> 00:03:44,020 0,5555 gauna išmesti, o mums tik su 0. 61 00:03:44,020 --> 00:03:48,600 >> Taigi, galų gale, aš galų gale dauginant visai netyčia 0 kartų f minuso 62 00:03:48,600 --> 00:03:52,830 32,0, tai nesvarbu, kas visada bus man 0. 63 00:03:52,830 --> 00:03:56,930 Taigi reikia nepamiršti, bet kuriuo metu, naudojant slankiojo kablelio reikšmės arti 64 00:03:56,930 --> 00:03:59,860 ints, galbūt nebūtinai gauti atsakymą, todėl jūs tikėtis. 65 00:03:59,860 --> 00:04:04,220 Ir todėl rūpintis naudoti, kaip dariau Pirmuoju atveju, slankiojo kablelio reikšmės 66 00:04:04,220 --> 00:04:06,530 visoje išvengti tokių problemų. 67 00:04:06,530 --> 00:04:08,267