[REPRODUCCIÓN DE MÚSICA] ROB BOWDEN: Hi. Soy Rob. Y vamos a llegar codicioso. Así que lo primero que tenemos que hacer se pedirá al usuario exactamente cómo se debió en gran parte del cambio. Así que aquí, vemos que tenemos un do / while. Y estamos estableciendo dólares igual a GetFloat. ¿Qué es GetFloat? Es una de las funciones en el Biblioteca CS50 que recibe una flotar desde el usuario. Recuerde, con el fin de utilizar esta función, que necesitamos para discutir incluyen CS50.h en la parte superior. Así que una vez que tengamos el valor de la usuario, también tenemos que estar seguros de que que es un valor válido. No podemos deber dinero negativo. Y así, ese es el propósito de este do / while. Seguimos bucle mientras dólares es menor que cero. Y una / while es lo correcto por hacer utilizar aquí, ya que tenemos que pedir a la usuario al menos una vez durante cuánto Cuánto dinero se le adeuda. Así que una vez que tengamos esa cantidad de dólares, Veremos aquí tenemos int centavos equivale vuelta dólares tiempos CENTS_PER_DOLLAR. En la parte superior, vemos que CENTS_PER_DOLLAR es sensiblemente definido como 100. Entonces, ¿qué está haciendo esta línea? Bueno, si usted recuerda, en coma flotante Los valores no son muy precisos. A diferencia de los números enteros, no podemos representar valores de punto flotante con exactitud. Siempre hay algún tipo de imprecisión. Así que preferimos trabajar con sólo números enteros a lo largo de este problema. Y aquí, si el usuario introduce 3,42 dólares, estamos convirtiendo esa a 342 centavos de dólar y redondeo, simplemente deshacerse de cualquiera de que la imprecisión. Así que una vez que tengamos el número de centavos en un número entero, se puede continuar con el resto del programa. Vemos aquí que estamos declarando entero monedas que estamos a sólo usar para llevar un registro del total número de monedas. Aquí, tenemos nuestro primer bucle while. Vemos mientras centavos es mayor o igual al trimestre, que anteriormente, es de hash definido como el 25, mientras que eso es cierto, desea incrementar nuestro número de monedas y centavos decremento por trimestre. Recuerde que esta sintaxis es equivalente a centavos iguales centavos menos cuarto. Esos son el mismo. Entonces, ¿qué está haciendo este bucle while? La idea aquí es que, si conozco a $ 3.42 que se debe, que puedo seguir dando trimestres hasta que no pueda dar trimestres más. No puedo dar trimestres más, una vez que me he dado 3,25 dólares. Así pues, una vez que ese es el caso, vamos a romper este bucle while. Cents se dejarán en 17 centavos de dólar. Y vamos a seguir hasta la próxima while donde decimos, mientras centavos es mayor que o igual a la moneda de diez centavos. Y ahora que estamos haciendo exactamente el mismo cosa que hicimos en el trimestre caso, excepto con monedas de diez centavos. Así que con $ 0.17, vamos a bucle hasta que podamos ya no dar ni un centavo, que es exactamente una vez. Y luego nos vamos a quedar con 7 centavos. Luego continuaremos a monedas de cinco centavos, que se repetirá hasta que no podamos dar las más de cinco centavos, que se nos deja con dos centavos. Y a continuación, hacia abajo en la parte inferior, tenemos monedas de un centavo, que se repetirá y se finalmente nos deja con cero centavos. Luego, al final, sólo tenemos que imprimir nuestro número de monedas. Así que este programa es perfectamente correcto. Pero en realidad podemos hacer un poco mejor. Ahora bien, si yo digo que le debo $ 10,000 que no es necesario ir aquí es una trimestre, dos trimestres, las tres cuartas partes. Usted debe saber inmediatamente que Te debo 40 mil cuartos. Ahora echemos un vistazo a un programa que maneja un poco mejor. En esta versión de las cosas, aún necesitamos para preguntar al usuario por la cantidad de un cambio que ellos quieren exactamente de la misma manera que hicimos antes. Necesitamos reunir exactamente la forma en que lo hizo antes. Y todavía tenemos nuestras monedas entero declarado exactamente el mismo que antes. Así que aquí es donde las cosas ser un poco diferente. Estamos haciendo las monedas más iguales centavos divididos por trimestre donde trimestre es de 25. Lo que esto dice es, tomar la mayor cantidad trimestres como pueden entrar en centavos y agregue que a las monedas. Así que si centavos son 142, 142 dividido por 25 nos da 5. Recuerde que la división entera trunca automáticamente. Así que estamos haciendo las monedas más es igual a 5. Inmediatamente después de esto, estamos diciendo centavos centavos iguales trimestre mod. Recuerde que el operador mod da nosotros lo que queda después de la división. Así trimestre 142 mod, que dará es decir 142 menos 125, que es 17. Eso es lo que queda después de haciendo 142 dividido por 25. Así que ahora centavos es igual a 17. Y hacemos lo mismo exacta cosa de diez centavos. 17 dividido por 10 nos dará 1. Y añadimos que a las monedas. Y luego actualizamos centavos a ser 17 mod 10, que es 7. Y a continuación, el mismo para monedas de cinco centavos. 7 dividido por 5 es 1. Añade que para las monedas. Y luego 7 mod 5 es 2. Y esa es nuestra centavos. Y luego, por unos centavos, no hay verdadera punto de división o modding, ya que, si tenemos $ 0.2 sobra, podemos sólo tiene que añadir inmediatamente que a nuestro número de monedas. Y por último, tenemos que imprimir nuestro número de monedas y, opcionalmente, devuelve 0 al final de nuestro programa para significar todo lo trabajado. Mi nombre es Rob. Y esto era codicioso. [REPRODUCCIÓN DE MÚSICA]