>> [Музыка играет]
>> ROB BOWDEN: Привет.
Я Роб.
И давайте Жадный.
>> Поэтому первое, что мы должны сделать, будет запрашивать у пользователя, как именно
много изменений причитается.
Так вот, мы видим, у нас есть сделай / время цикла.
И мы устанавливаем долларов равна GetFloat.
Что такое GetFloat?
Это одна из функций в Библиотека CS50, который получает
плавать от пользователя.
Помните, для того, чтобы использовать эту функцию, мы должны хэш включают
CS50.h на самом верху.
>> Поэтому, как только у нас есть это значение из Пользователь, мы также должны быть уверены, что
это является допустимым значением.
Мы не можем обязаны негативное деньги.
И так вот цель этого дел / в то время как петля.
Мы продолжаем цикл в то время долларов меньше нуля.
И сделай / время цикла это правильно использовать здесь, так как мы должны спросить
Пользователь не реже одного раза в течение какого сколько денег причитается.
>> Поэтому, как только у нас есть, что количество долларов, мы видим здесь мы имеем десятичного центов
равна круглый долларов раза CENTS_PER_DOLLAR.
В верхней части, мы видим, что CENTS_PER_DOLLAR является
разумно определена как 100.
Так что же эта линия делает?
>> Ну, если вы помните, с плавающей точкой значения не совсем точным.
В отличие от целых чисел, мы не можем представить значения с плавающей запятой в точности.
Там всегда какая-то неточности.
Таким образом, мы предпочитаем работать только с целыми числами на протяжении этой проблемы.
И вот, если пользователь ввел $ 3.42, мы преобразования, что до 342 центов и
округление, просто избавиться от любой из этой неточности.
>> Поэтому, как только у нас есть ряд центов в целое, мы можем продолжать с
Остальная часть программы.
Мы видим здесь, что мы объявив целое монеты, которые мы только использовать
отслеживать от общего количество монет.
Здесь, у нас есть наш первый время цикла.
>> Мы видим, в то время как центов больше или равна четверти, которая выше, является хэш
определяется как 25, а это правда, мы хотите увеличить нашу количество монет
и уменьшения центов по кварталам.
Помните, что этот синтаксис эквивалентно центов
равна центов минус четверть.
Те то же самое.
>> Так что же это пока петля делаешь?
Идея заключается в том, что, если я знаю, $ 3.42 причитается, я могу продолжать давать
четверти до я не могу дать четверти больше.
Я не могу дать больше четверти, один раз я дал $ 3.25.
>> Итак, как только это так, мы будем вырваться из этого время цикла.
Копейка останется на 17 центов.
И мы будем продолжать двигаться к следующему в то время как цикл, где мы говорим, в то время центов
больше или равно центов.
>> И теперь мы делаем то же самое точное , что мы сделали в четвертьфинале случае,
кроме как с пятаков.
Так с $ 0,17, мы будем цикл, пока мы можем больше не дают ни копейки, что является
ровно один раз.
И тогда мы останемся с 7 центов.
>> Тогда мы будем продолжать на никель, которые не будет цикл, пока мы не можем дать
ли еще никель, который будет оставить нас с двух центов.
А потом, на дне, у нас есть пенни, который будет цикл и будет
наконец оставить нас с нулевыми центов.
Тогда в конце, нам просто нужно распечатать нашу количество монет.
>> Так что это программа совершенно правильно.
Но мы можем реально сделать немного лучше.
Теперь, если я говорю, что я должен тебе $ 10000, вам не нужно идти вот один
квартал, два квартала, три четверти.
Вы должны немедленно знать, что Я должен вам 40000 кварталы.
>> Теперь давайте посмотрим на программу, которая обрабатывает его немного лучше.
В этой версии вещей, мы все еще должны спросить пользователя на сумму
изменить, что они хотят в точности так же, как мы делали раньше.
Нам нужно округлить его точно то, как мы делали раньше.
И у нас еще есть наши монеты целое заявил точно так же, как и раньше.
>> Итак, вот где вещи получить немного отличается.
Мы делаем монеты плюс равных центов, разделенные квартале
где квартал 25.
Что это говорю, взять столько четверти, как может перейти в центов и добавить
что к монетам.
>> Так что если центов составляет 142, 142 разделены на 25 дает нам 5.
Помните, что целочисленное деление автоматически обрезает.
Таким образом, мы делаем монеты плюс равна 5.
>> Сразу после этого, мы говорим центов равные центов мод квартале.
Помните, что мод оператор дает нам остаток от деления.
Так 142 мод квартал, что даст 142 минус 125, что на 17.
Это остаток от делать 142, деленной на 25.
>> Так что теперь центов равно 17.
И мы делаем то же самое точное вещь для пятаков.
17 разделить на 10, даст нам 1.
И добавим, что к монетам.
А потом мы обновляем центов до быть 17 мод 10, что на 7.
>> А потом то же самое для никель.
7 разделить на 5 равно 1.
Добавим, что на монетах.
А потом 7 мод 5 является 2.
И вот наши центов.
>> А потом, за гроши, нет никакой реальной Дело в деления или моддинга, так как,
если у нас есть $ 0,2 осталось, мы можем просто сразу добавить, что в
наш количество монет.
И, наконец, мы должны распечатать наши количество монет и, возможно,
вернуть 0 в конце нашей программы для обозначения все работало.
>> Меня зовут Боб.
И это было Жадный.
>> [Музыка играет]