[MUSIC PLAYING] ROB Bowden: Hi. Aku Rob. Dan mari kita Greedy. Jadi, hal pertama yang perlu kita lakukan adalah meminta pengguna persis bagaimana banyak perubahan berutang. Jadi di sini, kita melihat kita memiliki do / while. Dan kami sedang menyiapkan dolar sama dengan getFloat. Apa getFloat? Ini salah satu fungsi dalam Perpustakaan CS50 yang mendapat mengapung dari pengguna. Ingat, untuk menggunakan fungsi tersebut, kita perlu hash termasuk CS50.h di bagian atas. Jadi, sekali kita memiliki nilai yang dari pengguna, kami juga harus yakin bahwa itu adalah nilai yang valid. Kita tidak bisa berutang uang negatif. Dan itulah tujuan do ini / while. Kami terus perulangan sementara dolar kurang dari nol. Dan do / while adalah hal yang benar untuk digunakan di sini, karena kita perlu untuk meminta pengguna setidaknya sekali untuk bagaimana banyak uang yang berutang. Jadi setelah kami memiliki jumlah dolar, kita lihat di sini kita memiliki sen int sama dengan putaran dolar kali CENTS_PER_DOLLAR. Di bagian atas, kita melihat bahwa CENTS_PER_DOLLAR adalah bijaksana didefinisikan sebagai 100. Jadi apa yang baris ini lakukan? Nah, jika Anda ingat, floating point nilai tidak cukup tepat. Tidak seperti bilangan bulat, kita tidak dapat mewakili nilai-nilai floating point tepat. Selalu ada semacam ketidaktepatan. Jadi kita lebih suka bekerja hanya dengan bilangan bulat seluruh masalah ini. Dan di sini, jika pengguna masuk $ 3,42, kita mengubah bahwa untuk 342 sen dan pembulatan, hanya menyingkirkan setiap ketidaktepatan itu. Jadi, sekali kita memiliki jumlah sen di integer, kita dapat melanjutkan dengan sisa program. Kita lihat di sini bahwa kita menyatakan bilangan bulat koin yang kita hanya menggunakan untuk melacak total jumlah koin. Di sini, kita memiliki while loop pertama kami. Kami melihat sementara sen lebih besar dari atau sama dengan kuartal, yang di atas, adalah hash didefinisikan sebagai 25, sementara itu benar, kita ingin kenaikan jumlah kami koin dan penurunan sen seperempat. Ingat bahwa sintaks ini setara dengan sen sama sen dikurangi seperempat. Mereka adalah sama. Jadi apa yang while loop ini lakukan? Idenya di sini adalah bahwa, jika saya tahu $ 3,42 berutang, saya bisa terus memberikan perempat sampai aku tidak bisa memberikan perempat lagi. Saya tidak bisa memberikan tempat lagi, setelah saya telah memberikan $ 3,25. Jadi, setelah itu yang terjadi, kita akan keluar dari while loop ini. Cents akan ditinggalkan pada 17 sen. Dan kami akan terus turun ke berikutnya while mana kita katakan, sementara sen lebih besar dari atau sama dengan sepeser pun. Dan sekarang kita sedang melakukan yang sama persis hal yang kita lakukan dalam kasus kuartal, kecuali dengan dime. Jadi dengan $ 0,17, kami akan loop sampai kita bisa tidak lagi memberikan sepeser pun, yang tepat satu kali. Dan kemudian kita akan ditinggalkan dengan 7 sen. Kemudian kita akan melanjutkan ke sen, yang akan loop sampai kita tidak bisa memberikan setiap sen lebih, yang akan meninggalkan kita dengan dua sen. Dan kemudian, turun di bagian bawah, kita memiliki uang, akan yang lingkaran dan akan akhirnya meninggalkan kita dengan nol sen. Kemudian pada akhirnya, kita hanya perlu mencetak nomor kami koin. Jadi program ini sangat benar. Tapi kita benar-benar bisa melakukan sedikit lebih baik. Sekarang jika saya mengatakan bahwa saya berutang $ 10.000, Anda tidak perlu untuk pergi di sini satu kuartal, dua kuartal, tiga perempat. Anda harus tahu bahwa segera Aku berutang 40.000 perempat Anda. Sekarang mari kita lihat program yang menangani itu sedikit lebih baik. Dalam versi ini hal, kita masih perlu untuk meminta pengguna untuk jumlah mengubah itu mereka ingin persis dengan cara yang sama kita lakukan sebelumnya. Kita perlu untuk putaran persis cara kita lakukan sebelumnya. Dan kami masih memiliki koin kami bilangan bulat menyatakan persis sama seperti sebelumnya. Jadi di sinilah hal-hal mendapatkan sedikit berbeda. Kami sedang melakukan koin ditambah equals sen dibagi dengan kuartal di mana kuartal adalah 25. Apa ini katakan adalah, mengambil sebanyak perempat seperti dapat masuk ke sen dan menambahkan bahwa untuk koin. Jadi jika sen adalah 142, 142 dibagi 25 memberi kita 5. Ingat bahwa pembagian integer otomatis memotong. Jadi kita melakukan koin ditambah sama dengan 5. Segera setelah ini, kami katakan sen sen sama kuartal mod. Ingat bahwa operator mod memberi kami sisa setelah pembagian. Jadi 142 kuartal mod, yang akan memberikan adalah 142 dikurangi 125, yaitu 17. Itulah sisa setelah melakukan 142 dibagi dengan 25. Jadi sekarang sen adalah sama dengan 17. Dan kami melakukan hal yang sama persis hal yang dime. 17 dibagi dengan 10 akan memberi kita 1. Dan kita menambahkan bahwa untuk koin. Dan kemudian kami memperbarui sen menjadi menjadi 17 mod 10, yaitu 7. Dan kemudian hal yang sama untuk receh. 7 dibagi oleh 5 adalah 1. Menambahkan bahwa untuk koin. Dan kemudian 7 mod 5 adalah 2. Dan itulah sen kami. Dan kemudian, untuk sen, tidak ada yang nyata titik dalam pembagian atau modding, karena, jika kita memiliki $ 0,2 tersisa, kita bisa hanya segera menambahkan bahwa untuk kami jumlah koin. Dan akhirnya, kita perlu untuk mencetak kami jumlah koin dan, opsional, return 0 pada akhir program kami untuk menandakan semuanya bekerja. Nama saya Rob. Dan ini adalah Greedy. [MUSIC PLAYING]