1 00:00:00,000 --> 00:00:00,994 2 00:00:00,994 --> 00:00:11,431 >> [Predvaja glasba] 3 00:00:11,431 --> 00:00:12,500 >> ROB Bowden: Hi. 4 00:00:12,500 --> 00:00:13,230 Jaz sem Rob. 5 00:00:13,230 --> 00:00:15,080 In kaj je dobil požrešen. 6 00:00:15,080 --> 00:00:18,560 >> Torej prva stvar, ki jo morate storiti je vprašal uporabnika, točno, kako 7 00:00:18,560 --> 00:00:20,500 veliko sprememb je dolžan. 8 00:00:20,500 --> 00:00:23,310 Torej, tukaj vidimo imamo Do / while zanko. 9 00:00:23,310 --> 00:00:26,650 In smo nastavitev dolarjev enako GetFloat. 10 00:00:26,650 --> 00:00:27,890 Kaj je GetFloat? 11 00:00:27,890 --> 00:00:30,700 To je ena od funkcij v CS50 knjižnica, ki dobi 12 00:00:30,700 --> 00:00:32,450 plovec od uporabnika. 13 00:00:32,450 --> 00:00:35,200 Ne pozabite, da se lahko uporabi te funkcije, moramo hash vključuje 14 00:00:35,200 --> 00:00:37,790 CS50.h na vrhu. 15 00:00:37,790 --> 00:00:42,310 >> Torej, ko imamo te vrednosti iz uporabnik, moramo biti prepričani, da 16 00:00:42,310 --> 00:00:43,560 je veljavna vrednost. 17 00:00:43,560 --> 00:00:46,050 Ne moremo dolgujem negativno denar. 18 00:00:46,050 --> 00:00:48,460 In tako, da je namen to opravil / while zanko. 19 00:00:48,460 --> 00:00:52,420 Nadaljujemo zanka, medtem ko dolarjev je manjša od nič. 20 00:00:52,420 --> 00:00:56,960 In Ali / while zanka je prava stvar uporabiti tu, saj se moramo vprašati, 21 00:00:56,960 --> 00:01:00,290 Uporabnik vsaj enkrat, kako koliko denarja je dolžan. 22 00:01:00,290 --> 00:01:05,040 >> Torej, ko imamo to število dolarjev, vidimo tukaj imamo int centov 23 00:01:05,040 --> 00:01:08,630 enak krog dolarjev krat CENTS_PER_DOLLAR. 24 00:01:08,630 --> 00:01:10,740 Na vrhu, vidimo, da CENTS_PER_DOLLAR je 25 00:01:10,740 --> 00:01:13,750 smiselno definirana kot 100. 26 00:01:13,750 --> 00:01:16,270 Torej, kaj je ta linija dela? 27 00:01:16,270 --> 00:01:21,200 >> No, če se spomnite, Floating Point Vrednosti niso povsem natančni. 28 00:01:21,200 --> 00:01:25,470 Za razliko od števil, ne moremo predstavljati vrednosti s plavajočo vejico natančno. 29 00:01:25,470 --> 00:01:28,660 Vedno je nekakšna nenatančen. 30 00:01:28,660 --> 00:01:32,840 Zato smo se raje dela s samo števil skozi ta problem. 31 00:01:32,840 --> 00:01:42,690 In tukaj, če uporabnik vnese 3,42 $, smo pretvarjanje, da 342 centov in 32 00:01:42,690 --> 00:01:45,900 zaokroževanje, se le znebite koli od tega nenatančnosti. 33 00:01:45,900 --> 00:01:49,940 >> Torej, ko imamo število centov na celo, da lahko nadaljuje s 34 00:01:49,940 --> 00:01:51,730 Preostali del programa. 35 00:01:51,730 --> 00:01:55,910 Vidimo tukaj, da smo razglasitvi celo kovanci, ki mi smo samo za uporabo 36 00:01:55,910 --> 00:01:59,560 slediti skupno število kovancev. 37 00:01:59,560 --> 00:02:01,590 Tu imamo prvo while zanko. 38 00:02:01,590 --> 00:02:06,780 >> Vidimo, medtem ko centov, večja ali enako četrtletju, ki je zgoraj, je hašiš 39 00:02:06,780 --> 00:02:14,680 definiran kot 25, medtem ko je to res, smo želijo prirastek naše število kovancev 40 00:02:14,680 --> 00:02:18,350 in padanje centov po četrtletjih. 41 00:02:18,350 --> 00:02:22,810 Ne pozabite, da je ta sintaksa enakovredna centov 42 00:02:22,810 --> 00:02:26,020 enaka centov minus četrtino. 43 00:02:26,020 --> 00:02:28,170 To so enaki. 44 00:02:28,170 --> 00:02:31,850 >> Torej, kaj je to zanko, medtem ko delaš? 45 00:02:31,850 --> 00:02:39,260 Ideja tukaj je, da če vem, 3,42 $ dolguje, sem lahko še naprej daje 46 00:02:39,260 --> 00:02:42,670 četrtine, dokler ne morem dati četrtine več. 47 00:02:42,670 --> 00:02:47,720 Ne morem dati četrtine več, ko sem dal 3,25 $. 48 00:02:47,720 --> 00:02:53,300 >> Torej takrat, ko je temu tako, se bomo iztrgajo iz tega while zanko. 49 00:02:53,300 --> 00:02:57,650 Centov bo ostalo na 17 centov. 50 00:02:57,650 --> 00:03:01,910 In bomo še naprej navzdol na naslednjo while zanko, če rečemo, medtem ko centov 51 00:03:01,910 --> 00:03:04,270 je večje ali enako kovanec. 52 00:03:04,270 --> 00:03:07,420 >> In sedaj delamo enako natančni kar smo storili v primeru četrtletju, 53 00:03:07,420 --> 00:03:09,010 razen centov. 54 00:03:09,010 --> 00:03:15,050 Torej z 0,17 $, se bomo zanka, dokler smo lahko ne dobimo centa, ki je 55 00:03:15,050 --> 00:03:16,680 natanko enkrat. 56 00:03:16,680 --> 00:03:20,470 In bomo potem ostane pri 7 centov. 57 00:03:20,470 --> 00:03:24,730 >> Potem se bomo še naprej, da nickels, ki bo ponavljal, dokler ne moremo dati 58 00:03:24,730 --> 00:03:29,420 vse več novčič, ki bo nas je zapustil z dvema centov. 59 00:03:29,420 --> 00:03:34,400 In nato, navzdol na dnu, smo penijev, ki bo zanka in bo 60 00:03:34,400 --> 00:03:37,140 nam je končno zapustil z nič centov. 61 00:03:37,140 --> 00:03:41,670 Nato pa na koncu, smo morali izpisal naš število kovancev. 62 00:03:41,670 --> 00:03:44,980 >> Torej, ta program je popolnoma pravilna. 63 00:03:44,980 --> 00:03:47,310 Vendar pa lahko dejansko narediti malo bolje. 64 00:03:47,310 --> 00:03:52,660 Zdaj, če rečem, da sem ti dolžan $ 10.000 vam ni treba iti, tukaj je ena 65 00:03:52,660 --> 00:03:55,310 četrtino, dve četrtini, tri četrtine. 66 00:03:55,310 --> 00:03:59,450 Moral bi takoj vedeli, da je Jaz ti dolgujem 40.000 četrtine. 67 00:03:59,450 --> 00:04:04,070 >> Zdaj pa si oglejmo program, ki obdeluje malo bolje. 68 00:04:04,070 --> 00:04:07,190 V tej različici stvari, še vedno potrebujemo da od uporabnika zahteva za znesek 69 00:04:07,190 --> 00:04:10,930 spremeniti, da želijo v točno enak način smo naredili prej. 70 00:04:10,930 --> 00:04:14,110 Moramo ga zaokrožiti točno Tako smo storili prej. 71 00:04:14,110 --> 00:04:17,910 In še vedno imamo kovance celo razglašen natanko enako kot prej. 72 00:04:17,910 --> 00:04:21,399 >> Torej, tukaj je, če se stvari dobili malo drugačen. 73 00:04:21,399 --> 00:04:24,640 Delamo kovancev plus enaka centov deljeno s četrtletjem 74 00:04:24,640 --> 00:04:27,140 kjer je četrtina 25. 75 00:04:27,140 --> 00:04:31,790 Kaj je to rekel je, da čim več četrtletjih, saj lahko gredo v centih in dodajte 76 00:04:31,790 --> 00:04:33,030 da kovancev. 77 00:04:33,030 --> 00:04:40,100 >> Torej, če centov je 142, 142, deljeno za 25 nam daje 5. 78 00:04:40,100 --> 00:04:43,950 Ne pozabite, da je deljenje celih števil samodejno skrajša. 79 00:04:43,950 --> 00:04:46,870 Torej delamo kovancev plus enaka 5. 80 00:04:46,870 --> 00:04:51,850 >> Takoj po tem, mi praviš centov enake centov mod četrtletju. 81 00:04:51,850 --> 00:04:57,150 Ne pozabite, da mod operater daje us ostanek po deljenju. 82 00:04:57,150 --> 00:05:05,840 Torej 142 mod četrtletje, ki bo dal je 142 minus 125, kar je 17. 83 00:05:05,840 --> 00:05:10,470 To je ostanek po delaš 142 deljeno z 25. 84 00:05:10,470 --> 00:05:13,040 >> Torej, zdaj centov je enaka 17. 85 00:05:13,040 --> 00:05:16,080 In naredimo enako natančni stvar centov. 86 00:05:16,080 --> 00:05:18,620 17 deljeno z 10 nam bo dalo 1. 87 00:05:18,620 --> 00:05:20,150 In smo dodali, da kovancev. 88 00:05:20,150 --> 00:05:25,380 In potem smo posodobili centov je 17 mod 10, ki je 7. 89 00:05:25,380 --> 00:05:27,200 >> In potem isto za nickels. 90 00:05:27,200 --> 00:05:29,180 7 deljeno s 5 je 1. 91 00:05:29,180 --> 00:05:30,880 Dodajajo, da na kovance. 92 00:05:30,880 --> 00:05:34,600 In potem 7 mod 5 je 2. 93 00:05:34,600 --> 00:05:35,910 In to je naša centov. 94 00:05:35,910 --> 00:05:39,065 >> In potem, za penijev, ni resnična točka razdelitev ali modding, ker 95 00:05:39,065 --> 00:05:42,170 če imamo $ 0,2 ostalo več, smo lahko Samo takoj doda, da 96 00:05:42,170 --> 00:05:43,590 Naš število kovancev. 97 00:05:43,590 --> 00:05:48,210 In končno, moramo natisniti naše število kovancev in, po izbiri, 98 00:05:48,210 --> 00:05:52,100 vrne 0 ob koncu našega programa da se označi vse, kar je delal. 99 00:05:52,100 --> 00:05:53,120 >> Moje ime je Rob. 100 00:05:53,120 --> 00:05:54,020 In to je bil požrešen. 101 00:05:54,020 --> 00:05:57,620 >> [Predvaja glasba] 102 00:05:57,620 --> 00:06:01,515