1 00:00:00,000 --> 00:00:00,994 2 00:00:00,994 --> 00:00:11,431 >> [Mūzikas atskaņošanai] 3 00:00:11,431 --> 00:00:12,500 >> ROB BOWDEN: Hi. 4 00:00:12,500 --> 00:00:13,230 Es esmu Rob. 5 00:00:13,230 --> 00:00:15,080 Un pieņemsim get mantkārīgs. 6 00:00:15,080 --> 00:00:18,560 >> Tātad pirmā lieta, kas mums jādara ir pieprasīt no lietotāja, kā tieši 7 00:00:18,560 --> 00:00:20,500 lielas izmaiņas ir parādā. 8 00:00:20,500 --> 00:00:23,310 Tātad šeit mēs redzam, mums ir do / kamēr cilpa. 9 00:00:23,310 --> 00:00:26,650 Un mēs esam nosakot dolāru vienāds ar GetFloat. 10 00:00:26,650 --> 00:00:27,890 Kas ir GetFloat? 11 00:00:27,890 --> 00:00:30,700 Tā ir viena no funkcijām CS50 bibliotēka, kas izpaužas 12 00:00:30,700 --> 00:00:32,450 float no lietotāja. 13 00:00:32,450 --> 00:00:35,200 Atcerieties, lai izmantotu šo funkciju, mums ir nepieciešams hash iekļaut 14 00:00:35,200 --> 00:00:37,790 CS50.h augšpusē. 15 00:00:37,790 --> 00:00:42,310 >> Tātad, kad mēs esam šo vērtību no lietotājs, mums ir nepieciešama arī, lai pārliecinātos, ka 16 00:00:42,310 --> 00:00:43,560 tā ir derīga vērtība. 17 00:00:43,560 --> 00:00:46,050 Mēs nevaram parādā negatīvu naudu. 18 00:00:46,050 --> 00:00:48,460 Un tā tas ir mērķis Šī do / kamēr cilpa. 19 00:00:48,460 --> 00:00:52,420 Mēs turpinām looping kamēr dolāru ir mazāks par nulli. 20 00:00:52,420 --> 00:00:56,960 Un do / kamēr cilpa ir pareizi izmantot šeit, jo mums jājautā 21 00:00:56,960 --> 00:01:00,290 lietotājs vismaz vienu reizi, kā daudz naudas ir parādā. 22 00:01:00,290 --> 00:01:05,040 >> Tātad, kad mēs esam, ka dolāru skaitu, mēs redzam šeit mums ir int centi 23 00:01:05,040 --> 00:01:08,630 vienāds kārta dolāru reizes CENTS_PER_DOLLAR. 24 00:01:08,630 --> 00:01:10,740 Augšā, mēs redzam, ka CENTS_PER_DOLLAR ir 25 00:01:10,740 --> 00:01:13,750 saprātīgi definēta kā 100. 26 00:01:13,750 --> 00:01:16,270 Tātad, kas ir šī pozīcija dara? 27 00:01:16,270 --> 00:01:21,200 >> Nu, ja jūs atceraties, peldošā punkta vērtības nav gluži precīzs. 28 00:01:21,200 --> 00:01:25,470 Atšķirībā no veseliem skaitļiem, mēs nevaram pārstāvēt peldošā punkta vērtības precīzi. 29 00:01:25,470 --> 00:01:28,660 Tur vienmēr ir dažas veida neprecizitāte. 30 00:01:28,660 --> 00:01:32,840 Tāpēc mēs gribētu, lai strādātu tikai ar veseliem skaitļiem visu šo problēmu. 31 00:01:32,840 --> 00:01:42,690 Un šeit, ja lietotājs ievada $ 3,42, mēs esam konvertējot ka 342 centiem un 32 00:01:42,690 --> 00:01:45,900 noapaļošanu, vienkārši atbrīvoties no jebkurai šīs neprecizitātes. 33 00:01:45,900 --> 00:01:49,940 >> Tātad, kad mums ir vairāki eurocentiem ir vesels skaitlis, varam turpināt 34 00:01:49,940 --> 00:01:51,730 pārējās programmas. 35 00:01:51,730 --> 00:01:55,910 Mēs redzam šeit, ka mēs esam paziņojot skaitlim monētas, kas mēs esam tikai, lai izmantotu 36 00:01:55,910 --> 00:01:59,560 sekot no kopsummas monētu skaits. 37 00:01:59,560 --> 00:02:01,590 Šeit mums ir mūsu pirmo kamēr cilpa. 38 00:02:01,590 --> 00:02:06,780 >> Mēs skat. kamēr centi ir lielāks vai vienāds ar ceturto, kas iepriekš ir hash 39 00:02:06,780 --> 00:02:14,680 definēts kā 25, bet tas ir taisnība, mēs gribu pieauguma savu monētu skaits 40 00:02:14,680 --> 00:02:18,350 un Samazināt centi pa ceturkšņiem. 41 00:02:18,350 --> 00:02:22,810 Atcerieties, ka šī sintakse ir līdzvērtīga centiem 42 00:02:22,810 --> 00:02:26,020 vienāds centiem mīnus ceturksnī. 43 00:02:26,020 --> 00:02:28,170 Tie ir vienādi. 44 00:02:28,170 --> 00:02:31,850 >> Tātad, kas ir tas, kamēr cilpa dara? 45 00:02:31,850 --> 00:02:39,260 Ideja šeit ir tāda, ka, ja es zinu, $ 3,42 ir parādā, es varētu turpināt sniegt 46 00:02:39,260 --> 00:02:42,670 ceturtdaļas, kamēr es nevaru dot ceturtdaļas vairāk. 47 00:02:42,670 --> 00:02:47,720 Es nevaru dot ceturtdaļas vairāk, kad es esmu devis $ 3,25. 48 00:02:47,720 --> 00:02:53,300 >> Tātad, pēc tam, kad tas ir gadījumā, mēs izkļūt no šīs kamēr cilpa. 49 00:02:53,300 --> 00:02:57,650 Centi būs jāatstāj pie 17 centiem. 50 00:02:57,650 --> 00:03:01,910 Un mēs joprojām uz leju, lai nākamais kamēr cilpa, ja mēs sakām, bet centi 51 00:03:01,910 --> 00:03:04,270 ir lielāks par vai vienāds ar Dime. 52 00:03:04,270 --> 00:03:07,420 >> Un tagad mēs darām to pašu precīzu lieta, ko mēs darījām šajā ceturksnī gadījumā, 53 00:03:07,420 --> 00:03:09,010 izņemot dimes. 54 00:03:09,010 --> 00:03:15,050 Tātad ar $ 0,17 Mēs cilpa, kamēr mēs varam vairs dot Dime, kas ir 55 00:03:15,050 --> 00:03:16,680 tieši vienu reizi. 56 00:03:16,680 --> 00:03:20,470 Un tad mēs būsim atstāti ar 7 centiem. 57 00:03:20,470 --> 00:03:24,730 >> Tad mēs turpināsim uz nickels, kas būs cilpa, kamēr mēs nevaram dot 58 00:03:24,730 --> 00:03:29,420 kādi jauni nickels, kas būs atstāj mūs ar diviem centiem. 59 00:03:29,420 --> 00:03:34,400 Un pēc tam uz leju apakšā, mēs pennies, kas būs cilpa, un būs 60 00:03:34,400 --> 00:03:37,140 beidzot atstāj mūs ar nulles centiem. 61 00:03:37,140 --> 00:03:41,670 Tad beigās, mēs vienkārši nepieciešams, lai izdrukāt savu monētu skaits. 62 00:03:41,670 --> 00:03:44,980 >> Tāpēc šī programma ir pilnīgi pareizs. 63 00:03:44,980 --> 00:03:47,310 Bet mēs faktiski var darīt mazliet labāk. 64 00:03:47,310 --> 00:03:52,660 Tagad, ja es saku, ka es jums parādā $ 10000, Jums nav nepieciešams iet šeit ir viens 65 00:03:52,660 --> 00:03:55,310 ceturksnī, divos ceturkšņos, trīs ceturtdaļas. 66 00:03:55,310 --> 00:03:59,450 Jums vajadzētu zināt, uzreiz, ka Es parādā 40000 ceturtdaļas. 67 00:03:59,450 --> 00:04:04,070 >> Tagad aplūkosim programmas, kas rīkojas ar to mazliet labāk. 68 00:04:04,070 --> 00:04:07,190 Šajā versijā lietām, mums joprojām ir vajadzīgi pieprasīt no lietotāja par summu 69 00:04:07,190 --> 00:04:10,930 mainīt, ka viņi vēlas tieši Tāpat mēs darījām agrāk. 70 00:04:10,930 --> 00:04:14,110 Mums ir nepieciešams noapaļot to tieši kā mēs darījām pirms tam. 71 00:04:14,110 --> 00:04:17,910 Un mums vēl ir mūsu monētas skaitlis paziņoja, tieši tāds pats kā pirms tam. 72 00:04:17,910 --> 00:04:21,399 >> Tātad, šeit ir, ja lietas get nedaudz savādāka. 73 00:04:21,399 --> 00:04:24,640 Mēs darām monētas plus vienāds centi sadalīta pa ceturkšņiem 74 00:04:24,640 --> 00:04:27,140 kur ceturksnī ir 25. 75 00:04:27,140 --> 00:04:31,790 Kas tas ir saprotams, ir, ņem tik daudz ceturtdaļas, kā var iet uz centiem un pievienot 76 00:04:31,790 --> 00:04:33,030 ka uz monētām. 77 00:04:33,030 --> 00:04:40,100 >> Tātad, ja centi ir 142, 142 dalīts līdz 25 dod mums 5. 78 00:04:40,100 --> 00:04:43,950 Atcerieties, ka veselu sadalījumu automātiski saīsina. 79 00:04:43,950 --> 00:04:46,870 Tāpēc mēs darām monētas plus vienāds 5. 80 00:04:46,870 --> 00:04:51,850 >> Tūlīt pēc tam, mēs esam sakot, centi vienlīdzīgas centi mod ceturkšņa. 81 00:04:51,850 --> 00:04:57,150 Atcerieties, ka mod operators sniedz mums atlikums pēc sadalīšanas. 82 00:04:57,150 --> 00:05:05,840 Tātad 142 mod ceturksnī, kas dos ir 142 mīnus 125, kas ir 17. 83 00:05:05,840 --> 00:05:10,470 Tas ir atlikums pēc darot 142 dalīts ar 25. 84 00:05:10,470 --> 00:05:13,040 >> Tātad tagad centi ir vienāds ar 17. 85 00:05:13,040 --> 00:05:16,080 Un mēs to pašu precīzu lieta dimes. 86 00:05:16,080 --> 00:05:18,620 17 dalīts ar 10 dos mums 1. 87 00:05:18,620 --> 00:05:20,150 Un mēs piebilst, ka uz monētām. 88 00:05:20,150 --> 00:05:25,380 Un tad mēs atjaunināt centi būt 17 mod 10, kas ir par 7. 89 00:05:25,380 --> 00:05:27,200 >> Un tad pats par nickels. 90 00:05:27,200 --> 00:05:29,180 7 dala ar 5 ir 1. 91 00:05:29,180 --> 00:05:30,880 Piebilst, ka uz monētām. 92 00:05:30,880 --> 00:05:34,600 Un tad 7 mod 5 ir 2. 93 00:05:34,600 --> 00:05:35,910 Un tas ir mūsu centi. 94 00:05:35,910 --> 00:05:39,065 >> Un tad, pennies, nav reāla punkts dalījumam vai modding, jo, 95 00:05:39,065 --> 00:05:42,170 ja mums ir $ 0,2 paliek pāri, mēs varam vienkārši uzreiz piebilst, ka, lai 96 00:05:42,170 --> 00:05:43,590 Mūsu monētu skaits. 97 00:05:43,590 --> 00:05:48,210 Un visbeidzot, mums ir nepieciešams izdrukāt mūsu monētu skaits un, pēc izvēles, 98 00:05:48,210 --> 00:05:52,100 atgriezties 0 beigās mūsu programmas neizsaka visu strādāja. 99 00:05:52,100 --> 00:05:53,120 >> Mans vārds ir Rob. 100 00:05:53,120 --> 00:05:54,020 Un tas bija mantkārīgs. 101 00:05:54,020 --> 00:05:57,620 >> [Mūzikas atskaņošanai] 102 00:05:57,620 --> 00:06:01,515