1 00:00:00,000 --> 00:00:10,940 2 00:00:10,940 --> 00:00:13,060 >> 데이비드 J 마란 : 모든 좋아요,이 CS50입니다. 3 00:00:13,060 --> 00:00:15,040 그리고 이것은 분명히 금요일입니다. 4 00:00:15,040 --> 00:00:16,850 그리고 이것은 일주일의 끝입니다. 5 00:00:16,850 --> 00:00:21,020 그래서 우리가 그만 둔 것을 기억 할 수있다, 종류의 클리프 행어와 마지막 시간. 6 00:00:21,020 --> 00:00:25,020 이에 우리는이 거짓말을 노출시키지 아니 그 문제 성장 당신이 배운 것을 7 00:00:25,020 --> 00:00:31,610 , 최대 10로 나눈 1 년,하지 사실, 0.1 0.100 또는 0.10000. 8 00:00:31,610 --> 00:00:35,270 사실, 만약 우리에게이 컴파일 프로그램, 우리가 어제 함께했던 것처럼, 9 00:00:35,270 --> 00:00:39,770 부정확를 확인한 다음 점을, 슬래시, 부정확성, 10 00:00:39,770 --> 00:00:43,600 우리는 이것이 무엇이라고 배웠습니다 (1)는 실제로 10로 나눈. 11 00:00:43,600 --> 00:00:46,140 그래서 정말 아주 그렇지 않다. 12 00:00:46,140 --> 00:00:49,014 그러나 이것은 몇 가지 힌트를 않습니다 컴퓨터의 기본적인 제한. 13 00:00:49,014 --> 00:00:50,930 그리고 실제로, 중 일이 우리가 할거야 14 00:00:50,930 --> 00:00:55,130 오늘은이 이유를 살펴입니다 일,이 무슨 의미, 15 00:00:55,130 --> 00:00:58,430 인류에 오류가 발생했습니다 방법 매우 이것을 이해하기 16 00:00:58,430 --> 00:01:00,410 심각한 situations-- 결과 17 00:01:00,410 --> 00:01:03,141 아주 비극적이었다 또한 expensive--과 18 00:01:03,141 --> 00:01:04,849 우리는 방법을 살펴 실제로 방어 할 수 19 00:01:04,849 --> 00:01:06,530 제한 이러한 종류의에 대하여. 20 00:01:06,530 --> 00:01:10,940 그래서 직관적으로, 아마도, 왜 1가 10로 나눈, 21 00:01:10,940 --> 00:01:15,480 내 컴퓨터에 따라 여기서, 단지 1/10, 0.10? 22 00:01:15,480 --> 00:01:15,980 그래. 23 00:01:15,980 --> 00:01:16,530 어떻게 생각해? 24 00:01:16,530 --> 00:01:17,860 >> 청중 : 기수가 다른가요? 25 00:01:17,860 --> 00:01:18,550 >> 데이비드 J 마란 : 무엇인가? 26 00:01:18,550 --> 00:01:19,730 아, 기수는 다른가요? 27 00:01:19,730 --> 00:01:20,720 그래서 확실히. 28 00:01:20,720 --> 00:01:23,200 그것은 실제로 더 하드웨어에 기본. 29 00:01:23,200 --> 00:01:23,980 다른 생각? 30 00:01:23,980 --> 00:01:24,584 그래. 31 00:01:24,584 --> 00:01:26,750 청중 : 그들은 다른 숫자를 표현? 32 00:01:26,750 --> 00:01:27,880 데이비드 J 마란 : 그래서 있는거야 오른쪽. 33 00:01:27,880 --> 00:01:29,338 그들은 다른 번호를 나타냅니다. 34 00:01:29,338 --> 00:01:30,700 부정확, 분명히. 35 00:01:30,700 --> 00:01:33,190 글쎄, is-- 있도록 다른 무엇으로부터? 36 00:01:33,190 --> 00:01:34,490 아니면 누구부터? 37 00:01:34,490 --> 00:01:35,050 미국의? 38 00:01:35,050 --> 00:01:35,966 청중 : 네. 39 00:01:35,966 --> 00:01:38,930 그들은 소수를 사용하지 않는 [들림]에 시스템. 40 00:01:38,930 --> 00:01:39,680 데이비드 J 마란 : OK. 41 00:01:39,680 --> 00:01:41,560 의미 그래서, 그들은하지 않습니다 십진법을 사용합니다. 42 00:01:41,560 --> 00:01:43,720 후드 아래, 모든 것이, 참으로, 이진 43 00:01:43,720 --> 00:01:45,510 그리고 사실, 관련입니다. 44 00:01:45,510 --> 00:01:48,135 하지만 그것도 간단합니다 보다 설명. 45 00:01:48,135 --> 00:01:48,635 그래. 46 00:01:48,635 --> 00:01:49,970 >> 청중 : 그들은 단지 많은 비트를 가지고있다. 47 00:01:49,970 --> 00:01:52,370 그들은 단지 특정 저장할 수 정도, 소수와 같은. 48 00:01:52,370 --> 00:01:52,780 >> 데이비드 J 마란 : 그래. 49 00:01:52,780 --> 00:01:54,420 이건 정말 그것을 점점 것입니다. 50 00:01:54,420 --> 00:01:57,180 그것은 그 컴퓨터를 밝혀 일반적으로는 항상 만 51 00:01:57,180 --> 00:01:59,690 정보의 유한 한 양을 사용 뭔가를 나타냅니다. 52 00:01:59,690 --> 00:01:59,870 권리? 53 00:01:59,870 --> 00:02:02,110 결국, 우리는 고정이 하드 디스크 공간의 양. 54 00:02:02,110 --> 00:02:04,210 우리가 단지 고정 된 양을 RAM, 또는 컴퓨터 메모리. 55 00:02:04,210 --> 00:02:06,251 그리고 당신 만이있는 경우 뭔가의 고정 된 양, 56 00:02:06,251 --> 00:02:09,611 확실히 당신은 실제로 카운트 수 없습니다 무한대 또는 원하는 번호. 57 00:02:09,611 --> 00:02:11,610 당신은 가지에있다 선택하고 어떤 영역을 선택 58 00:02:11,610 --> 00:02:13,220 의 당신이 지원거야 값. 59 00:02:13,220 --> 00:02:18,100 >> 그래서 예, 한 두 주에 대한 전, 우리가 ASCII에 대해 이야기 할 때, 60 00:02:18,100 --> 00:02:21,610 우리는 약 8 비트를 이야기 또는 바이트는, 그래서, 말하자면 61 00:02:21,610 --> 00:02:26,360 가장 큰 수를 우리가 할 수 8 비트 무엇이었다 대표? 62 00:02:26,360 --> 00:02:28,350 255. 63 00:02:28,350 --> 00:02:31,850 그리고 우리는 256의 총 값을 나타낼 수 있습니다 그러나 우리는 그들 중 하나를 지출하지 않을 경우 64 00:02:31,850 --> 00:02:34,190 잘 0--에, 그러나 우리의 경우 0에 그들 중 하나를 보내고, 65 00:02:34,190 --> 00:02:36,830 다음 가장 큰 수 255 물론이다. 66 00:02:36,830 --> 00:02:39,410 >> 그래서이 것을 밝혀 이 문맥에서 너무 경우. 67 00:02:39,410 --> 00:02:42,350 우리는, 이야기, 마지막으로 시작 부동 소수점 수에 대한 어떤 68 00:02:42,350 --> 00:02:44,640 에서, 정수 다르다 그들은 소수점을 가지고 69 00:02:44,640 --> 00:02:47,056 그리고, 희망, 몇 가지 숫자 그 후,하지만 그들도 있습니다. 70 00:02:47,056 --> 00:02:51,730 컴퓨터는 일반적으로 것입니다 32 비트, 아마도 64 비트를 사용하는 71 00:02:51,730 --> 00:02:53,497 부동 소수점 값을 표현한다. 72 00:02:53,497 --> 00:02:56,080 비록 그래서 우리는 성장했습니다 수학을 배우고 알고 73 00:02:56,080 --> 00:02:58,750 당신은 절대적으로 가질 수 숫자의 무한한 74 00:02:58,750 --> 00:03:01,650 소수점,하지 후 당신은 제한된 메모리를 가지고있는 경우. 75 00:03:01,650 --> 00:03:03,930 당신은, 가지, 반올림해야 또는 선택하고 선택하는 76 00:03:03,930 --> 00:03:05,346 숫자는 당신이 표현하는 것입니다. 77 00:03:05,346 --> 00:03:08,710 그래서 당신은 의미에서 생각할 수있는, 이되는 컴퓨터의 가장 가까운 78 00:03:08,710 --> 00:03:14,050 값 1/10 근사 그 그냥 32 정도 비트, 얻을 수 있습니다. 79 00:03:14,050 --> 00:03:15,300 그리고 그것은 단지 1/10 아니다. 80 00:03:15,300 --> 00:03:19,820 >> 예를 들어, 나는 이것을하기 변경하는 경우 우리가 생각하는 1/3, 심지어 간단하다. 81 00:03:19,820 --> 00:03:21,300 그래서 1 3으로 나눈. 82 00:03:21,300 --> 00:03:22,355 나 파일을 저장할 수 있습니다. 83 00:03:22,355 --> 00:03:24,680 내가 가서 다시 컴파일하자. 84 00:03:24,680 --> 00:03:25,820 그리고 내가 그것을 다시 실행 할 수 있습니다. 85 00:03:25,820 --> 00:03:30,000 여기 너무, 분명히, 1/3은 0.3 아니다 다음 3의 무한한 86 00:03:30,000 --> 00:03:30,770 그 후. 87 00:03:30,770 --> 00:03:32,540 당신은 끝이 부정확 있습니다. 88 00:03:32,540 --> 00:03:35,544 그래서 우리 인간은 정확한지, 어떤 당신은 사실이며, 올바른 학습 89 00:03:35,544 --> 00:03:37,460 그러나 우리는 해주있어 몇 가지 제한 사항에 대하여. 90 00:03:37,460 --> 00:03:39,420 >> 그리고 내가 생각했던 오늘날 우리가 할 것, 시작된다 91 00:03:39,420 --> 00:03:42,190 솔직히,보고에 의해 이 비극적 결과 92 00:03:42,190 --> 00:03:45,490 때로는, 때 인류 아주 구현하지 않습니다 93 00:03:45,490 --> 00:03:48,460 이 현실과 이러한 제한합니다. 94 00:03:48,460 --> 00:03:52,360 그리고 우리는 삽화의 시리즈를 볼 수 있습니다 소요 히스토리 채널에서 95 00:03:52,360 --> 00:03:53,950 어떻게 일을 살펴 잘못 갔다. 96 00:03:53,950 --> 00:03:56,340 그것은 약 팔분 길어 우리는이 이후에 다시 올 것이다 97 00:03:56,340 --> 00:03:59,439 정확히 살펴 다른 무엇이 잘못 될 수 있습니다. 98 00:03:59,439 --> 00:04:00,605 우리는 lights--을 흐리게 할 수 있다면 99 00:04:00,605 --> 00:04:02,350 >> [비디오 재생] 100 00:04:02,350 --> 00:04:06,310 >> -Computers, 우리는 받아 왔어요 자주 좌절 문제가 101 00:04:06,310 --> 00:04:07,750 그들과 함께 할 것입니다. 102 00:04:07,750 --> 00:04:11,370 버그, 바이러스, 소프트웨어 글리치는 작은 가격입니다 103 00:04:11,370 --> 00:04:13,230 편의를 위해 지불합니다. 104 00:04:13,230 --> 00:04:17,519 그러나 높은 기술과 고속 군사 및 우주 프로그램 응용 프로그램, 105 00:04:17,519 --> 00:04:22,130 작은 문제 수 재난으로 확대 될 수있다. 106 00:04:22,130 --> 00:04:27,750 1996년 6월 4일에서 과학자들은 준비 무인 아리안 5 로켓을 시작합니다. 107 00:04:27,750 --> 00:04:29,890 그것은 과학적인 수행되었다 위성 설계 108 00:04:29,890 --> 00:04:33,030 정확하게 어떻게 수립 지구의 자기장의 상호 작용 109 00:04:33,030 --> 00:04:35,600 태양 바람과 함께. 110 00:04:35,600 --> 00:04:37,930 로켓을 위해 만들어진 유럽​​ 우주국 111 00:04:37,930 --> 00:04:41,620 그 시설에서 들어 올려 프랑스어 령 기아나의 해안. 112 00:04:41,620 --> 00:04:44,924 >> - 그리고 약 30 초에 비행, 그들은 처음으로 113 00:04:44,924 --> 00:04:46,340 눈치 뭔가 잘못 가고 있었다. 114 00:04:46,340 --> 00:04:49,280 노즐 선회되었는지 어떤면에서 그들은 정말 안된다. 115 00:04:49,280 --> 00:04:53,042 비행에 40초 주변, 분명히 차량은 문제가 있었다 116 00:04:53,042 --> 00:04:55,250 그들이 만든 때 그건 결정을 파괴한다. 117 00:04:55,250 --> 00:04:58,970 범위 안전 책임자와 엄청난 배짱 버튼을 누르면, 118 00:04:58,970 --> 00:05:03,940 그 전에 로켓 폭발 공공의 안전에 위험이된다. 119 00:05:03,940 --> 00:05:06,600 >> -이는 처녀였다 아리안 5의 항해, 120 00:05:06,600 --> 00:05:09,270 그 파괴했다 때문에 결함의 장소 121 00:05:09,270 --> 00:05:10,992 로켓의 소프트웨어에 내장. 122 00:05:10,992 --> 00:05:12,700 에 -THE 문제 아리안이었다 그이 123 00:05:12,700 --> 00:05:15,370 필요한 수 있었다 64 비트는 표현 124 00:05:15,370 --> 00:05:18,150 그는 변환하고 싶어 그것은 16 비트 번호. 125 00:05:18,150 --> 00:05:21,160 그들은 수 있다고 가정 매우 큰 될 것되지 않았다, 126 00:05:21,160 --> 00:05:25,020 점에서 그 자리의 가장 64 비트 번호는 0이었다. 127 00:05:25,020 --> 00:05:26,310 그들은 틀렸다. 128 00:05:26,310 --> 00:05:28,680 >> 하나의 -THE 무능력 소프트웨어 프로그램에 동의합니다 129 00:05:28,680 --> 00:05:32,820 생성 수의 종류 또 다른 실패의 루트에 있었다. 130 00:05:32,820 --> 00:05:37,190 소프트웨어 개발이되었다 새로운 기술의 매우 비용이 많이 드는 부분입니다. 131 00:05:37,190 --> 00:05:40,760 아리안 4 로켓은 매우 있었다 소프트웨어의 성공, 너무 많은 132 00:05:40,760 --> 00:05:43,990 그것은 또한이었다 생성 아리안 5에 사용. 133 00:05:43,990 --> 00:05:49,750 >> 년 - 기본 문제는 아리안이었다 5, 더 빨랐다 빠른 가속. 134 00:05:49,750 --> 00:05:53,000 그리고 소프트웨어는했으나, 그를 차지했다. 135 00:05:53,000 --> 00:05:56,330 >> 로켓의 -THE 파괴 거대한 금융 재앙이었다 136 00:05:56,330 --> 00:05:59,670 모든 인해 분 소프트웨어 오류. 137 00:05:59,670 --> 00:06:01,990 그러나 이것은 제 아니었다 시간 데이터 변환 문제 138 00:06:01,990 --> 00:06:05,310 현대적인 로켓 기술을 괴롭혀했다. 139 00:06:05,310 --> 00:06:08,300 >> 시작으로 1991 년 -in 첫 번째 걸프 전쟁, 140 00:06:08,300 --> 00:06:10,650 패트리어트 미사일 비슷한 종류의 경험 141 00:06:10,650 --> 00:06:12,650 수 변환 문제. 142 00:06:12,650 --> 00:06:15,620 그 결과 28 명 (28) 미국 군인 143 00:06:15,620 --> 00:06:18,440 살해에 대한했다 (100) 다른 부상, 144 00:06:18,440 --> 00:06:21,900 때 가정 된 애국, 수신 스커드을 방지하기 위해, 145 00:06:21,900 --> 00:06:24,630 미사일을 발사하는 데 실패했습니다. 146 00:06:24,630 --> 00:06:29,440 >> - 언제 이라크는 쿠웨이트와 미국을 침공 초기 1991 년 사막의 폭풍을 시작, 147 00:06:29,440 --> 00:06:33,800 패트리어트 미사일 배터리가 배치되었다 사우디 아라비아와 이스라엘을 보호하기 위해 148 00:06:33,800 --> 00:06:37,000 이라크의 스커드 미사일 공격. 149 00:06:37,000 --> 00:06:40,610 애국은 미국, 중간 범위 지대공 시스템 150 00:06:40,610 --> 00:06:43,010 레이 시온 회사에 의해 제조. 151 00:06:43,010 --> 00:06:49,080 >> 패트리어트 요격의 -THE 크기, 자체는 약 20 피트 길이, 대한 것입니다. 152 00:06:49,080 --> 00:06:51,250 그리고 약 2000 파운드의 무게. 153 00:06:51,250 --> 00:06:55,195 그리고 그것은 비슷해의 탄두를 운반 나는 대략 1백50파운드 생각합니다. 154 00:06:55,195 --> 00:06:59,500 그리고 탄두 자체, 고성능 폭약이다, 155 00:06:59,500 --> 00:07:02,570 이는 주위 조각이있다. 156 00:07:02,570 --> 00:07:06,890 탄두의 케이스입니다 사슴 사냥 용 총알처럼 행동하도록 설계되었습니다. 157 00:07:06,890 --> 00:07:09,130 >> 년 - 미사일은 4 컨테이너 당, 수행, 158 00:07:09,130 --> 00:07:12,080 및 세미 트레일러에 의해 운반된다. 159 00:07:12,080 --> 00:07:19,100 >> 년 - 애국 반 미사일 시스템 지금 적어도 20 년 전으로 거슬러 간다. 160 00:07:19,100 --> 00:07:22,320 그것은 원래 설계되었습니다 방공 미사일로 161 00:07:22,320 --> 00:07:24,180 적군의 비행기를 격추한다. 162 00:07:24,180 --> 00:07:27,860 첫 걸프 전쟁에서, 그 전쟁이 함께 왔을 때, 163 00:07:27,860 --> 00:07:32,745 육군은에 그것을 사용하고 싶었 스커드가 아니라 비행기를 격추. 164 00:07:32,745 --> 00:07:36,150 이라크 강제하지 않았다 문제가 너무 많은, 165 00:07:36,150 --> 00:07:39,110 그러나 육군은 스커드에 대해 걱정했다. 166 00:07:39,110 --> 00:07:42,340 그래서 그들은하려 애국를 업그레이드합니다. 167 00:07:42,340 --> 00:07:44,760 >> 적을 -Intercepting 미사일 마하 5시 여행 168 00:07:44,760 --> 00:07:47,250 충분히 도전 할 거라고. 169 00:07:47,250 --> 00:07:50,000 그러나 때 애국 서비스로 돌진했다, 170 00:07:50,000 --> 00:07:54,030 육군은 인식하지 않았다 만든 이라크 수정 171 00:07:54,030 --> 00:07:56,840 자신의 스커드 칠 거의 불가능합니다. 172 00:07:56,840 --> 00:08:01,020 >> 무슨 일이 스커드입니다 에오고 있었다, 불안정 173 00:08:01,020 --> 00:08:02,310 그들은 흔들 흔들했다. 174 00:08:02,310 --> 00:08:05,140 이것에 대한 이유는, 순서대로, 이라크를했다 175 00:08:05,140 --> 00:08:09,450 에서 600km를 얻을 수 있습니다 300km의 미사일, 176 00:08:09,450 --> 00:08:12,930 전면 탄두에서 무게를했다 그리고 탄두 경량화. 177 00:08:12,930 --> 00:08:17,710 그래서 지금, 애국의 올하려고 스커드에, 대부분의 시간, 178 00:08:17,710 --> 00:08:21,700 의 압도적 인 다수 시간, 그냥 스커드에 의해 비행 것입니다. 179 00:08:21,700 --> 00:08:25,700 >> 패트리어트 시스템 운영자 - 일단 , 애국자가 목표를 놓친 실현 180 00:08:25,700 --> 00:08:29,790 그들은 애국자의 탄두를 폭발 그것이 가능하면 피해를 방지하기 위해 181 00:08:29,790 --> 00:08:32,380 땅에 떨어지지 하였다. 182 00:08:32,380 --> 00:08:36,340 >> 대부분의 사람들이 본 것을 - 그건이었다 하늘에서 그 큰 불 덩어리, 183 00:08:36,340 --> 00:08:41,289 과 오해 스커드 탄두의 차단. 184 00:08:41,289 --> 00:08:43,590 밤에 비록 하늘, 애국자 등장 185 00:08:43,590 --> 00:08:47,020 성공적으로 할 수 다란에서 스커드를 파괴, 186 00:08:47,020 --> 00:08:49,730 실수있을 수 없다 성능에 대한. 187 00:08:49,730 --> 00:08:53,990 가, 애국의 레이더 시스템 수신 스커드의 트랙을 손실, 188 00:08:53,990 --> 00:08:56,650 그리고, 시작하지 소프트웨어 결함으로 인해. 189 00:08:56,650 --> 00:08:59,650 190 00:08:59,650 --> 00:09:04,100 먼저 발견 한 이스라엘이었다 더 이상 시스템이 켜져 있는지, 191 00:09:04,100 --> 00:09:07,510 더 큰 시간의 편차 때문에 내장 된 시계가되었다 192 00:09:07,510 --> 00:09:09,490 시스템에서의 컴퓨터. 193 00:09:09,490 --> 00:09:12,670 >> 대략 125 이주 전에 다란의 비극, 194 00:09:12,670 --> 00:09:15,010 이스라엘은보고 국방부, 195 00:09:15,010 --> 00:09:17,940 시스템이 시간을 잃고 있다는 그 실행의 약 8 시간 후, 196 00:09:17,940 --> 00:09:21,410 그들은 시스템임을 알게 눈에 띄게 덜 정확 해지고. 197 00:09:21,410 --> 00:09:25,290 국방부에 의해 반응 애국 배터리의 모든 이야기 198 00:09:25,290 --> 00:09:28,070 시스템을 떠나지하기 오랜 시간에. 199 00:09:28,070 --> 00:09:29,960 그들은 오랜 시간이 무엇 말했다 없습니다. 200 00:09:29,960 --> 00:09:30,460 8시간? 201 00:09:30,460 --> 00:09:30,960 10시간? 202 00:09:30,960 --> 00:09:31,870 1천시간? 203 00:09:31,870 --> 00:09:33,734 아무도 알지 못했다. 204 00:09:33,734 --> 00:09:35,650 년 - 애국 배터리 병영에 주둔 205 00:09:35,650 --> 00:09:40,410 다란, 그 결함이 내부에서 100 시간 이상 시계에 있었다 206 00:09:40,410 --> 00:09:43,041 2월 25일의 밤. 207 00:09:43,041 --> 00:09:47,416 >> - 그것은 정확성에 시간을 추적 약 1/10 초 중. 208 00:09:47,416 --> 00:09:49,290 이제 두 번째의 1/10이다 흥미로운 수 209 00:09:49,290 --> 00:09:52,700 그것은 수 없기 때문에 정확히, 바이너리로 표현. 210 00:09:52,700 --> 00:09:54,820 어떤는 할 수없는 의미 표현, 정확하게, 211 00:09:54,820 --> 00:09:57,420 현대의 디지털 컴퓨터에서. 212 00:09:57,420 --> 00:10:01,460 그것은 믿기 어렵다하지만 예를 들어 사용합니다. 213 00:10:01,460 --> 00:10:03,520 이제 수, 1/3 보자. 214 00:10:03,520 --> 00:10:07,110 1/3 표현할 수없는 진수, 정확하게. 215 00:10:07,110 --> 00:10:11,490 1/3 무한대 동안 계속 0.333이다. 216 00:10:11,490 --> 00:10:15,486 그렇게 할 수있는 방법은 함께 없습니다 소수의 절대 정확도. 217 00:10:15,486 --> 00:10:18,360 즉, 정확히 같은 종류의 애국에서 일어난 문제. 218 00:10:18,360 --> 00:10:22,510 더 이상 시스템이 실행, 더 시간 오류가되었다. 219 00:10:22,510 --> 00:10:28,420 >> 운전 100 시간 -after, 오류 시간에 약 1/3 초를했다. 220 00:10:28,420 --> 00:10:31,830 하지만를 대상의 관점에서 미사일 마하 5에 여행, 221 00:10:31,830 --> 00:10:35,890 그 결과 트래킹 600 미터의 오류입니다. 222 00:10:35,890 --> 00:10:38,970 그것은 치명적인 오류가 될 것이다 다란의 군인. 223 00:10:38,970 --> 00:10:45,035 >> 무슨 일이야, 스커드 발사가 있었다 조기 경보 위성에 의해 감지, 224 00:10:45,035 --> 00:10:48,930 그들은 스커드는 것을 새로운 I 자신의 일반적인 방향으로오고. 225 00:10:48,930 --> 00:10:51,170 이오고 어디 그들은 몰랐다. 226 00:10:51,170 --> 00:10:53,990 >> - 그것은 레이더까지 지금이었다 패트리어트 시스템의 구성 요소, 227 00:10:53,990 --> 00:10:58,520 찾아 유지하는 다란을 방어 들어오는 적의 미사일을 추적. 228 00:10:58,520 --> 00:10:59,690 >> 년 - 레이더는 아주 똑똑했다. 229 00:10:59,690 --> 00:11:01,710 실제로 추적 할 것 스커드의 위치 230 00:11:01,710 --> 00:11:04,040 다음 위치를 예측 그것은 아마 것 231 00:11:04,040 --> 00:11:06,140 다음에, 레이더 아웃 펄스를 보냈습니다. 232 00:11:06,140 --> 00:11:07,660 즉 범위 게이트 불렀다. 233 00:11:07,660 --> 00:11:11,870 >> - 그럼, 애국 번 충분한 시간을 가지고 결정 234 00:11:11,870 --> 00:11:16,280 돌아가서 다음을 확인 통과 이 검출 된 객체에 대한 위치, 235 00:11:16,280 --> 00:11:17,280 그것은 거슬러 올라갑니다. 236 00:11:17,280 --> 00:11:21,690 그래서 잘못된으로 돌아 갔을 때 장소는, 그 후 어떠한 객체를 보게되지 237 00:11:21,690 --> 00:11:25,230 그리고 전혀가 있다고 결정되지 객체, 그것은 오 검출 거 238 00:11:25,230 --> 00:11:26,650 트랙을 삭제합니다. 239 00:11:26,650 --> 00:11:29,690 수신 스커드가 사라졌다 레이더 화면에서, 240 00:11:29,690 --> 00:11:32,670 초 후, 그것을 막사를 강타. 241 00:11:32,670 --> 00:11:38,100 스커드 (28)를 살해하고 마지막으로 하나는 첫 번째 걸프 전쟁 때졌습니다. 242 00:11:38,100 --> 00:11:43,460 안타깝게도, 업데이트 된 소프트웨어 다음 날 다란에 도착했다. 243 00:11:43,460 --> 00:11:46,150 소프트웨어 결함이 있었다 하고 고정, 폐쇄 244 00:11:46,150 --> 00:11:48,940 문제가 하나의 장 패트리어트 미사일의 역사. 245 00:11:48,940 --> 00:11:50,220 >> [END 재생] 246 00:11:50,220 --> 00:11:54,340 >> 데이비드 J 마란 : 그래서 우리는 살펴 보겠습니다 조금의 일부 유사한 제한. 247 00:11:54,340 --> 00:11:58,470 하지만 먼저하자 몇 전환은 참고입니다. 248 00:11:58,470 --> 00:12:01,575 이번 주말 one-- 그래서,이 슈퍼 섹션 될 것입니다, 249 00:12:01,575 --> 00:12:04,200 에 대신하는 것을 의미하는 정기적으로 예약 된 섹션, 어떤 250 00:12:04,200 --> 00:12:05,460 따라서 일주일에 시작됩니다. 251 00:12:05,460 --> 00:12:08,204 CS50의 웹 사이트에서보세요 이들에 대한 자세한 정보를 얻을 수 있습니다. 252 00:12:08,204 --> 00:12:11,120 또한 촬영 및 스트리밍됩니다 참여할 수없는 사람들을 위해 살고있다. 253 00:12:11,120 --> 00:12:12,980 문제는 1에 설정 이미 코스의 웹 사이트, 254 00:12:12,980 --> 00:12:15,105 우리는 살펴 보겠습니다 조금의 그. 255 00:12:15,105 --> 00:12:18,350 그리고 근무 시간도 걸릴 것입니다 목요일이 월요일 놓습니다. 256 00:12:18,350 --> 00:12:20,960 >> 따라서 이것은 가장 표준이었다 프로그램 우리는 마지막으로 바라 보았다. 257 00:12:20,960 --> 00:12:23,590 그것은 간단한처럼 당신은 C로 쓸 수 프로그램, 258 00:12:23,590 --> 00:12:25,250 심지어 그 대담한 주장의 비트입니다. 259 00:12:25,250 --> 00:12:25,750 권리? 260 00:12:25,750 --> 00:12:28,070 많은 거기 때문에 이 복잡​​성을 보이는. 261 00:12:28,070 --> 00:12:30,445 그럼 잠깐 살펴 보자 어떤 이들 요소 중 일부 262 00:12:30,445 --> 00:12:33,080 했다 후 제공하려고 방법에 대한 정신 모델 263 00:12:33,080 --> 00:12:35,710 프로그램이 간단한 작동하고 우리는 시작합니다 264 00:12:35,710 --> 00:12:38,050 더욱 복잡한 사물을 보는. 265 00:12:38,050 --> 00:12:41,280 그래서이 라인은 여기, 지금 강조 노란색, 우리가 말할 무슨 짓을했는지, 마지막으로, 266 00:12:41,280 --> 00:12:43,200 이것은 우리의 경우와는? 267 00:12:43,200 --> 00:12:45,220 이 역할을하는 목적은 무엇입니까? 268 00:12:45,220 --> 00:12:46,984 멀리 뒤쪽에서 누군가? 269 00:12:46,984 --> 00:12:47,483 그래. 270 00:12:47,483 --> 00:12:48,649 >> 청중 : [들리지] 271 00:12:48,649 --> 00:12:50,871 272 00:12:50,871 --> 00:12:51,704 데이비드 J 마란 : 좋은. 273 00:12:51,704 --> 00:12:53,537 그래서 그것은 당신에게 액세스를 제공합니다 명령에, 또는하자 274 00:12:53,537 --> 00:12:56,750 그들에게 전화 기능, 누군가 다른 선언되는, 썼다, 275 00:12:56,750 --> 00:12:58,350 그래서 다른 파일에, 말하자면. 276 00:12:58,350 --> 00:13:02,370 그래서 우리는 정확히 .H 파일을 볼 수 있습니다 결국, .c 파일 대입니다. 277 00:13:02,370 --> 00:13:04,710 하지만 지금은, 바로 알고 그 printf와, 예를 들면, 278 00:13:04,710 --> 00:13:08,370 왔다 기능 중 하나입니다 어딘가에, 다른 파일에 선언 279 00:13:08,370 --> 00:13:12,930 클라우드의 하드 드라이브에 다른 그 우리는 printf의를 액세스하여 사용할 수 있습니다 280 00:13:12,930 --> 00:13:15,240 재발견 할 필요없이 자신을 바퀴가. 281 00:13:15,240 --> 00:13:16,930 한편, 주. 282 00:13:16,930 --> 00:13:19,690 주, 지난주의 아날로그은 무엇입니까? 283 00:13:19,690 --> 00:13:20,190 그래. 284 00:13:20,190 --> 00:13:21,460 >> 청중 : 녹색 깃발을 클릭. 285 00:13:21,460 --> 00:13:21,740 >> 데이비드 J 마란 : 그래. 286 00:13:21,740 --> 00:13:23,490 스크래치의, 녹색 깃발이 클릭 할 때. 287 00:13:23,490 --> 00:13:25,560 이 퍼즐 조각처럼 그 일을 개막. 288 00:13:25,560 --> 00:13:28,306 그리고 유사하게, 세상을했다 C로 몇 년 전에 결정 289 00:13:28,306 --> 00:13:30,930 다른 언어의 무리, 당신이 프로그램을 작성하려는 경우, 290 00:13:30,930 --> 00:13:33,410 첫 번째 기능 주, 호출 할 수있다. 291 00:13:33,410 --> 00:13:34,641 그리고는 다음과 같이한다. 292 00:13:34,641 --> 00:13:36,640 그러나 우리는 돌아올 것이다 다른 시간, 무엇을, INT, 293 00:13:36,640 --> 00:13:38,690 그리고, 무효, 그 맥락에서 의미한다. 294 00:13:38,690 --> 00:13:42,860 지금은 중괄호 친절 의 스크래치의 퍼즐 조각 모양처럼 295 00:13:42,860 --> 00:13:45,080 그 라인의 어떤 수를 캡슐화합니다. 296 00:13:45,080 --> 00:13:47,070 그리고 라인 중 여기, 여기 하나입니다. 297 00:13:47,070 --> 00:13:51,610 printf와는 그 목적의 함수이다 인생은 형식 문자열을 인쇄하는 것입니다. 298 00:13:51,610 --> 00:13:55,010 그리고 포맷으로, 나는 당신을 의미 자리 값에 연결할 수 있습니다, 299 00:13:55,010 --> 00:13:58,360 당신은 얼마나 많은 소수를 지정할 수 있습니다 포인트는, 얼마나 많은 숫자를 인쇄 300 00:13:58,360 --> 00:14:00,040 소수점 등 후. 301 00:14:00,040 --> 00:14:05,040 과의 printf 물론 하나 소요 또는 인수 또는 매개 변수를 더, 302 00:14:05,040 --> 00:14:06,770 그렇지 않으면 더 간단하게 입력으로, 알려져 있습니다. 303 00:14:06,770 --> 00:14:09,230 >> 의 많은 것, 그래서 printf의 함수는 입력을합니다. 304 00:14:09,230 --> 00:14:12,730 그리고 그 입력이 포함된다 여기에 두 개의 괄호로. 305 00:14:12,730 --> 00:14:15,180 그 중 하나의 내부에 입력된다. 306 00:14:15,180 --> 00:14:18,600 그것은 우리가 그것을 호출하기로 문자열이다, 이는 문자의 단지 순서입니다, 307 00:14:18,600 --> 00:14:22,310 단어 또는 어구, 또는 전체와 같은 에세이도, 큰 따옴표 사이에. 308 00:14:22,310 --> 00:14:25,712 그리고 그 영향을 미칠 것 무엇 printf의 행동 때문에, 물론, 309 00:14:25,712 --> 00:14:27,170 그냥 일반적인 인쇄 기능입니다. 310 00:14:27,170 --> 00:14:29,600 그것은 무엇을 알고 않을거야 당신이 그것을 말해 않는 한, 인쇄 할 수 있습니다. 311 00:14:29,600 --> 00:14:31,000 그리고 나서, 일부 특징점. 312 00:14:31,000 --> 00:14:34,056 우리는이 이상한 말을 했는가 심볼의 순서는? 313 00:14:34,056 --> 00:14:34,556 그래. 314 00:14:34,556 --> 00:14:35,410 >> 청중 : 새로운 라인. 315 00:14:35,410 --> 00:14:35,990 >> 데이비드 J 마란 : 새로운 라인. 316 00:14:35,990 --> 00:14:39,340 그래서 당신은 그냥 칠 수없는, 밝혀, 프로그램을 작성하는 경우, 입력합니다. 317 00:14:39,340 --> 00:14:42,590 일반적으로, 컴파일러는 얻을 것입니다 당신이 무엇을 의미하는지에 관해서는 조금 혼란. 318 00:14:42,590 --> 00:14:45,340 오히려, 당신은 문자 그대로를해야 여기에 나에게 새로운 라인을 제공, 말한다. 319 00:14:45,340 --> 00:14:49,506 그리고 / n를 우리 일반적으로 이스케이프 문자를 호출합니다. 320 00:14:49,506 --> 00:14:50,870 그래서 N, 새로운 라인. 321 00:14:50,870 --> 00:14:53,810 그리고 컴파일러는 알고있다 그는 / N을 볼 때, 322 00:14:53,810 --> 00:14:57,420 실제로 컴퓨터를 유도해야 궁극적으로, 또는 printf와,이 경우, 323 00:14:57,420 --> 00:15:00,260 실제 새를 인쇄하기 라인은 타격처럼 입력 324 00:15:00,260 --> 00:15:01,480 키보드의 키를 누르십시오. 325 00:15:01,480 --> 00:15:05,620 그리고 마지막으로, 무엇을 우리가 말을했다 구문의 조각입니다? 326 00:15:05,620 --> 00:15:06,591 그것은 무엇을 상징 하는가? 327 00:15:06,591 --> 00:15:07,090 그래. 328 00:15:07,090 --> 00:15:07,490 >> 청중 : [들리지] 329 00:15:07,490 --> 00:15:08,660 >> 데이비드 J 마란 : 그것은 단지 줄의 끝. 330 00:15:08,660 --> 00:15:09,909 이 문장의 끝입니다. 331 00:15:09,909 --> 00:15:11,890 우리가하지 않는 것을 깨닫게 사방에 넣어. 332 00:15:11,890 --> 00:15:13,900 우리는 확실히 넣어하지 않습니다 모든 라인의 끝에. 333 00:15:13,900 --> 00:15:16,680 예를 들어, 아무도 거기에 없다 첫 번째 줄, 아무도 라인에 없다 334 00:15:16,680 --> 00:15:18,680 메인으로, 아무도 없다 중괄호 후, 335 00:15:18,680 --> 00:15:21,740 하지만 당신은보고 얻을 시작합니다 이 요구 어디에 잘 알고. 336 00:15:21,740 --> 00:15:26,014 그리고 함수 후 거의 항상 어떤 행동, 전화 또는 문 337 00:15:26,014 --> 00:15:27,180 것을 당신은 실제로 복용하고 있습니다. 338 00:15:27,180 --> 00:15:29,520 >> 그리고, 특히 경우 지금 알고 적은 편안한 그 중, 339 00:15:29,520 --> 00:15:32,540 이 멍청한 것들의 종류이다 실수로 두드리는 오게 340 00:15:32,540 --> 00:15:33,873 이상 벽에 머리. 341 00:15:33,873 --> 00:15:36,107 당신은 논리적으로있을거야 때문에 어떤 문제에 자신감 342 00:15:36,107 --> 00:15:38,440 당신은 문제에 대한 해결했습니다 세트, 그냥 망할 것 343 00:15:38,440 --> 00:15:40,187 컴파일 또는 실행되지 않습니다. 344 00:15:40,187 --> 00:15:43,270 그리고 너무 자주, 초기에, 그것은 것 당신은 괄호를 놓친 때문에 수, 345 00:15:43,270 --> 00:15:44,455 또는 당신은 세미콜론을 놓쳤다. 346 00:15:44,455 --> 00:15:46,547 그래서 그냥 염두 이러한 종류의 것들 중, 347 00:15:46,547 --> 00:15:49,380 에 의해 좌절하지 않으려 고 그들을 매우 신속하게이 작업을 수행하기 때문에 348 00:15:49,380 --> 00:15:50,640 오래된 모자된다. 349 00:15:50,640 --> 00:15:53,910 그러나 얻는 것은 매우 간단 결과적으로 초기에 좌절. 350 00:15:53,910 --> 00:15:57,020 >> 그래서 지금의이 방법을 살펴 보자 이 라인은 실제로 작동 351 00:15:57,020 --> 00:15:59,170 다음 약간 보면 더 복잡 하나. 352 00:15:59,170 --> 00:16:02,017 그래서 우리는 여기에, 이상이 이 화면에 그릴 수있는 능력. 353 00:16:02,017 --> 00:16:04,100 그리고의가 있다고 가정하자 이것은 내 컴퓨터 화면입니다 354 00:16:04,100 --> 00:16:08,589 하지만, 안녕하세요 프로그램을 쓰고 있어요 나는, printf의 구현하지 않았습니다. 355 00:16:08,589 --> 00:16:10,130 다른 사람은,의 printf를 구현했습니다. 356 00:16:10,130 --> 00:16:12,420 누가 주장하고 싶습니다 ,의 printf를 구현? 357 00:16:12,420 --> 00:16:12,920 우리는 할 수있다면? 358 00:16:12,920 --> 00:16:13,830 좋아, 당신의 이름은 무엇입니까? 359 00:16:13,830 --> 00:16:14,155 >> 학생 1 :? 코펄. ?] 360 00:16:14,155 --> 00:16:15,529 >> 데이비드 J 마란 : 코펄은 최대 어서. 361 00:16:15,529 --> 00:16:16,430 최대 어서. 362 00:16:16,430 --> 00:16:17,070 괜찮아. 363 00:16:17,070 --> 00:16:22,260 그래서 우리는 여기에,이, 어떤 이름 태그, 우리는이의 작은 게임을 만들 것이기​​ 때문에. 364 00:16:22,260 --> 00:16:26,270 그리고 우리는 printf의 당신을 호출합니다. 365 00:16:26,270 --> 00:16:30,170 그리고 당신이 여기 와서하고 싶은 경우, 내가 그냥 화면에 그려진 것, 366 00:16:30,170 --> 00:16:32,340 그것은 나에게있어, 아주 간단하게이있다. 367 00:16:32,340 --> 00:16:35,550 >> 좋아, 그럼, 안녕 내 이름은이다 printf의, 당신은을에 넣어하려는 경우. 368 00:16:35,550 --> 00:16:35,740 괜찮아. 369 00:16:35,740 --> 00:16:37,360 그리고 당신은 스탠드를 갈 수 있다면 컴퓨터 화면에 의해 370 00:16:37,360 --> 00:16:39,730 비록 당신은 함수이다 그 이 컴퓨터 시스템과 함께 제공. 371 00:16:39,730 --> 00:16:42,063 그리고 삶의 목적이다 실제로 뭔가를 인쇄합니다. 372 00:16:42,063 --> 00:16:44,560 그러나 프로그램 등 많은 우리 단지 여기서, 화면 가졌 373 00:16:44,560 --> 00:16:47,060 우리가해야 할거야 실제로 몇 가지 입력을 제공합니다. 374 00:16:47,060 --> 00:16:51,810 >> 그리고, 내 입력하면, 여기있다 분명히 무슨 일이의 printf 전달, 375 00:16:51,810 --> 00:16:53,730 의 일종의 같이 그것을 조롱 할 수 있습니다. 376 00:16:53,730 --> 00:16:58,720 말 그대로에 쓸거야 종이, "안녕, 세계" 377 00:16:58,720 --> 00:17:03,020 백 슬래시 N. 그리고 명확하게하기 위해, 무엇을 난 그냥,이 종이에 그려진했습니다 378 00:17:03,020 --> 00:17:04,020 다음과 같습니다. 379 00:17:04,020 --> 00:17:08,730 그래서 나는이 프로그램을 실행하고,이 때 코드의 노란 선이 실행됩니다, 380 00:17:08,730 --> 00:17:12,970 그것은, 내가, 안녕하세요 프로그램처럼의 함수에 떨어져 일부 입력을 전달하고있다 381 00:17:12,970 --> 00:17:13,970 다른 사람이 쓴. 382 00:17:13,970 --> 00:17:16,595 >> 그리고 경우, 손가락으로, 실제로 수, 손가락으로, 383 00:17:16,595 --> 00:17:21,520 화면에 그리는대로 당신이 손으로되어있다, 384 00:17:21,520 --> 00:17:27,465 효과는 궁극적이고 정확히, 화면을 참조하십시오. 385 00:17:27,465 --> 00:17:29,140 그리고 여기에 작은 코너 케이스. 386 00:17:29,140 --> 00:17:31,540 그리고 좋은, 우리는 볼 수 없습니다해야 이 시점에서, 새로운 라인. 387 00:17:31,540 --> 00:17:33,900 그것은 당신에 대한 잘못된 것입니다 명시 적으로 줄 바꿈을 그립니다. 388 00:17:33,900 --> 00:17:36,810 그러나 우리가 유지하는 경우에 단어를 작성 화면, 그들은 그 아래에 끝날 것입니다. 389 00:17:36,810 --> 00:17:39,560 >> 그래서 대단히 감사합니다,하지만 스틱 여기 한 순간. 390 00:17:39,560 --> 00:17:42,860 우리는 지금 다른 하나를 필요 자원 봉사, 우리가 할 수있는 경우, 391 00:17:42,860 --> 00:17:46,830 그 역할을해야 할 것 동행입니다 그것은 오케스트라에 유일한 사람이야 392 00:17:46,830 --> 00:17:47,355 지금. 393 00:17:47,355 --> 00:17:47,980 어떻게 확인 비슷해. 394 00:17:47,980 --> 00:17:48,480 바로 여기에. 395 00:17:48,480 --> 00:17:49,180 최대 어서. 396 00:17:49,180 --> 00:17:49,955 당신의 이름은 무엇입니까? 397 00:17:49,955 --> 00:17:50,922 >> 학생 2 :? Ivay. ?] 398 00:17:50,922 --> 00:17:51,796 데이비드 J 마란 : 죄송합니다? 399 00:17:51,796 --> 00:17:52,990 학생 2 :? Ivay. ?] 400 00:17:52,990 --> 00:17:55,320 데이비드 J 마란 : 이단, 최대 어서. 401 00:17:55,320 --> 00:17:55,820 아니? 402 00:17:55,820 --> 00:17:58,390 난, 그 잘못을 받으셨어요 당신이 두 번했다 후? 403 00:17:58,390 --> 00:17:58,890 최대 어서. 404 00:17:58,890 --> 00:18:00,030 그것은 여기 듣고 어렵다. 405 00:18:00,030 --> 00:18:05,240 406 00:18:05,240 --> 00:18:05,740 그래. 407 00:18:05,740 --> 00:18:07,190 그리고 미안 해요, 당신의 이름은 무엇입니까? 408 00:18:07,190 --> 00:18:07,680 >> 학생 2 :? Ivay. ?] 409 00:18:07,680 --> 00:18:08,790 >> [? 데이비드 J 마란 : Ivay. ?] 그래. 410 00:18:08,790 --> 00:18:10,430 지금은, 당신이 아닌 경우 마음, 당신은 getString에있다. 411 00:18:10,430 --> 00:18:11,013 >> 학생 2 : 확인을 클릭합니다. 412 00:18:11,013 --> 00:18:11,797 쿨. 413 00:18:11,797 --> 00:18:14,630 데이비드 J 마란 : 당신이 좋아하면 그래서 잠시 여기 서서, 414 00:18:14,630 --> 00:18:17,100 의는 약간 살펴 보자 더 복잡한 프로그램, 그 415 00:18:17,100 --> 00:18:18,670 이제 코드의 세 줄이 있습니다. 416 00:18:18,670 --> 00:18:24,080 그래서 우리는 하나,이 사용하여 이름을 명시 printf와; 두하여 GetString를 호출, 417 00:18:24,080 --> 00:18:28,060 에 할당 한 다음 변수는 문자열의 호출, 또는 S라고; 418 00:18:28,060 --> 00:18:31,260 다음의 printf에 다른 전화, 하지만 두 개의 입력이 시간. 419 00:18:31,260 --> 00:18:33,646 >> 그래서 우리는 이미 완료 한 상태 당신의 이름, 또는 오히려, 우리는했습니다 420 00:18:33,646 --> 00:18:34,770 이미 printf의 호출을 수행. 421 00:18:34,770 --> 00:18:38,960 그래서 나는 당신의 이름을 주 쓸거야. 422 00:18:38,960 --> 00:18:42,089 그래서, 내가 무슨거야 그냥 순간에, printf의 통과, 423 00:18:42,089 --> 00:18:43,005 이것은 아주 간단하다. 424 00:18:43,005 --> 00:18:47,760 당신이 가서이 그리는 싶다면 화면에, 즉, 귀하의 의견은 지금이다. 425 00:18:47,760 --> 00:18:48,260 괜찮아. 426 00:18:48,260 --> 00:18:51,160 그리고 우리가 지금 가지고 문자열을 잊지 여기에 코드의 우리 자신의 라인. 427 00:18:51,160 --> 00:18:54,470 그래서에서,하여 GetString, 우리는 필요 실제로하여 GetString을 호출합니다. 428 00:18:54,470 --> 00:18:57,920 그래서 인생의 목적은 산책하는 것입니다 오케스트라에 밖으로, 당신은 수 있다면, 429 00:18:57,920 --> 00:18:58,980 누군가의 이름을 돌려줍니다. 430 00:18:58,980 --> 00:19:00,860 그러나의 당신을 제공 할 수 뭔가를에 넣어. 431 00:19:00,860 --> 00:19:02,908 당신이 원하는 경우, 이동 앞서 및 문자열을 얻을, 432 00:19:02,908 --> 00:19:05,241 그 누군가의 이름을 얻을 종이 조각, 당신이 할 수있는 경우. 433 00:19:05,241 --> 00:19:12,940 434 00:19:12,940 --> 00:19:13,530 >> 괜찮아. 435 00:19:13,530 --> 00:19:15,250 그리고 우리는, 단지 순간에 볼 수 있습니다 그의 이름은 우리가 있어요. 436 00:19:15,250 --> 00:19:17,630 한편, 내가 무슨거야 준비, 빈 조각입니다 437 00:19:17,630 --> 00:19:21,340 종이,있는, 내가 갈거야 저장하는 어떤 값을 438 00:19:21,340 --> 00:19:25,752 하여 GetString 나에게 반환된다, 나는,라는 문자열 변수의 존재. 439 00:19:25,752 --> 00:19:26,252 괜찮아. 440 00:19:26,252 --> 00:19:27,293 그래서 당신은 여기에 무엇을해야합니까? 441 00:19:27,293 --> 00:19:27,950 닉. 442 00:19:27,950 --> 00:19:28,450 괜찮아. 443 00:19:28,450 --> 00:19:30,910 그래서 우리는 여기에 닉의 이름이있다. 444 00:19:30,910 --> 00:19:33,750 그래서 이것은 무엇을 말 그대로입니다 반환 된 445 00:19:33,750 --> 00:19:35,810 나에게, 그렇게하여 GetString에 의해, 말하자면. 446 00:19:35,810 --> 00:19:38,720 >> 나는에 가고, 지금,하고 좌변을 실행할 447 00:19:38,720 --> 00:19:43,440 나는 단순히 표현의 오늘의 목적, 닉에 대 한 아래로 복사합니다. 448 00:19:43,440 --> 00:19:46,470 그래서 지금은 변수가 호출, 닉의 명칭 저장,이야. 449 00:19:46,470 --> 00:19:49,520 이미 물려했습니다 printf와, 이전 인수. 450 00:19:49,520 --> 00:19:52,800 그러나 우리의 세 번째이자 마지막 줄에 코드는 실제로 손의 printf에있다 451 00:19:52,800 --> 00:19:58,500 조금 different-- 무엇인가 "안녕, % s의,"백 슬래시 명. 452 00:19:58,500 --> 00:20:01,510 >> 그리고 마지막 줄은 내가 갈거야 난 지난 일을 send--하기 453 00:20:01,510 --> 00:20:03,060 지금 적어 것, 이것이다. 454 00:20:03,060 --> 00:20:06,310 그래서 두 줄의 코드, 또는 코드의 마지막 줄이 아니라, 455 00:20:06,310 --> 00:20:10,690 두 inputs--에 대한 호출 일이, 2 개의이. 456 00:20:10,690 --> 00:20:13,330 우리의 printf 함수의 경우 이렇게 지금 입력으로이 걸릴 수 있습니다, 457 00:20:13,330 --> 00:20:16,000 내가 당신을 위해 화면을 취소 할 수 있습니다. 458 00:20:16,000 --> 00:20:17,250 사실 아니, 당신은 앞서 갈 수 있습니다. 459 00:20:17,250 --> 00:20:19,333 우리는 때문에, 그것을 떠날거야 동일한 프로그램이다. 460 00:20:19,333 --> 00:20:21,760 461 00:20:21,760 --> 00:20:27,380 우리는, 안녕하세요, 닉을 볼 수 있습니다. 462 00:20:27,380 --> 00:20:27,880 괜찮아. 463 00:20:27,880 --> 00:20:29,670 그래서이 꽤 있었다 농구 단지를 통해 이동합니다 464 00:20:29,670 --> 00:20:31,620 쓰고, 주 당신의 안녕하세요, 닉 이름을 지정하고. 465 00:20:31,620 --> 00:20:37,210 그러나 메시지 전달이 간단한 아이디어, 입력 통과 및 출력 수신, 466 00:20:37,210 --> 00:20:40,430 우리가해야 할거야 모델은 정확히 가장 복잡한 기능. 467 00:20:40,430 --> 00:20:41,804 그래서 모두 당신에게 너무 감사합니다. 468 00:20:41,804 --> 00:20:43,730 우리는 사랑스러운 스트레스를 여기 당신을 위해 공. 469 00:20:43,730 --> 00:20:48,890 그리고 우리하여 GetString에 감사합니다 모두와 printf의 자원 봉사자. 470 00:20:48,890 --> 00:20:49,551 고맙습니다. 471 00:20:49,551 --> 00:20:50,050 괜찮아. 472 00:20:50,050 --> 00:20:50,966 여러분 모두에게 감사합니다. 473 00:20:50,966 --> 00:20:56,640 474 00:20:56,640 --> 00:21:00,430 >> 그래서 우리는 얘기를했습니다 지금까지 대부분 문자열에 대한. 475 00:21:00,430 --> 00:21:06,550 그리고는 C 실제로 수 밝혀 몇 가지 다른 데이터 유형을 이해한다. 476 00:21:06,550 --> 00:21:08,860 사실,의​​는하자 여기이 봐. 477 00:21:08,860 --> 00:21:12,490 그래서 C 및 언어를 많이, 문자라는 것을 이해합니다. 478 00:21:12,490 --> 00:21:16,852 문자는 일반적입니다 단일 바이트, 또는 8 비트. 479 00:21:16,852 --> 00:21:19,810 그리고 그것은 하나의 문자를 나타냅니다, 문자, 또는 자본 등 480 00:21:19,810 --> 00:21:21,990 편지, 또는 소문자 또는 느낌표, 481 00:21:21,990 --> 00:21:25,440 또는 문자 당신은에 입력 할 수 있습니다 키보드, 때로는 더. 482 00:21:25,440 --> 00:21:26,795 우리는 또한 수레를 볼 일이. 483 00:21:26,795 --> 00:21:31,160 플로트가 일반적이다 32 비트 값, 또는 4 바이트 484 00:21:31,160 --> 00:21:33,660 다시하기 때문에, 하나의 바이트는 8 비트이다. 485 00:21:33,660 --> 00:21:36,675 >> 따라서 플로트가 부동 소수점 값은, 소수점 뭔가. 486 00:21:36,675 --> 00:21:38,550 그리고 사실, 그게 무슨이다 영화는 말하고 487 00:21:38,550 --> 00:21:42,240 그들은 부동에 대해 언급 할 때 약 소수점 값의 비트 일부 고정 된 수의 488 00:21:42,240 --> 00:21:43,940 실제 수를 나타내는 데 사용된다. 489 00:21:43,940 --> 00:21:45,740 뿐만 아니라 두 배라는 일이있다. 490 00:21:45,740 --> 00:21:47,860 이들은 자바로 존재 당신이 APCS 촬영 한 경우, 491 00:21:47,860 --> 00:21:51,540 더블, 같은 이름 고맙게도 , 제안에 두 번 플로트만큼 큽니다. 492 00:21:51,540 --> 00:21:54,540 아직 실수이다, 그것은 단지 더 많은 비트를 가지고 493 00:21:54,540 --> 00:21:58,390 있는, 더욱 정확합니다 또는 더 큰 숫자를 저장합니다. 494 00:21:58,390 --> 00:21:58,890 INT는 간단합니다. 495 00:21:58,890 --> 00:22:00,181 우리는 지난 시간에 대해 이야기했다. 496 00:22:00,181 --> 00:22:01,160 그냥 정수입니다. 497 00:22:01,160 --> 00:22:03,980 그리고 그것은 일반적으로 32이다 비트 또는 4 바이트. 498 00:22:03,980 --> 00:22:07,850 >> 그래서, 만약 당신이,의 지금 보자 32 bits-- 우리가 주 0에 이런 짓을, 499 00:22:07,850 --> 00:22:10,820 만약 당신이 아무리 briefly-- 32 비트, 가장 큰 무엇 500 00:22:10,820 --> 00:22:13,580 당신은 정수로 나타낼 수있는 수? 501 00:22:13,580 --> 00:22:16,080 부여 또는 걸릴? 502 00:22:16,080 --> 00:22:18,380 그것은, 40 억 같다 그리고 우리가하는 경우에만이다 503 00:22:18,380 --> 00:22:20,690 양수 만 표현. 504 00:22:20,690 --> 00:22:23,930 당신은 32 비트를 가지고 있고, 당신이 원하는 경우 뿐만 아니라 음수를 나타내고, 505 00:22:23,930 --> 00:22:27,100 사용자의 범위는 근본적으로, 음수 2000000000 양성에 20 억. 506 00:22:27,100 --> 00:22:29,250 그러나 일반적으로, 우리는 시작합니다 0에서 40 억까지 이동합니다. 507 00:22:29,250 --> 00:22:32,400 >> 만약 정확하게 알 필요하지 않지만 그냥 경우 우리는, 사실,이 볼 수 있습니다 508 00:22:32,400 --> 00:22:36,400 여기에, 작은 계산기를 엽니 다. 509 00:22:36,400 --> 00:22:41,070 나는 32이 수행 할 수 있습니다 그 방법을 정확하게 크다, 510 00:22:41,070 --> 00:22:43,190 얼마나 많은 값을 당신이 할 수있는 32 비트, 나타냅니다. 511 00:22:43,190 --> 00:22:44,442 그리고 약 40 억이다. 512 00:22:44,442 --> 00:22:46,900 그래서 우리는 그 번호를보고하겠습니다 몇 가지 다른 장소에서. 513 00:22:46,900 --> 00:22:48,890 하지만 당신은 더 이상 필요가있는 경우 보다 숫자, 514 00:22:48,890 --> 00:22:51,670 거기의 밝혀 뭔가 오래 오래라고합니다. 515 00:22:51,670 --> 00:22:54,005 그리고 오래 오래입니다 일반적으로 64 비트, 어떤 516 00:22:54,005 --> 00:22:56,380 이 크기의 순서의 의미 INT보다 더 큰. 517 00:22:56,380 --> 00:22:59,510 >> 그래서 난 가장 큰 발음 할 수 없습니다 당신이 나타낼 수있는 수, 518 00:22:59,510 --> 00:23:01,340 그러나 현저하게 커. 519 00:23:01,340 --> 00:23:05,190 지금으로 옆으로, 역사적으로, INT가 32 비트 인 경우, 520 00:23:05,190 --> 00:23:12,780 긴 길이는 64 비트, 어떻게 큰 긴 아닌 오래 오래입니까? 521 00:23:12,780 --> 00:23:16,500 522 00:23:16,500 --> 00:23:20,330 당신은 INT 이상 생각 것 하지만 어쩌면 작은 길이보다 긴 길이, 523 00:23:20,330 --> 00:23:21,400 하지만 실제로 달려있다. 524 00:23:21,400 --> 00:23:23,400 >> 그리고 그것은 하나를 밝혀 너무 좌절감, 525 00:23:23,400 --> 00:23:26,830 특정 시스템에서 코드를 작성과, 입니다 이러한 데이터 형식의 모든 526 00:23:26,830 --> 00:23:28,440 미리 결정된 값을 갖는다. 527 00:23:28,440 --> 00:23:29,771 때로는이 많은 비트를합니다. 528 00:23:29,771 --> 00:23:31,020 때로는 많은 비트를합니다. 529 00:23:31,020 --> 00:23:32,750 그래서 당신이 실제로 알고있다, 때때로, 어떤 하드웨어 530 00:23:32,750 --> 00:23:34,083 당신은에 당신의 소프트웨어를 실행하고 있습니다. 531 00:23:34,083 --> 00:23:36,960 다행히, 다른 언어와 현재 존재하는 다른 데이터 타입, 532 00:23:36,960 --> 00:23:38,400 당신이 더 정확하게 할 수 있습니다. 533 00:23:38,400 --> 00:23:41,220 음, 우리는 문자열을 보았다 우리는, 너무, 부울을 보았다 534 00:23:41,220 --> 00:23:43,960 하지만 사람들은 올 밝혀 단지 CS50 라이브러리. 535 00:23:43,960 --> 00:23:46,240 그래서 사람들은 만들어지는 것이 아니다 C.에 그 대신에, 536 00:23:46,240 --> 00:23:49,340 라는 그 파일에 와서 CS50.h, 그 우리는 결국거야 537 00:23:49,340 --> 00:23:51,831 의 층을 벗겨. 538 00:23:51,831 --> 00:23:53,830 하지만 지금, 그들은 단지이야 추가 데이터 유형. 539 00:23:53,830 --> 00:23:57,060 부울은 참 또는 거짓, 그리고이다 문자열은 일련의 문자입니다, 540 00:23:57,060 --> 00:23:57,970 단어있다. 541 00:23:57,970 --> 00:24:01,690 지금의 printf, 우리는 본 적이있다 자리는 %의 하나입니다. 542 00:24:01,690 --> 00:24:05,430 그리고 당신은, 지금, 할 수 있습니다 이러한 다른 예, 방법에서 추론 543 00:24:05,430 --> 00:24:07,720 당신은 자리를 가질 수 다른 데이터 유형. 544 00:24:07,720 --> 00:24:11,150 예를 들어, 추측을하면 경우 사용하여 하나의 문자를 인쇄하고 싶었다 545 00:24:11,150 --> 00:24:15,270 printf와, 자리 아마 %의 C입니다. 546 00:24:15,270 --> 00:24:19,650 그리고 당신을 인쇄하려면 자리 표시 자 %의 I와 정수입니다. 547 00:24:19,650 --> 00:24:25,150 %의 LLD는, 오래 오래 진수 값입니다 그러나 오래 오래, 즉 그 매핑하도록. 548 00:24:25,150 --> 00:24:28,640 부동 그리고 % f를 포인트 값 또는 이중에 대한, 549 00:24:28,640 --> 00:24:31,270 그래서 때때로 그들은 다시 사용할 것 다른 상황에서. 550 00:24:31,270 --> 00:24:33,350 그래서 우리는 확인하고 사용할 것 시간이 지남에 따라 그 중 일부. 551 00:24:33,350 --> 00:24:36,420 printf의 및 다른 기능과 지원 타인의 이스케이프 시퀀스, 552 00:24:36,420 --> 00:24:38,080 때때로, 이들은 필요하다. 553 00:24:38,080 --> 00:24:39,770 그래서 백 슬래시 n은 새로운 라인입니다. 554 00:24:39,770 --> 00:24:42,886 백 슬래시 (T)는, 누군가를 수행 자상을 먹고 싶어? 555 00:24:42,886 --> 00:24:43,760 청중 : 탭. 556 00:24:43,760 --> 00:24:44,551 데이비드 J 마란 : 탭. 557 00:24:44,551 --> 00:24:46,810 실제로 싶다면 , 탭을하지 인쇄하기 558 00:24:46,810 --> 00:24:49,940 공간의 고정 된 수 있지만 실제 탭 문자는, 당신은 당신을 때리지 마세요, 559 00:24:49,940 --> 00:24:53,490 키보드의 탭, 키, 일반적으로, 실제로 백 슬래시 (T)를 않습니다. 560 00:24:53,490 --> 00:24:57,750 백 슬래시 큰 따옴표, 내가 왜 그렇게할까요? 561 00:24:57,750 --> 00:24:58,250 권리? 562 00:24:58,250 --> 00:25:00,417 이유는 단지를 입력 할 수 없습니다 내 키보드에 큰 따옴표? 563 00:25:00,417 --> 00:25:02,124 청중 : 그렇지 않으면, 그것의, 때문에 564 00:25:02,124 --> 00:25:04,830 그것이 끝이라고 생각하는 것 의 인쇄 [좋아? 텍스트. ?] 565 00:25:04,830 --> 00:25:05,420 >> 데이비드 J 마란 : 맞아요. 566 00:25:05,420 --> 00:25:07,211 와, 기억 우리 printf의 예, 때를 567 00:25:07,211 --> 00:25:10,075 입력에서의 printf 통과했다, 그 입력 문자열의 왼쪽 568 00:25:10,075 --> 00:25:12,950 그 입력의 오른쪽에 봄은 물론, 큰 따옴표이었다. 569 00:25:12,950 --> 00:25:16,270 자신의 입력은 두 번있는 경우 그 중간에 인용, 570 00:25:16,270 --> 00:25:18,920 컴퓨터 잠재적 수도 에 관해서는, 혼란, 571 00:25:18,920 --> 00:25:20,760 이 따옴표를 수행 중간에 속하는? 572 00:25:20,760 --> 00:25:22,150 그것은 왼쪽 하나에 속해 있습니까? 573 00:25:22,150 --> 00:25:23,566 그것은 바로 하나에 속해 있습니까? 574 00:25:23,566 --> 00:25:26,780 그래서, 당신은 슈퍼를 만들고 싶어 분명, 당신은 큰 따옴표를 백 슬래시 수행 575 00:25:26,780 --> 00:25:30,480 이 탈출이야 있도록, 말하자면,하고 그것은 뭔가 다른으로 융합 아니에요. 576 00:25:30,480 --> 00:25:34,400 그리고, 여기에 몇 가지 다른 사람을 거기에 백 슬래시 R, 작은 따옴표, 0, 577 00:25:34,400 --> 00:25:36,510 그것은 우리뿐만 아니라, 시간이 지남에 볼 수 있습니다. 578 00:25:36,510 --> 00:25:37,760 그리고 지금, 어떤 기능에 대한? 579 00:25:37,760 --> 00:25:41,630 >> 우리가 지금까지 수행 할 수있는 작업 그래서 이 언어로, C, 잘, 우리는 보았다, 580 00:25:41,630 --> 00:25:44,320 printf의 물론, 모든 화면과 다른, 581 00:25:44,320 --> 00:25:47,140 여기, 우리가 사용하고 있다고 단지 과정의 처음 몇 주, 582 00:25:47,140 --> 00:25:48,485 때 CS50 라이브러리를 갖추고 있습니다. 583 00:25:48,485 --> 00:25:51,850 그리고 그들은, 그것은 훨씬 쉽게 C는 실제로 사용자의 입력을 얻을 수 있습니다. 584 00:25:51,850 --> 00:25:54,200 그것은 C로 그를 밝혀와 솔직히 몇 가지 언어로, 585 00:25:54,200 --> 00:25:57,450 그것은 할 수있는 목에 실제 고통 프롬프트 사용자 같은 간단한 것을, 586 00:25:57,450 --> 00:26:01,310 자신의 입력을위한 키보드합니다. 587 00:26:01,310 --> 00:26:03,240 그리고 이러한 기능은 쉽게. 588 00:26:03,240 --> 00:26:05,472 >> 그리고 그것은 또한 오류가 전반에 걸쳐 점검, 589 00:26:05,472 --> 00:26:07,180 그렇게 할 때, 즉 수요일 우리에 기억 590 00:26:07,180 --> 00:26:09,740 ,, 다시 시도, 경고를 보았다 나는 협력하지 않았을 때, 591 00:26:09,740 --> 00:26:11,700 나는 단어 대신 숫자를 입력? 592 00:26:11,700 --> 00:26:15,402 우리는 일찍 무거운 일을했습니다 에 사용자가 협력 확인합니다. 593 00:26:15,402 --> 00:26:17,860 그러나이 단지 교육이다 우리가 결국 것이다 바퀴, 594 00:26:17,860 --> 00:26:19,640 신속, 벗어. 595 00:26:19,640 --> 00:26:22,630 >> 요점의 반복에 따라서, 다음, 의 짧은 살펴 보자, 596 00:26:22,630 --> 00:26:26,620 우리는 스크래치에서 함께했던 많은처럼 C의 표준적인 구조 597 00:26:26,620 --> 00:26:28,580 이는 정렬하는 것을 의미한다 의, 회오리 바람 투어가 될, 598 00:26:28,580 --> 00:26:30,990 그냥 그래서 당신은 참조가 당신은 처음에 일을 본 적이있다. 599 00:26:30,990 --> 00:26:34,100 그러나 우리는 실제 코딩에 대해 알아 보겠습니다 이들 빌딩 블록의 일부를 사용한다. 600 00:26:34,100 --> 00:26:36,710 그래서 많은 스크래치처럼, 우리는 문을 좋아했을 때, 601 00:26:36,710 --> 00:26:41,570 C로, 우리가해야합니까, 잠깐, 말하거나 printf와 같은뿐만 아니라 기능. 602 00:26:41,570 --> 00:26:45,350 >> 우리는 조건을 표현하려면 C에서, 그것은 정신, 유사, 603 00:26:45,350 --> 00:26:47,840 그 퍼즐 조각에 그 스크래치에이처럼 보였다. 604 00:26:47,840 --> 00:26:49,850 하지만 그 대신, 우리 말 그대로 그냥 경우, 물품. 605 00:26:49,850 --> 00:26:51,830 그리고, 괄호, 우리는 조건을 넣어, 606 00:26:51,830 --> 00:26:54,807 해당 조건이 어디 우리는거야 부울 표현, 다시 전화. 607 00:26:54,807 --> 00:26:56,390 그리고 다시, 이것은 의사의 일종이다. 608 00:26:56,390 --> 00:26:58,830 그리고, 사실, //는 주석이다. 609 00:26:58,830 --> 00:27:00,550 그것은 자신에게 그냥 영어 단어입니다. 610 00:27:00,550 --> 00:27:03,000 그러나 이것은 일반적이다 , 경우, 상태의 구조. 611 00:27:03,000 --> 00:27:05,220 그러나 우리는 콘크리트를 볼 수 있습니다 단지 순간에 예. 612 00:27:05,220 --> 00:27:07,960 >> 당신을 갖고 싶어 도로에서 양방향 포크, 613 00:27:07,960 --> 00:27:11,740 많은처럼 우리는에 우리의 자원 봉사와 함께했던 수요일, 당신은 다른 경우,이있을 수 있습니다. 614 00:27:11,740 --> 00:27:16,020 그리고 당신은 세 번째를하려는 경우 최종 상태, 또는 기본 상황, 615 00:27:16,020 --> 00:27:19,006 당신이 단지 다른 블록을 가질 수 있습니다. 616 00:27:19,006 --> 00:27:21,880 그리고 유사하게, 부울 식으로, 당신이 그들을 함께 할 수있는합니다. 617 00:27:21,880 --> 00:27:24,296 그리고 우리는, 수요일에 보았다 그것은 하나의 앰퍼샌드 아니다, 618 00:27:24,296 --> 00:27:28,220 이것은 더 낮은 수준의 이유로 두하다는 우리는 결국 볼과 함께 플레이합니다. 619 00:27:28,220 --> 00:27:30,410 일을 함께 논리합 2 수직 막대입니다. 620 00:27:30,410 --> 00:27:32,240 미국 키보드에서,이 키는 일반적으로 621 00:27:32,240 --> 00:27:35,730 위의 Shift 키와 키 입력하거나 키를 돌려줍니다. 622 00:27:35,730 --> 00:27:38,620 >> 그리고이 일을 거기에 그 우리는 한 번 또는 두 번, 아마 사용합니다. 623 00:27:38,620 --> 00:27:42,570 그들은 기능적으로 동일 만약 다른 어떤 경우에 당신이 함께 할 수있는, 624 00:27:42,570 --> 00:27:44,950 또 다른 경우, 구성, 그러나 그들은 스위치라는 것입니다. 625 00:27:44,950 --> 00:27:48,020 그들은 매우 다를 수 있지만, 우리는거야 우리의 유통 코드의 일부 참조 626 00:27:48,020 --> 00:27:51,890 미래의 문제 세트, 대부분, 그냥 가끔 예뻐 있다고 627 00:27:51,890 --> 00:27:54,060 전체를 표현하는 방법 조건의 무리, 628 00:27:54,060 --> 00:27:57,590 중괄호를 많이하지 않고도 괄호 및 들여 쓰기의 많은. 629 00:27:57,590 --> 00:28:01,910 그러나 그들은 우리에게 더 이상주지 전원 우리가 이미 가지고있는 것보다. 630 00:28:01,910 --> 00:28:02,550 그리고 지금 루프. 631 00:28:02,550 --> 00:28:05,020 그리고이 하나, 우리는 볼 것이다 더 천천히 조금에서. 632 00:28:05,020 --> 00:28:08,470 그러나, 우리는 이러한 사용을 시작합니다, 특히 이미 익숙한 사람들을 위해. 633 00:28:08,470 --> 00:28:13,830 이 경우 믿을 수 없을만큼, 정식 방법입니다 비밀의 방법은 C에서 루프를 작성하는 634 00:28:13,830 --> 00:28:15,896 >> 이제 스크래치에 루프이었다 매우 간단. 635 00:28:15,896 --> 00:28:17,020 당신은, 영원히, 블록을 가지고있다. 636 00:28:17,020 --> 00:28:19,760 당신은, 반복, 블록이 단지 수는 입력해야합니다. 637 00:28:19,760 --> 00:28:22,220 그리고, 대한 루프, 당신은 할 수 이러한 아이디어를 구현하는 두 638 00:28:22,220 --> 00:28:23,595 하지만 좀 더 기술이다. 639 00:28:23,595 --> 00:28:25,994 하지만 솔직히, 그것은 또한이다 비교적 간단합니다. 640 00:28:25,994 --> 00:28:28,160 당신의 순서를 알게되면 작업, 당신 그대로 641 00:28:28,160 --> 00:28:30,910 단지 값을 연결하려고 무엇을 할 수있는 컴퓨터를 말한다. 642 00:28:30,910 --> 00:28:32,800 그래서 여기에 예입니다. 643 00:28:32,800 --> 00:28:38,040 이 루프입니다, 아주 단순히 하나의 숫자부터 계산 644 00:28:38,040 --> 00:28:40,187 다른 통해. 645 00:28:40,187 --> 00:28:42,020 그냥이기는로 만약하더라도 그것에 646 00:28:42,020 --> 00:28:44,660 아무 이전에 경험하지 이 언어, 어떤 번호 647 00:28:44,660 --> 00:28:46,920 아마에서 계산 시작합니까? 648 00:28:46,920 --> 00:28:47,730 확인, 0. 649 00:28:47,730 --> 00:28:50,240 그리고 나는 당신 때문이다 같은데요 , INT와 나는이 있다는 것을 참조 650 00:28:50,240 --> 00:28:51,073 하는 변수입니다. 651 00:28:51,073 --> 00:28:52,390 그것은 0으로 초기화합니다. 652 00:28:52,390 --> 00:28:55,670 >> 그리고 나중에, 그것은처럼 보이는 우리는 값을 printf의를 통과하고 있습니다. 653 00:28:55,670 --> 00:28:58,000 그리고, 사실, 나는 여기에 약간의 오타했다. 654 00:28:58,000 --> 00:28:59,850 하지만 쉽게 고정입니다. 655 00:28:59,850 --> 00:29:02,390 내가 여기에, 난을에 추가 할 수 있습니다. 656 00:29:02,390 --> 00:29:06,150 우리는 지금의 printf의 존재가 그 자리 값을 통과시켰다. 657 00:29:06,150 --> 00:29:08,299 그리고 통해 카운트 무슨 일이야? 658 00:29:08,299 --> 00:29:08,840 청중 : 50. 659 00:29:08,840 --> 00:29:09,340 50. 660 00:29:09,340 --> 00:29:10,160 49. 661 00:29:10,160 --> 00:29:10,910 데이비드 J 마란 : 49. 662 00:29:10,910 --> 00:29:13,340 그래서 50, 첫눈에 바로 보인다. 663 00:29:13,340 --> 00:29:16,990 그러나, 그것은 밝혀, 될 것입니다 우리가 계속 확인 우리의 조건. 664 00:29:16,990 --> 00:29:21,740 그리고 우리는 한 번 중지거야 나는 더 이상 50 미만이다. 665 00:29:21,740 --> 00:29:24,920 그래서이 루프, 반대로해야 너무 오래 전 50 미만이기 때문에, 실행합니다. 666 00:29:24,920 --> 00:29:28,891 하지만 50, 또는 51이된다 자마자, 또는 더 나쁜, 자동으로 중지해야합니다. 667 00:29:28,891 --> 00:29:29,390 괜찮아. 668 00:29:29,390 --> 00:29:31,200 >> 그래서 실제로 여기에 어떻게됩니까? 669 00:29:31,200 --> 00:29:33,160 그래서 이것의 순서는 루프 작업. 670 00:29:33,160 --> 00:29:35,440 하나, 당신이 가지고있는 초기화 소위. 671 00:29:35,440 --> 00:29:38,264 이 노란색 강조 덩어리 코드의 첫 번째 실행 672 00:29:38,264 --> 00:29:40,930 그것은 효과, 당을 갖는다 수요일, 당신은 아마 상상한다. 673 00:29:40,930 --> 00:29:45,500 이 변수는 내가 그것을라는 만듭니다 그 변수에 저장 값 0. 674 00:29:45,500 --> 00:29:47,560 그래서 이야기를이 시점에서 0이다. 675 00:29:47,560 --> 00:29:49,680 >> 다음 일은 그 이 구조에서 발생, 676 00:29:49,680 --> 00:29:51,540 조건이 확인됩니다 것입니다. 677 00:29:51,540 --> 00:29:54,325 그래서 나는 즉시 확인 나는 50 미만? 678 00:29:54,325 --> 00:29:57,700 그리고 물론, 대답 지금은 그래, 확실히이다. 679 00:29:57,700 --> 00:30:00,710 그래, 난, 0이고, 때문에 그것은 확실히 50 미만이다. 680 00:30:00,710 --> 00:30:03,866 그리고 무슨 일이 있다는 것입니다 코드의 라인이 실행됩니다. 681 00:30:03,866 --> 00:30:06,740 그리고 사실, 만약 다수있다 그 중괄호의 코드 라인, 682 00:30:06,740 --> 00:30:09,020 그들은 모두 하나씩 실행 얻을. 683 00:30:09,020 --> 00:30:11,450 >> 여기에 적용된다 분명히, 인쇄하기 684 00:30:11,450 --> 00:30:15,365 에가는 숫자 I, 0 후 1 다음 2 일. 685 00:30:15,365 --> 00:30:15,865 그런데 왜? 686 00:30:15,865 --> 00:30:17,410 왜이 증가됩니까? 687 00:30:17,410 --> 00:30:20,680 음, 네 번째 것은 그 일이 구문이다 688 00:30:20,680 --> 00:30:22,610 세미콜론 후 실행됩니다. 689 00:30:22,610 --> 00:30:27,506 내가 말하는 속기 방법입니다 ++; I의 값을 가지고, 그것에 추가 1; 690 00:30:27,506 --> 00:30:30,380 다음 주위 다음번 추가 그것은 1; 주위 다음에, 691 00:30:30,380 --> 00:30:31,330 여기에 1을 추가합니다. 692 00:30:31,330 --> 00:30:33,640 >> 그래서 우리는 계속하는 경우, 무슨 일이 일어날 것 693 00:30:33,640 --> 00:30:35,890 다음 나는 않을 것입니다 다시 난을 초기화합니다. 694 00:30:35,890 --> 00:30:38,290 나는 초기화 유지하는 경우 난에 0이 예 695 00:30:38,290 --> 00:30:41,110 때문에 끝이 없을 것 내가 0에 붙어있을 것입니다. 696 00:30:41,110 --> 00:30:43,870 하지만 무슨 일이 일어날 것은 조건이 확인됩니다, 697 00:30:43,870 --> 00:30:54,280 코드 줄이 실행 얻을 것이다, 나는, 증가합니다 698 00:30:54,280 --> 00:30:56,970 조건이 확인됩니다, 코드가 실행 얻을 것이다. 699 00:30:56,970 --> 00:30:59,790 그리고, 다시 자전거를 보관 다시, 다시, 700 00:30:59,790 --> 00:31:03,340 I ++ 50까지의 값을 유도한다. 701 00:31:03,340 --> 00:31:05,870 >> 조건은 다음 말한다 50 50 이하? 702 00:31:05,870 --> 00:31:09,360 대답은 물론, 아니하고, 그래서 전체 코드의 실행을 중지합니다. 703 00:31:09,360 --> 00:31:13,020 그리고 당신은 화면에 더 많은 코드가있는 경우 아래로 아래에, 그 다음에 일어날거야. 704 00:31:13,020 --> 00:31:17,530 그것은 이러한 중괄호에서 나타나고 그 후 더 인쇄하고 있습니다. 705 00:31:17,530 --> 00:31:20,470 >> 그래서 폭스 트롯에서 지금 농담, 그 당신은 아마 지금은 이해합니다. 706 00:31:20,470 --> 00:31:30,810 707 00:31:30,810 --> 00:31:31,560 항상 재미있다. 708 00:31:31,560 --> 00:31:34,110 그것은 ㅎ ㅎ처럼 가지, 관류 709 00:31:34,110 --> 00:31:38,370 그리고 당신이 생각하는 당신은해야하지 이 같은 유머에 웃음합니다. 710 00:31:38,370 --> 00:31:41,160 그러나 일부 테이크 아웃이 여기에, 교육적, 너무. 711 00:31:41,160 --> 00:31:43,577 그래서 난 것으로 나타났다 구문의 일부를 누락 712 00:31:43,577 --> 00:31:45,410 또는 폭스 트롯의이 누락 여기 구문의 조각. 713 00:31:45,410 --> 00:31:48,076 우리가 했어, 실종 다른 모든 예에서, 지금까지? 714 00:31:48,076 --> 00:31:51,599 715 00:31:51,599 --> 00:31:53,390 돌아 가기 때문에,이 즉, 다른 뭔가 716 00:31:53,390 --> 00:31:54,440 우리는 머지 않아 다시 올 거 야. 717 00:31:54,440 --> 00:31:55,398 무엇을 누락,하지만? 718 00:31:55,398 --> 00:31:55,908 그래. 719 00:31:55,908 --> 00:31:58,150 >> 청중 : [들림]의 초기화. 720 00:31:58,150 --> 00:31:58,470 >> 데이비드 J 마란 : OK. 721 00:31:58,470 --> 00:31:58,980 그래서 그래. 722 00:31:58,980 --> 00:32:03,210 그래서 실제로,이 음이 is--, 카운트가 초기화됩니다 723 00:32:03,210 --> 00:32:05,470 위까지, 또는 오히려, 위까지 선언했다. 724 00:32:05,470 --> 00:32:06,960 그래서 그 일을하는 또 다른 방법이다. 725 00:32:06,960 --> 00:32:08,685 하지만 한 줄에 비록 유효합니다. 726 00:32:08,685 --> 00:32:09,310 어떻게 여기에 대해? 727 00:32:09,310 --> 00:32:10,196 >> 청중 : 그것은 중괄호인가? 728 00:32:10,196 --> 00:32:10,640 >> 데이비드 J 마란 : 그래. 729 00:32:10,640 --> 00:32:12,080 그래서 중괄호가 누락되었습니다. 730 00:32:12,080 --> 00:32:15,495 그러나이 코드는, 내가 자신의 신용에, 의미, 실제로, 구문 적으로 유효합니다. 731 00:32:15,495 --> 00:32:17,610 그것은 밝혀, 당신은하지 않습니다 중괄호가 필요 732 00:32:17,610 --> 00:32:21,691 당신은 단지 하나의 코드 행이있는 경우 그 당신은 루프의 내부에서 실행하려는. 733 00:32:21,691 --> 00:32:24,190 이제 우리는 항상 클래스와의 우리의 유통의 모든 코드, 734 00:32:24,190 --> 00:32:26,730 중괄호 포함 어쨌든, 단지 명확성을 위하여. 735 00:32:26,730 --> 00:32:29,010 그러나 교과​​서에서 그 실현 온라인 예, 736 00:32:29,010 --> 00:32:31,300 당신은 매우 잘 곱슬 볼 수 있습니다 언젠가 실종 중괄호. 737 00:32:31,300 --> 00:32:34,850 그리고 그 확인을 무엇 만약 당신이 들여 쓰기 의도 한 738 00:32:34,850 --> 00:32:38,650 코드의 단지 하나의 라인이며,하지 잠재적으로 여러 줄의 코드. 739 00:32:38,650 --> 00:32:39,150 괜찮아. 740 00:32:39,150 --> 00:32:44,500 문제에 따라서 관련 부정확는 오버 플로우의 문제입니다 741 00:32:44,500 --> 00:32:48,560 의미에서 그와 마찬가지로, 정수는 그들에게 한계를해야합니까 742 00:32:48,560 --> 00:32:49,970 다만 부동 소수점 값을 같은? 743 00:32:49,970 --> 00:32:53,120 세계 부동 ​​소수점에서 값은, 우리는 따라서 정확하게 할 744 00:32:53,120 --> 00:32:55,710 때때로, 그 후 나쁜 일이 일어날 수있다 745 00:32:55,710 --> 00:32:57,760 우리의 프로그램은 버그 및 오류가 될 수 있습니다. 746 00:32:57,760 --> 00:33:00,050 지금도 정수와, 당신은 문제가 실​​행할 수 있습니다. 747 00:33:00,050 --> 00:33:03,820 이제 정수가 없습니다 소수점이나 뒤에 숫자. 748 00:33:03,820 --> 00:33:07,130 그것은 일반적으로 단지 자연수이다. 749 00:33:07,130 --> 00:33:09,430 그래서 INT와 무엇이 잘못 갈 수 있을까? 750 00:33:09,430 --> 00:33:12,210 나는 INT에 사용하고있는 경우 무슨 일을 갈 수 카운트? 751 00:33:12,210 --> 00:33:13,230 많은 간단 보인다. 752 00:33:13,230 --> 00:33:13,873 그래. 753 00:33:13,873 --> 00:33:16,240 >> 청중 : 만약 수 가져 [들림] 754 00:33:16,240 --> 00:33:17,073 >> 데이비드 J 마란 : 그래. 755 00:33:17,073 --> 00:33:20,820 당신이 그렇게 높은 계산 당신이 경우 어떻게 정말 큰 수를 표현할 수 없습니다. 756 00:33:20,820 --> 00:33:21,320 권리? 757 00:33:21,320 --> 00:33:23,910 어떤 시점에서, 당신은거야 경계를 초과 758 00:33:23,910 --> 00:33:27,077 32 비트 값 또는 64 비트 값. 759 00:33:27,077 --> 00:33:29,410 이제 다시, 어떻게 모르겠어요 64 비트 값을 발음하기, 760 00:33:29,410 --> 00:33:32,230 하지만 32 비트 정수로 알고, 그것이 될 수있는 가장 큰 값, 761 00:33:32,230 --> 00:33:35,490 그것은 단지 긍정적 있다면 값은, 대략 40 억이다. 762 00:33:35,490 --> 00:33:39,000 내가 50 억을 계산하려고한다면, 뭔가 일어날 것입니다. 763 00:33:39,000 --> 00:33:41,050 그러나의 사실, 일어날 수있는, 보자. 764 00:33:41,050 --> 00:33:44,570 정수의 세계에서 오버 플로우, 어디, 어떤 의미에서, 765 00:33:44,570 --> 00:33:48,270 용량 오버플 정수, 어떤 일이 일어날 수 있는가? 766 00:33:48,270 --> 00:33:51,190 >> 그래서 여기 진수 야, 그것은 0으로 후퇴합니다. 767 00:33:51,190 --> 00:33:54,630 그것은 모든 일의, 그리고 자리이다 이, 2의 거듭 제곱은, 768 00:33:54,630 --> 00:33:55,980 그래서 이것은 바이너리입니다. 769 00:33:55,980 --> 00:33:59,416 그래서 이러한 화면 8, 1 비트이다. 770 00:33:59,416 --> 00:34:01,290 그리고 당신이 기억하는 경우 또는 당신은 신속하게 수학을, 771 00:34:01,290 --> 00:34:06,074 어떤 값이 표시되고 여기에 이​​들 8 1 비트? 772 00:34:06,074 --> 00:34:06,950 255. 773 00:34:06,950 --> 00:34:09,260 그리고 당신은 매우 확실하지 않았다하더라도 수학, 당신은 그것을 할 수 있습니다. 774 00:34:09,260 --> 00:34:10,550 아니면 그냥 종류의 수 이유의 그것을 통해, 775 00:34:10,550 --> 00:34:12,633 난 경우, 잠깐 8 비트 값을 나타내는, 776 00:34:12,633 --> 00:34:17,750 나는 256의 값을 가지고, 그러나 처음에는 0이며 777 00:34:17,750 --> 00:34:19,909 난 그냥 알고 가장 큰, 255이 될 것입니다 778 00:34:19,909 --> 00:34:21,510 그리고이 하나있을거야. 779 00:34:21,510 --> 00:34:26,060 >> 그래서이 값으로 1을 추가하려고한다고 가정합니다. 780 00:34:26,060 --> 00:34:28,750 당신은 학년에 무엇을 할 것입니다 학교에 1을 가산하고, 그 때 781 00:34:28,750 --> 00:34:31,139 정말 때문에 적합하지 않습니다 당신은 일을 수행 할 수 있나요? 782 00:34:31,139 --> 00:34:34,380 가는이 숫자는 무엇입니까 당신이 1을 추가하는 경우가 있습니까? 783 00:34:34,380 --> 00:34:37,030 이 0이 될 것입니다. 784 00:34:37,030 --> 00:34:37,530 권리? 785 00:34:37,530 --> 00:34:41,139 더 bits--했고, 경우에 때문에 나는거야 , 가지, 시도 here-- 그것을 입력 786 00:34:41,139 --> 00:34:44,710 우리는 더 많은 비트를했다면 우리 (1)를 추가 여기에 할 수있는, 787 00:34:44,710 --> 00:34:47,370 그리고, 우리는이를 얻을 것. 788 00:34:47,370 --> 00:34:48,739 으악. 789 00:34:48,739 --> 00:34:52,250 우리는 여기에 1 비트 모든 방법이있을 것이다. 790 00:34:52,250 --> 00:34:55,530 >> 그러나 이는 한정된 경우 값이 단지 8 비트의, 791 00:34:55,530 --> 00:34:57,480 그리고는 미리 정해진이다 컴퓨터에 의해, 792 00:34:57,480 --> 00:34:59,370 1 효과적으로 거기있다. 793 00:34:59,370 --> 00:35:00,980 그것은 단지 종류의 절벽에서 떨어진다. 794 00:35:00,980 --> 00:35:05,480 그래서 당신은 255에 1을 추가하는 경우, 어떤 당신은 분명히 값을받을 수 있나요? 795 00:35:05,480 --> 00:35:06,180 0. 796 00:35:06,180 --> 00:35:09,700 그리고 실수로 숫자 때문에, 아마도, 실수, 797 00:35:09,700 --> 00:35:12,040 이처럼 주위 포장 끝. 798 00:35:12,040 --> 00:35:14,079 그렇다면 이것의 의미가 될 수 있습니까? 799 00:35:14,079 --> 00:35:15,620 글쎄, 몇 가지 다른 일이있다. 800 00:35:15,620 --> 00:35:18,751 그래서 하나, 그것은 찾고 결국 않습니다 0 같은 실수, 801 00:35:18,751 --> 00:35:20,750 하지만 당신은 종류의 볼 수 있습니다 심지어 현실 세계에서, 802 00:35:20,750 --> 00:35:23,416 더 나은 또는 더 나쁜, 제한이 아이디어의 표현. 803 00:35:23,416 --> 00:35:26,630 예, 당신의 어떤 누구 이제까지 레고 스타 워즈을했다, 804 00:35:26,630 --> 00:35:28,880 아는 사람 일이 않습니다 동전의 최대 개수 805 00:35:28,880 --> 00:35:32,032 당신은 레고 스타 워즈에서 수집 할 수 있습니다? 806 00:35:32,032 --> 00:35:35,640 에 기초한 추측을 가지고 오늘의 주요 질문. 807 00:35:35,640 --> 00:35:39,140 그것은 256 또는 255보다 더 큰. 808 00:35:39,140 --> 00:35:40,330 그것은 40 억이다. 809 00:35:40,330 --> 00:35:42,080 그래서 그것은 밝혀,과 일부 people--이있다 810 00:35:42,080 --> 00:35:46,080 일부 인터넷 검색을 확인 마지막 night-- 40 억 금화를 입수했습니다, 811 00:35:46,080 --> 00:35:47,730 또는 레고 스타 워즈에서 이것 저것. 812 00:35:47,730 --> 00:35:49,860 분명히 있지만, 거기에 방법은 게임을 속여, 813 00:35:49,860 --> 00:35:53,222 버그의보고와 기능이있다, 그 다음을 수행 할 수 있습니다 단지 많은 포인트를 많이 적립. 814 00:35:53,222 --> 00:35:54,930 그러나 가장 큰 수를 값에 따라 815 00:35:54,930 --> 00:35:58,360 누군가 내가이 스크린 샷에 온라인 발견, 실제로 40 억이다. 816 00:35:58,360 --> 00:35:59,240 >> 이제 그 이유는 무엇입니까? 817 00:35:59,240 --> 00:36:03,040 그것은 정확하게 40 억의 아마 누군가가 결정하기 때문에, 818 00:36:03,040 --> 00:36:05,500 사람이 게임을 작성했다, 그들이 40 억을 수행 할 수 있다는 것을, 819 00:36:05,500 --> 00:36:07,340 뭔가, 뭔가, 뭔가, 값처럼 나는 올려 820 00:36:07,340 --> 00:36:10,256 계산기와 이전,하지만 그것은 인간에 대한 조금 청소기의 821 00:36:10,256 --> 00:36:12,610 최대 수 대답 coins-- 또는 스터드, 822 00:36:12,610 --> 00:36:14,860 그들은 당신 것을 them-- 전화로 수집 할 수있는 40 억이다. 823 00:36:14,860 --> 00:36:16,290 그리고, 이것은 왜? 824 00:36:16,290 --> 00:36:20,310 어떻게 레고 게임이다 카운터를 구현 825 00:36:20,310 --> 00:36:23,420 즉, 추적하는 데있어 당신은 동전의 수? 826 00:36:23,420 --> 00:36:24,266 그들은 무엇을 사용하고? 827 00:36:24,266 --> 00:36:26,390 청중 : 그것은 중지 40 억 후에 계산. 828 00:36:26,390 --> 00:36:27,720 데이비드 J 마란 : 그것은 중지 40 억 후에 계산, 829 00:36:27,720 --> 00:36:29,525 어떤 당신이 할 수 있음을 의미 프로그래머로, 추론, 830 00:36:29,525 --> 00:36:31,960 그들은 아마 걸 32 비트 정수를 사용하여. 831 00:36:31,960 --> 00:36:35,380 프로그래머처럼 말 그대로 단지 입력 된, INT, 자신의 코드에서, 832 00:36:35,380 --> 00:36:39,620 그리고 그 변수의 유형이다 그 그들은 다른 사람의 코드를 저장하는 데 사용하고 있습니다. 833 00:36:39,620 --> 00:36:42,230 그래서 다른 양상을있다 제한 이러한 종류의. 834 00:36:42,230 --> 00:36:45,063 >> 그래서 나는이 game--을 연주 해본 적이 없어 나는 역사에 위로 읽고 있었다 835 00:36:45,063 --> 00:36:48,470 much--으로 만에 확인 문명의 원래 버전 836 00:36:48,470 --> 00:36:53,240 당신은 분명히 각각의 상호 작용 다른과 전쟁을하거나 평화를 가질 수 있습니다, 837 00:36:53,240 --> 00:36:56,590 간디는 하나 있어야했다 가장 평화로운 자, 나는 838 00:36:56,590 --> 00:36:59,280 먼저, 이해 문명의 버전. 839 00:36:59,280 --> 00:37:03,250 사실, 1 내지 10의 스케일, 그의 공격성은 1이었다. 840 00:37:03,250 --> 00:37:05,620 그래서 아무리 약간 공격적, 분명히. 841 00:37:05,620 --> 00:37:11,590 >> 그러나 어떤 시점에서, 당신은 분명히 있습니다 해당 지역에서 민주주의를 설치합니다. 842 00:37:11,590 --> 00:37:14,900 그리고 당신은 민주주의를 설치하는 경우 게임의 버전으로, 843 00:37:14,900 --> 00:37:17,320 다음 침략 수준은 내려갑니다. 844 00:37:17,320 --> 00:37:18,460 그것은 좋은 일이다. 845 00:37:18,460 --> 00:37:20,890 사람들은 더 조용하다 분명히, 그 상황에서. 846 00:37:20,890 --> 00:37:23,190 그러나 분명히, 누군가가했다 , 만약, 조건이없는 847 00:37:23,190 --> 00:37:24,780 코드의 원래 버전. 848 00:37:24,780 --> 00:37:30,650 >> 그래서 간디의 침략 수준은 갔다 (1) 양, 마이너스 2, 1 음에, 849 00:37:30,650 --> 00:37:33,840 하지만 게임은하지 않습니다 음수를 이해합니다. 850 00:37:33,840 --> 00:37:38,680 그래서 일어난 간디의 침략이었다 레벨 1, 음극에, 0, 1에서 갔다 851 00:37:38,680 --> 00:37:40,900 효과 있던 되고 주위에 포장 852 00:37:40,900 --> 00:37:44,690 가장 공격적인 문자 게임에서 255의 값으로, 853 00:37:44,690 --> 00:37:46,630 1 내지 10의 스케일. 854 00:37:46,630 --> 00:37:49,887 그리고 그 이후,이되었습니다 이 게임의 더 화신, 855 00:37:49,887 --> 00:37:51,720 그들은으로 유지했습니다 부활절 달걀의 종류, 856 00:37:51,720 --> 00:37:53,870 간디는 분명히입니다 그래서 정말 공격적. 857 00:37:53,870 --> 00:37:56,740 그러나의 결과였다 아주 간단한 프로그래밍 오류 858 00:37:56,740 --> 00:37:58,630 게임의 초기 버전. 859 00:37:58,630 --> 00:38:02,860 >> 이제 더 방해하고, 더 최근에, 보잉 787 860 00:38:02,860 --> 00:38:05,720 있는 것으로 기록되었다 디바이스의 버그가 아닌 종류 861 00:38:05,720 --> 00:38:07,340 당신은 특히 버그를 갖고 싶어. 862 00:38:07,340 --> 00:38:10,130 그리고 증상이 있음을 나는 읽을 것 여기에 온라인 기사에서, 863 00:38:10,130 --> 00:38:13,840 이, 모델 787 비행기이었다 그는 지속적으로 전원을 끈 864 00:38:13,840 --> 00:38:18,030 248일 모든 잃을 수있다 교류, AC, 865 00:38:18,030 --> 00:38:20,850 때문에 전력, 발전기 제어 장치, 866 00:38:20,850 --> 00:38:23,330 GCUs, 동시에 절대 안전 모드로 전환. 867 00:38:23,330 --> 00:38:26,790 그래서이 발행 경고했다 이 문제는 발견되었을 때. 868 00:38:26,790 --> 00:38:28,750 이 조건은 발생 소프트웨어 카운터에 의해, 869 00:38:28,750 --> 00:38:32,230 , GCUs 내부 그래서 정수 또는 변수, 870 00:38:32,230 --> 00:38:36,850 248 후 그 뜻 오버 플로우 연속 전력의 일. 871 00:38:36,850 --> 00:38:40,350 보잉의 과정에 GCU 소프트웨어 업그레이드를 개발하는 872 00:38:40,350 --> 00:38:42,350 안전하지 않은 상태를 해결합니다. 873 00:38:42,350 --> 00:38:44,226 >> 미사일 같은 많은 시나리오에있어서, 874 00:38:44,226 --> 00:38:46,850 그들은 변수의 어떤 종류가 있었다 즉, 카운팅하고, 카운팅 된 875 00:38:46,850 --> 00:38:50,720 및 계산하지만, 점차 넘쳐 그 기능의 경계 876 00:38:50,720 --> 00:38:54,890 마찬가지로 지긋 지긋한 비행기를했다 변수 오버 플로우가 877 00:38:54,890 --> 00:38:56,410 실행의 충분한 시간 후. 878 00:38:56,410 --> 00:38:59,240 그리고 혀 -에 - 뺨 방법 이 문제를 해결 작업 879 00:38:59,240 --> 00:39:04,400 진정으로, 재부팅, 비행기의 모든를하다 메모리가 지워 가도록 (듯이) 2백47일, 880 00:39:04,400 --> 00:39:06,100 그리고 변수는 0으로 돌아갑니다. 881 00:39:06,100 --> 00:39:09,410 그러나 실현이 매우 인 소프트웨어의 큰 화신, 882 00:39:09,410 --> 00:39:14,070 그러나 우리는 애플에 대해 듣고, 특히 자동차로가는 운영 체제, 883 00:39:14,070 --> 00:39:18,030 구글에서 자동차를자가 운전 및 소프트웨어의 화신의 수 884 00:39:18,030 --> 00:39:21,000 우리의 일상 생활, 텔레비전에서 시계, 그리고 더 많은, 885 00:39:21,000 --> 00:39:24,950 소프트웨어에 의해 둘러싸여 실현, 이는 모두가 우리 인간에 의해 작성되었습니다. 886 00:39:24,950 --> 00:39:28,150 >> 그리고 우리 모두가 곧 발견 할 것이다로서, 아주 쉽고 아주 전형적인이다 887 00:39:28,150 --> 00:39:30,250 소프트웨어를 작성할 때 실수를 할 수 있습니다. 888 00:39:30,250 --> 00:39:32,745 그리고 당신이 그들을 잡을하지 않는 경우, 나쁜 일이 발생할 수 있습니다. 889 00:39:32,745 --> 00:39:35,400 지금 때때로, 일부 재미있는 일들이 일어날 수있다 890 00:39:35,400 --> 00:39:38,280 또는 적어도 때로는 우리 일부 불량을 기대하는 것을 알고있다. 891 00:39:38,280 --> 00:39:41,550 그래서 0 등급에서 0으로 나눈 학교는 일반적으로 나쁜 일입니다. 892 00:39:41,550 --> 00:39:43,050 그것은 정의입니다. 893 00:39:43,050 --> 00:39:46,440 그리고 그것은 out-- 켜지고의가 있는지 확인하자 이 작업을 선택할 수 있습니다 내 마이크는 애플을 up-- 894 00:39:46,440 --> 00:39:47,790 최근에 몇 가지 재미를했다. 895 00:39:47,790 --> 00:39:48,850 그래서 나는 여기에 아이폰을 가지고있다. 896 00:39:48,850 --> 00:39:54,160 나는 시리에게 말을 물어 갈거야 나에게 0으로 나눈 0에 대한 답을 제공합니다. 897 00:39:54,160 --> 00:39:55,850 0 0 무엇을 나누어 져? 898 00:39:55,850 --> 00:39:59,350 899 00:39:59,350 --> 00:40:02,230 >> SIRI : 0을 가지고 상상 쿠키는, 당신은 균등하게 분할 900 00:40:02,230 --> 00:40:03,540 0 친구들 사이. 901 00:40:03,540 --> 00:40:05,810 각 사람은 얼마나 많은 쿠키를 얻을 수 있습니까? 902 00:40:05,810 --> 00:40:06,350 참조? 903 00:40:06,350 --> 00:40:07,660 그것은 이해가되지 않습니다. 904 00:40:07,660 --> 00:40:10,540 그리고 쿠키 몬스터는 슬픈 어떤 쿠키가 없는지 확인합니다. 905 00:40:10,540 --> 00:40:13,987 그리고 당신은 슬픈 당신은 친구가 없습니다. 906 00:40:13,987 --> 00:40:15,570 데이비드 J 마란 : 그것은 독이 가지입니다. 907 00:40:15,570 --> 00:40:17,550 그래서 그냥 거기에 무슨 말을했는지입니다. 908 00:40:17,550 --> 00:40:21,380 그것은이 정의되어 있지 않은 것, 부정의, 실제로, 많은 프로그래밍 언어 909 00:40:21,380 --> 00:40:24,950 또는, 정말, 컴파일러는 것 때 프로그램에서, 감지, 910 00:40:24,950 --> 00:40:27,050 0에서 0을 분할하려고합니다. 911 00:40:27,050 --> 00:40:29,830 이 생각보다 재​​미있다 그 분명히, 쿠키 몬스터 912 00:40:29,830 --> 00:40:31,270 요즘 트위터에 있습니다. 913 00:40:31,270 --> 00:40:37,610 그리고 그는 이것으로, 이것에 대답, 이는 절대적으로 사랑 스럽다. 914 00:40:37,610 --> 00:40:40,110 하지만 이제에 대해 간략히 살펴 보겠습니다 다른 구조의 커플 915 00:40:40,110 --> 00:40:43,459 다음이 중 일부를 넣어 코드는 좋은 방법으로, 사용할 수 있습니다. 916 00:40:43,459 --> 00:40:45,250 그래서 외에 밝혀 루프, 거기에 917 00:40:45,250 --> 00:40:49,174 뭔가 것으로, while 루프를 호출 다른 외모와 구현 918 00:40:49,174 --> 00:40:51,590 조금 differently--과 우리는 결국 examples-- 볼 수 있습니다 919 00:40:51,590 --> 00:40:53,500 하지만 어떤 의미에서, 그것 때문에 간단 920 00:40:53,500 --> 00:40:56,670 당신이 초기화하는 것을 허용하지 않으며, 루프의 경계 내에서 업데이트 할 수 있습니다. 921 00:40:56,670 --> 00:40:57,794 당신은 아직도 그것을 구현할 수 있습니다. 922 00:40:57,794 --> 00:41:01,219 그래서 당신은 똑같은 일을 할 수있다 while 루프와 for 루프와 같이, 923 00:41:01,219 --> 00:41:03,260 그러나 당신의 구문, ultimately-- 우리는 결국 겠지만 924 00:41:03,260 --> 00:41:04,551 see-- 다른 될 것입니다. 925 00:41:04,551 --> 00:41:07,450 DO 루프 동안도있다한다 실제로 약간 다릅니다 926 00:41:07,450 --> 00:41:09,640 그 반면에 대한 루프 항상 while 루프 927 00:41:09,640 --> 00:41:13,005 경우, 먼저 자신의 상태를 확인 당신은 바닥에이 일의 상단을 읽고 928 00:41:13,005 --> 00:41:16,440 이 것처럼 일종의 보인다 그것의 마지막 때문에 그것의 상태를 확인 929 00:41:16,440 --> 00:41:17,910 코드의 진정한 마지막 줄. 930 00:41:17,910 --> 00:41:20,580 그리고 실제로, 그 유용 할 것 우리가 쓰기 특정 프로그램에, 931 00:41:20,580 --> 00:41:23,746 그냥 맹목적으로 뭔가를하려는 경우 결국 상태를 확인합니다. 932 00:41:23,746 --> 00:41:25,205 즉, 반드시 나쁜 것은 아니다. 933 00:41:25,205 --> 00:41:27,912 우리가 변수를 원하는 경우에, 우리는 할 수있다 그것은 다른 몇 가지 방법입니다. 934 00:41:27,912 --> 00:41:30,290 그리고 우리는 폭스 트롯에서 본 만화, 그 일을하는 한 가지 방법, 935 00:41:30,290 --> 00:41:33,400 여기서 당신은 당신의 변수를 선언, INT 카운터 세미콜론 같은, 936 00:41:33,400 --> 00:41:36,570 그리고 아마 다음을 later-- 라인, 어쩌면 10 라인 later-- 937 00:41:36,570 --> 00:41:37,800 당신은 실제로 그것을 초기화합니다. 938 00:41:37,800 --> 00:41:42,230 코드 그래서이 2 선 int 형의 변수를 선언 939 00:41:42,230 --> 00:41:44,930 이 제공되도록하고, 카운터를 호출 나를 충분히 비트는 int를 개최합니다. 940 00:41:44,930 --> 00:41:48,230 다음 결국, 그것을 둔다 그 변수에 값 0. 941 00:41:48,230 --> 00:41:51,250 그것은에 0과 1을 정렬 패턴, 우리가 지난 주부터 알고, 942 00:41:51,250 --> 00:41:53,260 우리가 0으로 알고 수를 나타냅니다. 943 00:41:53,260 --> 00:41:56,920 아니면 솔직히,이 많은 작업을 수행 할 수 있습니다 더 간결하게, 그냥이를 좋아한다. 944 00:41:56,920 --> 00:41:59,390 >> 이제 우리는 또한이 함수를 호출 할 수있는 능력. 945 00:41:59,390 --> 00:42:03,070 그리고 사실, 여기에 2 줄의 프로그램 또는 그 발췌, 946 00:42:03,070 --> 00:42:06,157 그 사실은 우리를 수 코드를 작성하는 947 00:42:06,157 --> 00:42:08,990 user--에서 문자열을 가져옵니다 많은 우리의 자원 봉사 순간 같은 ago-- 948 00:42:08,990 --> 00:42:11,320 결과에 저장 이름라는 변수, 949 00:42:11,320 --> 00:42:15,470 그리고 then-- 많은 우리의 자원 봉사와 같은 이 값 밖으로 printf-- 지문 950 00:42:15,470 --> 00:42:19,180 두 개의 인수를 전달하여, 문자열, 변수 다음에 951 00:42:19,180 --> 00:42:20,781 이름, 그 자체라고. 952 00:42:20,781 --> 00:42:23,155 그럼 전에 살펴 보자 우리는 거기에 다시 마리오에 올 953 00:42:23,155 --> 00:42:26,010 이 지금, 몇 가지 예에. 954 00:42:26,010 --> 00:42:30,537 >> 나는 앞서 열린 갈거야 최대의 기능 - 0.c, 가정 해 봅시다. 955 00:42:30,537 --> 00:42:33,120 그리고 언제나처럼,이 코드는 물론 웹 사이트에서 사용할 수, 956 00:42:33,120 --> 00:42:35,660 그래서 당신은에 따라 재생할 수 있습니다 가정 및 것은 나중에 봐. 957 00:42:35,660 --> 00:42:40,400 그것의에서 그러나 여기 프로그램입니다 라인 (17)에서 22 본질,. 958 00:42:40,400 --> 00:42:43,270 주요 프로그램입니다 프로그램은 항상 시작하는 것입니다. 959 00:42:43,270 --> 00:42:46,980 이 프로그램은 분명히 것입니다 대장을 당신의 이름을 인쇄합니다. 960 00:42:46,980 --> 00:42:50,320 그런 다음,하여 GetString를 호출하는거야 처럼 우리는 우리의 자원 봉사자들과 함께했다. 961 00:42:50,320 --> 00:42:53,365 그리고 나서,이 흥미 롭다 그것은 PrintName를 호출하는 것입니다. 962 00:42:53,365 --> 00:42:56,490 그것은 거기, 모든 시간을 밝혀 PrintName라는 함수가 될 것으로 보인다. 963 00:42:56,490 --> 00:42:57,614 그 사람의 이름을 인쇄합니다. 964 00:42:57,614 --> 00:43:01,210 우리는에서의 printf를 사용할 필요가 없었다 작년, PrintName이있다. 965 00:43:01,210 --> 00:43:03,500 >> 그러나 그것은 오해의 소지 PrintName는하지 않기 때문에 966 00:43:03,500 --> 00:43:06,760 C. 사람들은하지 않았다 함께 40 또는 50 년 전을 발명, 967 00:43:06,760 --> 00:43:07,990 나는 대신했다. 968 00:43:07,990 --> 00:43:10,330 그리고 사실, 나는 이동하면 또한, 통지 아래로 969 00:43:10,330 --> 00:43:14,200 난 내 자신을 작성하는 방법 C의 기능을 우리는 결국거야 970 00:43:14,200 --> 00:43:16,319 우리가 말을 계속 이유를 설명, 무효, 몇 곳에서, 971 00:43:16,319 --> 00:43:18,110 하지만 오늘,하자 이름 만 보면. 972 00:43:18,110 --> 00:43:20,905 >> 라인 (24)에, 당신은 원하는 경우 자신의 함수를 만들 973 00:43:20,905 --> 00:43:22,780 당신은 문자 그대로 쓰기 함수의 이름입니다. 974 00:43:22,780 --> 00:43:24,340 나는 PrintName를 선택했다. 975 00:43:24,340 --> 00:43:26,159 괄호에서 다음 지정 어떤 종류의 976 00:43:26,159 --> 00:43:28,450 입력, 그리고 얼마나 많은 당신 이 기능이 먹고 싶어. 977 00:43:28,450 --> 00:43:31,906 이 경우, 내가 먹고 싶어 1 변수라는 이름, 978 00:43:31,906 --> 00:43:34,030 그것은 될 것 형, 문자열, 그래서거야 979 00:43:34,030 --> 00:43:35,780 일부 문자 순서합니다. 980 00:43:35,780 --> 00:43:39,170 그리고,이 program-- 스크래치처럼 많은, 981 00:43:39,170 --> 00:43:42,590 사용자 지정 퍼즐을 가질 수 pieces-- 이 사용자 지정 동작을해야 할 것입니다. 982 00:43:42,590 --> 00:43:46,760 그것은의 printf를 호출하는거야 에 전달 안녕하세요, 자리, 983 00:43:46,760 --> 00:43:49,110 후 플러그 것 어떤 사용자에 불렀다. 984 00:43:49,110 --> 00:43:51,450 >> 그래서이의 예입니다 무엇 컴퓨터 과학자 것 985 00:43:51,450 --> 00:43:55,090 호출 추상화 또는 기능 단지이다 분해, 986 00:43:55,090 --> 00:43:58,110 제 말은 경우인가의 멋진 방법 당신이 높은 수준의 아이디어를 좋아한다 987 00:43:58,110 --> 00:44:01,569 같은 나는 기능을 원하는 당신은 절대적으로, 누군가의 이름을 인쇄 988 00:44:01,569 --> 00:44:04,360 말 그대로 다음의 printf를 작성하고 있습니다 원하는 인수를 전달, 989 00:44:04,360 --> 00:44:07,340 프로그램이 작동합니다, 그것은 수요일부터 가지고있다. 990 00:44:07,340 --> 00:44:10,510 하지만 당신은 떨어져 추상적으로 시작할 수 있습니다 이름을 인쇄하는 개념. 991 00:44:10,510 --> 00:44:13,270 당신은 그것을 이름을 부여 할 수 있습니다, PrintName,이 같은 992 00:44:13,270 --> 00:44:15,280 주 0에서 레이어링의 생각이다. 993 00:44:15,280 --> 00:44:19,910 >> 이제부터, 나는 당신이 알 필요가 없습니다 또는 PrintName 구현 방법 신경. 994 00:44:19,910 --> 00:44:22,470 네, 그것은 아마, printf의 사용 사람이 사용하는 것을 알고,하지 않는 이유는 무엇입니까? 995 00:44:22,470 --> 00:44:23,410 누가 무슨 상관이 야? 996 00:44:23,410 --> 00:44:26,034 지금은 여기에 이​​야기하고, 대신 아래로 여기. 997 00:44:26,034 --> 00:44:28,700 그리고 실제로, 우리의 프로그램은 얻을로 고급하고 세련된, 998 00:44:28,700 --> 00:44:32,550 당연히 우리는 계속 복용거야 낮은 수준의 퍼즐 조각이 존재한다는 것을. 999 00:44:32,550 --> 00:44:34,780 우리는 그들을 썼다 때문에 또는 다른 사람이 그렇게했다 1000 00:44:34,780 --> 00:44:36,910 우리는 그 위에 구축 할 수있다. 1001 00:44:36,910 --> 00:44:39,430 의이 살펴 보자 변형, 하나를 작동합니다. 1002 00:44:39,430 --> 00:44:41,780 >> 그래서이 사람은 조금 더 고급하지만 밝혀 1003 00:44:41,780 --> 00:44:44,570 CS50의 라이브러리에있는 그, 단지의 getInt 기능이있다. 1004 00:44:44,570 --> 00:44:47,720 우리는에, 년 전, 생각하지 않았다 GetPositiveInt 기능을 구현한다. 1005 00:44:47,720 --> 00:44:50,970 그리고 그건 좀 짜증나 경우 때문에 너희들은 프로그램 특징을 작성 1006 00:44:50,970 --> 00:44:53,325 당신은 긍정적 싶어 사용자로부터의 정수, 1007 00:44:53,325 --> 00:44:55,010 당신은 절대적으로의 getInt를 사용할 수 있습니다. 1008 00:44:55,010 --> 00:44:57,840 그리고 당신은 절대적으로 확인할 수 있습니다 조건 어쩌면 루프 1009 00:44:57,840 --> 00:45:00,320 그 INT가 크면 0보다 것은 사용자에 소리 1010 00:45:00,320 --> 00:45:02,699 그 또는 그녀는 제공하지 않는 경우 당신 양수. 1011 00:45:02,699 --> 00:45:04,740 그러나이 해 만들어 보자 건물은, 자신을 차단, 1012 00:45:04,740 --> 00:45:06,555 사용자 정의 스크래치 조각, 당신이됩니다. 1013 00:45:06,555 --> 00:45:08,680 나는 프로그램을거야 여기에 궁극적으로, 나는 1014 00:45:08,680 --> 00:45:11,780 호출 할 수 있도록하려면 GetPositiveInt, 내가되고 싶어 1015 00:45:11,780 --> 00:45:14,200 그 INT는 무엇이든 인쇄 할 수. 1016 00:45:14,200 --> 00:45:16,240 그러나 지금은 멀리 추출된다. 1017 00:45:16,240 --> 00:45:19,050 그것은 바로 높은 수준의 주어진 것 그것은 무엇을 말한다 이름, 1018 00:45:19,050 --> 00:45:21,780 이 때문에 멋진 인 읽기가 지금 매우 직관적. 1019 00:45:21,780 --> 00:45:24,710 내가 상관 할 경우 어떤 일이 아래의 후드는, 저를 아래로 스크롤 할 수 있습니다. 1020 00:45:24,710 --> 00:45:27,140 그리고 그것은 협박 약간의 처음에, 특히 1021 00:45:27,140 --> 00:45:29,470 이 첫 번째 프로그램 인 경우, 하지만 이제 살펴 보자. 1022 00:45:29,470 --> 00:45:32,860 >> 나는 더 이상 무효, 말없는거야 이 기능을 밝혀 때문에, 1023 00:45:32,860 --> 00:45:34,777 많은하여 GetString처럼, 수 나에게 값을 반환합니다. 1024 00:45:34,777 --> 00:45:36,610 그들은 단지가 없습니다 화면에 인쇄하려면 1025 00:45:36,610 --> 00:45:38,410 그들은 실제로 손으로 수 날 다시 뭔가. 1026 00:45:38,410 --> 00:45:41,535 그리고 PrintName 전에 반면, 난 아무것도 다시 필요하지 않았다. 1027 00:45:41,535 --> 00:45:44,160 난의 부작용을 필요 뭔가 화면에 표시 1028 00:45:44,160 --> 00:45:46,570 그러나 나는 인간을 필요로하지 않았다 나에게 뭔가를 다시 손에. 1029 00:45:46,570 --> 00:45:48,840 여기에, GetPositiveInt와, 의 getInt와 같은, 1030 00:45:48,840 --> 00:45:50,640 내가 다시 뭔가를 건네되고 싶어요. 1031 00:45:50,640 --> 00:45:53,220 그래서 난, 무효하지 말인지 라인 23 만 INT에, 1032 00:45:53,220 --> 00:45:55,570 이는 말한다,이 기능 내가 쓰고 있음, 1033 00:45:55,570 --> 00:45:58,860 GetPositiveInt가 가고이라고 정수가 아닌 아무것도 나를 다시 손, 1034 00:45:58,860 --> 00:45:59,890 무효 없습니다. 1035 00:45:59,890 --> 00:46:03,280 >> 한편,이 더 걸릴 것없는 것 입력은, 그래서, 가지, 그것을 반대했습니다. 1036 00:46:03,280 --> 00:46:08,280 나는 GetPositiveInt 하나를 포기하지 않을거야 입력, 나는 그것이 나에게 출력을주고 싶다. 1037 00:46:08,280 --> 00:46:09,800 그리고 이제 어떻게? 1038 00:46:09,800 --> 00:46:11,640 그래서 여기에 내가 변수를 선언 할 수있는 방법이다. 1039 00:46:11,640 --> 00:46:15,090 나는, 루프 외부에서 일을했습니다 우리는 결국 볼 수 있습니다 이유로, 1040 00:46:15,090 --> 00:46:17,700 그러나 이것은 단지 제공 나 32 비트라는, N, 1041 00:46:17,700 --> 00:46:20,952 나는 미리 결정했습니다 그 정수를 저장합니다. 1042 00:46:20,952 --> 00:46:23,660 그리고 여기, 구조하는 동안 수행하는 것이이다 유용하고 그 이유이다. 1043 00:46:23,660 --> 00:46:26,700 말 그대로 이렇게, n은 1보다 작을 때. 1044 00:46:26,700 --> 00:46:28,030 그럼 어떻게되는지 보자. 1045 00:46:28,030 --> 00:46:30,760 나는, 제발 인쇄 나에게 긍정적 INT를 제공합니다. 1046 00:46:30,760 --> 00:46:34,300 나는 그 CS50의 사용, int를 얻을 기능과 N에 저장된다. 1047 00:46:34,300 --> 00:46:38,990 >> 그리고, 코드의 어떤 라인 아마 논리적으로, 다음에 실행됩니다? 1048 00:46:38,990 --> 00:46:41,890 어느 줄 수? 1049 00:46:41,890 --> 00:46:42,571 그래, 그래서 31. 1050 00:46:42,571 --> 00:46:45,320 당신이 때까지 당신이 모르는 것 말 또는 정렬을 추론하고, 1051 00:46:45,320 --> 00:46:45,986 하지만 그건 사실입니다. 1052 00:46:45,986 --> 00:46:48,280 그것은 위에서 아래로 간다 다음 반복 유지합니다. 1053 00:46:48,280 --> 00:46:55,840 나는 수, 말에 입력 한 경우에 따라서 1 음 1 음 n보다 작은? 1054 00:46:55,840 --> 00:46:56,340 그래. 1055 00:46:56,340 --> 00:46:58,470 1 네가티브 1 미만이기 때문이다. 1056 00:46:58,470 --> 00:46:59,510 그래서 어떤 일이 일어날 것인가? 1057 00:46:59,510 --> 00:47:03,260 나는이 작업을 수행하는거야 n이 1보다 작은 반면, 1058 00:47:03,260 --> 00:47:05,760 그래서 나는 다시 라인 (28)에 갈거야. 1059 00:47:05,760 --> 00:47:09,530 >> 그리고 각 time--과의는이 항아리 실행하자 기능 1 컴파일 할 수 있도록, 1060 00:47:09,530 --> 00:47:11,340 지금은 기능 1을 슬래시 점. 1061 00:47:11,340 --> 00:47:14,280 내가 부정적인 일을 입력하면, 그건 나에게 고함을 유지하는 것 1062 00:47:14,280 --> 00:47:17,530 나는 각 있기 때문에 협력까지 내 입력의 1 미만 1063 00:47:17,530 --> 00:47:20,070 그것은 1 미만 동안이라면 나는이 일을 계속하겠습니다. 1064 00:47:20,070 --> 00:47:24,240 드디어 50처럼에게 번호를주는 경우에, 다행히도, 그것은 50 감사 말했다. 1065 00:47:24,240 --> 00:47:24,970 왜? 1066 00:47:24,970 --> 00:47:30,640 N은 이상일 때문에 자마자 1, 나는,이 루프에 갇혀 점점 중지 1067 00:47:30,640 --> 00:47:33,840 이 새로운 키워드 오늘, 반환은, 문자 그대로 않습니다. 1068 00:47:33,840 --> 00:47:36,800 그래서 난 그냥에서 구현했습니다 감각에서 getString에 해당하는, 1069 00:47:36,800 --> 00:47:40,590 어디 다시 나눠주고있어 누구든지, 어떤 값을 저를 사용하고 있습니다. 1070 00:47:40,590 --> 00:47:42,820 그럴 필요는 없다 문자열, 그것은 INT이다. 1071 00:47:42,820 --> 00:47:44,990 빠른, 그래서 간단한 예,하지만 우리는 곧거야 1072 00:47:44,990 --> 00:47:47,930 좀 더 정교한 참조 여전히 버전. 1073 00:47:47,930 --> 00:47:53,882 사실, 이제 살펴 보자 return.c라고 숫자 하나. 1074 00:47:53,882 --> 00:47:55,590 그리고이 것은 사실이다 조금 더 간단. 1075 00:47:55,590 --> 00:47:59,010 그래서이 프로그램의 목적에 life--의 컴파일하고 실행하자, 1076 00:47:59,010 --> 00:48:03,090 그래서 점, 반환을 슬래시, return-- 통지 1077 00:48:03,090 --> 00:48:05,530 프로그램은 단순히 2 값 큐브. 1078 00:48:05,530 --> 00:48:08,410 그것은, 그것은 하드 꽤 바보있어 코드는, 어떤 입력을하지 않고, 1079 00:48:08,410 --> 00:48:12,220 그러나 다른을 입증하지 나 자신을 작성한 기능. 1080 00:48:12,220 --> 00:48:15,760 그래서 여기, 내가 선언 한 변수, int 타입, X라는 1081 00:48:15,760 --> 00:48:17,840 숫자 2와 동일, 완전히 임의의. 1082 00:48:17,840 --> 00:48:19,530 이것은 단지 일부 솜 털 인쇄입니다. 1083 00:48:19,530 --> 00:48:23,070 이는 X가 말한다 지금과 같은 예, 큐빙 점 점 점. 1084 00:48:23,070 --> 00:48:26,390 그리고 마법은 라인 (21)에 분명히있다. 1085 00:48:26,390 --> 00:48:30,120 나는, 큐브라는 함수를 호출하고있어, 나는 그에게 종이를 나눠주고있어 1086 00:48:30,120 --> 00:48:32,890 에 쓰여진 숫자 2와, 어떤 값을 수학적으로, 1087 00:48:32,890 --> 00:48:34,860 나는 그것을 벗어나고 싶어? 1088 00:48:34,860 --> 00:48:36,570 그냥 전성 검사로? 1089 00:48:36,570 --> 00:48:37,070 8. 1090 00:48:37,070 --> 00:48:37,570 권리? 1091 00:48:37,570 --> 00:48:40,160 나는 2는 2, 다시 네모 반듯한 원하는 3의 힘, 그래서 8 백. 1092 00:48:40,160 --> 00:48:42,570 >> 어디 큐브 구현? 1093 00:48:42,570 --> 00:48:44,349 음, 여기에 아래로 구현있어주의. 1094 00:48:44,349 --> 00:48:47,140 그리고 직전처럼, 논리적으로, 심지어 구문은 아마도하지만 1095 00:48:47,140 --> 00:48:49,320 당신의 많은 아주 새로운, 나는이 기능을 원하는 1096 00:48:49,320 --> 00:48:51,780 한 장을 날 다시 손 그것에 INT 종이. 1097 00:48:51,780 --> 00:48:53,990 그래서 INT,이 이름은 임의적이다 1098 00:48:53,990 --> 00:48:55,530 하지만 편리 큐브했다. 1099 00:48:55,530 --> 00:48:58,430 그것에 입력의 n은 즉, 그래서 정수 입력 1100 00:48:58,430 --> 00:49:00,800 나는 번호를 전달 할 수있는 방법 용지에 2. 1101 00:49:00,800 --> 00:49:03,910 그리고 그것은 C 지원 밝혀 수학은, 그래서 당신은, 시간에 대한 X의의가 없습니다 1102 00:49:03,910 --> 00:49:06,680 당신은 별표 (*)를 사용 곱셈. 1103 00:49:06,680 --> 00:49:11,070 그리고이 n 배 n 번을 반환 단순히 승값 N이다. 1104 00:49:11,070 --> 00:49:12,840 >> 그렇다면 우리는이 모두와 함께가는거야? 1105 00:49:12,840 --> 00:49:14,570 이것은 확실히이다 회오리 바람 투어, 안심, 1106 00:49:14,570 --> 00:49:16,410 그 슈퍼 섹션 및 문제에, 1 세트 1107 00:49:16,410 --> 00:49:18,368 당신을 걸었다됩니다 이 모든 더욱. 1108 00:49:18,368 --> 00:49:22,490 그리고 문제 세트 1, 우리는 전환합니다 스크래치의 그래픽 세계에서 1109 00:49:22,490 --> 00:49:25,640 뭔가 더 명령 행 C에서 그러나 우리는 영감을 그릴 것 1110 00:49:25,640 --> 00:49:27,680 이 여기에 게임에서 작년, 상기에서 1111 00:49:27,680 --> 00:49:31,591 C와의 표준 버전을 사용 P 세트 당신은 마리오의 피라미드를 구현합니다. 1112 00:49:31,591 --> 00:49:34,340 그리고의 해커 판에 P 세트,​​ 당신이 그렇게 선출하도록 선택하는 경우, 1113 00:49:34,340 --> 00:49:38,280 당신은 조금 더를 구현하는 것 두 개의 피크 피라미드 도전. 1114 00:49:38,280 --> 00:49:41,239 당신은 또한을 구현합니다 알고리즘, 욕심 알고리즘. 1115 00:49:41,239 --> 00:49:43,030 그것은 거기의 밝혀 몇 가지 흥미로운 논리 1116 00:49:43,030 --> 00:49:45,640 과정 뒤에 자기앞 스테이션을 실행 1117 00:49:45,640 --> 00:49:47,410 실제로 전달 누군가 다시 변경. 1118 00:49:47,410 --> 00:49:50,410 공정의 알고리즘이있다 간단, 그건 당신도 수도 1119 00:49:50,410 --> 00:49:53,576 처음 읽을 때 직관적으로 파악 그건 ... 그건 내가 항상했습니다 무엇 실현 1120 00:49:53,576 --> 00:49:57,110 누군가 일부를 제공 한 모든 시간을 수행 당신은 항상 할 수 있습니다 돈 back-- 1121 00:49:57,110 --> 00:50:00,679 수를 최소화 종이 노트 또는 금속 동전 1122 00:50:00,679 --> 00:50:02,220 당신은 다시 사용자에게 전달하고있다. 1123 00:50:02,220 --> 00:50:04,610 이것은 물론, 설득력 당신은 CVS 나 이것 저것에 가면 때문에, 1124 00:50:04,610 --> 00:50:06,430 당신은 손으로 싶지 않아 사람의 전체 무리 1125 00:50:06,430 --> 00:50:07,596 또는 동전의 전체 무리. 1126 00:50:07,596 --> 00:50:10,120 당신은 가장 적은 원하는 동전, 아마 가능. 1127 00:50:10,120 --> 00:50:13,070 >> 마지막으로, 도전 할 것이다 물을 세계에 손 대고 1128 00:50:13,070 --> 00:50:17,220 실제로 감사를 얻을 흐름의 속도 사이의 매핑, 1129 00:50:17,220 --> 00:50:19,890 의 샤워, 물을 좋아한다, 얼마나 많은 물은 사용됩니다. 1130 00:50:19,890 --> 00:50:22,640 그리고 그 안에 암시, 여기에이 클립 될 것입니다, 1131 00:50:22,640 --> 00:50:24,840 우리는 들어 오게하는 다만 60초, 그 1132 00:50:24,840 --> 00:50:29,070 의 그림 물감 저 유량 샤워 헤드. 1133 00:50:29,070 --> 00:50:30,886 >> [비디오 재생] 1134 00:50:30,886 --> 00:50:31,385 -괜찮아. 1135 00:50:31,385 --> 00:50:32,774 나는 여기에 모든 것을 얻었다. 1136 00:50:32,774 --> 00:50:35,800 나는 사이클론 F 시리즈를 가지고 히드라, Jetflow, 스톡홀름 1137 00:50:35,800 --> 00:50:37,660 Supersteam, 당신은 그것을 이름. 1138 00:50:37,660 --> 00:50:39,265 >> - 그리고 당신은 무엇을 권장합니까? 1139 00:50:39,265 --> 00:50:40,460 >> - 왜 찾는거야? 1140 00:50:40,460 --> 00:50:41,300 >> - 전원 남자. 1141 00:50:41,300 --> 00:50:42,285 권력. 1142 00:50:42,285 --> 00:50:42,910 -처럼 표백제. 1143 00:50:42,910 --> 00:50:44,520 - 그건 방사선을 위해입니다. 1144 00:50:44,520 --> 00:50:46,335 - 그건 맞아. 1145 00:50:46,335 --> 00:50:48,275 이 무엇인가 - 이제? 1146 00:50:48,275 --> 00:50:49,704 - 그건 코만도 (450)입니다. 1147 00:50:49,704 --> 00:50:50,620 그 하나를 판매하지 않습니다. 1148 00:50:50,620 --> 00:50:51,700 >> -하지만 그게 우리가 원하는거야. 1149 00:50:51,700 --> 00:50:52,680 그것은 특공대 450입니다. 1150 00:50:52,680 --> 00:50:53,882 >> 아니 나를 믿는다. 1151 00:50:53,882 --> 00:50:55,090 그것은 오직 서커스에 사용됩니다. 1152 00:50:55,090 --> 00:50:56,512 그것은 코끼리를 위해입니다. 1153 00:50:56,512 --> 00:50:59,356 >> 아무것도 지불 할께. 1154 00:50:59,356 --> 00:51:01,252 >> 제리에 대해 뭐라고? 1155 00:51:01,252 --> 00:51:02,760 >> - 그는 그것을 처리 할 수​​ 있습니다. 1156 00:51:02,760 --> 00:51:04,910 그는 섬세한입니다. 1157 00:51:04,910 --> 00:51:05,750 오 예. 1158 00:51:05,750 --> 00:51:36,737 1159 00:51:36,737 --> 00:51:37,320 [END 재생] 1160 00:51:37,320 --> 00:51:37,700 데이비드 J 마란 : 좋아. 1161 00:51:37,700 --> 00:51:38,820 즉 CS50에 대한 경우입니다. 1162 00:51:38,820 --> 00:51:40,050 우리는 다음 주에 볼 수 있습니다. 1163 00:51:40,050 --> 00:51:45,910 1164 00:51:45,910 --> 00:51:49,029 >> 스피커 1 :? 스컬리?], [? 이안,?] 지금까지이 아웃트로 프로젝트로, 1165 00:51:49,029 --> 00:51:50,362 너희들은 무엇을 때우기? 1166 00:51:50,362 --> 00:51:51,990 >> 스피커 2 : 글쎄, 우리가 준 그것은 생각의 다양한 1167 00:51:51,990 --> 00:51:53,250 우리는 가장 좋은 방법이라고 생각 이러시면 1168 00:51:53,250 --> 00:51:53,660 >> 스피커 3 : 내가 할 수 있습니까? 1169 00:51:53,660 --> 00:51:54,326 >> 스피커 2 : 그래. 1170 00:51:54,326 --> 00:51:56,360 꼭 사실. 1171 00:51:56,360 --> 00:51:59,425 >> 스피커 3 : 그래서 내가 생각하는 우리는 우리의 생각을 요약 할 수 있습니다 1172 00:51:59,425 --> 00:52:05,450 하나 word-- 아무것도 outros합니다. 1173 00:52:05,450 --> 00:52:08,950 1174 00:52:08,950 --> 00:52:10,409 >> 데이비드 J 마란 : 아무것도? 1175 00:52:10,409 --> 00:52:11,200 스피커 3 : 아무것도. 1176 00:52:11,200 --> 00:52:12,990 데이비드 J 마란 : 그게 무슨 뜻 이죠? 1177 00:52:12,990 --> 00:52:16,260 스피커 3 : outros 아무것도하려고합니다. 1178 00:52:16,260 --> 00:52:21,720 스피커 2 : 글쎄, 내 말은, 철학, 내 말은, 아무것도 항상 뭔가 없다. 1179 00:52:21,720 --> 00:52:24,200 스피커 1 : 그래서 what's-- 전제는 무엇인가? 1180 00:52:24,200 --> 00:52:25,720 스피커 3 : 그래서 인생처럼. 1181 00:52:25,720 --> 00:52:26,680 그래. 1182 00:52:26,680 --> 00:52:28,294 오늘 뭐 했어? 1183 00:52:28,294 --> 00:52:31,811 >> 데이비드 J 마란 : 나는 일어나서했다 아침 식사 및 작업을했다. 1184 00:52:31,811 --> 00:52:34,056 >> 스피커 3 : 그건 아웃트로입니다. 1185 00:52:34,056 --> 00:52:36,806 스피커 2 : 내 말은하지만,하지 말아야 뭔가 짓이야에 그에게 일이 1186 00:52:36,806 --> 00:52:37,889 스피커 3 : 아니, 아니, 아니, 아니. 1187 00:52:37,889 --> 00:52:40,220 아무 반응이 없습니다. 1188 00:52:40,220 --> 00:52:42,910 >> 스피커 1 : 그래서 왜 우리는 지켜보고있다? 1189 00:52:42,910 --> 00:52:46,956 >> 스피커 3 : 때문에 그것은 CS50에 대한 아웃트로입니다. 1190 00:52:46,956 --> 00:52:48,652 >> 데이비드 J 마란 : 아직. 1191 00:52:48,652 --> 00:52:49,151