[MUSIC CHƠI] ROB Bowden: Hi. Tôi Rob. Và hãy tham lam. 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 nhiều thay đổi nợ. Vì vậy, ở đây, chúng ta thấy chúng ta có một do / trong khi vòng lặp. Và chúng tôi đang thiết đô la bằng GetFloat. GetFloat là gì? Đó là một trong các chức năng trong Thư viện CS50 mà được một nổi từ người sử dụng. Hãy nhớ rằng, để sử dụng chức năng đó, chúng ta cần phải băm bao gồm CS50.h ở đầu trang. 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 đó là một giá trị hợp lệ. Chúng ta không thể nợ tiền tiêu cực. Và đó là mục đích của điều này làm / trong khi vòng lặp. Chúng tôi tiếp tục vòng lặp trong khi đô la là nhỏ hơn không. 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 sử dụng ít nhất một lần trong bao nhiều tiền nợ. 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 bằng vòng đô la lần CENTS_PER_DOLLAR. Ở phía trên, chúng ta thấy rằng CENTS_PER_DOLLAR là một cách hợp lý được xác định là 100. Vì vậy, những gì được dòng này làm gì? Vâng, nếu bạn nhớ, dấu chấm động giá trị không phải là khá chính xác. 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. Luôn luôn có một số loại của sự thiếu chính xác. 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. Và ở đây, nếu người dùng nhập 3,42 $, chúng tôi đang chuyển đổi đó để 342 cent và làm tròn, chỉ cần thoát khỏi bất kỳ sự thiếu chính xác đó. 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 phần còn lại của chương trình. 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 theo dõi tổng số số tiền xu. Ở đây, chúng tôi có vòng lặp trong khi đầu tiên của chúng tôi. Chúng ta thấy trong khi xu lớn hơn hoặc bằng quý, mà ở trên, là băm 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 và giảm bớt xu theo quý. Hãy nhớ rằng cú pháp này tương đương với xu bằng cent trừ quý. Những đều giống nhau. Vì vậy, những gì được vòng lặp trong khi điều này đang làm gì? Ý tưởng ở đây là, nếu tôi biết $ 3,42 nợ, tôi có thể tiếp tục cho quý cho đến khi tôi không thể cung cấp cho quý nữa. Tôi không thể cung cấp cho quý nữa, một lần tôi đã cho $ 3,25. 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. Xu sẽ được để lại 17 xu. 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 lớn hơn hoặc bằng đồng xu. 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ý, trừ trường hợp dimes. 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à đúng một lần. Và sau đó chúng tôi sẽ được trái với 7 cent. 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 bất cứ đồng xu mạ kẽm hơn, mà sẽ để lại cho chúng tôi hai xu. Và sau đó, xuống phía dưới, chúng tôi có đồng xu, mà sẽ lặp và sẽ cuối cùng lại cho chúng tôi với số không xu. 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. Vì vậy, chương trình này là hoàn toàn chính xác. Nhưng chúng tôi thực sự có thể làm tốt hơn một chút. 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 quý, hai quý, ba phần tư. Bạn nên biết rằng ngay lập tức Tôi nợ bạn 40.000 quý. 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. 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 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. 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. 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. Vì vậy, đây là nơi mà mọi thứ nhận được một chút khác nhau. Chúng tôi đang làm đồng tiền cộng với bình đẳng cent chia theo quý nơi quý là 25. Điều này được nói là, mất nhiều quý như có thể đi vào xu và thêm mà để tiền xu. Vì vậy, nếu xu là 142, 142 chia 25 cho chúng ta 5. Hãy nhớ rằng phân chia số nguyên tự động cắt cụt. Vì vậy, chúng tôi đang làm đồng tiền cộng bằng 5. Ngay lập tức sau đó, chúng tôi đang nói xu xu bằng mod quý. 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. Vì vậy 142 mod quý, mà sẽ cung cấp là 142 trừ đi 125, đó là 17. Đó là phần còn lại sau khi làm 142 chia cho 25. Vì vậy, bây giờ xu bằng 17. Và chúng tôi làm như vậy chính xác điều vì mưu sinh. 17 chia cho 10 sẽ cho chúng ta 1. Và chúng tôi thêm rằng để tiền xu. Và sau đó chúng tôi cập nhật xu lên có 17 mod 10, đó là 7. Và sau đó cùng với đồng xu mạ kẽm. 7 chia cho 5 là 1. Thêm rằng để tiền xu. Và sau đó 7 mod 5 là 2. Và đó là xu của chúng tôi. Và sau đó, cho đồng xu, không có thực điểm trong phân chia hoặc modding, kể từ khi, 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 để số của chúng ta về đồng tiền. 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, 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. Tên tôi là Rob. Và đây là tham lam. [MUSIC CHƠI]