1 00:00:00,000 --> 00:00:00,994 2 00:00:00,994 --> 00:00:11,431 >> [Tónlist spila] 3 00:00:11,431 --> 00:00:12,500 >> ROB BOWDEN: Hæ. 4 00:00:12,500 --> 00:00:13,230 Ég er Rob. 5 00:00:13,230 --> 00:00:15,080 Og við skulum fá gráðugur. 6 00:00:15,080 --> 00:00:18,560 >> Svo the fyrstur hlutur sem við þurfum að gera er að spyrja notandann nákvæmlega hvernig 7 00:00:18,560 --> 00:00:20,500 miklar breytingar er skuldar. 8 00:00:20,500 --> 00:00:23,310 Svo hér sjáum við að við höfum a gera / en lykkja. 9 00:00:23,310 --> 00:00:26,650 Og við erum að setja dollara jafnt GetFloat. 10 00:00:26,650 --> 00:00:27,890 Hvað er GetFloat? 11 00:00:27,890 --> 00:00:30,700 Það er eitt af hlutverkum Í CS50 bókasafn sem fær 12 00:00:30,700 --> 00:00:32,450 fljóta frá notandanum. 13 00:00:32,450 --> 00:00:35,200 Mundu, í því skyni að nota þessi virka, við þurfum að kjötkássa fela 14 00:00:35,200 --> 00:00:37,790 CS50.h efst. 15 00:00:37,790 --> 00:00:42,310 >> Svo þegar við höfum þessi gildi frá notandi, þurfum við líka að vera viss um að 16 00:00:42,310 --> 00:00:43,560 það gilt gildi. 17 00:00:43,560 --> 00:00:46,050 Við getum ekki skuldar neikvæð peninga. 18 00:00:46,050 --> 00:00:48,460 Og svo er að tilgangur þessarar gera / en lykkja. 19 00:00:48,460 --> 00:00:52,420 Við höldum áfram lykkja meðan dollara er minna en núll. 20 00:00:52,420 --> 00:00:56,960 Og a gera / en lykkja er rétt til að nota hér, þar sem við þurfum að spyrja 21 00:00:56,960 --> 00:01:00,290 notandi amk einu sinni fyrir hversu mikið fé er skuldar. 22 00:01:00,290 --> 00:01:05,040 >> Svo þegar við höfum að fjöldi dollara, sjáum við hér höfum int sent 23 00:01:05,040 --> 00:01:08,630 jafngildir umferð dollara sinnum CENTS_PER_DOLLAR. 24 00:01:08,630 --> 00:01:10,740 Efst, sjáum við að CENTS_PER_DOLLAR er 25 00:01:10,740 --> 00:01:13,750 skynsamlega skilgreint sem 100 manns. 26 00:01:13,750 --> 00:01:16,270 Svo hvað er þetta lína að gera? 27 00:01:16,270 --> 00:01:21,200 >> Jæja, ef þú manst, Fljótandi Point gildi eru ekki alveg nákvæmar. 28 00:01:21,200 --> 00:01:25,470 Ólíkt heiltölur, getum við ekki um Fleytitölugildi nákvæmlega. 29 00:01:25,470 --> 00:01:28,660 Það er alltaf einhvers konar af imprecision. 30 00:01:28,660 --> 00:01:32,840 Þannig að við vilja til að vinna með bara heiltölur allan þennan vanda. 31 00:01:32,840 --> 00:01:42,690 Og hér, ef notandinn slær inn $ 3,42, við erum að umbreyta því í 342 sent og 32 00:01:42,690 --> 00:01:45,900 lokið máli mínu, bara að losna við einhverju sem imprecision. 33 00:01:45,900 --> 00:01:49,940 >> Svo þegar við höfum fjölda sent í heiltala, getum við haldið áfram með 34 00:01:49,940 --> 00:01:51,730 hvíla af the program. 35 00:01:51,730 --> 00:01:55,910 Við sjáum hér að við erum að lýsa heiltölu mynt sem við erum aðeins að nota 36 00:01:55,910 --> 00:01:59,560 að halda utan um heildarfjölda fjöldi mynt. 37 00:01:59,560 --> 00:02:01,590 Hér höfum við fyrst meðan lykkja okkar. 38 00:02:01,590 --> 00:02:06,780 >> Við sjáum á meðan sent er meiri en eða jöfn fjórðungi sem á að framan er tæti 39 00:02:06,780 --> 00:02:14,680 skilgreind sem 25, en það er satt, við langar að hækka fjölda okkar mynt 40 00:02:14,680 --> 00:02:18,350 og lækka sent eftir ársfjórðungum. 41 00:02:18,350 --> 00:02:22,810 Mundu að þetta setningafræði jafngildir sent 42 00:02:22,810 --> 00:02:26,020 jafngildir sent mínus ársfjórðungi. 43 00:02:26,020 --> 00:02:28,170 Þeir eru þeir sömu. 44 00:02:28,170 --> 00:02:31,850 >> Svo hvað er þetta á meðan lykkja gera? 45 00:02:31,850 --> 00:02:39,260 Hugmyndin hér er að, ef ég veit 3,42 $ er skuldaði, get ég haldið áfram að gefa 46 00:02:39,260 --> 00:02:42,670 fjórðu fyrr en ég get ekki gefið ársfjórðungum lengur. 47 00:02:42,670 --> 00:02:47,720 Ég get ekki gefið ársfjórðunga lengur, þegar ég hef gefið $ 3,25. 48 00:02:47,720 --> 00:02:53,300 >> Svo, þegar það er málið, við munum brjótast út úr þessu while lykkju. 49 00:02:53,300 --> 00:02:57,650 Sent verður eftir á 17 sent. 50 00:02:57,650 --> 00:03:01,910 Og við munum halda áfram niður að næsta meðan lykkja þar sem við segjum, en sent 51 00:03:01,910 --> 00:03:04,270 er stærra en eða jafnt og kostnað. 52 00:03:04,270 --> 00:03:07,420 >> Og nú erum við að gera það sama nákvæmlega sem við gerðum í fjórðungnum ræða, 53 00:03:07,420 --> 00:03:09,010 nema með Dimes. 54 00:03:09,010 --> 00:03:15,050 Svo með $ 0,17, munum við lykkja þar til við getum ekki lengur gefa dime, sem er 55 00:03:15,050 --> 00:03:16,680 nákvæmlega einu sinni. 56 00:03:16,680 --> 00:03:20,470 Og þá munum við vera vinstri með 7 sent. 57 00:03:20,470 --> 00:03:24,730 >> Þá munum við halda áfram á nickels, sem mun lykkja þar til við getum ekki gefið 58 00:03:24,730 --> 00:03:29,420 einhverjar fleiri nikkel, sem mun skilja okkur með tvö sent. 59 00:03:29,420 --> 00:03:34,400 Og þá, niður á botn, við höfum smáaurarnir, sem endurtekur og mun 60 00:03:34,400 --> 00:03:37,140 lokum yfirgefa okkur með núll sent. 61 00:03:37,140 --> 00:03:41,670 Þá í lok, þurfum við bara að prenta út fjölda okkar mynt. 62 00:03:41,670 --> 00:03:44,980 >> Svo er þetta forrit fullkomlega rétt. 63 00:03:44,980 --> 00:03:47,310 En við getum í raun gert a hluti betri. 64 00:03:47,310 --> 00:03:52,660 Nú ef ég segi að ég skulda þér $ 10.000, þú ættir ekki að þurfa að fara hér er ein 65 00:03:52,660 --> 00:03:55,310 ársfjórðungi, tvo fjórðunga, þrír fjórðu. 66 00:03:55,310 --> 00:03:59,450 Þú ættir að vita strax að Ég skulda þér 40.000 ársfjórðunga. 67 00:03:59,450 --> 00:04:04,070 >> Nú skulum líta á forrit sem annast það svolítið betur. 68 00:04:04,070 --> 00:04:07,190 Í þessari útgáfu af hlutum, þurfum við enn að spyrja notanda um fjárhæð 69 00:04:07,190 --> 00:04:10,930 breyta því sem þeir vilja í nákvæmlega á sama hátt og við gerðum áður. 70 00:04:10,930 --> 00:04:14,110 Við þurfum að umferð það nákvæmlega hvernig við gerðum áður. 71 00:04:14,110 --> 00:04:17,910 Og við höfum enn mynt okkar heiltala lýst nákvæmlega það sama og áður. 72 00:04:17,910 --> 00:04:21,399 >> Svo er hér þar sem hlutirnir fá svolítið öðruvísi. 73 00:04:21,399 --> 00:04:24,640 Við erum að gera mynt auk jafn sent skipt eftir ársfjórðungum 74 00:04:24,640 --> 00:04:27,140 þar ársfjórðungur er 25. 75 00:04:27,140 --> 00:04:31,790 Hvað þetta er að segja er, að taka eins og margir ársfjórðunga getur farið í sentum og bæta 76 00:04:31,790 --> 00:04:33,030 að til þess að mynt. 77 00:04:33,030 --> 00:04:40,100 >> Þannig að ef sent er 142, 142 skipt með 25 gefur okkur 5. 78 00:04:40,100 --> 00:04:43,950 Muna að heiltala deild sjálfkrafa truncates. 79 00:04:43,950 --> 00:04:46,870 Þannig að við erum að gera mynt plús jafngildir 5. 80 00:04:46,870 --> 00:04:51,850 >> Strax eftir þetta, við erum að segja sent jafna sent unga fólkið ársfjórðungi. 81 00:04:51,850 --> 00:04:57,150 Mundu að unga fólkið rekstraraðili gefur okkur afgangnum eftir deilingu. 82 00:04:57,150 --> 00:05:05,840 Svo 142 Mod ársfjórðungi, sem mun gefa er 142 mínus 125, sem er 17. 83 00:05:05,840 --> 00:05:10,470 Það er afgangurinn eftir gera 142 deilt með 25. 84 00:05:10,470 --> 00:05:13,040 >> Svo nú sent er jafnt 17. 85 00:05:13,040 --> 00:05:16,080 Og við gerum það sama nákvæmlega hlutur fyrir Dimes. 86 00:05:16,080 --> 00:05:18,620 17 deilt með 10 mun gefa okkur 1. 87 00:05:18,620 --> 00:05:20,150 Og við bæta að við mynt. 88 00:05:20,150 --> 00:05:25,380 Og þá erum við að uppfæra sent til vera 17 Mod 10, sem er 7. 89 00:05:25,380 --> 00:05:27,200 >> Og þá það sama fyrir nikkel. 90 00:05:27,200 --> 00:05:29,180 7 deilt með 5 er 1. 91 00:05:29,180 --> 00:05:30,880 Bæta við þessi til mynt. 92 00:05:30,880 --> 00:05:34,600 Og þá er 7 unga fólkið 5 2. 93 00:05:34,600 --> 00:05:35,910 Og það er sent okkar. 94 00:05:35,910 --> 00:05:39,065 >> Og þá, fyrir smáaurarnir, það er engin alvöru lið í því að deila eða modding þar, 95 00:05:39,065 --> 00:05:42,170 ef við höfum $ 0,2 afgangs, getum við bara strax bæta því við 96 00:05:42,170 --> 00:05:43,590 númer okkar mynt. 97 00:05:43,590 --> 00:05:48,210 Og að lokum, þurfum við að prenta út okkar fjölda mynt og, mögulega, 98 00:05:48,210 --> 00:05:52,100 return 0 í lok áætlunarinnar okkar að signify allt í uppnámi. 99 00:05:52,100 --> 00:05:53,120 >> Mitt nafn er Rob. 100 00:05:53,120 --> 00:05:54,020 Og þetta var gráðugur. 101 00:05:54,020 --> 00:05:57,620 >> [Tónlist spila] 102 00:05:57,620 --> 00:06:01,515