1 00:00:00,000 --> 00:00:00,994 2 00:00:00,994 --> 00:00:11,431 >> [მუსიკის დაკვრა] 3 00:00:11,431 --> 00:00:12,500 >> რობ Bowden: Hi. 4 00:00:12,500 --> 00:00:13,230 მე Rob. 5 00:00:13,230 --> 00:00:15,080 და მოდით მისაღებად ხარბ. 6 00:00:15,080 --> 00:00:18,560 >> ასე რომ პირველი რაც უნდა გავაკეთოთ არის ვთხოვო შესახებ, თუ როგორ 7 00:00:18,560 --> 00:00:20,500 ბევრი ცვლილება აღუდგებათ. 8 00:00:20,500 --> 00:00:23,310 ასე რომ აქ, ჩვენ ვხედავთ ჩვენ do / ხოლო loop. 9 00:00:23,310 --> 00:00:26,650 და ჩვენ შექმნის დოლარი ტოლი GetFloat. 10 00:00:26,650 --> 00:00:27,890 რა არის GetFloat? 11 00:00:27,890 --> 00:00:30,700 ეს არის ერთ ერთი ფუნქციებს CS50 ბიბლიოთეკა, რომელიც იღებს 12 00:00:30,700 --> 00:00:32,450 float საწყისი მომხმარებელს. 13 00:00:32,450 --> 00:00:35,200 გახსოვდეთ, რათა, რომ ფუნქცია, ჩვენ უნდა hash არის 14 00:00:35,200 --> 00:00:37,790 Cs50.h ზედა. 15 00:00:37,790 --> 00:00:42,310 >> ასე რომ კიდევ გვაქვს, რომ მნიშვნელობა შესახებ, ჩვენ ასევე უნდა იყოს დარწმუნებული, რომ 16 00:00:42,310 --> 00:00:43,560 ეს სწორი მნიშვნელობა. 17 00:00:43,560 --> 00:00:46,050 ჩვენ არ შეგვიძლია ვალში უარყოფითი ფული. 18 00:00:46,050 --> 00:00:48,460 და ისე, რომ ამ მიზნით ამ do / ხოლო loop. 19 00:00:48,460 --> 00:00:52,420 ჩვენ ვაგრძელებთ looping ხოლო დოლარი ნაკლებია, ვიდრე ნულოვანი. 20 00:00:52,420 --> 00:00:56,960 და do / ხოლო loop არის სწორი გამოყენება აქ, რადგან ჩვენ უნდა ვთხოვო 21 00:00:56,960 --> 00:01:00,290 პროფაილი ერთხელ მაინც რამდენ ბევრი ფული კუთვნილს. 22 00:01:00,290 --> 00:01:05,040 >> ასე რომ ერთხელ ჩვენ რომ ნომერი დოლარი, ჩვენ ვხედავთ, რომ აქ გვაქვს int ცენტი 23 00:01:05,040 --> 00:01:08,630 შეადგენს რაუნდი დოლარი times CENTS_PER_DOLLAR. 24 00:01:08,630 --> 00:01:10,740 ზედა, ჩვენ ვხედავთ, რომ CENTS_PER_DOLLAR არის 25 00:01:10,740 --> 00:01:13,750 sensibly განისაზღვრება, როგორც 100. 26 00:01:13,750 --> 00:01:16,270 რა არის ეს ხაზი აკეთებს? 27 00:01:16,270 --> 00:01:21,200 >> ისე, თუ გახსოვთ, მცურავი წერტილი ღირებულებები არ არის საკმაოდ ზუსტი. 28 00:01:21,200 --> 00:01:25,470 განსხვავებით რიცხვებით, ჩვენ ვერ წარმოადგენს მცურავი პუნქტიანი ღირებულებების ზუსტად. 29 00:01:25,470 --> 00:01:28,660 იქ ყოველთვის რაღაც საქართველოს ორაზროვნება. 30 00:01:28,660 --> 00:01:32,840 ასე რომ, ჩვენ ურჩევნია მუშაობა მხოლოდ რიცხვებით მთელი ამ პრობლემას. 31 00:01:32,840 --> 00:01:42,690 და აქ, თუ მომხმარებელი შევიდა $ 3.42, ჩვენ კონვერტაცია, რომ 342 ცენტი და 32 00:01:42,690 --> 00:01:45,900 დამრგვალება, უბრალოდ მოშორება რომელიმე რომ ორაზროვნება. 33 00:01:45,900 --> 00:01:49,940 >> ასე რომ ერთხელ ჩვენ ნომერი ცენტი მთელი რიცხვი, შეგვიძლია გავაგრძელოთ 34 00:01:49,940 --> 00:01:51,730 დანარჩენი პროგრამა. 35 00:01:51,730 --> 00:01:55,910 ჩვენ ვხედავთ, აქ რომ ჩვენ ვაცხადებთ რიცხვი მონეტები, რომელიც ჩვენ მხოლოდ გამოიყენოს 36 00:01:55,910 --> 00:01:59,560 ტრეკზე საერთო ნომერი მონეტები. 37 00:01:59,560 --> 00:02:01,590 აქ, ჩვენ გვაქვს ჩვენი პირველი ხოლო loop. 38 00:02:01,590 --> 00:02:06,780 >> ჩვენ ვხედავთ, ხოლო ცენტი მეტია ან ტოლი კვარტალში, რომელიც ზემოთ არის hash 39 00:02:06,780 --> 00:02:14,680 განისაზღვრება, როგორც 25, ხოლო მართალია, ჩვენ გვინდა გავზარდოთ ჩვენი რაოდენობის მონეტები 40 00:02:14,680 --> 00:02:18,350 და decrement ცენტი by კვარტალში. 41 00:02:18,350 --> 00:02:22,810 გახსოვდეთ, რომ ეს სინტაქსი უდრის ცენტი 42 00:02:22,810 --> 00:02:26,020 შეადგენს ცენტი მინუს კვარტალში. 43 00:02:26,020 --> 00:02:28,170 ეს არის იგივე. 44 00:02:28,170 --> 00:02:31,850 >> რა არის ეს, ხოლო loop აკეთებს? 45 00:02:31,850 --> 00:02:39,260 იდეა აქ არის ის, რომ, თუ მე ვიცი $ 3.42 კუთვნილს, შემიძლია გააგრძელოს მიცემა 46 00:02:39,260 --> 00:02:42,670 მეოთხედი სანამ მე ვერ აძლევს მეოთხედი აღარ. 47 00:02:42,670 --> 00:02:47,720 მე ვერ აძლევს მეოთხედი აღარ, ერთხელ მე მოცემული $ 3.25. 48 00:02:47,720 --> 00:02:53,300 >> ასე რომ, კიდევ ერთხელ, რომ იმ შემთხვევაში, ჩვენ დაარღვიოს ამ ხოლო loop. 49 00:02:53,300 --> 00:02:57,650 Cents დარჩება 17 ცენტი. 50 00:02:57,650 --> 00:03:01,910 და ჩვენ გავაგრძელებთ ქვემოთ შემდეგი ხოლო მარყუჟის, სადაც ჩვენ ვამბობთ, ხოლო ცენტი 51 00:03:01,910 --> 00:03:04,270 მეტია ან ტოლია dime. 52 00:03:04,270 --> 00:03:07,420 >> და ახლა ჩვენ ვაკეთებთ იგივე ზუსტი რაც ჩვენ გავაკეთეთ კვარტალში შემთხვევაში, 53 00:03:07,420 --> 00:03:09,010 გარდა dimes. 54 00:03:09,010 --> 00:03:15,050 ასე რომ $ 0.17, ჩვენ loop სანამ ჩვენ შეგვიძლია აღარ მისცეს dime, რომელიც 55 00:03:15,050 --> 00:03:16,680 ზუსტად ერთხელ. 56 00:03:16,680 --> 00:03:20,470 და მაშინ ჩვენ უნდა დარჩეს 7 ცენტი. 57 00:03:20,470 --> 00:03:24,730 >> მაშინ ჩვენ გაგრძელდება nickels, რომელიც იქნება loop სანამ ჩვენ არ შეგვიძლია 58 00:03:24,730 --> 00:03:29,420 რაიმე უფრო nickels, რომელიც დაგვტოვებთ ორი ცენტი. 59 00:03:29,420 --> 00:03:34,400 და შემდეგ, ქვემოთ ბოლოში, ჩვენ გვაქვს pennies, რომელიც loop და იქნება 60 00:03:34,400 --> 00:03:37,140 საბოლოოდ დაგვტოვებთ ნულოვანი ცენტი. 61 00:03:37,140 --> 00:03:41,670 მაშინ ბოლოს, ჩვენ უბრალოდ უნდა ამობეჭდოთ ჩვენი მონეტები. 62 00:03:41,670 --> 00:03:44,980 >> ასე რომ, ეს პროგრამა იდეალურად სწორი. 63 00:03:44,980 --> 00:03:47,310 მაგრამ ჩვენ შეგვიძლია რეალურად გავაკეთოთ ცოტა უკეთესი. 64 00:03:47,310 --> 00:03:52,660 ახლა თუ ვიტყვი, რომ მე მმართებს $ 10,000, თქვენ არ უნდა წავიდეთ აქ არის ერთ ერთი 65 00:03:52,660 --> 00:03:55,310 კვარტალში, ორი კვარტლის, სამი მეოთხედი. 66 00:03:55,310 --> 00:03:59,450 თქვენ უნდა იცოდეს, დაუყოვნებლივ, რომ მე მმართებს 40,000 მეოთხედი. 67 00:03:59,450 --> 00:04:04,070 >> ახლა მოდით შევხედოთ პროგრამა, რომელიც ამუშავებს მას ცოტა უკეთესი. 68 00:04:04,070 --> 00:04:07,190 ამ მობილური რამ, ჩვენ მაინც უნდა ვთხოვო შესახებ ოდენობით 69 00:04:07,190 --> 00:04:10,930 ცვლილება, რომელიც მათ სურთ, ზუსტად იგივე გზა გავაკეთეთ ადრე. 70 00:04:10,930 --> 00:04:14,110 ჩვენ უნდა გარშემო ზუსტად გზა გავაკეთეთ ადრე. 71 00:04:14,110 --> 00:04:17,910 და ჩვენ კიდევ გვაქვს ჩვენი მონეტები რიცხვი განაცხადა, ზუსტად ისევე, როგორც ადრე. 72 00:04:17,910 --> 00:04:21,399 >> ასე რომ აქ, სადაც ყველაფერი კიდევ ცოტა განსხვავებული. 73 00:04:21,399 --> 00:04:24,640 ვაკეთებთ მონეტები plus შეადგენს ცენტი იყოფა კვარტალში 74 00:04:24,640 --> 00:04:27,140 სადაც კვარტალში 25. 75 00:04:27,140 --> 00:04:31,790 რა ამ ამბობს არის, მიიღოს როგორც ბევრი კვარტლის როგორც შეგიძლიათ შეხვიდეთ ცენტი და დამატება 76 00:04:31,790 --> 00:04:33,030 რომ მონეტები. 77 00:04:33,030 --> 00:04:40,100 >> ასე რომ, თუ ცენტი არის 142, 142 იყოფა 25 გვაძლევს 5. 78 00:04:40,100 --> 00:04:43,950 გახსოვდეთ, რომ მთელი განყოფილება ავტომატურად truncates. 79 00:04:43,950 --> 00:04:46,870 ასე რომ, ჩვენ ვაკეთებთ მონეტები plus შეადგენს 5. 80 00:04:46,870 --> 00:04:51,850 >> მაშინვე ამის შემდეგ, ჩვენ ვამბობთ ცენტი ტოლია ცენტი mod კვარტალში. 81 00:04:51,850 --> 00:04:57,150 გახსოვდეთ, რომ mod ოპერატორს აძლევს us დარჩენილი გაყოფის შემდეგ. 82 00:04:57,150 --> 00:05:05,840 ასე რომ 142 mod კვარტალში, რომელიც მისცემს არის 142 მინუს 125, რომელიც არის 17. 83 00:05:05,840 --> 00:05:10,470 სწორედ დარჩენილი შემდეგ აკეთებს 142 იყოფა 25. 84 00:05:10,470 --> 00:05:13,040 >> ახლა ცენტი უდრის 17. 85 00:05:13,040 --> 00:05:16,080 და ჩვენ იგივეს ზუსტი რამ dimes. 86 00:05:16,080 --> 00:05:18,620 17 გაყოფილი 10 მოგვცემს 1. 87 00:05:18,620 --> 00:05:20,150 და ჩვენ დავამატებთ, რომ მონეტები. 88 00:05:20,150 --> 00:05:25,380 და მაშინ ჩვენ განახლება ცენტი იყოს 17 mod 10, რომელიც არის 7. 89 00:05:25,380 --> 00:05:27,200 >> და შემდეგ იგივე nickels. 90 00:05:27,200 --> 00:05:29,180 7 იყოფა 5 1. 91 00:05:29,180 --> 00:05:30,880 სანიშნეს რომ მონეტები. 92 00:05:30,880 --> 00:05:34,600 და შემდეგ 7 mod 5 2. 93 00:05:34,600 --> 00:05:35,910 და ეს ჩვენი ცენტი. 94 00:05:35,910 --> 00:05:39,065 >> და მაშინ, pennies, იქ არ არის რეალური წერტილი გამყოფი ან მოდინგი, რადგან, 95 00:05:39,065 --> 00:05:42,170 თუ ჩვენ გვაქვს $ 0.2 დარჩენილი, ჩვენ შეგვიძლია უბრალოდ დაუყოვნებლივ დავამატოთ, რომ 96 00:05:42,170 --> 00:05:43,590 ჩვენი მონეტები. 97 00:05:43,590 --> 00:05:48,210 და ბოლოს, ჩვენ უნდა ამობეჭდოთ ჩვენი ნომერი მონეტები და, სურვილისამებრ, 98 00:05:48,210 --> 00:05:52,100 დაბრუნებას 0 დასასრულს ჩვენი პროგრამა ნიშნავდეს ყველაფერი მუშაობდა. 99 00:05:52,100 --> 00:05:53,120 >> ჩემი სახელი არის რობ. 100 00:05:53,120 --> 00:05:54,020 და ეს იყო Greedy. 101 00:05:54,020 --> 00:05:57,620 >> [მუსიკის დაკვრა] 102 00:05:57,620 --> 00:06:01,515