1 00:00:00,000 --> 00:00:00,994 2 00:00:00,994 --> 00:00:11,431 >> [MUSIC CHƠI] 3 00:00:11,431 --> 00:00:12,500 >> ROB Bowden: Hi. 4 00:00:12,500 --> 00:00:13,230 Tôi Rob. 5 00:00:13,230 --> 00:00:15,080 Và hãy tham lam. 6 00:00:15,080 --> 00:00:18,560 >> Vì vậy, điều đầu tiên chúng ta cần làm được yêu cầu người dùng chính xác như thế nào 7 00:00:18,560 --> 00:00:20,500 nhiều thay đổi nợ. 8 00:00:20,500 --> 00:00:23,310 Vì vậy, ở đây, chúng ta thấy chúng ta có một do / trong khi vòng lặp. 9 00:00:23,310 --> 00:00:26,650 Và chúng tôi đang thiết đô la bằng GetFloat. 10 00:00:26,650 --> 00:00:27,890 GetFloat là gì? 11 00:00:27,890 --> 00:00:30,700 Đó là một trong các chức năng trong Thư viện CS50 mà được một 12 00:00:30,700 --> 00:00:32,450 nổi từ người sử dụng. 13 00:00:32,450 --> 00:00:35,200 Hãy nhớ rằng, để sử dụng chức năng đó, chúng ta cần phải băm bao gồm 14 00:00:35,200 --> 00:00:37,790 CS50.h ở đầu trang. 15 00:00:37,790 --> 00:00:42,310 >> Vì vậy, khi chúng tôi có giá trị từ người sử dụng, chúng tôi cũng cần phải chắc chắn rằng 16 00:00:42,310 --> 00:00:43,560 đó là một giá trị hợp lệ. 17 00:00:43,560 --> 00:00:46,050 Chúng ta không thể nợ tiền tiêu cực. 18 00:00:46,050 --> 00:00:48,460 Và đó là mục đích của điều này làm / trong khi vòng lặp. 19 00:00:48,460 --> 00:00:52,420 Chúng tôi tiếp tục vòng lặp trong khi đô la là nhỏ hơn không. 20 00:00:52,420 --> 00:00:56,960 Và do / trong khi vòng lặp là điều đúng đắn sử dụng ở đây, vì chúng ta cần phải yêu cầu 21 00:00:56,960 --> 00:01:00,290 sử dụng ít nhất một lần trong bao nhiều tiền nợ. 22 00:01:00,290 --> 00:01:05,040 >> Vì vậy, một khi chúng ta có con số đô la, chúng ta thấy ở đây chúng tôi có xu int 23 00:01:05,040 --> 00:01:08,630 bằng vòng đô la lần CENTS_PER_DOLLAR. 24 00:01:08,630 --> 00:01:10,740 Ở phía trên, chúng ta thấy rằng CENTS_PER_DOLLAR là 25 00:01:10,740 --> 00:01:13,750 một cách hợp lý được xác định là 100. 26 00:01:13,750 --> 00:01:16,270 Vì vậy, những gì được dòng này làm gì? 27 00:01:16,270 --> 00:01:21,200 >> Vâng, nếu bạn nhớ, dấu chấm động giá trị không phải là khá chính xác. 28 00:01:21,200 --> 00:01:25,470 Không giống như số nguyên, chúng tôi không thể đại diện giá trị dấu chấm động chính xác. 29 00:01:25,470 --> 00:01:28,660 Luôn luôn có một số loại của sự thiếu chính xác. 30 00:01:28,660 --> 00:01:32,840 Vì vậy, chúng tôi muốn làm việc với chỉ số nguyên toàn vấn đề này. 31 00:01:32,840 --> 00:01:42,690 Và ở đây, nếu người dùng nhập 3,42 $, chúng tôi đang chuyển đổi đó để 342 cent và 32 00:01:42,690 --> 00:01:45,900 làm tròn, chỉ cần thoát khỏi bất kỳ sự thiếu chính xác đó. 33 00:01:45,900 --> 00:01:49,940 >> Vì vậy, khi chúng tôi có số xu trong một số nguyên, chúng ta có thể tiếp tục với 34 00:01:49,940 --> 00:01:51,730 phần còn lại của chương trình. 35 00:01:51,730 --> 00:01:55,910 Chúng ta thấy ở đây là chúng ta đang khai báo số nguyên đồng tiền mà chúng tôi chỉ sử dụng 36 00:01:55,910 --> 00:01:59,560 theo dõi tổng số số tiền xu. 37 00:01:59,560 --> 00:02:01,590 Ở đây, chúng tôi có vòng lặp trong khi đầu tiên của chúng tôi. 38 00:02:01,590 --> 00:02:06,780 >> Chúng ta thấy trong khi xu lớn hơn hoặc bằng quý, mà ở trên, là băm 39 00:02:06,780 --> 00:02:14,680 xác định là 25, trong khi đó là sự thật, chúng tôi muốn tăng số lượng của chúng ta về đồng tiền 40 00:02:14,680 --> 00:02:18,350 và giảm bớt xu theo quý. 41 00:02:18,350 --> 00:02:22,810 Hãy nhớ rằng cú pháp này tương đương với xu 42 00:02:22,810 --> 00:02:26,020 bằng cent trừ quý. 43 00:02:26,020 --> 00:02:28,170 Những đều giống nhau. 44 00:02:28,170 --> 00:02:31,850 >> Vì vậy, những gì được vòng lặp trong khi điều này đang làm gì? 45 00:02:31,850 --> 00:02:39,260 Ý tưởng ở đây là, nếu tôi biết $ 3,42 nợ, tôi có thể tiếp tục cho 46 00:02:39,260 --> 00:02:42,670 quý cho đến khi tôi không thể cung cấp cho quý nữa. 47 00:02:42,670 --> 00:02:47,720 Tôi không thể cung cấp cho quý nữa, một lần tôi đã cho $ 3,25. 48 00:02:47,720 --> 00:02:53,300 >> Vì vậy, sau đó, một khi đó là trường hợp, chúng tôi sẽ thoát ra khỏi vòng lặp trong khi điều này. 49 00:02:53,300 --> 00:02:57,650 Xu sẽ được để lại 17 xu. 50 00:02:57,650 --> 00:03:01,910 Và chúng tôi sẽ tiếp tục xuống tiếp theo trong khi vòng lặp mà chúng ta nói, trong khi xu 51 00:03:01,910 --> 00:03:04,270 lớn hơn hoặc bằng đồng xu. 52 00:03:04,270 --> 00:03:07,420 >> Và bây giờ chúng tôi đang làm cùng chính xác điều chúng tôi đã làm trong trường hợp quý, 53 00:03:07,420 --> 00:03:09,010 trừ trường hợp dimes. 54 00:03:09,010 --> 00:03:15,050 Vì vậy, với $ 0,17, chúng ta sẽ lặp cho đến khi chúng ta có thể không còn cung cấp cho một xu, đó là 55 00:03:15,050 --> 00:03:16,680 đúng một lần. 56 00:03:16,680 --> 00:03:20,470 Và sau đó chúng tôi sẽ được trái với 7 cent. 57 00:03:20,470 --> 00:03:24,730 >> Sau đó chúng tôi sẽ tiếp tục đến đồng xu mạ kẽm, mà sẽ lặp cho đến khi chúng tôi không thể cung cấp cho 58 00:03:24,730 --> 00:03:29,420 bất cứ đồng xu mạ kẽm hơn, mà sẽ để lại cho chúng tôi hai xu. 59 00:03:29,420 --> 00:03:34,400 Và sau đó, xuống phía dưới, chúng tôi có đồng xu, mà sẽ lặp và sẽ 60 00:03:34,400 --> 00:03:37,140 cuối cùng lại cho chúng tôi với số không xu. 61 00:03:37,140 --> 00:03:41,670 Sau đó, cuối cùng, chúng ta chỉ cần in ra số lượng của chúng ta về đồng tiền. 62 00:03:41,670 --> 00:03:44,980 >> Vì vậy, chương trình này là hoàn toàn chính xác. 63 00:03:44,980 --> 00:03:47,310 Nhưng chúng tôi thực sự có thể làm tốt hơn một chút. 64 00:03:47,310 --> 00:03:52,660 Bây giờ nếu tôi nói rằng tôi nợ bạn $ 10,000, bạn không cần phải đi đây là một 65 00:03:52,660 --> 00:03:55,310 quý, hai quý, ba phần tư. 66 00:03:55,310 --> 00:03:59,450 Bạn nên biết rằng ngay lập tức Tôi nợ bạn 40.000 quý. 67 00:03:59,450 --> 00:04:04,070 >> Bây giờ chúng ta hãy nhìn vào một chương trình xử lý nó một chút tốt hơn. 68 00:04:04,070 --> 00:04:07,190 Trong phiên bản này của sự vật, chúng ta vẫn cần để yêu cầu người dùng cho số lượng 69 00:04:07,190 --> 00:04:10,930 thay đổi mà họ muốn trong chính xác giống như cách chúng tôi đã làm trước đây. 70 00:04:10,930 --> 00:04:14,110 Chúng ta cần phải làm tròn chính xác cách chúng ta đã làm trước đây. 71 00:04:14,110 --> 00:04:17,910 Và chúng tôi vẫn có đồng tiền của chúng tôi số nguyên tuyên bố chính xác giống như trước đây. 72 00:04:17,910 --> 00:04:21,399 >> Vì vậy, đây là nơi mà mọi thứ nhận được một chút khác nhau. 73 00:04:21,399 --> 00:04:24,640 Chúng tôi đang làm đồng tiền cộng với bình đẳng cent chia theo quý 74 00:04:24,640 --> 00:04:27,140 nơi quý là 25. 75 00:04:27,140 --> 00:04:31,790 Điều này được nói là, mất nhiều quý như có thể đi vào xu và thêm 76 00:04:31,790 --> 00:04:33,030 mà để tiền xu. 77 00:04:33,030 --> 00:04:40,100 >> Vì vậy, nếu xu là 142, 142 chia 25 cho chúng ta 5. 78 00:04:40,100 --> 00:04:43,950 Hãy nhớ rằng phân chia số nguyên tự động cắt cụt. 79 00:04:43,950 --> 00:04:46,870 Vì vậy, chúng tôi đang làm đồng tiền cộng bằng 5. 80 00:04:46,870 --> 00:04:51,850 >> Ngay lập tức sau đó, chúng tôi đang nói xu xu bằng mod quý. 81 00:04:51,850 --> 00:04:57,150 Hãy nhớ rằng các nhà điều hành mod cho chúng tôi còn lại sau khi phân chia. 82 00:04:57,150 --> 00:05:05,840 Vì vậy 142 mod quý, mà sẽ cung cấp là 142 trừ đi 125, đó là 17. 83 00:05:05,840 --> 00:05:10,470 Đó là phần còn lại sau khi làm 142 chia cho 25. 84 00:05:10,470 --> 00:05:13,040 >> Vì vậy, bây giờ xu bằng 17. 85 00:05:13,040 --> 00:05:16,080 Và chúng tôi làm như vậy chính xác điều vì mưu sinh. 86 00:05:16,080 --> 00:05:18,620 17 chia cho 10 sẽ cho chúng ta 1. 87 00:05:18,620 --> 00:05:20,150 Và chúng tôi thêm rằng để tiền xu. 88 00:05:20,150 --> 00:05:25,380 Và sau đó chúng tôi cập nhật xu lên có 17 mod 10, đó là 7. 89 00:05:25,380 --> 00:05:27,200 >> Và sau đó cùng với đồng xu mạ kẽm. 90 00:05:27,200 --> 00:05:29,180 7 chia cho 5 là 1. 91 00:05:29,180 --> 00:05:30,880 Thêm rằng để tiền xu. 92 00:05:30,880 --> 00:05:34,600 Và sau đó 7 mod 5 là 2. 93 00:05:34,600 --> 00:05:35,910 Và đó là xu của chúng tôi. 94 00:05:35,910 --> 00:05:39,065 >> Và sau đó, cho đồng xu, không có thực điểm trong phân chia hoặc modding, kể từ khi, 95 00:05:39,065 --> 00:05:42,170 nếu chúng ta có 0,2 $ còn lại, chúng ta có thể chỉ ngay lập tức thêm rằng để 96 00:05:42,170 --> 00:05:43,590 số của chúng ta về đồng tiền. 97 00:05:43,590 --> 00:05:48,210 Và cuối cùng, chúng ta cần phải in ra của chúng tôi số tiền xu và, tùy chọn, 98 00:05:48,210 --> 00:05:52,100 trở về 0 vào cuối chương trình của chúng tôi để biểu tất cả mọi thứ làm việc. 99 00:05:52,100 --> 00:05:53,120 >> Tên tôi là Rob. 100 00:05:53,120 --> 00:05:54,020 Và đây là tham lam. 101 00:05:54,020 --> 00:05:57,620 >> [MUSIC CHƠI] 102 00:05:57,620 --> 00:06:01,515