>> [Redare a muzicii]
>> ROB BOWDEN: Hi.
Sunt Rob.
Și hai să Greedy.
>> Deci, primul lucru pe care trebuie să facem se întreba exact modul în care utilizatorul
o mare schimbare se datorează.
Deci, aici, vedem avem un do / while.
Și suntem stabilirea de dolari egal la GetFloat.
Ce este GetFloat?
Este una din funcțiile în Bibliotecă CS50 care devine o
pluti la utilizator.
Amintiți-vă, în scopul de a utiliza această funcție, avem nevoie pentru a hash includă
CS50.h în partea de sus.
>> Deci, odată ce avem ca valoare din de utilizator, avem nevoie, de asemenea, pentru a fi siguri că
este o valoare validă.
Nu putem să datorez bani negativ.
Si asa ca asta e scopul din acest do / în timp ce bucla.
Vom continua looping în timp ce de dolari este mai mică decât zero.
Și un / în timp ce buclă este un lucru bun do de a folosi aici, din moment ce avem nevoie pentru a cere
user cel puțin o dată pentru modul în care bani se datorează.
>> Deci, odată ce avem acest număr de dolari, vom vedea aici avem de centi int
este egal cu runda de dolari ori CENTS_PER_DOLLAR.
In partea de sus, vedem că CENTS_PER_DOLLAR este
sensibil definit ca 100.
Deci, ce este această linie face?
>> Ei bine, dacă vă aduceți aminte, virgulă mobilă Valorile nu sunt destul de precise.
Spre deosebire de numere întregi, nu putem reprezenta valori în virgulă mobilă exact.
Există întotdeauna un fel de imprecizie.
Așa că am prefera să lucreze cu doar numere întregi în toată această problemă.
Și aici, în cazul în care utilizatorul a introdus 3.42 dolari, suntem de conversie care la 342 de cenți și
rotunjire, doar scăpa de orice din care imprecizie.
>> Deci, odată ce avem numărul de cenți în un întreg, putem continua cu
restul programului.
Vedem aici că suntem declararea întreg monede care suntem doar de a utiliza
pentru a urmări din total număr de monede.
Aici, avem prima noastră buclă în timp.
>> Ne vedem în timp ce de cenți este mai mare sau egal la trimestru, care de mai sus, este hash
definită ca 25, în timp ce este adevărat, noi Vreau să incrementa numărul nostru de monede
și cenți decrementare pe trimestru.
Amintiți-vă că această sintaxă este echivalent cu cenți
este egal cenți minus trimestru.
Acestea sunt la fel.
>> Deci, ce este această buclă în timp ce faci?
Ideea aici este că, dacă știu 3.42 dolari se datorează, pot continua acordarea
trimestre până când nu pot da sferturi orice mai mult.
Eu nu pot da sferturi orice mai mult, o dată am dat 3.25 dolari.
>> Deci, odată ce acesta este cazul, vom izbucni din această buclă în timp.
Cenți va fi lăsat la 17 de cenți.
Și vom continua în jos la altul în timp ce buclă în care se spune, în timp ce de cenți
este mai mare sau egal cu ban.
>> Și acum facem același exactă lucru am făcut în cazul trimestru,
cu excepția Dimes.
Deci, cu 0.17 dolari, vom bucla până când putem nu mai da nici un ban, care este
exact o dată.
Și apoi vom fi lasat cu 7 cenți.
>> Apoi vom continua pe monezi, care va bucla până când nu putem da
orice mai multe monezi, care va lasă-ne cu doi cenți.
Și apoi, în jos în partea de jos, avem mărunțiș, care va buclă și va
în cele din urmă ne lasă cu de zero centi.
Apoi, la sfârșitul anului, avem nevoie doar pentru a imprima numărul nostru de monede.
>> Deci, acest program este perfect corect.
Dar putem face de fapt, un pic mai bine.
Acum, dacă spun că-ți datorez 10.000 de dolari, tu nu ar trebui să meargă aici e una
trimestru, două trimestre, trei sferturi.
Ar trebui să știi imediat că Îți datorez 40.000 de sferturi.
>> Acum, să ne uităm la un program care se ocupă de ea un pic mai bine.
În această versiune de lucruri, avem încă nevoie de pentru a cere utilizatorului pentru suma de
schimba pe care le doresc, în exact la fel am făcut înainte.
Trebuie să-l rotunjească exact modul în care am făcut-o înainte.
Și încă mai avem de monede noastre întreg declarat exact la fel ca înainte.
>> Deci, aici e în cazul în care lucrurile obține un pic diferit.
Facem monede, plus egali cenți împărțite la sfert
unde trimestru este de 25.
Ceea ce acest lucru este să spun este, să ia cât mai multe sferturi ca poate merge în cenți și adăuga
care la monede.
>> Deci, dacă cenți este 142, 142 împărțit de 25 ne dă 5.
Amintiți-vă că diviziunea întreg trunchiază automat.
Deci, ce facem monede plus este egal cu 5.
>> Imediat după aceasta, ne spune centi centi egale trimestru mod.
Amintiți-vă că operatorul mod dă ne restul după divizare.
Deci, 142 trimestru mod, care va da este 142 minus 125, care este de 17.
Asta e restul după face 142 împărțit la 25.
>> Deci, acum cenți este egal cu 17.
Și noi facem același exactă lucru pentru Dimes.
17 împărțit la 10 ne va da 1.
Și vom adăuga că, pentru monede.
Și apoi ne-am actualizat de centi la fi 17 mod 10, care este 7.
>> Și apoi la fel de monezi.
7 împărțit la 5 este 1.
Adaugă că, pentru monede.
Și apoi 7 mod 5 este 2.
Și asta e de centi noastre.
>> Și apoi, pentru mărunțiș, nu există nici o reală punct în divizare sau modding, deoarece,
dacă avem 0.2 dolari la stânga peste, putem trebuie doar să adăugați imediat că la
numărul nostru de monede.
Și, în sfârșit, avem nevoie pentru a imprima nostru numărul de monede și, opțional,
întoarce 0 la sfârșitul programului nostru pentru a semnifica totul a mers.
>> Numele meu este Rob.
Și acest lucru a fost lacom.
>> [Redare a muzicii]