[Daqq tal-mużika] ROB BOWDEN: Hi. Jien Rob. U ejja nikseb greedy. Allura l-ewwel ħaġa li rridu nagħmlu qed issaqsi lill-utent eżattament kif huwa dovut ħafna tibdil. Allura hawn, naraw li għandna do / filwaqt loop. U aħna qed jistabbilixxu dollari daqs GetFloat. X'inhu GetFloat? Huwa wieħed mill-funzjonijiet fil- CS50 librerija li gets a float mill-utent. Ftakar, sabiex jużaw dik il-funzjoni, għandna bżonn biex issir hash jinkludu CS50.h fil-quċċata. Allura ladarba għandna dan il-valur mill- utent, jeħtieġ ukoll li jiġi żgurat li huwa valur validu. Aħna ma tistax nirrispettaw flus negattiva. U għalhekk dak l-iskop ta 'dan do / filwaqt loop. Aħna tkompli looping filwaqt dollari tkun inqas minn żero. U do / filwaqt loop huwa l-ħaġa dritt tuża hawnhekk, peress li għandna bżonn li titlob lill- utent mill-inqas darba għal kemm huwa dovut ħafna flus. Allura ladarba għandna dak in-numru ta 'dollari, naraw hawnhekk għandna ċenteżmi int ugwali round dollari ħinijiet CENTS_PER_DOLLAR. Fil-quċċata, naraw li CENTS_PER_DOLLAR huwa sensibbilment definit bħala 100. Allura dak li huwa din il-linja tagħmel? Ukoll, jekk tiftakar, b'punt li jvarja Valuri huma pjuttost mhux preċiżi. B'differenza interi, aħna ma tistax tirrappreżenta Valuri b'punt li jvarja eżattament. Dejjem hemm xi tip ta 'impreċiżjoni. Allura aħna jippreferu li jaħdmu ma biss interi matul din il-problema. U hawn, jekk l-utent daħal $ 3.42, aħna qed konverżjoni li biex 342 ċenteżmi u arrotondament, biss jeħles xi li impreċiżjoni. Allura ladarba aħna għandna l-għadd ta 'ċenteżmi integer, nistgħu tkompli bl- bqija tal-programm. Naraw hawnhekk li aħna qed tiddikjara integer muniti li aħna qed biss għall-użu li jżommu rekord tat-total numru ta 'muniti. Hawnhekk, aħna għandna l-ewwel loop filwaqt tagħna. Naraw filwaqt ċenteżmi hija akbar minn jew ugwali għal kwart, li hawn fuq, huwa hash definita bħala 25, filwaqt li huwa veru, aħna jridu inkrement numru tagħna ta 'muniti u ċenteżmi decrement minn kwart. Ftakar li dan sintassi huwa ekwivalenti għal ċenteżmi ugwali ċenteżmi nieqes kwart. Dawk huma l-istess. Allura dak li huwa dan loop filwaqt li tagħmel? L-idea hija li, jekk naf $ 3.42 huwa dovut, I tista 'tkompli tagħti kwarti sal I ma jistax jagħti kwarti aktar. I ma jistax jagħti kwarti kwalunkwe aktar, ladarba stajt mogħtija $ 3.25. Mela allura, ladarba dan huwa l-każ, aħna ser break out ta 'dan loop waqt. Ċenteżmi se titħalla għal 17 ċenteżmu. U aħna ser tkompli l isfel għall-jmiss filwaqt li loop fejn nistgħu ngħidu, filwaqt ċenteżmi hija akbar minn jew ugwali għal dime. U issa aħna qed tagħmel l-istess eżatt ħaġa li għamilna fil-każ trimestru, ħlief bil dimes. Allura ma $ 0.17, aħna ser loop sakemm nistgħu m'għadhomx jagħtu dime, li hija eżattament darba. U allura aħna ser jitħalla bi 7 ċenteżmi. Imbagħad aħna ser tkompli fuq nickels, li se loop sakemm aħna ma jistgħux jagħtu xi nickels aktar, li leave us ma 'żewġ ċenteżmi. U mbagħad, stabbiliti fil-qiegħ, għandna pennies, li se loop u se finalment leave us b'żero ċenteżmu. Imbagħad fl-aħħar, aħna biss jeħtieġ li jistampa numru tagħna ta 'muniti. Għalhekk dan il-programm huwa perfettament korretta. Iżda aħna jistgħu attwalment jagħmlu daqsxejn aħjar. Issa jekk jien ngħid li I nirrispettaw inti $ 10,000, inti m'għandekx bżonn li jmorru hawn wieħed kwart, żewġ trimestri, tliet kwarti. Għandek tkun taf immedjatament li I nirrispettaw inti 40,000 kwarti. Issa ejja nħarsu lejn programm li mankijiet hija daqsxejn aħjar. F'dan il-verżjoni ta 'affarijiet, għad għandna bżonn li titlob lill-utent għall-ammont ta ' bidla li jixtiequ eżattament bl-istess mod għamilna qabel. Għandna bżonn li jarrotondaw eżattament il-mod għamilna qabel. U aħna xorta jkollhom muniti tagħna integer dikjarati eżattament l-istess bħal qabel. Allura hawnhekk fejn l-affarijiet jiksbu daqsxejn differenti. Aħna qed tagħmel l-muniti flimkien ugwali ċenteżmi diviż bil kwart fejn kwart huwa 25. X'inhu dan huwa qal jiġifieri, tieħu bħala ħafna kwarti kif tista 'tmur fil ċenteżmi u żid li biex muniti. Mela jekk ċenteżmi huwa 142, 142 maqsuma b'25 tagħtina 5. Ftakar li diviżjoni integer awtomatikament taqta '. Allura aħna qed tagħmel muniti plus ugwali 5. Minnufih wara dan, aħna qed tgħid ċenteżmu ċenteżmi ugwali kwart mod. Ftakar li l-operatur mod jagħti us-kumplament wara diviżjoni. Allura 142 kwart mod, li se jagħti huwa 142 minus 125, li huwa 17. Dik hija l-bqija wara tagħmel 142 diviżi b'25. Allura issa ċenteżmi hija ugwali għal 17. U nagħmlu l-istess eżatt ħaġa għall dimes. 17 maqsum f'10 se tagħtina 1. U aħna żid li biex muniti. U allura aħna aġġornament ċenteżmu għal jkun 17 mod 10, li huwa 7. U allura l-istess għall nickels. 7 diviż bil 5 huwa 1. Żid li l-muniti. U mbagħad 7 mod 5 huwa 2. U li ċenteżmi tagħna. U mbagħad, għall pennies, hemm ebda reali punt fil diviżorja jew modding, peress li, jekk ikollna $ 0.2 fadal, nistgħu biss immedjatament jżidu li biex numru tagħna ta 'muniti. U fl-aħħarnett, għandna bżonn li jistampa tagħna numru ta 'muniti u, b'għażla, ritorn 0 fl-aħħar tal-programm tagħna li turi kollox maħduma. Jisimni Rob. U dan kien greedy. [Daqq tal-mużika]