1 00:00:00,000 --> 00:00:00,994 2 00:00:00,994 --> 00:00:11,431 >> [MUSIC Playing] 3 00:00:11,431 --> 00:00:12,500 >> Rob Bowden: Hi. 4 00:00:12,500 --> 00:00:13,230 Unë jam Rob. 5 00:00:13,230 --> 00:00:15,080 Dhe le të marrë babëzitur. 6 00:00:15,080 --> 00:00:18,560 >> Pra, gjëja e parë që ne duhet të bëni është të kërkojë nga shfrytëzuesi saktësisht se si 7 00:00:18,560 --> 00:00:20,500 ndryshim shumë është borxh. 8 00:00:20,500 --> 00:00:23,310 Kështu që këtu, ne shohim ne kemi një për ta bërë / ndërsa loop. 9 00:00:23,310 --> 00:00:26,650 Dhe ne jemi vendosjen dollarë barabartë me GetFloat. 10 00:00:26,650 --> 00:00:27,890 Çfarë është GetFloat? 11 00:00:27,890 --> 00:00:30,700 Kjo është një nga funksionet në Biblioteka CS50 që merr një 12 00:00:30,700 --> 00:00:32,450 shket nga përdoruesit. 13 00:00:32,450 --> 00:00:35,200 Mos harroni, në mënyrë që të përdorni këtë funksion, ne duhet të përpunojnë të përfshirë 14 00:00:35,200 --> 00:00:37,790 CS50.h në krye. 15 00:00:37,790 --> 00:00:42,310 >> Pra, një herë ne kemi atë vlerë nga përdoruesit, ne gjithashtu duhet të jetë i sigurt se 16 00:00:42,310 --> 00:00:43,560 kjo është një vlerë e vlefshme. 17 00:00:43,560 --> 00:00:46,050 Ne nuk mund borxh të holla negative. 18 00:00:46,050 --> 00:00:48,460 Dhe kështu kjo është qëllimi i këtij bëjë / ndërsa loop. 19 00:00:48,460 --> 00:00:52,420 Ne vazhdojmë looping ndërsa dollarë është më pak se zero. 20 00:00:52,420 --> 00:00:56,960 Dhe një për ta bërë / ndërsa loop është gjëja e drejtë për të përdorur këtu, pasi ne duhet të pyesim 21 00:00:56,960 --> 00:01:00,290 përdorues të paktën një herë për mënyrën se si sa para është borxh. 22 00:01:00,290 --> 00:01:05,040 >> Pra, një herë ne kemi se numri i dollarë, ne shohim këtu kemi cent int 23 00:01:05,040 --> 00:01:08,630 është e barabartë me Raundi dollarë herë CENTS_PER_DOLLAR. 24 00:01:08,630 --> 00:01:10,740 Në krye, shohim se CENTS_PER_DOLLAR është 25 00:01:10,740 --> 00:01:13,750 përcaktuar ndjeshme si 100. 26 00:01:13,750 --> 00:01:16,270 Pra, çfarë është kjo linjë duke bërë? 27 00:01:16,270 --> 00:01:21,200 >> E pra, nëse ju kujtohet, pika lundrues Vlerat nuk janë mjaft të sakta. 28 00:01:21,200 --> 00:01:25,470 Ndryshe nga integers, ne nuk mund të përfaqësojnë Vlerat pikë lundrues saktësisht. 29 00:01:25,470 --> 00:01:28,660 Ka gjithmonë një lloj e pasaktësisë. 30 00:01:28,660 --> 00:01:32,840 Pra, ne preferojnë të punojnë me vetëm integers gjatë gjithë këtij problemi. 31 00:01:32,840 --> 00:01:42,690 Dhe këtu, në qoftë se përdoruesi ka hyrë $ 3,42, ne jemi duke konvertimin që të 342 cent dhe 32 00:01:42,690 --> 00:01:45,900 arrestimi, vetëm të shpëtoj prej ndonjë që pasaktësisë. 33 00:01:45,900 --> 00:01:49,940 >> Pra, një herë ne kemi numrin e cent në një numër i plotë, ne mund të vazhdojmë me 34 00:01:49,940 --> 00:01:51,730 Pjesa tjetër e programit. 35 00:01:51,730 --> 00:01:55,910 Ne shohim këtu se ne jemi deklaruar numër i plotë monedha të cilat ne jemi vetëm për të përdorur 36 00:01:55,910 --> 00:01:59,560 të mbajnë gjurmët e totalit Numri i monedhave. 37 00:01:59,560 --> 00:02:01,590 Këtu, ne kemi lak tonë të parë ndërsa. 38 00:02:01,590 --> 00:02:06,780 >> Ne e shohim duke cent është më e madhe se, ose të barabartë me tremujorin e, e cila mbi të, është i hash 39 00:02:06,780 --> 00:02:14,680 përcaktuar si 25, ndërsa ajo është e vërtetë, ne e duan të rritje të numrit tonë të monedhave 40 00:02:14,680 --> 00:02:18,350 dhe cent pakësim nga tremujori. 41 00:02:18,350 --> 00:02:22,810 Mos harroni se kjo sintakse është e barabartë me cent 42 00:02:22,810 --> 00:02:26,020 është e barabartë cent minus tremujorin. 43 00:02:26,020 --> 00:02:28,170 Ata janë të njëjta. 44 00:02:28,170 --> 00:02:31,850 >> Pra, çfarë është kjo lak duke bërë? 45 00:02:31,850 --> 00:02:39,260 Ideja këtu është se, në qoftë se unë e di $ 3,42 është borxh, unë mund të vazhdojë duke i dhënë 46 00:02:39,260 --> 00:02:42,670 katërtat deri sa unë nuk mund të jap katërtat asnjë më shumë. 47 00:02:42,670 --> 00:02:47,720 Unë nuk mund të japin lagjet më, një herë unë kam dhënë $ 3,25. 48 00:02:47,720 --> 00:02:53,300 >> Prandaj, pasi është kështu, ne do të thyer nga ky lak ndërsa. 49 00:02:53,300 --> 00:02:57,650 Cent do të mbetet në 17 cent. 50 00:02:57,650 --> 00:03:01,910 Dhe ne do të vazhdojmë poshtë për të ardhshëm ndërsa loop ku ne themi, ndërsa cent 51 00:03:01,910 --> 00:03:04,270 është më e madhe se ose e barabartë me monedhë. 52 00:03:04,270 --> 00:03:07,420 >> Dhe tani ne jemi duke bërë të njëjtën gjë e saktë gjë ne e bëmë në rastin tremujorit, 53 00:03:07,420 --> 00:03:09,010 përveç me dimes. 54 00:03:09,010 --> 00:03:15,050 Pra, me 0,17 $, ne do të lak derisa ne mund të jepni më një monedhë, e cila është 55 00:03:15,050 --> 00:03:16,680 pikërisht një herë. 56 00:03:16,680 --> 00:03:20,470 Dhe pastaj ne do të mbetet me 7 cent. 57 00:03:20,470 --> 00:03:24,730 >> Pastaj ne do të vazhdojmë për të nickels, të cilat do loop deri sa ne nuk mund të japim 58 00:03:24,730 --> 00:03:29,420 ndonjë nickels më shumë, e cila do të na lënë me dy cent. 59 00:03:29,420 --> 00:03:34,400 Dhe pastaj, poshtë në pjesën e poshtme, ne kemi pennies, e cila do të lak dhe do të 60 00:03:34,400 --> 00:03:37,140 më në fund të na lënë me zero cent. 61 00:03:37,140 --> 00:03:41,670 Pastaj në fund, ne vetëm duhet të shtypura nga numrin tonë të monedhave. 62 00:03:41,670 --> 00:03:44,980 >> Pra, ky program është krejtësisht e saktë. 63 00:03:44,980 --> 00:03:47,310 Por ne fakt mund të bëjmë pak më mirë. 64 00:03:47,310 --> 00:03:52,660 Tani, nëse unë them se kam borxh t'ju $ 10,000, ju nuk duhet të duhet të shkoni këtu është një 65 00:03:52,660 --> 00:03:55,310 e katërta, dy tremujorët, tri të katërtat. 66 00:03:55,310 --> 00:03:59,450 Ju duhet të dini menjëherë se Unë ju detyrohem 40.000 katërtat. 67 00:03:59,450 --> 00:04:04,070 >> Tani le të shohim një program që trajton atë pak më mirë. 68 00:04:04,070 --> 00:04:07,190 Në këtë version të gjërave, ne ende nevojë të kërkojë nga shfrytëzuesi për shumën e 69 00:04:07,190 --> 00:04:10,930 të ndryshojë që ata duan në pikërisht të njëjtën mënyrë ne e bëmë para. 70 00:04:10,930 --> 00:04:14,110 Ne duhet të rrumbullakët atë pikërisht mënyra se si e bëri para. 71 00:04:14,110 --> 00:04:17,910 Dhe ne ende kemi monedha tona numër i plotë deklaroi saktësisht e njëjtë si më parë. 72 00:04:17,910 --> 00:04:21,399 >> Kështu që këtu është ku gjërat merrni pak e ndryshme. 73 00:04:21,399 --> 00:04:24,640 Ne jemi duke bërë monedha plus është e barabartë me cent ndarë nga tremujori 74 00:04:24,640 --> 00:04:27,140 ku e katërta është 25. 75 00:04:27,140 --> 00:04:31,790 Çfarë është duke thënë kjo është, të marrë sa më shumë katërtat si mund të shkojnë në cent dhe shtoni 76 00:04:31,790 --> 00:04:33,030 që në monedha. 77 00:04:33,030 --> 00:04:40,100 >> Pra, nëse cent është 142, 142 e ndarë me 25 na jep 5. 78 00:04:40,100 --> 00:04:43,950 Mos harroni se ndarjen numër i plotë automatikisht truncates. 79 00:04:43,950 --> 00:04:46,870 Pra, ne jemi duke bërë monedha plus është e barabartë me 5. 80 00:04:46,870 --> 00:04:51,850 >> Menjëherë pas kësaj, ne jemi duke thënë cent cent barabarta tremujorit mod. 81 00:04:51,850 --> 00:04:57,150 Mos harroni se operatori mod jep na e mbetur pas ndarjes. 82 00:04:57,150 --> 00:05:05,840 Pra, 142 katërta mod, që do t'i japë është minus 142 125, i cili është 17. 83 00:05:05,840 --> 00:05:10,470 Kjo është pjesa e mbetur pas duke bërë 142 pjesëtuar me 25. 84 00:05:10,470 --> 00:05:13,040 >> Kështu tani cents është e barabartë me 17. 85 00:05:13,040 --> 00:05:16,080 Dhe ne bëjmë të njëjtën gjë e saktë gjë për dimes. 86 00:05:16,080 --> 00:05:18,620 17 pjestuar me 10 do të na japë 1. 87 00:05:18,620 --> 00:05:20,150 Dhe ne të shtoj se në monedha. 88 00:05:20,150 --> 00:05:25,380 Dhe pastaj ne update cent për jetë 17 MOD 10, i cili është 7. 89 00:05:25,380 --> 00:05:27,200 >> Dhe pastaj të njëjtën gjë për nickels. 90 00:05:27,200 --> 00:05:29,180 7 ndarë nga 5 është 1. 91 00:05:29,180 --> 00:05:30,880 Shtoje që në monedha. 92 00:05:30,880 --> 00:05:34,600 Dhe më pas 7 MOD 5 është 2. 93 00:05:34,600 --> 00:05:35,910 Dhe kjo është cent tona. 94 00:05:35,910 --> 00:05:39,065 >> Dhe pastaj, për pennies, nuk ka asnjë të vërtetë pikë në ndarjen ose modding, pasi, 95 00:05:39,065 --> 00:05:42,170 në qoftë se ne kemi 0,2 $ mbetura, ne mund të vetëm të menjëherë të shtoj se në 96 00:05:42,170 --> 00:05:43,590 Numri ynë i monedhave. 97 00:05:43,590 --> 00:05:48,210 Dhe së fundi, ne kemi nevojë për të shtypur jashtë tonë Numri i monedhave dhe, sipas dëshirës, 98 00:05:48,210 --> 00:05:52,100 0 kthehen në fund të programit tonë për të ditur çdo gjë ka punuar. 99 00:05:52,100 --> 00:05:53,120 >> Emri im është Rob. 100 00:05:53,120 --> 00:05:54,020 Dhe kjo ishte e babëzitur. 101 00:05:54,020 --> 00:05:57,620 >> [MUSIC Playing] 102 00:05:57,620 --> 00:06:01,515