>> [За възпроизвеждане на музика]
>> ROB BOWDEN: Hi.
Аз съм Роб.
И нека да се алчни.
>> Така че първото нещо, което трябва да направите, се поиска ползвателят как точно
много промени се дължат.
Така че тук, ние виждаме, ние имаме не се прави /, докато контур.
И ние сме за създаване долара равна на GetFloat.
Какво е GetFloat?
Това е един от най-функции в CS50 библиотека, която получава
поплавък от потребителя.
Не забравяйте, че за да използвате тази функция, ние трябва да включва сегментиране
CS50.h на върха.
>> Така че след като имаме тази стойност от потребител, ние също трябва да бъдат сигурни, че
тя е валидна стойност.
Ние не можем да дължа пари отрицателен.
И така, това е целта на тази задача / докато контур.
Ние продължаваме примка докато долара е по-малко от нула.
И / линия, докато е правилното нещо, което не се прави да се използват тук, тъй като ние трябва да поиска от
употреба поне веднъж за как много пари се дължи.
>> Така че след като имаме този брой на долара, ние виждаме, че тук имаме вътр цента
равнява кръг долара пъти CENTS_PER_DOLLAR.
На върха, ние виждаме, че CENTS_PER_DOLLAR е
разумно определя като 100.
Така че това, което прави тази линия?
>> Е, ако си спомняте, с плаваща точка стойности не са съвсем точни.
За разлика от цели числа, ние не може да представлява стойности с плаваща запетая точно.
Винаги има някаква на неточност.
Така че ние предпочитаме да работим само с числа през този проблем.
И тук, ако потребителят е въвел $ 3.42, ние трансформира това да 342 цента и
закръгляване, просто да се отървем от всеки от които неточност.
>> Така че след като имаме броя на цента в цяло число, можем да продължим с
останалата част от програмата.
Виждаме тук, че ние сме обявяване число монети, които ние сме само да се използва
, за да следите от общия брой брой монети.
Ето, ние имаме нашата първа линия, докато.
>> Ние виждаме, докато цента е по-голям от или равно на четвърт, което по-горе, е хеш
определя като 25, а това е вярно, ние искате да увеличите нашия брой монети
и декремент цента по тримесечия.
Не забравяйте, че този синтактичен е еквивалентна на цента
равнява цента минус четвърт.
Това са същите.
>> Така че това, което прави тази линия, докато?
Идеята тук е, че, ако знам, $ 3,42 се дължи, не мога да продължите да давате
квартали, докато не мога да дам квартали повече.
Не мога да дам повече квартали, веднъж съм дал $ 3.25.
>> Така че след това, след като това е така, ние ще се измъкнат от тази линия, докато.
Cents ще бъдат оставени в 17 цента.
И ние ще продължим надолу към следващата докато контур, където ние казваме, докато цента
е по-голяма от или равна на монета.
>> И сега ние правим точно същата нещо, което направихме в случая тримесечие,
освен с десетки цента.
Така че с $ 0.17, ние ще контур, докато можем вече не дават и стотинка, която е
точно веднъж.
И след това ще бъдат оставени с 7 цента.
>> След това ще продължите към петачета, които ще контур, докато ние не може да даде
повече монети, което ще ни оставя с два цента.
И тогава, надолу към дъното, ние имаме пенита, което ще премине и ще
Най-накрая ни оставя с нула цента.
След това в края на краищата, ние просто трябва да се разпечатате нашия брой монети.
>> Така че тази програма е съвсем верен.
Но всъщност можем да направим малко по-добре.
Сега ако кажа, че ти дължа 10 000 щатски долара, Вие не трябва да се наложи да отидете тук, е един
четвърт, две тримесечия, три четвърти.
Трябва да знаете, че веднага Аз ви дължа 40 000 тримесечия.
>> Сега нека да разгледаме една програма, която се справя малко по-добре.
В тази версия на нещата, ние все още се нуждаят да поиска от потребителя за размера на
промени това, което искат в точно по същия начин както преди.
Ние трябва да го закръглят точно начина, по който ние направихме преди.
И ние все още имаме нашите монети число обявена точно същото, както преди.
>> Така че тук е мястото, където нещата получите малко по-различно.
Правим монети плюс равни цента, разделени от четвърт
където тримесечие е 25.
Това, което казва, е, да вземе колкото се може повече квартали като могат да отидат в цента и се добавят
че по отношение на монети.
>> Така че, ако цента е 142, 142, разделено от 25 ни дава 5.
Не забравяйте, че целочислено деление автоматично отрязва.
Така че правим монети плюс е равно на 5.
>> Веднага след това, което казваме цента равни цента мод тримесечие.
Не забравяйте, че Министерството на отбраната операторът дава ни остатъка след дивизия.
Така 142 мод тримесечие, което ще даде 142 минус 125, което е 17.
Това е остатъка след прави 142 разделен от 25.
>> Така че сега цента, се равнява на 17.
И ние правим точно същата нещо за Dimes.
17 разделено на 10, ще ни даде една.
И ние се добави, че по отношение на монети.
И тогава ние актуализираме цента до бъде 17 мод 10, което е седем.
>> И след това същото за монети.
7 е разделен от 5 1.
Добави, че по отношение на монети.
И след 7 мод 5 е 2.
И това е на нашите цента.
>> И тогава, за жълти стотинки, няма истинска точка в разделителната или модифициране, тъй като,
ако имаме $0.2 останали, ние можем просто веднага да добавя, че за да
нашата брой монети.
И накрая, ние трябва да разпечатате нашия брой на монети и, по избор,
връщането на 0 в края на нашата програма да означава всичко работи.
>> Моето име е Роб.
И това беше алчни.
>> [За възпроизвеждане на музика]