1 00:00:00,000 --> 00:00:02,360 >> DAVID J. Malan: Si ju ndoshta e dini, temperaturat janë të matet duke përdorur 2 00:00:02,360 --> 00:00:04,360 peshore të ndryshme në të ndryshme pjesët e botës. 3 00:00:04,360 --> 00:00:09,370 Për shembull, 212 gradë Fahrenheit është 100 gradë Celsius dhe 32 gradë 4 00:00:09,370 --> 00:00:11,810 Fahrenheit është 0 gradë Celsius. 5 00:00:11,810 --> 00:00:14,230 Nuk do të jetë mirë në qoftë se kemi pasur një kompjuter program që na lejohet të 6 00:00:14,230 --> 00:00:16,950 konvertohet nga, të themi, Fahrenheit për Celsius? 7 00:00:16,950 --> 00:00:18,510 >> E pra, ne mund të shkruajmë atë program. 8 00:00:18,510 --> 00:00:24,350 Le të parë të fillojë me përfshijnë cs50.h, kështu që ne mund të përdorim një funksion të quajtur 9 00:00:24,350 --> 00:00:28,610 merrni noton, e cila, si get int, merr një Numri i nga përdoruesit, por këtë herë një 10 00:00:28,610 --> 00:00:31,440 Numri pikë lundrues - një me një pikë dhjetore. 11 00:00:31,440 --> 00:00:34,840 >> Le të përfshijë io.h standarde kështu që ne kemi qasje në 12 00:00:34,840 --> 00:00:36,230 Funksionet si të shtypura f. 13 00:00:36,230 --> 00:00:40,000 Dhe le të deklarojë kryesore në mënyrë të zakonshme. 14 00:00:40,000 --> 00:00:42,675 >> Le të ardhshëm të menjëhershëm të përdoruesit për një temperaturë në Fahrenheit. 15 00:00:42,675 --> 00:00:46,050 16 00:00:46,050 --> 00:00:49,220 Le tani në të vërtetë të merrni atë temperaturën nga përdoruesit, së pari nga 17 00:00:49,220 --> 00:00:52,910 deklaruar një ndryshore të quajtur f e tipit float. 18 00:00:52,910 --> 00:00:56,750 Një noton, përsëri, do të thotë një ndryshore që ruan një vlerë lundrues pikë, 19 00:00:56,750 --> 00:00:58,200 një me një pikë dhjetore. 20 00:00:58,200 --> 00:01:01,780 >> Le të caktojë atë të kthimit Vlera e get noton. 21 00:01:01,780 --> 00:01:06,080 Dhe pastaj le të bëjë një grimë e aritmetike në të, së pari duke deklaruar një tjetër noton 22 00:01:06,080 --> 00:01:11,690 quajtur C për Celsius dhe dyqan në C rezultat i disa aritmetike të përbashkët. 23 00:01:11,690 --> 00:01:19,060 5.0 ndahet nga 9,0 herë F minus 32.0. 24 00:01:19,060 --> 00:01:23,440 >> Le tani të shtypur rezultat e kësaj llogaritje. 25 00:01:23,440 --> 00:01:24,730 qind f - 26 00:01:24,730 --> 00:01:27,890 duke nënkuptuar një placeholder për lundrues vlera pikë - 27 00:01:27,890 --> 00:01:31,680 presje C për të shtypur jashtë temperatura në Celsius. 28 00:01:31,680 --> 00:01:33,000 Le të shpëtojë finale time. 29 00:01:33,000 --> 00:01:38,220 Të hartojë me F të C. Run programit me dot çaj F në C. 30 00:01:38,220 --> 00:01:39,940 >> Dhe le të përpiqen ata të përbashkët Temperaturat. 31 00:01:39,940 --> 00:01:45,820 212 gradë Fahrenheit në është 100 gradë Celsius. 32 00:01:45,820 --> 00:01:50,090 32 gradë Fahrenheit në është 0 gradë Celsius në. 33 00:01:50,090 --> 00:01:54,240 >> Tani lejon të përsosin këtë program pak bit duke mos shtypjen mjaft sa më shumë 0-së 34 00:01:54,240 --> 00:01:55,820 pas atë vend dhjetore. 35 00:01:55,820 --> 00:01:57,940 Për ta bërë këtë, unë jam duke shkuar për të të kthehemi në linjë 11. 36 00:01:57,940 --> 00:02:03,430 Dhe në vend se vetëm të specifikojë qind f, Unë do të specifikojë në vend të kësaj, të themi, 37 00:02:03,430 --> 00:02:08,800 0.1 f, informuar print f që unë vetëm dëshironi të printoni një vlerë lundrues pikë 38 00:02:08,800 --> 00:02:11,750 në një vlerë pas vendin dhjetore. 39 00:02:11,750 --> 00:02:13,630 >> Le të resave programin tim. 40 00:02:13,630 --> 00:02:19,680 Përpiluar atë me make F për C. Pastaj përsëritje atë me dot çaj F për C. Dhe 41 00:02:19,680 --> 00:02:24,910 le të provoni përsëri me, të themi, 212, e cila më jep 100.0. 42 00:02:24,910 --> 00:02:28,360 >> Tani ia vlen të përmendet se kam bërë diçka shumë me qëllim në linjë 9. 43 00:02:28,360 --> 00:02:35,830 Vini re se si kam shkruar 5 është 5.0, 9 si 9.0, dhe madje edhe 32 si 32.0. 44 00:02:35,830 --> 00:02:39,000 E pra, dy të parët e këtyre vlerave ishin shumë të zgjedhur me qëllim që të jetë i 45 00:02:39,000 --> 00:02:42,200 Vlerat pikë lundrues, jo vetëm për shkak se i konsistencës me pjesën tjetër 46 00:02:42,200 --> 00:02:42,940 e programit tim - 47 00:02:42,940 --> 00:02:45,110 të cilat qartë përfshin lundrues Vlerat pikë - 48 00:02:45,110 --> 00:02:50,210 por për shkak se kjo rezulton se C, Nëse ndajnë një int nga një int, 49 00:02:50,210 --> 00:02:54,350 rezultuar përgjigje që ju jeni do të merrni është në vetvete një int, edhe nëse kjo do të thotë 50 00:02:54,350 --> 00:02:57,450 që ka për të hedhur larg çdo gjë pas presjes dhjetore. 51 00:02:57,450 --> 00:03:04,990 >> Me fjalë të tjera, në qoftë se kam ndryshuar këtë 5.0 për 5 ose ky 9,0-9 dhe pastaj resave 52 00:03:04,990 --> 00:03:10,550 programi im, përpiluar me make F në C, dhe pastaj ri-drejtuar atë me dot çaj F 53 00:03:10,550 --> 00:03:15,310 në C dhe lloji në një input të si 212, vini re se përgjigja unë jam duke shkuar për të 54 00:03:15,310 --> 00:03:17,860 merrni këtë herë është në të vërtetë mjaft i gabuar. 55 00:03:17,860 --> 00:03:23,570 0.0 nuk është në shkallën korrekte Celsius Fahrenheit si 212. 56 00:03:23,570 --> 00:03:24,500 >> E pra, çfarë po ndodh? 57 00:03:24,500 --> 00:03:29,410 E pra, në përputhje 9, sepse 5 është tani një numër i plotë dhe për shkak se 9 është tani një 58 00:03:29,410 --> 00:03:34,810 numër i plotë, rezultati matematikisht duhet të jetë 0,5555 dhe kështu me radhë. 59 00:03:34,810 --> 00:03:39,120 Por sepse rezultati, sipas Rregullat C, duhet të jetë një int, që 60 00:03:39,120 --> 00:03:44,020 0,5555 merr hedhur, na lënë me vetëm 0. 61 00:03:44,020 --> 00:03:48,600 >> Pra, në fund, unë të përfundojë duke shumëzuar krejt rastësisht 0 koha f minus 62 00:03:48,600 --> 00:03:52,830 32.0, e cila është pa marrë parasysh çfarë gjithmonë do të më jepni 0. 63 00:03:52,830 --> 00:03:56,930 Kështu që i mbajnë në mend, në çdo kohë duke përdorur Vlerat pikë lundrues në afërsi të 64 00:03:56,930 --> 00:03:59,860 Ints, ju nuk mund domosdoshmërisht të marrë përgjigje në mënyrë që ju presin. 65 00:03:59,860 --> 00:04:04,220 Dhe kështu që të kujdeset për të përdorur, siç kam bërë në Vlerat rasti i parë, pika lundrues 66 00:04:04,220 --> 00:04:06,530 të gjithë për të shmangur ndonjë çështje të tilla. 67 00:04:06,530 --> 00:04:08,267