1 00:00:00,000 --> 00:00:02,360 >> DAVID J. Malan: Kā jūs droši vien zināt, temperatūru mēra, izmantojot 2 00:00:02,360 --> 00:00:04,360 dažādos mērogos dažādās pasaules daļās. 3 00:00:04,360 --> 00:00:09,370 Piemēram, 212 grādi pēc Fārenheita ir 100 grādi pēc Celsija un 32 grādi 4 00:00:09,370 --> 00:00:11,810 Fahrenheit ir 0 grādi pēc Celsija. 5 00:00:11,810 --> 00:00:14,230 Vai tas nebūtu jauki, ja mums būtu dators programma, kas ļāva mums 6 00:00:14,230 --> 00:00:16,950 pārvērst no, teiksim, Fārenheita uz Celsija? 7 00:00:16,950 --> 00:00:18,510 >> Nu, mēs varam rakstīt šo programmu. 8 00:00:18,510 --> 00:00:24,350 Lets vispirms sākt ar iekļautu cs50.h, lai mēs varētu izmantot funkciju sauc 9 00:00:24,350 --> 00:00:28,610 saņemt peldēt, kas, tāpat kā get int, izpaužas numuru no lietotāja, bet šī laika 10 00:00:28,610 --> 00:00:31,440 peldošā punkta numurs - viens ar komatu. 11 00:00:31,440 --> 00:00:34,840 >> Pieņemsim arī ietver standarta io.h lai mums ir piekļuve 12 00:00:34,840 --> 00:00:36,230 funkcijas, piemēram, drukas f. 13 00:00:36,230 --> 00:00:40,000 Un pieņemsim arī deklarēt galvenā parastā veidā. 14 00:00:40,000 --> 00:00:42,675 >> Pieņemsim nākamais atgādinās lietotājam par temperatūra Fahrenheit. 15 00:00:42,675 --> 00:00:46,050 16 00:00:46,050 --> 00:00:49,220 Pieņemsim tagad faktiski saņemt šo temperatūru no lietotāja, pirmkārt, 17 00:00:49,220 --> 00:00:52,910 deklarē mainīgo sauc f tipa pludiņu. 18 00:00:52,910 --> 00:00:56,750 Peldēt, atkal, kas nozīmē mainīgais, kas saglabā peldošā komata vērtību, 19 00:00:56,750 --> 00:00:58,200 viens ar komatu. 20 00:00:58,200 --> 00:01:01,780 >> Pieņemsim piešķirt to atgriešanos vērtība get apgrozāmos līdzekļus. 21 00:01:01,780 --> 00:01:06,080 Un tad pieņemsim do mazliet aritmētiskās par to, vispirms paziņojot citu peldēt 22 00:01:06,080 --> 00:01:11,690 aicināja C Celsija un veikalā C rezultāts dažas kopējas aritmētisko. 23 00:01:11,690 --> 00:01:19,060 5.0 dalīts ar 9,0 reizes F mīnus 32,0. 24 00:01:19,060 --> 00:01:23,440 >> Pieņemsim tagad izdrukāt rezultātu Šī aprēķināšanas. 25 00:01:23,440 --> 00:01:24,730 procenti f - 26 00:01:24,730 --> 00:01:27,890 nozīmētu vietturis peldošā punkta vērtība - 27 00:01:27,890 --> 00:01:31,680 komats C izdrukāt temperatūra pēc Celsija. 28 00:01:31,680 --> 00:01:33,000 Pieņemsim glābt manu finālā. 29 00:01:33,000 --> 00:01:38,220 Aizpildi ar F līdz C. Run programmu ar dot slash F līdz C 30 00:01:38,220 --> 00:01:39,940 >> Un pamēģināsim tos bieži temperatūru. 31 00:01:39,940 --> 00:01:45,820 212 grādi pēc Fārenheita ir vismaz 100 grādi pēc Celsija. 32 00:01:45,820 --> 00:01:50,090 32 grādi pēc Fārenheita ir 0 grādiem pēc Celsija. 33 00:01:50,090 --> 00:01:54,240 >> Tagad ļauj precizēt šī programma nedaudz bit ne drukāšanu tik daudz 0 s 34 00:01:54,240 --> 00:01:55,820 pēc šī zīme aiz komata. 35 00:01:55,820 --> 00:01:57,940 Lai to izdarītu, es esmu gatavojas doties atpakaļ uz līnijas 11. 36 00:01:57,940 --> 00:02:03,430 Un nevis tikai norādīt procentiem f, Es esmu gatavojas, nevis norādīt, teiksim, 37 00:02:03,430 --> 00:02:08,800 0.1 f, informējot print f, ka man ir tikai vēlaties drukāt peldošo punktu vērtība 38 00:02:08,800 --> 00:02:11,750 vienu vērtību pēc tam, kad aiz komata. 39 00:02:11,750 --> 00:02:13,630 >> Pieņemsim atkārtoti saglabāt savu programmu. 40 00:02:13,630 --> 00:02:19,680 Recompile to ar make F līdz C. Tad atkārto to ar dot slash F uz C un 41 00:02:19,680 --> 00:02:24,910 pieņemsim mēģināt vēlreiz ar, teiksim, 212, kas dod man 100,0. 42 00:02:24,910 --> 00:02:28,360 >> Tagad tas ir vērts atzīmēt, ka es to darīju kaut kas ļoti apzināti atbilstoši 9. 43 00:02:28,360 --> 00:02:35,830 Ievērojiet, kā es uzrakstīju 5 ir 5,0, 9 kā 9,0, un pat 32 kā 32.0. 44 00:02:35,830 --> 00:02:39,000 Nu, pirmās divas no šīm vērtībām ir ļoti apzināti izvēlējušies būt 45 00:02:39,000 --> 00:02:42,200 peldošā punkta vērtības, ne tikai tāpēc, ka konsekvences ar pārējo 46 00:02:42,200 --> 00:02:42,940 mana programma - 47 00:02:42,940 --> 00:02:45,110 kas skaidri ietver peldošas punktu vērtības - 48 00:02:45,110 --> 00:02:50,210 bet tāpēc, ka izrādās, ka C, ja jūs sadalīt int cita int, 49 00:02:50,210 --> 00:02:54,350 rezultātā atbilde jūs gatavojas iegūt, ir pats int, pat ja tas nozīmē 50 00:02:54,350 --> 00:02:57,450 ņemot mest prom visu aiz komata. 51 00:02:57,450 --> 00:03:04,990 >> Citiem vārdiem sakot, ja es mainīt šo 5,0 līdz 5 vai tas 9,0-9, un pēc tam atkārtoti saglabāt 52 00:03:04,990 --> 00:03:10,550 mana programma, recompile ar make F uz C, un tad atkal palaist to ar dot slash F 53 00:03:10,550 --> 00:03:15,310 C un ierakstiet padevi, piemēram, 212, paziņojums, ka atbilde, ko es esmu gatavojas 54 00:03:15,310 --> 00:03:17,860 get šoreiz tiešām ir diezgan nepareizi. 55 00:03:17,860 --> 00:03:23,570 0.0 nav pareizs grāds Celsija kā 212 Fārenheita. 56 00:03:23,570 --> 00:03:24,500 >> Nu, kas notiek? 57 00:03:24,500 --> 00:03:29,410 Nu, saskaņā 9, jo 5 tagad skaitlim un tāpēc 9 tagad 58 00:03:29,410 --> 00:03:34,810 skaitlis, rezultāts matemātiski būtu 0,5555 un tā tālāk. 59 00:03:34,810 --> 00:03:39,120 , Bet, jo rezultātus, saskaņā ar C ir noteikumi, ir jābūt veselam skaitlim, kas 60 00:03:39,120 --> 00:03:44,020 0,5555 izpaužas izmet, atstājot mūs tikai ar 0. 61 00:03:44,020 --> 00:03:48,600 >> Tātad galu galā, es galu galā reizinot gluži nejauši 0 reizes f mīnus 62 00:03:48,600 --> 00:03:52,830 32.0, kas ir vienalga ko vienmēr gatavojas sniegt man 0. 63 00:03:52,830 --> 00:03:56,930 Tātad, paturiet prātā, jebkurā laikā, izmantojot peldošā komata vērtības tuvumā 64 00:03:56,930 --> 00:03:59,860 ints, jūs varētu nebūt saņemt atbildi, lai jūs sagaida. 65 00:03:59,860 --> 00:04:04,220 Un tāpēc jārūpējas, lai izmantotu, kā es darīju Pirmajā gadījumā, peldošā punkta vērtības 66 00:04:04,220 --> 00:04:06,530 visu, lai izvairītos no šādiem jautājumiem. 67 00:04:06,530 --> 00:04:08,267