1 00:00:00,000 --> 00:00:11,280 2 00:00:11,280 --> 00:00:13,650 >> 스피커 1 : 좋아요. 3 00:00:13,650 --> 00:00:14,390 다시 오신 것을 환영합니다. 4 00:00:14,390 --> 00:00:19,260 이 CS50의 둘째 주이며, 우리는이 지금까지하지만 기능을 사용하고 5 00:00:19,260 --> 00:00:20,830 당연한 대부분을 촬영. 6 00:00:20,830 --> 00:00:23,430 우리는이있는 printf를 사용했습니다 인쇄 부작용 7 00:00:23,430 --> 00:00:24,110 화면에서 확인해보세요. 8 00:00:24,110 --> 00:00:25,790 우리가 얻는 int를 사용했습니다, 플로트를 얻을. 9 00:00:25,790 --> 00:00:29,230 >> 그러나 당신은 실제로 만들어 무엇을하려는 경우 당신의 자신의 기능 일부 등 10 00:00:29,230 --> 00:00:31,740 당신은 이미 시작했습니다 수 문제 설정 하나, 그래도 위해 할 11 00:00:31,740 --> 00:00:33,140 엄격하게 필요하지? 12 00:00:33,140 --> 00:00:37,150 글쎄, 그건 앞서 가서 방문하자 단지의 사용자를 묻는 문제 13 00:00:37,150 --> 00:00:40,660 에 자신의 이름과 인쇄가 뭔가 화면하지만, 일부를 인수 분해하려고 14 00:00:40,660 --> 00:00:44,000 우리가 잘하고, 공통성 지금까지 우리의 코드에서 볼. 15 00:00:44,000 --> 00:00:45,120 그래서 그것에 의해 나는 다음을 의미합니다. 16 00:00:45,120 --> 00:00:47,315 >> 내가 가서 만들려고 새로운 프로그램은 단지 전화 17 00:00:47,315 --> 00:00:49,320 그것은 평소처럼 HELLO.C. 18 00:00:49,320 --> 00:00:53,730 내가 가서 자신을 줄거야 상단에 표준 io.h에는이 (가) 있습니다. 19 00:00:53,730 --> 00:00:57,040 나는 또한 나 자신을주는거야 선제 CS50 라이브러리 있도록 20 00:00:57,040 --> 00:00:59,080 나는 컴파일러 렀하지 않습니다. 21 00:00:59,080 --> 00:01:02,400 그리고 지금 나는 앞서 갈거야 및 중간, 메인, 무효를 선언합니다. 22 00:01:02,400 --> 00:01:09,020 >> 내가 원하는 곳 그리고 여기이은 에 기능을 아웃소싱하기 시작 23 00:01:09,020 --> 00:01:12,090 나는 자신있어하는 몇 가지 다른 기능 쓰려고하지만하지 않습니다 24 00:01:12,090 --> 00:01:13,820 현재 존재. 25 00:01:13,820 --> 00:01:19,210 예를 들어, 내가하고 싶다고 가정 날 수 있도록하는 함수를 작성 26 00:01:19,210 --> 00:01:23,830 안녕하세요, 쉼표를 인쇄하고, 다음 몇 가지 사용자의 이름을 입력합니다. 27 00:01:23,830 --> 00:01:29,010 printf의 수행을 계속하는 대신 안녕하세요, % s의, 그것은 만약 좋지 않을까 28 00:01:29,010 --> 00:01:33,380 라는 함수는 있었다 printf를하지만, 인쇄 이름이 아닙니다? 29 00:01:33,380 --> 00:01:36,600 >> 그래서 다른 말로, 내가 할 수있을 싶어요 조금을 수행하는 프로그램을 작성 30 00:01:36,600 --> 00:01:37,710 이런 식으로 뭔가. 31 00:01:37,710 --> 00:01:42,070 첫째, printf는 말할거야 당신의 이름이 있으므로 사용자를 프롬프트 32 00:01:42,070 --> 00:01:46,150 난 그때 나에게 자신의 이름을주고, 에 익숙한 문자열의를 사용하는 것 33 00:01:46,150 --> 00:01:47,290 문자열을 선언합니다. 34 00:01:47,290 --> 00:01:50,420 나에게 문자열 형식의 변수를 제공합니다 점에서 그것의 호출 및 저장 35 00:01:50,420 --> 00:01:52,120 문자열을 호출하는 결과. 36 00:01:52,120 --> 00:01:56,060 하지만 지금은 지난 주에, 나는 것 다소 지루하게 수행 안녕하세요, % S / N. 37 00:01:56,060 --> 00:01:58,630 38 00:01:58,630 --> 00:02:02,570 >> 다른 말로하면, 우리는 본 적이 시간의 예는 무리, 그리고의 39 00:02:02,570 --> 00:02:05,280 한 거기 때문에 예를 사소한 코드 라인은 그래서 정말 아니다 40 00:02:05,280 --> 00:02:06,860 큰 거래는 다시 계속 입력합니다. 41 00:02:06,860 --> 00:02:09,990 그러나 가정이 코드 줄 실제로 부담이되고, 그리고 한 42 00:02:09,990 --> 00:02:12,900 그것은 한 줄의 코드 아니지만 그것은 10의 코드 라인 지금부터 몇 주, 43 00:02:12,900 --> 00:02:15,190 그리고 당신은 피곤 있어요 복사 및 붙여 넣기 또는 44 00:02:15,190 --> 00:02:17,180 동일한 코드를 재 입력. 45 00:02:17,180 --> 00:02:22,100 대신 수행 좋지 않을까요 printf의 안녕, % s와 등, 46 00:02:22,100 --> 00:02:26,500 단지가 있다면 그것은 좋지 않을까 인쇄 이름이라는 함수 47 00:02:26,500 --> 00:02:27,560 인수를 - 48 00:02:27,560 --> 00:02:29,120 즉, 그것은 입력을 받아 - 49 00:02:29,120 --> 00:02:30,620 그리고 세미콜론. 50 00:02:30,620 --> 00:02:33,240 그래서 기능은, 그것은 않을 것 존재하는 경우 좋은 수? 51 00:02:33,240 --> 00:02:36,690 그럼 난에 대해 걱정할 필요가 없습니다 것입니다 printf의 무엇, 무엇을 % s와의 52 00:02:36,690 --> 00:02:39,400 이러한 복잡성 모든 것을 흥미 롭군요. 53 00:02:39,400 --> 00:02:40,570 그들은 유용합니다. 54 00:02:40,570 --> 00:02:44,700 >> 그래서 프린트 이름은 불행히도 아니었다 40 플러스 년 전을 발명했다. 55 00:02:44,700 --> 00:02:45,980 아무도 쓸 생각하지 않습니다. 56 00:02:45,980 --> 00:02:48,300 하지만 그 발생의 아름다움의 단지에서 같은 프로그래밍 언어, 57 00:02:48,300 --> 00:02:52,930 처음 그렇게, 사용자 정의 블록을 정의 할 수 있습니다 C와 대부분의 다른 언어, 당신은 할 수 있습니다 58 00:02:52,930 --> 00:02:57,260 자신의 기능을 정의 할 수 있습니다 당신은 당신의 자신의 함수를 정의합니다. 59 00:02:57,260 --> 00:03:01,710 우리는 주에 의해 얻을 수 있도록하더라도 자동으로 무료로, 우리는 선언 할 수 있습니다 60 00:03:01,710 --> 00:03:02,730 우리의 자신의 기능을 수행합니다. 61 00:03:02,730 --> 00:03:05,670 >> 그래서 여기까지 약간의 공간을 만들려고 해요 위로 위로, 나는 선언하는거야 내 62 00:03:05,670 --> 00:03:08,210 를 보는 것 자체 기능 거의 처음에는 이상한 그러나 우리는 올 것이다 63 00:03:08,210 --> 00:03:09,400 다시이 오래 전에합니다. 64 00:03:09,400 --> 00:03:12,310 나는이를 무효라고하는거야 이 기능을 나타내는 것은하지 65 00:03:12,310 --> 00:03:16,040 뭔가, 부작용이 있지만, 나에게 뭔가를 반환하지 않습니다 66 00:03:16,040 --> 00:03:18,810 또는 INT을 같은 방법으로 자체 않는 문자열을 얻는다. 67 00:03:18,810 --> 00:03:22,450 그리고이 함수에게 줄거야 인쇄 이름의 이름, 나는 갈거야 68 00:03:22,450 --> 00:03:26,470 이 사람이 걸릴 것입니다되도록 지정 문자열, 나는 그 전화를거야 69 00:03:26,470 --> 00:03:27,600 문자열 이름. 70 00:03:27,600 --> 00:03:32,100 나는 그것을 내가 원하는 무엇이든을 호출 할 수도 있지만 I 내 코드 자체 문서화되고 싶어요. 71 00:03:32,100 --> 00:03:34,770 다른 말로하면, 당신의 경우 하나에 있었다 이 파일을 열어 읽고, 당신은 수 72 00:03:34,770 --> 00:03:39,020 그 이름에서 추론의 종류 이 게임을하는데 어떤 역할을 입력. 73 00:03:39,020 --> 00:03:42,270 >> 그리고 이제 아래, 나는 열거야 중괄호와 닫힌 중괄호, 74 00:03:42,270 --> 00:03:47,140 그래서 내가 같은 따랐습니다 통지 라인에서 7 개의 등의 패턴 75 00:03:47,140 --> 00:03:51,622 나는 좋은 주 플러스 다음 봤는데 이제 선 아홉와 말 사이 76 00:03:51,622 --> 00:03:53,400 주요 구성 14. 77 00:03:53,400 --> 00:03:56,160 즉, 이름을 인쇄 또 다른 기능입니다. 78 00:03:56,160 --> 00:03:58,990 이제 컴파일러는 알고하지 않을 것입니다 자동으로이 일을 호출하는 79 00:03:58,990 --> 00:04:02,670 말 그대로 그냥 발명 때문에 하지만 주요 통화 여전히 알 수 80 00:04:02,670 --> 00:04:08,710 자동으로 다음 과정에 라인 13, 난 내 자신의 함수를 호출하고 있습니다. 81 00:04:08,710 --> 00:04:12,805 그리고, 내가 선언했던 기능 최대 주 전에 네 번째 줄, 82 00:04:12,805 --> 00:04:16,579 이 컴파일러를 가르 칠 것입니다 무엇을 인용, 맺다, "프린트 이름" 83 00:04:16,579 --> 00:04:18,140 을 의미하고 무엇을해야하는지. 84 00:04:18,140 --> 00:04:22,700 그래서 나는 그것을 새 사용자 지정을주는 일종의 해요 스크래치, 말의 맥락에서 차단합니다. 85 00:04:22,700 --> 00:04:27,240 >> 그래서 여기에, 그 매우 일반적인 넣을 수 있습니다 나는 계속 코드 나 반복 패턴 86 00:04:27,240 --> 00:04:32,300 수업 시간에 쓰기 printf를 % s의 안녕, % S / N ", - 87 00:04:32,300 --> 00:04:36,720 88 00:04:36,720 --> 00:04:37,590 여기 넣어 무엇을 할 수 있습니까? 89 00:04:37,590 --> 00:04:39,200 S? 90 00:04:39,200 --> 00:04:41,420 그래서 나는이 문맥에 이름을 넣어합니다. 91 00:04:41,420 --> 00:04:43,440 그래서 여기 이분법의 비트를 확인할 수 있습니다. 92 00:04:43,440 --> 00:04:47,680 난 내 자신의 함수를 선언하고 있기 때문에 나는 다소 임의적으로 호출 한 93 00:04:47,680 --> 00:04:50,880 그 이름을 인쇄하고, 나는 하였으므로 괄호 안에 지정한이 94 00:04:50,880 --> 00:04:55,035 함수는 하나의 인수의 형식을 사용합니다 이는 문자열입니다 - 그래서 단어의 95 00:04:55,035 --> 00:05:00,010 또는 구문 또는 뭔가 같은 -과 나는 그것을, 그 인수 이름을 부르 겠어요 96 00:05:00,010 --> 00:05:04,770 에서의 전용 변수를 의미 범위는, 말하자면, 이름입니다. 97 00:05:04,770 --> 00:05:07,780 >> S는 어떤 두 가지 사이에 존재 중괄호 물론? 98 00:05:07,780 --> 00:05:12,990 정말, 그냥 라인 10와 같은을 통해 잘 14 그래서 그냥 월요일에 같이 사용할 수 없습니다 99 00:05:12,990 --> 00:05:17,650 S,하지만 내가 할 수있는 것은 통과 인쇄 이름에 S. 100 00:05:17,650 --> 00:05:21,030 인쇄 이름은 그냥주고 발생 별명, 동의어, 별명, 101 00:05:21,030 --> 00:05:24,400 그 이름을 호출하고, 지금 이 라인에서 사용. 102 00:05:24,400 --> 00:05:26,840 이제 축소, 날이 저장할 수 있습니다. 103 00:05:26,840 --> 00:05:31,250 >> 내가 가서 인사합시다. 104 00:05:31,250 --> 00:05:32,400 좋아 보인다. 105 00:05:32,400 --> 00:05:36,110 오류를 뱉어하지 않았다. . 입력 / 안녕하세요. 106 00:05:36,110 --> 00:05:37,020 내 이름은 무엇입니까? 107 00:05:37,020 --> 00:05:38,060 데이비드. 108 00:05:38,060 --> 00:05:39,270 다윗 안녕하세요. 109 00:05:39,270 --> 00:05:41,820 그래서 모든 것을 흥분하지 하지만 지금 생각합니다. 110 00:05:41,820 --> 00:05:44,310 당신은 지금 같은 성분이 우리는에 스크래치에서했던 것처럼 111 00:05:44,310 --> 00:05:45,420 우리의 자신의 기능을합니다. 112 00:05:45,420 --> 00:05:46,770 >> 그러나 잡았다의 비트가있다. 113 00:05:46,770 --> 00:05:50,620 정말 생각하지 않았다한다고 가정 이 사실을 통해 내가하지 114 00:05:50,620 --> 00:05:54,250 정말 그것에 대해 생각하면 쓴 이 여기에 다운 기능. 115 00:05:54,250 --> 00:05:55,420 완벽하게 합리적인 느낀다. 116 00:05:55,420 --> 00:05:58,440 스크래치에 대한 개념이 없다 스크립트에 위치. 117 00:05:58,440 --> 00:06:00,670 하나는, 여기, 여기에 하나를 넣어 수 하나는 여기까지하고, 시작 수 있습니다 118 00:06:00,670 --> 00:06:03,310 당신이하지 않으면 좀 지저분를 찾으려면 그것을 깔끔하게 배치,하지만하지 않습니다 119 00:06:03,310 --> 00:06:05,910 물리적 스크립트 어디에 문제 화면에 있었다. 120 00:06:05,910 --> 00:06:09,660 불행하게도 C에 - 그리고 이것은 달리 자바와 파이썬 같은 언어 121 00:06:09,660 --> 00:06:13,600 당신은 잘 알고있을 수있는 다른 불행히도 C에서 주문한다 -로 122 00:06:13,600 --> 00:06:15,830 시계는 무엇 때문에 문제가 지금 일어날. 123 00:06:15,830 --> 00:06:19,010 >> 무슨 기본 기능 실행하는 것은 물론, 주요이다. 124 00:06:19,010 --> 00:06:22,290 마인의 인쇄 이름을 호출하는 것입니다 8 번째 줄,하지만 불행히도, 125 00:06:22,290 --> 00:06:26,660 컴파일러는 심지어 인쇄 이름을 알 수 없습니다 그것은 11 행에 도달 할 때까지 존재 126 00:06:26,660 --> 00:06:28,520 이는 불행히도 너무 늦게 될 것이다. 127 00:06:28,520 --> 00:06:30,660 그래서 안녕하세요 만들기의 할 수 있습니다. 128 00:06:30,660 --> 00:06:32,950 그리고 지금 빌어 먹을, 두 개의 오류가 생성됩니다. 129 00:06:32,950 --> 00:06:36,050 그래서 지금 내가 매우에 스크롤하자 처음으로 우리는 항상 수행해야하며 130 00:06:36,050 --> 00:06:39,560 그것이 저 소리 그건 알, 함수의 "암시 적 선언 131 00:06:39,560 --> 00:06:40,540 이름을 인쇄 할 수 있습니다. " 132 00:06:40,540 --> 00:06:43,860 >> 그래서 우리는이 메시지를 전에 본 적이, 함수의 암시 적 선언. 133 00:06:43,860 --> 00:06:48,080 때 우리는 오류의 종류를 볼 수 있나요? 134 00:06:48,080 --> 00:06:49,180 내가 라이브러리를 포함하지 않을 때. 135 00:06:49,180 --> 00:06:53,470 나는 cs50.h를 잊어 만약 내가 얻을 것이다 문자열을 int를 얻기 위해 고함. 136 00:06:53,470 --> 00:06:56,880 그러나이 경우,이 함수를 인쇄 이름은 오른쪽 라이브러리에없는? 137 00:06:56,880 --> 00:07:00,230 그렇게,이 파일에 문자 그대로의 무엇이 정말 문제? 138 00:07:00,230 --> 00:07:04,660 >> 잘 불행히도 C에서, 당신 소요 이렇게 믿을 수 없을만큼 문자 그대로하면 당신 139 00:07:04,660 --> 00:07:08,640 인쇄 이름으로라는 함수를 원하는 존재, 당신은 하나를 구현해야합니다 140 00:07:08,640 --> 00:07:11,940 당신의 가장 상단에 해당 기능 코드가 더 낮은 접근의 있도록 141 00:07:11,940 --> 00:07:15,070 기능을하지만, 솔직히 그이됩니다 매우 빠르게 별거. 142 00:07:15,070 --> 00:07:18,160 개인적으로, 내가 처음 주 바르지 다음은 매우 어떤이 취소되어 있기 때문에 143 00:07:18,160 --> 00:07:19,890 이 프로그램은 언뜻 않습니다. 144 00:07:19,890 --> 00:07:23,290 그리고 플러스, 당신은 이상한 구석으로 얻을 수 있습니다 x는 호출하려는 경우 예 145 00:07:23,290 --> 00:07:27,530 Y하지만 Y는 X를 사용 바로 호출 할 수 있습니다 물리적 사실 하나는 넣을 수 없습니다 146 00:07:27,530 --> 00:07:28,540 다른 이상. 147 00:07:28,540 --> 00:07:31,230 >> 그러나 우리는, C에서 할 수 밝혀 매우 간단하게이 문제를 해결. 148 00:07:31,230 --> 00:07:34,010 나는 약간의 공간을 두는거야 여기에, 난 그냥 갈거야 149 00:07:34,010 --> 00:07:38,170 우선적으로,이기는하지만 다소 중복,을 가르 칠 것 150 00:07:38,170 --> 00:07:42,320 함수가 존재한다는 것을 컴파일러 인쇄 이름이라고, 그것은 문자열을 151 00:07:42,320 --> 00:07:46,330 내가 전화하려고 해요 그것은 세미콜론 이름을 지정합니다. 152 00:07:46,330 --> 00:07:50,220 >> 이제 네 번째 줄이 그래서하는 우리 전에 보지 못했지만, 선언하다 153 00:07:50,220 --> 00:07:53,940 함수 프린트 이름의,하지만 단지의 이 함수는 것이라는 약속 154 00:07:53,940 --> 00:07:56,620 결국 최종적으로 정의 할 구현. 155 00:07:56,620 --> 00:08:00,180 이 지금은 혼자 떠날 수 있기 때문에 지금이 정의이다, 156 00:08:00,180 --> 00:08:04,090 마지막 마일의 구현, 정렬 이것의 구현 157 00:08:04,090 --> 00:08:05,130 특정 함수. 158 00:08:05,130 --> 00:08:08,450 그래서 솔직히 바보, 그것은 성가신의 그러나 이것은 C는 방법이며, 그것은의 159 00:08:08,450 --> 00:08:12,050 아주 말 그대로 걸리기 때문에 그리고 컴퓨터가 솔직히 정상적으로, 160 00:08:12,050 --> 00:08:16,020 단지 당신이 그것을 할 말해 주는가 정확히 할, 그래서 순서가 중요합니다. 161 00:08:16,020 --> 00:08:18,940 >> 그래서 유념하고 다시,에 시작 패턴의 재발을 확인할 수 있습니다. 162 00:08:18,940 --> 00:08:21,850 당신이하지 않은 경우 확률은, 당신은 것입니다 이미 메시지가 발생하기 시작 163 00:08:21,850 --> 00:08:24,700 다음과 같은 것이 먼저 눈에 보인다 완전히 이상한,하지만 당신은 시작하는 경우 164 00:08:24,700 --> 00:08:29,000 같이 이러한 핵심 단어를 찾으려면 의 "암시 적 선언"언급 165 00:08:29,000 --> 00:08:32,380 이 경우 기능 - 솔직히, 당신 때로는 작은 녹색을 166 00:08:32,380 --> 00:08:35,010 을 알려줍니다 당근 기호 문제는 아마 - 167 00:08:35,010 --> 00:08:40,980 당신은을 통해 귀하의 방식으로 작동을 시작할 수 있습니다 아직 보이지 않는 오류 메시지를 표시합니다. 168 00:08:40,980 --> 00:08:45,860 작성에 대한 질문의 이런 식으로 자신의 기능? 169 00:08:45,860 --> 00:08:47,540 >> 의 뭔가를하자 좀 더 설득력. 170 00:08:47,540 --> 00:08:51,760 이 작업을 수행 다만보다는 인쇄 부작용이 날 가자 171 00:08:51,760 --> 00:08:55,340 앞서 새 파일을 저장하고, 우리는거야 그것이 비록이 positive.c를 호출 172 00:08:55,340 --> 00:08:57,600 조금 다른 것 마지막으로 대. 173 00:08:57,600 --> 00:09:01,910 이 시간, 나는 다시 구현하려는 마지막 시간의 positive.C 예를 들어, 어떤 174 00:09:01,910 --> 00:09:04,430 사용자가 제공하는 힘이다 나 양의 정수입니다. 175 00:09:04,430 --> 00:09:07,280 하지만 INT 마지막 시간을 사용했다. 176 00:09:07,280 --> 00:09:10,780 이 있다면 그것은 좋은 없었을 것이다 기능은 긍정적 INT를 얻을라고 177 00:09:10,780 --> 00:09:13,610 난 그냥이 아웃소싱 수 에 기능의 조각? 178 00:09:13,610 --> 00:09:16,480 여기서 차이점은거야 그래서 긍정적 INT을 구현하지만, 달리 179 00:09:16,480 --> 00:09:20,330 부작용이 있었다 프린트 이름 - 그것 같은 날에 뭔가를 반환하지 않았습니다 180 00:09:20,330 --> 00:09:21,710 숫자 또는 문자열 - 181 00:09:21,710 --> 00:09:25,510 긍정적 INT는 물론, 예정 얻을 , 희망, 긍정적 INT를 반환합니다. 182 00:09:25,510 --> 00:09:26,170 >> 그럼 이렇게하자. 183 00:09:26,170 --> 00:09:30,840 cs50.h을 포함, 표준 io.h. 포함 184 00:09:30,840 --> 00:09:33,520 주요 무효 int로. 185 00:09:33,520 --> 00:09:42,160 그리고 지금 여기, 내가 먼저 갈거야 그리고하자 INT 말, n은 그 호출과 동일 186 00:09:42,160 --> 00:09:44,270 긍정적 INT를 얻을. 187 00:09:44,270 --> 00:09:49,080 그냥 같이 INT가 이미 존재받을 직원이 쓴 있기 때문에, 나는 갈거야 188 00:09:49,080 --> 00:09:53,950 얻는 순간 가정 긍정적 인 int로 존재하며, 지금은 갈거야 189 00:09:53,950 --> 00:09:57,730 가서 printf를 말하는 것은, % I / N ", n에 감사합니다. 190 00:09:57,730 --> 00:10:02,940 191 00:10:02,940 --> 00:10:07,770 >> 나는이 프로그램을 컴파일 이제 경우, 어떤 내 단말기에서 일어날 것입니다 192 00:10:07,770 --> 00:10:09,075 화면 하단의 창? 193 00:10:09,075 --> 00:10:11,580 194 00:10:11,580 --> 00:10:13,900 나는 아마를 얻을거야 이전과 같은 오류가 발생합니다. 195 00:10:13,900 --> 00:10:14,570 그럼이 시도 할 수 있습니다. 196 00:10:14,570 --> 00:10:16,450 긍정적합니다. 197 00:10:16,450 --> 00:10:19,900 그리고 또, 암시 적 선언 함수 긍정적 INT를 얻을. 198 00:10:19,900 --> 00:10:21,970 그래서 우리는이를 해결할 수 몇 가지 방법. 199 00:10:21,970 --> 00:10:27,310 난 그냥 간단하고 유지하는거야 여기 내 선언을 넣어 얻을 200 00:10:27,310 --> 00:10:28,120 긍정적 INT. 201 00:10:28,120 --> 00:10:29,720 나는 소위 서명을해야합니다. 202 00:10:29,720 --> 00:10:32,410 서명은 말한다 의 미학 203 00:10:32,410 --> 00:10:34,090 프로그램의 첫 번째 행입니다. 204 00:10:34,090 --> 00:10:37,420 그래서 긍정적 가야 반환 INT? 205 00:10:37,420 --> 00:10:37,970 >> 그래서 INT. 206 00:10:37,970 --> 00:10:41,540 내가 이상적으로 말은, 그것은 반환 긍정적 INT 같은,하지만 207 00:10:41,540 --> 00:10:42,160 존재하지 않습니다. 208 00:10:42,160 --> 00:10:45,280 우리는 본 적이 없다 우리의 데이터 중 형식은, 그래서 우리는 처리해야 209 00:10:45,280 --> 00:10:47,170 우리는 거의 가지고 사실 데이터 형식과 함께 작동합니다. 210 00:10:47,170 --> 00:10:50,360 그러나 우리는 INT와 그냥 반환 할 수 있습니다 그것은 긍정적있을 것이라는 점을 신뢰한다. 211 00:10:50,360 --> 00:10:52,690 그것은 호출 할 것 긍정적 INT를 얻을. 212 00:10:52,690 --> 00:10:55,122 >> 그리고 지금 어떻게 인수에 대해? 213 00:10:55,122 --> 00:10:56,440 어떤 입력을합니까? 214 00:10:56,440 --> 00:10:58,280 어떤 입력이 필요합니까? 215 00:10:58,280 --> 00:11:00,900 그래서 알 필요가 없다 사전 아무것도합니다. 216 00:11:00,900 --> 00:11:03,220 문자열을 Int는하지 않습니다하지 않습니다 얻을. 217 00:11:03,220 --> 00:11:06,430 printf를 않습니다 - 그것은 몇 가지가 있어야합니다 입력은에 전달 - 인쇄 이름 218 00:11:06,430 --> 00:11:09,020 일부 입력을 필요로하지만, 얻을 긍정적 인 int로하지 않습니다. 219 00:11:09,020 --> 00:11:11,530 그래서 명시 적으로 갈거야 컴파일러 무효를 말한다. 220 00:11:11,530 --> 00:11:13,470 공허의 다른 아무것도없는 것입니다. 221 00:11:13,470 --> 00:11:17,990 그래서 무효 의미 아무것도 내부에 갈되지 않습니다 그 괄호, 세미콜론. 222 00:11:17,990 --> 00:11:20,840 >> 그리고 지금 내 파일의 맨 아래에 - 그리고 항문의 다시, 그냥되고있어 종류 223 00:11:20,840 --> 00:11:23,640 여기에 상단에 주를두고, 그 좋습니다 이런 식으로하기 때문에, 224 00:11:23,640 --> 00:11:26,220 당신이나 다른 사람이 언제 파일,을 엽니 다 225 00:11:26,220 --> 00:11:27,400 기능은 바로 거기에있다. 226 00:11:27,400 --> 00:11:29,660 당신은 원점에서의 다이빙을 할 수 있습니다. 227 00:11:29,660 --> 00:11:34,190 그래서 지금이 중복거야 긍정적 INT 무효를 얻을,하지만 난 아니에요 228 00:11:34,190 --> 00:11:35,430 지금 세미콜론을 칠 것. 229 00:11:35,430 --> 00:11:38,280 나는 중괄호를 열거야 지금은 빌릴 필요 230 00:11:38,280 --> 00:11:39,700 월요일부터 몇 가지 아이디어. 231 00:11:39,700 --> 00:11:44,450 >> 당신이 기억 때문에, 우리는 뭔가를했다 다음을 때처럼 232 00:11:44,450 --> 00:11:45,830 뭔가 사실이었다. 233 00:11:45,830 --> 00:11:46,630 그리고 나는 무엇을 했는가? 234 00:11:46,630 --> 00:11:51,540 I주고 뭔가를했다 나 양의 정수, 235 00:11:51,540 --> 00:11:52,430 프롬프트 조금. 236 00:11:52,430 --> 00:11:53,540 내가 원하는 단어를 사용할 수 있습니다. 237 00:11:53,540 --> 00:11:54,960 그리고 내가 무엇을 사용? 238 00:11:54,960 --> 00:11:59,530 INT N은 INT 얻을 같음 그것은 인수 없습니다. 239 00:11:59,530 --> 00:12:00,550 >> 그 차이를 알 수 있습니다. 240 00:12:00,550 --> 00:12:04,680 당신이 사용할 때, 함수를 호출 할 때 기능, 당신은 무효 두지 않는다. 241 00:12:04,680 --> 00:12:08,570 를 선언 할 때 해당 작업을 수행 기능, 컴파일러를 가르치는 무엇을 242 00:12:08,570 --> 00:12:09,780 그것을 기대한다. 243 00:12:09,780 --> 00:12:11,650 그래서 당신은 넣어 필요가 없습니다 거기에 자신을 무효화 될 수 있습니다. 244 00:12:11,650 --> 00:12:12,940 >> 그리고 지금 내 상태가 무엇 이었습니까? 245 00:12:12,940 --> 00:12:19,670 물론 n은 긍정적 같지 않음 하지만 그건 그냥 의사 코드이다. 246 00:12:19,670 --> 00:12:22,530 어떻게 좀 더 명확하게이 표현합니까? 247 00:12:22,530 --> 00:12:24,090 따라서 0보다 작거나 같음. 248 00:12:24,090 --> 00:12:26,250 그래서 다시, 당신이 할 수있는 알 보다 작거나 같음. 249 00:12:26,250 --> 00:12:28,100 그것은 두 개의 별도 비록 기호, 당신은에 그것을 할 수 있습니다 250 00:12:28,100 --> 00:12:29,350 같은 키보드. 251 00:12:29,350 --> 00:12:33,950 >> 하지만 버그는 여전히있다 나도 지난 시간을 망쳐. 252 00:12:33,950 --> 00:12:36,950 나는 선언해야한다 - 253 00:12:36,950 --> 00:12:37,460 정확히. 254 00:12:37,460 --> 00:12:39,640 나는 밖에 없음을 선언해야 루프의. 255 00:12:39,640 --> 00:12:44,180 그래서 여기에 n을 넣어해야하고, 난 몰라 여기에서 다시 선언 할 256 00:12:44,180 --> 00:12:46,480 않도록 나는 새로운 환경 변수를 가져옵니다. 257 00:12:46,480 --> 00:12:48,860 난 그냥 여기에 값을 할당합니다. 258 00:12:48,860 --> 00:12:54,320 >> 그리고 지금은 확실히 여기에 끝났어요. 259 00:12:54,320 --> 00:12:57,290 내가 먼저 자신의하자 그리고 내가 다 했어 척. 260 00:12:57,290 --> 00:13:01,220 긍정하고, 지금 새로운 오류가있다. 261 00:13:01,220 --> 00:13:04,550 컨트롤의 끝에 도달 void가 아닌 함수입니다. 262 00:13:04,550 --> 00:13:07,760 새 오류 메시지가 그래서, 그러나 만약 당신 종류 각각의 단어를 나누는데, 그것의 263 00:13:07,760 --> 00:13:09,620 아마 뭐가 문제인지에서 힌트. 264 00:13:09,620 --> 00:13:11,240 >> 제어 할 수 있습니다. 265 00:13:11,240 --> 00:13:14,250 통제는 순서에 의미 프로그램에서 작업. 266 00:13:14,250 --> 00:13:16,510 컴퓨터 제어에 있고 뭔가 잘못 됐어요. 267 00:13:16,510 --> 00:13:18,510 그래서의 끝에 도달 void가 아닌 함수입니다. 268 00:13:18,510 --> 00:13:21,760 그것은 어떤 기능을 명백하게 을 참조? 269 00:13:21,760 --> 00:13:24,790 어떤 함수는 void가 아닌입니까? 270 00:13:24,790 --> 00:13:27,400 그래서 긍정적 INT를 얻고, 약간의 그 잘 혼란, 271 00:13:27,400 --> 00:13:29,010 그것은 무효의 일종이다. 272 00:13:29,010 --> 00:13:33,070 그것에 대한 무효의 사양을 가지고 인수는, 그러나 그것의 출력은가는 273 00:13:33,070 --> 00:13:34,540 n을 입력으로합니다. 274 00:13:34,540 --> 00:13:37,260 그래서 왼쪽에있는 단어는 반환 형식 소위. 275 00:13:37,260 --> 00:13:40,320 여기에 내부에있는 단어는 0 개 이상의 인수 276 00:13:40,320 --> 00:13:41,970 기능이 걸립니다. 277 00:13:41,970 --> 00:13:44,060 >> 그래서 내가 어떻게해야합니까? 278 00:13:44,060 --> 00:13:47,650 내 코드에서이 점, 선 21시 깜박이는 프롬프트가 지금이다 279 00:13:47,650 --> 00:13:51,430 긍정적 INT 내부를 N이라는 변수. 280 00:13:51,430 --> 00:13:55,200 어떻게 주에게 돌려 줄 수 있습니까? 281 00:13:55,200 --> 00:13:55,960 그대로. 282 00:13:55,960 --> 00:13:59,320 N 세미콜론을 반환합니다. 283 00:13:59,320 --> 00:14:04,090 >> 그래서 그냥 같은 콜턴의 조각을 반환 놓아 나에게 대답 종이 284 00:14:04,090 --> 00:14:07,020 작은 검은 종이의 조각 에서 해당 작업을 수행하는 테이블에 상자, 285 00:14:07,020 --> 00:14:10,100 코드는 그대로 그냥 돌려 쓰기 콜턴 것처럼 N, 그것은의 286 00:14:10,100 --> 00:14:12,140 내게 뭔가 물리적 다시 나눠. 287 00:14:12,140 --> 00:14:15,870 이 경우, 어떤 일이 것은 얻을 수 있습니다 긍정적 인 int로 다시 건네 것입니다 288 00:14:15,870 --> 00:14:19,220 무엇 아마도 양성 누구의 정수? 289 00:14:19,220 --> 00:14:21,380 이 값은 어디를 종료합니까? 290 00:14:21,380 --> 00:14:29,080 즉, N,이 변수에 끝내고, 그리고 우리는 선 구를 진행합니다. 291 00:14:29,080 --> 00:14:31,920 >> 그래서 다른 말로하면, 순서대로 작업이 프로그램 시작 292 00:14:31,920 --> 00:14:34,430 , 실행 및 컴파일러 실현 오, 당신은 라이브러리를 원하는? 293 00:14:34,430 --> 00:14:36,310 나를 잡아 그 안에 무엇의 가자. 294 00:14:36,310 --> 00:14:37,750 오, 당신은 표준 IO 라이브러리를 원하는? 295 00:14:37,750 --> 00:14:39,660 나를 잡아 그 안에 무엇의 가자. 296 00:14:39,660 --> 00:14:44,510 컴파일러는 자신에게 무엇이라고 말씀 그것은 네 번째 줄을 칠 때? 297 00:14:44,510 --> 00:14:47,980 오, 당신을 구현하는 약속 기능은 긍정적 얻을라고하지만, 298 00:14:47,980 --> 00:14:50,820 우리는 나중에 다시 전화 할게 그 라인을 따라 뭔가. 299 00:14:50,820 --> 00:14:53,450 >> 주요 int 무효 여기의 의미 내 프로그램의 용기. 300 00:14:53,450 --> 00:14:54,990 라인 일곱은 중괄호입니다. 301 00:14:54,990 --> 00:14:59,540 8 번째 줄주고, 왼쪽에서 말하는 정수 나 32 비트, 그것은 n을 호출합니다. 302 00:14:59,540 --> 00:15:02,160 오른쪽에, 그것의 긍정적 INT를 얻을 말. 303 00:15:02,160 --> 00:15:07,120 지금하자 일시 정지 그 이야기 때문에 이제 내가 커서를 아래로 이동 보관하지 않습니다. 304 00:15:07,120 --> 00:15:11,720 내 커서가 지금 여기에 내려갑니다 때문에 지금은 긍정적 INT가 실행 얻는다. 305 00:15:11,720 --> 00:15:13,100 INT N이 선언됩니다. 306 00:15:13,100 --> 00:15:14,040 다음을 수행하십시오. 307 00:15:14,040 --> 00:15:16,090 printf를 저에게 긍정적 인 정수를 제공합니다. 308 00:15:16,090 --> 00:15:19,740 >> , 사용자의 INT를 얻을 수 없음에 저장 어쩌면 또 다시이 작업을 수행합니다. 309 00:15:19,740 --> 00:15:23,010 이 루프는이 코드 수 있음을 의미 다시처럼 실행하고 아래 310 00:15:23,010 --> 00:15:25,810 다시,하지만 사용자 때 마지막으로 협력 저에게 긍정적를 제공 311 00:15:25,810 --> 00:15:31,750 중간, 어느 시점에서, 라인 (21)을 누르 번호를 다시 전달하고, 어느됩니다 312 00:15:31,750 --> 00:15:34,280 지금 선택해야합니까? 313 00:15:34,280 --> 00:15:35,070 아홉. 314 00:15:35,070 --> 00:15:39,010 제어 말하자면 반환 아홉 줄 수 있습니다. 315 00:15:39,010 --> 00:15:40,650 책임 현재의 줄이있다. 316 00:15:40,650 --> 00:15:43,250 >> 그래서 모든 일이 일어나고 있었는지의 이 후드 아래 시간이 있지만, 317 00:15:43,250 --> 00:15:46,480 우리는 printf는 같은 기능을 사용했을 때 또는 문자열을 얻을 것을 다른 사람 318 00:15:46,480 --> 00:15:50,600 당신을 위해 쓴 제어가 전달되고 있었다 OFF로 다른 사람의 코드 라인 319 00:15:50,600 --> 00:15:51,290 라인별로 라인으로. 320 00:15:51,290 --> 00:15:53,770 그것은 단지 우리가 그것을보고 우리가 수없는 것 정말이 그것을 묘사 할 수 없습니다 321 00:15:53,770 --> 00:15:57,620 그것은 다른에서의 프로그램 때문에 하드 드라이브의 파일 322 00:15:57,620 --> 00:16:00,000 우리에게 미지. 323 00:16:00,000 --> 00:16:02,100 그럼 실제로 컴파일하자 지금이를 실행합니다. 324 00:16:02,100 --> 00:16:03,890 >> 긍정적합니다. 325 00:16:03,890 --> 00:16:05,260 진보의 즉, 컴파일합니다. 326 00:16:05,260 --> 00:16:06,650 . / 긍정적. 327 00:16:06,650 --> 00:16:08,020 저에게 긍정적 인 정수를 제공합니다. 328 00:16:08,020 --> 00:16:08,800 의이 어려울 수 있습니다. 329 00:16:08,800 --> 00:16:10,430 1 음. 330 00:16:10,430 --> 00:16:11,360 제로. 331 00:16:11,360 --> 00:16:13,370 의 그것을 50 드리겠습니다. 332 00:16:13,370 --> 00:16:18,100 50 감사합니다, 그래서 통제 지금 돌아왔다. 333 00:16:18,100 --> 00:16:21,750 질문 한 다음, 그것에 대한? 334 00:16:21,750 --> 00:16:23,180 그래? 335 00:16:23,180 --> 00:16:25,630 >> [들림]. 336 00:16:25,630 --> 00:16:26,130 >> 다시 말해. 337 00:16:26,130 --> 00:16:27,860 오, 좋은 질문입니다. 338 00:16:27,860 --> 00:16:31,100 그래서 당신은 여기에 병렬 알 수있는 나는에 모서리를 절단의 종류 해요. 339 00:16:31,100 --> 00:16:35,420 12 행에서, 내가 말하는 긍정적 INT를 얻을 수 int를 반환하지만 같은 별 340 00:16:35,420 --> 00:16:39,660 논리, 지금 추론하는 의미에서 해당 선 여섯, 내가 말하는거야하는 주요 반환 341 00:16:39,660 --> 00:16:44,040 INT,하지만 우리가 결코이 없습니다 우리의 프로그램 중 하나에이 되었나요? 342 00:16:44,040 --> 00:16:46,470 우리의 언급이 없었습니다 이 키 워드 돌아갑니다. 343 00:16:46,470 --> 00:16:49,970 >> 그래서 적어도 C에서 그렇게 밝혀 우리가 사용하고있는 그것의 버전 344 00:16:49,970 --> 00:16:55,750 1999 년에 만든, 기술적으로,이는 자동으로 발생. 345 00:16:55,750 --> 00:16:59,300 언제든지 당신은 프로그램을 구현 메인라는 함수를 구현 346 00:16:59,300 --> 00:17:04,230 이 함수는 제로를 반환합니다 기본적 그렇지 않으면 말을하지 않은 경우, 347 00:17:04,230 --> 00:17:05,849 제로 단지 규칙입니다. 348 00:17:05,849 --> 00:17:09,430 세계는 따라서 0을 반환 모두가 잘 나타냅니다, 349 00:17:09,430 --> 00:17:13,040 효과적으로 우리를 떠나 억 개의 갈 수있는 가능한 것들 350 00:17:13,040 --> 00:17:17,530 문제가있다 그래서 우리가 하나를 반환 할 경우 해당 이 의미 코드를 의미 할 수 351 00:17:17,530 --> 00:17:18,310 일이 잘못 됐어요. 352 00:17:18,310 --> 00:17:20,589 우리는 즉, 두 가지를 반환 할 수 이 다른 것은 잘못되었다. 353 00:17:20,589 --> 00:17:23,440 우리는 4 억 반환 할 수있는 이 다른 일이 잘못된 것을 의미합니다. 354 00:17:23,440 --> 00:17:27,170 >> 그리고 당신은 이제 자신에 대해 생각하면 PC 또는 Mac, 당신은 기억 수도 355 00:17:27,170 --> 00:17:29,610 때때로 당신은 이상한 오류 메시지가 표시 당신이있어하는 소프트웨어를 356 00:17:29,610 --> 00:17:32,650 사용하고 때로는 인간이 쉬운 설명하지만, 거기에 357 00:17:32,650 --> 00:17:35,265 종종 코드 또는 번호 화면에? 358 00:17:35,265 --> 00:17:37,800 이 마음에 오지 않는 경우, 단지 그것을 위해 눈을 밖으로 유지. 359 00:17:37,800 --> 00:17:40,790 그것은 일반적으로 무엇을이 코드를 참조한다. 360 00:17:40,790 --> 00:17:44,200 그들은 마이크로 소프트 워드에 포함하고 다른 프로그램은 그래서 당신은을 제기하는 경우 361 00:17:44,200 --> 00:17:48,850 회사와 버그 리포트, 당신은 할 수 있습니다 그들에게, 오, 오류 번호 45를 얻었다. 362 00:17:48,850 --> 00:17:51,750 그리고 회사의 일부 프로그래머를 다시 에 그를 찾아 볼 수 있습니다 자신의 363 00:17:51,750 --> 00:17:54,940 내가했기 때문에 코드와 말은, 오, 그건 이 버그와 그 이유는 사용자가 364 00:17:54,940 --> 00:17:56,240 이 메시지를 얻었다. 365 00:17:56,240 --> 00:17:59,490 >> 하지만 솔직히, 그것은 조금의 혼란과에 약간 지루한 366 00:17:59,490 --> 00:18:02,130 적어도 우리에, 그 결론 처음 몇 프로그램, 우리가했습니다 그래서 367 00:18:02,130 --> 00:18:02,970 를 생략하고. 368 00:18:02,970 --> 00:18:07,450 귀하의 그러나 모든 시간마다 하나의 기능은 기본은 비밀리에이 있었다 369 00:18:07,450 --> 00:18:11,600 라인은 자동으로 당신을 위해 추가 에 컴파일러 단지 컨벤션 370 00:18:11,600 --> 00:18:13,172 당신에게 시간을 절약 할 수 있습니다. 371 00:18:13,172 --> 00:18:14,620 >> [들림]. 372 00:18:14,620 --> 00:18:16,250 >> 당신은 주에 포함 할 필요가 없습니다. 373 00:18:16,250 --> 00:18:16,700 괜찮아요. 374 00:18:16,700 --> 00:18:20,260 당신은 당신이 인 경우에 그것을 포함 할 필요 이 같은 기능을 구현. 375 00:18:20,260 --> 00:18:22,850 그렇지 않으면 함수 플랫 밖으로 작동하지 않을 것입니다. 376 00:18:22,850 --> 00:18:24,480 그러나 메인에, 그것은 필요는 없습니다. 377 00:18:24,480 --> 00:18:28,450 일주일에 두, 우리는 점점 시작합니다 그 습관에 일단 우리가 시작하려는 378 00:18:28,450 --> 00:18:29,690 오류를 의미. 379 00:18:29,690 --> 00:18:32,550 질문 정말 좋은. 380 00:18:32,550 --> 00:18:36,880 >> 물론, 너무 빨리 구두 휴식하는 이번 주 금요일, 우리는 점심을 가지고하지 않습니다 381 00:18:36,880 --> 00:18:39,980 와 본질적으로, 그러나 우리는 저녁을 먹고있을거야 학생 및 교직원의 일부. 382 00:18:39,980 --> 00:18:42,940 당신이 우리와 함께하고 싶다면 느낌 cs50.net/rsvp에 가서 무료. 383 00:18:42,940 --> 00:18:45,030 이번 주 금요일 PM 6:00. 384 00:18:45,030 --> 00:18:47,990 공간은 언제나 한정되어 있지만, 우리는거야 거의에서 이러한 일을 계속 385 00:18:47,990 --> 00:18:51,420 매주 공간이있는 경우 이번 주 실행합니다. 386 00:18:51,420 --> 00:18:56,160 >> 그래서 우리가 떠났던 것을 클리프 행어 월요일 문자열이 실제로 할 수 있었다 387 00:18:56,160 --> 00:19:00,520 로 색인 할 수있는 그냥 의미 , 첫 번째 문자에서 얻을 수 있습니다 388 00:19:00,520 --> 00:19:03,770 두 번째 문자, 세 번째 문자 등, 당신이 할 수 있기 때문에 389 00:19:03,770 --> 00:19:07,860 효과적으로처럼 문자열의 생각 안녕하십니까,이 경우 5가 390 00:19:07,860 --> 00:19:09,670 상자 안에 편지. 391 00:19:09,670 --> 00:19:13,370 그리고 당신은 그 각각에서 얻을 수 있습니다 어떤 구문은 한 상자와 함께 우리 392 00:19:13,370 --> 00:19:15,230 월요일에 소개? 393 00:19:15,230 --> 00:19:16,760 이러한 대괄호 키보드. 394 00:19:16,760 --> 00:19:18,980 단지 위치를 제로로 갈 것을 의미합니다. 395 00:19:18,980 --> 00:19:22,840 >> 우리는 제로 카운트를 시작하므로 브라켓 영 H, 선반 하나를 의미 396 00:19:22,840 --> 00:19:25,170 전자 의미, 등등. 397 00:19:25,170 --> 00:19:28,490 우리가 봤는데 그래서 모든 시간 "안녕하세요"에서 문자열을 사용하여 입력 398 00:19:28,490 --> 00:19:31,250 와 "세계"와 다른 것들에 화면이, 그것은 저장되어있어 399 00:19:31,250 --> 00:19:32,820 이런 상자합니다. 400 00:19:32,820 --> 00:19:33,370 그리고 생각을. 401 00:19:33,370 --> 00:19:37,470 각 상자는 실제로 무엇을 상징 하는가 컴퓨터 내부? 402 00:19:37,470 --> 00:19:38,250 >> [들림]. 403 00:19:38,250 --> 00:19:39,150 >> 네? 404 00:19:39,150 --> 00:19:39,580 >> 자. 405 00:19:39,580 --> 00:19:44,760 >> 경우에 확실히 문자는 이렇게 문자열, 그리고 문자는 단지 406 00:19:44,760 --> 00:19:46,800 8 비트 또는 한 바이트. 407 00:19:46,800 --> 00:19:49,550 그래서 당신은 아마 적어도 막연하다 사실을 잘 알고 당신의 408 00:19:49,550 --> 00:19:50,500 컴퓨터 메모리가 있습니다. 409 00:19:50,500 --> 00:19:52,110 그것은 두 가지 종류의 메모리가 최소가 있습니다. 410 00:19:52,110 --> 00:19:54,810 하나는 저장 하드 디스크입니다 영구적 물건, 그의 411 00:19:54,810 --> 00:19:57,400 당신은 영화를 할 수 있습니다 일반적으로 큰 수 있도록 음악과 등등. 412 00:19:57,400 --> 00:20:04,010 >> 그럼 당신은 메모리의 또 다른 유형이 RAM, R-A-M, 랜덤 액세스라는 413 00:20:04,010 --> 00:20:07,510 메모리는,이 메모리의 유형입니다 컴퓨터가있을 때 사용되는 414 00:20:07,510 --> 00:20:11,520 당신이 힘을 잃거나 경우에 실행하는 배터리 금형, 저장된 아무것도 415 00:20:11,520 --> 00:20:15,300 당신이 힘을 잃게 경우 RAM에 사라 그게 아니라 아예 때문에 416 00:20:15,300 --> 00:20:16,060 지속. 417 00:20:16,060 --> 00:20:19,120 당신은 일반적으로 이러한 일이 그것의 공연, 어쩌면 두 공연. 418 00:20:19,120 --> 00:20:23,490 그리고 RAM의 상승은 많은 점이다 하드 디스크보다 훨씬, 훨씬 더 빨리 419 00:20:23,490 --> 00:20:27,390 또는 고체,이 일 드라이브 하지만 일반적으로 더 비싼 때문에 420 00:20:27,390 --> 00:20:28,480 당신은 그것의 더 적은이있다. 421 00:20:28,480 --> 00:20:32,400 >> 오늘의 대화는 정말 의미하므로 RAM 메모리의 유형이 422 00:20:32,400 --> 00:20:35,270 전원이있는 동안 만 존재 컴퓨터에 공급되고있다. 423 00:20:35,270 --> 00:20:40,530 그래서 당신은 H-E-L-L-O를 입력 할 때 Enter를 키보드, H는 한 것입니다 424 00:20:40,530 --> 00:20:44,550 RAM의 바이트는, E가있는 것입니다 RAM의 또 다른 바이트는, 그대로 425 00:20:44,550 --> 00:20:45,800 단어의 나머지. 426 00:20:45,800 --> 00:20:49,010 그래서 우리가 할 수 있었는지 기억 마지막으로 할 것은이 있었다. 427 00:20:49,010 --> 00:20:53,940 내가 가서 파일을 열어 보자 우리는 string.c라고하며, 기억하는 428 00:20:53,940 --> 00:20:56,860 조금을 보인다고 이런 식으로 뭔가. 429 00:20:56,860 --> 00:20:59,860 내가 실제로 롤백하고 변경할 수 그것은 그것의 모습을 정확히 무엇을 430 00:20:59,860 --> 00:21:02,654 의의 문자열 길이. 431 00:21:02,654 --> 00:21:04,560 >> 그래서 여기에 프로그램을 봐. 432 00:21:04,560 --> 00:21:08,530 우리는 CS50 라이브러리 때문에 포함 우리는 문자열을 사용할 수 있습니다. 433 00:21:08,530 --> 00:21:11,400 우리는 표준 io.h에는 포함 그래서 우리는 printf를 사용할 수 있습니다. 434 00:21:11,400 --> 00:21:13,580 왜 우리는 string.h에 포함습니까? 435 00:21:13,580 --> 00:21:16,980 이 월요일에 새로운 있었다. 436 00:21:16,980 --> 00:21:18,230 그래서 우리는 문자열 길이를 원했다. 437 00:21:18,230 --> 00:21:19,090 STR LENG. 438 00:21:19,090 --> 00:21:21,470 사람들은 몇 년 전 결정 의 단지 간결 할 수 있습니다. 439 00:21:21,470 --> 00:21:24,290 대신 "문자열 길이"호출 하자의는 "STR LENG"전화하자 440 00:21:24,290 --> 00:21:28,540 밖으로, 그래서 그의 그 세계 그림 우리는 string.h에에에 대한 액세스를 얻을 것을. 441 00:21:28,540 --> 00:21:29,390 >> 이 익숙한. 442 00:21:29,390 --> 00:21:30,320 이 익숙한. 443 00:21:30,320 --> 00:21:31,450 이 익숙한. 444 00:21:31,450 --> 00:21:32,370 이 작은 새입니다. 445 00:21:32,370 --> 00:21:35,420 라인 22 - 우리는 돌아올거야 이에,하지만 지금은 알에 대한 - 446 00:21:35,420 --> 00:21:37,880 당신은 단지 않아도이 알 것입니다 문서 나있는 경우를 읽을 수 447 00:21:37,880 --> 00:21:39,010 당신은 이미 C를 알고 - 448 00:21:39,010 --> 00:21:41,510 문자열이 가끔 조일 수 얻을. 449 00:21:41,510 --> 00:21:45,130 사용자가 실제로 적대적 이상인 경우 비협조적 그 또는 그녀는 단지 450 00:21:45,130 --> 00:21:49,450 키보드에서 아무 것도 입력하지 않거나 키보드에서 너무 많은 종류가 451 00:21:49,450 --> 00:21:53,760 그것은 컴퓨터의 메모리를 압도 이론적으로, 문자열을 반환 할 수 얻을 452 00:21:53,760 --> 00:21:56,270 이외의 문자의 문자열입니다. 453 00:21:56,270 --> 00:22:01,930 그것은라는 특별한 값을 반환 할 수 있습니다 모두 대문자, N-U-L-L,이은에 NULL 454 00:22:01,930 --> 00:22:03,390 다만 소위 센티넬 값입니다. 455 00:22:03,390 --> 00:22:08,010 그것은 의미 특수 값의 뭔가 나쁜 일이 경우에 일어났다. 456 00:22:08,010 --> 00:22:10,520 그것은 문자열의 부재이다. 457 00:22:10,520 --> 00:22:16,190 >> 그래서, 단순히 그렇게 알아보고 있어요 null로 긴 이야기를 짧게, STR LENG 및 458 00:22:16,190 --> 00:22:20,230 C와 함께 다른 기능, 경우 그들은 문자열을 기대하지만, 당신이 그들을 통과 459 00:22:20,230 --> 00:22:23,630 문자열의 부재, 당신이 통과하면 그들, 컴퓨터 또는 프로그램을 NULL 460 00:22:23,630 --> 00:22:25,000 단지 크게 충돌합니다. 461 00:22:25,000 --> 00:22:25,610 이 중단됩니다. 462 00:22:25,610 --> 00:22:27,250 그것은 몇 가지 오류 메시지를 발생합니다. 463 00:22:27,250 --> 00:22:28,690 나쁜 일들이 일어날 것이다. 464 00:22:28,690 --> 00:22:31,130 이 아직 그렇게해도 잘 정의되지 - 465 00:22:31,130 --> 00:22:33,730 이 주에 더 많은 감각을 만들거나합니다 두 - 라인 (22)에, 이것은 단지입니다 466 00:22:33,730 --> 00:22:38,790 자기 방어 오류 검사의 예 단지의 경우 한 번에 중 467 00:22:38,790 --> 00:22:42,040 만 뭔가에 잘못 간다 적어도 내 프로그램이 충돌하지 않습니다. 468 00:22:42,040 --> 00:22:45,960 >> 의하지 않는 경우, 그래서 뭔가 나쁜 같다 나는 반복이 있고,이이었다 469 00:22:45,960 --> 00:22:47,710 우리는 다른었던 구문의 새 작품. 470 00:22:47,710 --> 00:22:51,580 나는에서 반복 루프를 가지고 제로의 길이까지합니다. 471 00:22:51,580 --> 00:22:56,140 그리고 여기, 내가 초 인쇄했다 브래킷 나는, 그러나 왜 모두 % C를 사용 했 472 00:22:56,140 --> 00:23:00,770 대신에 % s의 급격한도 의는 문자열이지만? 473 00:23:00,770 --> 00:23:02,110 확실히, 캐릭터의? 474 00:23:02,110 --> 00:23:06,560 S는 문자열이지만의 브래킷 뭔가 난 제로의 부류 나 475 00:23:06,560 --> 00:23:10,380 하나 또는 두 개의, 그 개인의 문자열의 문자 등을위한 476 00:23:10,380 --> 00:23:14,970 즉, printf를 통보해야 함 그것은 참으로 기대하는 캐릭터입니다. 477 00:23:14,970 --> 00:23:18,096 >> 그리고 기억, 어떻게 이런 짓을 이 프로그램은 실제로? 478 00:23:18,096 --> 00:23:19,848 >> 열에서 그것을 밖으로 인쇄. 479 00:23:19,848 --> 00:23:21,120 >> 네, 맞습니다. 480 00:23:21,120 --> 00:23:24,990 그냥 난에 입력 한 단어를 인쇄 열 한 줄에 하나의 문자입니다. 481 00:23:24,990 --> 00:23:26,190 그럼이 다시 보자. 482 00:23:26,190 --> 00:23:27,810 그래서 문자열을 확인합니다. 483 00:23:27,810 --> 00:23:30,200 OK 컴파일. . / 문자열입니다. 484 00:23:30,200 --> 00:23:35,560 나 H-E-L-L-O를 입력하자, 입력하고 사실 내가 한 줄에 하나씩 그것을 얻을. 485 00:23:35,560 --> 00:23:37,280 >> 그래서 내가 여기에 최적화 할 수 있습니다. 486 00:23:37,280 --> 00:23:40,240 당신은 특히, 그것에 대해 생각하면 당신은 전에 거기에 프로그래밍 한 487 00:23:40,240 --> 00:23:43,340 24 행에 틀림 효율성. 488 00:23:43,340 --> 00:23:46,160 즉, 그것은 반드시 아니에요 최고의 디자인. 489 00:23:46,160 --> 00:23:50,200 간단, 적어도 한 번 STR LENG은 기억하지만, 그것은이다 490 00:23:50,200 --> 00:23:52,640 잠재적으로 바보 같은 일을하고. 491 00:23:52,640 --> 00:23:54,863 그 무엇을 할 수 있습니까? 492 00:23:54,863 --> 00:23:56,280 >> [들림]. 493 00:23:56,280 --> 00:23:56,800 >> 정확히. 494 00:23:56,800 --> 00:24:00,340 그것은의 길이를 확인하는 것 매번에도 495 00:24:00,340 --> 00:24:02,980 H-E-L-L-O는 항상 것입니다 5 자이어야한다. 496 00:24:02,980 --> 00:24:05,490 이 루프를 통해 때마다, 다섯 변경되지 않습니다. 497 00:24:05,490 --> 00:24:08,750 난 내가를 증가,하지만 수 있습니다 각의의의 길이 498 00:24:08,750 --> 00:24:09,690 이 루프의 반복? 499 00:24:09,690 --> 00:24:15,810 그것은 다섯, 그것은 다섯, 그것은 다섯, 그리고 그러나 나는 그럼에도 불구하고이 해달라고 500 00:24:15,810 --> 00:24:18,320 다시하고 다시하고 다시 질문입니다. 501 00:24:18,320 --> 00:24:20,750 지금 솔직히 컴퓨터가 너무 망할 빠르고, 아무도 통지 않을거야 502 00:24:20,750 --> 00:24:23,780 이 경우 차이가 있지만 이러한 종류의 가난한 디자인 결정의 수 503 00:24:23,780 --> 00:24:28,330 컴파일러 자체면까지 추가 시작 당신이 문제를 해결하려고하지 않는 504 00:24:28,330 --> 00:24:30,630 그것은 일반적으로시, 않을 것 장비의 가장. 505 00:24:30,630 --> 00:24:31,540 >> 그래서이 작업을 수행 할거야. 506 00:24:31,540 --> 00:24:34,580 나는 뒤에 쉼표를 추가 할거야 내 첫 번째 변수, 난. 507 00:24:34,580 --> 00:24:37,310 나는 나 자신에게 다른 줄거야 변수 단지로, 그것을 호출 N 508 00:24:37,310 --> 00:24:41,330 다음 숫자에 대한 규칙, 그리고 난 문자열의 값을 n을 할당하는 것 509 00:24:41,330 --> 00:24:42,530 의 길이. 510 00:24:42,530 --> 00:24:46,060 그리고 나서 변경거야 내 조건은 무엇이어야 하는가? 511 00:24:46,060 --> 00:24:51,960 내 상태를 변경하는거야 내가 n보다 적은 반면에. 512 00:24:51,960 --> 00:24:55,700 >> 그래서 지금, 내가 얼마나 많은 시간을 오전 의 길이를 확인? 513 00:24:55,700 --> 00:25:00,110 한 번, 그러나에 나는 확인하기 위해 OK입니다 N 또 다시 그 때문에 이제 514 00:25:00,110 --> 00:25:03,170 값이 실제로 변경되지 않습니다. 515 00:25:03,170 --> 00:25:06,020 지금은 지금은, 그냥 알고 언제든지 당신 함수를 호출의 비트가있다 516 00:25:06,020 --> 00:25:09,930 당신을 낙담하는 오버 헤드가 충분하지 정말에서 어느 함수를 사용하지만, 517 00:25:09,930 --> 00:25:12,750 한 줄의 코드가있다 확실 할 때 그 좋아 - 그리고 라인은 얻을 것이다 518 00:25:12,750 --> 00:25:15,490 이윽고 더 재미 - 위치 경우 생각하는 기회가있다 I 519 00:25:15,490 --> 00:25:18,320 이 코드를 입력 얼마나 많은 그것은 시간을 실행합니다? 520 00:25:18,320 --> 00:25:20,950 당신은 시간에보기 시작합니다 프로그램의 성능 수 521 00:25:20,950 --> 00:25:21,660 참으로 변경할 수 있습니다. 522 00:25:21,660 --> 00:25:24,110 >> 사실, 문제의 하나는 우리가했습니다 세트 년에 완료 과거 포함 523 00:25:24,110 --> 00:25:27,600 당신의 기억 수 있으므로 구현 주 제로 맞춤법 검사기하지만, 524 00:25:27,600 --> 00:25:31,380 지원하도록 설계 맞춤법 검사기 150,000의 사전 플러스 525 00:25:31,380 --> 00:25:32,860 우리는 너희들을주는 단어입니다. 526 00:25:32,860 --> 00:25:37,100 당신은 코드를 작성해야하는 부하 RAM에 그 단어 때문에에 527 00:25:37,100 --> 00:25:40,700 우리 같은 상자가 화면에 순간을 보았다 당신 같은 전 후 빠르게 528 00:25:40,700 --> 00:25:43,740 수, 당신은 대답 할 수 있어야합니다 양식의 문제는이 단어 529 00:25:43,740 --> 00:25:44,280 맞춤법이 틀린? 530 00:25:44,280 --> 00:25:45,420 이 단어는 철자가 잘못? 531 00:25:45,420 --> 00:25:46,770 이 단어는 철자가 잘못? 532 00:25:46,770 --> 00:25:49,525 >> 그리고 우리가 한 내용처럼 뭔가 년에 완료 과거는로 설정되어 있습니다 533 00:25:49,525 --> 00:25:53,500 옵트 인 옵션 기초에 불구하고 종류의 경쟁, 약자 534 00:25:53,500 --> 00:25:59,470 적은 RAM과 덜 사용하는 학생 시간, 적은 CPU 사이클이 끝날 535 00:25:59,470 --> 00:26:02,640 약간의 정상까지 버블 링 리더 보드 또는 우리가 넣어 순위 536 00:26:02,640 --> 00:26:04,770 우리는했듯이 코스의 홈페이지 지난 몇 년 동안에서 수행. 537 00:26:04,770 --> 00:26:08,100 그래서 다시 완전히 선택하지만,이 디자인 기회를 말한다 538 00:26:08,100 --> 00:26:11,250 일단 앞서 우리가 시작하는 이들 중 일부 꼭대기 구축 539 00:26:11,250 --> 00:26:14,010 기본 빌딩 블록. 540 00:26:14,010 --> 00:26:16,780 >> 그래서 나는이 그림으로 돌아 가자 다만 순간 조금 공개 541 00:26:16,780 --> 00:26:17,610 뭔가 더. 542 00:26:17,610 --> 00:26:21,400 이 실제로 문자열, 우리는 촬영했습니다 몇 가지 라이브러리의 장점 543 00:26:21,400 --> 00:26:25,150 이 표준 io.h에는 - 544 00:26:25,150 --> 00:26:26,110 >> printf를. 545 00:26:26,110 --> 00:26:27,860 >> printf를, 다른 것들 사이. 546 00:26:27,860 --> 00:26:31,540 INT를 얻고 문자열을 얻을 수있다 cs50.h, 등, string.h에, 그 547 00:26:31,540 --> 00:26:32,570 STR LENG했다. 548 00:26:32,570 --> 00:26:34,800 또 아직 거기 밖으로하지만집니다. 549 00:26:34,800 --> 00:26:38,540 솔직히 많이하고 헤더 많이있다 함수를 선언 파일 550 00:26:38,540 --> 00:26:43,320 라이브러리,하지만 ctype.h입니다 실제로 어느 정도가 될 것 551 00:26:43,320 --> 00:26:46,900 내가 갈거야 때문에 유리 가서 하나를 구현하는 552 00:26:46,900 --> 00:26:48,120 여기에 다른 프로그램입니다. 553 00:26:48,120 --> 00:26:52,420 >> 내가 가서 뭔가를 열게 I라고 사전에 작성 554 00:26:52,420 --> 00:26:55,750 capitalize.c과의가 보자 어떻게 작동하는지 살펴. 555 00:26:55,750 --> 00:27:00,340 나는이 버전에서 사용하고있는 알 그것의 세 익숙한 파일. 556 00:27:00,340 --> 00:27:04,110 18 번째 줄에서 난 것을 알 수 한 줄의 텍스트를 점점. 557 00:27:04,110 --> 00:27:07,660 21 행에서 예고, 내가 주장하고있어 그 다음 코드는가는 558 00:27:07,660 --> 00:27:12,170 사용자가 입력 한 어떤,의를 대문자로 , 그리고 어떻게 그 일을 무엇입니까? 559 00:27:12,170 --> 00:27:13,300 글쎄, 내가 데려 갈거야 - 560 00:27:13,300 --> 00:27:14,750 수업 마지막 시간에 배운 - 561 00:27:14,750 --> 00:27:18,370 난 내가하고 N을 선언하고 반복 해요 문자열의 문자에. 562 00:27:18,370 --> 00:27:22,720 그리고이 블록은 무엇인가 27을 통해 24 행의 코드 563 00:27:22,720 --> 00:27:24,550 쉽게 설명하자면거야? 564 00:27:24,550 --> 00:27:27,766 565 00:27:27,766 --> 00:27:29,730 >> 다시 문자를 소문자. 566 00:27:29,730 --> 00:27:30,430 >> 정확히. 567 00:27:30,430 --> 00:27:35,920 경우의 브라켓 I - 그렇다면 i 번째 의의 성격, 어느 특정 568 00:27:35,920 --> 00:27:40,220 문자열의 문자,보다 큰 또는 동등한 소문자 및 방법 - 569 00:27:40,220 --> 00:27:42,670 그 이중 앰퍼샌드 기억 의미와 - 570 00:27:42,670 --> 00:27:46,810 같은 문자의 부류 내가있다 Z를 소문자보다 작거나 같음 571 00:27:46,810 --> 00:27:50,600 그것은 또는 B 또는 C 또는의 의미 점, 점, 점, 또는 의미 Z, 572 00:27:50,600 --> 00:27:51,340 는 소문자입니다. 573 00:27:51,340 --> 00:27:52,900 그 경우에는 어떻게할까요? 574 00:27:52,900 --> 00:27:55,010 글쎄, 어쩐지이 작업을 수행 할 수 있습니다 암호화 방식 있지만, 575 00:27:55,010 --> 00:27:56,160 의 떨어져이 애타게 할 수 있습니다. 576 00:27:56,160 --> 00:28:00,210 >> 난 printf를 호출 할거야, % c를 출력 나는이를 다시 인쇄 할 때문에 577 00:28:00,210 --> 00:28:01,580 화면에 문자. 578 00:28:01,580 --> 00:28:06,650 그때의 브래킷 I,를 취할거야 i 번째가 s에 문자 및 왜 579 00:28:06,650 --> 00:28:12,330 나는 여기 약간의 트릭을 수행하고 마이너스 자본 소문자? 580 00:28:12,330 --> 00:28:16,352 그에게 무엇을 것입니다 저를, 일반적으로 말하자면? 581 00:28:16,352 --> 00:28:18,600 >> [들림]. 582 00:28:18,600 --> 00:28:19,390 >> 정확히. 583 00:28:19,390 --> 00:28:20,860 정말 기억하지 않는다 - 584 00:28:20,860 --> 00:28:24,390 그것은 자본 A. 65 정말 안했다 이 소문자 기억, 585 00:28:24,390 --> 00:28:25,540 하지만 아무리. 586 00:28:25,540 --> 00:28:26,580 컴퓨터는 알고있다. 587 00:28:26,580 --> 00:28:30,380 그렇게 말함으로써, 마이너스 소문자 자본, 그것이 될 운명이다 588 00:28:30,380 --> 00:28:33,530 서로 하나의 문자를 뺀하지만, 후드 아래 문자는 무엇입니까? 589 00:28:33,530 --> 00:28:34,520 그들은 단지 숫자입니다. 590 00:28:34,520 --> 00:28:36,980 그 숫자는 무엇 때문에, 컴퓨터가 기억하자 591 00:28:36,980 --> 00:28:38,240 인간이 아니라 나보다. 592 00:28:38,240 --> 00:28:41,710 >> 그래서이 마이너스 자본 소문자 나에게 차이를 줄거야. 593 00:28:41,710 --> 00:28:45,370 그것은 32 일어나는, 그 것 소문자 B와 자본 B의 경우 594 00:28:45,370 --> 00:28:45,930 등등. 595 00:28:45,930 --> 00:28:47,710 그것은 다행히도 일관성 유지됩니다. 596 00:28:47,710 --> 00:28:51,930 나는 본질적으로 말하고 그래서,을 문자를 소문자로 그 오프 빼기 597 00:28:51,930 --> 00:28:55,340 표준의 차이, 그 효과적으로 변화의 브래킷 i로부터의 598 00:28:55,340 --> 00:28:59,400 대문자 물론, 소문자로, 내 정말 생각하지 않고 599 00:28:59,400 --> 00:29:03,040 약이나 기억, 그 무엇이었다 여덟 대해 우리가 얘기 번호 600 00:29:03,040 --> 00:29:04,800 자원 봉사자들이 무대에 등장? 601 00:29:04,800 --> 00:29:08,800 그게 아니라 지금은 그 사이에, 다른있는 경우, 결정된 소문자 602 00:29:08,800 --> 00:29:10,400 라인 (24)에 의해, 단지 그것을 밖으로 인쇄 할 수 있습니다. 603 00:29:10,400 --> 00:29:12,590 난 단지 터치 할 했다 자 604 00:29:12,590 --> 00:29:14,410 실제로 원래 소문자. 605 00:29:14,410 --> 00:29:15,150 >> 그럼이 볼 수 있습니다. 606 00:29:15,150 --> 00:29:17,400 투자합니다. 607 00:29:17,400 --> 00:29:18,470 컴파일 OK. 608 00:29:18,470 --> 00:29:19,730 . / 투자. 609 00:29:19,730 --> 00:29:23,530 그리고 나 H-E-L-L-O를 입력하자 소문자로 입력합니다. 610 00:29:23,530 --> 00:29:26,370 그리고이 변환되는 것을 알 수 대문자로. 611 00:29:26,370 --> 00:29:27,940 나를 다시이 작업을 수행 할 수 있도록 다른 단어입니다. 612 00:29:27,940 --> 00:29:32,720 방법 D-A-V-I-D에 대한 최초의 D와 이름으로 대문자는 일반적으로 무엇입니까? 613 00:29:32,720 --> 00:29:33,560 입력합니다. 614 00:29:33,560 --> 00:29:34,870 여전히 정확 확인할 수 있습니다. 615 00:29:34,870 --> 00:29:40,250 그것은 단지 첫 D 변경을 출력 그 다른 구성을 통해. 616 00:29:40,250 --> 00:29:42,170 >> 그래서, 다음 사항에 유의 여기에 사물의 커플입니다. 617 00:29:42,170 --> 00:29:45,060 당신은 두 가지를 확인하고 싶다면 하나, 한 번에 조건을, 당신은 할 수 있고 그 618 00:29:45,060 --> 00:29:46,500 우리가 예상 함께로. 619 00:29:46,500 --> 00:29:49,900 이 방법으로 문자를 비교할 수 효과적으로 문자로 치료를 620 00:29:49,900 --> 00:29:53,050 번호, 솔직히, 이건 너무 망할 이상한 기억 않을거야 621 00:29:53,050 --> 00:29:56,510 처음부터이 함께 제공하는 방법 아주 대한 그것을 통해 추론없이 622 00:29:56,510 --> 00:29:57,140 약간의 시간. 623 00:29:57,140 --> 00:30:00,590 >> 그것은 좋은하지 않았을 경우 사람 밖으로라는 함수도 작성 624 00:30:00,590 --> 00:30:05,390 그 또는 사실 나를 위해 대답 할 수 절감 거짓이 문자가 소문자인가? 625 00:30:05,390 --> 00:30:09,350 잘 다행히, 누구 썼다 ctype.h이 정확하게했다. 626 00:30:09,350 --> 00:30:15,540 내가 여기 가서 C에 대한 CTYPE을 추가 할 수 유형, 그리고 지금 내가 여기서 내려 가자하고 627 00:30:15,540 --> 00:30:18,820 이 줄을 다음과 같이 다시 작성하십시오. 628 00:30:18,820 --> 00:30:27,510 >> 그것이라고하면 너무 낮은, 내가 주장의 브래킷 나는, 나는 삭제할거야 629 00:30:27,510 --> 00:30:29,400 모두이 두 줄. 630 00:30:29,400 --> 00:30:32,570 이제 다른 사람이, 내가 바라고 쓴 라는 함수가 낮​​은이며, 631 00:30:32,570 --> 00:30:36,250 그들은했고 그들이 선언 회전 아웃 그 ctype.h의 내부입니다. 632 00:30:36,250 --> 00:30:39,480 지금은 27 행을 떠날거야 혼자, 나는 31 행을 떠날거야 633 00:30:39,480 --> 00:30:41,890 혼자,하지만 난 얼마나 많이 알 내 코드를 강화. 634 00:30:41,890 --> 00:30:42,690 이제 청소기입니다. 635 00:30:42,690 --> 00:30:47,250 그것은을 찾아 적은 어렵다 현재 기능은 더욱이기 때문에 636 00:30:47,250 --> 00:30:50,080 너무 멋지고 그냥 이름 그것이 말하는 않습니다. 637 00:30:50,080 --> 00:30:51,520 >> 그래서 지금이 저장거야. 638 00:30:51,520 --> 00:30:52,930 내가 축소거야. 639 00:30:52,930 --> 00:30:56,650 그리고 당신이 할 수 그냥 스크래치로 부울 부울 값 true 또는 640 00:30:56,650 --> 00:31:01,530 거짓이 정확히 무엇인지의 효과적으로 수익을 낮 춥니 다. 641 00:31:01,530 --> 00:31:02,960 저를 컴파일 할 수 있습니다. 642 00:31:02,960 --> 00:31:04,500 나 다시 실행하자. 643 00:31:04,500 --> 00:31:07,350 그리고 지금, 다시 그것을 시도하자 H-E-L-L-O 입력합니다. 644 00:31:07,350 --> 00:31:07,970 그것은 꽤 좋은. 645 00:31:07,970 --> 00:31:10,150 그리고 다시 시도, 내가 확인 뭔가를 망치지 않았다. 646 00:31:10,150 --> 00:31:11,670 그 방법도 대문자로되어 있습니다. 647 00:31:11,670 --> 00:31:14,190 >> 하지만이 충분하지 않기 때문에 내가 않을거야하는 다른 것 648 00:31:14,190 --> 00:31:19,090 난 정말 그것을 통해 작동하지 않는 기억 신중에, 말, 종이는 649 00:31:19,090 --> 00:31:19,920 이 망할 줄. 650 00:31:19,920 --> 00:31:23,450 이 있다면 그것은 좋은 것 같지 않아 어퍼라는 함수? 651 00:31:23,450 --> 00:31:26,930 잘가 밝혀 뿐만 아니라 ctype.h에 있습니다. 652 00:31:26,930 --> 00:31:30,150 내가 가서 입력 할거야 - 653 00:31:30,150 --> 00:31:31,340 내가 그 라인을 다시 가져올 수 있습니다. 654 00:31:31,340 --> 00:31:36,430 대신 여기, 내가 앞서 가자 하고 말할 %의 C를 대체 655 00:31:36,430 --> 00:31:42,110 이 함수를 호출 한 결과 의의 i 번째 문자의 상단. 656 00:31:42,110 --> 00:31:45,430 그리고 지금은 점점 알 조금 균형. 657 00:31:45,430 --> 00:31:48,870 나는 얼마나 많은 추적해야 내가 열고 닫은 괄호. 658 00:31:48,870 --> 00:31:50,050 >> 그래서 지금은 심지어 청소기입니다. 659 00:31:50,050 --> 00:31:53,460 이제이 프로그램을 더 받고있다 그것 때문에 더 나은 논증 설계 660 00:31:53,460 --> 00:31:56,450 훨씬, 훨씬 더 읽기하지만, 그것은 더의이 수정하자 없어요. 661 00:31:56,450 --> 00:31:57,600 투자합니다. 662 00:31:57,600 --> 00:31:58,930 . / 투자. 663 00:31:58,930 --> 00:32:03,220 H-E-L-L-O. 하자, 다시 실행 D-A-V-I-D. 좋아, 그럼 우리는 아직도있어 664 00:32:03,220 --> 00:32:04,250 모양 꽤 좋은. 665 00:32:04,250 --> 00:32:06,030 >> 하지만 지금은 상단에. 666 00:32:06,030 --> 00:32:09,720 나는 하나가 있다고 제안 세련미 우리가 될 것이라고 만들 수 있습니다 667 00:32:09,720 --> 00:32:12,820 정말 조이 수있는, 정말 좋은 이 코드까지 정말 우리에게 다섯 줄 668 00:32:12,820 --> 00:32:15,150 예를 들어 설계를위한 다섯 밖으로. 669 00:32:15,150 --> 00:32:16,510 제거하는 좋은 것입니다 무엇인가? 670 00:32:16,510 --> 00:32:20,770 음의 방법 망할 긴이 블록을 찾아 코드는 간단한 작업을 수행하는 것입니다. 671 00:32:20,770 --> 00:32:23,850 >> 지금은 제쳐두고, 당신이있을만큼 지난 슈퍼 절에서 볼 수 672 00:32:23,850 --> 00:32:27,570 주말, 당신은 엄격하게 필요하지 않습니다 중괄호 당신이 하나를 가지고 673 00:32:27,570 --> 00:32:32,180 우리가 제안에도 불구하고 코드 라인 훨씬 만든다 있도록 그들을 유지 674 00:32:32,180 --> 00:32:36,190 스크래치의 U 자형에서와 같은, 더 명확한 블록, 분기 안에거야. 675 00:32:36,190 --> 00:32:40,170 상위로한다면 그것은 좋지 않을까 입력을 줄 때, 그것은으로 전환 676 00:32:40,170 --> 00:32:44,730 그렇지 않을 경우, 대문자, 어떤 것 반대의 경우에 훌륭 할 경우 677 00:32:44,730 --> 00:32:47,210 그것은 이미 대문자입니까? 678 00:32:47,210 --> 00:32:49,620 단지를 통해 전달 그리고 혼자 둡니다. 679 00:32:49,620 --> 00:32:50,660 >> 그래서 아마 그 작업을 수행합니다. 680 00:32:50,660 --> 00:32:52,990 나는 시도하고, 다만 희망 수 그것은, 그러나 저를 보자 않습니다 681 00:32:52,990 --> 00:32:54,450 한 가지를 소개합니다. 682 00:32:54,450 --> 00:32:57,440 대신이 내장 된 단말기를 사용 창 아래 여기에 기억이 683 00:32:57,440 --> 00:33:01,130 이 광장 검은 색 아이콘은 당신에게를 제공합니다 나는이 가득 할 수있는 큰 터미널 창 684 00:33:01,130 --> 00:33:02,260 내가 원하는 경우 선별? 685 00:33:02,260 --> 00:33:05,820 그래서 그들은 일종의 이상한거야 밝혀 이름이 있지만라고 이런 일이있다 686 00:33:05,820 --> 00:33:10,970 man 페이지, 매뉴얼 페이지, 짧은 사람, 그리고 나는이 별에 액세스 할 수 있습니다 687 00:33:10,970 --> 00:33:14,515 입력 사람 - 688 00:33:14,515 --> 00:33:15,570 나는 무엇을 입력 할 수 있습니까? 689 00:33:15,570 --> 00:33:17,830 상단에 남자입니다. 690 00:33:17,830 --> 00:33:21,090 >> 가 존재하는 경우 이제 알 에 컴퓨터의 내부 작동 691 00:33:21,090 --> 00:33:23,970 이 경우 단지 제품, 운영 체제 리눅스는거야 692 00:33:23,970 --> 00:33:27,920 저에게의 약간 이상한 세트를주는 출력,하지만 당신은 시간을 통해 찾을 수 있습니다 그 693 00:33:27,920 --> 00:33:31,720 항상 꽤 많은 포맷입니다 같은 그래서 당신은 그것에 익숙해 시작합니다. 694 00:33:31,720 --> 00:33:35,130 상단에 상단에 주목하고, 분명히 같은 문서입니다 695 00:33:35,130 --> 00:33:35,680 낮추기위한. 696 00:33:35,680 --> 00:33:38,740 몇 가지를 절단했다 누구 썼다 모서리와 한 페이지에 모두 넣어. 697 00:33:38,740 --> 00:33:40,720 이러한 것들을 '목적으로 생활을 변환하는 것입니다 698 00:33:40,720 --> 00:33:42,780 대문자 또는 소문자로 문자. 699 00:33:42,780 --> 00:33:46,290 >> 매뉴얼 페이지 시놉시스에서 그 통지 내가 가지고있는 파일이 저를 가르치고있다 700 00:33:46,290 --> 00:33:48,130 이 물건을 사용하는 등입니다. 701 00:33:48,130 --> 00:33:51,320 그것은 나에게이에 대한 서명을주고 기능, 둘,도 702 00:33:51,320 --> 00:33:53,510 우리는 지금 만 생각 하나 걱정한다. 703 00:33:53,510 --> 00:33:54,730 여기에 지금 설명입니다. 704 00:33:54,730 --> 00:33:58,800 상단에 문자를 변환 가능하면 C를 대문자로. 705 00:33:58,800 --> 00:34:02,280 >> 여전히 유익하지만, 나에게하게하지 않는 것이 지금, 반환 값에서 일을보고 706 00:34:02,280 --> 00:34:03,520 그 뒤를 물려있어. 707 00:34:03,520 --> 00:34:08,600 따라서 반환 값은의 변환 문자 또는 C 경우 708 00:34:08,600 --> 00:34:09,870 변환은 불가능했습니다. 709 00:34:09,870 --> 00:34:11,202 C는 무엇입니까? 710 00:34:11,202 --> 00:34:12,560 >> 오리지날 캐릭터. 711 00:34:12,560 --> 00:34:15,370 >> 원래의 캐릭터와 우리가 알고있는 에 의해 다시까지가는 ​​것을 712 00:34:15,370 --> 00:34:19,179 시놉시스, 그리고 누구든지이 쓴 함수는 결정하는 입력 713 00:34:19,179 --> 00:34:22,909 에 상단과 더 낮은 단지입니다 임의의 C 호출 할 것. 714 00:34:22,909 --> 00:34:24,909 그들은 대부분의 뭐라 수도 그들이 원하는,하지만 그들은 그것을 유지 715 00:34:24,909 --> 00:34:26,270 C 간단. 716 00:34:26,270 --> 00:34:27,880 그래서 매뉴얼 페이지를 협의했다. 717 00:34:27,880 --> 00:34:31,870 이 문장은 저를 안심하게하는 경우 그것은 소문자 아니지만, 그것은의 718 00:34:31,870 --> 00:34:34,969 단지 C를 내게 돌려 줄 것 내가 제거 할 수 있음을 의미 완벽한, 719 00:34:34,969 --> 00:34:36,199 내 다른 조건. 720 00:34:36,199 --> 00:34:39,679 >> 그래서 제가 gedit를 다시 가게하고, 지금 날 그냥 이렇게하자. 721 00:34:39,679 --> 00:34:41,960 내 printf의 문을 복사하는거야. 722 00:34:41,960 --> 00:34:45,969 나는 앞으로 오른쪽 안쪽에 갈거야 루프 프린트가 밖으로, 그리고 얻을 723 00:34:45,969 --> 00:34:48,760 구조면 지금의이 전체를 제거. 724 00:34:48,760 --> 00:34:51,860 나쁜 생각은없고, 매우였다 훨씬 정확하고와 일치 725 00:34:51,860 --> 00:34:54,100 우리가 설교 한 모든 것을 하지만 단지 필요가 없습니다. 726 00:34:54,100 --> 00:34:57,070 마자 당신이 어떤 라이브러리를 실현으로 기능은 다른 누군가가 존재 727 00:34:57,070 --> 00:35:01,340 쓴, 또는 어쩌면 당신은 다른 곳에서 작성 파일 당신이 정말로 그것을 사용할 수 있습니다 728 00:35:01,340 --> 00:35:02,690 코드를 강화하기 시작합니다. 729 00:35:02,690 --> 00:35:06,080 >> 내가 좋은 스타일 같은 것들을 말할 때, 이 사람이라는 사실 730 00:35:06,080 --> 00:35:11,490 이다 이전에 상단, 또는에 기능 낮은 멋지고 유용하기 때문에 731 00:35:11,490 --> 00:35:12,900 그들은 매우 설명입니다. 732 00:35:12,900 --> 00:35:16,120 당신은 당신의 함수를 호출하고 싶지 않아요 이 x와 y 및 z, 733 00:35:16,120 --> 00:35:19,620 훨씬, 훨씬 적은 의미. 734 00:35:19,620 --> 00:35:25,160 이 시리즈에 대한 질문 개선? 735 00:35:25,160 --> 00:35:28,010 >> 그래서 한 말을하는 데 충분 테이크 아웃도 자신의 문제로입니다 736 00:35:28,010 --> 00:35:30,960 설정 - 어쩌면 문제 세트 하나지만, 확실히 P도 두와 이후를 설정 737 00:35:30,960 --> 00:35:34,380 그들이 올바른있을 때 필요하지 않습니다 그들은 단지 완벽한 의미 738 00:35:34,380 --> 00:35:36,155 아직 나 특히 설계. 739 00:35:36,155 --> 00:35:38,420 그것은에 다른 축의 에 대해 생각하기 시작. 740 00:35:38,420 --> 00:35:41,730 그래서 당신의 문자열 내부에 있었다 당신은이 컴퓨터의 메모리 만하면 741 00:35:41,730 --> 00:35:46,180 H-E-L-L-O와 같은 문자의 전체 무리 RAM의 내부 및 가정 742 00:35:46,180 --> 00:35:51,330 당신은 당신의 프로그램에서 문자열을 호출하는 그런 당신이 여러 번 743 00:35:51,330 --> 00:35:54,200 그런 다음, 한 문자열을 호출 다시 문자열을 호출합니다. 744 00:35:54,200 --> 00:35:55,880 음, 무엇을거야 시간이 지남에 따라 어떻게? 745 00:35:55,880 --> 00:35:59,170 >> 즉, 당신의 선이있는 경우 같은 맥락의 코드 임에도 불구하고 아웃 746 00:35:59,170 --> 00:36:02,120 문자열들 도착 - 747 00:36:02,120 --> 00:36:02,960 이 작업을 수행하자. 748 00:36:02,960 --> 00:36:05,270 문자열 이름 문자열을 얻을 같습니다. 749 00:36:05,270 --> 00:36:08,590 그래서 코드 줄이 의미하는 가정 자신의 이름을 사용자에게 물어. 750 00:36:08,590 --> 00:36:14,580 이 코드 다음 줄은 요구하기위한 것입니다 자신의 학교에 대한 사용자 및 751 00:36:14,580 --> 00:36:15,920 이 다음 줄, 등등. 752 00:36:15,920 --> 00:36:18,150 우리가 질문을 계속한다고 가정 서로에 대한 사용자 753 00:36:18,150 --> 00:36:19,750 서로 다른 문자열. 754 00:36:19,750 --> 00:36:22,390 그들은 메모리에 머물거야 동시에. 755 00:36:22,390 --> 00:36:24,280 하나는 다른 소지품하지 않을 것입니다. 756 00:36:24,280 --> 00:36:26,420 학교는 다른을 덮어 쓰지 않습니다. 757 00:36:26,420 --> 00:36:28,520 하지만 그들은 모두 어디에서 할 메모리에 끝? 758 00:36:28,520 --> 00:36:32,030 >> 음, 우리는 화면에 그리기 시작하면, 우리는이 일을 사용할 수있는 759 00:36:32,030 --> 00:36:35,800 여기에 칠판처럼,이 검은 경우 사각형 내 컴퓨터를 나타냅니다 760 00:36:35,800 --> 00:36:39,800 메모리, I 임의로 시작하는거야 작은 사각형으로 그것을 나누어, 761 00:36:39,800 --> 00:36:42,120 각 대표하는 중 메모리의 바이트. 762 00:36:42,120 --> 00:36:46,560 솔직히, 당신은 RAM의 기가 바이트가있는 경우 요즘, 당신은 억 바이트가 763 00:36:46,560 --> 00:36:49,540 컴퓨터의 메모리 때문에, 이 사각형의 억. 764 00:36:49,540 --> 00:36:52,110 그래서, 말을 충분 스케일 정말 없습니다. 765 00:36:52,110 --> 00:36:58,250 >> 그러나 우리는이 모든 그리기 유지할 수 명확하게 사각형을 확장하고,이하지 766 00:36:58,250 --> 00:37:01,260 총체적으로 나타냅니다 내 컴퓨터의 메모리. 767 00:37:01,260 --> 00:37:03,136 이제 우리는 점, 점, 점 마찬가지로 것이다. 768 00:37:03,136 --> 00:37:06,260 그래서 다른 말로하면 지금 프롬프트 GET 문자열을 사용자 나에게를 제공합니다 769 00:37:06,260 --> 00:37:07,350 문자열, 어떻게됩니까? 770 00:37:07,350 --> 00:37:14,270 만약 "안녕하세요,"그 끝에서 사용자 유형 최대의 H-E-L-L-O. 그러나 가정 771 00:37:14,270 --> 00:37:15,720 의 사용자는 유형 - 772 00:37:15,720 --> 00:37:17,250 실제로, 나는 말았어야 안녕하세요 우리가 요구하고 있기 때문에 773 00:37:17,250 --> 00:37:18,330 자신의 이름을 그들. 774 00:37:18,330 --> 00:37:20,580 그래서이 작업을 수행 할 수 있는지 다시 가자. 775 00:37:20,580 --> 00:37:26,130 >> 그래서 내 이름을 D-A-V-I-D의 I 입력하면, 하지만 기억이의 두 번째 줄 776 00:37:26,130 --> 00:37:29,220 코드를 다시 문자열을 얻을 수 있었다 학교를 얻을 수 있습니다. 777 00:37:29,220 --> 00:37:32,090 그 단어는 어디하는 사용자 다음에 갈의 종류? 778 00:37:32,090 --> 00:37:38,290 글쎄, 아마 들어갈 것 H-A-R-V-A-R-D. 내가했습니다 그래서 비록 779 00:37:38,290 --> 00:37:41,560 두 행으로 그려진,이 단지 귀하의 바이트의 전체 무리 780 00:37:41,560 --> 00:37:42,710 컴퓨터의 RAM. 781 00:37:42,710 --> 00:37:46,560 지금 난 경우 때문에 문제가 지금있다 이 매우 합리적으로 RAM을 사용하여 782 00:37:46,560 --> 00:37:49,910 하지만 순진 방법의 종류, 무엇을 할 당신 분명히 구별하지? 783 00:37:49,910 --> 00:37:52,640 784 00:37:52,640 --> 00:37:54,680 하나의 시작 위치는 어디 하나의 끝, 오른쪽? 785 00:37:54,680 --> 00:37:55,860 그들은 경계가 모호 종류입니다. 786 00:37:55,860 --> 00:37:57,920 >> 그래서 컴퓨터를 밝혀 졌 이 작업을 수행하지 않습니다. 787 00:37:57,920 --> 00:38:04,720 나 실제로 시간을 거슬러 이동하자 몇 문자, 대신 하버드 788 00:38:04,720 --> 00:38:09,570 사용자 이름 직후 가고, 사용자가 실제로 뒤에 도착 789 00:38:09,570 --> 00:38:12,000 장면, 특수 문자 에 의해 삽입 790 00:38:12,000 --> 00:38:13,885 그 또는 그녀를위한 컴퓨터. 791 00:38:13,885 --> 00:38:19,470 / 0, 그렇지 않으면 NUL 문자로 알려 귀찮게은 N-U-L이라고하지 792 00:38:19,470 --> 00:38:22,190 N-U-L-L,하지만 당신은 그것을 그대로 / 0를 작성합니다. 793 00:38:22,190 --> 00:38:27,130 그것은 그냥 0 비트의 것은있는 마커 첫 번째 단어 사이의 사용자의 794 00:38:27,130 --> 00:38:28,290 입력 한 두 번째. 795 00:38:28,290 --> 00:38:33,020 >> 하버드 실제로 지금 종료되도록 자이 순서로 796 00:38:33,020 --> 00:38:36,110 그리고 하나 더 / 0. 797 00:38:36,110 --> 00:38:41,690 이러한 필요 때문에 다른 말로로 센티넬 값, 연속 8 제로 798 00:38:41,690 --> 00:38:45,220 비트, 당신은 지금 구별을 시작할 수 있습니다 다른에서 하나의 문자입니다. 799 00:38:45,220 --> 00:38:49,720 그래서 "안녕하세요"이다했던 모든 시간 실제로, / 0로 "안녕하세요"하고 800 00:38:49,720 --> 00:38:53,580 한편,이 수도 잘 상당히 더 많은 RAM 수 801 00:38:53,580 --> 00:38:56,400 컴퓨터의 내부. 802 00:38:56,400 --> 00:38:57,810 >> 내가 이제 한 가지를 수행 할 수 있습니다. 803 00:38:57,810 --> 00:39:01,800 그것은 밝혀 그 다음 사각형의 우리는 그들이 네, 그리기 봤는데 804 00:39:01,800 --> 00:39:06,140 문자열,하지만 더 일반적으로, 이런 일들은 배열입니다. 805 00:39:06,140 --> 00:39:10,590 배열은 메모리의 덩어리입니다 즉, 뒷면에 다시 다시 다시의 806 00:39:10,590 --> 00:39:15,130 그리고 당신은 일반적으로 방법으로 배열을 사용 이 대괄호 표기법. 807 00:39:15,130 --> 00:39:18,210 그래서 우리는이 꽤 볼 겁니다 시간이 지남에,하지만 내가 진행시켜 808 00:39:18,210 --> 00:39:21,160 열고,의이 세 호출 할 수 있습니다. 809 00:39:21,160 --> 00:39:23,920 그리고 우리가 무엇을 할 수 있는지 알 이와 같은 트릭, 작은 810 00:39:23,920 --> 00:39:25,750 여기에 조금 더 구문. 811 00:39:25,750 --> 00:39:29,270 >> 그래서이 프로그램의 라인 17 - 사실, 내가 처음 프로그램을 실행할 수 812 00:39:29,270 --> 00:39:30,770 그래서 우리는이 일을 무엇을 볼 수 있습니다. 813 00:39:30,770 --> 00:39:33,530 나에게 나이를하게 부르 자 이 프로그램을 컴파일합니다. 814 00:39:33,530 --> 00:39:34,950 . / 나이. 815 00:39:34,950 --> 00:39:36,480 방에 얼마나 많은 사람들이 있습니까? 816 00:39:36,480 --> 00:39:38,020 그것은 세 가지 호출합니다. 817 00:39:38,020 --> 00:39:39,575 첫 번째 사람 나이? 818 00:39:39,575 --> 00:39:42,710 18, 19, 20. 819 00:39:42,710 --> 00:39:46,770 그리고 지금 약간 안되게, 난 그냥 프로그램이 그 세 사람을 만들었습니다 820 00:39:46,770 --> 00:39:47,740 세 사람. 821 00:39:47,740 --> 00:39:50,390 >> 그래서 기회는 분명히있다 여기에 몇 가지 재미를 연산합니다. 822 00:39:50,390 --> 00:39:51,560 다행히, 수학 정확합니다. 823 00:39:51,560 --> 00:39:54,720 18 간, 19-19 갔다 20 등. 824 00:39:54,720 --> 00:39:58,510 하지만 정말 될 운명이야 설명 여기에 우리는 저장하는 방법입니다 825 00:39:58,510 --> 00:40:00,190 그 세 사람의 나이. 826 00:40:00,190 --> 00:40:02,370 내가 무엇에있는 확대하자 여기에 우리가 간다. 827 00:40:02,370 --> 00:40:06,240 >> 그래서 먼저이 처음 몇 줄해야 꽤 익숙해 수 있습니다. 828 00:40:06,240 --> 00:40:08,770 난 그냥에 대한 사용자에게 메시지를 표시 해요 방에있는 사람들의 수. 829 00:40:08,770 --> 00:40:11,490 그럼 내가 사용 INT를 얻을한데로 동안 다시하고 다시하고 다시이 작업을 수행합니다. 830 00:40:11,490 --> 00:40:15,780 우리는 전에 패턴을 볼 수 있지만 한 27 행은 새로운 사실​​은 꽤 있습니다 831 00:40:15,780 --> 00:40:18,160 유용하고 될 것이다 점점 유용합니다. 832 00:40:18,160 --> 00:40:21,620 어떤 줄 27 가지의 통지 나는 선언 할 나타나는 것입니다 833 00:40:21,620 --> 00:40:23,960 라고 나이를 int로하지만, 기다립니다. 834 00:40:23,960 --> 00:40:27,140 그냥 INT 연령대 아니다. 835 00:40:27,140 --> 00:40:30,130 이러한 대괄호가 있습니다 내부는 n입니다. 836 00:40:30,130 --> 00:40:35,150 >> 이러한 맥락에서 너무 브래킷 N,하지 그러나 여기에서 printf의 문 내부 837 00:40:35,150 --> 00:40:44,370 이 유일한 선 27이 줄은 나 N 정수를주고, 말을 각각의 838 00:40:44,370 --> 00:40:46,080 int 타입이다. 839 00:40:46,080 --> 00:40:49,870 그래서 이것은,의, 말하자면, 물통 이 경우 세 개의 정수로 돌아 가기 840 00:40:49,870 --> 00:40:52,770 다시 백업 할 것을 그래서 효과적으로 세 개의 변수가 있습니다. 841 00:40:52,770 --> 00:40:54,890 대안이 될 분명이 될 것입니다. 842 00:40:54,890 --> 00:40:57,400 >> 내가 원하는 경우 첫 번째 학생의 나이, 나는이 작업을 수행 할 수 있습니다. 843 00:40:57,400 --> 00:40:59,520 내가 원하는 경우 두 번째 학생의 연령 나는이 작업을 수행 할 수 있습니다. 844 00:40:59,520 --> 00:41:01,860 내가 원하는 경우 세 번째 학생의 나이, 나는이 작업을 수행 할 수 있습니다. 845 00:41:01,860 --> 00:41:04,320 그리고 맙소사 우리는 모두의 필요 이 방에있는 나이 - 846 00:41:04,320 --> 00:41:07,670 내 말은,이 사본 많아서입니다, 다시하고 다시하고 다시 붙여 넣습니다. 847 00:41:07,670 --> 00:41:10,870 그리고 플러스 일단이 프로그램을 컴파일 또 다른 학생은 밖으로에 산책하는 경우 848 00:41:10,870 --> 00:41:14,200 그 문 이제 내 번호 변수 올바르지 않습니다. 849 00:41:14,200 --> 00:41:17,450 >> 그래서 배열에 대한 좋은 것은 그대로 당신은 자신을 느끼고 시작하자마자 850 00:41:17,450 --> 00:41:20,190 복사 및 붙여 넣기, 확률은 그의입니다 하지 가장 좋은 방법. 851 00:41:20,190 --> 00:41:22,240 배열은 잠재적으로 동적입니다. 852 00:41:22,240 --> 00:41:24,610 나는 사전에 얼마나 많은 사람들이 알고하지 않습니다 , 방에가는 853 00:41:24,610 --> 00:41:28,670 하지만 난 그들 n을 필요로 알고, 난거야 때가되면 N을 알아낼. 854 00:41:28,670 --> 00:41:35,500 이 코드 줄은 이제 의미, 나에게 줄 다음과 같습니다 메모리 청크 855 00:41:35,500 --> 00:41:40,380 여기서 화면에 상자의 수 N에 전적으로 의존입니다 856 00:41:40,380 --> 00:41:42,010 사용자가 들어 입력 857 00:41:42,010 --> 00:41:44,850 >> 이제이 프로그램의 나머지 부분은 우리가 실제로 매우 유사 858 00:41:44,850 --> 00:41:46,860 그냥 문자로했다. 859 00:41:46,860 --> 00:41:49,970 나는 루프를 볼 수있을 라인 30에서 시작. 860 00:41:49,970 --> 00:41:54,920 내가 배열을 얻을 수 있도록 직후, I y는 n으로에 제로를 동등한에서 반복. 861 00:41:54,920 --> 00:41:58,890 난 그냥이 교훈 printf를이 메시지는 단지 말을 나에게 나이를 부여 862 00:41:58,890 --> 00:42:03,690 사람의 # % 나 때문에 번호 하나, 두 번째, 세 번째. 863 00:42:03,690 --> 00:42:04,730 그리고 내가 왜이 짓을 한거야? 864 00:42:04,730 --> 00:42:08,870 솔직히, 인간은 하나에서 계산하는 것을 선호 컴퓨터 과학자 반면에 최대에, 865 00:42:08,870 --> 00:42:09,620 업에 제로. 866 00:42:09,620 --> 00:42:11,700 컴퓨터 과학자로하지 않을 수 있습니다 이런 종류의 프로그램을 사용하여, 그래서 우리는거야 867 00:42:11,700 --> 00:42:13,990 그냥 계산 시작하려고 보통 사람들처럼 하나의. 868 00:42:13,990 --> 00:42:17,630 >> 그리고 지금은 33 행에서 약간 통지 구문의 여러 조각. 869 00:42:17,630 --> 00:42:23,710 형의 변수의 i 번째 시대 배열은 int를 얻을 수 있습니다. 870 00:42:23,710 --> 00:42:25,770 그리고 지금 마지막으로,이 단지 여기에 산술 다운. 871 00:42:25,770 --> 00:42:29,200 내가 주장하는 별도의 루프로 결정 약간의 시간이 지금 통과하고, 872 00:42:29,200 --> 00:42:31,400 별도의 루프는이 라인 실행합니다. 873 00:42:31,400 --> 00:42:35,810 >> , 사람 나는 지금부터 해가 될 것입니다 세하지만,이 통지는하지 않습니다 874 00:42:35,810 --> 00:42:36,500 나는 변수입니다. 875 00:42:36,500 --> 00:42:38,390 이제이 % INT의 I이다. 876 00:42:38,390 --> 00:42:43,210 첫 번째 자리 표시 자로 통보, I 난에 1을 더한 플러그, 그래서 우리는 같이 계산 877 00:42:43,210 --> 00:42:44,250 정상적인 사람. 878 00:42:44,250 --> 00:42:49,190 그리고 그 시대의 가치를위한, 내가 살, 난 세 브래킷을 879 00:42:49,190 --> 00:42:52,980 난 - 왜 내가 여기에 플러스 뭐하는 거지? 880 00:42:52,980 --> 00:42:53,760 그들은 단지 세. 881 00:42:53,760 --> 00:42:55,030 그것은 프로그램의 나의 어리석은 선택입니다. 882 00:42:55,030 --> 00:42:56,810 그들은 일년 만 세. 883 00:42:56,810 --> 00:42:59,770 나는 어떤 수 있다는 점에서 입력 할 수 있습니다 사실 거기 싶다. 884 00:42:59,770 --> 00:43:02,430 >> 그래서 실제로 모두의 여기에 관련? 885 00:43:02,430 --> 00:43:07,610 음, 내가 실제로 뒤로 스크롤하자 여기에와 그림을 그릴 886 00:43:07,610 --> 00:43:10,830 앞에 무슨 일이 있을지의. 887 00:43:10,830 --> 00:43:15,720 우리는 다음과 일을 할 것이다 무엇 문제 2 세트는에 담구고 888 00:43:15,720 --> 00:43:17,070 암호의 세계. 889 00:43:17,070 --> 00:43:22,500 그래서이 문자열이기 때문에, 여러 문자의 순서, 어떤 890 00:43:22,500 --> 00:43:23,750 이 말을합니까? 891 00:43:23,750 --> 00:43:28,530 892 00:43:28,530 --> 00:43:30,600 이것은 온라인 버전에없는 슬라이드. 893 00:43:30,600 --> 00:43:35,880 >> 그래서, 본에 해당된다는 주장 몇 년의 어리석은 광고 894 00:43:35,880 --> 00:43:39,950 전 사실 기억 수도 그 기원 중 하나입니다. 895 00:43:39,950 --> 00:43:42,740 그래서 암호화의 예입니다 또는 암호화. 896 00:43:42,740 --> 00:43:46,150 당신이 원한다면 그것은 그렇게 밝혀 실제로 정보 나 공유를 보내 897 00:43:46,150 --> 00:43:49,310 안전하게 누군가와 정보 이 같은 메시지처럼, 당신은 할 수 있습니다 898 00:43:49,310 --> 00:43:50,500 편지를 스크램블. 899 00:43:50,500 --> 00:43:53,170 그러나 일반적으로, 단어는 무작위로 뒤섞 없습니다. 900 00:43:53,170 --> 00:43:56,365 그들은 어떤 방법으로 치환되는 또는 변경하고 어떤 식 으로든 있도록 - 죄송합니다. 901 00:43:56,365 --> 00:43:59,040 그 다음 시간에 재미 스포일러입니다. 902 00:43:59,040 --> 00:44:04,390 >> 그럼 당신은 분명히 무엇을 매핑 할 수 있습니다 그 라인 업 B. 고시 O 903 00:44:04,390 --> 00:44:05,420 대문자 현명한. 904 00:44:05,420 --> 00:44:07,960 분명히 R 전자됩니다. 905 00:44:07,960 --> 00:44:14,000 분명히 F-H-E-R은 S-U-R-E가됩니다. 그래서 그것은 매핑 거기 밝혀,과 906 00:44:14,000 --> 00:44:18,720 이 경우 꽤 바보가있다 누군가가 그것을 알아 낸 경우 매핑? 907 00:44:18,720 --> 00:44:21,440 이라고 뭔가 부패 13, 13 회전합니다. 908 00:44:21,440 --> 00:44:24,760 그것은 암호화 멍청한입니다 메커니즘 그것이 그대로 그냥 있기 때문에 909 00:44:24,760 --> 00:44:29,160 , 문자의 각 하나에 13을 추가 의미에서 바보가 당신 다만 경우 910 00:44:29,160 --> 00:44:31,890 당신의 손에 자유 시간의 조금을 가지고 와 연필, 또는 당신은 그냥 생각 911 00:44:31,890 --> 00:44:35,260 당신의 머리를 통해, 당신은 시도 할 수 가능한 모든 추가 - 하나, 둘, 912 00:44:35,260 --> 00:44:38,470 세 점, 방금 점, 점, 25 전체 알파벳을 회전하고 913 00:44:38,470 --> 00:44:40,860 결국, 당신은 알아낼거야 어떤 메시지입니다. 914 00:44:40,860 --> 00:44:43,700 당신이 뭔가를 않았다 그래서 만약 사용자에게 메시지를 전달 초등학교 915 00:44:43,700 --> 00:44:46,830 가장 친한 친구의 초등학교 경우 교사는 단순히를 읽어 916 00:44:46,830 --> 00:44:50,320 메시지와 짐승이 솔루션을 강제로 당신은 얻었을 수도 있습니다 917 00:44:50,320 --> 00:44:52,550 그것에 의해 답변. 918 00:44:52,550 --> 00:44:54,970 >> 지금은 물론, 현실 세계에서, 암호화는 더 복잡합니다. 919 00:44:54,970 --> 00:45:00,120 이것은의 텍스트 조각입니다 사용자 이름과가 컴퓨터 시스템 920 00:45:00,120 --> 00:45:03,630 암호는 거의 우리 모두가 수행하고 이 무엇 비밀번호 수도 있습니다 921 00:45:03,630 --> 00:45:07,260 하드에 저장하는 경우에 좋아 보이는 하지만 암호화 된 형태로 구동한다. 922 00:45:07,260 --> 00:45:11,050 이것은 문자 그대로 회전하지 않습니다 A는 B와 B는이 C.이다 923 00:45:11,050 --> 00:45:15,620 훨씬 더 정교하지만 사용 일반적으로 비밀 키라고도 무슨 924 00:45:15,620 --> 00:45:16,690 암호화. 925 00:45:16,690 --> 00:45:20,210 이 그림은 다음을 말한다 몇 가지 아이콘 이야기. 926 00:45:20,210 --> 00:45:22,250 >> 왼쪽에, 우리는 무엇을 우리는 일반 텍스트를 호출합니다. 927 00:45:22,250 --> 00:45:25,420 암호화, 일반의 세계에서 텍스트는 단지 원래의 메시지입니다 928 00:45:25,420 --> 00:45:29,050 영어 나 불어로 작성 또는 어떠한 언어입니다. 929 00:45:29,050 --> 00:45:32,405 당신이 그것을 암호화 싶은 경우에, 우리는 통과합니다 그것을 그림으로 자물쇠를 통해, 그래서 930 00:45:32,405 --> 00:45:35,580 알고리즘의 어떤 종류, 어떤 기능을 누군가가 쓴 또는 프로그램 931 00:45:35,580 --> 00:45:39,880 문자를 희망하는 안간힘 더 복잡보다 단지 13 추가 932 00:45:39,880 --> 00:45:40,980 각각 있습니다. 933 00:45:40,980 --> 00:45:43,780 >> 당신은에 그 과정에서 무엇을 얻을 가운데가이 cyphertext이라고합니다. 934 00:45:43,780 --> 00:45:44,850 섹시한 단어 친절. 935 00:45:44,850 --> 00:45:47,630 그것은 그냥 암호화의 의미 일반 텍스트 버전입니다. 936 00:45:47,630 --> 00:45:52,570 그리고 당신은 같은 비밀을 가지고있는 경우에만, 13 마이너스 13에 당신이 할 수있다 937 00:45:52,570 --> 00:45:54,970 그런 해독은 메시지를 표시합니다. 938 00:45:54,970 --> 00:45:57,770 >> 그래서 문제의 것들 중 두 가지를 설정 당신은 해커의 경우 할거야 939 00:45:57,770 --> 00:46:01,860 버전, 당신은 코드를 작성해야합니다 파악, 이러한 암호를 해독 940 00:46:01,860 --> 00:46:05,170 그들이 있었고, 그들이 어떻게했다 우리가 비록 암호화, 당신에게 약간을 제공합니다 941 00:46:05,170 --> 00:46:06,460 길을 따라의 안내. 942 00:46:06,460 --> 00:46:09,320 표준 버전에서는 소개 암호의 몇 가지 암호화 943 00:46:09,320 --> 00:46:12,400 메커니즘, 하나는 카이사르 하나라고 Vigenere라는 것을 아직도 944 00:46:12,400 --> 00:46:16,100 가되어 회전 암호 뭔가, B는 무엇인가됩니다 만, 945 00:46:16,100 --> 00:46:18,820 당신은 프로그래밍 할 필요가 실제로 비밀이있을 수 있기 때문에 946 00:46:18,820 --> 00:46:22,840 일반적으로 숫자입니다 참여 키 또는 키워드 만 947 00:46:22,840 --> 00:46:26,420 보낸 사람과 이들의받는 사람 메시지를 이해해야합니다. 948 00:46:26,420 --> 00:46:28,660 >> 자,이 사실은 화신가 현실 세계합니다. 949 00:46:28,660 --> 00:46:32,910 이것은 예를 들어, 작은 고아 애니의 비밀 디코더 링하고, 950 00:46:32,910 --> 00:46:35,180 실제로이를 구현할 수 있습니다 회전 암호 - 951 00:46:35,180 --> 00:46:37,930 뭔가가되고, B가됩니다 뭔가 - 바퀴의 부부와 함께, 952 00:46:37,930 --> 00:46:40,840 외부에 하나 안에 하나의 그런 그 당신은 휠을 돌리거나하는 경우 953 00:46:40,840 --> 00:46:44,170 반지는 당신이 실제로을 줄 수 있습니다 다른 문자와 문자, 954 00:46:44,170 --> 00:46:45,430 비밀 코드를 점점. 955 00:46:45,430 --> 00:46:48,110 그리고 오늘 클리프 행어로 내가 내가 할 거라고 생각하는 것은의 비트입니다 956 00:46:48,110 --> 00:46:52,170 후퇴하는 당신은 TV를 켜면 12 월 24 일, 당신을 볼 수 있습니다 957 00:46:52,170 --> 00:46:55,390 에 대한 동영상 광고 nauseum 행 24 시간이다. 958 00:46:55,390 --> 00:47:06,030 그러나 오늘, 여기 그것을 열 수 있습니다 우리에게 단지 2 분에게 959 00:47:06,030 --> 00:47:13,493 교육학 관련 크리스마스 스토리 랄피라는 작은 동료와 함께. 960 00:47:13,493 --> 00:47:14,400 >> [동영상 재생] 961 00:47:14,400 --> 00:47:17,420 >> 되실 그것은 모든과 잡다한하는 것으로 알려져 랄프 파커는 이에 임명 962 00:47:17,420 --> 00:47:20,650 리틀 고아 애니 비밀의 회원 원과 모든 자격이 963 00:47:20,650 --> 00:47:23,460 명예 및 혜택 이에 발생. 964 00:47:23,460 --> 00:47:25,990 >> 리틀 고아 애니 - 서명했다. 965 00:47:25,990 --> 00:47:30,100 잉크, 피에르 앙드레 연대. 966 00:47:30,100 --> 00:47:34,270 명예와 이익 이미 아홉의 나이에. 967 00:47:34,270 --> 00:47:39,440 >> [라디오 오웬 968 00:47:39,440 --> 00:47:40,770 >> 어서, 그것과 함께 타고하자. 969 00:47:40,770 --> 00:47:44,965 나는에 대한 모든 재즈가 필요하지 않습니다 밀수업자와 해적. 970 00:47:44,965 --> 00:47:48,270 >> 내일 밤에 - 들어 블랙 결론 모험 971 00:47:48,270 --> 00:47:49,650 해적선. 972 00:47:49,650 --> 00:47:53,320 지금, 그것은 애니의 비밀 시간 당신 구성원에 대한 메시지 973 00:47:53,320 --> 00:47:55,720 비밀 원. 974 00:47:55,720 --> 00:47:56,580 , 아이를 기억한다. 975 00:47:56,580 --> 00:48:01,720 애니의 비밀 서클의 구성원 만 애니의 비밀 메시지를 해독 할 수 있습니다. 976 00:48:01,720 --> 00:48:05,872 기억, 애니 당신을 따라합니다. 977 00:48:05,872 --> 00:48:08,670 B2에 핀을 설정합니다. 978 00:48:08,670 --> 00:48:11,000 여기에 메시지입니다. 979 00:48:11,000 --> 00:48:12,335 12, 11, 2 - 980 00:48:12,335 --> 00:48:14,670 >> - 난 내 첫 번째 비밀 회의에서입니다. 981 00:48:14,670 --> 00:48:19,720 >> -25, 14, 11, 18, 16 - 982 00:48:19,720 --> 00:48:21,650 >> 피에르는 큰 목소리 오늘 밤에 있었다. 983 00:48:21,650 --> 00:48:24,830 그 오늘의 메시지를 말할 수 정말 중요했다. 984 00:48:24,830 --> 00:48:26,400 >> -3 25. 985 00:48:26,400 --> 00:48:28,540 그 애니 자신의 메시지입니다. 986 00:48:28,540 --> 00:48:30,086 기억, 누구에게도 말하지 않습니다. 987 00:48:30,086 --> 00:48:34,370 988 00:48:34,370 --> 00:48:38,710 >> -90 초 후에, 나는 단지 방에 있어요 집에서 어디 아홉의 소년 989 00:48:38,710 --> 00:48:42,668 개인 정보 보호 및 해독에 앉아 있었다. 990 00:48:42,668 --> 00:48:47,628 아하, B. 나는 다음에 갔다. 991 00:48:47,628 --> 00:48:53,060 E. 첫 번째 단어는 "수"입니다. S. 지금은 쉽게오고 있었다. 992 00:48:53,060 --> 00:48:54,980 U. 25. 993 00:48:54,980 --> 00:48:55,940 즉, R.의 994 00:48:55,940 --> 00:48:56,900 >> , 랄피 - 가자. 995 00:48:56,900 --> 00:48:57,860 난 가야겠다. 996 00:48:57,860 --> 00:48:59,780 >> - 내가, 오른쪽 아래 마합니다. 997 00:48:59,780 --> 00:49:01,030 맙소사. 998 00:49:01,030 --> 00:49:04,300 999 00:49:04,300 --> 00:49:08,220 >> -T. O를해야합니다. 1000 00:49:08,220 --> 00:49:09,500 무엇을해야? 1001 00:49:09,500 --> 00:49:11,660 작은 고아는 무엇인가 애니 말을하려는거야? 1002 00:49:11,660 --> 00:49:12,844 무엇을해야? 1003 00:49:12,844 --> 00:49:14,732 >> - 랄피, 랜디 가야했다. 1004 00:49:14,732 --> 00:49:16,148 당신은 나와 주시겠습니까? 1005 00:49:16,148 --> 00:49:17,092 >> - 좋아, 엄마. 1006 00:49:17,092 --> 00:49:18,510 내가 나갈게. 1007 00:49:18,510 --> 00:49:20,270 >> -I 가까이 지금까지지고 있었다. 1008 00:49:20,270 --> 00:49:21,823 긴장은 끔찍했다. 1009 00:49:21,823 --> 00:49:23,045 무슨 일이에요? 1010 00:49:23,045 --> 00:49:26,510 행성의 운명 월 저울에 달아. 1011 00:49:26,510 --> 00:49:28,985 >> - 랄피, 랜디 가야 해. 1012 00:49:28,985 --> 00:49:32,680 >> - 내가 맞는 밖으로 큰소리로 우는. 1013 00:49:32,680 --> 00:49:33,956 >> - 그렇지. 1014 00:49:33,956 --> 00:49:35,140 내 손가락이 날아 갔다. 1015 00:49:35,140 --> 00:49:36,880 내 마음은 강철 함정이었다. 1016 00:49:36,880 --> 00:49:38,010 모든 구멍은 진동. 1017 00:49:38,010 --> 00:49:39,878 그것은 거의 분명했다. 1018 00:49:39,878 --> 00:49:43,210 그래, 그래, 그래, 그래, 그래. 1019 00:49:43,210 --> 00:49:49,030 >> 당신 Ovaltine을 마시해야 -합니다. 1020 00:49:49,030 --> 00:49:50,280 Ovaltine? 1021 00:49:50,280 --> 00:49:53,980 1022 00:49:53,980 --> 00:49:55,230 지저분한 광고? 1023 00:49:55,230 --> 00:49:58,572 1024 00:49:58,572 --> 00:50:00,694 개자식. 1025 00:50:00,694 --> 00:50:01,900 >> [END 동영상 재생] 1026 00:50:01,900 --> 00:50:04,260 >> 스피커 1 : 이것은 CS50이며, 그 문제 2 세트가됩니다. 1027 00:50:04,260 --> 00:50:06,305 다음 주를 참조하십시오. 1028 00:50:06,305 --> 00:50:08,800 >> 스피커 2 : 다음에서 CS50이 발생합니다. 1029 00:50:08,800 --> 00:50:11,060 >> 스피커 1 : 우리가하지 않은 그래서 하나의 주제 따라서 멀리 바라 보았다 1030 00:50:11,060 --> 00:50:12,220 함수 포인터의. 1031 00:50:12,220 --> 00:50:14,540 이제 함수 포인터는 단지 공공의 주소 1032 00:50:14,540 --> 00:50:17,000 하지만 많은 같은 기능 - 1033 00:50:17,000 --> 00:50:18,250 의 아들 - 1034 00:50:18,250 --> 00:50:19,670