1 00:00:00,000 --> 00:00:00,500 2 00:00:00,500 --> 00:00:01,960 SPEAKER : 1의 물에 대해 얘기하자. 3 00:00:01,960 --> 00:00:07,280 이 문제에서 우리는 말할 사용자에게 우리 시간 분에서 자신의 샤워이었다 4 00:00:07,280 --> 00:00:11,040 그리고, 우리는 동등한를 계산 물 병의 수 5 00:00:11,040 --> 00:00:12,970 자신의 샤워를 사용하는 것이. 6 00:00:12,970 --> 00:00:16,379 >> 그래서 우리의 할 일의 무엇인가 이 문제에 대한? 7 00:00:16,379 --> 00:00:20,050 첫째, 우리는 할거야 메시지를 표시 한 다음 확인하기 8 00:00:20,050 --> 00:00:22,100 사용자가 우리에게주는 입력. 9 00:00:22,100 --> 00:00:24,790 우리는 우리를 확인하면 유효한 사용자 입력을 가지고, 10 00:00:24,790 --> 00:00:28,230 우리는을 계산하는거야 물 병의 동등한 수 11 00:00:28,230 --> 00:00:30,770 사용자는 중에 있다고 그들의 샤워기, 우리는있어 12 00:00:30,770 --> 00:00:33,720 에 의해 그들에게 것 그 번호를 인쇄. 13 00:00:33,720 --> 00:00:37,230 >> 그럼 우리의 첫 번째를 해결하자 작업, 프롬프트 및 검증 14 00:00:37,230 --> 00:00:38,550 사용자 입력. 15 00:00:38,550 --> 00:00:40,910 이를 위해 우리가 작성한 당신이 호출을위한 기능 16 00:00:40,910 --> 00:00:43,950 CS50 라이브러리에있는 GET_INT. 17 00:00:43,950 --> 00:00:48,710 GET_INT는 사용자 입력을 보장 정수, 어떤 양수 때문에, 18 00:00:48,710 --> 00:00:51,700 음수, 또는 제로는 모두 허용됩니다. 19 00:00:51,700 --> 00:00:55,900 그러나 사용자가 무엇을 입력하면, 그래서 문자 또는 숫자의 조합 20 00:00:55,900 --> 00:00:59,710 또는 소수 후, 사용자는 다시 시도하라는 메시지가 표시됩니다 21 00:00:59,710 --> 00:01:04,319 그리고 함수는 아무 것도 허용하지 않습니다 사용자는 그들에게 정수를 제공 할 때까지. 22 00:01:04,319 --> 00:01:06,410 >> 그래서 우리가 어떻게 GET_INT을 사용합니까? 23 00:01:06,410 --> 00:01:10,830 당신이 당신의 작업 공간을 열 경우와 하자 integer.c라는 이름의 파일을 생성 24 00:01:10,830 --> 00:01:12,110 다음을 입력합니다. 25 00:01:12,110 --> 00:01:14,760 해시 태그는 cs50.h. 포함 26 00:01:14,760 --> 00:01:18,480 이 GET_INT 때문에 필요하다 CS50 라이브러리 함수이고, 27 00:01:18,480 --> 00:01:21,890 그래서 우리는 다음과 해시 태그합니다 순서 선언 28 00:01:21,890 --> 00:01:23,370 기능을 사용할 수 있습니다. 29 00:01:23,370 --> 00:01:26,570 그리고 내 메인에 난 그냥 갈거야 기능 30 00:01:26,570 --> 00:01:29,560 단순히 기능 GET_INT를 호출합니다. 31 00:01:29,560 --> 00:01:31,750 >> 그래서이 작업을 실행할 수 있도록하고 작동 방법을 참조하십시오. 32 00:01:31,750 --> 00:01:35,092 나는 이미 컴파일, 그렇게하자했습니다 그냥 가서이 프로그램을 실행, 33 00:01:35,092 --> 00:01:36,480 ./정수. 34 00:01:36,480 --> 00:01:39,880 여기에 내가 프롬프트를 가지고 여기에 값을 어디에 입력합니다. 35 00:01:39,880 --> 00:01:44,880 난 그냥 어떤 정수에 넣어 말 (50), 프로그램 공개됨과 종료됩니다 36 00:01:44,880 --> 00:01:45,960 그리고 그입니다. 37 00:01:45,960 --> 00:01:49,350 >> 하지만 난 다시 실행 말 다른 I 입력 뭔가. 38 00:01:49,350 --> 00:01:51,350 아마, 안녕하세요. 39 00:01:51,350 --> 00:01:55,660 즉, 그래서 정수 아니다 프로그램은 다시 시도 나 메시지가 표시됩니다. 40 00:01:55,660 --> 00:01:59,160 이제 다시 해보자 아마도 소수점이 시간. 41 00:01:59,160 --> 00:02:03,450 0.5 다시이 아닌 정수 때문에 프로그램은 그것을 허용하지 않습니다 42 00:02:03,450 --> 00:02:05,290 그리고 다시 시도 말해 있습니다. 43 00:02:05,290 --> 00:02:07,070 그럼 그것을 다른 번호를 부여 할 수 있습니다. 44 00:02:07,070 --> 00:02:09,830 프로그램은이를 받아 종료, 우리는 완료됩니다. 45 00:02:09,830 --> 00:02:13,520 >> 그래서 지금 우리는 기능을 가지고 그것은 우리와를 보장 할 수 있습니다 46 00:02:13,520 --> 00:02:16,790 사용자는 입력이 있는지 정수,하지만 우리가 어떻게 할 수 47 00:02:16,790 --> 00:02:20,330 실제로 추적 정수 사용자에 의해 입력? 48 00:02:20,330 --> 00:02:25,260 글쎄, 우리가 할 수 있습니다 모든 가게 변수에이 값은, n은 말한다. 49 00:02:25,260 --> 00:02:30,580 그래서 내가 정수 n을 선언하는 경우, 나는, GET_INT 해당 값을 설정 50 00:02:30,580 --> 00:02:34,700 다음 N 다음 저장합니다 어떤 입력 된 사용자 가치를. 51 00:02:34,700 --> 00:02:38,620 >> 모든 권리는, 이제 우리는 것을 보장했다 사용자는 우리에게 정수를 줄 것이다 52 00:02:38,620 --> 00:02:42,550 우리는 추적하는 방법을 알고 정수의,하지만 기억, 53 00:02:42,550 --> 00:02:45,610 정수는 긍정과 부정 모두 있습니다. 54 00:02:45,610 --> 00:02:49,110 그래서 정말 이해가되지 않습니다 이 문제의 맥락에서 55 00:02:49,110 --> 00:02:53,570 사용자는 샤워를 소요 의 마이너스 12 분 말한다. 56 00:02:53,570 --> 00:02:59,310 그래서 우리는 사용자가 확인해야 실제로 우리에게 양의 정수를 제공합니다. 57 00:02:59,310 --> 00:03:02,130 이제 우리는 단지이 없습니다 그것을위한 하나의 함수, 58 00:03:02,130 --> 00:03:04,620 그래서 우리는 할 겁니다 자신 있음을 만들 수 있습니다. 59 00:03:04,620 --> 00:03:07,190 >> 그래서 우리는 지속적를 원하는 사용자에게 메시지를 표시 60 00:03:07,190 --> 00:03:09,730 그들은 우리에게 양의 정수를 줄 때까지. 61 00:03:09,730 --> 00:03:14,300 나는 계속해서 무언가를하고 있어요 경우 즉, 루프, 반복 유사합니다. 62 00:03:14,300 --> 00:03:19,130 우리가 사용하는 구조 중 하나 그래서 C에서 반복과 루프를 구현하는 63 00:03:19,130 --> 00:03:20,410 while 루프입니다. 64 00:03:20,410 --> 00:03:23,020 그래서 while 루프, 등 여기에 표시, 실행합니다 65 00:03:23,020 --> 00:03:27,030 루프의 몸체로 뭐든 주어진 조건을 평가 한 66 00:03:27,030 --> 00:03:27,900 true로. 67 00:03:27,900 --> 00:03:30,640 즉시 그 조건으로 다음, false로 평가 68 00:03:30,640 --> 00:03:34,830 프로그램으로 진행됩니다 어떤 루프의 몸 후에 온다. 69 00:03:34,830 --> 00:03:39,400 >> 루프로 이동하는 동안 그래서 CS50 정말 유용합니다. 70 00:03:39,400 --> 00:03:42,590 그러나이 특히 경우, 우리는 우리가 거​​ 알아 71 00:03:42,590 --> 00:03:48,140 적어도 사용자에게 메시지를 표시 할 것 한 번 만 루프 필요한 경우. 72 00:03:48,140 --> 00:03:51,080 그래서 여기에 우리는 온 특수 구조 및 그건 73 00:03:51,080 --> 00:03:55,020 그동안 매우 유사 루프는 DO-whil​​e 루프를했다. 74 00:03:55,020 --> 00:03:58,840 >> 그래서 DO-whil​​e 루프가 실행 루프의 몸에 한 번 이상 75 00:03:58,840 --> 00:04:01,750 다음은 확인합니다 그것이 실행해야하는지 76 00:04:01,750 --> 00:04:05,310 while 루프와 달리, 어떤 조건을 확인합니다 77 00:04:05,310 --> 00:04:07,200 다음 몸을 실행합니다. 78 00:04:07,200 --> 00:04:11,880 그래서 DO-whil​​e 루프에서 무엇을 우리는 수도 이렇게 정수에 대해 사용자에게 메시지를 표시하고, 79 00:04:11,880 --> 00:04:14,450 다음은 무효입니다 아닌지 확인합니다. 80 00:04:14,450 --> 00:04:18,130 그것이 잘못이라면, 우리는거야 사용자가 요청하는 과정을 반복 81 00:04:18,130 --> 00:04:22,290 그 다음 우리에게 또 다른 정수를주고,하는 이 정수가 유효한 경우에만 82 00:04:22,290 --> 00:04:25,060 우리는 계속됩니다 무엇이든 나중에 온다. 83 00:04:25,060 --> 00:04:28,030 >> 이제 있음을 알 수 있습니다 정수 n의 선언 84 00:04:28,030 --> 00:04:31,670 약간 다른 우리 앞의 예에서 이전과 85 00:04:31,670 --> 00:04:33,640 그리고 이는 범위이다. 86 00:04:33,640 --> 00:04:37,920 우리는 내부의 정수 n을 선언 한 경우 DO-whil​​e 루프의 몸, 87 00:04:37,920 --> 00:04:42,640 우리는 접근 할 수 없을 것입니다 그 곱슬 외부 N의 값 88 00:04:42,640 --> 00:04:45,050 루프의 본체를 나타내는 교정기. 89 00:04:45,050 --> 00:04:51,080 그러나 우리는 사실에 접근하고 싶어 나중에 우리 프로그램의 N의 값입니다. 90 00:04:51,080 --> 00:04:55,730 >> OK, 지금의 얘기하자 이 조건은해야 무슨. 91 00:04:55,730 --> 00:05:00,400 우리는 단지를 다시 메시지 표시 할 사용자로 긴 n은 무효 때문이다. 92 00:05:00,400 --> 00:05:04,640 그래서 자신에게 생각 무효 얼마나 정수 값과 같을 것이다 93 00:05:04,640 --> 00:05:08,060 다음 부울을 만들 표현은 그 표현. 94 00:05:08,060 --> 00:05:13,070 >> 우리는 거의 우리의 하위 작업으로 완료 의 메시지를 표시하고 사용자 입력의 유효성을 검사. 95 00:05:13,070 --> 00:05:16,010 그래서이 조금 만들어 보자 좀 더 사용자 친화적에게 96 00:05:16,010 --> 00:05:18,390 사용자에게 조금 줄 좀 더 정보 97 00:05:18,390 --> 00:05:20,510 어떤 우리는 그들에게 메시지를 표시하고 있습니다. 98 00:05:20,510 --> 00:05:24,500 그래서이 당, 사용자에게 메시지를 표시 할 수 사양, 문자열 분. 99 00:05:24,500 --> 00:05:28,935 그래서 당신의 printf 문을 사용하여 만들 당신이 정확히 일치하는지 확인합니다. 100 00:05:28,935 --> 00:05:30,230 >> 괜찮아. 101 00:05:30,230 --> 00:05:33,840 그래서 지금 우리는 유효한 사용자가 입력 양수 102 00:05:33,840 --> 00:05:37,400 몇 분 동안 값 그들은 샤워를 보냈다. 103 00:05:37,400 --> 00:05:41,300 그래서 다음 것은 계산하는 것입니다 병에 해당하는 숫자입니다. 104 00:05:41,300 --> 00:05:45,250 우리가 여기서 할 수있는거야 무엇 처음에 당신에게 매우 분명, 105 00:05:45,250 --> 00:05:46,640 그것은 OK입니다. 106 00:05:46,640 --> 00:05:49,320 우리가 원하는 것은 우리입니다 연습을 시작하려면 107 00:05:49,320 --> 00:05:53,810 패턴을 검출하는 아이디어 이 문제에 대한 공식을 개발하고 있습니다. 108 00:05:53,810 --> 00:05:57,200 >> 그래서 우리는 사양에 따라 말 것 샤워 그 일분 109 00:05:57,200 --> 00:05:59,960 약에 해당 물 12 병입니다. 110 00:05:59,960 --> 00:06:03,020 그럼 이분은 것 (24)에 상응하는, 111 00:06:03,020 --> 00:06:05,850 5 분은 것 (60)에 해당합니다. 112 00:06:05,850 --> 00:06:08,390 그래서 지금 당신이 생각하는 경우 당신이있어, 다음의하자 113 00:06:08,390 --> 00:06:10,390 당신이 올 수 있는지 패턴이나 식 114 00:06:10,390 --> 00:06:14,990 우리가 말할 경우, 표현하려면 n 물 분, 얼마나 많은 병 115 00:06:14,990 --> 00:06:17,930 즉, N으로 표현 될 것인가? 116 00:06:17,930 --> 00:06:20,680 >> 다시 말하지만, 비록이 처음에는 간단 할 수 있습니다, 117 00:06:20,680 --> 00:06:23,240 나중에 우리가 얻을 때에 더 복잡한 문제 118 00:06:23,240 --> 00:06:26,360 우리는에 얻고 싶은거야 식별하는 연습 119 00:06:26,360 --> 00:06:30,120 패턴과 개발 식 이 일을 알아낼 수 있습니다. 120 00:06:30,120 --> 00:06:33,450 >> C에서 당신은에 액세스 할 수 있습니다 표준 산술 연산, 121 00:06:33,450 --> 00:06:36,520 덧셈, 뺄셈, 곱셈, 나눗셈. 122 00:06:36,520 --> 00:06:38,420 그래서 나는 그것을 떠날거야 당신은 지금 파악하기 123 00:06:38,420 --> 00:06:41,300 을 표현하는 방법 병의 동등한 수 124 00:06:41,300 --> 00:06:43,990 사용자는 소비 된 것을 자신의 샤워하는 동안. 125 00:06:43,990 --> 00:06:45,700 >> 좋아, 우리는 거의 완료됩니다. 126 00:06:45,700 --> 00:06:50,650 우리는 그들의 사용자에게 입력하라는 메시지가 표시했습니다, 우리는 유효한 입력 있다는 보장 한, 127 00:06:50,650 --> 00:06:53,330 그리고, 우리는 밖으로 방법을 냈어요 등가를 계산하는 128 00:06:53,330 --> 00:06:55,480 그들이 소비 병의 수입니다. 129 00:06:55,480 --> 00:06:59,430 그렇게 할 수있는 마지막 것은 출력입니다 병에 해당하는 수 130 00:06:59,430 --> 00:07:02,410 희망 권장 그들에게 약간의 물을 절약합니다. 131 00:07:02,410 --> 00:07:06,270 >> 값을 출력하는 것 printf와 문합니다. 132 00:07:06,270 --> 00:07:09,720 난 당신이 내가 말하고 싶었다면 예를 들어, 세 애완 동물을 가지고 133 00:07:09,720 --> 00:07:13,090 나는의 printf 문을 사용할 수 있습니다 그 같은 것을 보인다. 134 00:07:13,090 --> 00:07:15,880 I는 새로운 3 애완 동물이 있고 좋은 서식을위한 라인. 135 00:07:15,880 --> 00:07:17,880 >> 이제 우리는 싶지 않아 단순히 하드 코드 것. 136 00:07:17,880 --> 00:07:20,740 의 수를 말해 내 애완 동물은 시간이 지남에 따라 변경됩니다. 137 00:07:20,740 --> 00:07:25,080 그럼 난을 활용거야 내 printf의 문에 자리. 138 00:07:25,080 --> 00:07:27,350 그래서 여기 내 번호는 정수이다. 139 00:07:27,350 --> 00:07:31,480 그래서 자리를 만들려고 해요 %의 난을 사용하여 정수. 140 00:07:31,480 --> 00:07:33,930 나는 문자열을 작성하는거야, 다음 문자열 후 141 00:07:33,930 --> 00:07:38,000 나는 그 다음에 쉼표와 쓰기 나는 인쇄 할 변수입니다. 142 00:07:38,000 --> 00:07:42,730 그 값을 인쇄 할 수 있도록 그 자리 %의 내가 대신한다. 143 00:07:42,730 --> 00:07:47,630 >> 당신은 같은 자리를 사용할 수 있습니다 음, % f를 가진 수레합니다. 144 00:07:47,630 --> 00:07:50,420 또한 여러 수 있습니다 문자열의 자리. 145 00:07:50,420 --> 00:07:53,950 예를 들어, 내가 어떤 번호가있는 경우 개와 고양이의 일부 수의, 146 00:07:53,950 --> 00:07:59,210 나는 여기에 다음 두 자리를 넣어 각각의 순서에 내 두 변수. 147 00:07:59,210 --> 00:08:03,130 >> 그래서 지금 우리가 인쇄하는 방법을 알고 변수에 저장된 값, 148 00:08:03,130 --> 00:08:06,030 에 매우 마지막 수행은 우리를 보장하는 것입니다 149 00:08:06,030 --> 00:08:10,920 정확한 형식으로 값을 출력 명세서에 나타내었다. 150 00:08:10,920 --> 00:08:14,990 즉, 우리는 메시지가 표시 한 사용자와 그들의 입력을 확인. 151 00:08:14,990 --> 00:08:17,920 우리는 다음에 해당하는 계산 한 물 병의 수 152 00:08:17,920 --> 00:08:22,100 그들의 샤워 중에 소비 것을 우리는 그들에게 그 값을 출력했습니다. 153 00:08:22,100 --> 00:08:24,440 그래서, 우리는 물을 완료했습니다. 154 00:08:24,440 --> 00:08:28,730 >> 내 이름은 [? Zamila?] 이것은 CS50이다. 155 00:08:28,730 --> 00:08:29,909