1 00:00:00,000 --> 00:00:00,994 2 00:00:00,994 --> 00:00:11,431 >> [Music kucheza] 3 00:00:11,431 --> 00:00:12,500 >> Rob BOWDEN: Hi. 4 00:00:12,500 --> 00:00:13,230 Mimi nina Rob. 5 00:00:13,230 --> 00:00:15,080 Na hebu kupata tamaa. 6 00:00:15,080 --> 00:00:18,560 >> Hivyo jambo la kwanza sisi haja ya kufanya ni kuuliza user hasa jinsi 7 00:00:18,560 --> 00:00:20,500 mabadiliko mengi ni deni. 8 00:00:20,500 --> 00:00:23,310 Hivyo hapa, tunaona tuna kufanya / kitanzi wakati. 9 00:00:23,310 --> 00:00:26,650 Na sisi ni kuweka dola sawa na GetFloat. 10 00:00:26,650 --> 00:00:27,890 GetFloat ni nini? 11 00:00:27,890 --> 00:00:30,700 Ni moja ya kazi katika CS50 maktaba kwamba anapata 12 00:00:30,700 --> 00:00:32,450 kuelea kutoka kwa mtumiaji. 13 00:00:32,450 --> 00:00:35,200 Kumbuka, ili kutumia kazi hiyo, tunahitaji hash ni pamoja na 14 00:00:35,200 --> 00:00:37,790 CS50.h juu. 15 00:00:37,790 --> 00:00:42,310 >> Hivyo mara tuna thamani kwamba kutoka user, sisi pia haja ya kuwa na uhakika kwamba 16 00:00:42,310 --> 00:00:43,560 ni thamani halali. 17 00:00:43,560 --> 00:00:46,050 Hatuwezi zikidai pesa hasi. 18 00:00:46,050 --> 00:00:48,460 Na hiyo ilikuwa madhumuni ya kufanya hii / kitanzi wakati. 19 00:00:48,460 --> 00:00:52,420 Tunaendelea wanaoendesha wakati dola ni chini ya sifuri. 20 00:00:52,420 --> 00:00:56,960 Na kufanya / kitanzi wakati ni jambo la haki kutumia hapa, tangu sisi haja ya kuuliza 21 00:00:56,960 --> 00:01:00,290 user angalau mara moja kwa jinsi fedha nyingi ni deni. 22 00:01:00,290 --> 00:01:05,040 >> Hivyo mara tuna kuwa idadi ya dola, tunaona hapa tuna senti int 23 00:01:05,040 --> 00:01:08,630 sawa na pande zote za Kimarekani mara CENTS_PER_DOLLAR. 24 00:01:08,630 --> 00:01:10,740 Saa ya juu, tunaona kwamba CENTS_PER_DOLLAR ni 25 00:01:10,740 --> 00:01:13,750 sensibly hufafanuliwa kama 100. 26 00:01:13,750 --> 00:01:16,270 Hivyo ni nini mstari huu kufanya? 27 00:01:16,270 --> 00:01:21,200 >> Naam, kama unakumbuka, floating hatua maadili ni si sahihi kabisa. 28 00:01:21,200 --> 00:01:25,470 Tofauti na integers, sisi hawezi kuwakilisha maadili yaliyo hatua hasa. 29 00:01:25,470 --> 00:01:28,660 Kuna daima aina fulani ya kutokuwa sahihi. 30 00:01:28,660 --> 00:01:32,840 Hivyo sisi wanapendelea kufanya kazi na integers tu katika tatizo hili. 31 00:01:32,840 --> 00:01:42,690 Na hapa, kama mtumiaji aliingia $ 3.42, sisi ni kuwabadili kwamba senti 342 na 32 00:01:42,690 --> 00:01:45,900 rounding, tu kujikwamua yoyote ya kuwa kutokuwa sahihi. 33 00:01:45,900 --> 00:01:49,940 >> Hivyo mara sisi kuwa na idadi ya senti katika integer, tunaweza kuendelea na 34 00:01:49,940 --> 00:01:51,730 wengine wa mpango. 35 00:01:51,730 --> 00:01:55,910 Tunaona hapa kwamba sisi ni kutangaza integer sarafu ambayo tuko tu kwa kutumia 36 00:01:55,910 --> 00:01:59,560 kuweka wimbo wa jumla idadi ya sarafu. 37 00:01:59,560 --> 00:02:01,590 Hapa, tuna wakati wetu wa kwanza kitanzi. 38 00:02:01,590 --> 00:02:06,780 >> Tunaona wakati senti ni kubwa zaidi kuliko au sawa na robo, ambayo hapo juu, ni hash 39 00:02:06,780 --> 00:02:14,680 hufafanuliwa kama 25, wakati kwamba ni kweli, sisi wanataka nyongeza idadi yetu ya sarafu 40 00:02:14,680 --> 00:02:18,350 na senti decrement kwa robo. 41 00:02:18,350 --> 00:02:22,810 Kumbuka kwamba syntax hii ni sawa na senti 42 00:02:22,810 --> 00:02:26,020 sawa na senti minus robo. 43 00:02:26,020 --> 00:02:28,170 Wale ni sawa. 44 00:02:28,170 --> 00:02:31,850 >> Hivyo ni nini kitanzi hii wakati akifanya? 45 00:02:31,850 --> 00:02:39,260 Wazo hapa ni kwamba, kama mimi najua $ 3.42 zinadaiwa, siwezi kuendelea kutoa 46 00:02:39,260 --> 00:02:42,670 robo mpaka siwezi kutoa robo yoyote zaidi. 47 00:02:42,670 --> 00:02:47,720 Siwezi kutoa robo yoyote zaidi, mara moja nimekuwa kupewa $ 3.25. 48 00:02:47,720 --> 00:02:53,300 >> Hivyo basi, mara moja hiyo kesi, tutaweza kuvunja nje ya kitanzi hii wakati. 49 00:02:53,300 --> 00:02:57,650 Senti ataachwa senti 17. 50 00:02:57,650 --> 00:03:01,910 Na tutaweza kuendelea chini ijayo kitanzi wakati ambapo tunasema, wakati senti 51 00:03:01,910 --> 00:03:04,270 ni kubwa zaidi kuliko au sawa na dime. 52 00:03:04,270 --> 00:03:07,420 >> Na sasa sisi ni kufanya exact kitu sisi alivyofanya katika kesi robo, 53 00:03:07,420 --> 00:03:09,010 ila kwa dimes. 54 00:03:09,010 --> 00:03:15,050 Hivyo, pamoja na $ 0.17, tutaweza kitanzi mpaka tunaweza tena kutoa dime, ambayo ni 55 00:03:15,050 --> 00:03:16,680 hasa mara moja. 56 00:03:16,680 --> 00:03:20,470 Na kisha tutaweza kuwa na kushoto na senti 7. 57 00:03:20,470 --> 00:03:24,730 >> Kisha tutaweza kuendelea na nickels, ambayo itakuwa kitanzi mpaka sisi hawawezi kutoa 58 00:03:24,730 --> 00:03:29,420 nickels yoyote zaidi, ambayo itakuwa kuondoka sisi na senti mbili. 59 00:03:29,420 --> 00:03:34,400 Na kisha, chini chini, tuna pennies, ambayo itakuwa kitanzi na mapenzi 60 00:03:34,400 --> 00:03:37,140 hatimaye kuondoka sisi na senti zero. 61 00:03:37,140 --> 00:03:41,670 Kisha mwishoni, sisi tu haja ya magazeti nje idadi yetu ya sarafu. 62 00:03:41,670 --> 00:03:44,980 >> Hivyo mpango huu ni sahihi kabisa. 63 00:03:44,980 --> 00:03:47,310 Lakini sisi kweli anaweza kufanya kidogo bora. 64 00:03:47,310 --> 00:03:52,660 Sasa kama mimi kusema kwamba mimi deni wewe $ 10,000, unapaswa haja ya kwenda hapa ni moja 65 00:03:52,660 --> 00:03:55,310 robo, robo mbili, robo tatu. 66 00:03:55,310 --> 00:03:59,450 Unapaswa kujua mara moja kwamba Mimi deni wewe 40,000 robo. 67 00:03:59,450 --> 00:04:04,070 >> Sasa hebu tuangalie mpango huo Hushughulikia kidogo bora. 68 00:04:04,070 --> 00:04:07,190 Katika toleo huu wa mambo, bado tunahitaji kuuliza user kwa kiasi cha 69 00:04:07,190 --> 00:04:10,930 kubadili kwamba wanataka katika hasa njia hiyo sisi alifanya kabla ya. 70 00:04:10,930 --> 00:04:14,110 Tunahitaji kwa pande zote ni hasa njia ya sisi alifanya kabla ya. 71 00:04:14,110 --> 00:04:17,910 Na bado tuna sarafu yetu integer alitangaza sawa kama kabla. 72 00:04:17,910 --> 00:04:21,399 >> Hivyo hapa ni ambapo mambo kupata tofauti kidogo. 73 00:04:21,399 --> 00:04:24,640 Sisi ni kufanya sarafu pamoja na usawa senti kugawanywa na robo 74 00:04:24,640 --> 00:04:27,140 ambapo robo ni 25. 75 00:04:27,140 --> 00:04:31,790 Nini hii ni kusema ni, kuchukua kama wengi robo kama unaweza kwenda katika senti na kuongeza 76 00:04:31,790 --> 00:04:33,030 kwamba sarafu. 77 00:04:33,030 --> 00:04:40,100 >> Hivyo kama senti ni 142, 142 kugawanywa kwa 25 inatupa 5. 78 00:04:40,100 --> 00:04:43,950 Kumbuka kwamba mgawanyiko integer moja kwa moja truncates. 79 00:04:43,950 --> 00:04:46,870 Hivyo sisi ni kufanya sarafu pamoja na sawa na 5. 80 00:04:46,870 --> 00:04:51,850 >> Mara baada ya hii, sisi ni kusema senti senti sawa robo mod. 81 00:04:51,850 --> 00:04:57,150 Kumbuka kwamba operator mod inatoa sisi salio baada ya mgawanyiko. 82 00:04:57,150 --> 00:05:05,840 Hivyo 142 mod robo, kwamba nitakupa ni 142 minus 125, ambayo ni 17. 83 00:05:05,840 --> 00:05:10,470 Hiyo ni salio baada ya kufanya 142 kugawanywa na 25. 84 00:05:10,470 --> 00:05:13,040 >> Hivyo sasa senti ni sawa na 17. 85 00:05:13,040 --> 00:05:16,080 Na sisi kufanya exact kitu kwa dimes. 86 00:05:16,080 --> 00:05:18,620 17 kugawanywa na 10 itatupa 1. 87 00:05:18,620 --> 00:05:20,150 Na sisi kuongeza kwamba kwa sarafu. 88 00:05:20,150 --> 00:05:25,380 Na kisha sisi update senti kuwa 17 mod 10, ambayo ni 7. 89 00:05:25,380 --> 00:05:27,200 >> Na kisha moja kwa ajili ya nickels. 90 00:05:27,200 --> 00:05:29,180 7 kugawanywa na 5 ni 1. 91 00:05:29,180 --> 00:05:30,880 Kuongeza kwamba kwa sarafu. 92 00:05:30,880 --> 00:05:34,600 Na kisha 7 mod 5 ni 2. 93 00:05:34,600 --> 00:05:35,910 Na kwamba ni senti yetu. 94 00:05:35,910 --> 00:05:39,065 >> Na kisha, kwa pennies, hakuna halisi hatua katika kugawa au modding, kwa kuwa, 95 00:05:39,065 --> 00:05:42,170 kama tuna $ 0.2 kushoto juu, tunaweza tu mara moja kuongeza kwamba kwa 96 00:05:42,170 --> 00:05:43,590 idadi yetu ya sarafu. 97 00:05:43,590 --> 00:05:48,210 Na hatimaye, tunahitaji magazeti nje yetu idadi ya sarafu na, kwa hiari, 98 00:05:48,210 --> 00:05:52,100 kurudi 0 mwishoni mwa mpango wetu kwa ishara ya kila kitu kazi. 99 00:05:52,100 --> 00:05:53,120 >> Jina langu ni Rob. 100 00:05:53,120 --> 00:05:54,020 Na hii ilikuwa tamaa. 101 00:05:54,020 --> 00:05:57,620 >> [Music kucheza] 102 00:05:57,620 --> 00:06:01,515