1 00:00:00,000 --> 00:00:00,994 2 00:00:00,994 --> 00:00:11,431 >> [MUSIC پخش] 3 00:00:11,431 --> 00:00:12,500 >> ROB BOWDEN: سلام. 4 00:00:12,500 --> 00:00:13,230 I راب هستم. 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 من نمی توانم چهارم را هر بیشتر، یک بار I $ 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 به جز با dimes. 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 شما باید فورا می دانیم که من به شما بدهکار 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 به یاد داشته باشید که تقسیم عدد صحیح به طور خودکار truncates. 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 و ما دقیقا همان چیزی که برای dimes. 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 >> [MUSIC پخش] 102 00:05:57,620 --> 00:06:01,515