1 00:00:00,000 --> 00:00:02,000 [Powered by Google Translate] [제 4] [이하 편안한] 2 00:00:02,000 --> 00:00:04,000 [네이트 Hardison] [하버드 대학] 3 00:00:04,000 --> 00:00:07,000 [이 CS50 수 있습니다.] [CS50.TV] 4 00:00:07,000 --> 00:00:10,000 >> 좋아, 섹션으로 환영합니다. 5 00:00:10,000 --> 00:00:13,000 이번 주 섹션에서 우리는 몇 가지 할 수있는 것. 6 00:00:13,000 --> 00:00:17,000 우리는 먼저 뉴스 레터를 살펴 문제점 세트 2가는거야 7 00:00:17,000 --> 00:00:20,000 시저와 Vigenère 문제 세트하는 것입니다. 8 00:00:20,000 --> 00:00:23,000 그리고 우리는 퀴즈 0 리뷰에 뛰어들 것 9 00:00:23,000 --> 00:00:26,000 우리가 얘기 한 내용 recapping 시간이 조금 지출 10 00:00:26,000 --> 00:00:30,000 강의의 각에있어서, 우리는 또한 몇 가지 문제를 할거야 11 00:00:30,000 --> 00:00:32,000 전년도 퀴즈에서. 12 00:00:32,000 --> 00:00:36,000 그 너희들이 그 일에 대한 준비를 할 수있는 좋은 방법이 방법입니다. 13 00:00:36,000 --> 00:00:40,000 >> 시작하려면, 좋은 솔루션의 몇 부팅 한 14 00:00:40,000 --> 00:00:45,000 이전 문제 집합에 대해, 문제는이 공간으로, 2를 설정합니다. 15 00:00:45,000 --> 00:00:48,000 모두들이 링크를 누르면 경우 16 00:00:48,000 --> 00:00:53,000 그리고 당신은 내 이름을 클릭하고 첫 번째 수정을 클릭하면 17 00:00:53,000 --> 00:00:56,000 당신은 내가보고있는 일입니다 caesar.c를 볼 수 있습니다. 18 00:00:56,000 --> 00:01:00,000 진짜로 빨리 이것에 대해 얘기합시다. 19 00:01:00,000 --> 00:01:02,000 이건 그냥 샘플 솔루션입니다. 20 00:01:02,000 --> 00:01:05,000 이 완벽한 솔루션을 필요는 없습니다. 21 00:01:05,000 --> 00:01:08,000 이 작성하는 방법에는 여러 가지가 있습니다 22 00:01:08,000 --> 00:01:10,000 하지만 강조하고 싶어하는 몇 가지 방법이 있습니다 23 00:01:10,000 --> 00:01:13,000 내가 생각하는 내가 등급 않았을 본 일반적인 실수 24 00:01:13,000 --> 00:01:18,000 이 솔루션은 취급 매우 좋은 일을하지 않습니다. 25 00:01:18,000 --> 00:01:22,000 >> 첫 번째는 상단에 헤더 주석 어떤 종류의 문제가 있습니다. 26 00:01:22,000 --> 00:01:25,000 1 호선 7을 통해 당신은 자세한 내용을 참조하십시오 27 00:01:25,000 --> 00:01:28,000 이 프로그램은 정확히 무엇을하고있다. 28 00:01:28,000 --> 00:01:32,000 당신이 C 코드를 작성하는 좋은 표준 연습 29 00:01:32,000 --> 00:01:35,000 프로그램은 하나의 파일이나 포함되어 관계없이 경우 30 00:01:35,000 --> 00:01:38,000 이 여러 개의 파일을 통해 분할 여부에 어떤 종류의 것입니다 31 00:01:38,000 --> 00:01:40,000 상단에있는 코멘트를 오리엔테이션. 32 00:01:40,000 --> 00:01:43,000 이 밖에 나가서 현실 세계의 코드를 작성 사람들도 있습니다. 33 00:01:43,000 --> 00:01:47,000 그들은 저작권 정보를 올려 놓으 곳입니다. 34 00:01:47,000 --> 00:01:50,000 다음은 # 포함입니다. 35 00:01:50,000 --> 00:01:55,000 선 16 일이 # 우리가 약간에 돌아 오면하는 정의가 있습니다. 36 00:01:55,000 --> 00:01:59,000 그리고 일단 기능은, 한 번 주 시작을 시작합니다 37 00:01:59,000 --> 00:02:03,000 이 프로그램은 모두 하나의 함수에 포함 되었기 때문에 38 00:02:03,000 --> 00:02:09,000 일어이 매우 관용과 C 프로그램의 전형적인 매우 먼저 할 일은 39 00:02:09,000 --> 00:02:14,000 명령 줄에 소요 그게 바로 확인하는 인자 -입니다 40 00:02:14,000 --> 00:02:18,000 >> 인자 개수를 들어, argc. 41 00:02:18,000 --> 00:02:24,000 바로 여기서 우리는이 프로그램이 정확히 두 인수를 기대하고 있습니다 것을 볼 수 있습니다. 42 00:02:24,000 --> 00:02:27,000 기억 특별한 하나 첫 번째 인수는이 43 00:02:27,000 --> 00:02:29,000 즉, 항상 실행되고있는 프로그램의 이름입니다 44 00:02:29,000 --> 00:02:31,000 실행 파일의 이름입니다. 45 00:02:31,000 --> 00:02:36,000 그리고이 무엇을이 프로그램을 실행 한 사용자를 방지합니다 46 00:02:36,000 --> 00:02:42,000 더 많거나 적게 인수. 47 00:02:42,000 --> 00:02:44,000 우리가 당장 확인하려는 이유는 48 00:02:44,000 --> 00:02:52,000 우리가 실제로 여기에 안정적이 argv 배열에 액세스 할 수 없습니다 49 00:02:52,000 --> 00:02:55,000 우리는 얼마나 큰 알아보지까지. 50 00:02:55,000 --> 00:02:58,000 >> 내가 본 일반적인 오류 중 하나는 사람들이 즉시 가고 싶니 51 00:02:58,000 --> 00:03:01,000 그리고 손잡이 변수는 argv [1]. 52 00:03:01,000 --> 00:03:06,000 그들은 밖으로 배열의 키 인수를 가져했고, 난 그 확인하려면 어떻게 53 00:03:06,000 --> 00:03:11,000 그리고 그들은뿐만 아니라 다음 시험으로 argc에 대한 테스트를 할 54 00:03:11,000 --> 00:03:16,000 첫 번째 인자는 실제로 동시에 정수했습니다 여부 55 00:03:16,000 --> 00:03:20,000 그리고 그게 공급 아무런 인수가없는 경우에 있기 때문에 작동하지 않습니다 56 00:03:20,000 --> 00:03:26,000 당신은 없다 인수를 쥐어하거나 없다 하나를 잡기 위해 시도됩니다. 57 00:03:26,000 --> 00:03:29,000 >> 당신이주의해야하는 또 다른 큰 것은, 58 00:03:29,000 --> 00:03:32,000 항상 도움이 오류 메시지가 어떤 종류의를 인쇄 할 59 00:03:32,000 --> 00:03:34,000 방향 그들에게 사용자가 있습니다. 60 00:03:34,000 --> 00:03:37,000 당신이 갑자기 그것이 충돌 모든 실행 프로그램을 것 같군 61 00:03:37,000 --> 00:03:41,000 당신은 팝업과 같이 말한다이 말도 안되는 대화 상자를 62 00:03:41,000 --> 00:03:44,000 어쩌면 끔찍하게 암호화 뭔가를 당신에게 오류 코드 또는 그런 일을 할 수 있습니다 63 00:03:44,000 --> 00:03:47,000 그건 의미가 없습니다. 64 00:03:47,000 --> 00:03:50,000 당신이 정말로 도움이 무언가를 제공 할 곳입니다 65 00:03:50,000 --> 00:03:54,000 그리고 그들이 실행할 때 사람들이 "오,"얼굴 손바닥 갈 수 있도록 사용자를 타겟으로. 66 00:03:54,000 --> 00:03:58,000 "내가 어떻게해야 정확히 알아. 나는이 문제를 해결하는 방법을 알고." 67 00:03:58,000 --> 00:04:01,000 >> 메시지를 인쇄하지 않는 경우 다음 실제로 결국 68 00:04:01,000 --> 00:04:04,000 사용자가 이동 떠나는하면 소스 코드를 검토 69 00:04:04,000 --> 00:04:07,000 문제가있는 건지 알아 봅시다합니다. 70 00:04:07,000 --> 00:04:11,000 당신은 다른 오류 코드를 사용하는 일부 시간도 있습니다. 71 00:04:11,000 --> 00:04:14,000 여기 방금 오류가 발생했습니다 말 하나를 사용 72 00:04:14,000 --> 00:04:16,000 오류가 발생했습니다, 오류가 발생했습니다. 73 00:04:16,000 --> 00:04:20,000 큰 프로그램, 다른 프로그램에 의해 호출됩니다 종종 프로그램, 74 00:04:20,000 --> 00:04:25,000 다른 경우에 특별한 오류 코드의 일종을 반환합니다 75 00:04:25,000 --> 00:04:28,000 프로그래밍 방식으로 의사 소통을하는 당신이 달리 겠어 76 00:04:28,000 --> 00:04:32,000 단지에 대한 좋은 영어 메시지를 사용합니다. 77 00:04:32,000 --> 00:04:35,000 좋아. 78 00:04:35,000 --> 00:04:37,000 우리가 아래 일 때, 우리가 열쇠를 뽑아 볼 수 있습니다. 79 00:04:37,000 --> 00:04:40,000 우리는 키가 맞는 있는지 확인하기 위해 테스트합니다. 80 00:04:40,000 --> 00:04:42,000 우리는 사용자로부터 메시지가 나타납니다. 81 00:04:42,000 --> 00:04:46,000 이 우리가 커버하는 걸과 루프 반면 우리가이 일에 할 이유는 어떻게 82 00:04:46,000 --> 00:04:50,000 약간의 비트하지만 판명 당신이 컨트롤 D를 입력하면 83 00:04:50,000 --> 00:04:54,000 당신은 터미널에서 해당 GetString 프롬프트 때 84 00:04:54,000 --> 00:04:59,000 실제로 무엇을은 특수 문자를 전송합니다 85 00:04:59,000 --> 00:05:01,000 프로그램. 86 00:05:01,000 --> 00:05:05,000 그것은 ELF 나 파일 문자의 끝이라고. 87 00:05:05,000 --> 00:05:08,000 그리고이 경우에, 우리의 메시지 문자열이 null이됩니다 88 00:05:08,000 --> 00:05:14,000 그래서 우리가 자체 설정 문제에 대해 검사 무언가 아니 었습니다. 89 00:05:14,000 --> 00:05:17,000 >> 우리가 계속해서 그러나, 이제 우리는 포인터에 대해 이야기하기 시작 한 90 00:05:17,000 --> 00:05:21,000 힙에와 동적 메모리 할당, 91 00:05:21,000 --> 00:05:25,000 혹시 네가 함수가있을 때마다 널 (null)을 확인 92 00:05:25,000 --> 00:05:30,000 값이 무슨 짓을하는 습관에 휘말리고 싶지 볼만한 물건이기 때문에 null을 반환합니다. 93 00:05:30,000 --> 00:05:33,000 이는 주로 설명을 보려면 여기를합니다. 94 00:05:33,000 --> 00:05:36,000 하지만 당신은 미래에 GetString를 볼 때, 95 00:05:36,000 --> 00:05:41,000 그러니 4 설정 문제에서, 당신은 마음이를 유지하는 것이 좋습니다. 96 00:05:41,000 --> 00:05:44,000 다시, 우리가 아직 적용하지 않았으므로 중 3 설정 문제에 대한 문제가 아닙니다. 97 00:05:44,000 --> 00:05:53,000 마지막으로, 우리는 우리가 주 암호화 루프까지이 부분에 도착 98 00:05:53,000 --> 00:05:57,000 여기 무슨 일 몇 가지가 있습니다. 99 00:05:57,000 --> 00:06:02,000 첫째, 우리는 전체 메시지 문자열 자체를 통해 반복. 100 00:06:02,000 --> 00:06:07,000 여기 우리는 상태 나 strlen 전화를 유지 한 101 00:06:07,000 --> 00:06:12,000 하는 당신의 숫자가 지적한 갈 수있는 좋은 방법이 아닙니다. 102 00:06:12,000 --> 00:06:15,000 그것은, 또한 좋은 건 아니야이 경우에서 변 103 00:06:15,000 --> 00:06:20,000 우리는 메시지 자체의 내용을 수정하고 부분적으로 있기 때문에 104 00:06:20,000 --> 00:06:27,000 내부 루프, 우리는 10 자 길이의 메시지가있는 경우 105 00:06:27,000 --> 00:06:32,000 처음으로 우리는 루프 나 strlen 무슨 일을 반환합니다 그렇게 할? 106 00:06:32,000 --> 00:06:35,000 10. 107 00:06:35,000 --> 00:06:40,000 >> 하지만 우리가 다음 메시지를 수정하는 경우, 우리는 다섯째 문자를 수정 말 108 00:06:40,000 --> 00:06:46,000 우리는, 5 위치에 \ 0 문자에 던져 109 00:06:46,000 --> 00:06:49,000 다음 반복에 나 strlen (메시지)는 무슨 짓을 반환하지 않습니다 110 00:06:49,000 --> 00:06:52,000 우리는 반복 처음으로, 111 00:06:52,000 --> 00:06:56,000 우리가 널 (null) 종료에 던져 있기 때문에하지만 대신 5를 반환합니다 112 00:06:56,000 --> 00:06:59,000 그리고 문자열의 길이가 정의됩니다 113 00:06:59,000 --> 00:07:03,000 그 \ 0의 위치로. 114 00:07:03,000 --> 00:07:09,000 이 경우, 우리가 장소에 수정 있기 때문에 갈 수있는 좋은 방법입니다. 115 00:07:09,000 --> 00:07:13,000 그러나이 암호화 실제로 의외로 간단 것을 알 116 00:07:13,000 --> 00:07:16,000 당신이 계산이 맞다 얻을 할 수 있습니다. 117 00:07:16,000 --> 00:07:19,000 필요한 그 모든 당신이보고있는 여부 편지를 확인하는 것입니다 118 00:07:19,000 --> 00:07:21,000 대문자 또는 소문자입니다. 119 00:07:21,000 --> 00:07:24,000 >> 우리는 그 일에 대한 확인해야하고 우리가 확인하지 않아도 이유 120 00:07:24,000 --> 00:07:27,000 이 알파 케이스 때문입니다 121 00:07:27,000 --> 00:07:30,000 문자가 대문자 또는 경우 경우는 소문자입니다 122 00:07:30,000 --> 00:07:33,000 다음은 확실히 알파벳 문자입니다 123 00:07:33,000 --> 00:07:38,000 우리는 대문자와 소문자 숫자가 없기 때문입니다. 124 00:07:38,000 --> 00:07:41,000 우리가 할 - 게다가이 조금 있습니다 까다로운- 125 00:07:41,000 --> 00:07:45,000 우리는 표준 황제 암호화 방식을 수정 한입니다 126 00:07:45,000 --> 00:07:49,000 우리는 문제 세트 사양에 준. 127 00:07:49,000 --> 00:07:52,000 여기서 다른 것은 우리가 차감 것입니다 128 00:07:52,000 --> 00:07:58,000 대문자의 경우 수도에 A, 그리고 나서 우리는 자본을 추가 129 00:07:58,000 --> 00:08:02,000 마지막에 백업합니다. 130 00:08:02,000 --> 00:08:05,000 >> 난 당신이 몇 가지가 코드에서이 작업을 완료 한 후 알아요. 131 00:08:05,000 --> 00:08:09,000 너희가 제출이 짓을 한거야? 132 00:08:09,000 --> 00:08:13,000 당신이 한 짓. 당신은이 무엇을 Sahb를 설명 할 수 있습니까? 133 00:08:13,000 --> 00:08:18,000 당신이 바로 후 모드 짓을하기 때문에 이것 좀 빼는 방법으로 134 00:08:18,000 --> 00:08:21,000 당신은, 당신이 위치 [기침]을 얻을 있도록 방법을 그것을 꺼내해야합니다. 135 00:08:21,000 --> 00:08:25,000 그리고 나중에 다시 추가하여 당신이 원하는 하나 이상의 바뀌었다. 136 00:08:25,000 --> 00:08:27,000 네, 맞아요. 137 00:08:27,000 --> 00:08:32,000 Sahb는이라고 뭐 우리는 추가 할 때 138 00:08:32,000 --> 00:08:36,000 우리의 메시지와 함께 우리의 주요 139 00:08:36,000 --> 00:08:42,000 그리고 MOD, 그 MOD 그 NUM_LETTERS하여, 140 00:08:42,000 --> 00:08:50,000 먼저 해당 0-25 범위에 우리의 메시지를 확장하지 않을 경우, 141 00:08:50,000 --> 00:08:54,000 그러면 우리는 정말 이상한 번호를 치울 수 있습니다 142 00:08:54,000 --> 00:08:59,000 때문에 우리가 메시지를 [I]을 보면보고있는 가치 143 00:08:59,000 --> 00:09:03,000 우리는 일반 텍스트 메시지의 i 번째 문자를 볼 때, 144 00:09:03,000 --> 00:09:08,000 값이 65-122 범위에 어디 선가 145 00:09:08,000 --> 00:09:13,000 소문자 Z까지 대문자의 ASCII 값을 기준으로. 146 00:09:13,000 --> 00:09:18,000 그래서 우리는, 26 또는 NUM_LETTERS하여이 항목을 MOD 때 147 00:09:18,000 --> 00:09:23,000 그 때부터 우리 # 여기까지 오른쪽 상단에 정의 148 00:09:23,000 --> 00:09:28,000 그런 우리에게 0-25 범위에 값을 포기할 것, 149 00:09:28,000 --> 00:09:30,000 그리고 우리는 그 백업 확장 할 수있는 방법이 필요합니다 150 00:09:30,000 --> 00:09:32,000 하고 해당 ASCII 범위에서 얻을. 151 00:09:32,000 --> 00:09:36,000 할 수있는 가장 쉬운 방법은 모든을 확장하는 것입니다 152 00:09:36,000 --> 00:09:39,000 0-25 범위에있는 시작합니다 153 00:09:39,000 --> 00:09:43,000 그리고 마지막에 다시 모든 걸 바꿔 주죠. 154 00:09:43,000 --> 00:09:46,000 >> 난 사람들이로 실행 본 또 다른 일반적인 오류는 있습니다 155 00:09:46,000 --> 00:09:50,000 당신은 실제로 바로이 확장을하지 않는 경우 156 00:09:50,000 --> 00:09:53,000 그리고, 말해 봐요, 당신은 함께 메시지와 키를 추가하고 당신이 그들을 추가 157 00:09:53,000 --> 00:09:58,000 그와 숯불 변수로, 문제 158 00:09:58,000 --> 00:10:01,000 is 메일을 보낸 이후로 [I] 시작은 비교적 큰 숫자입니다와 - 159 00:10:01,000 --> 00:10:05,000 이 대문자하다면 적어도 65 일을 기억 문자 160 00:10:05,000 --> 00:10:09,000 당신은 큰 키, 말, 100과 같이, 경우 161 00:10:09,000 --> 00:10:13,000 그리고 당신이 오버플로를받을거야 서명 숯불로 함께 지난 2를 추가합니다. 162 00:10:13,000 --> 00:10:17,000 당신은 127보다 큰이에요 값을받을거야 163 00:10:17,000 --> 00:10:22,000 이는 숯불 변수가 보유 할 수있는 최대 값입니다. 164 00:10:22,000 --> 00:10:26,000 당신이 시작 뭐 그런 짓을 할만한 이유를 다시보기 때문이다. 165 00:10:26,000 --> 00:10:29,000 어떤 사람들은 경우 다른 일을하고 테스트하여이 경우 주위에 166 00:10:29,000 --> 00:10:33,000 이 오버 플로우 올라가더라도 그 일을하기 전에 확인하려면, 167 00:10:33,000 --> 00:10:36,000 하지만이 방법은 그 주위를 가져옵니다. 168 00:10:36,000 --> 00:10:40,000 그리고이 솔루션에서 우리는 매우 끝 부분에 전체 문자열을 출력한다. 169 00:10:40,000 --> 00:10:45,000 다른 사람들은 한 번에 문자를 출력한다. 모두 굉장합니다. 170 00:10:45,000 --> 00:10:51,000 이 시점에서, 어떤 질문이 이것에 대해 어떤 의견을합니까? 171 00:10:51,000 --> 00:10:56,000 원하는 일, 당신이 마음에 안 가지? 172 00:10:56,000 --> 00:10:58,000 >> 질문이 있었다. 173 00:10:58,000 --> 00:11:01,000 아마 당신의 설명을하는 동안 그것을 그리워하지만,이 프로그램은 어떻게하나요 174 00:11:01,000 --> 00:11:07,000 텍스트의 길이로 키를 연결하기위한 공간을 건너 뛰? 175 00:11:07,000 --> 00:11:10,000 이것은 단지 황제 암호입니다. >> 아, 미안, 그래. 176 00:11:10,000 --> 00:11:13,000 네, 우리가 그렇게를 볼 수 있습니다. 177 00:11:13,000 --> 00:11:16,000 시저 암호에서 우리는 그 주위에 가지고 있으니까 178 00:11:16,000 --> 00:11:18,000 우리는 문자를 뒤집어 졌죠. 179 00:11:18,000 --> 00:11:27,000 사람들이 대문자 또는 소문자라면 우리는 그들을 회전. 180 00:11:27,000 --> 00:11:32,000 당신들은 이것에 대해 아주 좋아요? 181 00:11:32,000 --> 00:11:34,000 이 집에 복사 해 주시기 바랍니다, 가져 182 00:11:34,000 --> 00:11:37,000 너희들이 쓴 비교. 183 00:11:37,000 --> 00:11:42,000 물론 너무 그것에 대해 질문을 보내 주시기 바랍니다. 184 00:11:42,000 --> 00:11:46,000 또, 문제가있는 이곳 목표 설정 걸 깨닫게 185 00:11:46,000 --> 00:11:50,000 너희들이 문제 세트에 완벽한 코드를 작성하도록 유도하지 않습니다. 186 00:11:50,000 --> 00:11:57,000 이 학습 경험입니다. 그래. 187 00:11:57,000 --> 00:12:01,000 >> 위로하려면 루프가 동일하면 null을하는 동안, 188 00:12:01,000 --> 00:12:06,000 그래서 널 그냥 아무 의미도없는, 그냥 입력을 때렸어요? 189 00:12:06,000 --> 00:12:12,000 널은 특별한 포인터 값 190 00:12:12,000 --> 00:12:17,000 우리가 말을 할 때 우리는 널 (null)을 사용하여 191 00:12:17,000 --> 00:12:23,000 우리는 아무것도를 가리키는 포인터 변수가 있습니다. 192 00:12:23,000 --> 00:12:28,000 그리고 일반적으로 의미이 변수이 메시지 변수 193 00:12:28,000 --> 00:12:35,000 우리가 CS50 특별한 문자열 형식을 사용하기 때문에, 빈, 그리고 여기에, 194 00:12:35,000 --> 00:12:37,000 CS50 문자열 유형은 무엇입니까? 195 00:12:37,000 --> 00:12:42,000 그게 다윗이 강의에서 후드를 다시 꺼냈다 때인지 본 적이 있나요? 196 00:12:42,000 --> 00:12:44,000 이 펑키 - 그건 포인터이야, 그렇죠? 197 00:12:44,000 --> 00:12:48,000 그래, 좋아. >>이 숯불 *입니다. 198 00:12:48,000 --> 00:12:52,000 그리고 정말 우리는이를 대체 할 수 199 00:12:52,000 --> 00:12:56,000 여기에 숯불 * 메시지와 함께, 200 00:12:56,000 --> 00:13:04,000 그래서 GetString 함수가 성공적으로 사용자의 문자열을하지 않으면은, 201 00:13:04,000 --> 00:13:08,000 이 문자열을 구문 분석 할 수 있으며, 하나의 사건하는이 문자열을 구문 분석 할 수 없습니다 202 00:13:08,000 --> 00:13:11,000 있는 사용자가 유형의 파일 문자, 제어 D,의 끝을 경우 203 00:13:11,000 --> 00:13:17,000 어떤은 일반적 게 아니에요하지만, 그런 일이 일어날 경우 204 00:13:17,000 --> 00:13:20,000 다음 함수는 말하는 방법으로이 null 값을 반환합니다 205 00:13:20,000 --> 00:13:23,000 "이봐, 난 문자열을받지 못 했어." 206 00:13:23,000 --> 00:13:27,000 우리가 메시지를 = null이 넣어하지 않으면 어떻게, 무슨 일이 일어날 207 00:13:27,000 --> 00:13:30,000 아직 일하지 않은 무언가가 뭔가요? 208 00:13:30,000 --> 00:13:32,000 왜 여기에 문제가 될까요? 209 00:13:32,000 --> 00:13:38,000 나는 우리가 메모리 누수에 대한 강의에서 잠시 얘기를 알고 때문입니다. 210 00:13:38,000 --> 00:13:42,000 네, 그런 짓을의하자, 그리고 어떻게 된건 지 확인합시다. 211 00:13:42,000 --> 00:13:44,000 >> 바질의 질문은 우리가 실제로이없는 경우 어떤 일이 벌어지는 지했습니다 212 00:13:44,000 --> 00:13:48,000 이 메시지가 = null을 테스트? 213 00:13:48,000 --> 00:13:51,000 맨 위로 스크롤 보자. 214 00:13:51,000 --> 00:13:53,000 당신들은이 일을 댓글을 달 수 있습니다. 215 00:13:53,000 --> 00:13:55,000 사실, 개정에 저장됩니다. 216 00:13:55,000 --> 00:13:58,000 이 일 월요일 수정 3 될 것입니다. 217 00:13:58,000 --> 00:14:02,000 당신이 프로그램을 실행하려면 어떻게해야하면, 당신이 여기이 톱니 바퀴 아이콘을 클릭 할 것 같습니다 218 00:14:02,000 --> 00:14:04,000 그리고 당신은에 인수를 추가해야합니다. 219 00:14:04,000 --> 00:14:10,000 우리가 명령 줄 인수를 전달하고자부터 당신은 열쇠 인수를 제공해야합니다. 220 00:14:10,000 --> 00:14:13,000 난 여기 그에게 3 번을 주겠어. 나는 3 좋아해요. 221 00:14:13,000 --> 00:14:19,000 이제 다시 축소 프로그램을 실행할 수 있습니다. 222 00:14:19,000 --> 00:14:24,000 그것은 건축, 컴파일, 실행있어. 223 00:14:24,000 --> 00:14:27,000 여기 우리는 간다. 이 메시지가 기다리고있어. 224 00:14:27,000 --> 00:14:33,000 내 안부 - 어디에 뭔가를 입력하면 그가요? 225 00:14:33,000 --> 00:14:38,000 오, 내 프로그램이 실행하는 데 시간이 너무 오래 걸립니다. 내가 너무 오래 우리 한테 조롱했다. 226 00:14:38,000 --> 00:14:40,000 여기갑니다. 227 00:14:40,000 --> 00:14:43,000 지금은 인사에 입력합니다. 228 00:14:43,000 --> 00:14:46,000 우리는 적절하게 암호화 것을 볼 수 있습니다. 229 00:14:46,000 --> 00:14:52,000 우리가 널 (null)을 반환하는 프롬프트 GetString을 수행하면 이제 어떻게됩니까? 230 00:14:52,000 --> 00:14:57,000 명심 해, 우리가 그랬던 말했다 동시에 제어 D를 눌러. 231 00:14:57,000 --> 00:14:59,000 여기까지 스크롤합니다. 우리는 다시 실행합니다. 232 00:14:59,000 --> 00:15:01,000 건물. 자, 일 났네. 233 00:15:01,000 --> 00:15:04,000 지금은 컨트롤 D를 쳤을 때 234 00:15:04,000 --> 00:15:12,000 나는 opt/sandbox50/bin/run.sh 말합니다이 라인 세그먼트 오류를​​ 가지고. 235 00:15:12,000 --> 00:15:15,000 너희들은 그 전에 본 적이 있나요? 236 00:15:15,000 --> 00:15:17,000 >> [학생] 왜 노 >> 죄송 있나요? 237 00:15:17,000 --> 00:15:20,000 [학생] 왜이 사건에 핵심 덤프가 없습니다? 238 00:15:20,000 --> 00:15:26,000 코어 덤프는 - 질문은 여기있는 이유가 없음 코어 덤프입니다? 239 00:15:26,000 --> 00:15:29,000 질문이있을 수 있지만 핵심 덤프 파일입니다 240 00:15:29,000 --> 00:15:31,000 그는 하드 드라이브에 저장됩니다. 241 00:15:31,000 --> 00:15:34,000 이 경우 우리는 핵심 덤프 기능을 사용 중지 한 242 00:15:34,000 --> 00:15:37,000 실행 서버에 있도록 우리는 사람들이 오류있는 독방 감금하지 않습니다 243 00:15:37,000 --> 00:15:40,000 및 핵심 덤프의 톤을 구축. 244 00:15:40,000 --> 00:15:46,000 하지만 당신이 하나를 얻을 수 있습니다. 245 00:15:46,000 --> 00:15:48,000 코어 덤프, 당신이 자주 사용 중지 할 수있는 것들 아르 246 00:15:48,000 --> 00:15:52,000 그리고 가끔은 자신이 할. 247 00:15:52,000 --> 00:15:55,000 분류 오류, 질문에 대한 답변을하기 위해, 바질, 248 00:15:55,000 --> 00:16:00,000 우리가 포인터를 액세스하려 답니다 249 00:16:00,000 --> 00:16:05,000 그 어떤 것도 가리 키도록 설정되지 않았습니다. 250 00:16:05,000 --> 00:16:09,000 빙키가하려고 할 때 비디오에 빙키 기억 251 00:16:09,000 --> 00:16:12,000 아무를 가리키는되지 않은 포인터를 액세스 갈까? 252 00:16:12,000 --> 00:16:16,000 이 경우 필자는 기술적으로 포인터가 뭔가를 가리키는 같아요. 253 00:16:16,000 --> 00:16:20,000 그것은 기술적으로 0 0,,를 가리키고있어 254 00:16:20,000 --> 00:16:25,000 하지만이 접근 할 수없는 세그먼트에 있어야 정의 255 00:16:25,000 --> 00:16:28,000 프로그램에 의해, 그래서 당신은 분류 오류를 256 00:16:28,000 --> 00:16:31,000 당신이 메모리에 액세스하지 않았기 때문에 올바른 세그먼트에 257 00:16:31,000 --> 00:16:38,000 힙 세그먼트 또는 스택 세그먼트 또는 데이터 세그먼트처럼. 258 00:16:38,000 --> 00:16:40,000 좋아. 259 00:16:40,000 --> 00:16:48,000 시저에 대한 질문 더 있습니까? 260 00:16:48,000 --> 00:16:51,000 >> 의는 이동하세요. 정말 신속하게 일 월요일 수정이를 살펴 보자. 261 00:16:51,000 --> 00:17:00,000 그 Vigenère입니다. 262 00:17:00,000 --> 00:17:04,000 여기 Vigenère의 263 00:17:04,000 --> 00:17:06,000 우리는 다시 왜냐하면 너무 빨리 이걸 통과합니다 264 00:17:06,000 --> 00:17:10,000 Vigenère와 황제는 매우 비슷합니다. 265 00:17:10,000 --> 00:17:12,000 헤더 댓글이 전에이며, 266 00:17:12,000 --> 00:17:17,000 이 마법의 숫자를 사용하지 않도록하기 전에 # 정의입니다. 267 00:17:17,000 --> 00:17:21,000 좋은 점은 우리가 이동하고 싶어 떠는 것 뿐이 268 00:17:21,000 --> 00:17:23,000 그와 같은 다른 글자 나 뭐. 269 00:17:23,000 --> 00:17:26,000 오히려 모든 26의 코드를 변경 수동으로 이동하지보다 270 00:17:26,000 --> 00:17:30,000 우리는 27으로 변경하거나 드롭 다운 수 271 00:17:30,000 --> 00:17:34,000 우리는 서로 다른 알파벳, 서로 다른 언어를 사용하는 경우. 272 00:17:34,000 --> 00:17:38,000 다시 말하지만, 우리는 인자 개수의 검사를 해 273 00:17:38,000 --> 00:17:42,000 와 정말 거의 템플릿으로이 소요될 수 있습니다. 274 00:17:42,000 --> 00:17:46,000 당신이 쓰는 거의 모든 프로그램이이 -해야 275 00:17:46,000 --> 00:17:50,000 라인은 명령 줄 소요하는 경우 인수를 일부 순서 276 00:17:50,000 --> 00:17:55,000 그건 처음에이 같은 읽습니다. 277 00:17:55,000 --> 00:17:59,000 그건 니가 원하는 첫 번째 정신 테스트 중 하나입니다. 278 00:17:59,000 --> 00:18:03,000 >> 여기에 우리는 우리가 확실되었다 셨나요? 279 00:18:03,000 --> 00:18:06,000 키워드는 유효하고, 우리가했던 것을 두 번째 확인했습니다. 280 00:18:06,000 --> 00:18:11,000 우리는 argc와 2에서이 분리되는 다시 확인합니다. 281 00:18:11,000 --> 00:18:14,000 이 경우에 우리가 이렇게해서 하나가했습니다 대신합니다 282 00:18:14,000 --> 00:18:18,000 내가에를 사용하는 우리는 전체 문자열의 유효성을 검사하고 싶어 283 00:18:18,000 --> 00:18:21,000 과 질서에 실제로 문자로 문자를 가야하는 질문 284 00:18:21,000 --> 00:18:23,000 문자열여. 285 00:18:23,000 --> 00:18:29,000 거기에 무언가를 전화 할 좋은 방법은 없습니다 286 00:18:29,000 --> 00:18:31,000 심지어 예를 들어,해서 0을 반환 때문에 287 00:18:31,000 --> 00:18:37,000 이 정수를 구문 분석 할 수없는 경우에도 작동하지 않도록. 288 00:18:37,000 --> 00:18:42,000 다시 말하지만, 정확하게 사용자가 말하는 좋은 메시지가 무슨 일이 있었는지. 289 00:18:42,000 --> 00:18:45,000 그럼 여기서 다시, 우리는 또한이 사건을 처리 곳 290 00:18:45,000 --> 00:18:50,000 제어 D 무작위 문자의 사용자 유형입니다. 291 00:18:50,000 --> 00:18:54,000 >> 그리고 샬롯 우리는 공간을 건너 뛰려면 관리하는 방법에 대해 질문 이전했습니다 292 00:18:54,000 --> 00:18:57,000 여기 문자열 인치 293 00:18:57,000 --> 00:19:00,000 이것은 우리가 마이 스페이스 프로그램 무슨 짓을했는지와 유사한 가지였다 294 00:19:00,000 --> 00:19:04,000 우리는 섹션에서 한,이 방법은 작동하는 295 00:19:04,000 --> 00:19:08,000 우리가 본 적이 문자의 수를 추적한다는 것입니다. 296 00:19:08,000 --> 00:19:13,000 우리가 문자로 문자를 통해 걸어으로 우리는, 메시지 문자열을 통해 걸어 297 00:19:13,000 --> 00:19:16,000 우리는 루프에 대한의 일환으로 인덱스를 추적하고 우리는 또한 추적 298 00:19:16,000 --> 00:19:21,000 글자 수 있으므로 비 특수 문자, 비 숫자, 비 공백 299 00:19:21,000 --> 00:19:27,000 우리는 별도의 변수에 본 적이있다. 300 00:19:27,000 --> 00:19:33,000 그리고이 솔루션은 키를 수정 301 00:19:33,000 --> 00:19:41,000 실제 key 정수를 받고, 그 즉시 해당을 수행하기 위해, 302 00:19:41,000 --> 00:19:47,000 그런 다음 실제 메시지 문자를 암호화하는가는 바로 전에. 303 00:19:47,000 --> 00:19:50,000 너무 완벽하게 잘 했어 몇 가지 해결책이 있습니다 304 00:19:50,000 --> 00:19:58,000 키의 유효성에 대해 테스트 할 때 그 키를 수정합니다. 305 00:19:58,000 --> 00:20:01,000 확인하는 외에 그 성격과 키워드 306 00:20:01,000 --> 00:20:05,000 알파벳 문자는 또한 정수로되었을 307 00:20:05,000 --> 00:20:13,000 0-25 범위에서 다음 루프에이 일에에 해당 나중에 수행 할 필요가 건너 뛰합니다. 308 00:20:13,000 --> 00:20:18,000 다시,이 정말 동일한 코드입니다 여기를 클릭하십시오 309 00:20:18,000 --> 00:20:22,000 우리는이 시점에서 황제에 사용되는. 310 00:20:22,000 --> 00:20:25,000 당신은 동일한 일을하고있어, 실제 트릭은 알아 냈어 될 수 있도록 311 00:20:25,000 --> 00:20:30,000 정수에 키워드를 설정하는 방법. 312 00:20:30,000 --> 00:20:35,000 >> 한가지 우리가 여기서 한 것을 작은 조밀입니다 313 00:20:35,000 --> 00:20:39,000 우리가이 구문을 반복입니다, 난 당신이 전화를 할 수 있죠 314 00:20:39,000 --> 00:20:45,000 라인 58, 59, 61 3 차례에 걸쳐. 315 00:20:45,000 --> 00:20:52,000 누군가가 정확히이 문구가 무슨 일을하는지 설명 할 수 있습니까? 316 00:20:52,000 --> 00:20:55,000 당신이 말한 것처럼 캐릭터에 액세스있어. 317 00:20:55,000 --> 00:20:59,000 그래,, 키워드에있는 [안 들리게] 캐릭터 318 00:20:59,000 --> 00:21:04,000 만 함께 이동하기 때문에 때문에 본 글자의 수입니다 319 00:21:04,000 --> 00:21:06,000 당신이 편지를 본 후 키워드 320 00:21:06,000 --> 00:21:10,000 효율적으로 공간과 그 일을 건너 겁니다. 321 00:21:10,000 --> 00:21:12,000 네, 맞아요. 322 00:21:12,000 --> 00:21:16,000 당신이 근처에 다시 이동하도록 그리고 일단 당신이 지금 MOD 키워드를 비워 봤어요. 323 00:21:16,000 --> 00:21:18,000 그렇지. 그건 완벽한 설명입니다. 324 00:21:18,000 --> 00:21:23,000 어떤 케빈 말은 우리가 키워드로 색인을 생성하려는 것입니다. 325 00:21:23,000 --> 00:21:28,000 당신이 가만히 있으면 우리는, num_letters_seen 문자 받기를 원하는 326 00:21:28,000 --> 00:21:32,000 하지만 num_letters_seen는 키워드의 길이를 초과 할 경우, 327 00:21:32,000 --> 00:21:37,000 우리가 적절한 범위에 다시 방법은 우리가 모듈로 연산자를 사용합니다 328 00:21:37,000 --> 00:21:40,000 효과적으로 주변에 줄 바꿈합니다. 329 00:21:40,000 --> 00:21:43,000 예를 들어, 짧은에서처럼, 우리의 키워드, 베이컨입니다 330 00:21:43,000 --> 00:21:46,000 그리고 5 글자 길이입니다. 331 00:21:46,000 --> 00:21:50,000 그러나 우리는이 시점에서 우리 일반 텍스트로 6 글자를 본 적이 332 00:21:50,000 --> 00:21:52,000 6 암호화. 333 00:21:52,000 --> 00:21:57,000 우리는 num_letters_seen에 액세스 끝장 날 것이다 334 00:21:57,000 --> 00:22:00,000 어떤은 키워드의 모드 길이, 5, 6입니다 335 00:22:00,000 --> 00:22:04,000 그래서 우리는 우리가 할 일은 우리가집니다하므로 1을 받고,됩니다 336 00:22:04,000 --> 00:22:14,000 그 시점에서 Google의 키워드의 첫 문자 내부에 액세스 할 수 있습니다. 337 00:22:14,000 --> 00:22:21,000 >> 좋아, Vigenère에 대한 질문 338 00:22:21,000 --> 00:22:26,000 우리는 넘어 가기 전에? 339 00:22:26,000 --> 00:22:31,000 당신들은 이것에 대해 아주 좋아요? 340 00:22:31,000 --> 00:22:35,000 좋아요, 좋아. 341 00:22:35,000 --> 00:22:38,000 나는 너희들이 코드를 볼 수있는 기회가 발생했는지 확인하려면 342 00:22:38,000 --> 00:22:48,000 우리는 좋아 보인다고 생각하고 배울 수있는 기회를 갖고 있습니다. 343 00:22:48,000 --> 00:22:53,000 이것은 우리가, 당분간 공백을 사용할 것입니다 마지막이 될 것입니다 344 00:22:53,000 --> 00:22:59,000 우리는 지금 전환에 갈거야, 난 cs50.net/lectures에 가고 345 00:22:59,000 --> 00:23:06,000 그래서 우리는 퀴즈 검토 약간의 작업을 수행 할 수 있습니다. 346 00:23:06,000 --> 00:23:10,000 제가 퀴즈 검토를 시작하기 위해 생각하는 가장 좋은 방법 347 00:23:10,000 --> 00:23:15,000 이 강좌 페이지에 와서하고, cs50.net/lectures, 348 00:23:15,000 --> 00:23:20,000 이번 주 제목의 각 아래에, 그래서 제가, 주 0 여기 보면 349 00:23:20,000 --> 00:23:27,000 나는 우리가 우리가 주 0에 적용되는 주제 목록을하신 것으로 알고 있습니다. 350 00:23:27,000 --> 00:23:31,000 >> 이러한 주제의 당신에게 익숙하지 않은 보인다면 351 00:23:31,000 --> 00:23:34,000 당신은 확실히 강의 노트와 가능 돌아 가서 샅 샅히 뒤져하는 것이 좋습니다 352 00:23:34,000 --> 00:23:39,000 당신이 원하는 경우에도 강의를 통해 탈지, 다시보기 353 00:23:39,000 --> 00:23:44,000 해당 주제의 각에게 무슨 일이 일에 대한 느낌을 얻을 수 있습니다. 354 00:23:44,000 --> 00:23:49,000 나는 또한 우리가 확보 한 멋진 자원의 올해 하나를 말할 것이다 355 00:23:49,000 --> 00:23:55,000 우리가 만든이 반바지입니다, 당신은 주 0 살펴보면, 356 00:23:55,000 --> 00:24:00,000 우리는 커버 주제를 모두 없지만, 우리는 그중에 몇 있어요 357 00:24:00,000 --> 00:24:03,000 까다들 중 일부는, 그래서이 반바지를 보며 358 00:24:03,000 --> 00:24:08,000 속도를 당신을 얻을 수있는 좋은 방법이 될 것입니다. 359 00:24:08,000 --> 00:24:15,000 특히, 내가 그 짓을하기 때문에 하단에있는 3 플러그인에 넣어거야. 360 00:24:15,000 --> 00:24:20,000 하지만 당신은 바이너리로 어려움을 겪고있는 경우, 비트, 마법, 그런, 361 00:24:20,000 --> 00:24:22,000 이진 시작 수있는 훌륭한 장소입니다. 362 00:24:22,000 --> 00:24:25,000 ASCII도 볼 좋은 또 다른 하나입니다. 363 00:24:25,000 --> 00:24:31,000 내가 너무 느린거야 경우에도 1.5x 속도로 저를 볼 수 있습니다. 364 00:24:31,000 --> 00:24:35,000 그건 검토 한 이후, 그렇게 해 주시기 바랍니다. 365 00:24:35,000 --> 00:24:40,000 >> 정말 신속하게 시작하기 위해, 우리는이 퀴즈 문제의 몇 통과 할거야 366 00:24:40,000 --> 00:24:44,000 빨리 만이 통과 쳔합니다. 367 00:24:44,000 --> 00:24:50,000 예를 들어, 내가 보드에 바로 여기 한 문제를 16 살펴 보도록하겠습니다. 368 00:24:50,000 --> 00:24:54,000 우리는 이진이 다음과 같은 계산이있어 369 00:24:54,000 --> 00:24:56,000 우리는 어떤 작품을 보여주고 싶어. 370 00:24:56,000 --> 00:24:59,000 좋아, 난이에게 기회를 주겠어. 371 00:24:59,000 --> 00:25:01,000 당신들은, 종​​이와 함께 따라야한다 372 00:25:01,000 --> 00:25:04,000 그리고 우리는 신속하게이 작업을 수행합니다. 373 00:25:04,000 --> 00:25:06,000 우리는 바이너리에 다음과 같은 계산을 수행 할. 374 00:25:06,000 --> 00:25:16,000 나는 00,110,010있어. 375 00:25:16,000 --> 00:25:27,000 그리고 내가 00,110,010에 추가 할거야. 376 00:25:27,000 --> 00:25:30,000 수학를 들어, 집에서 따라 다음과 같은 천재 377 00:25:30,000 --> 00:25:35,000 이 효과적으로 2로 곱한 수 있습니다. 378 00:25:35,000 --> 00:25:37,000 의 시작하자. 379 00:25:37,000 --> 00:25:39,000 우리가해야 할 것과 같은 추가 알고리즘을 따릅 380 00:25:39,000 --> 00:25:43,000 우리가 함께 십진수 숫자를 추가 할 때. 381 00:25:43,000 --> 00:25:46,000 진짜 유일한 차이는 우리가 루프 다시 주변을 그 382 00:25:46,000 --> 00:25:51,000 일단 1 할 + 1 대신 일단 10까지 있습니다. 383 00:25:51,000 --> 00:25:53,000 >> 우리가 정말 신속하게, 오른쪽에서 시작되는 경우, 첫 번째 숫자 야? 384 00:25:53,000 --> 00:25:55,000 [학생] 0. >> [네이트 H.] 0. 385 00:25:55,000 --> 00:25:58,000 좋아요, 두 번째 숫자? 386 00:25:58,000 --> 00:26:00,000 [학생] 1. 387 00:26:00,000 --> 00:26:02,000 [네이트 H.]는 1인가? 1 + 1은? 388 00:26:02,000 --> 00:26:04,000 [학생] 10. 389 00:26:04,000 --> 00:26:08,000 [네이트 H.] 맞아, 난 함께 추가 2 사람 아래 오른쪽 작성하는 자리 뭐? 390 00:26:08,000 --> 00:26:11,000 [학생] 1, 0, 또는 0 한 다음 1을 수행합니다. 391 00:26:11,000 --> 00:26:15,000 [네이트 H.] 0과 정확히, 1을 가지고 다니십시오. 392 00:26:15,000 --> 00:26:18,000 다음의 최대, 바질, 당신은 차례 다. 393 00:26:18,000 --> 00:26:20,000 세 번째는 무엇입니까? >> [바질] 1. 394 00:26:20,000 --> 00:26:23,000 [네이트 H.] 1, 좋아요. 케빈? 395 00:26:23,000 --> 00:26:27,000 [케빈] 0. >> [네이트 H.] 0, 샬롯? 396 00:26:27,000 --> 00:26:30,000 [샬롯] 0. >> [네이트 H. 그래, 내가 어떻게해야 하죠? 397 00:26:30,000 --> 00:26:32,000 [학생] 1. 398 00:26:32,000 --> 00:26:34,000 [네이트 H.] 내가 어떻게해야 하죠? 그리고 나서 한을 가지고 다니십시오. 399 00:26:34,000 --> 00:26:36,000 완벽한 Sahb? >> [Sahb] 이제 1을 갖추고 있습니다. 400 00:26:36,000 --> 00:26:40,000 [네이트 H.] 그리고 난 여기 아무 일이나해야하나요? 401 00:26:40,000 --> 00:26:43,000 [Sahb] 그런 다음 1 이월 때문에 1이 다음 하나. 402 00:26:43,000 --> 00:26:49,000 [네이트 H.] 좋아, 그래서 여기에 우리가 마무리 할 수​​ 있습니다. 403 00:26:49,000 --> 00:26:51,000 좋아. 404 00:26:51,000 --> 00:26:54,000 [학생] 0 + 0 = 0 있습니까? 405 00:26:54,000 --> 00:26:56,000 0 + 0 = 0. 406 00:26:56,000 --> 00:27:01,000 1 + 1, 네가 말한 것처럼, 0 10, 또는 1이 아니라. 407 00:27:01,000 --> 00:27:07,000 10 나에게 10 숫자 10을 의미하기 때문에 그릇된 명칭이며, 408 00:27:07,000 --> 00:27:12,000 그리고 우리가 그것을 쓸 때 우리가 그것을 대표하는 방법의 차이 일 뿐이죠. 409 00:27:12,000 --> 00:27:20,000 우리는 1, 0으로 숫자 2를 대표하고, 숫자 10은 조금씩 다를 수 있습니다. 410 00:27:20,000 --> 00:27:23,000 >> 바이너리에 대한 좋은 종류의은 무엇입니까 정말 많은가 없습니다 것입니다 411 00:27:23,000 --> 00:27:25,000 당신이 배워야 가지 경우. 412 00:27:25,000 --> 00:27:30,000 0 + 0 = 0, 0 + 1 = 1가 있어요 413 00:27:30,000 --> 00:27:34,000 1 + 1은 0이며, 다음 1을 가지고 414 00:27:34,000 --> 00:27:37,000 그리고 당신은 오른쪽에서 세 번째 열에서 현재 볼 수 있습니다 415 00:27:37,000 --> 00:27:40,000 우리는이 1, 1, 1했다. 416 00:27:40,000 --> 00:27:43,000 그리고 1 + 1 + 1은 1입니다 417 00:27:43,000 --> 00:27:45,000 그리고 당신은 다른 일을 가지고 다니십시오. 418 00:27:45,000 --> 00:27:48,000 당신은 바이너리 또한 일을 할 때, 아주 간단합니다. 419 00:27:48,000 --> 00:27:51,000 나는 정신이 스스로를 확인하려면 다음의 몇 가지 작업을 수행 할 420 00:27:51,000 --> 00:27:54,000 당신은이 때문에 들어가기 전에 421 00:27:54,000 --> 00:28:00,000 아마도 우리가 퀴즈에 표시됩니다 것을. 422 00:28:00,000 --> 00:28:03,000 지금뿐만 아니라이 다음 하나를 수행 까. 423 00:28:03,000 --> 00:28:06,000 문제 17를하자. 424 00:28:06,000 --> 00:28:12,000 우리는 10 진수로 다음과 같은 이진 숫자로 변환거야. 425 00:28:12,000 --> 00:28:28,000 나는 10100111001있어. 426 00:28:28,000 --> 00:28:33,000 제가했던 이진 비디오에 기억 427 00:28:33,000 --> 00:28:36,000 나는 예를 몇으로 걸어, 그리고 내가 어떻게 보여 428 00:28:36,000 --> 00:28:41,000 당신은 십진수에서 일을 할 때 모든 작동합니다. 429 00:28:41,000 --> 00:28:45,000 당신은 소수점 표현에서 작업 할 때 나는 우리가 생각 430 00:28:45,000 --> 00:28:48,000 거기에 우리의 삶에이 시점에서 그렇게 유창 그 431 00:28:48,000 --> 00:28:53,000 그것은 실제로 작동 방식의 메커니즘을 통해 광택하는 매우 간단합니다. 432 00:28:53,000 --> 00:28:59,000 >> 전 그 번호 137이있는 경우 그러나 빠른 뉴스 레터를 살펴을 할 수 433 00:28:59,000 --> 00:29:06,000 이 진정한 의미와 다시이 십진수에 표현 - 434 00:29:06,000 --> 00:29:19,000 진수의 숫자 137은 내가 1 × 100 + 3 × 10 + 7 × 1을 의미합니다. 435 00:29:19,000 --> 00:29:22,000 이 모든 화면에 머무는 것입니다. 436 00:29:22,000 --> 00:29:29,000 그리고 당신은 여기에 숫자를 살펴보면 437 00:29:29,000 --> 00:29:34,000 100, 10, 1, 당신은 그들이 실제로 10의 모든 힘이 있다고 참조하십시오. 438 00:29:34,000 --> 00:29:43,000 나는 제로로 10 ², 10 ¹, 10가 있습니다. 439 00:29:43,000 --> 00:29:48,000 우리는 바이너리에서 일을 비슷한 종류의이 440 00:29:48,000 --> 00:29:55,000 를 제외하고 우리의 기본, 우리가 말하는 10 2 대신합니다. 441 00:29:55,000 --> 00:29:58,000 제가 아래에 내려 쓴이 10 초, 442 00:29:58,000 --> 00:30:02,000 이 10 ², 10 ¹, 제로, 10 ~ 10, 우리의 기지입니다 443 00:30:02,000 --> 00:30:08,000 그리고 지수, 0, 1, 2, 444 00:30:08,000 --> 00:30:14,000 우리가 글을 쓰는 수의 숫자의 위치가 암시되어 있습니다. 445 00:30:14,000 --> 00:30:21,000 우리가 보면 1이 1 2 위치에 있습니다. 446 00:30:21,000 --> 00:30:27,000 3 1 위치에 있으며, 7 0번째 위치에 있습니다. 447 00:30:27,000 --> 00:30:35,000 그래서 우리가 기지 아래의 다양한 지수를 방법입니다. 448 00:30:35,000 --> 00:30:40,000 >> 이 사 - 실제로 모든 후, 당신은 알아요? 449 00:30:40,000 --> 00:30:43,000 우리는 내 취소 버튼이 어떻게 - 어디 갔었 어거야? 450 00:30:43,000 --> 00:30:45,000 자, 일 났네. 451 00:30:45,000 --> 00:30:47,000 나는이 일을 취소 사랑해. 452 00:30:47,000 --> 00:30:51,000 그 후 필자는 최소한 나를 위해 생각 453 00:30:51,000 --> 00:30:54,000 이진 숫자로 변환을 시작하는 가장 쉬운 방법 454 00:30:54,000 --> 00:30:57,000 베이스가 16 또는 16 진수 455 00:30:57,000 --> 00:31:02,000 이 아닌 10이 가서 쓰다 것입니다 456 00:31:02,000 --> 00:31:09,000 상단에있는 내 바이너리 번호를 숫자의 모든 기지와 지수. 457 00:31:09,000 --> 00:31:14,000 우리가 바로 다시 왼쪽에서 시작하면 458 00:31:14,000 --> 00:31:17,000 어긋나의 종류, 그입니다 459 00:31:17,000 --> 00:31:23,000 여기 검은 색으로 다시 변경됩니다, 우리는 0번째 위치로 2가 460 00:31:23,000 --> 00:31:27,000 그리고 우리는 2가 ¹, 2 ², 461 00:31:27,000 --> 00:31:33,000 다음 2 3 5 2 ~ 4, 2, 6, 462 00:31:33,000 --> 00:31:39,000 7, 8, 9, 10. 463 00:31:39,000 --> 00:31:41,000 내가 알아 작성한이 숫자는 모두 지수입니다. 464 00:31:41,000 --> 00:31:48,000 이제 막 공간에 대한 최초의 3 여기 기지를했다. 465 00:31:48,000 --> 00:31:50,000 >> 이 시점에서 나는 진행거야 그리고 난 실제로 삭제거야 466 00:31:50,000 --> 00:31:53,000 괜찮 으면 우리가 십진수했다는 소식입​​니다. 467 00:31:53,000 --> 00:31:57,000 당신은 모든 것을있어. 468 00:31:57,000 --> 00:32:05,000 제가 확신 온라인 시청하시는 분들은 원하는 경우 나 되감기 할 수 있습니다. 469 00:32:05,000 --> 00:32:07,000 펜으로 전환. 470 00:32:07,000 --> 00:32:12,000 이제 우리 할 수​​있는 건 - 경우에 너희들이 2 네 능력에 속도를 완전히 위로 없습니다 것은 471 00:32:12,000 --> 00:32:15,000 그거 정말 괜찮아요. 472 00:32:15,000 --> 00:32:18,000 이 발생합니다. 이해합니다. 473 00:32:18,000 --> 00:32:23,000 나는 I 2의 모든 힘을 알고 있어야 들었는데 어디 한 번 면접을했다 474 00:32:23,000 --> 00:32:26,000 까지를 통해 2 30. 475 00:32:26,000 --> 00:32:29,000 내가 가진 직업 아니 었습니다. 476 00:32:29,000 --> 00:32:32,000 , 어쨌든 당신들 가서 수 있으며, 여기에서 수학을 477 00:32:32,000 --> 00:32:35,000 하지만 이진과 함께 정말 이해가되지 않는 478 00:32:35,000 --> 00:32:38,000 그리고 않으며, 어느 진수 또는 진수를 이해할 수 없습니다 479 00:32:38,000 --> 00:32:43,000 당신은 0을 어디에 있었는지 계산을 할 수 있습니다. 480 00:32:43,000 --> 00:32:49,000 당신은 내가 여기, 여기, 여기, 여기, 여기, 여기, 0 0 0 0 0 0이 볼 수 있습니다. 481 00:32:49,000 --> 00:32:52,000 왜 실제 수학을 할 이해하지 않을 수 있습니다 482 00:32:52,000 --> 00:32:56,000 그 자리에 (2)의 적절한 힘을 계산하기 위해? 483 00:32:56,000 --> 00:32:59,000 샬롯가 말한대로 정확히,이 0이됩니다. 484 00:32:59,000 --> 00:33:05,000 2의 거듭 제곱을 계산하면 강한 정장이 아닌 경우뿐만 아니라 자신에게 시간을 절약 할 수 있습니다. 485 00:33:05,000 --> 00:33:10,000 이 경우 우리는 0-2를 위해 계산 할 필요가 있는데,? 486 00:33:10,000 --> 00:33:12,000 [학생] 1. 487 00:33:12,000 --> 00:33:14,000 [네이트 H.] 1, 2, 3도 있죠 -? 488 00:33:14,000 --> 00:33:16,000 [학생] 8. >> [네이트 H.] 8. 489 00:33:16,000 --> 00:33:18,000 2 4? 490 00:33:18,000 --> 00:33:21,000 [학생] 2. 죄송합니다, 하나입니다. 491 00:33:21,000 --> 00:33:26,000 [네이트 H.]는 2 4 정확히 16입니다. 492 00:33:26,000 --> 00:33:28,000 2 5, 케빈? >> 32. 493 00:33:28,000 --> 00:33:32,000 [네이트 H.] 32, 2 8? 494 00:33:32,000 --> 00:33:38,000 [학생] 32 X 8, 256. 495 00:33:38,000 --> 00:33:41,000 [네이트 H.] 좋아요. 496 00:33:41,000 --> 00:33:43,000 그리고 2 10? 497 00:33:43,000 --> 00:33:45,000 [학생] 1024. 498 00:33:45,000 --> 00:33:49,000 [네이트 H.] 네, 1024. 499 00:33:49,000 --> 00:33:57,000 >> 일단 우리는 그들 모두를 요약 할 수 있습니다이 숫자있어. 500 00:33:57,000 --> 00:34:01,000 그리고는 몇 가지 작업을 수행하기 위해 정말 중요한 곳입니다. 501 00:34:01,000 --> 00:34:07,000 하나는 느리게 가서 작업을 확인합니다. 502 00:34:07,000 --> 00:34:10,000 당신은이 번호의 끝 부분에 1이 말할 수 503 00:34:10,000 --> 00:34:15,000 그래서 확실히, 나의 결과로 홀수를해야합니다 504 00:34:15,000 --> 00:34:18,000 다른 모든 사람들도 숫자가 될 것 때문에 505 00:34:18,000 --> 00:34:21,000 가 이진 숫자 있다는 것을 감안하면. 506 00:34:21,000 --> 00:34:24,000 당신이 테스트에서이 시점이 오게되면해야 할 또 다른 점은 507 00:34:24,000 --> 00:34:27,000 그리고 당신이 멀리 한번 작성한 508 00:34:27,000 --> 00:34:30,000 당신은 시간이 없어 509 00:34:30,000 --> 00:34:33,000 이 문제가 가치가있는 포인트의 수 좀 봐. 510 00:34:33,000 --> 00:34:40,000 이 문제는, 당신이 볼 수 - 경우 수 있기 때문에 정말 내 노트북​​에 다시 뒤집기 신속하게 - 511 00:34:40,000 --> 00:34:44,000 이 문제는 2 점의 가치이기 때문에,이 또한 일종의 없습니다 512 00:34:44,000 --> 00:34:47,000 당신은 정말 시간이 촉박 한 경우가 지르해야합니다. 513 00:34:47,000 --> 00:34:52,000 하지만 우리는 아이 패드로 다시 전환됩니다, 우리는 정말 빨리 갈 거에요. 514 00:34:52,000 --> 00:34:54,000 >> 처음의 작은 숫자를 좋아하고 515 00:34:54,000 --> 00:34:56,000 그런 일이 쉽게 찾을 때문입니다. 516 00:34:56,000 --> 00:35:00,000 그들은 아주 쉽게 같이 할 때문에 32과 8을 좋아, 우리는 50을. 517 00:35:00,000 --> 00:35:03,000 16 일 17를 얻을 수 있습니다. 518 00:35:03,000 --> 00:35:05,000 이 우리는 57을 519 00:35:05,000 --> 00:35:14,000 그리고 우리는이 나머지를, 그래서 우리는 156 57 할 수 있습니다. 520 00:35:14,000 --> 00:35:16,000 이리와. 521 00:35:16,000 --> 00:35:19,000 이봐, 음, 어디 보자. 522 00:35:19,000 --> 00:35:27,000 우리는 57, 256, 1024했다. 523 00:35:27,000 --> 00:35:31,000 이 시점에서, 난 차라리 그냥 통과 할. 524 00:35:31,000 --> 00:35:35,000 나는 단서가 없습니다. 나는 분명이에 읽어해야합니다. 525 00:35:35,000 --> 00:35:40,000 7, 6, 4, 당신은 17를. 526 00:35:40,000 --> 00:35:42,000 1, 5, 5, 2, 13. 527 00:35:42,000 --> 00:35:45,000 그런 다음 3을하고, 다음에 1을. 528 00:35:45,000 --> 00:35:52,000 1337. 529 00:35:52,000 --> 00:35:55,000 부활절 달걀, 누구? 530 00:35:55,000 --> 00:35:59,000 사람이 번호를 알아 보시겠습니까? 531 00:35:59,000 --> 00:36:02,000 크리스는 숫자를 인식합니다. 그것은 크리스 무엇을 의미합니까? 532 00:36:02,000 --> 00:36:04,000 [크리스] Leet. 533 00:36:04,000 --> 00:36:11,000 이 보면 Leet, 그래서이 leet 것 같습니다. 534 00:36:11,000 --> 00:36:15,000 해커 때문에. 중간 또는 퀴즈, 오히려에 그런 얘기 해보세요. 535 00:36:15,000 --> 00:36:19,000 당신이 그런 얘기를보고 궁금 경우 "허" 536 00:36:19,000 --> 00:36:22,000 그 뭔가를 의미 할 수 있습니다. 537 00:36:22,000 --> 00:36:24,000 모르겠어요. 데이비드을 생각할 때 좋아 하잖아 538 00:36:24,000 --> 00:36:26,000 그것은 정신이 확인 할 수있는 좋은 방법입니다. 539 00:36:26,000 --> 00:36:30,000 괜찮 마찬가지로, 난 무슨 일이 일어나고 있는지 볼 수 있습니다. 540 00:36:30,000 --> 00:36:34,000 >> 그 주 0/Week 한 물건을입니다. 541 00:36:34,000 --> 00:36:39,000 우리는 지금 우리의 노트북로 다시 전환하는 경우 542 00:36:39,000 --> 00:36:46,000 축소 및 기타 몇 가지. 543 00:36:46,000 --> 00:36:50,000 우리가 문제를 세트로 많이 해왔있는 ASCII있다. 544 00:36:50,000 --> 00:36:55,000 자본 A.의이 개념은 정말 무엇입니까? 545 00:36:55,000 --> 00:36:57,000 이 10 진수 정수를 알고. 546 00:36:57,000 --> 00:37:00,000 65, 그것은 ASCII 표에에 매핑 할 수있어 547 00:37:00,000 --> 00:37:03,000 그는 컴퓨터를 기록하는 방법 때문에입니다 548 00:37:03,000 --> 00:37:06,000 그리고 그건 우리가 실제로 쓰기로 빠져 나갈 수 있었어요 방법 549 00:37:06,000 --> 00:37:09,000 문자 자본과 문자를 소문자 550 00:37:09,000 --> 00:37:14,000 당신이했던 짓이 솔루션과 문제 세트의 일부 인치 551 00:37:14,000 --> 00:37:16,000 몇 가지 다른 사항. 552 00:37:16,000 --> 00:37:25,000 우리는 성명, 부울 표현, 조건, 루프, 변수와 쓰레드있어. 553 00:37:25,000 --> 00:37:29,000 >> 이러한 모든 대부분 이해하던가요? 554 00:37:29,000 --> 00:37:35,000 이 용어 중 일부는 시간에 좀 희한합니다. 555 00:37:35,000 --> 00:37:46,000 나는 세미콜론으로 끝나는 대부분의 뭔가로 문을 생각하고 싶어요. 556 00:37:46,000 --> 00:37:51,000 이러한 X로 제표 = 7, 변수를 설정, 557 00:37:51,000 --> 00:37:54,000 아마도 X = 7했다. 558 00:37:54,000 --> 00:38:01,000 아마도 x는 또한 숫자 7을 저장할 수있는 타입이다 559 00:38:01,000 --> 00:38:05,000 그래서, 정수 또는 가능한 부동 또는 짧은 또는 문자입니다 560 00:38:05,000 --> 00:38:07,000 그런 일. 561 00:38:07,000 --> 00:38:12,000 부울 표현식은 동일이 대역을 사용하는 562 00:38:12,000 --> 00:38:17,000 그리고 쿵는보다 큰 미만, 같음 또는 동일하지 563 00:38:17,000 --> 00:38:22,000 보다 작거나 물건을 모든 종류와 같은. 564 00:38:22,000 --> 00:38:28,000 조건 다음 경우 다른 문입니다. 565 00:38:28,000 --> 00:38:32,000 당신이 경우에 해당하지 않고 다른을 가질 수 없습니다 것을 기억합니다. 566 00:38:32,000 --> 00:38:37,000 마찬가지로 경우에 해당하지 않고 다른을 가질 수 없습니다. 567 00:38:37,000 --> 00:38:40,000 루프는, 우리가 당신을 망치 된 한 루프의 3 종류의 기억 568 00:38:40,000 --> 00:38:43,000 섹션 및 문제 세트의 마지막 몇하십시오. 569 00:38:43,000 --> 00:38:46,000 당신이 사용자 입력을 입었을 때 상태 않습니다 사용하여, 570 00:38:46,000 --> 00:38:51,000 특정 조건 때까지 루프에 해당하는 동안 사용 571 00:38:51,000 --> 00:38:56,000 필요한 경우 다음 루프에 대해 그 사용 572 00:38:56,000 --> 00:39:01,000 경우 현재 루프의 반복되는 알 것은 내가 그 일에 대해 생각하는 방법입니다. 573 00:39:01,000 --> 00:39:07,000 아니면 내가 뭔가를하고자하는 문자열의 각 문자에 대해를 수행하는 경우, 574 00:39:07,000 --> 00:39:15,000 그 요소로 뭔가를하길 원한다 배열의 각 요소에 대한. 575 00:39:15,000 --> 00:39:18,000 >> 스레드와 이벤트. 576 00:39:18,000 --> 00:39:21,000 이러한 우리는 C에서 그렇게 명시 적으로 포함되지 않은 577 00:39:21,000 --> 00:39:23,000 하지만 처음부터이 기억나요. 578 00:39:23,000 --> 00:39:26,000 이 서로 다른 스크립트를 갖는 개념이다. 579 00:39:26,000 --> 00:39:32,000 이것은 또한 이벤트를 방송의 개념입니다. 580 00:39:32,000 --> 00:39:37,000 어떤 사람들은 처음에 자신​​의 프로젝트에 방송을 사용하지 않았다 581 00:39:37,000 --> 00:39:40,000 그 때문에 전혀 상관이 582 00:39:40,000 --> 00:39:46,000 하지만 이것들은, 동시성이라는 큰 문제를 처리하는 2 가지 방법입니다 583 00:39:46,000 --> 00:39:49,000 이것은 어떻게 프로그램을 실행 시키려면 어떻게해야합니다 584 00:39:49,000 --> 00:39:54,000 또는 겉으로는 같은 시간에 실행? 585 00:39:54,000 --> 00:39:59,000 다른 작업도 실행하는 동안 다른 작업은 실행할 수 있습니다. 586 00:39:59,000 --> 00:40:01,000 이렇게하면 운영 체제가 작동 것 같습니다 방법입니다. 587 00:40:01,000 --> 00:40:04,000 이 예를 들어, 왜하더라도이 588 00:40:04,000 --> 00:40:10,000 내 브라우저가 실행 있고, 또한 Spotify를 활성화하고 노래를 재생할 수 있습니다. 589 00:40:10,000 --> 00:40:14,000 그 이해하는 개념 일 더. 590 00:40:14,000 --> 00:40:17,000 나는 짧은 스레드에서 살펴 것 591 00:40:17,000 --> 00:40:21,000 그에 대한 자세한 내용은하려는 경우. 592 00:40:21,000 --> 00:40:26,000 >> 어디 보자, 내가 거기 있었을 텐데 생각 593 00:40:26,000 --> 00:40:31,000 다음 중 하나이에 문제가 발생했습니다. 594 00:40:31,000 --> 00:40:35,000 다시, 나는 스레드와 이벤트 우리가 C에 충당 할 수있는 일이 아닌 생각 595 00:40:35,000 --> 00:40:41,000 그것은 크게 스크래치보다 더 어려운해서. 596 00:40:41,000 --> 00:40:44,000 당신이 거기에 대해 걱정하지만, 확실히 개념을 이해해서는 안됩니다 597 00:40:44,000 --> 00:40:47,000 무슨 일이야 이해합니다. 598 00:40:47,000 --> 00:40:52,000 우리가 이동하기 전에 주에 대한 질문이 0 물질? 599 00:40:52,000 --> 00:40:55,000 모두 꽤 기분이 괜찮은? 600 00:40:55,000 --> 00:41:03,000 이해 변수와 어떤 변수는? 601 00:41:03,000 --> 00:41:08,000 >> 움직여. 주 1. 602 00:41:08,000 --> 00:41:12,000 특히 적용되지 않은 현재 일 정도 603 00:41:12,000 --> 00:41:21,000 퀴즈 검토 반드시도에 대해 생각하는 더 많은 개념적 사항은 다음과 같습니다. 604 00:41:21,000 --> 00:41:30,000 첫 번째는 소스 코드, 컴파일러와 객체 코드가 무엇인지의 개념입니다. 605 00:41:30,000 --> 00:41:32,000 누구 없어요? 바질. 606 00:41:32,000 --> 00:41:37,000 되어 개체 코드 - 내가 소스 코드는 그 소리에 넣어 무슨 말은, 607 00:41:37,000 --> 00:41:42,000 와 객체 코드는 무엇 그 소리는 컴퓨터가 프로그램을 읽을 수 있도록 만들어 내입니다. 608 00:41:42,000 --> 00:41:44,000 그렇지. 609 00:41:44,000 --> 00:41:47,000 소스 코드는 실제로 최대 입력하는 C 코드입니다. 610 00:41:47,000 --> 00:41:50,000 개체 코드는 그 소리에 나가 무엇입니다. 611 00:41:50,000 --> 00:41:54,000 그렇게 바이너​​리 형식으로 0s와 1 초입니다. 612 00:41:54,000 --> 00:41:59,000 이 오브젝트 파일의 무리를 할 때 어떤 일이 생기하는 것은, 613 00:41:59,000 --> 00:42:04,000 당신이 프로젝트 또는 여러 소스 코드 파일을 사용하는 프로그램을 컴파일하는 말 614 00:42:04,000 --> 00:42:09,000 어떤 규칙에 의해. C 파일 확장자가 주어집니다. 615 00:42:09,000 --> 00:42:13,000 우리가 caesar.c, vigenère.c이 이유입니다. 616 00:42:13,000 --> 00:42:18,000 당신이 자바 프로그램을 작성할 경우 그들에게 확장을 제공합니다. 자바합니다. 617 00:42:18,000 --> 00:42:24,000 파이썬 프로그램은 확장되어 있습니다. 평을 자주. 618 00:42:24,000 --> 00:42:26,000 >> 일단 여러. C 파일을 가지고 당신이 그들을 컴파일합니다. 619 00:42:26,000 --> 00:42:29,000 꽝이 바이너리 둘 다에서 침을 뱉. 620 00:42:29,000 --> 00:42:33,000 만 1 프로그램을 래, 그럼 때문 621 00:42:33,000 --> 00:42:37,000 당신은이 개체의 모든 함께 파일을 링커 링크를 622 00:42:37,000 --> 00:42:40,000 한 실행 파일로. 623 00:42:40,000 --> 00:42:45,000 이렇게하면 CS50 라이브러리를 사용할 때 어떤 예를 들어, 일에 있습니다. 624 00:42:45,000 --> 00:42:50,000 CS50 라이브러리는 것이 모두입니다. H 헤더 파일 625 00:42:50,000 --> 00:42:53,000 당신이 읽고, # includecs50.h 그. 626 00:42:53,000 --> 00:42:58,000 그리고 또한 특별한 바이너리 라이브러리 파일의 627 00:42:58,000 --> 00:43:02,000 그는 0s와 1 초입니다 컴파일 된 628 00:43:02,000 --> 00:43:08,000 그리고 - 내가 플래그는, 우리의 공백으로 돌아가서 경우 ​​우리가 정말 빨리 찾아 629 00:43:08,000 --> 00:43:11,000 우리는 그 소리 명령을 볼 때 여기 무슨 일이야에서, 630 00:43:11,000 --> 00:43:15,000 우리가 가진 건이 여기에 우리의 소스 코드 파일입니다. 631 00:43:15,000 --> 00:43:18,000 이러한 컴파일러 플래그의 무리입니다. 632 00:43:18,000 --> 00:43:22,000 그리고 가장 마지막에이 - 난 플래그 링크에 633 00:43:22,000 --> 00:43:30,000 이 두 라이브러리의 실제 이진 파일, CS50 도서관과 다음 수학 라이브러리를 제공합니다. 634 00:43:30,000 --> 00:43:35,000 >> 파일 '목적의 각 유형을 이해 635 00:43:35,000 --> 00:43:38,000 컴파일 과정에서 할 수 할 수 당신이 원하는 것 일입니다 636 00:43:38,000 --> 00:43:43,000 적어도 높은 수준의 개요를 제공합니다. 637 00:43:43,000 --> 00:43:46,000 개체 코드가 나오는 인치 소스 코드가 제공됩니다. 638 00:43:46,000 --> 00:43:53,000 개체 코드 파일을 함께 링크, 당신은 아름답고, 실행 파일을. 639 00:43:53,000 --> 00:43:55,000 좋아. 640 00:43:55,000 --> 00:43:58,000 여러 개의 지점에서 오류를 얻을 수있는 곳이 있습니다 641 00:43:58,000 --> 00:44:00,000 컴파일 과정 인치 642 00:44:00,000 --> 00:44:04,000 이 곳, 예를 들어,이 연결 플래그를 빼 내면됩니다 643 00:44:04,000 --> 00:44:10,000 귀하의 코드를 실행하면 CS50 깃발, 당신​​은, 스페이스에서 생략하거나 644 00:44:10,000 --> 00:44:13,000 당신이 연결 단계에서 오류가 발생합니다 곳이에요 645 00:44:13,000 --> 00:44:18,000 그리고 링커는 이봐 요, 당신은 기능 GetString 호출 "라고합니다 646 00:44:18,000 --> 00:44:20,000 그 CS50 도서관에 있어요. " 647 00:44:20,000 --> 00:44:25,000 "당신은 CS50 도서관에서이 말 했어요,, 나는 거기에 코드를 찾을 수 없습니다." 648 00:44:25,000 --> 00:44:28,000 당신이에 연결해야 할 곳이야, 그는 별도입니다 649 00:44:28,000 --> 00:44:33,000 컴파일러 오류에서 컴파일러는 문법과 그런 얘기를보고되기 때문입니다. 650 00:44:33,000 --> 00:44:38,000 이 때 무슨 일이 일어나고 있는지 알고 좋아. 651 00:44:38,000 --> 00:44:42,000 >> 기타 사항에 대해 알고 있습니다. 652 00:44:42,000 --> 00:44:49,000 난 당신이 확실히 요르단에 의해 수행 typecasting에 짧은 살펴 싶은 말 것 653 00:44:49,000 --> 00:44:55,000 ints는 후드 아래에 어떤 이해하려면, 654 00:44:55,000 --> 00:44:58,000 본네트 아래에있는 것만 문자입니다. 655 00:44:58,000 --> 00:45:02,000 우리가 ASCII에 대해 이야기하고 우리가 실제로 ASCII 표를 보면, 656 00:45:02,000 --> 00:45:07,000 무슨 짓을은 후드의 모양에 따라 우리를 제공합니다 657 00:45:07,000 --> 00:45:13,000 컴퓨터가 실제로 자본을 나타내는 방법에 대해 A와 숫자 7 658 00:45:13,000 --> 00:45:17,000 와 쉼표와 물음표. 659 00:45:17,000 --> 00:45:20,000 컴퓨터는 또한 대표하는 특별한 방법이 있습니다 660 00:45:20,000 --> 00:45:23,000 정수로 숫자 7. 661 00:45:23,000 --> 00:45:27,000 그것은 부동 소수점 숫자로 숫자 7을 대표 할 수있는 특별한 방법이 있습니다 662 00:45:27,000 --> 00:45:29,000 그리고 그것들은 매우 다릅니다. 663 00:45:29,000 --> 00:45:32,000 Typecasting은 컴퓨터가 "이봐, 난 당신이 변환 할 말하는 방법입니다 664 00:45:32,000 --> 00:45:37,000 한 표현에서 다른 표현으로. " 665 00:45:37,000 --> 00:45:40,000 왜 우리는 살펴하지 않습니다. 666 00:45:40,000 --> 00:45:44,000 >> 나는 또한 도서관에 짧고 컴파일러에 짧은 살펴 것입니다. 667 00:45:44,000 --> 00:45:47,000 컴파일 과정에 대한 그 이야기, 668 00:45:47,000 --> 00:45:53,000 어떤 라이브러리가 있으며, 당신이 요청받을 수 있다는 이러한 질문 중 일부를 통해 이동합니다. 669 00:45:53,000 --> 00:45:55,000 주 1 자료에 질문이 있으십니까? 670 00:45:55,000 --> 00:46:03,000 당신이 커버하고 싶은 부담스러운 듯 여기에 주제가 있습니까? 671 00:46:03,000 --> 00:46:07,000 우리가 얻을 수 있도록이 이전 주제의 대부분을 폭파하려고 672 00:46:07,000 --> 00:46:13,000 포인터와 재귀의 수행 약간. 673 00:46:13,000 --> 00:46:15,000 생각? 674 00:46:15,000 --> 00:46:19,000 충당 할 있나요? 675 00:46:19,000 --> 00:46:21,000 어쩌면 초콜렛 시간? 676 00:46:21,000 --> 00:46:23,000 당신들은 그것을 통해 노력하고 있습니다. 677 00:46:23,000 --> 00:46:26,000 내 커피에 술을 마시고 계속거야. 678 00:46:26,000 --> 00:46:31,000 주 2. 679 00:46:31,000 --> 00:46:34,000 행운을 빌어 줘, 좋은 전화. 680 00:46:34,000 --> 00:46:38,000 주에서 2 우리는 기능에 대해 조금 더 이야기. 681 00:46:38,000 --> 00:46:43,000 >> 처음 몇 문제 세트에서 우리는 정말 전혀 기능을 쓰지 않았어요 682 00:46:43,000 --> 00:46:45,000 어떤 기능이 아닌 다른? 683 00:46:45,000 --> 00:46:47,000 정확히 [학생] 메인. >> 메인. 684 00:46:47,000 --> 00:46:51,000 그래서 우리는 주요 입고있는 다른 의상을 봤어요. 685 00:46:51,000 --> 00:46:54,000 이 인수도도지지 않습니다하는 사람도 있고 686 00:46:54,000 --> 00:46:58,000 우리는 그냥 괄호 사이에 빈 공간을 말 687 00:46:58,000 --> 00:47:01,000 다음, 우리는 명령 줄 인수를 사용하고 싶어 다른 하나가 688 00:47:01,000 --> 00:47:08,000 당신이 INT argc와 argv가 문자열 배열을 어디에서 우리가 본대로, 그건 689 00:47:08,000 --> 00:47:13,000 나 이제 우리가 실제로인지 숯불 *로 문자열을 노출 한 690 00:47:13,000 --> 00:47:20,000 우리는 숯불 * 변수는 argv와 다음 괄호로 쓰기 시작할 거에요. 691 00:47:20,000 --> 00:47:22,000 문제 설정 3에서, 너희는 함수의 무리를 본 692 00:47:22,000 --> 00:47:27,000 그리고 함수의 무리 구현, 그릴, 스크램블을 다하겠습니다. 693 00:47:27,000 --> 00:47:31,000 프로토 타입은 모든 당신을 위해 작성되었습니다. 694 00:47:31,000 --> 00:47:33,000 >> 정말 신속하게 기능과 함께 이야기하고 싶습니다 695 00:47:33,000 --> 00:47:38,000 당신이 함수를 작성 할 때마다 세 부분이 그들에게 있다는 것을이다. 696 00:47:38,000 --> 00:47:43,000 당신은 함수의 반환 유형을 지정해야합니다. 697 00:47:43,000 --> 00:47:46,000 당신은 함수의 이름을 지정해야하고, 다음을 지정해야합니다 698 00:47:46,000 --> 00:47:51,000 인수 목록이나 매개 변수 목록입니다. 699 00:47:51,000 --> 00:47:57,000 예를 들어, 경우 정수의 무리를 요약하는 함수를 작성했다 700 00:47:57,000 --> 00:48:03,000 그리고 나에게 내 반환 형식이 될 무엇의 합계를 반환 701 00:48:03,000 --> 00:48:06,000 나는 정수를 요약 한 후 합계를 반환하고 싶어? 경우 702 00:48:06,000 --> 00:48:12,000 그런 다음 함수의 이름입니다. 703 00:48:12,000 --> 00:48:27,000 제가 가서 녹색으로 작성하는 경우,이 부분은 반환 유형입니다. 704 00:48:27,000 --> 00:48:34,000 이 부분의 이름입니다. 705 00:48:34,000 --> 00:48:40,000 그리고 괄호 사이에 706 00:48:40,000 --> 00:48:46,000 제가 인수되는 곳입니다 707 00:48:46,000 --> 00:48:56,000 자주 때로는 매개 변수에 대한 매개 변수라고 인수로 약자. 708 00:48:56,000 --> 00:49:00,000 하나가 있다면, 당신은 단지 하나를 지정합니다. 709 00:49:00,000 --> 00:49:06,000 여러 개의이있는 경우에는 쉼표로 각각 구분합니다. 710 00:49:06,000 --> 00:49:13,000 각 인수에 대해 당신이 할 2 가지를 제공하는 아르 - 케빈? 711 00:49:13,000 --> 00:49:18,000 [케빈] 당신은 입력 한 다음 이름을 부여해야합니다. 712 00:49:18,000 --> 00:49:21,000 그리고 이름, 이름은 사용 할거야하는 이름입니다 713 00:49:21,000 --> 00:49:25,000 합 기능 내에서 해당 인수를 참조하려면, 714 00:49:25,000 --> 00:49:27,000 현재 작성하고있는 함수 내. 715 00:49:27,000 --> 00:49:32,000 >> 아시다시피, 전 요약 갈 수 있을지, 예를 들어 투 -에 대한 필요가 없습니다 716 00:49:32,000 --> 00:49:41,000 정수 - 누구의 배열은 정수 배열을, 말 717 00:49:41,000 --> 00:49:46,000 그리고 나도 나 자신에게 중괄호을주지 없습니다 - 718 00:49:46,000 --> 00:49:51,000 나는 합계 함수에 배열을 전달한다 때 719 00:49:51,000 --> 00:49:55,000 나는 인수 목록의 첫 번째 위치에 전달합니다. 720 00:49:55,000 --> 00:49:59,000 하지만에 전달하는 배열 이름 도착지를 할 필요가 없습니다. 721 00:49:59,000 --> 00:50:07,000 도착지는 내가 함수의 본문 내에서 해당 인수를 참조하는 방법 될 것입니다. 722 00:50:07,000 --> 00:50:10,000 우리가 고려하는 데 필요한 다른 것은, 723 00:50:10,000 --> 00:50:14,000 이 함수에서 약간의 차이가 있습니다,하지만 난 그게 중요한 것 같아요 724 00:50:14,000 --> 00:50:20,000 C에 내가이 같은 함수를 작성 할 때이다 725 00:50:20,000 --> 00:50:29,000 어떻게이 배열에 얼마나 많은 요소를 알 수 있습니까? 726 00:50:29,000 --> 00:50:31,000 이 어려운 질문에 다소 있습니다. 727 00:50:31,000 --> 00:50:35,000 우리는 지난 주 섹션에이 사실을 조금 했어요. 728 00:50:35,000 --> 00:50:40,000 어떻게 C에서 배열 내부 요소의 수를 알 수 있습니까? 729 00:50:40,000 --> 00:50:44,000 방법이 있습니까? 730 00:50:44,000 --> 00:50:49,000 >> 그것은 알 방법이 없다는 밝혀졌다. 731 00:50:49,000 --> 00:50:52,000 따로 안에 그것을 통과해야합니다. 732 00:50:52,000 --> 00:50:55,000 당신이 할 수있는 트릭이 있습니다 733 00:50:55,000 --> 00:51:00,000 당신은 배열이 선언 된있는 동일한 기능에 경우 734 00:51:00,000 --> 00:51:04,000 그리고 당신은 스택 배열 최선을 다하고 있습니다. 735 00:51:04,000 --> 00:51:06,000 당신은 동일한 기능에 있으면 그건에만 사용할 수 있습니다. 736 00:51:06,000 --> 00:51:09,000 일단 다른 함수에 배열을 전달하거나 배열을 선언 한 경우 737 00:51:09,000 --> 00:51:12,000 하고 힙에 그 배열을 넣어, 당신은 malloc을 사용 738 00:51:12,000 --> 00:51:15,000  과 물건의 종류 다음, 모든 게 백지가 있습니다. 739 00:51:15,000 --> 00:51:18,000 그럼 당신은 실제로 주위를 통과해야 740 00:51:18,000 --> 00:51:21,000 특별한 인자 또는 다른 매개 변수 741 00:51:21,000 --> 00:51:23,000 배열이 얼마나 큰 말. 742 00:51:23,000 --> 00:51:28,000 이 경우에는, 죄송 해요,이 화면을거야 쉼표로 난을 사용 싶어 - 여기 743 00:51:28,000 --> 00:51:32,000 그리고 난 다른 인수에 전달 할 744 00:51:32,000 --> 00:51:40,000  와 길이에 대한 INT 렌 전화하십시오. 745 00:51:40,000 --> 00:51:44,000 >> 퀴즈에있을거야 한가지 746 00:51:44,000 --> 00:51:49,000 무언가라는 특정 기능을 작성하거나 구현을 요구하고 있습니다. 747 00:51:49,000 --> 00:51:54,000 우리는 당신에게 프로토 타입을 제공하지 않을 경우, 여기이 모든 게, 748 00:51:54,000 --> 00:51:58,000 이 모든 혼란은 함수 선언이나 함수의 프로토 타입이라고합니다 749 00:51:58,000 --> 00:52:01,000 이가 주어지지가 당신이 아래로 체포하고 싶어한다고 첫 번째 일 중 하나입니다 750 00:52:01,000 --> 00:52:03,000 바로 퀴즈에 당신을 위해. 751 00:52:03,000 --> 00:52:06,000 내가 배운 또 다른 트릭은 그 752 00:52:06,000 --> 00:52:11,000 우리가 당신에게 기능에 대한 프로토 타입을 제공 할 말, 우리는, "어이, 당신이 그것을 쓸 수있어." 753 00:52:11,000 --> 00:52:16,000 당신이 퀴즈에 가지고있는 중괄호 내부 754 00:52:16,000 --> 00:52:20,000 당신은 반환 유형이 있다는 것을 발견하면 발생할 경우 그 반환 유형 755 00:52:20,000 --> 00:52:25,000 함수가 아무것도 반환하지 않는 것을 의미 무효, 이외의 다른 무언가이다 756 00:52:25,000 --> 00:52:28,000 다음 확실히하고 싶은 한 가지가 쓰기 is 757 00:52:28,000 --> 00:52:33,000 함수의 끝 부분에 return 문 일종의. 758 00:52:33,000 --> 00:52:40,000 우리가 빈에서 작성 싶어서 돌아 가기,이 경우에, 우리는 빈을 올려 놓을 게요. 759 00:52:40,000 --> 00:52:44,000 그러나 당신은 어떻게이 문제를 접근해야 돼 대해 올바른 방법으로 생각하십니까? 760 00:52:44,000 --> 00:52:49,000 그리고 당신이 값을 반환해야 할 것을 상기시켜줍니다 761 00:52:49,000 --> 00:52:51,000 함수의 호출자 있습니다. 762 00:52:51,000 --> 00:52:54,000 >> 그래. >> [학생] 우리가 퀴즈에 코드를 쓸 때 스타일이 적용됩니까? 763 00:52:54,000 --> 00:52:58,000 들여 쓰기와 그런 얘기 등? >> [학생] 그래. 764 00:52:58,000 --> 00:53:00,000 아니, 많이. 765 00:53:00,000 --> 00:53:09,000 나는, -이 많은 우리가 당일에 퀴즈에 명확히 될만한 뭔가 생각 766 00:53:09,000 --> 00:53:15,000 하지만 일반적으로에 대한 걱정은 # 포함하고 그런거, 그것은 외부의 일종 이죠. 767 00:53:15,000 --> 00:53:17,000 [학생]는 당신의 손으로 쓴 코드를 주석해야하나요? 768 00:53:17,000 --> 00:53:19,000 당신이 손으로 쓴 코드를 주석해야합니까? 769 00:53:19,000 --> 00:53:24,000 당신은 일부 신용 카드에 대해 걱정되면 댓글 달기는 항상 좋은 770 00:53:24,000 --> 00:53:29,000 하거나 학년에 의도를 전달하고 싶습니다. 771 00:53:29,000 --> 00:53:33,000 하지만 다시, 퀴즈 자체와 퀴즈 날에 명확히합니다 772 00:53:33,000 --> 00:53:39,000 하지만 난 당신이 아니, 의견을 작성해야한다고 생각하지 않습니다. 773 00:53:39,000 --> 00:53:42,000 일반적으로,하지만 확실히 것들 않는 곳 774 00:53:42,000 --> 00:53:45,000 당신은 좋아하는 의사를 전달할 수 "내가 함께 갈 곳 야,이입니다." 775 00:53:45,000 --> 00:53:49,000 그리고 때때로 일부 신용 도움을 수 있습니다. 776 00:53:49,000 --> 00:53:51,000 좋아. 777 00:53:51,000 --> 00:53:53,000 >> 바질. 778 00:53:53,000 --> 00:53:56,000 [바질] INT 랭, 말, 선언의 차이점은 무엇입니까 779 00:53:56,000 --> 00:54:03,000 함수 내에서 변수를 선언 대 인수 또는 매개 변수에서? 780 00:54:03,000 --> 00:54:05,000 와우, 커피 기관을했다. 781 00:54:05,000 --> 00:54:07,000 [바질] 우리가 인자에 넣어하고자하는 일처럼. 782 00:54:07,000 --> 00:54:09,000 네, 좋은 질문입니다. 783 00:54:09,000 --> 00:54:11,000 당신은 어떻게 인자에 넣어하고자하는 일 선택하려면 어떻게해야합니까 784 00:54:11,000 --> 00:54:17,000 만약 당신이 함수의 내부에 어떻게해야 일 대? 785 00:54:17,000 --> 00:54:24,000 이 경우 우리는 인자로 다음을 모두 포함 786 00:54:24,000 --> 00:54:29,000 그들은 합계 기능을 사용할 것입니다 누구든지있는 것이니까 787 00:54:29,000 --> 00:54:32,000 그 일을 지정해야합니다. 788 00:54:32,000 --> 00:54:35,000 >> 합 기능은, 우리가 얘기처럼, 알 수있는 방법이 없습니다 789 00:54:35,000 --> 00:54:40,000 그것의 발신자 또는 사람에게서 얼마나 커지 배열이 합계 기능을 사용하고 있습니다. 790 00:54:40,000 --> 00:54:44,000 그렇게 배열이 얼마나 큰 알 방법이 없습니다. 791 00:54:44,000 --> 00:54:48,000 우리가 인자로 여기이 길이 통과하는 이유 792 00:54:48,000 --> 00:54:51,000 그렇게 우리가 기본적으로 함수의 호출자을 말하고 있다는 것을이기 때문입니다 793 00:54:51,000 --> 00:54:55,000 합 기능을 사용할 것입니다 누구든지 "이봐 요, 당신은 우리에게 배열을 제공해야합니까뿐만 아니라 794 00:54:55,000 --> 00:54:59,000 ints, 당신은 얼마나 큰 당신이 우리입니다 제공 한 배열 우리에게 얘기를 해. " 795 00:54:59,000 --> 00:55:03,000 [바질] 자 모두 명령 줄 인수 될 것인가? 796 00:55:03,000 --> 00:55:06,000 아뇨, 그건 당신이 함수에 전달한다고 실제 인수입니다. 797 00:55:06,000 --> 00:55:10,000 >> 내가 여기서 새로운 페이지를 보자. 798 00:55:10,000 --> 00:55:13,000 [바질]는 이름처럼 통과 - 것 799 00:55:13,000 --> 00:55:24,000 [네이트 H.] 내가 INT 메인이있을 경우 (무효) 800 00:55:24,000 --> 00:55:27,000 그리고, 아래쪽에있는 여기 내 반환 0에 내려 간다 801 00:55:27,000 --> 00:55:31,000 그리고 내가 합계 함수를 호출하고 싶을. 802 00:55:31,000 --> 00:55:42,000 내가하고 싶은 말은 INT X = 합계 (); 803 00:55:42,000 --> 00:55:46,000 합 기능을 사용하려면 제가 요약 할 두 배열에 통과해야 804 00:55:46,000 --> 00:55:51,000 와 배열의 길이는,이 곳이 어디 805 00:55:51,000 --> 00:55:54,000 내 말은, ints의 배열을 가지고 가정 806 00:55:54,000 --> 00:56:12,000 사실은 말 INT numbaz [] = 1, 2, 3, 807 00:56:12,000 --> 00:56:16,000 거기 구문을 해킹 사용 종류 808 00:56:16,000 --> 00:56:21,000 그리고 내가 어떻게하는 것이 합에 나는에 전달하려는 것 809 00:56:21,000 --> 00:56:27,000 numbaz과 3 번 모두 810 00:56:27,000 --> 00:56:30,000 "자, 여기가 당신이 합계 할 배열입니다."합계 기능을 알려주는 811 00:56:30,000 --> 00:56:34,000 "다음은 크기입니다." 812 00:56:34,000 --> 00:56:39,000 그게 말이나 돼? 그 질문에 대한 답변이 있습니까? 813 00:56:39,000 --> 00:56:42,000 >> 여러 가지 방법으로 우리가 주와 함께하는 일 평행하지 814 00:56:42,000 --> 00:56:44,000 우리가 명령 줄 인수를이있을 때. 815 00:56:44,000 --> 00:56:47,000 카이사르 암호문 같은 프로그램은 예를 들어, 그 필요 816 00:56:47,000 --> 00:56:53,000 명령 줄 인수가 아무 것도 할 수 없을 것입니다. 817 00:56:53,000 --> 00:56:57,000 당신이 어떤 키 사용하기를 말하지 않으면이 암호화하는 방법을 알고하지 않을 818 00:56:57,000 --> 00:57:03,000 또는 당신이 암호화 싶은 문자열을 말하지 않으면 말야. 819 00:57:03,000 --> 00:57:08,000 우리는 2 개의 다른 메커니즘이있어 위치를 입력하라는 메시지에 대해, 이쪽은 820 00:57:08,000 --> 00:57:14,000 사용자의에서 정보를 주셔서, 사용자의에서 입력을 복용하십시오. 821 00:57:14,000 --> 00:57:19,000 문제는 1 세트에 대해 우리는이 GetInt, GetString, GetFloat 방법을 보았다 822 00:57:19,000 --> 00:57:26,000 입력을하라는 메시지를, 그는 표준 입력 스트림을 사용하여 이름이야. 823 00:57:26,000 --> 00:57:28,000 그것은 약간의 차이가 있습니다. 824 00:57:28,000 --> 00:57:31,000 그것은 반대로 한 번에 할 수있는 뭔가가 825 00:57:31,000 --> 00:57:35,000 이 프로그램이 실행 시작할 때 프로그램을 호출합니다. 826 00:57:35,000 --> 00:57:41,000 당신이 프로그램 실행을 시작할 때 명령 줄 인자가 모두 지정됩니다. 827 00:57:41,000 --> 00:57:47,000 우리는 사람들의 두 혼합 있었어요. 828 00:57:47,000 --> 00:57:52,000 우리가 함수에 인수를 사용하는 경우 많은 주에 명령 줄 인자 같은거야. 829 00:57:52,000 --> 00:57:56,000 당신은 당신이 그것을 말할 필요 기능을 호출 때입니다 830 00:57:56,000 --> 00:58:05,000 그것은 그 작업을 수행하기 위해 필요로 정확히. 831 00:58:05,000 --> 00:58:08,000 에서와 확인하는 당신이 여가 시간에 그것을 바라 보는 또 다른 좋은 일 832 00:58:08,000 --> 00:58:11,000 그리고이에서 설명 된 범위의 개념 퀴즈는 -이었다 833 00:58:11,000 --> 00:58:15,000 와 전역 변수 대 지역 변수. 834 00:58:15,000 --> 00:58:18,000 에게 관심을 지불 마십시오. 835 00:58:18,000 --> 00:58:23,000 >> 우리는이 다른 것들에지고있어 이젠 836 00:58:23,000 --> 00:58:27,000 주 3에 우리는 검색 및 정렬에 대해 얘기 시작했다. 837 00:58:27,000 --> 00:58:32,000 적어도 CS50에서 검색 및 정렬 838 00:58:32,000 --> 00:58:39,000 많이는 컴퓨터 과학 분야의 많은 이론 부분의 일부를 소개합니다. 839 00:58:39,000 --> 00:58:42,000 검색의 문제, 정렬의 문제 840 00:58:42,000 --> 00:58:46,000 큰 캐 노니 컬 문제입니다. 841 00:58:46,000 --> 00:58:52,000 어떻게 정수 수십억의 배열에서 특정 번호를 찾으려면 어떻게해야합니까? 842 00:58:52,000 --> 00:58:55,000 어떻게 전화 번호부 안에 특정 이름을 찾을 수 있습니까 843 00:58:55,000 --> 00:58:59,000 그는 노트북에 저장된거야? 844 00:58:59,000 --> 00:59:04,000 그래서 우리는 점근 실행 시간의 개념을 소개 845 00:59:04,000 --> 00:59:11,000 정말 얼마나 오랫동안 이러한 문제가 얼마나 어려운 수량화하는 것은, 846 00:59:11,000 --> 00:59:14,000 얼마나 오랫동안 그들이 해결하는 데. 847 00:59:14,000 --> 00:59:20,000 2011의 퀴즈, 나는 생각에 나는 이점 생각하는 문제가 848 00:59:20,000 --> 00:59:27,000 이 사람이 문제가 12있는 매우 빨리 덮어 버렸습니다. 849 00:59:27,000 --> 00:59:32,000 노 O, 그것은 오메가입니다. 850 00:59:32,000 --> 00:59:41,000 >> 여기 가장 빠른 실행 시간에 대해 얘기하고 851 00:59:41,000 --> 00:59:46,000 특정 알고리즘 및 다음 느린 가능한 런타임. 852 00:59:46,000 --> 00:59:52,000 이 오메가와 O 단지 바로 가기입니다. 853 00:59:52,000 --> 00:59:55,000 그들은 말에 notational 바로 가기이야 854 00:59:55,000 --> 00:59:59,000 얼마나 빨리 최선의 경우에 의지의 알고리즘 실행, 855 00:59:59,000 --> 01:00:06,000 방법과 최악의 경우에 느린 우리의 알고리즘은 실행됩니다? 856 01:00:06,000 --> 01:00:10,000 이들 중 몇을하자,이 또한 적용되었습니다 857 01:00:10,000 --> 01:00:13,000 제가 매우 추천 점근 표기법에 짧은 인치 858 01:00:13,000 --> 01:00:17,000 잭슨은 정말 훌륭한 일을 했어. 859 01:00:17,000 --> 01:00:23,000 이진 검색을 통해, 우리는 알고리즘로서 이진 검색에 대해 이야기 860 01:00:23,000 --> 01:00:28,000 우리는 일반적으로는 큰 O.의 관점에서 이야기 861 01:00:28,000 --> 01:00:30,000 큰 O는 무엇입니까? 862 01:00:30,000 --> 01:00:34,000 이진 검색의 가장 느린 가능한 런타임은 무엇입니까? 863 01:00:34,000 --> 01:00:36,000 [학생] N ²? 864 01:00:36,000 --> 01:00:41,000 닫기, 그와 유사한 같아요. 865 01:00:41,000 --> 01:00:43,000 그것은 훨씬 빨리보다입니다. 866 01:00:43,000 --> 01:00:45,000 [학생] 이진? >> 네, 이진 검색 할 수 있습니다. 867 01:00:45,000 --> 01:00:47,000 [학생]이 로그 N입니다. 868 01:00:47,000 --> 01:00:49,000 로그인 N 무슨 뜻 이죠 따라서 n을 로그? 869 01:00:49,000 --> 01:00:51,000 그것은 그것을 각각의 반복을 절반. 870 01:00:51,000 --> 01:00:56,000 맞아요, 그래서 느린 가능한 경우에, 871 01:00:56,000 --> 01:01:00,000 당신이 정렬 배열이 있으면 말 872 01:01:00,000 --> 01:01:08,000 만 정수와 번호가 찾고 873 01:01:08,000 --> 01:01:14,000 두 배열의 배열 또는 매우 마지막 요소의 첫 요소입니다. 874 01:01:14,000 --> 01:01:18,000 단, 이진 검색 알고리즘은 중간 요소를보고하는 방식으로 작동 875 01:01:18,000 --> 01:01:21,000 그게 당신이 찾고있는 일치하는지보고. 876 01:01:21,000 --> 01:01:23,000 그 다음, 큰 경우, 당신이 발견했다. 877 01:01:23,000 --> 01:01:27,000 >> 최선의 경우에, 얼마나 빠르게하는 이진 검색 실행합니까? 878 01:01:27,000 --> 01:01:29,000 [학생] 1. 879 01:01:29,000 --> 01:01:32,000 하나는, 1 큰 O 일정한 시간이다. 그래. 880 01:01:32,000 --> 01:01:36,000 [학생] 질문이 있습니다. 당신이 N의 로그인 말할 때, 바로,베이스 2와 관련하여 말인가요? 881 01:01:36,000 --> 01:01:40,000 예, 그래서는 다른 것입니다. 882 01:01:40,000 --> 01:01:44,000 우리는 로그 n을 말 내가 고등학교 때 엔 883 01:01:44,000 --> 01:01:48,000 항상 로그 기지 ​​10라고 생각 했었습니다. 884 01:01:48,000 --> 01:01:57,000 네, 네 있으므로,베이스 2 일반적으로 우리가 사용하는 것입니다 로그온합니다. 885 01:01:57,000 --> 01:02:02,000 당신도를 검색하는 경우 다시, 이진 검색으로 돌아 간다 886 01:02:02,000 --> 01:02:05,000 맨 끝에서 요소 나 처음의 요소 887 01:02:05,000 --> 01:02:08,000 당신이 중간에 시작하고 있기 때문에 다음은 폐기 888 01:02:08,000 --> 01:02:13,000 중 이분의 일하면 당신이 찾고있는 기준을 충족하지 못하는, 889 01:02:13,000 --> 01:02:15,000 당신은 다음 반 다음 반 다음 절반 이동합니다. 890 01:02:15,000 --> 01:02:19,000 나는 백만 정수 배열에서 가장 큰 요소를 찾고 있어요 경우 891 01:02:19,000 --> 01:02:25,000 나는 1 만 회 대부분의 로그에서이 반으로 줄어들거야 892 01:02:25,000 --> 01:02:28,000 드디어 테스트하고 요소가 내가 찾는 것을 볼 전에 893 01:02:28,000 --> 01:02:33,000 , 가장 큰 또는 배열의 가장 높은 색인에 894 01:02:33,000 --> 01:02:38,000 그리고 1 백만 배의 로그인 n의 로그를 취할 것입니다. 895 01:02:38,000 --> 01:02:40,000 >> 버블 정렬. 896 01:02:40,000 --> 01:02:43,000 너희들은 버블 정렬 알고리즘을 기억하십니까? 897 01:02:43,000 --> 01:02:47,000 케빈, 당신은 내게 버블 정렬 알고리즘에서 무슨 일이 있었는지에 대한 간단한 뉴스 레터를 살펴을 제공 할 수 있습니까? 898 01:02:47,000 --> 01:02:50,000 [케빈] 기본적으로이 목록에 모든 걸 뚫어. 899 01:02:50,000 --> 01:02:52,000 그것은 처음 두 본다. 900 01:02:52,000 --> 01:02:55,000 첫 번째는 두 번째가 스왑을보다 큰 경우. 901 01:02:55,000 --> 01:02:58,000 그럼 두 번째 및 세 번째, 같은 일, 스왑을 비교 902 01:02:58,000 --> 01:03:00,000 세 번째와 네 번째, 완전히 아래로. 903 01:03:00,000 --> 01:03:03,000 큰 숫자가 마지막까지 따라합니다. 904 01:03:03,000 --> 01:03:07,000 그리고 그러나 많은 루프 후이 완료됩니다. 905 01:03:07,000 --> 01:03:11,000 맞아요, 그래서 뭐가 케빈이 말한 건 우리가 더 큰 숫자를 보게 될거야 있다는 것입니다 906 01:03:11,000 --> 01:03:15,000 배열의 끝으로 거품까지. 907 01:03:15,000 --> 01:03:19,000 이것이 우리의 배열 인 경우 예를 들어,이 예제를 통해 우리가 걸어 줄래? 908 01:03:19,000 --> 01:03:21,000 [케빈] 당신은 2를, 3됩니다. 909 01:03:21,000 --> 01:03:23,000 3은 2보다 더 큰, 그래서 그들을 교환. 910 01:03:23,000 --> 01:03:29,000 [네이트 H.]는 오른쪽, 그래서 우리는이를 교환하고, 그래서 우리는, 3, 4 6 2 받고, 9. 911 01:03:29,000 --> 01:03:31,000 [케빈] 그럼 당신은 3, 6을 비교합니다. 912 01:03:31,000 --> 01:03:33,000 3는 6보다 작은, 그래서 당신은 그들을 떠나 913 01:03:33,000 --> 01:03:37,000 4 6보다 작은이기 때문에, 6, 4, 당신이 그들을 교환 할. 914 01:03:37,000 --> 01:03:42,000 [네이트 H.] 네, 그래서 2, 3, 4, 6, 9를. 915 01:03:42,000 --> 01:03:46,000 [케빈] 그리고 9 6보다 더 큰, 그래서 당신은 그것을 두십시오. 916 01:03:46,000 --> 01:03:48,000 그리고 당신은 다시 한 번 돌아 갈거야. 917 01:03:48,000 --> 01:03:50,000 >> 저는이 시점에서 [네이트 H.]를 못해? >> [케빈] 번호 918 01:03:50,000 --> 01:03:52,000 그리고 왜이 시점에서 완료하지 이유는 무엇입니까? 919 01:03:52,000 --> 01:03:54,000 내 배열이 정렬됩니다 것 같은데 때문입니다. 나는보고있어. 920 01:03:54,000 --> 01:03:57,000 [케빈] 다시 한 번 가서 더 이상 스왑가 있는지 확인 921 01:03:57,000 --> 01:04:00,000 당신은 완전히 중단 할 수 있습니다 전에. 922 01:04:00,000 --> 01:04:04,000 맞아요, 그래서 당신은을 통해 계속되며 스왑이 없는지 확인해야합니다 923 01:04:04,000 --> 01:04:06,000 이 시점에서 할 수 있는지 확인하십시오. 924 01:04:06,000 --> 01:04:08,000 당신이 말한 것처럼 우리가 결국 것을 정말 운이 좋았어 925 01:04:08,000 --> 01:04:12,000 만 1 ~ 패스를 만들기 위해 필요하고 우리는 정렬하고 있습니다. 926 01:04:12,000 --> 01:04:16,000 그러나 일반적인 경우에는이 작업을 수행하는, 우리가 실제로 다시 이상이 작업을 수행해야합니다. 927 01:04:16,000 --> 01:04:20,000 그리고 사실,이 최선의 가지 경우의 예였다 928 01:04:20,000 --> 01:04:24,000 처럼 우리는이 문제에 보았다. 929 01:04:24,000 --> 01:04:28,000 우리는 최선의 사건 습니 것을 보았다. 930 01:04:28,000 --> 01:04:32,000 우리는 배열 1 회 통과했다. 931 01:04:32,000 --> 01:04:35,000 이 알고리즘에 대한 최악의 경우는 무엇입니까? 932 01:04:35,000 --> 01:04:37,000 [케빈] N ². 933 01:04:37,000 --> 01:04:41,000 그리고 그 표정은 무엇을 좋아합니까? 어떤 배열 모습 그런 식으로 N 개의 ² 시간을 걸릴거야까요? 934 01:04:41,000 --> 01:04:43,000 [케빈] [안 들리게] 정렬. 935 01:04:43,000 --> 01:04:51,000 나는 어레이 (9), 7, 6, 5, 2, 가지고 정확히 그래, 그러니 경우 936 01:04:51,000 --> 01:04:54,000 먼저 9까지 거품이 모든 방법을 평가한다면. 937 01:04:54,000 --> 01:04:59,000 한 반복 한 후 우리는 7, 6, 5, 2, 9이있을 것이다. 938 01:04:59,000 --> 01:05:07,000 그런 다음 7까지 거품, 6, 5, 2, 7, 9 등 등등한다면. 939 01:05:07,000 --> 01:05:13,000 >> 우리는 전체 배열 n 번 통과해야 할 940 01:05:13,000 --> 01:05:16,000 당신은 실제로 이것보다 조금 더 정확한 얻을 수 있습니다 941 01:05:16,000 --> 01:05:23,000 일단은 마지막으로 가능한 위치로까지 9 모든 방법을 이동 한 때문 942 01:05:23,000 --> 01:05:26,000 우리는 다시 요소 비교해야 할 적이 없다는 것을 알고 있습니다. 943 01:05:26,000 --> 01:05:29,000 일단 우리는 7 품어 시작 944 01:05:29,000 --> 01:05:35,000 우리는 7 바로 9 이전되면 우리가 중지 수 있다는 것을 알고 945 01:05:35,000 --> 01:05:37,000 우리는 이미 여기에 9를 비교 한 때문입니다. 946 01:05:37,000 --> 01:05:46,000 당신은 똑똑한 방법으로이 작업을 수행하는 경우는, 그런 것 같아요 정말 시간이 많이 없습니다. 947 01:05:46,000 --> 01:05:49,000 당신은 모든 가능한 [안 들리게] 조합을 비교 할 수 없어 948 01:05:49,000 --> 01:05:55,000 매번 당신은 각각의 반복을 통해 이동합니다. 949 01:05:55,000 --> 01:05:59,000 그러나 아직 우리가이 상단 바운드에 대해 이야기 할 때 우리는 말의 뜻 950 01:05:59,000 --> 01:06:04,000 당신은 N 쳐다 보는거야 ² 비교가 모든 방법으로. 951 01:06:04,000 --> 01:06:12,000 >> 우리는 시간에 조금 짧은 모이기 시작부터 돌아 가자, 그리고 952 01:06:12,000 --> 01:06:15,000 당신이 확실히이 테이블의 나머지 부분을 통과해야한다고 것 953 01:06:15,000 --> 01:06:17,000 모든을 작성하십시오. 954 01:06:17,000 --> 01:06:20,000 예를 생각하십시오. 콘크리트 예를 생각하십시오. 955 01:06:20,000 --> 01:06:22,000 그래서 할 정말 편리하고 유용합니다. 956 01:06:22,000 --> 01:06:25,000 한번립니다. 957 01:06:25,000 --> 01:06:28,000 이 테이블의 종류입니다 당신은 컴퓨터 과학에 통과 958 01:06:28,000 --> 01:06:32,000 당신은 정말이의 마음을 알고 시작해야합니다. 959 01:06:32,000 --> 01:06:34,000 이는 인터뷰에 들어가 질문의 종류입니다. 960 01:06:34,000 --> 01:06:36,000 이것들은 알고 좋은 일들 종류의 아르 961 01:06:36,000 --> 01:06:41,000 와 정말 생각하는 방법을 알아 냈어, 그 가장자리의 경우 생각 962 01:06:41,000 --> 01:06:45,000 버블에 대한 최악의 배열을 정렬하는 알고 963 01:06:45,000 --> 01:06:52,000 그와 함께 정렬하는 것은 반대 순서에 하나입니다. 964 01:06:52,000 --> 01:06:58,000 >> 포인터. 가 포인터에 대해 조금 얘기합시다. 965 01:06:58,000 --> 01:07:03,000 지난 몇 분 후에 우리가 여기 있습니다 966 01:07:03,000 --> 01:07:11,000 이런 일이 I / O 그게 좀 새로운 파일과 함께 뭔가 알아. 967 01:07:11,000 --> 01:07:19,000 우리는 포인터에 대해 우리가 포인터에 대해 얘기 할 수있는 이유를 이야기 할 때 968 01:07:19,000 --> 01:07:24,000 우리가 C에서 작업에, 때문입니다 969 01:07:24,000 --> 01:07:33,000 우리는 가장 현대적인 프로그래밍 언어에 비해 매우 낮은 수준에 정말입니다. 970 01:07:33,000 --> 01:07:38,000 우리는 실제로 메모리에 변수를 조작 할 수 971 01:07:38,000 --> 01:07:43,000 그들이 실제로 RAM에 위치한 곳으로 파악. 972 01:07:43,000 --> 01:07:46,000 일단 당신이 볼 운영 체제 수업을에 갔어요 973 01:07:46,000 --> 01:07:48,000 그 사람들은 다시 추상화의 종류입니다. 974 01:07:48,000 --> 01:07:50,000 그래서 실제로 경우 없습니다. 975 01:07:50,000 --> 01:07:52,000 우리는 우리의 이러한 세부 사항을 숨기고 있어요 가상 메모리있어. 976 01:07:52,000 --> 01:07:58,000 >> 당신은 프로그램을했을 때 지금 당신은 그렇게 생각할 수 977 01:07:58,000 --> 01:08:02,000 예를 들어, 시작 때 시저 암호 프로그램을 실행 978 01:08:02,000 --> 01:08:06,000 정말 신속하게, 내 아이 패드로 다시 전환됩니다 979 01:08:06,000 --> 01:08:12,000 이 경우 매우 시작 프로그램에,,, 말 것을 980 01:08:12,000 --> 01:08:15,000 노트북에 RAM의 4기가바이트, 981 01:08:15,000 --> 01:08:21,000 이 덩어리를 따로 설정되면, 우리는이 RAM 전화 할께. 982 01:08:21,000 --> 01:08:25,000 그리고, 우리가 0에 전화를하고있는 곳에서 시작 983 01:08:25,000 --> 01:08:30,000 그리고 우리는 4 기가 바이트 부를 수있는 장소에 끝납니다. 984 01:08:30,000 --> 01:08:37,000 정말 쓸 수 없습니다. 이봐 요, 그이 해킹되어 있습니다. 985 01:08:37,000 --> 01:08:40,000 프로그램이 실행되면 986 01:08:40,000 --> 01:08:44,000 운영 시스템은 RAM을 새겨 987 01:08:44,000 --> 01:08:51,000 그리고 살기 프로그램의 다른 부분에 대해 서로 다른 세그먼트를 지정합니다 988 01:08:51,000 --> 01:08:58,000 여기에이 지역은 무인의 땅 종류입니다. 989 01:08:58,000 --> 01:09:02,000 당신은 멀리 여기 좀을 갈 때 990 01:09:02,000 --> 01:09:05,000 당신은 실제로있는 곳이 있어요 곳 991 01:09:05,000 --> 01:09:09,000 프로그램 생활에 대한 코드입니다. 992 01:09:09,000 --> 01:09:13,000 그 실제 바이너리 코드는 해당 실행 파일은 실제로 메모리에로드됩니다 993 01:09:13,000 --> 01:09:17,000 당신은 프로그램을 실행하고,이 코드 세그먼트에 거주합니다. 994 01:09:17,000 --> 01:09:22,000 프로그램이 실행으로 그리고 프로세서는이 코드 세그먼트을보고 995 01:09:22,000 --> 01:09:24,000 파악하기 위해 다음 명령어는 무엇인가? 996 01:09:24,000 --> 01:09:27,000 제가 실행해야 할 코드의 다음 행은 무엇입니까? 997 01:09:27,000 --> 01:09:31,000 >> 이 데이터 세그먼트는, 그리고이 곳 그 문자열 상수입니다 998 01:09:31,000 --> 01:09:34,000 사용 된 것으로 저장됩니다. 999 01:09:34,000 --> 01:09:42,000 그리고 멀리까지 힙라는 곳이 있어요. 1000 01:09:42,000 --> 01:09:46,000 우리는 malloc을 사용하여 거기에 메모리를 액세스 1001 01:09:46,000 --> 01:09:49,000 다음 프로그램의 상단을 향해 1002 01:09:49,000 --> 01:09:52,000 스택이있어 1003 01:09:52,000 --> 01:09:57,000 우리가 처음의 대부분은 친 것 어디서 고. 1004 01:09:57,000 --> 01:09:59,000 이 규모 나 아무 것도하지 않는 것입니다. 1005 01:09:59,000 --> 01:10:03,000 이 많은 매우 기계 따라 달라집니다 1006 01:10:03,000 --> 01:10:10,000 시스템이 따라 운영하지만,이 일이 최대 청크 분할하기 비교적 방법입니다. 1007 01:10:10,000 --> 01:10:17,000 당신은 프로그램을 실행하고라는 X-변수를 선언 할 때 1008 01:10:17,000 --> 01:10:27,000 나는이 아래에 또 다른 상자를 그릴거야,이 역시 RAM 될 것입니다. 1009 01:10:27,000 --> 01:10:29,000 그리고 볼거야. 1010 01:10:29,000 --> 01:10:34,000 우리는이 방금 RAM의 작은 섹션을 나타냅니다 가변 라인을 그려 줄께요 1011 01:10:34,000 --> 01:10:38,000 그리고 모든 우리는 상단에 그려하지는 않습니다. 1012 01:10:38,000 --> 01:10:43,000 >> 나는 X라는 정수 변수를 선언하는 경우 1013 01:10:43,000 --> 01:10:49,000 그리고 내가 실제로 걸어 매핑입니다 1014 01:10:49,000 --> 01:10:54,000 내 프로그램의 심볼 테이블에 저장되는 1015 01:10:54,000 --> 01:11:00,000 그건 내가 그린 한 메모리의 영역에 이름 X를 연결 1016 01:11:00,000 --> 01:11:03,000 여기에 수직 막대 사이. 1017 01:11:03,000 --> 01:11:08,000 I는 x = 7 할거 프로그램에 코드 한 줄이있는 경우 1018 01:11:08,000 --> 01:11:15,000 프로세서는 알고 "오, 그래, 나도 알아 메모리에이 위치에서의 x의 삶." 1019 01:11:15,000 --> 01:11:25,000 "내가 가서 거기에 7을 써야 겠어." 1020 01:11:25,000 --> 01:11:28,000 어떻게이 메모리에 어떤 위치 알 수 있습니까? 1021 01:11:28,000 --> 01:11:30,000 음, 모든 컴파일 시간에 다 됐어. 1022 01:11:30,000 --> 01:11:34,000 변수의 각 가게 곳 컴파일러는 할당을 담당 1023 01:11:34,000 --> 01:11:40,000 그리고 특별한 매핑을 만들거나 오히려 점을 연결 1024 01:11:40,000 --> 01:11:43,000 상징하고 가고있어, 변수의 이름 사이 1025 01:11:43,000 --> 01:11:46,000 하고 메모리에서 살고있는 곳. 1026 01:11:46,000 --> 01:11:50,000 그러나 우리가 실제로뿐만 아니라 우리의 프로그램에 액세스 할 수 있는지 밝혀졌다. 1027 01:11:50,000 --> 01:11:55,000 우리가 데이터 구조의 일부에 대해 얘기 시작하면이 중요 도착 1028 01:11:55,000 --> 01:11:58,000 그건 우리가 나중에 소개 할거야하는 개념이다. 1029 01:11:58,000 --> 01:12:09,000 >> 하지만 지금은 당신이 알 수는 내가이 위치에 x를 포인터를 만들 수 있다는 것입니다. 1030 01:12:09,000 --> 01:12:12,000 예를 들어, 나는 포인터 변수를 만들 수 있습니다. 1031 01:12:12,000 --> 01:12:16,000 우리는 포인터 변수를 생성 할 때 우리는 스타 표기법을 사용합니다. 1032 01:12:16,000 --> 01:12:21,000 이 경우,이 내가 정수에 대한 포인터를 만들거다 말합니다. 1033 01:12:21,000 --> 01:12:24,000 단지 다른 같은 형식입니다. 1034 01:12:24,000 --> 01:12:27,000 우리는 그것을 Y와 같은 변수를 제공 1035 01:12:27,000 --> 01:12:32,000 그리고 우리는 주소, 주소가 동일 설정합니다. 1036 01:12:32,000 --> 01:12:38,000 이 경우, 우리는 x를 가리 키도록 Y를 설정할 수 있습니다 1037 01:12:38,000 --> 01:12:43,000 이 앰퍼샌드와 함께 우리가 할 x의 주소를 취하여, 1038 01:12:43,000 --> 01:12:55,000 그리고 우리가 가리 Y를 설정합니다. 1039 01:12:55,000 --> 01:12:59,000 우리 RAM 보면이 본질적으로 무엇인가 않습니다 1040 01:12:59,000 --> 01:13:02,000 이 별도의 변수를 만듭니다. 1041 01:13:02,000 --> 01:13:04,000 마치 Y 전화 할거야 1042 01:13:04,000 --> 01:13:06,000 및 코드의 라인은 실행시 1043 01:13:06,000 --> 01:13:13,000 실제로, 우리는 일반적으로 화살표로 그려 약간 포인터를 만들거야 1044 01:13:13,000 --> 01:13:15,000 그리고는 x를 가리 키도록 Y 설정합니다. 1045 01:13:15,000 --> 01:13:17,000 예. 1046 01:13:17,000 --> 01:13:19,000 X 이미 포인터 인 경우 [학생]은, 당신은 할 것 1047 01:13:19,000 --> 01:13:22,000 INT * Y = X 대신 앰퍼샌드를 갖는? 1048 01:13:22,000 --> 01:13:24,000 예. 1049 01:13:24,000 --> 01:13:27,000 x는 이미 포인터 인 경우 당신은 서로 같은 두 포인터를 설정할 수 있습니다 1050 01:13:27,000 --> 01:13:30,000 이 경우 y는, X 가리 안 1051 01:13:30,000 --> 01:13:34,000 하지만를 가리키는 어떤 x에 지정됩니다. 1052 01:13:34,000 --> 01:13:37,000 불행하게도, 우리는 시간이 없어. 1053 01:13:37,000 --> 01:13:44,000 >> 나는이 시점에서 말하는대로, 우리는이 오프라인 얘기 할 수 1054 01:13:44,000 --> 01:13:49,000 하지만 저는이 문제를 통해 # 14 작업을 시작 말 것입니다. 1055 01:13:49,000 --> 01:13:53,000 당신은 당신으로 채워 약간의는 이미 여기에있다 볼 수 있습니다. 1056 01:13:53,000 --> 01:13:57,000 우리는이 포인터를 선언 할 때 당신은 그렇게을 볼 수 INT * X와 * y, 1057 01:13:57,000 --> 01:14:01,000 그리고 변수 옆에있는 *를 가리키고주의는 작년 이루어졌다 것이었다. 1058 01:14:01,000 --> 01:14:05,000 그것은이 우리가 올해 무슨 짓과 유사하다고 밝혀졌다. 1059 01:14:05,000 --> 01:14:11,000 당신은 포인터를 선언 할 때 당신은 *을 쓸 곳 중요하지 않습니다. 1060 01:14:11,000 --> 01:14:17,000 그러나 우리는 유형 옆에있는 *를 작성했습니다 1061 01:14:17,000 --> 01:14:24,000 매우 분명 당신은 포인터 변수를 선언한다는 만드는 그 때문입니다. 1062 01:14:24,000 --> 01:14:27,000 당신은 2 포인터를 선언하는 것은 우리에게 두 상자를 제공합니다 것을 알 수 있습니다. 1063 01:14:27,000 --> 01:14:31,000 여기 malloc와 같은 X를 설정할 때 1064 01:14:31,000 --> 01:14:34,000 무슨 말을하는 것은 힙에 메모리를 따로 설정되어 있습니다. 1065 01:14:34,000 --> 01:14:41,000 바로 여기이 작은 상자,이 원은 힙에 자리 잡고 있습니다. 1066 01:14:41,000 --> 01:14:43,000 X는을 가리키고 있습니다. 1067 01:14:43,000 --> 01:14:46,000 y는 여전히 아무 가리키는되지 않습니다. 1068 01:14:46,000 --> 01:14:50,000 얻으려면 메모리를 - 투 X에 숫자 인 42를 저장 1069 01:14:50,000 --> 01:14:55,000 우리가 뭘 표기법을 사용해야합니까? 1070 01:14:55,000 --> 01:14:59,000 [학생] * X = 42. 1071 01:14:59,000 --> 01:15:01,000 맞아요, * X = 42. 1072 01:15:01,000 --> 01:15:06,000 그 화살표를 따라 거기에 42 던져 의미합니다. 1073 01:15:06,000 --> 01:15:09,000 여기에 우리가 y와 x를 설정 우린 어디로 Y X를 가리키고 있습니다. 1074 01:15:09,000 --> 01:15:13,000 다시 말하지만,이 우리가 x에 y를 동일한 설정 위치 케빈 말을 좋아합니다. 1075 01:15:13,000 --> 01:15:15,000 Y는 X를 가리키는되지 않습니다. 1076 01:15:15,000 --> 01:15:19,000 오히려, 그것은 x는뿐만 아니라를 가리키는 무엇을 가리키는있어. 1077 01:15:19,000 --> 01:15:24,000 >> 그리고 마지막으로이 마지막 상자에서 우리가 할 수있는 두 가지 경우가 있습니다. 1078 01:15:24,000 --> 01:15:28,000 하나는 우리가 * X = 13 말할 수 있습니다. 1079 01:15:28,000 --> 01:15:33,000 다른 건 우리가 말하는 알렉스, 당신이 우리가 할 일을 알고 할 수 있습니다? 1080 01:15:33,000 --> 01:15:37,000 당신은 말할 수 * X = 13 또는 1081 01:15:37,000 --> 01:15:41,000 [학생] 당신은 INT 어떤 말을 수 있습니다. 1082 01:15:41,000 --> 01:15:45,000 [네이트 H.]이는 정수 변수로 지칭 된 경우 우리가 그렇게 할 수 있습니다. 1083 01:15:45,000 --> 01:15:49,000 우리는 또한 * Y = 13 둘 다 같은 곳을 가리키는 있기 때문에, 말을 할 수 1084 01:15:49,000 --> 01:15:51,000 그래서 우리는 거기까지 두 변수를 사용할 수 있습니다. 1085 01:15:51,000 --> 01:15:56,000 그래. >> [학생] 우리가 INT X 13 말하는 경우처럼 어떤 보이 겠어? 1086 01:15:56,000 --> 01:16:00,000 그런 일을하지 않을 X라는 새로운 변수를 선언됩니다. 1087 01:16:00,000 --> 01:16:04,000 우리가 여기서 x는 여기 포인터까지 선언 때문에 충돌이있을 것이다. 1088 01:16:04,000 --> 01:16:10,000 [학생] 우리가 자체로 그 진술이 있다면 그 원의 관점에서 어떻게 생겼 겠어요? 1089 01:16:10,000 --> 01:16:14,000 우리는 X가 있다면 = 13 그런 다음에 우리가 상자를 가지고 있고, 오히려 화살을 갖는 것보다 할 1090 01:16:14,000 --> 01:16:16,000 상자에서 나오는 우리는 13로 그리는거야. 1091 01:16:16,000 --> 01:16:19,000 상자에서 [학생]. 좋아요. 1092 01:16:19,000 --> 01:16:24,000 >> 시청 해 주​​셔서 감사합니다, 그리고 퀴즈 공에 행운을 빌어 요. 1093 01:16:24,000 --> 01:16:28,000 [CS50.TV]