1 00:00:00,000 --> 00:00:02,360 >> David J. Malan Soos u waarskynlik weet, temperature word gemeet 2 00:00:02,360 --> 00:00:04,360 verskillende skale in verskillende dele van die wêreld. 3 00:00:04,360 --> 00:00:09,370 Byvoorbeeld, 212 grade Celsius is 100 grade Celsius en 32 grade 4 00:00:09,370 --> 00:00:11,810 Fahrenheit is 0 grade Celsius. 5 00:00:11,810 --> 00:00:14,230 Sou dit nie lekker wees as ons 'n rekenaar program wat ons toegelaat om te 6 00:00:14,230 --> 00:00:16,950 omskep van, sê, Fahrenheit na Celsius? 7 00:00:16,950 --> 00:00:18,510 >> Wel, kan ons die program te skryf. 8 00:00:18,510 --> 00:00:24,350 Kom ons kyk eers begin met sluit cs50.h, sodat ons kan 'n funksie genoem gebruik 9 00:00:24,350 --> 00:00:28,610 kry vlot, wat, soos get int, kry 'n aantal van die gebruiker nie, maar hierdie keer 'n 10 00:00:28,610 --> 00:00:31,440 swaai punt nommer - een met 'n desimale punt. 11 00:00:31,440 --> 00:00:34,840 >> Kom ons sluit ook standaard io.h sodat ons toegang het tot 12 00:00:34,840 --> 00:00:36,230 funksies soos druk f. 13 00:00:36,230 --> 00:00:40,000 En laat verklaar ook hoof in die gewone manier. 14 00:00:40,000 --> 00:00:42,675 >> Kom ons langs die gebruiker vra vir 'n temperatuur in Fahrenheit. 15 00:00:42,675 --> 00:00:46,050 16 00:00:46,050 --> 00:00:49,220 Kom ons nou eintlik kry dat die temperatuur van die gebruiker, eers deur 17 00:00:49,220 --> 00:00:52,910 waarby 'n veranderlike genoem f van die tipe float. 18 00:00:52,910 --> 00:00:56,750 'N vlot, weer, wat beteken dat 'n veranderlike wat slaan 'n drywende punt waarde, 19 00:00:56,750 --> 00:00:58,200 een met 'n desimale punt. 20 00:00:58,200 --> 00:01:01,780 >> Kom ons gee dit die terugkeer waarde van get float. 21 00:01:01,780 --> 00:01:06,080 En dan kom ons doen 'n bietjie van rekenkundige op dit, die eerste van nog float 22 00:01:06,080 --> 00:01:11,690 genoem C vir Celsius en die winkel in C die gevolg van 'n paar algemene rekenkundige. 23 00:01:11,690 --> 00:01:19,060 5.0 gedeel deur 9,0 keer F minus 32.0. 24 00:01:19,060 --> 00:01:23,440 >> Kom ons nou druk die resultaat van hierdie berekening. 25 00:01:23,440 --> 00:01:24,730 persent f - 26 00:01:24,730 --> 00:01:27,890 dui 'n plekhouer vir swaai punt waarde - 27 00:01:27,890 --> 00:01:31,680 komma C te druk om die temperatuur in Celsius. 28 00:01:31,680 --> 00:01:33,000 Kom ons red my finaal. 29 00:01:33,000 --> 00:01:38,220 Stel met F aan C. die program met dot streep F aan C. 30 00:01:38,220 --> 00:01:39,940 >> En laat ons probeer om die algemene temperature. 31 00:01:39,940 --> 00:01:45,820 212 grade Celsius in is 100 grade Celsius. 32 00:01:45,820 --> 00:01:50,090 32 grade Celsius in is 0 grade Celsius. 33 00:01:50,090 --> 00:01:54,240 >> Nou kan 'n bietjie te verfyn hierdie program bietjie deur nie die druk heeltemal so baie 0 se 34 00:01:54,240 --> 00:01:55,820 nadat desimale plek. 35 00:01:55,820 --> 00:01:57,940 Om dit te doen, gaan ek gaan terug na lyn 11. 36 00:01:57,940 --> 00:02:03,430 En eerder as om net spesifiseer persent f, Ek gaan om te plaas spesifiseer, sê, 37 00:02:03,430 --> 00:02:08,800 0.1 f, in te lig druk f dat ek net wil 'n drywende punt waarde te druk 38 00:02:08,800 --> 00:02:11,750 na 'n waarde na die desimale plek. 39 00:02:11,750 --> 00:02:13,630 >> Kom ons weer stoor my program. 40 00:02:13,630 --> 00:02:19,680 Heropstel met make F aan C. Dan tik dit met dot streep F aan C. En 41 00:02:19,680 --> 00:02:24,910 laat se weer probeer met, sê, 212, Dit gee my 100,0. 42 00:02:24,910 --> 00:02:28,360 >> Nou is dit die moeite werd om daarop te let dat ek gedoen het iets baie doelbewus in reël 9. 43 00:02:28,360 --> 00:02:35,830 Let op hoe ek geskryf het 5 is 5.0, 9 as 9.0, en selfs 32 as 32,0. 44 00:02:35,830 --> 00:02:39,000 Wel, die eerste twee van daardie waardes was baie doelbewus gekies te word 45 00:02:39,000 --> 00:02:42,200 swaai punt waardes, nie net omdat van konsekwentheid met die res 46 00:02:42,200 --> 00:02:42,940 van my program - 47 00:02:42,940 --> 00:02:45,110 wat duidelik behels swaai punt waardes - 48 00:02:45,110 --> 00:02:50,210 maar omdat dit blyk dat C, As jy deel 'n int deur 'n ander int, die 49 00:02:50,210 --> 00:02:54,350 gevolg antwoord wat jy gaan kry is self 'n int, selfs as dit beteken 50 00:02:54,350 --> 00:02:57,450 om weg te gooi alles na die desimale punt. 51 00:02:57,450 --> 00:03:04,990 >> Met ander woorde, as ek dit verander 5.0 te 5 of hierdie 9,0-9 en daarna op 52 00:03:04,990 --> 00:03:10,550 my program, heropstel met make F C, en dan weer uit te voer met dot streep F 53 00:03:10,550 --> 00:03:15,310 tot C en tik in 'n bydrae van soos 212, sien dat die antwoord wat ek gaan 54 00:03:15,310 --> 00:03:17,860 Kry hierdie tyd is eintlik heeltemal verkeerd. 55 00:03:17,860 --> 00:03:23,570 0.0 nie die regte graad in Celsius as 212 Fahrenheit. 56 00:03:23,570 --> 00:03:24,500 >> Wel, wat gaan aan? 57 00:03:24,500 --> 00:03:29,410 Wel, in reël 9, want 5 is nou 'n integer en omdat 9 is nou 'n 58 00:03:29,410 --> 00:03:34,810 integer, is die resultaat wiskundig moet 0,5555 en so aan. 59 00:03:34,810 --> 00:03:39,120 Maar omdat die resultaat, volgens C se reëls, het 'n int te wees, wat 60 00:03:39,120 --> 00:03:44,020 0,5555 kry weggegooi, verlaat ons met net 0. 61 00:03:44,020 --> 00:03:48,600 >> So op die ou end, het ek uiteindelik vermenigvuldig nogal per ongeluk 0 keer f minus 62 00:03:48,600 --> 00:03:52,830 32,0, wat maak nie saak wat altyd gaan gee my 0. 63 00:03:52,830 --> 00:03:56,930 So moenie in gedagte hou, enige tyd gebruik swaai punt waardes in die nabyheid van 64 00:03:56,930 --> 00:03:59,860 ints, kan jy nie noodwendig kry die antwoord so jy verwag. 65 00:03:59,860 --> 00:04:04,220 En so sorg te gebruik, soos ek gedoen het in die eerste geval, swaai punt waardes 66 00:04:04,220 --> 00:04:06,530 Dwarsdeur enige sodanige probleme te voorkom. 67 00:04:06,530 --> 00:04:08,267