[MUSIC PŘEHRÁVÁNÍ] ROB BOWDEN: Ahoj. Jsem Rob. A pojďme Greedy. Takže první věc, kterou musíme udělat, se zeptat, jak uživatele hodně změna dluží. Takže tady vidíme, máme do / while. A my jsme nastavení dolarů rovná GetFloat. Co je GetFloat? Je to jedna z funkcí CS50 knihovna, která dostane float od uživatele. Pamatujte si, že s cílem využít tuto funkci, musíme hash obsahovat CS50.h nahoře. Takže jakmile budeme mít tuto hodnotu od uživatel, musíme také být jisti, že je platná hodnota. Nemůžeme dluží negativní peněz. A tak to je účel tohoto úkolu / while. Pokračujeme opakování při dolarů je menší než nula. A do / while je správná věc používat zde, protože musíme ptát uživatel alespoň jednou, jak kolik peněz dluží. Takže jakmile jsme se, že počet dolarů, vidíme zde máme int centů rovná kolo dolarů krát CENTS_PER_DOLLAR. V horní části vidíme, že CENTS_PER_DOLLAR je rozumně definována jako 100. Takže to, co se tento řádek dělá? No, pokud si pamatuji, s plovoucí desetinnou čárkou hodnoty nejsou zcela přesné. Na rozdíl od čísel, nemůžeme představovat s plovoucí desetinnou čárkou hodnoty přesně. Vždycky je tu nějaký nepřesnost. Tak jsme raději pracovat jen s celými čísly v tomto problému. A tady, v případě, že uživatel zadal 3,42 dolarů, jsme konverze, které se na 342 centů a zaokrouhlování, jen zbavit každý z této nepřesnosti. Takže jakmile budeme mít počet centů na celé číslo, můžeme pokračovat Zbytek programu. Vidíme zde, že budeme deklarovat číslo mince, které jsme se používat pouze sledovat z celkového počtu počet mincí. Zde máme první while. Vidíme, zatímco centů je větší než nebo rovná čtvrtletí, které výše, je hash definována jako 25, a zároveň, že je to pravda, jsme Chcete zvýšit svou počtu mincí a dekrementační centů podle čtvrtletí. Nezapomeňte, že tato syntaxe odpovídá centů rovná centů minus čtvrtletí. To jsou stejné. Takže co je to, když smyčka dělá? Myšlenka je, že pokud vím, 3,42 dolarů dluží, mohu i nadále dávat čtvrtiny, dokud jsem si nedal čtvrtiny víc. Nemůžu dát QUARTERS nic víc, Jednou jsem s ohledem 3,25 dolarů. Takže, jakmile je to tento případ, budeme vymanit se z tohoto cyklu while. Centů bude ponecháno na 17 centů. A budeme pokračovat až do příští while, kde říkáme, zatímco centů je větší než nebo rovno desetník. A teď děláme totéž přesné věc, kterou jsme udělali v tomto čtvrtletí případě, s výjimkou desetníky. Takže s 0,17 dolary, budeme smyčka, dokud můžeme již dát desetník, který je právě jednou. A pak budeme zbývá 7 centů. Pak budeme pokračovat na nickels, které se smyčka, dokud nemůže dát žádné další nickels, který bude nechte nás s dva centy. A pak, se ve spodní části, máme haléře, který bude smyčka a bude Nakonec nechte nás s nulovými centů. Pak na konci, jen je třeba, aby vytiskněte si náš počet mincí. Takže tento program je naprosto správné. Ale můžeme skutečně udělat trochu lépe. Nyní, když řeknu, že dlužím ti $ 10,000, byste neměli potřebovat jít tady je jeden čtvrtletí, dvou čtvrtletích, tři čtvrtiny. Měli byste okamžitě vědět, že Dlužím ti 40.000 čtvrtiny. Nyní se pojďme podívat na program, který zvládá to trochu lepší. V této verzi věcí, stále potřebujeme požádat uživatele o množství změnit, že chtějí v přesně Stejným způsobem jsme dělali předtím. Musíme to sehnat přesně jak jsme dělali předtím. A máme ještě naše mince číslo prohlásil, přesně stejný jako předtím. Tak tady je místo, kde se věci dostat trochu jinak. Děláme mince a navíc rovná centů rozdělené podle čtvrtletí kde čtvrtina je 25. Co to říká je, brát co nejvíce čtvrtiny jak může jít do centů a přidat že na mincích. Takže pokud je 142 centů, 142 dělená o 25 nám dává 5. Nezapomeňte, že celočíselné dělení automaticky zkrátí. Takže děláme mincí a je rovna 5. Ihned poté, co říkáme centů rovných centů mod čtvrtletí. Nezapomeňte, že mod operátor dává nám zbytek po dělení. Takže 142 mod čtvrtletí, které vám dá je 142 minus 125, což je 17. Je to zbytek po dělá 142 děleno 25. Takže nyní centů se rovná 17. A děláme totéž přesné věc pro desetníky. 17 děleno 10 nám dá 1. A když k tomu přidám mincí. A pak jsme se aktualizovat centů se 17 mod 10, což je 7. A pak stejné pro nickels. 7 děleno 5 je 1.. Dodávám, že do mincí. A pak 7 mod 5 je 2. A to je naše centů. A pak, pro haléře, není tam žádný skutečný bod dělení nebo modding, protože, pokud máme 0,2 dolarů zbude, můžeme Jen ihned dodat, že do náš počet mincí. A konečně, musíme vytisknout naše počet mincí a, volitelně, return 0 na konci našeho programu znamenat všechno fungovalo. Jmenuji se Rob. A to byl chamtivý. [MUSIC PŘEHRÁVÁNÍ]