1 00:00:00,000 --> 00:00:00,994 2 00:00:00,994 --> 00:00:11,431 >> [Музика свира] 3 00:00:11,431 --> 00:00:12,500 >> РОБ БОВДЕН: Здраво. 4 00:00:12,500 --> 00:00:13,230 Ја сам Роб. 5 00:00:13,230 --> 00:00:15,080 И хајде да се похлепни. 6 00:00:15,080 --> 00:00:18,560 >> Дакле, прва ствар коју треба да урадите се пита корисника тачно како 7 00:00:18,560 --> 00:00:20,500 много промена се дугује. 8 00:00:20,500 --> 00:00:23,310 Дакле, овде видимо да имамо До / док петља. 9 00:00:23,310 --> 00:00:26,650 И ми смо постављање долара једнак ГетФлоат. 10 00:00:26,650 --> 00:00:27,890 Шта је ГетФлоат? 11 00:00:27,890 --> 00:00:30,700 То је једна од функција у ЦС50 библиотека која добија 12 00:00:30,700 --> 00:00:32,450 плутају од корисника. 13 00:00:32,450 --> 00:00:35,200 Запамтите, да би користили ту функцију, морамо да размотре укључују 14 00:00:35,200 --> 00:00:37,790 ЦС50.х на врху. 15 00:00:37,790 --> 00:00:42,310 >> Дакле, када имамо ту вредност од корисник, ми такође треба да буду сигурни да 16 00:00:42,310 --> 00:00:43,560 то је важећа вредност. 17 00:00:43,560 --> 00:00:46,050 Ми не можемо да дугујемо негативан новац. 18 00:00:46,050 --> 00:00:48,460 И тако да је сврха До овог / док петља. 19 00:00:48,460 --> 00:00:52,420 Настављамо лоопинг док долара је мање од нуле. 20 00:00:52,420 --> 00:00:56,960 И до / вхиле петље је права ствар користити овде, јер морамо да питате 21 00:00:56,960 --> 00:01:00,290 корисник бар једном за колико много новца се дугује. 22 00:01:00,290 --> 00:01:05,040 >> Дакле, када имамо тај број долара, видимо овде имамо инт центи 23 00:01:05,040 --> 00:01:08,630 једнако круг долара пута ЦЕНТС_ПЕР_ДОЛЛАР. 24 00:01:08,630 --> 00:01:10,740 На врху, видимо да ЦЕНТС_ПЕР_ДОЛЛАР је 25 00:01:10,740 --> 00:01:13,750 разумно дефинисана као 100. 26 00:01:13,750 --> 00:01:16,270 Дакле, шта је то линија ради? 27 00:01:16,270 --> 00:01:21,200 >> Па, ако се сећате, Флоатинг Поинт вредности нису сасвим прецизни. 28 00:01:21,200 --> 00:01:25,470 За разлику од целих бројева, што не може да заступа Вредности флоатинг поинт тачно. 29 00:01:25,470 --> 00:01:28,660 Увек постоји нека врста непрецизности. 30 00:01:28,660 --> 00:01:32,840 Дакле, ми више волимо да радимо са целим бројевима само кроз овај проблем. 31 00:01:32,840 --> 00:01:42,690 И овде, ако корисник унео $ 3.42, смо претварање да на 342 центи и 32 00:01:42,690 --> 00:01:45,900 заокруживање, само отарасити било тог непрецизности. 33 00:01:45,900 --> 00:01:49,940 >> Дакле, када имамо број центи у цео број, можемо да наставимо са 34 00:01:49,940 --> 00:01:51,730 Остатак програма. 35 00:01:51,730 --> 00:01:55,910 Ми овде видимо да смо цео изјављујући ковани новац који ми смо само за коришћење 36 00:01:55,910 --> 00:01:59,560 да пратите од укупног број кованица. 37 00:01:59,560 --> 00:02:01,590 Ево, ми имамо наш први вхиле. 38 00:02:01,590 --> 00:02:06,780 >> Ми видимо док центи је већа или једнака кварталу, што горе, је тараба 39 00:02:06,780 --> 00:02:14,680 дефинисана као 25, док је то истина, ми Желим да повећате наш број кованица 40 00:02:14,680 --> 00:02:18,350 и Смањи центи по кварталу. 41 00:02:18,350 --> 00:02:22,810 Запамтите да је ова синтакса је еквивалентна центи 42 00:02:22,810 --> 00:02:26,020 једнако центи минус четвртину. 43 00:02:26,020 --> 00:02:28,170 Они су исти. 44 00:02:28,170 --> 00:02:31,850 >> Дакле, шта је то док петља радите? 45 00:02:31,850 --> 00:02:39,260 Идеја је да, ако ја знам $ 3.42 се дугује, ја могу наставити давање 46 00:02:39,260 --> 00:02:42,670 четвртине док ја не могу да дам четвртине више. 47 00:02:42,670 --> 00:02:47,720 Ја не могу да дам четвртине било више, Једном сам дао $ 3.25. 48 00:02:47,720 --> 00:02:53,300 >> Па онда, када је то случај, ми ћемо пробије из ове вхиле. 49 00:02:53,300 --> 00:02:57,650 Динара ће остати на 17 центи. 50 00:02:57,650 --> 00:03:01,910 И ми ћемо наставити до следећег док петља где кажемо, док центи 51 00:03:01,910 --> 00:03:04,270 је већи од или једнак диме. 52 00:03:04,270 --> 00:03:07,420 >> И сада радимо исти тачан ствар коју смо урадили у четвртфиналу случају, 53 00:03:07,420 --> 00:03:09,010 осим са ситниш. 54 00:03:09,010 --> 00:03:15,050 Дакле, са $ 0.17, ми ћемо петља док можемо више не дају ни динара, што је 55 00:03:15,050 --> 00:03:16,680 тачно једном. 56 00:03:16,680 --> 00:03:20,470 А онда ћемо остати са 7 центи. 57 00:03:20,470 --> 00:03:24,730 >> Онда ћемо наставити на Ницкелс, који ће петља док ми не може дати 58 00:03:24,730 --> 00:03:29,420 било више центи, што ће оставите нас са два цента. 59 00:03:29,420 --> 00:03:34,400 А онда, доле на дну, имамо новчића, који ће петља и воља 60 00:03:34,400 --> 00:03:37,140 коначно нас оставити са нула центи. 61 00:03:37,140 --> 00:03:41,670 Онда на крају, ми само треба да принт наш број кованица. 62 00:03:41,670 --> 00:03:44,980 >> Дакле, овај програм је савршено тачно. 63 00:03:44,980 --> 00:03:47,310 Али, можемо да урадимо нешто боље. 64 00:03:47,310 --> 00:03:52,660 Сада, ако ја кажем да сам ти дугујем $ 10,000, не би требало да иде ево један 65 00:03:52,660 --> 00:03:55,310 квартал, два квартала, три четвртине. 66 00:03:55,310 --> 00:03:59,450 Требало би одмах да знате да Дугујем ти 40.000 четвртине. 67 00:03:59,450 --> 00:04:04,070 >> Сада хајде да погледамо програм који ручке га мало боље. 68 00:04:04,070 --> 00:04:07,190 У овој верзији ствари, ми и даље треба да пита корисника за износ 69 00:04:07,190 --> 00:04:10,930 промените да они желе у тачно исти начин на који смо раније радили. 70 00:04:10,930 --> 00:04:14,110 Морамо да га заокружити тачно начин на који смо раније радили. 71 00:04:14,110 --> 00:04:17,910 А ми још увек имамо новца цео број прогласио исто као и пре. 72 00:04:17,910 --> 00:04:21,399 >> Дакле, овде је место где се ствари добити мало другачије. 73 00:04:21,399 --> 00:04:24,640 Радимо новца плус екуалс центи подељене по кварталима 74 00:04:24,640 --> 00:04:27,140 где је четвртина 25. 75 00:04:27,140 --> 00:04:31,790 Шта ово говори јест, узети као многи четвртине, као да иду у центи и додати 76 00:04:31,790 --> 00:04:33,030 то кованица. 77 00:04:33,030 --> 00:04:40,100 >> Дакле, ако је 142 центи, 142 подељено за 25 нам даје 5. 78 00:04:40,100 --> 00:04:43,950 Запамтите да цео поделу Скраћује се аутоматски. 79 00:04:43,950 --> 00:04:46,870 Дакле, ми радимо новца, плус износи 5. 80 00:04:46,870 --> 00:04:51,850 >> Одмах после овога, говоримо центи једнаке центи мод четвртфинала. 81 00:04:51,850 --> 00:04:57,150 Запамтите да мод оператер даје нама остатак након поделе. 82 00:04:57,150 --> 00:05:05,840 Дакле, 142 мод квартал, који ће дати је 142 минус 125, што је за 17. 83 00:05:05,840 --> 00:05:10,470 То је остатак после ради 142 подељену 25. 84 00:05:10,470 --> 00:05:13,040 >> Дакле, сада центи једнака 17. 85 00:05:13,040 --> 00:05:16,080 И ми радимо исто тачан ствар за ситниш. 86 00:05:16,080 --> 00:05:18,620 17 подељено са 10 ће нам дати 1. 87 00:05:18,620 --> 00:05:20,150 И ми додати то да кованица. 88 00:05:20,150 --> 00:05:25,380 И онда смо ажурирали центи на бити 17 мод 10, што је 7. 89 00:05:25,380 --> 00:05:27,200 >> А онда исто за новчиће. 90 00:05:27,200 --> 00:05:29,180 7 подељен 5. је 1. 91 00:05:29,180 --> 00:05:30,880 Додај то кованица. 92 00:05:30,880 --> 00:05:34,600 А онда 7 мод 5 је 2. 93 00:05:34,600 --> 00:05:35,910 И то је наша центи. 94 00:05:35,910 --> 00:05:39,065 >> А онда, за пенија, не постоји прави тачка у расподели или Моддинг, јер, 95 00:05:39,065 --> 00:05:42,170 ако имамо $ 0.2 преостао, можемо Само одмах додати да се 96 00:05:42,170 --> 00:05:43,590 наш број кованица. 97 00:05:43,590 --> 00:05:48,210 И на крају, морамо да одштампате наш број новца и, опционо, 98 00:05:48,210 --> 00:05:52,100 ретурн 0 на крају нашег програма да означи све радили. 99 00:05:52,100 --> 00:05:53,120 >> Моје име је Роб. 100 00:05:53,120 --> 00:05:54,020 И то је био похлепан. 101 00:05:54,020 --> 00:05:57,620 >> [Музика свира] 102 00:05:57,620 --> 00:06:01,515