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 >> ROB BOWDEN: Прывітанне. 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 І мы ўсталёўваем даляраў роўная GetFloat. 10 00:00:26,650 --> 00:00:27,890 Што такое GetFloat? 11 00:00:27,890 --> 00:00:30,700 Гэта адна з функцый у Бібліятэка CS50, які атрымлівае 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 CS50.h на самым версе. 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 роўная круглы даляраў разы CENTS_PER_DOLLAR. 24 00:01:08,630 --> 00:01:10,740 У верхняй частцы, мы бачым, што CENTS_PER_DOLLAR з'яўляецца 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 Цяпер, калі я кажу, што я павінен табе $ 10000, вам не трэба ісці вось адзін 65 00:03:52,660 --> 00:03:55,310 квартал, два квартала, тры чвэрці. 66 00:03:55,310 --> 00:03:59,450 Вы павінны неадкладна ведаць, што Я павінен вам 40000 кварталы. 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