[MUSIQUE JEU] ROB BOWDEN: Salut. Je suis Rob. Et passons Greedy. Donc, la première chose que nous devons faire est de demander à l'utilisateur exactement comment beaucoup de changement est dû. Donc, ici, nous voyons que nous avons un do / while. Et nous mettons en dollars égal à GetFloat. Quelle est GetFloat? C'est l'une des fonctions de la bibliothèque de CS50 qui obtient un flotter de l'utilisateur. Rappelez-vous, afin de pouvoir utiliser cette fonction, nous avons besoin de hachage comprennent CS50.h au sommet. Donc, une fois que nous avons cette valeur de la utilisateur, nous devons aussi être sûr que c'est une valeur valide. Nous ne pouvons pas devoir de l'argent négatif. Et si c'est le but de cette do / while. Nous continuons boucle lors de dollars est inférieur à zéro. Et un do / while est la bonne chose à utiliser ici, car nous devons nous poser la utilisateur au moins une fois de la façon dont beaucoup d'argent est due. Donc, une fois que nous avons nombre de dollars, nous voir ici, nous avons cents int égaux ronde dollars temps CENTS_PER_DOLLAR. Au sommet, nous voyons que CENTS_PER_DOLLAR est judicieusement définie, comme 100. Alors qu'est-ce cette ligne fait? Eh bien, si vous vous souvenez, à virgule flottante valeurs ne sont pas assez précis. Contrairement entiers, nous ne pouvons pas représenter valeurs à virgule flottante exactement. Il ya toujours une sorte d'imprécision. Donc, nous préférons travailler avec seulement des nombres entiers tout au long de ce problème. Et ici, si l'utilisateur a entré $ 3,42, nous convertir que 342 cents et arrondi, simplement se débarrasser de tout cela imprécision. Donc, une fois que nous avons le nombre de cents en un nombre entier, nous pouvons continuer avec le reste du programme. Nous voyons ici que nous déclarant entier pièces que nous sommes seulement à utiliser de garder une trace de l'ensemble nombre de pièces. Ici, nous avons notre première boucle while. Nous voyons tout cents est supérieur ou égal à trimestre, ci-dessus, est hachage défini comme 25, tout cela est vrai, nous vouloir augmenter notre nombre de pièces et de décrémentation cents par trimestre. Rappelez-vous que cette syntaxe est équivalent à cents égaux cents moins quart. Ce sont les mêmes. Alors qu'est-ce cette boucle while fait? L'idée ici est que, si je sais $ 3,42 est dû, je peux continuer à donner trimestres jusqu'à ce que je ne peux pas donner quarts plus. Je ne peux pas donner plus trimestres, une fois que j'ai donné 3,25 $. Alors, une fois que c'est le cas, nous allons sortir de cette boucle while. Cents seront laissés à 17 cents. Et nous allons continuer à la prochaine tout en boucle où nous disons, tout cents est supérieur ou égal à dix cents. Et maintenant, nous faisons la même exacte chose que nous avons fait dans le cas de trimestre, sauf avec dimes. Donc, avec $ 0,17, nous allons boucle jusqu'à ce que nous pouvons ne donne plus un sou, ce qui est exactement une fois. Et puis nous allons à gauche avec 7 cents. Ensuite, nous allons continuer à nickels, qui allons boucle jusqu'à ce que nous ne pouvons pas donner des plus nickels, qui sera nous laisser avec deux cents. Et puis, au bas, nous avons sous, qui fera une boucle et sera enfin nous laisser avec zéro cents. Puis à la fin, nous avons juste besoin d' imprimer notre nombre de pièces. Alors ce programme est parfaitement correct. Mais nous pouvons faire un peu mieux. Maintenant, si je dis que je vous dois 10.000 $, vous ne devriez pas besoin d'aller en voici un trimestre, deux trimestres, les trois quarts. Vous devriez savoir immédiatement que Je vous dois 40 000 trimestres. Maintenant regardons un programme qui gère un peu mieux. Dans cette version des choses, nous avons encore besoin à demander à l'utilisateur de la quantité d' changent qu'ils veulent exactement de la même manière que nous avons fait auparavant. Nous avons besoin d'arrondir exactement la façon dont nous l'avons fait avant. Et nous avons encore nos pièces de monnaie entier déclaré exactement le même que précédemment. Alors, voici où les choses obtenir un peu différent. Nous faisons des pièces de monnaie, plus égaux cents divisé par trimestre où trimestre est de 25. Qu'est-ce que cela veut dire, c'est, prendre autant de trimestres, peuvent aller en cents et ajouter que pour des pièces de monnaie. Donc, si cents est 142, 142 divisé 25 nous donne 5. Rappelez-vous que la division entière tronque automatiquement. Donc, nous faisons des pièces de monnaie, plus égaux 5. Immédiatement après cela, nous disons cents cents égalité trimestre mod. Rappelez-vous que l'opérateur mod donne nous le reste de la division. Donc 142 quart mod, qui donnera est 142 moins 125, qui est de 17. C'est le reste après faisant 142 divisé par 25. Alors maintenant cents est égal à 17. Et nous faisons la même chose exacte chose pour dimes. 17 divisé par 10 nous donnera 1. Et nous ajoutons que de pièces de monnaie. Et puis nous mettons à jour cents à de 17 mod 10, qui est de 7. Et puis même pour nickels. 7 La figure 5 est divisée par une. Ajoutez à cela des pièces de monnaie. Et puis 7 mod 5 est 2. Et c'est notre cents. Et puis, pour quelques centimes, il n'y a pas de véritable point de démarcation ou modding, depuis, si nous avons $ 0,2 reste, nous pouvons il suffit d'ajouter immédiatement que pour notre nombre de pièces. Et enfin, nous devons imprimer notre nombre de pièces de monnaie et, éventuellement, retourner 0 à la fin de notre programme pour signifier tout travaillé. Mon nom est Rob. Et ce fut avide. [MUSIQUE JEU]