1 00:00:00,000 --> 00:00:00,994 2 00:00:00,994 --> 00:00:11,431 >> [Daqq tal-mużika] 3 00:00:11,431 --> 00:00:12,500 >> ROB BOWDEN: Hi. 4 00:00:12,500 --> 00:00:13,230 Jien Rob. 5 00:00:13,230 --> 00:00:15,080 U ejja nikseb greedy. 6 00:00:15,080 --> 00:00:18,560 >> Allura l-ewwel ħaġa li rridu nagħmlu qed issaqsi lill-utent eżattament kif 7 00:00:18,560 --> 00:00:20,500 huwa dovut ħafna tibdil. 8 00:00:20,500 --> 00:00:23,310 Allura hawn, naraw li għandna do / filwaqt loop. 9 00:00:23,310 --> 00:00:26,650 U aħna qed jistabbilixxu dollari daqs GetFloat. 10 00:00:26,650 --> 00:00:27,890 X'inhu GetFloat? 11 00:00:27,890 --> 00:00:30,700 Huwa wieħed mill-funzjonijiet fil- CS50 librerija li gets a 12 00:00:30,700 --> 00:00:32,450 float mill-utent. 13 00:00:32,450 --> 00:00:35,200 Ftakar, sabiex jużaw dik il-funzjoni, għandna bżonn biex issir hash jinkludu 14 00:00:35,200 --> 00:00:37,790 CS50.h fil-quċċata. 15 00:00:37,790 --> 00:00:42,310 >> Allura ladarba għandna dan il-valur mill- utent, jeħtieġ ukoll li jiġi żgurat li 16 00:00:42,310 --> 00:00:43,560 huwa valur validu. 17 00:00:43,560 --> 00:00:46,050 Aħna ma tistax nirrispettaw flus negattiva. 18 00:00:46,050 --> 00:00:48,460 U għalhekk dak l-iskop ta 'dan do / filwaqt loop. 19 00:00:48,460 --> 00:00:52,420 Aħna tkompli looping filwaqt dollari tkun inqas minn żero. 20 00:00:52,420 --> 00:00:56,960 U do / filwaqt loop huwa l-ħaġa dritt tuża hawnhekk, peress li għandna bżonn li titlob lill- 21 00:00:56,960 --> 00:01:00,290 utent mill-inqas darba għal kemm huwa dovut ħafna flus. 22 00:01:00,290 --> 00:01:05,040 >> Allura ladarba għandna dak in-numru ta 'dollari, naraw hawnhekk għandna ċenteżmi int 23 00:01:05,040 --> 00:01:08,630 ugwali round dollari ħinijiet CENTS_PER_DOLLAR. 24 00:01:08,630 --> 00:01:10,740 Fil-quċċata, naraw li CENTS_PER_DOLLAR huwa 25 00:01:10,740 --> 00:01:13,750 sensibbilment definit bħala 100. 26 00:01:13,750 --> 00:01:16,270 Allura dak li huwa din il-linja tagħmel? 27 00:01:16,270 --> 00:01:21,200 >> Ukoll, jekk tiftakar, b'punt li jvarja Valuri huma pjuttost mhux preċiżi. 28 00:01:21,200 --> 00:01:25,470 B'differenza interi, aħna ma tistax tirrappreżenta Valuri b'punt li jvarja eżattament. 29 00:01:25,470 --> 00:01:28,660 Dejjem hemm xi tip ta 'impreċiżjoni. 30 00:01:28,660 --> 00:01:32,840 Allura aħna jippreferu li jaħdmu ma biss interi matul din il-problema. 31 00:01:32,840 --> 00:01:42,690 U hawn, jekk l-utent daħal $ 3.42, aħna qed konverżjoni li biex 342 ċenteżmi u 32 00:01:42,690 --> 00:01:45,900 arrotondament, biss jeħles xi li impreċiżjoni. 33 00:01:45,900 --> 00:01:49,940 >> Allura ladarba aħna għandna l-għadd ta 'ċenteżmi integer, nistgħu tkompli bl- 34 00:01:49,940 --> 00:01:51,730 bqija tal-programm. 35 00:01:51,730 --> 00:01:55,910 Naraw hawnhekk li aħna qed tiddikjara integer muniti li aħna qed biss għall-użu 36 00:01:55,910 --> 00:01:59,560 li jżommu rekord tat-total numru ta 'muniti. 37 00:01:59,560 --> 00:02:01,590 Hawnhekk, aħna għandna l-ewwel loop filwaqt tagħna. 38 00:02:01,590 --> 00:02:06,780 >> Naraw filwaqt ċenteżmi hija akbar minn jew ugwali għal kwart, li hawn fuq, huwa hash 39 00:02:06,780 --> 00:02:14,680 definita bħala 25, filwaqt li huwa veru, aħna jridu inkrement numru tagħna ta 'muniti 40 00:02:14,680 --> 00:02:18,350 u ċenteżmi decrement minn kwart. 41 00:02:18,350 --> 00:02:22,810 Ftakar li dan sintassi huwa ekwivalenti għal ċenteżmi 42 00:02:22,810 --> 00:02:26,020 ugwali ċenteżmi nieqes kwart. 43 00:02:26,020 --> 00:02:28,170 Dawk huma l-istess. 44 00:02:28,170 --> 00:02:31,850 >> Allura dak li huwa dan loop filwaqt li tagħmel? 45 00:02:31,850 --> 00:02:39,260 L-idea hija li, jekk naf $ 3.42 huwa dovut, I tista 'tkompli tagħti 46 00:02:39,260 --> 00:02:42,670 kwarti sal I ma jistax jagħti kwarti aktar. 47 00:02:42,670 --> 00:02:47,720 I ma jistax jagħti kwarti kwalunkwe aktar, ladarba stajt mogħtija $ 3.25. 48 00:02:47,720 --> 00:02:53,300 >> Mela allura, ladarba dan huwa l-każ, aħna ser break out ta 'dan loop waqt. 49 00:02:53,300 --> 00:02:57,650 Ċenteżmi se titħalla għal 17 ċenteżmu. 50 00:02:57,650 --> 00:03:01,910 U aħna ser tkompli l isfel għall-jmiss filwaqt li loop fejn nistgħu ngħidu, filwaqt ċenteżmi 51 00:03:01,910 --> 00:03:04,270 hija akbar minn jew ugwali għal dime. 52 00:03:04,270 --> 00:03:07,420 >> U issa aħna qed tagħmel l-istess eżatt ħaġa li għamilna fil-każ trimestru, 53 00:03:07,420 --> 00:03:09,010 ħlief bil dimes. 54 00:03:09,010 --> 00:03:15,050 Allura ma $ 0.17, aħna ser loop sakemm nistgħu m'għadhomx jagħtu dime, li hija 55 00:03:15,050 --> 00:03:16,680 eżattament darba. 56 00:03:16,680 --> 00:03:20,470 U allura aħna ser jitħalla bi 7 ċenteżmi. 57 00:03:20,470 --> 00:03:24,730 >> Imbagħad aħna ser tkompli fuq nickels, li se loop sakemm aħna ma jistgħux jagħtu 58 00:03:24,730 --> 00:03:29,420 xi nickels aktar, li leave us ma 'żewġ ċenteżmi. 59 00:03:29,420 --> 00:03:34,400 U mbagħad, stabbiliti fil-qiegħ, għandna pennies, li se loop u se 60 00:03:34,400 --> 00:03:37,140 finalment leave us b'żero ċenteżmu. 61 00:03:37,140 --> 00:03:41,670 Imbagħad fl-aħħar, aħna biss jeħtieġ li jistampa numru tagħna ta 'muniti. 62 00:03:41,670 --> 00:03:44,980 >> Għalhekk dan il-programm huwa perfettament korretta. 63 00:03:44,980 --> 00:03:47,310 Iżda aħna jistgħu attwalment jagħmlu daqsxejn aħjar. 64 00:03:47,310 --> 00:03:52,660 Issa jekk jien ngħid li I nirrispettaw inti $ 10,000, inti m'għandekx bżonn li jmorru hawn wieħed 65 00:03:52,660 --> 00:03:55,310 kwart, żewġ trimestri, tliet kwarti. 66 00:03:55,310 --> 00:03:59,450 Għandek tkun taf immedjatament li I nirrispettaw inti 40,000 kwarti. 67 00:03:59,450 --> 00:04:04,070 >> Issa ejja nħarsu lejn programm li mankijiet hija daqsxejn aħjar. 68 00:04:04,070 --> 00:04:07,190 F'dan il-verżjoni ta 'affarijiet, għad għandna bżonn li titlob lill-utent għall-ammont ta ' 69 00:04:07,190 --> 00:04:10,930 bidla li jixtiequ eżattament bl-istess mod għamilna qabel. 70 00:04:10,930 --> 00:04:14,110 Għandna bżonn li jarrotondaw eżattament il-mod għamilna qabel. 71 00:04:14,110 --> 00:04:17,910 U aħna xorta jkollhom muniti tagħna integer dikjarati eżattament l-istess bħal qabel. 72 00:04:17,910 --> 00:04:21,399 >> Allura hawnhekk fejn l-affarijiet jiksbu daqsxejn differenti. 73 00:04:21,399 --> 00:04:24,640 Aħna qed tagħmel l-muniti flimkien ugwali ċenteżmi diviż bil kwart 74 00:04:24,640 --> 00:04:27,140 fejn kwart huwa 25. 75 00:04:27,140 --> 00:04:31,790 X'inhu dan huwa qal jiġifieri, tieħu bħala ħafna kwarti kif tista 'tmur fil ċenteżmi u żid 76 00:04:31,790 --> 00:04:33,030 li biex muniti. 77 00:04:33,030 --> 00:04:40,100 >> Mela jekk ċenteżmi huwa 142, 142 maqsuma b'25 tagħtina 5. 78 00:04:40,100 --> 00:04:43,950 Ftakar li diviżjoni integer awtomatikament taqta '. 79 00:04:43,950 --> 00:04:46,870 Allura aħna qed tagħmel muniti plus ugwali 5. 80 00:04:46,870 --> 00:04:51,850 >> Minnufih wara dan, aħna qed tgħid ċenteżmu ċenteżmi ugwali kwart mod. 81 00:04:51,850 --> 00:04:57,150 Ftakar li l-operatur mod jagħti us-kumplament wara diviżjoni. 82 00:04:57,150 --> 00:05:05,840 Allura 142 kwart mod, li se jagħti huwa 142 minus 125, li huwa 17. 83 00:05:05,840 --> 00:05:10,470 Dik hija l-bqija wara tagħmel 142 diviżi b'25. 84 00:05:10,470 --> 00:05:13,040 >> Allura issa ċenteżmi hija ugwali għal 17. 85 00:05:13,040 --> 00:05:16,080 U nagħmlu l-istess eżatt ħaġa għall dimes. 86 00:05:16,080 --> 00:05:18,620 17 maqsum f'10 se tagħtina 1. 87 00:05:18,620 --> 00:05:20,150 U aħna żid li biex muniti. 88 00:05:20,150 --> 00:05:25,380 U allura aħna aġġornament ċenteżmu għal jkun 17 mod 10, li huwa 7. 89 00:05:25,380 --> 00:05:27,200 >> U allura l-istess għall nickels. 90 00:05:27,200 --> 00:05:29,180 7 diviż bil 5 huwa 1. 91 00:05:29,180 --> 00:05:30,880 Żid li l-muniti. 92 00:05:30,880 --> 00:05:34,600 U mbagħad 7 mod 5 huwa 2. 93 00:05:34,600 --> 00:05:35,910 U li ċenteżmi tagħna. 94 00:05:35,910 --> 00:05:39,065 >> U mbagħad, għall pennies, hemm ebda reali punt fil diviżorja jew modding, peress li, 95 00:05:39,065 --> 00:05:42,170 jekk ikollna $ 0.2 fadal, nistgħu biss immedjatament jżidu li biex 96 00:05:42,170 --> 00:05:43,590 numru tagħna ta 'muniti. 97 00:05:43,590 --> 00:05:48,210 U fl-aħħarnett, għandna bżonn li jistampa tagħna numru ta 'muniti u, b'għażla, 98 00:05:48,210 --> 00:05:52,100 ritorn 0 fl-aħħar tal-programm tagħna li turi kollox maħduma. 99 00:05:52,100 --> 00:05:53,120 >> Jisimni Rob. 100 00:05:53,120 --> 00:05:54,020 U dan kien greedy. 101 00:05:54,020 --> 00:05:57,620 >> [Daqq tal-mużika] 102 00:05:57,620 --> 00:06:01,515