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 >> ROB 보덴 : 안녕하세요. 4 00:00:12,500 --> 00:00:13,230 롭 해요. 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 / 루프 동안. 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 사용자로부터 떠. 13 00:00:32,450 --> 00:00:35,200 이 기능을 사용하기 위해, 기억, 우리는 포함 해시해야 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 그리고 그 목적의 이 할 일의 / 루프 동안. 19 00:00:48,460 --> 00:00:52,420 달러 동안 우리는 계속해서 반복 0보다 작습니다. 20 00:00:52,420 --> 00:00:56,960 그리고 할 일 / 루프 동안 옳은 일 우리가 요청해야하기 때문에, 여기에 사용하는 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 배의 달러 라운드에 해당 CENTS_PER_DOLLAR. 24 00:01:08,630 --> 00:01:10,740 상단에, 우리는 볼 CENTS_PER_DOLLAR입니다 25 00:01:10,740 --> 00:01:13,750 현명하게 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 여기에서, 우리는 우리의 첫번째 while 루프가 있습니다. 38 00:02:01,590 --> 00:02:06,780 >> 센트보다 크거나 동안 우리는 참조 위의 해시 분기와 동일 39 00:02:06,780 --> 00:02:14,680 그 사실이지만 우리는 25로 정의 동전의 우리의 수를 증가 할 40 00:02:14,680 --> 00:02:18,350 와 분기 별 감소 센트. 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 >> 따라서이 while 루프는 무엇을하고 있습니까? 45 00:02:31,850 --> 00:02:39,260 여기에서 아이디어는, 그 나는 $ 3.42를 알고있는 경우 빚, 내가주는 계속 46 00:02:39,260 --> 00:02:42,670 분기 I 줄 수 없을 때까지 분기 더 이상. 47 00:02:42,670 --> 00:02:47,720 나는, 분기에게 더 이상 줄 수 없다 나는 $ 3.25를 준 후. 48 00:02:47,720 --> 00:02:53,300 >> 그런 경우 일단 그럼, 우리는거야 이 while 루프의 탈옥. 49 00:02:53,300 --> 00:02:57,650 센트 17 센트에 남아있을 것입니다. 50 00:02:57,650 --> 00:03:01,910 그리고 우리는 다음까지 계속됩니다 우리가 말을하는 동안 루프 곳, 동안 센트 51 00:03:01,910 --> 00:03:04,270 보다 크거나 한푼도 동일하다. 52 00:03:04,270 --> 00:03:07,420 >> 그리고 지금 우리는 똑같은 일을하고 것은 우리는 분기 경우에 한 53 00:03:07,420 --> 00:03:09,010 센트를 제외하고. 54 00:03:09,010 --> 00:03:15,050 그래서 $ 0.17으로, 우리는 루프는 우리가 할 수있을 때까지거야 더 이상 한 푼도, 포기하지 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 >> 다음 우리는 센트에 계속 고객님은 우리는 루프를 줄 수없는 것까지 58 00:03:24,730 --> 00:03:29,420 더 이상 센트, 어떤 것 두 센트을 남겨둔다. 59 00:03:29,420 --> 00:03:34,400 그리고, 아래 하단에, 우리는이 동전, 어느 것 루프 것 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 우리는 동전 플러스 같음을하고있는 분기로 나누어 센트 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 그 정수 나누기 기억 자동으로 자릅니다. 79 00:04:43,950 --> 00:04:46,870 그래서 우리는 동전을하고 플러스 5에 해당하고 있습니다. 80 00:04:46,870 --> 00:04:51,850 >> 바로이 후, 우리는 말을하는지 센트 동일 센트 모드 분기. 81 00:04:51,850 --> 00:04:57,150 모드 운영자가주는 기억 분할 후 우리 나머지. 82 00:04:57,150 --> 00:05:05,840 그래서 142 모드 분기, 즉 줄 것이다 17 (142) (125)은 마이너스이다. 83 00:05:05,840 --> 00:05:10,470 즉, 나머지 이후의 25로 나눈 142 일. 84 00:05:10,470 --> 00:05:13,040 >> 그래서 지금 센트 (17)와 동일하다. 85 00:05:13,040 --> 00:05:16,080 그리고 우리는 똑같은 작업을 수행 임에 대한 것. 86 00:05:16,080 --> 00:05:18,620 10로 나눈 17 저희를 제공 할 것입니다. 87 00:05:18,620 --> 00:05:20,150 그리고 우리는 동전에 그 추가합니다. 88 00:05:20,150 --> 00:05:25,380 그리고 우리는 센트를 업데이트 7입니다 17 모드 10, 수. 89 00:05:25,380 --> 00:05:27,200 >> 그리고 센트에 대해 동일. 90 00:05:27,200 --> 00:05:29,180 5로 나눈 7은 1입니다. 91 00:05:29,180 --> 00:05:30,880 동전에 그를 추가합니다. 92 00:05:30,880 --> 00:05:34,600 그리고 7 모드 5는 2입니다. 93 00:05:34,600 --> 00:05:35,910 그리고 우리 센트입니다. 94 00:05:35,910 --> 00:05:39,065 >> 그리고, 페니를 위해, 실제가 없습니다 분할 또는 모딩에있는 점, 이후, 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 그리고 이것은 욕심이었다. 101 00:05:54,020 --> 00:05:57,620 >> [음악 연주] 102 00:05:57,620 --> 00:06:01,515