[Muusika mängib] ROB BOWDEN: Hi. Olen Rob. Ja olgem ahneks. Nii et esimene asi, mida me peame tegema, on paluda kasutajal täpselt, kuidas palju muutusi on ees. Nii et siin me näeme meil do / samas silmus. Ja me seame dollarit võrdne GetFloat. Mis on GetFloat? See on üks funktsioone CS50 raamatukogu, mis saab float kasutaja. Pea meeles, et kasutada seda funktsiooni, peame hash hulka CS50.h ülaosas. Nii et kui meil on see väärtus kasutaja, peame olema kindlad, et see on kehtiv väärtus. Me ei saa võlgu negatiivne raha. Ja nii see ongi eesmärk Selle do / samas silmus. Jätkame silmukoiminen samas dollarit on väiksem kui null. Ja do / kui silmus on õige asi kasutada siin, sest meil on vaja küsida alla vähemalt üks kord, kui palju raha võlgneb. Nii et kui meil on see number dollareid, näeme siin meil int senti võrdub ringi dollari korda CENTS_PER_DOLLAR. Tipus, siis näeme, et CENTS_PER_DOLLAR on mõistlikult määratletud kui 100. Mis siis on see joon teed? Noh, kui sa mäletad, ujukoma väärtused ei ole päris täpne. Erinevalt täisarvud, ei saa me esindame ujukoma väärtuste täpselt. Alati on mingi ebatäpsust. Nii et me eelistavad töötada ainult täisarvud kogu selle probleemi. Ja siin, kui kasutaja sisestas $ 3,42, me muutma seda, et 342 senti ja Ümardamise lihtsalt vabaneda ükskõik mis ebatäpsus. Nii et kui meil on mitu senti täisarv, saame jätkata ülejäänud programmi. Me näeme siin, et me kuulutab täisarv mündid, mis me oleme ainult kasutada jälgida kogu müntide arvu. Siin on meie esimene samas silmus. Me näeme samas senti on suurem või võrdne kvartalis, mille üle on hash defineeritud 25, samas on tõsi, me tahan juurdekasvu meie münti ja aland senti kvartalisse. Pea meeles, et see süntaks võrdub senti võrdub senti miinus kvartalis. Need on samad. Mis siis on see samas loop teed? Idee on selles, et kui ma tean, et $ 3,42 võlgneb, ma ei saa jätkuvalt anda kvartalites kuni ma ei saa anda kvartalites enam. Ma ei saa anda kvartalites enam, kui ma olen andnud $ 3,25. Niisiis, kui see on nii, siis tulen murda läbi selle samas silmus. Senti jäetakse kell 17 senti. Ja me jätkame kuni järgmise samas loop, kus me ütleme, kui senti on suurem või võrdne dime. Ja nüüd me teeme täpselt sama asi, mida me tegime kvartalis juhul välja arvatud pakikesed. Nii $ 0,17, paneme sellele loop kuni suudame enam ei anna peenraha, mis on täpselt üks kord. Ja siis me ei jää 7 senti. Siis me jätkake viiesendist, mis silmus, kuni me ei saa anda enam viiesendist, mis jätke meile kaks senti. Ja siis alla allservas on meil penni, mis silmuse ja tahe Lõpuks jätab meile null senti. Siis lõpuks, me lihtsalt vaja välja printida meie münti. Nii, et see programm on täiesti õige. Aga me ei saa tegelikult teha natuke parem. Nüüd, kui ma ütlen, et ma olen sulle võlgu $ 10.000, sa ei pea minema siin on üks kvartalis, kaks kvartalit, kolmveerand. Sa peaksid kohe teada, et Ma võlgnen sulle 40000 kvartalit. Nüüd vaatame programmi, mis käepidemed on veidi parem. Selles versioonis asju, meil on vaja veel paluda kasutajal summa muuta, et nad tahavad täpselt samamoodi me tegime enne. Meil on vaja ümardada see täpselt kuidas me tegime enne. Ja meil on veel meie mündid täisarv deklareeritud täpselt sama nagu enne. Nii et siin on koht, kus asjad natuke erinev. Me teeme mündid pluss võrdsete senti jagatud kvartalis kus kvartali 25. Mida see ütleb on, võta nii palju kvartalites ei lähe senti ja lisada et münte. Nii et kui senti on 142, 142 jagatud 25 annab meile 5. Pea meeles, et täisarv rajoon kärbib automaatselt. Nii me teeme mündid pluss võrdub 5. Kohe pärast seda, me ütleme, senti võrdne senti mod kvartalis. Pea meeles, et mod operaator annab meile jagamise jäägi. Nii 142 mod kvartalis, mis annab 142 miinus 125, mis on 17. See on jäänud pärast teeme 142 jagatud 25. Nüüd senti võrdub 17. Ja me teeme täpselt sama asi pakikesed. 17 jagatud 10 annab meile 1. Ja me lisada, et münte. Ja siis me uuendada senti olema 17 mod 10, mis on 7. Ja siis sama viiesendist. 7 jagatud 5 on 1. Lisada, et münte. Ja siis 7 mod 5 on 2. Ja see on meie senti. Ja siis, penne, ei ole reaalne mõtet jagamine või modereerimine, sest kui meil on 0,2 $ jäänud, saame lihtsalt kohe lisada, et meie münti. Ja lõpuks on meil vaja välja printida meie müntide arvu ja valikuliselt tagasi 0 lõpus meie programm tähendama kõik töötas. Minu nimi on Rob. Ja see oli ahne. [Muusika mängib]