[Muzikavimo] ROB BOWDEN: Sveiki. Aš Rob. Ir tegul gauti gobšus. Taigi pirmas dalykas, kurį reikia padaryti, yra paprašyti, kad naudotojas tiksliai, kaip daug pokyčių yra skolinga. Taigi čia mes matome, mes turime do / while cikle. Ir mes kuriame dolerių lygi GetFloat. Kas yra GetFloat? Tai viena iš funkcijų CS50 biblioteka, kuri gauna plaukti iš vartotojo. Atminkite, kad siekiant naudoti šią funkciją, turime maišos yra CS50.h viršuje. Taigi, kai mes turime tą vertę iš vartotojas, mes taip pat turime būti tikri, kad tai galiojanti reikšmė. Mes negalime skolingas neigiamą pinigų. Ir taip tai tikslas Šio do / while cikle. Mes ir toliau apsisukimo o dolerių yra mažesnis už nulį. Ir do / while cikle yra teisingas dalykas naudoti čia, nes mes turime paklausti vartotojas bent kartą kaip kiek pinigų yra skolingas. Taigi, kai mes turime tą dolerių skaičių, Čia mes matome, mes turime int centų Lygu turas dolerių kartus CENTS_PER_DOLLAR. Viršuje matome, kad CENTS_PER_DOLLAR yra protingai apibrėžti kaip 100. Taigi, kas yra ši eilutė darai? Na, jei pamenate, slankaus kablelio vertybės yra ne visai tiksli. Skirtingai nei sveikieji skaičiai, mes negali atstovauti slankiojo kablelio reikšmės tiksliai. Visada kai rūšiuoti neaiškumų. Taigi, mes nori dirbti tik su skaičiais per šią problemą. Ir čia, ar įrašyti vartotojo $ 3,42, mes konvertuoti, kad į 342 centų, ir apvalinimas, tiesiog atsikratyti bet tos netikslumų. Taigi, kai mes turime centų numerį sveikasis skaičius, mes galime toliau poilsio programos. Čia mes matome, kad mes skelbiantis sveikasis skaičius monetos Užtenka tik naudoti sekti viso monetų skaičius. Čia mes turime pirmą while cikle. Mes matome, o centai yra didesnė arba lygi ketvirtį, kurį pirmiau, yra maišos apibrėžiamas kaip 25, o tai tiesa, mes nori prieaugio mūsų monetų skaičius ir priežasčių mirtingumo centų ketvirčiais. Atminkite, kad ši sintaksė yra lygiavertis centų Lygu centų minuso ketvirtį. Tai yra tas pats. Taigi, kas tai yra, o kilpos darai? Idėja yra tai, kad, jei aš žinau, $ 3,42 yra skolingas, galiu toliau teikti ketvirtadaliai kol aš negaliu duoti ketvirtadaliai, bet daugiau. Aš negaliu duoti ketvirtadaliai, bet daugiau, kai aš davė 3,25 $. Taigi, vieną kartą, kad toks atvejis, mes išeiti iš šio while cikle. Centai bus paliktas 17 centų. Ir mes ir toliau žemyn į kitą o kilpos kur mes sakome, o centai yra didesnė arba lygi bulvarinis. Ir dabar mes darome lygiai tas pats dalykas, kurį mes padarėme ketvirtį atveju išskyrus dimes. Taigi su 0,17 $, mes kilpa, kol mes galime nebegali duoti nė cento, kuris yra tik vieną kartą. Ir tada mes būti palikta 7 centų. Tada mes ir toliau į Nickels, kuris bus kilpa, kol mes negalime duoti bet daugiau nickels, kuris bus palikti su dviem centais mumis. Ir tada, žemyn apačioje, mes turime centus, kurie kilpa ir bus pagaliau palikti su nuline centų mumis. Tada pabaigoje, mums tik reikia spausdinti mūsų monetų skaičius. Taigi ši programa yra visiškai teisinga. Bet mes iš tikrųjų gali padaryti tiek geriau. Dabar, jei aš sakau, kad aš skolingas jums $ 10.000, jums nereikia eiti čia vienas ketvirtį, du ketvirčius tris ketvirčius. Jūs turite iš karto žinoti, kad Aš skolingas jums 40.000 ketvirčius. Dabar pažvelkime į programą, kuri rankenos tai šiek tiek geriau. Šiuo dalykų versiją, mes vis dar reikia prašyti už sumą vartotoją pakeisti, kad jie nori tiksliai Taip pat mes padarėme anksčiau. Mums reikia suapvalinti ją tiksliai kaip mes anksčiau. Ir mes vis dar turime monetų sveikasis skaičius paskelbė lygiai tas pats kaip ir anksčiau. Taigi čia yra kur kas gauti šiek tiek skiriasi. Mes darome monetų plius lygu centų padalintas ketvirtį kur ketvirtis 25. Ką tai sako yra, imtis, kaip daugelis ketvirtadaliai kaip galite pereiti į centus ir pridėti kad su monetomis. Taigi, jei centai yra 142, 142, padalytą iki 25 duoda mums 5. Atminkite, kad sveikasis skaičius pasidalijimas automatiškai nukerta. Taigi, ką mes darome monetų plius lygu 5. Iškart po to, mes pasakyti, centų lygios centų mod ketvirtį. Atminkite, kad mod operatorius suteikia mums likusi po padalijimo. Taigi, 142 mod ketvirtį, kad duos yra 142 minus 125, o tai yra 17. Štai po likusi daro 142 padalinta iš 25. Taigi dabar centai yra lygi 17. Ir mes tai darome lygiai tas pats dalykas dimes. 17, padalytą iš 10 duos mums 1. Ir mes pridėti, kad monetų. Ir tada mes atnaujinti centų būti 17 mod 10, kuris yra 7. Ir tada už Nickels pats. 7, padalytą iš 5 yra 1. Pridėti, kad monetų. Ir tada 7 mod 5 yra 2. Ir tai mūsų centų. Ir tada, už centus, nėra nekilnojamojo taškas dalijant ar modding, nes, jei mes turime $ 0,2 likę, mes galime tik iš karto pridėti prie mūsų monetų skaičius. Ir pagaliau, mes turime atsispausdinti mūsų monetų skaičius ir, pasirinktinai, grįžti 0 prie mūsų programos pabaigoje reikšti viską dirbo. Mano vardas yra Rob. Ir tai buvo gobšus. [Muzikavimo]