1 00:00:07,590 --> 00:00:09,920 [Powered by Google Translate] 데이빗 J. MALAN : 좋아,이 CS50하고이입니다 2 00:00:09,920 --> 00:00:15,250 주 1의 끝, 그래서 학습 카드는 총 수는에 있고 3 00:00:15,250 --> 00:00:18,640 이 년이 있는지 친구들은 745입니다. 4 00:00:18,640 --> 00:00:20,920 그리고 그렇게하는 과정에서 당신이 너무 많이가 흥분하고 5 00:00:20,920 --> 00:00:23,680 이번 학기 있지만,이 과정은 매우 넓고하더라도, 6 00:00:23,680 --> 00:00:26,090 이 같은 금요일 점심처럼 이런 일 거라는 걸 깨달았 7 00:00:26,090 --> 00:00:29,020 근무 시간, 15 사람 섹션, 등등 그 8 00:00:29,020 --> 00:00:30,590 정말 더 친밀한를 생성하기위한 정책을 시행하고 있습니다 9 00:00:30,590 --> 00:00:31,140 환경. 10 00:00:31,140 --> 00:00:34,070 그래서 우리는 여기에 한 번 또는 일주일에 두 번 모여 경우에도 11 00:00:34,070 --> 00:00:36,420 샌더스,이 과정에서의 경험을 그렇​​게 많이 알고 12 00:00:36,420 --> 00:00:39,330 매우 많은 급우와 함께에 손 - 될 것입니다 13 00:00:39,330 --> 00:00:40,730 및 교수진. 14 00:00:40,730 --> 00:00:43,960 >> 그래서 여기에 우리가 2012 년 가을, 이동합니다. 15 00:00:43,960 --> 00:00:47,530 그래서 우리가이 끝났지 만 마지막 시간을 기억 16 00:00:47,530 --> 00:00:50,460 숫자의 표현에 대해 얘기 부정확. 17 00:00:50,460 --> 00:00:52,950 그리고 우리는에 무슨 일이 있었 오류 중 하나 바라 보았다 18 00:00:52,950 --> 00:00:54,920 그 오해에 온 현실 세계, 19 00:00:54,920 --> 00:00:55,890 어떻게 컴퓨터가 작동합니다. 20 00:00:55,890 --> 00:00:58,590 글쎄, 오늘 우리는 이와 같은 아이디어 중 하나를 다시합니다 21 00:00:58,590 --> 00:01:01,410 뿐만 아니라 CS50 클라이언트의 토론을 계속 22 00:01:01,410 --> 00:01:04,090 및 C과는이 프로그램에 정말 의미합니다. 23 00:01:04,090 --> 00:01:06,430 하지만 먼저, 회오리 공지 불과 몇. 24 00:01:06,430 --> 00:01:08,930 >> 섹션 이번 일요일 시작하고 첫 주 항상이다 25 00:01:08,930 --> 00:01:11,030 빠른 시작의 비트, 우리가에 있으니까 26 00:01:11,030 --> 00:01:12,620 섹션 양식. 27 00:01:12,620 --> 00:01:14,450 우리는 지금, 교육 친구들과 함께, 지금 같은 짓을 28 00:01:14,450 --> 00:01:16,410 자신의 일정을 알고에 의해, 우리가 목표로하고 있으므로 29 00:01:16,410 --> 00:01:19,380 토요일 아침, 네 섹션으로 당신과 함께 후속 조치를 30 00:01:19,380 --> 00:01:20,760 할당 및 TF. 31 00:01:20,760 --> 00:01:22,770 그들은 다음 날 시작하는 거라고 생각, 일요일 32 00:01:22,770 --> 00:01:24,510 월요일이나 화요일. 33 00:01:24,510 --> 00:01:27,730 가 발생으로 그리고 우리는 섹션 변경 사항을 수용합니다 34 00:01:27,730 --> 00:01:28,690 일 올 수 있습니다. 35 00:01:28,690 --> 00:01:31,590 근무 시간은 한편, 다시, 오늘 밤, 11-8 PM,에 36 00:01:31,590 --> 00:01:33,740 Annenberg뿐만 아니라 내일 있습니다. 37 00:01:33,740 --> 00:01:36,150 문제 세트는 일반적으로 목요일에 의한 경우에도 38 00:01:36,150 --> 00:01:39,020 정오에, 당신은 지출하는 데 약 다섯 늦게 일까지된다는 39 00:01:39,020 --> 00:01:42,430 목요일 근무 시간의 따라서 가용성 경우 40 00:01:42,430 --> 00:01:45,930 당신은 그 늦은 일 중 하나에서 현금과,이를 제출 41 00:01:45,930 --> 00:01:47,070 금요일에 무언가. 42 00:01:47,070 --> 00:01:50,850 제가 중, 스크래치가 더 재미 중입니다 제안 43 00:01:50,850 --> 00:01:52,390 더 낮은 키 문제 설정합니다. 44 00:01:52,390 --> 00:01:55,160 그리고 난, 전략적, 그 말 일에 놀았어요 45 00:01:55,160 --> 00:01:57,380 생활 방해을 시작할 때 나중에 학기에 대한 46 00:01:57,380 --> 00:01:59,470 중간 고사 및 기타 수업. 47 00:01:59,470 --> 00:02:01,580 문제 세트 1 한편, 코스의에 게시됩니다 48 00:02:01,580 --> 00:02:06,080 웹 사이트가 금요일로는 코스의 거리에있을 것입니다 49 00:02:06,080 --> 00:02:08,789 동영상으로, 그 금요일에 오후 2시 반에서 촬영 될 것입니다 50 00:02:08,789 --> 00:02:11,890 그 다음 날이 온라인을 올렸다. 51 00:02:11,890 --> 00:02:13,880 >> 그래서 우리는 월요일에 끝났습니다. 52 00:02:13,880 --> 00:02:15,450 사실, 하나 여기서주의 - 제가하고 싶습니다. 53 00:02:15,450 --> 00:02:18,870 때문에 수업 - 샌더스 정확히 대여하지 않기 때문에 54 00:02:18,870 --> 00:02:22,220 자체 캐주얼 Q & A로 돌아 가기 앞뒤로 정말 잘, 우리는 55 00:02:22,220 --> 00:02:24,030 상기 좀 새로운 올해 무언가를 시도하려고 56 00:02:24,030 --> 00:02:26,160 당신은 손을 높여 편안하지 않거나 경우 57 00:02:26,160 --> 00:02:28,800 오히려 이런 방에서 손을 들어하지 않을 것은 58 00:02:28,800 --> 00:02:30,710 우리는 교육 휄로우 및 인증 기관 (CA)의 일부를 할거야 59 00:02:30,710 --> 00:02:33,260 강의 중에 cs50.net/discuss 조작법을. 60 00:02:33,260 --> 00:02:35,440 내가 완전히라서 질문이면 61 00:02:35,440 --> 00:02:37,510 무언가 또는 당신에 대해 불명확 한 몇 가지에 대해 궁금해 62 00:02:37,510 --> 00:02:39,640 주제, 거기에 게시 해보십시오. 63 00:02:39,640 --> 00:02:42,670 강의의 라벨과 태그를, 우리는 최선을 다하겠습니다 64 00:02:42,670 --> 00:02:45,430 오늘과 다음 주 - 꼭은 이렇게 해보세요 -를 필드에 65 00:02:45,430 --> 00:02:47,990 어느 온라인, 온라인, 또는 경우 우리가해야 느낌 66 00:02:47,990 --> 00:02:50,430 정말, 실내 masse 교육 친구들 중 하나를 그것을 해결하거나 67 00:02:50,430 --> 00:02:52,080 인증 기관 (CA)은 손을 올리고 요청합니다 68 00:02:52,080 --> 00:02:53,480 사용자를 대신하여 익명으로. 69 00:02:53,480 --> 00:02:55,650 그래서 우리는이에게 시도하고 얼마나 잘이 작동 표시를 제공합니다. 70 00:02:55,650 --> 00:02:58,540 그러나, 모든 수단으로, 당신이 원하는대로 손을 높이하고 있습니다. 71 00:02:58,540 --> 00:03:11,420 >> 그럼 마지막으로 우리는 10 % 한 열째가 아닌 것을 밝혀 72 00:03:11,420 --> 00:03:13,840 당신이 몇 년 전에 배운 것처럼 사실, 0.1. 73 00:03:13,840 --> 00:03:15,390 그것은이 같은 값은 사실입니다. 74 00:03:15,390 --> 00:03:16,970 하지만 지금, 전적으로 사실이 아니 잖아? 75 00:03:16,970 --> 00:03:19,585 우리는 당신 경우, 컴퓨터 상기에서이 제약 조건을이 76 00:03:19,585 --> 00:03:22,450 단지 유한 메모리의 양, RAM, 이상이 77 00:03:22,450 --> 00:03:25,220 특히 비트, 글쎄, 유한 번호는이 78 00:03:25,220 --> 00:03:26,980 일을 귀하는 할 수 있습니다. 79 00:03:26,980 --> 00:03:29,780 예를 들어, 우리는 숫자 제로를 가지고 있고, 경우에 우리는 원하는 80 00:03:29,780 --> 00:03:32,790 , 8 비트를 사용하여 바이너리로 나타냅니다있는 비트, 81 00:03:32,790 --> 00:03:34,710 다시 제로 또는 하나입니다, 우리는 수도 82 00:03:34,710 --> 00:03:39,240 00000000로 나타냅니다. 83 00:03:39,240 --> 00:03:41,160 그리고 조금 불필요하게 자세한입니다. 84 00:03:41,160 --> 00:03:43,700 그냥 현실 세계에서 십진수 시스템에 좋아 85 00:03:43,700 --> 00:03:47,040 일반적으로, 당신은 수 (123)를 작성하려는 경우, 우리는 86 00:03:47,040 --> 00:03:52,240 인간은 아마 비록 00000123를 작성하지 않습니다 87 00:03:52,240 --> 00:03:53,940 기능적으로, 동일한 번호는입니다. 88 00:03:53,940 --> 00:03:56,580 우리는 말하자면, 맨 앞에 0을 놓습니다. 89 00:03:56,580 --> 00:03:58,270 >> 바이너리에서, 우리는 같은 작업을 수행 할 수 있습니다. 90 00:03:58,270 --> 00:04:01,440 바이너리 및 제로, 제로와 이진은 0입니다. 91 00:04:01,440 --> 00:04:02,870 당신은 단지 하나의 비트가 필요합니다. 92 00:04:02,870 --> 00:04:05,020 그러나 세계에서 측정 다시 가장 일반적인 단위 93 00:04:05,020 --> 00:04:07,820 컴퓨팅의 바이트 8 비트입니다. 94 00:04:07,820 --> 00:04:09,720 하나 비트, 꽤 쓸모 때문입니다. 95 00:04:09,720 --> 00:04:12,020 8 비트, 참으로 유용하지,하지만 적어도이 더 96 00:04:12,020 --> 00:04:14,280 측정 한 단위보다 유용합니다. 97 00:04:14,280 --> 00:04:17,100 따라서 8 비트와 함께, 우리는 일반적으로 바이너리를 대표합니다. 98 00:04:17,100 --> 00:04:20,459 그래서 여기에 우리가 같이 한 다음, 숫자 영, 하나, 둘를 가지고 있고, 99 00:04:20,459 --> 00:04:24,200 네이트 지난 수요일의 동영상에서 한, 우리는 계속 100 00:04:24,200 --> 00:04:25,940 8, 7까지 세는. 101 00:04:25,940 --> 00:04:27,860 그리고 우리는 더 많은 비트를 사용하는 경우, 우리는 102 00:04:27,860 --> 00:04:29,880 무한대까지 셀 수 있습니다. 103 00:04:29,880 --> 00:04:32,800 만 이러한 비트 유한 번호가 있다면, 그대로 104 00:04:32,800 --> 00:04:35,030 심지어 어떤 컴퓨터 시스템의 경우, 또는 미사일 105 00:04:35,030 --> 00:04:36,670 시스템은, 음, 사실 만이 106 00:04:36,670 --> 00:04:37,900 정밀도의 유한 금액입니다. 107 00:04:37,900 --> 00:04:41,290 당신도, 0.1과 같은 수를 나타냅니다하고 싶다면 108 00:04:41,290 --> 00:04:43,410 컴퓨터 선택을 선택합니다. 109 00:04:43,410 --> 00:04:45,970 그리고 만 할 수있는 숫자의 유한 수있는 경우 110 00:04:45,970 --> 00:04:50,490 대표 아주 가까이 당신을위한 0.1 올 수 있지만 수 없어 111 00:04:50,490 --> 00:04:53,730 반드시 당신이 원하는 것을 정확하게 값을 제공합니다. 112 00:04:53,730 --> 00:04:55,660 그리고, 그냥 컴퓨터의 문제 중 하나입니다 113 00:04:55,660 --> 00:04:57,090 후드 아래에, 고맙게도. 114 00:04:57,090 --> 00:04:59,110 >> 우리가 학기에 멀리 이동이 낮은 수준 115 00:04:59,110 --> 00:05:02,310 자세한 내용은 훨씬 더 흥미로운되고 있지만, 확실히 116 00:05:02,310 --> 00:05:05,700 이러한 아이디어의 응용 프로그램은 매우 현실 세계를 가질 수 117 00:05:05,700 --> 00:05:06,760 파급 효과. 118 00:05:06,760 --> 00:05:08,190 하나는 조금 재미 있습니다. 119 00:05:08,190 --> 00:05:12,150 어떻게 많은 놀라운 영화 사무실 공간을 본 적 있어요? 120 00:05:12,150 --> 00:05:13,620 당신이하지 않았다면, 그건 당신이 비공식입니다 121 00:05:13,620 --> 00:05:14,370 일주일 숙제. 122 00:05:14,370 --> 00:05:16,730 그러나 사무실 공간에서, 그 영화에서이 사람들이 소요될 123 00:05:16,730 --> 00:05:19,900 정확하게이 아이디어를 이용하지만, 실제로는 훔쳐 124 00:05:19,900 --> 00:05:21,270 그것은 당신이있을 수있는 다른 영화에서 125 00:05:21,270 --> 00:05:22,760 몇 년 전에, 본 적 있어요. 126 00:05:22,760 --> 00:05:24,920 그럼 내가 너에게이 트레일러 몇 초에서 주자 127 00:05:24,920 --> 00:05:27,470 이 놀라운 영화이 매우이다 128 00:05:27,470 --> 00:05:28,340 학문적 관련. 129 00:05:28,340 --> 00:05:30,310 >> [동영상 재생] 130 00:05:30,310 --> 00:05:32,240 사실은 내가이 홍보하는거야. 131 00:05:32,240 --> 00:05:33,360 나는 추출하는 바이러스를 프로그램 할 수 132 00:05:33,360 --> 00:05:34,460 큰 시간을 넣습니다. 133 00:05:34,460 --> 00:05:35,770 음, 어떻게 작동합니까? 134 00:05:35,770 --> 00:05:37,836 관심이있는 은행 거래가 때마다 135 00:05:37,836 --> 00:05:40,154 계산, 수천명이 하루 있습니다, 컴퓨터가 종료 136 00:05:40,154 --> 00:05:41,040 동전이 분수. 137 00:05:41,040 --> 00:05:43,050 하지만 불법적 인 일을하지 않을거야. 138 00:05:43,050 --> 00:05:46,730 불법? 사미르이 미국입니다. 139 00:05:46,730 --> 00:05:48,010 당신은 하나님 께 맹세 해. 140 00:05:48,010 --> 00:05:51,870 아무도이 사실을 아는 사람은 없어요하지만 우리, 알았지? 경우 어떤 가족도없고 141 00:05:51,870 --> 00:05:52,490 여자 친구, 아무도. 142 00:05:52,490 --> 00:05:53,882 [INAUDIBLE]. 143 00:05:53,882 --> 00:05:57,594 사람, 나도 아무에게도 말 안 테니 너무 걱정하지 마십시오. 144 00:05:57,594 --> 00:05:59,680 [영화는 끝] 145 00:05:59,680 --> 00:06:01,900 >> 좋아, 그럼 내가 가장보다이 영화를 더 잘 발견 146 00:06:01,900 --> 00:06:05,530 그들은 있다는 여기 사람들, 그러나 어떤 경우에는 바이러스 147 00:06:05,530 --> 00:06:06,400 만들려고 - 148 00:06:06,400 --> 00:06:08,410 그리고 영화에서 언제든지 그들은 어떤 바이러스라고 할 걸 149 00:06:08,410 --> 00:06:09,770 사실은 일반적으로 바이러스 없습니다. 150 00:06:09,770 --> 00:06:11,600 단지 누군가가 뭔가를 작성하는 프로그램입니다. 151 00:06:11,600 --> 00:06:13,800 그리고이 경우에, 사람들은 프로그램을 작성하려고했던 152 00:06:13,800 --> 00:06:16,610 그 Innotech의라는 회사를 이용했다 153 00:06:16,610 --> 00:06:19,740 컴퓨팅 시스템도된다 컴퓨터, 심지어 때 154 00:06:19,740 --> 00:06:21,350 수 필요하지, 돈에 관한 155 00:06:21,350 --> 00:06:23,490 정확하게 돈을 나타냅니다. 156 00:06:23,490 --> 00:06:27,630 당신은 귀하의 은행 계좌에 $ 0.10이있을 수 있으므로하더라도 157 00:06:27,630 --> 00:06:31,060 0.10는, 음, 컴퓨터는 실제로 당신이 가진 생각 수 있습니다 158 00:06:31,060 --> 00:06:33,560 귀하의 은행 계좌에 이렇게 많이 센트. 159 00:06:33,560 --> 00:06:35,750 그리고 어떤이 사람들은 할 대망을 품고있는 한 -하고 160 00:06:35,750 --> 00:06:38,240 아이디어를 훔 쳤고, 어디, 수퍼맨 III에서 밝혀 161 00:06:38,240 --> 00:06:41,210 리처드 Pryor 같은 일을 한거다 - 그들은 본질적으로했다 162 00:06:41,210 --> 00:06:44,880 뒤에 모두 취할 열망 쓰기 프로그램 163 00:06:44,880 --> 00:06:46,930 숫자의 작은, 작은, 작은 분수의 164 00:06:46,930 --> 00:06:50,160 페니, 그 때문에 그를 몰래 인간 단지 165 00:06:50,160 --> 00:06:52,620 생각은, 오, 거기 만 $ 0.10이지만, 그 모든 166 00:06:52,620 --> 00:06:54,410 뒤에 숫자는 결국 추가 할 수 있습니다. 167 00:06:54,410 --> 00:06:57,490 좋은 생각 자와 그 안에 hilariously 어긋난 168 00:06:57,490 --> 00:06:58,250 특히 영화. 169 00:06:58,250 --> 00:07:01,800 >> 그러나 현실 세계에서도 훨씬 더 관련이 있습니다 170 00:07:01,800 --> 00:07:03,190 일 이러한 종류의의 의미. 171 00:07:03,190 --> 00:07:05,450 그 이유 중 하나는 컴퓨터 분야에 뛰어들 172 00:07:05,450 --> 00:07:07,620 과학은 다시하지에의 적용이다 173 00:07:07,620 --> 00:07:09,740 공학 과학 혼자이지만, 단지에 174 00:07:09,740 --> 00:07:10,650 다른 분야뿐만 아니라. 175 00:07:10,650 --> 00:07:14,760 그래서이 잘못 수에서 덜 가벼운 모습이지만, 176 00:07:14,760 --> 00:07:17,630 가에 관해서는, 내 생각도 꽤 눈 오프닝 177 00:07:17,630 --> 00:07:20,760 정확히 어떻게 편재하는 기술 등의 이해 178 00:07:20,760 --> 00:07:22,870 컴퓨터와 프로그래밍하거나 일 179 00:07:22,870 --> 00:07:23,930 소프트웨어의 형태 인치 180 00:07:23,930 --> 00:07:26,500 그래서 다음 클립은 단 6 분만에 대한 것입니다 계속 181 00:07:26,500 --> 00:07:30,320 우리는 지난 시간을 남겼는데, 우리는 조금 볼 수있는 곳 182 00:07:30,320 --> 00:07:33,370 이러한 문제 등 한 곳에서 깊이에 더. 183 00:07:33,370 --> 00:07:35,270 내가 우리가 그만 둔 곳으로 건너 뛰고 보자 184 00:07:35,270 --> 00:07:37,780 어떤은 여기 있었어요. 185 00:07:37,780 --> 00:07:41,580 그리고 여기 6 분 동안 두 두 번째 부분이 있습니다. 186 00:07:41,580 --> 00:07:41,980 >> [동영상 재생] 187 00:07:41,980 --> 00:07:45,430 현대적인 로켓 기술을 괴롭혀. 188 00:07:45,430 --> 00:07:49,280 1991 년, 첫 번째 걸프 전쟁의 시작과, 애국 189 00:07:49,280 --> 00:07:51,350 미사일은 비슷한 가지를 경험 190 00:07:51,350 --> 00:07:52,645 숫자 변환에 문제가있을 수 있습니다. 191 00:07:52,645 --> 00:07:57,460 그리고 그 결과, 20 명 20 미국 병사가 사망했다 192 00:07:57,460 --> 00:08:01,130 예정 된 애국, 언제, 약 100 명의 사용자가 부상을 193 00:08:01,130 --> 00:08:03,400 수신 Scuds을 방지하기 위해, 194 00:08:03,400 --> 00:08:06,020 미사일을 발사하지 못했습니다. 195 00:08:06,020 --> 00:08:09,350 >> 이라크 침공했을 때 쿠웨이트와 미국은 사막을 시작 196 00:08:09,350 --> 00:08:13,530 초기 1991 년 폭풍, 애국자 미사일 배터리였다 197 00:08:13,530 --> 00:08:16,970 이라크에서 사우디 아라비아와 이스라엘을 보호하기 위해 배치 198 00:08:16,970 --> 00:08:19,810 스커드 미사일 공격. 199 00:08:19,810 --> 00:08:23,740 애국은 미국 중간 범위 표면 - 투 - 공기 시스템 200 00:08:23,740 --> 00:08:26,370 Raytheon 회사에 의해 제조. 201 00:08:26,370 --> 00:08:30,860 애국 요격 자체의 크기는, 그것은 관한 202 00:08:30,860 --> 00:08:35,650 약 20 시간 발은 약 2천파운드를 부여합니다. 203 00:08:35,650 --> 00:08:38,809 그리고 약 탄두를 운반 - 나는 대략 생각 204 00:08:38,809 --> 00:08:40,169 1백50파운드. 205 00:08:40,169 --> 00:08:45,820 그리고 탄두 자체가 높은 폭발입니다 206 00:08:45,820 --> 00:08:48,120 주변 조각. 207 00:08:48,120 --> 00:08:51,870 탄두의 케이스는 사슴 사냥 용 총알처럼 행동하도록 설계되었습니다. 208 00:08:51,870 --> 00:08:54,920 미사일은 컨테이너 당 4 개의를 실시하고 있습니다 209 00:08:54,920 --> 00:08:57,850 세미 트레일러에 의해 운반. 210 00:08:57,850 --> 00:09:02,940 >> 애국 반 미사일 시스템은 최소한으로 돌아갑니다 211 00:09:02,940 --> 00:09:05,530 현재 20 년. 212 00:09:05,530 --> 00:09:09,150 원래에 방공 미사일로 설계되었습니다 213 00:09:09,150 --> 00:09:12,920 첫 번째 걸프전에서 적의 비행기를 격추 시켜라. 214 00:09:12,920 --> 00:09:17,700 그 전쟁이 함께 왔을 때, 미군은 쏘을 사용하고 싶어 215 00:09:17,700 --> 00:09:19,880 Scuds 아니라 비행기 아래로. 216 00:09:19,880 --> 00:09:24,860 에어 이라크 포스가 너무 문제가 아니었지만 군 217 00:09:24,860 --> 00:09:27,260 Scuds 걱정했다. 218 00:09:27,260 --> 00:09:30,810 그리고 그들은 애국를 업그레이드하려고했습니다. 219 00:09:30,810 --> 00:09:33,770 마하 5시 여행 적의 미사일이가는 가로 채고 220 00:09:33,770 --> 00:09:35,790 충분히 도전 할 수 있습니다. 221 00:09:35,790 --> 00:09:39,460 그러나 애국은 서비스에 달려되었습니다 육군 222 00:09:39,460 --> 00:09:43,730 자신의 한 이라크 수정의 인식 아니 었 223 00:09:43,730 --> 00:09:46,510 솜씨가 거의 불가능 Scuds. 224 00:09:46,510 --> 00:09:50,040 >> 무슨 일이 있었 냐면했다 Scuds입니다 225 00:09:50,040 --> 00:09:51,360 에 들어 오면은 불안정했다. 226 00:09:51,360 --> 00:09:52,266 그들은 흔들되었습니다. 227 00:09:52,266 --> 00:09:56,300 그 이유는 600을 위해, 이라크했습니다 228 00:09:56,300 --> 00:10:00,650 300km 범위 미사일 km 아웃은했습니다 229 00:10:00,650 --> 00:10:02,423 앞 탄두의 무게 아웃과 230 00:10:02,423 --> 00:10:03,990 탄두는 라이터했습니다. 231 00:10:03,990 --> 00:10:08,700 그래서 지금 애국은 엄청난에서 오려고하고, 대부분의있어 232 00:10:08,700 --> 00:10:11,192 시간은 시간의 압도적 인 대다수는, 그렇지 233 00:10:11,192 --> 00:10:13,450 단지 엄청난 지나갈. 234 00:10:13,450 --> 00:10:16,300 애국 시스템 운영자는 애국을 실현되면 235 00:10:16,300 --> 00:10:20,160 목표를 놓친, 그들은 애국자 탄두를 폭발 시켰고. 236 00:10:20,160 --> 00:10:22,760 가능한 희생자를 방지하기 위해, 그것은 허용 된 237 00:10:22,760 --> 00:10:25,100 땅에 떨어지지합니다. 238 00:10:25,100 --> 00:10:29,400 즉, 하늘의 큰 fireballs으로, 대부분의 사람들이 였어 239 00:10:29,400 --> 00:10:34,930 와 스커드 탄두의 가로로 오해. 240 00:10:34,930 --> 00:10:37,490 >> 밤 하늘에, 애국자로 나타나 있지만 241 00:10:37,490 --> 00:10:41,570 성공적으로 파괴 Scuds는 다란에서 더이 없었다 242 00:10:41,570 --> 00:10:43,730 성능에 대한 실수. 243 00:10:43,730 --> 00:10:46,370 , 애국의 레이더 시스템은 추적이 끊겼 244 00:10:46,370 --> 00:10:50,090 엄청난 수신 인해 시작되지 않을 245 00:10:50,090 --> 00:10:51,340 소프트웨어 결함합니다. 246 00:10:54,030 --> 00:10:57,050 그것은 처음 발견 이스라엘인이었다 이상 247 00:10:57,050 --> 00:11:02,000 시스템은 더 시간이 일치되었고,에 나왔 었어요 248 00:11:02,000 --> 00:11:05,530 시스템의 컴퓨터에 내장 된 시계로 인해. 249 00:11:05,530 --> 00:11:09,060 약 2 주 다란,의 비극 전에 250 00:11:09,060 --> 00:11:11,730 이스라엘 국방부에보고 그 251 00:11:11,730 --> 00:11:13,250 시스템 시간을 잃어되었습니다. 252 00:11:13,250 --> 00:11:15,610 실행 약 8 시간 후, 그들은 발견이 253 00:11:15,610 --> 00:11:18,330 시스템이 현저하게 적은 정확한 들어갔다. 254 00:11:18,330 --> 00:11:20,910 국방부는 모든 말에 반응 255 00:11:20,910 --> 00:11:23,710 애국 배터리는 시스템을 떠나지하기 256 00:11:23,710 --> 00:11:25,450 오랫동안 있습니다. 257 00:11:25,450 --> 00:11:28,010 그들은 긴 시간이 뭔지 말 안 - 8 시간, 10 258 00:11:28,010 --> 00:11:29,690 시간, 1,000 시간. 259 00:11:29,690 --> 00:11:31,940 아무도 알지 못했다. 260 00:11:31,940 --> 00:11:35,020 >> 애국 배터리는 다란에있는 부대에 배치 261 00:11:35,020 --> 00:11:39,030 및 결함 내부 시계에서 100 시간에 있었다 262 00:11:39,030 --> 00:11:42,240 2 월 밤 25번째. 263 00:11:42,240 --> 00:11:46,580 이 두 번째의 10에 대한의 정확도로 시간을 추적. 264 00:11:46,580 --> 00:11:48,830 지금 두 번째의 10는 흥미로운 숫자입니다 때문에 265 00:11:48,830 --> 00:11:52,660 그것은 즉, 정확히, 바이너리로 표현 할 수 없습니다 266 00:11:52,660 --> 00:11:54,940 그 어떤 정확히 표현할 수없는 267 00:11:54,940 --> 00:11:57,330 현대 디지털 컴퓨터. 268 00:11:57,330 --> 00:11:59,130 그것은 믿기 어렵습니다. 269 00:11:59,130 --> 00:12:01,720 그러나 예를 들어,이를 사용합니다. 270 00:12:01,720 --> 00:12:04,090 >> 가 수 한 세번째 봅시다. 271 00:12:04,090 --> 00:12:07,950 세번째는 정확히, 십진수로 표현 할 수 없습니다. 272 00:12:07,950 --> 00:12:12,710 한 세 번째는 0.333가 무한 동안 무슨 일이 일어나고 있습니다. 273 00:12:12,710 --> 00:12:17,050 소수의 절대 정확도로 그 작업을 수행 할 수있는 방법은 없습니다. 274 00:12:17,050 --> 00:12:19,340 그게 바로에 일어난 문제의 같은 종류 275 00:12:19,340 --> 00:12:20,190 애국. 276 00:12:20,190 --> 00:12:24,680 더 이상 시스템은 더 시간 오류가되었고, 실행. 277 00:12:24,680 --> 00:12:28,640 작동 100 시간 후, 시간의 오류 만했습니다 278 00:12:28,640 --> 00:12:29,870 두 번째 중 하나에 대한 세번째. 279 00:12:29,870 --> 00:12:34,790 그러나 마하 5시 여행 미사일을 타겟의 관점에서, 280 00:12:34,790 --> 00:12:39,140 그것은 600 미터의 추적 오류가있었습니다. 281 00:12:39,140 --> 00:12:42,510 그것은 다란에있는 병사들에 대한 치명적인 오류가 될 것입니다. 282 00:12:42,510 --> 00:12:48,680 >> 무슨 일이 것은 엄청난 출시입니다는 조기 경보에 의해 발견되었습니다 283 00:12:48,680 --> 00:12:52,440 인공위성과 그 엄청난이 들어오는 것을 알고 284 00:12:52,440 --> 00:12:53,350 일반적으로 안내 할 것입니다. 285 00:12:53,350 --> 00:12:55,470 그 일이 일어날 지이 어디 있는지도 몰랐을. 286 00:12:55,470 --> 00:12:58,210 그것은 애국의 레이더 구성 요소까지 지금이었다 287 00:12:58,210 --> 00:13:01,920 추적을 찾아 유지하는 시스템 다란를 방어, 288 00:13:01,920 --> 00:13:03,700 들어오는 적의 미사일. 289 00:13:03,700 --> 00:13:05,390 레이더 아주 똑똑했다. 290 00:13:05,390 --> 00:13:07,570 당신은 정말로 엄청난의 위치를​​ 추적하고 것 291 00:13:07,570 --> 00:13:10,340 아마도 다음 번에 ​​것 위치 예측 292 00:13:10,340 --> 00:13:12,040 레이더는 펄스를 보냈습니다. 293 00:13:12,040 --> 00:13:13,730 그는 범위 게이트 불렀습니다. 294 00:13:13,730 --> 00:13:18,820 그런 다음, 한 번 애국 충분한 시간이 갈 통과 결정 295 00:13:18,820 --> 00:13:22,600 백업이 감지은 다음 위치를 확인 296 00:13:22,600 --> 00:13:24,190 객체는, 그것은 거슬러 올라갑니다. 297 00:13:24,190 --> 00:13:27,940 그럼 뒤로 잘못했을 때, 그것은 그럼, 아무 볼 수 없습니다 298 00:13:27,940 --> 00:13:31,000 이의를 제기하고, 더 객체이 없었 결정합니다. 299 00:13:31,000 --> 00:13:34,370 그것은 거짓 탐지이고 트랙을 떨어. 300 00:13:34,370 --> 00:13:37,630 >> 들어오는 엄청난은 레이더 화면에서 사라졌다. 301 00:13:37,630 --> 00:13:41,300 그리고 초 후에, 이건 부대를 강타. 엄청난 302 00:13:41,300 --> 00:13:44,730 28 명을 죽이고, 동안 발사 마지막 하나 303 00:13:44,730 --> 00:13:46,450 첫 번째 걸프전. 304 00:13:46,450 --> 00:13:50,570 안타깝게도, 업데이트 된 소프트웨어 다란에 도착 305 00:13:50,570 --> 00:13:52,060 다음 날. 306 00:13:52,060 --> 00:13:56,210 그리고 소프트웨어 결함에 한 장을 종료, 고정 된 307 00:13:56,210 --> 00:13:58,370 애국자 미사일의 힘든 역사. 308 00:14:01,790 --> 00:14:04,990 애국자는 실제로 "단계적으로 배열 추적의 약자입니다 309 00:14:04,990 --> 00:14:08,516 대상의 차단. " 310 00:14:08,516 --> 00:14:13,390 >> 별로 모든 권리 때문에 훨씬 더 슬픈 결과 311 00:14:13,390 --> 00:14:14,430 이 세계를 이해. 312 00:14:14,430 --> 00:14:18,180 그리고 테이크 아웃, 정말 영화에서입니다 솔루션 313 00:14:18,180 --> 00:14:20,790 귀하의 미사일 방어 시스템을가 재부팅 된 314 00:14:20,790 --> 00:14:21,770 가끔씩. 315 00:14:21,770 --> 00:14:24,280 그리고 다시이 과정의 목적 중 하나 확실히 316 00:14:24,280 --> 00:14:26,900 이 응용 프로그램보다 더 겸손한 규모,하는 것입니다 317 00:14:26,900 --> 00:14:30,710 당신이 가서 정확히하는 방법에 정말 열려있는 모든 사람들의 눈 318 00:14:30,710 --> 00:14:34,380 만드는 기계 일을 당신이하고 싶은 방법과 당신이 가서 319 00:14:34,380 --> 00:14:37,180 그 길을 따라 그것을하는 동안 약 제대로하고 320 00:14:37,180 --> 00:14:38,810 물론 우아하게, 등등. 321 00:14:38,810 --> 00:14:41,680 그리고 오늘날이 좀 더 뛰어 들다의 해 있지만, 322 00:14:41,680 --> 00:14:44,210 수 있도록 우리는 특히 그 이하, 너무 빨리 가지 마세요 323 00:14:44,210 --> 00:14:46,590 우리는의 이익을 유지할 수 편안한뿐만 아니라되도록 324 00:14:46,590 --> 00:14:49,390 그 더 편안하고 조금으로 시작 빨리 만하자 325 00:14:49,390 --> 00:14:50,970 이러한 아이디어 중 일부 뉴스 레터를 살펴을. 326 00:14:50,970 --> 00:14:53,710 이 경우 다시 한번, 직접 또는 온라인 모두 도보로 문의 327 00:14:53,710 --> 00:14:56,320 질문 그래서 우리는 같은 페이지에있는 모든 사람을 유지할 수 있습니다. 328 00:14:56,320 --> 00:14:58,820 >> 그래서 CS50 어플라이언스, 다시 빠른 단계입니다 329 00:14:58,820 --> 00:15:02,360 자신의 단어에? 330 00:15:02,360 --> 00:15:06,454 당신이 그 단어가 아직있을 수 있습니다 아무 생각이없는 경우는 OK입니다. 331 00:15:06,454 --> 00:15:07,830 [안 들리게] 332 00:15:07,830 --> 00:15:10,950 그래, 그럼에 대한 보편적 인 인터페이스 - 333 00:15:10,950 --> 00:15:11,900 우리 모두 공유 할 수있는. 334 00:15:11,900 --> 00:15:12,470 물론입니다. 335 00:15:12,470 --> 00:15:14,840 그래서 우리는 예를 들어, 일부에 가서 말할 수 336 00:15:14,840 --> 00:15:16,910 웹 사이트, 맥 OS 용 소프트웨어를 다운로드 할 수 있습니다. 337 00:15:16,910 --> 00:15:19,140 에서 구성, Windows 용 소프트웨어를 다운로드 338 00:15:19,140 --> 00:15:20,100 이 방법 그. 339 00:15:20,100 --> 00:15:22,370 하지만 현실은 우리가 수많은 기술로 한 다음 실행합니다 340 00:15:22,370 --> 00:15:23,200 문제를 지원합니다. 341 00:15:23,200 --> 00:15:26,630 또한 요즘, 서버 측을 수행하는 일의 많은, 342 00:15:26,630 --> 00:15:28,490 컴퓨팅의 세계에서, 특히 그에게 찾아온다 343 00:15:28,490 --> 00:15:31,460 웹 개발 및 웹 기반 응용 프로그램은 실제로 344 00:15:31,460 --> 00:15:35,110 종종 UNIX 또는 Linux 컴퓨터에 수행 등이 아닌 345 00:15:35,110 --> 00:15:36,800 Mac 또는 윈도우 PC. 346 00:15:36,800 --> 00:15:39,240 >> 그래서 나름의 매력 중, 다음이 일을 사용하는 호출 347 00:15:39,240 --> 00:15:41,500 CS50 어플라이언스 우리 모두가 같은 환경을해야합니다. 348 00:15:41,500 --> 00:15:43,670 그래서 모두가 동일한 페이지에 어떤 하드웨어가 당신이 상관 없다 349 00:15:43,670 --> 00:15:46,650 와 함께 캠퍼스에 와서뿐만 아니라, 정확히에 dabbling 될 것입니다 350 00:15:46,650 --> 00:15:48,230 당신은으로 사용됩니다 것과 동일한 환경 351 00:15:48,230 --> 00:15:51,080 학기의 끝뿐만 아니라에 대한 웹 개발뿐만 아니라에 352 00:15:51,080 --> 00:15:53,580 그 실제 응용 프로그램에 대한 미래. 353 00:15:53,580 --> 00:15:56,350 따라서 더 구체적으로, CS50 어플라이언스의 무료 조각입니다 354 00:15:56,350 --> 00:15:59,400 당신이 다른 운영 체제를 실행할 수 있습니다 소프트웨어, 355 00:15:59,400 --> 00:16:02,670 리눅스,이 경우 자신의 컴퓨터에, 윈도우 인치 356 00:16:02,670 --> 00:16:04,750 이제 막 어플라이언스를 다운로드 할 수 없습니다. 357 00:16:04,750 --> 00:16:08,170 당신은 어플라이언스를 재생하거나 실행하는 데 필요한 프로그램이 필요합니다. 358 00:16:08,170 --> 00:16:11,220 및 소프트웨어의 조각은 일반적으로로 알려져 있습니다 359 00:16:11,220 --> 00:16:11,520 하이퍼 바이저. 360 00:16:11,520 --> 00:16:14,050 하이퍼 바이저는 VM웨어와 같은 제품의 형태로 361 00:16:14,050 --> 00:16:15,820 가상 박스, 패러랠즈. 362 00:16:15,820 --> 00:16:18,390 기업의 모든 종류의 소프트웨어, 무료 모두하고 363 00:16:18,390 --> 00:16:19,310 모두, 상업. 364 00:16:19,310 --> 00:16:21,480 이 문제에 볼을 설정할 1 방법에 대한 지침 아르 365 00:16:21,480 --> 00:16:23,440 무료 소프트웨어를 취득하는 방법과 366 00:16:23,440 --> 00:16:25,000 CS50 어플라이언스를 실행합니다. 367 00:16:25,000 --> 00:16:28,060 그리고 일단, 당신은 Mac 또는 PC의 창에해야하나요 368 00:16:28,060 --> 00:16:30,710 상당히과 같은 데스크탑 환경, 어디서 369 00:16:30,710 --> 00:16:33,100 그것은에 시작 메뉴와 같은 것을 가지고 370 00:16:33,100 --> 00:16:34,510 왼쪽 하단. 371 00:16:34,510 --> 00:16:38,030 그것은 왼쪽 상단에 홈 폴더 또는 홈 디렉토리가 372 00:16:38,030 --> 00:16:40,280 거기 휴지통은 안돼, 등등. 373 00:16:40,280 --> 00:16:43,450 그래서 우리는 우리가 진행하면서 필요한 세부 정보를 분리 애타게됩니다. 374 00:16:43,450 --> 00:16:46,430 >> 그러나 지금은 C.에 뛰어들 시작하자 375 00:16:46,430 --> 00:16:49,200 따라서 C는 정신에 유사합니다,이 프로그래밍 언어입니다 376 00:16:49,200 --> 00:16:52,390 스크래치하지만, 훨씬 적은 그래픽,하지만 아이러니하게도, 지금까지 377 00:16:52,390 --> 00:16:54,730 당신이와 이해가 가면 더 강력합니다. 378 00:16:54,730 --> 00:16:58,970 따라서 C에서, 우리는있는 소스 코드를 작성하여 프로그램을 작성할 379 00:16:58,970 --> 00:17:01,640 양말과 비슷한이 영어와 같은 구문, 380 00:17:01,640 --> 00:17:05,609 우리가 작업을 수행 할 수 있습니다 마지막으로 시간을 한 것을 데모 381 00:17:05,609 --> 00:17:07,910 경우 매우 정확하게 자신을 표현 382 00:17:07,910 --> 00:17:09,760 arcanely, 컴퓨터에. 383 00:17:09,760 --> 00:17:11,960 >> 그래서 당신은 실제로 제품 소프트웨어의 어떤 종류가 필요합니까 384 00:17:11,960 --> 00:17:15,520 우리에 따라, C와 같은 언어로 프로그램을 작성하는 방법 385 00:17:15,520 --> 00:17:17,492 월요일에 대화? 386 00:17:17,492 --> 00:17:19,650 [안 들리게] 387 00:17:19,650 --> 00:17:21,079 OK, 당신은 단지 텍스트 편집기가 필요합니다. 388 00:17:21,079 --> 00:17:22,890 당신은 어떤 특별한 소프트웨어가 필요하지 않습니다 389 00:17:22,890 --> 00:17:24,460 당 SE 프로그램을 쓸 수 없습니다. 390 00:17:24,460 --> 00:17:27,220 당신은 Windows에서 메모장과 같은 텍스트 편집기를 필요 391 00:17:27,220 --> 00:17:30,450 Mac에서 텍스트 편집기, 또는 세계에서 gedit라는 걸, 392 00:17:30,450 --> 00:17:32,020 우리가 사용할 리눅스. 393 00:17:32,020 --> 00:17:33,750 그리고 그 프로그램을 작성하는 거예요. 394 00:17:33,750 --> 00:17:35,480 >> 그러나 쓰기는 방정식의 절반 만입니다. 395 00:17:35,480 --> 00:17:36,630 그런 다음을 실행해야합니다. 396 00:17:36,630 --> 00:17:38,320 그러나 프로그램을 실행하려면 - 397 00:17:38,320 --> 00:17:39,600 당신은 소스 코드를 실행할 수 없습니다. 398 00:17:39,600 --> 00:17:41,500 대신 먼저에게 무슨 짓을하는거야? 399 00:17:41,500 --> 00:17:41,900 그래. 400 00:17:41,900 --> 00:17:43,200 데이빗 J. MALAN : 당신은 필요 401 00:17:43,200 --> 00:17:44,130 그것을 컴파일. 402 00:17:44,130 --> 00:17:49,010 그리고 다른 사람은 소스 코드를 컴파일하는 것도 의미 - 403 00:17:49,010 --> 00:17:50,260 [안 들리게] 404 00:17:52,300 --> 00:17:52,700 데이빗 J. MALAN : 그렇지. 405 00:17:52,700 --> 00:17:54,430 제로과 사랑하는 사람들에 번역. 406 00:17:54,430 --> 00:17:57,150 우리 모두는, 요즘 CPU를 가지고 컴퓨터를 가지고 있기 때문 407 00:17:57,150 --> 00:18:00,350 거의 어떤 모두 인텔이라는 회사에 의해 만들어진, 그리고 408 00:18:00,350 --> 00:18:03,320 인텔 내부, 당신의 뇌 내부가 의미 409 00:18:03,320 --> 00:18:04,990 CPU로 알려진 컴퓨터. 410 00:18:04,990 --> 00:18:07,570 그리고 뇌는 않는 것 중 하나는 알고있다 411 00:18:07,570 --> 00:18:10,390 제로와 사람들의 패턴을 이해하는 방법. 412 00:18:10,390 --> 00:18:13,240 그것은 비트 패턴이 추가 상징하는 그 무엇을 알고 무엇 413 00:18:13,240 --> 00:18:15,500 패턴은, subtractions를 나타내는 어떤 패턴의 414 00:18:15,500 --> 00:18:18,890 비트 인쇄 및 음성 사운드를 만들어냅니다. 415 00:18:18,890 --> 00:18:22,450 >> 그래서 짧은에, 운영 체제와 결합 CPU,, 416 00:18:22,450 --> 00:18:25,230 그 때문에 CPU의 상단에서 실행 소프트웨어의 조각입니다 417 00:18:25,230 --> 00:18:26,050 말하자면합니다. 418 00:18:26,050 --> 00:18:29,850 함께 두 조각은 프로그램을 실행하는 방법을 알고 419 00:18:29,850 --> 00:18:31,070 우리 인간은 써주세요. 420 00:18:31,070 --> 00:18:34,040 >> 여기 CS50 어플라이언스로 이동하면, 나는 열 필요 421 00:18:34,040 --> 00:18:35,660 텍스트 편집기에서 위이에 액세스 할 수 있습니다 422 00:18:35,660 --> 00:18:36,560 몇 가지 방법 인치 423 00:18:36,560 --> 00:18:39,060 나도 메뉴로 이동 할 수 있습니다, 프로그래밍, 424 00:18:39,060 --> 00:18:40,230 그럼 내가 선택할 수 있습니다 - 425 00:18:40,230 --> 00:18:40,810 아니, 아니 그 메뉴. 426 00:18:40,810 --> 00:18:43,860 나는 액세서리로 이동 / 열려면 여기를 gedit 수 427 00:18:43,860 --> 00:18:45,090 내 작은 텍스트 편집기. 428 00:18:45,090 --> 00:18:48,030 이상 간단하게, 내가 바닥에이 작은 아이콘을 클릭하면 429 00:18:48,030 --> 00:18:48,970 왼쪽 코너. 430 00:18:48,970 --> 00:18:50,430 그리고 지금 여기이 환경을. 431 00:18:50,430 --> 00:18:52,590 단지로는 간단한 텍스트 편집기의 아름다운 연상입니다 432 00:18:52,590 --> 00:18:53,820 하나 또는 두 개의 차이. 433 00:18:53,820 --> 00:18:56,420 상단에 커서가 현재 점멸 곳이 어디있어 434 00:18:56,420 --> 00:18:57,900 내 코드를 작성할 수있을 것입니다. 435 00:18:57,900 --> 00:19:00,415 아래에서이 점은 터미널 창이라고합니다. 436 00:19:00,415 --> 00:19:03,400 그리고이 일에 무슨 일 종류를 수행 할 수 437 00:19:03,400 --> 00:19:04,960 터미널 창 소위? 438 00:19:04,960 --> 00:19:06,680 [안 들리게] 439 00:19:06,680 --> 00:19:07,890 >> 좋아, 내가 명령을 실행합니다. 440 00:19:07,890 --> 00:19:10,300 그리고 우리가 월요일에 실행 명령의 일부가 어렸을 때 441 00:19:10,300 --> 00:19:15,070 목록 암호화 처음 엔하지만이게, 변경 디렉터리에 대한 CD, 442 00:19:15,070 --> 00:19:16,540 RM 제거하십시오. 443 00:19:16,540 --> 00:19:19,680 따라서이 탐색의 구식 방식의 일종 이죠 444 00:19:19,680 --> 00:19:22,310 컴퓨터 만 키보드 및 텍스트 명령을 사용하여 445 00:19:22,310 --> 00:19:24,130 아니라, 일반적으로 마우스를 사용합니다. 446 00:19:24,130 --> 00:19:25,960 하지만 오래 전에 볼이 실제로 우리에게를 제공합니다 447 00:19:25,960 --> 00:19:28,520 좀 더 힘과 좀 더 정밀 할에 동의 448 00:19:28,520 --> 00:19:29,600 자신을 표현한다. 449 00:19:29,600 --> 00:19:31,330 그리고 여기 왼쪽으로, 우리가 볼거야 450 00:19:31,330 --> 00:19:34,360 우리는 서면으로 소프트웨어의 작은 요약을 시작으로 451 00:19:34,360 --> 00:19:36,350 우리가 왼쪽 상단 작성한 프로그램입니다. 452 00:19:36,350 --> 00:19:38,360 하지만 우리는 오랫동안 전에 다시 볼 수 있습니다. 453 00:19:38,360 --> 00:19:40,050 >> 그래서 여기 아주 간단한 일을 해보자 구. 454 00:19:40,050 --> 00:19:43,440 내가 먼저 가서, 파일 저장 가자, 그리고 난 단지 455 00:19:43,440 --> 00:19:45,970 왼쪽 위에, 여기를 jharvard을 클릭 거에요, 456 00:19:45,970 --> 00:19:48,930 jharvard는 다시 내 홈 폴더의 이름입니다 내 457 00:19:48,930 --> 00:19:52,110 개인 파일, 나, 지금되는 존 하버드, 당신의 등 458 00:19:52,110 --> 00:19:54,230 곧이 환경에 존 하버드 될 것입니다. 459 00:19:54,230 --> 00:19:57,360 그는, 등등, 내 문서를이 홈 디렉토리를 가지고 있고있어 460 00:19:57,360 --> 00:19:58,900 인치 지금, 저장하고자하는,이 파일 461 00:19:58,900 --> 00:20:01,520 그래서 난 hello.c 부를께요. 그럼 난 갈거야 462 00:20:01,520 --> 00:20:05,770 앞서하고 저장을, 그리고 지금 내가 여기있는 탭입니다 클릭하십시오 463 00:20:05,770 --> 00:20:09,440 많은 편집기의 또 다른 유형처럼, hello.c했다. 464 00:20:09,440 --> 00:20:11,760 >> 이제 내가 가서 프로그램을 작성 해. 465 00:20:11,760 --> 00:20:14,440 INT 메인 (무효). 466 00:20:14,440 --> 00:20:18,150 그리고 제가 지난 시간을 했어, printf, 인쇄는 포맷에 대한, 467 00:20:18,150 --> 00:20:22,120 ( "안녕하세요, 세계!" 468 00:20:22,120 --> 00:20:24,500 );. 469 00:20:24,500 --> 00:20:25,630 거의 완료해야합니다. 470 00:20:25,630 --> 00:20:27,130 하지만 세부 몇 누락되었습니다. 471 00:20:27,130 --> 00:20:30,210 어떻게 정말에 필요한이 프로그램에서 누락 472 00:20:30,210 --> 00:20:31,890 실제로 컴파일 하는가? 473 00:20:31,890 --> 00:20:32,130 그래. 474 00:20:32,130 --> 00:20:33,980 [안 들리게]? 475 00:20:33,980 --> 00:20:35,770 >> 데이빗 J. MALAN : 네, 제가 표준을 포함​​시킬 필요가 476 00:20:35,770 --> 00:20:36,700 I / O 라이브러리를 제공합니다. 477 00:20:36,700 --> 00:20:39,470 이 요구 사항은 주 이상가는, 그래서 난 그냥 갈거야 자 478 00:20:39,470 --> 00:20:40,790 거기에 몇 가지 공간을 확보. 479 00:20:40,790 --> 00:20:44,420 그리고 # 를 포함 할거야. 480 00:20:44,420 --> 00:20:46,570 그리고 각진 괄호를 확인합니다. 481 00:20:46,570 --> 00:20:49,410 그리고 옆으로 gedit 같은 경우 좀 사용자 친화적 인 것입니다 482 00:20:49,410 --> 00:20:52,420 아무 도움이 시도에, 때때로 약간 혼란 483 00:20:52,420 --> 00:20:54,770 눈이 무엇을 어떤 선까지 확인합니다. 484 00:20:54,770 --> 00:20:57,760 그래서 내 커서가이 각진 바로 옆에 있다는 사실이 485 00:20:57,760 --> 00:21:00,600 브래킷은 다른 직각을 강조하는 방식 발견 486 00:21:00,600 --> 00:21:01,920 브래킷 플러스 이거 야. 487 00:21:01,920 --> 00:21:03,770 그리고 그건 사실 내 관심을 끌기 위해이야 I 488 00:21:03,770 --> 00:21:04,460 대칭 있습니다. 489 00:21:04,460 --> 00:21:07,010 그리고 프로그래밍의 대칭은 일반적으로 좋은 일입니다. 490 00:21:07,010 --> 00:21:10,270 나는 끝까지 내 커서를 이동하면 마찬가지로주의하는 방법 491 00:21:10,270 --> 00:21:13,630 중괄호 줄까지 예, 내가 열려을 가지고 있다는 표시 492 00:21:13,630 --> 00:21:15,160 과 폐쇄 하나는, 말하자면합니다. 493 00:21:15,160 --> 00:21:16,640 >> 좋아, 내가 다른 일을 할 수 있습니다. 494 00:21:16,640 --> 00:21:20,090 이 말을 엄격하게 필요하지만, 좋은 연습이 아니야 495 00:21:20,090 --> 00:21:21,250 0을 반환합니다. 496 00:21:21,250 --> 00:21:24,140 그리고 반환 0 여기 무슨 일을합니까? 497 00:21:24,140 --> 00:21:25,584 또는 무엇을 의미? 498 00:21:25,584 --> 00:21:27,480 [안 들리게] 499 00:21:27,480 --> 00:21:28,300 데이빗 J. MALAN :하지만 아무 문제 없어. 500 00:21:28,300 --> 00:21:30,280 많은에 잘못 할 수 솔직히 힘들어요 501 00:21:30,280 --> 00:21:31,250 이 짧은을 프로그램. 502 00:21:31,250 --> 00:21:33,930 그래서 그냥 잘 것을 명시 적 초인거야. 503 00:21:33,930 --> 00:21:36,740 I, 인간,이 프로그램을 실행, 아마 앞으로도 그럴 504 00:21:36,740 --> 00:21:38,150 그 0을 참조하십시오. 505 00:21:38,150 --> 00:21:41,070 일반적으로, 그 숫자는 메인에서 반환되는 506 00:21:41,070 --> 00:21:43,540 만 인간에게 머리를 서다 때 507 00:21:43,540 --> 00:21:44,360 뭔가 잘못갑니다. 508 00:21:44,360 --> 00:21:46,640 그리고 당신은, 말하는 시스템 오류를 백업 한 작은 팝업을 509 00:21:46,640 --> 00:21:48,760 2 번이 3, 또는 어떤 수를이었다 510 00:21:48,760 --> 00:21:50,100 실제로 반환했습니다. 511 00:21:50,100 --> 00:21:52,870 이것에 다른 잘못도 그래? 512 00:21:52,870 --> 00:21:55,300 [안 들리게] 513 00:21:55,300 --> 00:21:58,100 >> 데이빗 J. MALAN : 그럼이 많은 기능 실수하지 않습니다 514 00:21:58,100 --> 00:21:59,240 하지만 미적 하나입니다. 515 00:21:59,240 --> 00:22:02,340 아마에 거기에 줄 바꿈 문자에 넣어해야 516 00:22:02,340 --> 00:22:05,240 있도록 우리가 실제로 커서를이 문자열의 끝으로 이동 517 00:22:05,240 --> 00:22:08,340 다음 행,이 프로그램은 그냥 좀 더 예뻐 보인다. 518 00:22:08,340 --> 00:22:10,340 >> 이제 내 터미널 창에 내려가 519 00:22:10,340 --> 00:22:11,490 다시 인치 확대 520 00:22:11,490 --> 00:22:13,390 그리고 여기에서이 점은,이 프롬프트라고합니다. 521 00:22:13,390 --> 00:22:16,760 단지, 내가 누군지 jharvard @ 기기, 어디서 저를 상기 있어요 522 00:22:16,760 --> 00:22:18,850 어플라이언스는 제가하고있는 컴퓨터의 이름입니다. 523 00:22:18,850 --> 00:22:22,380 괄호 안에이 물결표, squiggle 기호는입니다 524 00:22:22,380 --> 00:22:24,160 무엇을 제시 하는가? 525 00:22:24,160 --> 00:22:25,590 청중 : 홈 디렉토리. 526 00:22:25,590 --> 00:22:26,350 데이빗 J. MALAN : 홈 디렉토리. 527 00:22:26,350 --> 00:22:29,350 당신이에 말에 불과 속기 표기법 인 것 528 00:22:29,350 --> 00:22:32,780 파일의 모든 기본적으로 이동 개인 폴더에 저장됩니다. 529 00:22:32,780 --> 00:22:36,080 그래서 지금, 여기에, 나는 목록인가요를 입력 할 수 있습니다. 530 00:22:36,080 --> 00:22:40,020 그리고 지금 여기 볼 수있는 유일한 것은 hello.c입니다. 531 00:22:40,020 --> 00:22:41,770 내가 그냥 만든 곡 때문에 좋네요. 532 00:22:41,770 --> 00:22:44,380 >> 그럼 내가 가서 인사하게하자. 533 00:22:44,380 --> 00:22:46,830 그리고 hello.c하게 입력 안납니다. 534 00:22:46,830 --> 00:22:50,300 대신, 난 단지 인사, 파일의 기본 이름을 입력거야. 535 00:22:50,300 --> 00:22:53,690 우리가 월요일에 본대로, 만들어 내가 원하는 것을 추론 할 536 00:22:53,690 --> 00:22:54,920 . C 파일입니다. 537 00:22:54,920 --> 00:22:56,820 그래서 지금은 인사하기 입력했습니다. 538 00:22:56,820 --> 00:22:59,280 지금은이 상당히 긴 명령을 확인하고 계속 539 00:22:59,280 --> 00:23:00,480 또 한번, 또 한번이 표시. 540 00:23:00,480 --> 00:23:03,620 그러나 분명 그 소리, 단지 나타난 단어 할 수 541 00:23:03,620 --> 00:23:05,340 그 실제 컴파일러입니다. 542 00:23:05,340 --> 00:23:08,200 확인은 빌드 유틸리티입니다. 543 00:23:08,200 --> 00:23:11,900 그것은에서 저를 저장 더 많은 사용자 친화적 인 프로그램입니다 544 00:23:11,900 --> 00:23:15,310 긴 긴 매우 지루한 아웃 입력 할 필요에서 실행 545 00:23:15,310 --> 00:23:17,020 그와 같은 명령. 546 00:23:17,020 --> 00:23:18,950 그럼 당신은 수동으로 꽝을 실행할 수 있습니다. 547 00:23:18,950 --> 00:23:20,530 당신은 수동으로 모든 입력 할 수 있습니다. 548 00:23:20,530 --> 00:23:21,580 그냥 아주 지루한 가져옵니다. 549 00:23:21,580 --> 00:23:24,720 그리고 확인하는 것은 단지 우리의 삶을 단순화 프로그램입니다 550 00:23:24,720 --> 00:23:27,120 좀 더 복잡한 명령을 실행합니다. 551 00:23:27,120 --> 00:23:29,410 >> 자, 그럼 이제 어떤 파일 내가 당신 말을 들었어야 552 00:23:29,410 --> 00:23:31,540 현재 디렉토리에? 553 00:23:31,540 --> 00:23:36,310 단지 hello.c뿐만 아니라, 안녕하세요 없습니다. 554 00:23:36,310 --> 00:23:39,710 내 안부 실행하고 싶다면, 나 도트 슬래시라고하는 기억 555 00:23:39,710 --> 00:23:42,220 도트 수단은 현재 폴더, 당신 곳으로 이동하는 위치를 556 00:23:42,220 --> 00:23:46,060 있으며, 그런데 지금은 실제로 인사라는 프로그램을 실행하고, 557 00:23:46,060 --> 00:23:48,080 나는 안녕하세요되어 있습니다. 558 00:23:48,080 --> 00:23:51,640 좋아, 워크 플로우에 대한 질문이나의 구문 559 00:23:51,640 --> 00:23:52,890 우리가 무슨 짓을했는지? 560 00:23:55,380 --> 00:23:57,040 >> 그래, 그러니 다시 노치 백업 물건을 봅시다. 561 00:23:57,040 --> 00:24:00,430 그래서이는 프로그램을 작성하는 underwhelming되었습니다 만 562 00:24:00,430 --> 00:24:01,790 어느 안녕하세요, 세계는 말합니다. 563 00:24:01,790 --> 00:24:03,920 그래서 우리는 말, 안녕, 데이빗 월요일에, 그것을 변경했습니다. 564 00:24:03,920 --> 00:24:06,560 조금 더 개인 만, 마찬가지로 하드로 코딩 565 00:24:06,560 --> 00:24:07,410 첫번째 버전. 566 00:24:07,410 --> 00:24:08,780 그럼 그 설득력 없습니다. 567 00:24:08,780 --> 00:24:13,120 그러나 외에 확실히, C에서 기능이 존재 568 00:24:13,120 --> 00:24:15,700 인쇄, 당신이 사용자 입력을 가자 기능. 569 00:24:15,700 --> 00:24:17,990 그리고 우리가 이런 짓을하는 방법, 다른 하루는 다음과 같이했습니다. 570 00:24:17,990 --> 00:24:21,440 제가 실제로 뭔가를 인쇄하기 전에, 내가 먼저 왔어 571 00:24:21,440 --> 00:24:22,410 사용자의 무언가. 572 00:24:22,410 --> 00:24:23,370 그러니 다시 해주세요. 573 00:24:23,370 --> 00:24:26,580 >> s이 (가) 보시려면 여기를 그냥 임의의 이름,이 문자열 s의 574 00:24:26,580 --> 00:24:30,600 문자열, GetString 같습니다. 575 00:24:30,600 --> 00:24:32,070 그래서 우리가 GetString 거죠? 576 00:24:32,070 --> 00:24:34,630 그것은 분명히 이름에 따라 문자열을 가져옵니다. 577 00:24:34,630 --> 00:24:37,560 그러나 더 엄밀히 말하면, 무엇입니까? 578 00:24:37,560 --> 00:24:38,440 이 기능입니다. 579 00:24:38,440 --> 00:24:41,790 그래서 본질적으로 C와 함께 제공되지 않는 기능입니다. 580 00:24:41,790 --> 00:24:43,660 CS50 직원이 썼다. 581 00:24:43,660 --> 00:24:46,940 그리고이 기능을 사용하려면, 그냥 stdio.h 포함 할 수 없습니다 582 00:24:46,940 --> 00:24:49,630 당신은 또한 무엇을 포함해야합니까? 583 00:24:49,630 --> 00:24:50,060 그래. 584 00:24:50,060 --> 00:24:54,210 단지 파일입니다 cs50.h, 그래서 우리는 몇 년 전에 썼다. 585 00:24:54,210 --> 00:24:57,130 우리는 함께 당신을위한 기기에 설치 586 00:24:57,130 --> 00:24:58,490 표준 파일을 모두. 587 00:24:58,490 --> 00:25:00,500 그리고 클래스의 이러한 처음 몇 주 동안, 우리는 사용합니다 588 00:25:00,500 --> 00:25:02,820 이 단지 아주 기본적인 일을하는 과정을 단순화 할 수 589 00:25:02,820 --> 00:25:04,600 일이 점점 사용자 입력을 좋아해요. 590 00:25:04,600 --> 00:25:07,370 때문에에 우리는 몇 주 동안 보게 될, 점점 사용자의 입력 591 00:25:07,370 --> 00:25:10,180 C와 같은 언어는 실제로 놀라 울 정도로 복잡 592 00:25:10,180 --> 00:25:14,360 어떻게, 보통, 사전에 모르는 있기 때문에 593 00:25:14,360 --> 00:25:17,030 많은 물건은 사용자가 들어 입력 할 것이다 594 00:25:17,030 --> 00:25:20,340 그리고 당신이 기대하는 얼마나 많은 데이터 모를 때, 당신은 몰라요 595 00:25:20,340 --> 00:25:22,380 할당하는 방법을 메모리 알아요. 596 00:25:22,380 --> 00:25:25,480 당신은 실제로하려고 적대 사용자가있는 경우 597 00:25:25,480 --> 00:25:28,180 시스템 해킹, 잘, 컴퓨터 충돌을 598 00:25:28,180 --> 00:25:31,600 일반적으로 공격의 첫 번째 방법은 I가했던 것처럼이다 599 00:25:31,600 --> 00:25:34,950 월요일, 무작위 문자의 아주 긴 시퀀스를 입력 600 00:25:34,950 --> 00:25:37,020 Enter 키를 누르하고, 끊어 알아보십시오. 601 00:25:37,020 --> 00:25:40,800 일반적으로 프로그램 중단하는 경우, 그에서 힌트 때문에 602 00:25:40,800 --> 00:25:42,650 보안 결함 가능성. 603 00:25:42,650 --> 00:25:45,250 확실히 한 것으로, 당신의 프로그래머 힌트 604 00:25:45,250 --> 00:25:49,050 실수하지만, 더 위험하게, 당신은 한 수 605 00:25:49,050 --> 00:25:52,430 보안 관련 실수, 일반적으로이 부분에 대해서는 606 00:25:52,430 --> 00:25:54,840 기계는이 일에 해킹하는 방법이야 모두 607 00:25:54,840 --> 00:25:56,620 에서 웹 및 프로그램의 세계 608 00:25:56,620 --> 00:25:58,070 이와 같은 명령 줄. 609 00:25:58,070 --> 00:25:58,350 >> 괜찮아요. 610 00:25:58,350 --> 00:26:00,460 따라서 문자열 s은 (는) GetString 같습니다. 611 00:26:00,460 --> 00:26:03,380 따라서 더 구체적으로, 지금 6 호선 여기서 뭐합니까? 612 00:26:03,380 --> 00:26:05,640 그럼 오른쪽에있는 함수는, 문자열을 도착 613 00:26:05,640 --> 00:26:06,890 얼마나 많은 인수 그치? 614 00:26:09,458 --> 00:26:09,900 좋아요. 615 00:26:09,900 --> 00:26:10,400 그래서 없음. 616 00:26:10,400 --> 00:26:11,360 약간 정신이 확인합니다. 617 00:26:11,360 --> 00:26:15,380 인수는, 다시, 단지 변경하는 함수에 입력 is 618 00:26:15,380 --> 00:26:17,250 어떤 방법으로 기본 동작. 619 00:26:17,250 --> 00:26:19,540 하지만이 케이스는, 내가 변경하지 않으 620 00:26:19,540 --> 00:26:20,650 GetString의 행동. 621 00:26:20,650 --> 00:26:22,430 난 그냥 문자열을 가져 오기를 원했습니다. 622 00:26:22,430 --> 00:26:25,190 그래서 괄호 안에 아무것도 넣어 없으며, 그럼 내가 넣어 623 00:26:25,190 --> 00:26:27,550 세미콜론 코드의 줄의 끝을 demarking. 624 00:26:27,550 --> 00:26:29,840 이제 당 SE, 같은 의미하지는 않습니다 등호. 625 00:26:29,840 --> 00:26:32,690 그것은 할당을 의미하는가 도착을 지정할 의미 626 00:26:32,690 --> 00:26:36,060 왼쪽에 무엇이든의 오른쪽 안쪽에 출력. 627 00:26:36,060 --> 00:26:39,400 >> 그래서 왼쪽에, 우리는 우리가 선언 한 말 628 00:26:39,400 --> 00:26:41,630 문자열 S했다. 629 00:26:41,630 --> 00:26:44,240 그리고 더 구체적으로, 우리는 내부 메모리를 할당 한 630 00:26:44,240 --> 00:26:46,340 우리는의 순서를 나타내는 비트를 올려 놓으하는 631 00:26:46,340 --> 00:26:46,850 자. 632 00:26:46,850 --> 00:26:49,400 그러나 오늘, 우리는 할당 한 633 00:26:49,400 --> 00:26:51,450 또는 문자열을 선언했다. 634 00:26:51,450 --> 00:26:51,790 괜찮아요. 635 00:26:51,790 --> 00:26:54,760 그래서 지금 내가이 짓을 한 후에, 나는의 값에 연결하려면 636 00:26:54,760 --> 00:26:56,535 초,하지 다윗의 값입니다. 637 00:26:56,535 --> 00:27:00,200 그래서이 왜 잘못인가? 638 00:27:03,060 --> 00:27:04,870 그래서이 문자 그대로 하드 코딩 s입니다. 639 00:27:04,870 --> 00:27:06,870 내가 원하는이 아닌 "안녕하세요, S,"말입니다. 640 00:27:06,870 --> 00:27:07,790 그래서이 작업을 수행 할 수 있습니다. 641 00:27:07,790 --> 00:27:10,330 퍼센트 기호는 자리 표시 자입니다하지만, 지금은 필요 642 00:27:10,330 --> 00:27:12,520 두 번째 인수를 인쇄로 전달합니다. 643 00:27:12,520 --> 00:27:15,160 기능에 인자로 구분되는 기억 644 00:27:15,160 --> 00:27:20,300 쉼표, 여기 다음 쉼표이 편지의 후 넣어. 645 00:27:20,300 --> 00:27:23,740 그리고이 맥락에서 지금, S는 printf 변수이며, 646 00:27:23,740 --> 00:27:25,550 두 입력을받을시 - 647 00:27:25,550 --> 00:27:29,440 오른쪽에있는 왼쪽 변수 이름을 s의 문자열 - 648 00:27:29,440 --> 00:27:32,750 그것은 우리 이전에 후자를 연결하고, 수 649 00:27:32,750 --> 00:27:34,600 단지 포함하는 좋은 아름다운 문자열을 출력 650 00:27:34,600 --> 00:27:36,770 우리가 들어 입력 한 무엇이든 651 00:27:36,770 --> 00:27:37,560 >> 그럼 이렇게 해보자. 652 00:27:37,560 --> 00:27:38,860 가서 다시 축소 할 653 00:27:38,860 --> 00:27:40,250 내 터미널 창. 654 00:27:40,250 --> 00:27:41,840 여기 하단에 확대. 655 00:27:41,840 --> 00:27:44,070 안녕하세요 있도록 다시 입력합니다. 656 00:27:44,070 --> 00:27:45,870 꽝이 다시 실행 된 것 같습니다. 657 00:27:45,870 --> 00:27:49,280 내가 타자 갔다. / 안녕, 입력거야. 658 00:27:49,280 --> 00:27:52,145 아무것도 아직 무슨 일이 없어 보이는,하지만이 메시지에 있어요 659 00:27:52,145 --> 00:27:55,700 내가 네이트처럼 뭔가를 입력 할 수있는 입력, 이제 우리는이 660 00:27:55,700 --> 00:27:56,380 안녕하세요, 네이트. 661 00:27:56,380 --> 00:27:59,600 그리고 등등 롭 다시 해 할 수 있습니다. 662 00:27:59,600 --> 00:28:03,410 제가하고자하기 때문에 희망적 이제이 프로그램이 작동합니다. 663 00:28:03,410 --> 00:28:05,720 >> 이제 모든 사용자 친화적 없습니다. 664 00:28:05,720 --> 00:28:07,930 나는 나를 기다리고있어 아무 생각도 없어. 665 00:28:07,930 --> 00:28:09,620 그래서 우리는 확실히 조금 치울 수 있습니다. 666 00:28:09,620 --> 00:28:13,270 내가 여기까지 돌아 가자, 대신에, 그냥 다이빙 667 00:28:13,270 --> 00:28:16,480 문자열에 대한 사용자 요구, 내가 명시 적으로 얘기하자면 668 00:28:16,480 --> 00:28:17,750 제가 기대하는지 사용자입니다. 669 00:28:17,750 --> 00:28:21,610 따라서 printf ( "문자열을 입력 :" 670 00:28:21,610 --> 00:28:24,080 ); 671 00:28:24,080 --> 00:28:25,510 아냐, 아냐 변수 그럼. 672 00:28:25,510 --> 00:28:26,750 없음 퍼센트 기호. 673 00:28:26,750 --> 00:28:28,550 그냥 간단한 영어 문구. 674 00:28:28,550 --> 00:28:34,030 내가 지금 여기에서 아래로 내려 가서 내 프로그램을 다시 실행 보자. 675 00:28:34,030 --> 00:28:35,380 하지만 아무 변화가 없어 보이는. 676 00:28:35,380 --> 00:28:37,350 이유는 무엇입니까? 677 00:28:37,350 --> 00:28:38,380 난 다시 컴파일해야합니다. 678 00:28:38,380 --> 00:28:39,570 너무 쉽게 실수 할 수 있습니다. 679 00:28:39,570 --> 00:28:41,700 하지만 당신은 파일을 저장할뿐만 아니라 가지고 있지만 680 00:28:41,700 --> 00:28:43,260 프로그램을 다시 컴파일합니다. 681 00:28:43,260 --> 00:28:46,640 그리고 나는 다시 실행 인사하는 경우, 지금 꽝이 실행됩니다. 682 00:28:46,640 --> 00:28:51,800 지금은 실행할 수 있습니다. / 안녕하세요. 그리고 지금은 "문자열을 입력 :"를 참조하십시오. 683 00:28:51,800 --> 00:28:52,050 좋아요. 684 00:28:52,050 --> 00:28:53,440 이제 사용자 친화적 조금 더 있습니다. 685 00:28:53,440 --> 00:28:55,850 네이트는여보세요, 네이트를 입력합니다. 686 00:28:55,850 --> 00:28:57,310 >> 음, 다시 시도하고 생각 시작하자 687 00:28:57,310 --> 00:28:58,080 코너의 경우에 대한. 688 00:28:58,080 --> 00:29:00,520 따라서 스크래치에서처럼, 당신은 주시기 바랍니다 또는 만드는거야? 689 00:29:00,520 --> 00:29:03,180 가지 갈 수에 대해서 생각하는 사양에 권장 690 00:29:03,180 --> 00:29:06,610 잘못하면 사용자가 할 수 모든 예상하지 않는 경우. 691 00:29:06,610 --> 00:29:08,050 버그 따라서 있었 수 있습니다. 692 00:29:08,050 --> 00:29:09,710 그래서 문자열을 입력 - 693 00:29:09,710 --> 00:29:11,130 여기에 모서리 사건은 뭔가요? 694 00:29:11,130 --> 00:29:13,320 어떻게 내가 프로그래머가이 없을 수도있는 시나리오 695 00:29:13,320 --> 00:29:16,070 예상? 696 00:29:16,070 --> 00:29:17,600 그래. 697 00:29:17,600 --> 00:29:17,920 좋아요. 698 00:29:17,920 --> 00:29:22,060 내가이 같은 번호를 입력 어쩌죠? 699 00:29:22,060 --> 00:29:22,500 괜찮아요. 700 00:29:22,500 --> 00:29:24,490 그래서 아직도 작동합니다. 701 00:29:24,490 --> 00:29:25,880 Gramatically 아무 의미도하지 않습니다. 702 00:29:25,880 --> 00:29:27,180 하지만 적어도 프로그램이 작동합니다. 703 00:29:27,180 --> 00:29:28,650 >> 또 다른 코너 사건은 뭔가요? 704 00:29:28,650 --> 00:29:29,610 나는 예상치 못한 뭔가. 705 00:29:29,610 --> 00:29:31,590 응? 706 00:29:31,590 --> 00:29:31,940 좋아요. 707 00:29:31,940 --> 00:29:34,950 그래서 우리는 정말 정말 큰 숫자 같은 것을 할 수 있어요. 708 00:29:34,950 --> 00:29:37,270 그래서 여기 이렇게 까. 709 00:29:37,270 --> 00:29:40,880 잠깐만 내 말 좀 들어 축소하자, 제가 강조 보자. 710 00:29:40,880 --> 00:29:42,250 복사 여기에 붙여 넣을 수 없습니다. 711 00:29:42,250 --> 00:29:42,470 괜찮아요. 712 00:29:42,470 --> 00:29:44,440 그래서 복사하여이 터미널 창에 붙여 넣을 수 없습니다, 우리는께요 713 00:29:44,440 --> 00:29:46,950 단지 그것을 시뮬레이션. 714 00:29:46,950 --> 00:29:51,340 저 포장을하려고 축소 보자. 715 00:29:51,340 --> 00:29:52,700 그렇지 때문에 나도 오랫동안이 작업을 수행하지 않을 거에요 716 00:29:52,700 --> 00:29:54,440 실제로이 프로그램에 침입. 717 00:29:54,440 --> 00:29:55,260 그러나 수. 718 00:29:55,260 --> 00:29:55,830 입력합니다. 719 00:29:55,830 --> 00:29:56,580 하지만 그렇지 않아. 720 00:29:56,580 --> 00:29:57,050 괜찮아요. 721 00:29:57,050 --> 00:29:58,440 그러나 진정한 코너 케이스입니다. 722 00:29:58,440 --> 00:30:01,610 그리고 올바르게 행동 유일한 이유는, 그래서에 723 00:30:01,610 --> 00:30:05,820 CS50 기능 GetString이 실제로 있기 때문에 말하는 것입니다 724 00:30:05,820 --> 00:30:08,040 우리는 몇 주 동안 보게 될, 후드 아래 설계 725 00:30:08,040 --> 00:30:11,570 자동으로 더 많은 RAM, 더를 할당 할 수 726 00:30:11,570 --> 00:30:14,330 운영 체제에서 메모리가 실현되면, 와우, 727 00:30:14,330 --> 00:30:16,670 당신은 정말 매우 긴 것을 입력했습니다. 728 00:30:16,670 --> 00:30:18,500 자,이는 하얀 거짓말 약간 있습니다. 729 00:30:18,500 --> 00:30:22,020 우리는 실제로 꽤 일시 중지 저는 입력하는 경우 730 00:30:22,020 --> 00:30:24,640 키보드 5000000000 문자 같은 731 00:30:24,640 --> 00:30:28,060 여기에, 또는 정말 우리는 매우 가능성 복사하여 붙여 넣기 할 꽤를 누르 732 00:30:28,060 --> 00:30:29,730 충돌하는 프로그램을 발생할 수 있습니다. 733 00:30:29,730 --> 00:30:32,130 그냥 좀 더 유한 랑을 시뮬레이션하는 방법 734 00:30:32,130 --> 00:30:33,740 시간의 금액입니다. 735 00:30:33,740 --> 00:30:37,320 >> 우리가 시도 수있는 다른 코너 사건은 뭔가요? 736 00:30:37,320 --> 00:30:38,730 응? 737 00:30:38,730 --> 00:30:39,020 그래. 738 00:30:39,020 --> 00:30:40,360 그럼 왜 우리는 아무것도 대답하지 않는다? 739 00:30:40,360 --> 00:30:43,130 그래서 우리는 실제로 어떤 작업을 수행 할 필요가 때문에 달리 740 00:30:43,130 --> 00:30:45,060 이 프로그램은 하루 종일 깜박 앉아서거야. 741 00:30:45,060 --> 00:30:46,860 하지만 난 그냥 친다면 입력 - 742 00:30:46,860 --> 00:30:48,780 자, 아직 잘못 보입니다. 743 00:30:48,780 --> 00:30:51,670 충돌,하지만 수있는 기회 지금이 안 744 00:30:51,670 --> 00:30:54,190 보다 엄격한 프로그램을 구현 시작 745 00:30:54,190 --> 00:30:55,290 그 사실은 확인합니다. 746 00:30:55,290 --> 00:30:57,640 그리고 만약 문자열, 문장, 그 단어가 I 747 00:30:57,640 --> 00:31:00,890 길이 0이 입력, 글쎄, 어쩌면 내가 소리 지르고해야 748 00:31:00,890 --> 00:31:03,770 사용자 또는 그래서, 말 또는 그녀는 다시 문자열을 입력 할 수 749 00:31:03,770 --> 00:31:06,560 우리가 실제로 올바른 동작 모양을하고하지 750 00:31:06,560 --> 00:31:08,570 내 인생에서 방금 마쳤 감독. 751 00:31:08,570 --> 00:31:11,130 >> 뒤에 질문이 있으십니까? 752 00:31:11,130 --> 00:31:11,970 진수. 753 00:31:11,970 --> 00:31:13,120 그래서 우리는 그것도 시도 수 있습니다. 754 00:31:13,120 --> 00:31:16,840 1.10000005. 755 00:31:16,840 --> 00:31:19,470 그것도 실제로 괜찮은 일을하는 것 같아 보인다. 756 00:31:19,470 --> 00:31:21,160 그리고 실제로 예상된다. 757 00:31:21,160 --> 00:31:24,550 우리는 입력했을 수도지라도이 번호 또는 758 00:31:24,550 --> 00:31:28,200 더 큰 숫자를 이전, 커다란 사용자를 입력 할 때 759 00:31:28,200 --> 00:31:31,070 입력 및 우리가 GetString 함수를 사용하지 않습니다 760 00:31:31,070 --> 00:31:34,380 제가 입력하는 일 경우 문제가 다수 것 같습니다. 761 00:31:34,380 --> 00:31:36,720 기억이 ASCII, 당신의 모든에 따라 762 00:31:36,720 --> 00:31:39,920 키보드에 매핑 할 수있는 숫자 값을 갖는다 763 00:31:39,920 --> 00:31:41,480 문자, 문자. 764 00:31:41,480 --> 00:31:44,490 따라서이 경우에도 나는, 숫자를 입력 할 수 765 00:31:44,490 --> 00:31:48,190 컴퓨터 때문에 문자열로, 이야기, 생각 것입니다 - 766 00:31:48,190 --> 00:31:49,870 뭔가는 숫자처럼 보이지만입니다 767 00:31:49,870 --> 00:31:51,090 실질적 번호입니다. 768 00:31:51,090 --> 00:31:53,450 그러나 지금 우리가 할 수 있기 때문에 실제로는 완벽하게 맘에입니다 769 00:31:53,450 --> 00:31:55,450 쓰기 프로그램에 실제로 전환이 770 00:31:55,450 --> 00:31:56,730 다른 데이터 형식을 사용합니다. 771 00:31:56,730 --> 00:32:01,840 >> 그럼 외에 문자를 사용하거나, 오히려 외에 문자열을 사용하여 772 00:32:01,840 --> 00:32:04,510 우리는뿐만 아니라에서와 같이 C에서 다른 데이터 형식을 가지고 실현 773 00:32:04,510 --> 00:32:05,230 다른 언어. 774 00:32:05,230 --> 00:32:08,480 문자는 이름에서 알 수 있듯이, 단지 하나의 문자입니다. 775 00:32:08,480 --> 00:32:12,150 float이 부동 소수점 값으로, 그건 단지 멋있어 776 00:32:12,150 --> 00:32:14,470 실제 숫자를 말하는 방법 - 진수가 어떤 777 00:32:14,470 --> 00:32:17,410 왼쪽 및 / 또는 오른쪽으로 일부 숫자와 그 안에 가리 킵니다. 778 00:32:17,410 --> 00:32:21,370 INT는 123 같은 숫자입니다 정수입니다. 779 00:32:21,370 --> 00:32:24,170 그리고 지금 더 많은 흥미로운 두 번 같은 사항은 다음과 같습니다. 780 00:32:24,170 --> 00:32:28,540 우리는 이중 지난 번 무슨 얘기를 했죠? 781 00:32:28,540 --> 00:32:30,050 그것은 바로 64입니다. 782 00:32:30,050 --> 00:32:33,560 따라서 일반적 반면 부동는 32 비트입니다 - 783 00:32:33,560 --> 00:32:37,340 그래서 메모리에 오래, 너무 32 제로와 키워드를 사용하여 784 00:32:37,340 --> 00:32:40,530 값을 나타냅니다 - 더블은 말 그대로 두 번 것입니다하는 785 00:32:40,530 --> 00:32:43,810 당신도 더 큰 숫자를 나타내는 수 있다는 것을 의미, 또는 786 00:32:43,810 --> 00:32:45,810 더 많은 정확한 숫자를 나타냅니다 할 수 있습니다. 787 00:32:45,810 --> 00:32:48,690 그럼 당신은 소수점 이후 더 많은 숫자를 가지고 있지만 788 00:32:48,690 --> 00:32:51,520 사람은 간단한 심지어 비디오에 말한대로 789 00:32:51,520 --> 00:32:55,360 개념적으로 3분의 1과 같은 것은이 정확하게 표시 할 수 없습니다 790 00:32:55,360 --> 00:32:58,330 컴퓨터가 결국은 비트에서 실행하고 있기 때문에 791 00:32:58,330 --> 00:33:02,510 따라서 당신은 단지 0.33333333 많은 시간에 할 수 792 00:33:02,510 --> 00:33:05,050 귀하가 내가 표현을하다는 말을하고 싶어 지점 793 00:33:05,050 --> 00:33:08,120 공간, 난 그냥 오늘은 이만하고 대표해야 794 00:33:08,120 --> 00:33:10,200 다소 imprecisely이 맘에 들어. 795 00:33:10,200 --> 00:33:11,110 그리고 긴 긴 - 796 00:33:11,110 --> 00:33:13,880 로 알려진 데이터 형식 있기 때문에 바보 같은 이름,하지만 난 797 00:33:13,880 --> 00:33:19,350 우연히도 자주 단지와 같은 32 비트, 어느 C에서 긴 798 00:33:19,350 --> 00:33:21,670 INT가 32 비트이지만, 긴 긴입니다 799 00:33:21,670 --> 00:33:23,560 일반적으로 64 비트. 800 00:33:23,560 --> 00:33:25,740 그래서 당신이 더 큰을 대표 할 수 있음을 의미 801 00:33:25,740 --> 00:33:26,990 이것보다 숫자. 802 00:33:26,990 --> 00:33:27,410 >> 괜찮아요. 803 00:33:27,410 --> 00:33:29,390 우리는 실제로 우리가 일을 대표하는 시작하고 싶다면 804 00:33:29,390 --> 00:33:31,030 보다 정교한 형식을해야하고, 수 805 00:33:31,030 --> 00:33:32,340 우리가 문자열이 이유입니다. 806 00:33:32,340 --> 00:33:36,450 그래서 CS50 도서관에서 해당 파일이 cs50.h라고, 우리는 807 00:33:36,450 --> 00:33:41,110 실제로 문자열라고 그렇게 말할 수있는 데이터 유형은,,, 선언 808 00:33:41,110 --> 00:33:42,710 하지만 문자열은 실제로 존재하지 않습니다. 809 00:33:42,710 --> 00:33:44,780 지금은, 다시,이 레이어 중 하나는 우리가 껍질에 갈거야 810 00:33:44,780 --> 00:33:47,490 다시 한 두 주 안에하고 멀리 던져, 실제로 811 00:33:47,490 --> 00:33:49,640 문자열이 실제로 무엇인지에 후드 아래에 보면, 812 00:33:49,640 --> 00:33:50,840 어떻게이 대표있어. 813 00:33:50,840 --> 00:33:53,520 우리는 또한 부울 값을 보는거야. 814 00:33:53,520 --> 00:33:56,040 >> 따라서 스크래치의 맥락에서 BOOL은 무엇입니까? 815 00:33:59,154 --> 00:34:00,300 이 true 또는 false입니다. 816 00:34:00,300 --> 00:34:03,900 그럼에 단지 true 나 false입니다 값이거나, 해제, 1 817 00:34:03,900 --> 00:34:06,140 0 그러나 당신은 세계를 볼 수 싶습니다. 818 00:34:06,140 --> 00:34:09,739 따라서 C에서, CS50 라이브러리 덕분에 어느 방향에서 819 00:34:09,739 --> 00:34:12,179 후드 아래에있는 또 하나의 라이브러리를 포함, 우리는이 820 00:34:12,179 --> 00:34:14,909 BOOL이라는 데이터 형식에 액세스하는 것 821 00:34:14,909 --> 00:34:18,730 문자 그대로 우리가 값이 참 또는 거짓 할당 할 수 822 00:34:18,730 --> 00:34:20,219 프로그램의 것들. 823 00:34:20,219 --> 00:34:23,880 >> 그럼 여기에 가서 그 작은 프로그램을 작성하게 824 00:34:23,880 --> 00:34:26,330 대신 숫자를 포함하는 무언가를하지 않습니다. 825 00:34:26,330 --> 00:34:29,840 그럼 내가 다시 CS50 어플라이언스에 가자, 내가 진행합시다 826 00:34:29,840 --> 00:34:32,770 여기라는 새로운 파일을 생성 - 827 00:34:32,770 --> 00:34:35,460 우선은 math.c.처럼, 뭔가 간단한 말 828 00:34:38,270 --> 00:34:38,710 괜찮아요. 829 00:34:38,710 --> 00:34:41,600 그리고 지금 내 프로그램의 상단까지 이동 전 830 00:34:41,600 --> 00:34:42,510 다들하는 일을 할 것 - 831 00:34:42,510 --> 00:34:44,780 # I 사용할 수 , 그래서 포함 832 00:34:44,780 --> 00:34:46,860 printf, int는 주 (무효) - 833 00:34:46,860 --> 00:34:49,270 우리는 INT가 무슨 뜻인지, 결국에 돌아 오면 834 00:34:49,270 --> 00:34:52,389 여기 무효 뜻이 있지만, 지금은 그냥 알아 835 00:34:52,389 --> 00:34:54,270 이 같은 프로그램을 시작해야합니다. 836 00:34:54,270 --> 00:34:56,280 지금은 뭔가를 조금 가서 말할거야 837 00:34:56,280 --> 00:35:02,110 다른 - printf ( "나에게 전화 번호를 줘" 838 00:35:02,110 --> 00:35:03,570 );. 839 00:35:03,570 --> 00:35:09,220 그럼 INT N = GetInt을 할거야, 왜냐하면 840 00:35:09,220 --> 00:35:12,770 GetInt 아웃 턴은 CS50 라이브러리의 다른 기능입니다 841 00:35:12,770 --> 00:35:14,060 GetString 외에. 842 00:35:14,060 --> 00:35:17,340 그리고 지금은 감사 "같은 멍청한 짓을 할거야 843 00:35:17,340 --> 00:35:25,760 % d 개를 들어, "에 대한 10 진수 정수 한 후 쉼표 N, 및 844 00:35:25,760 --> 00:35:26,620 그런 다음 0을 반환합니다. 845 00:35:26,620 --> 00:35:28,940 그럼 다시, 0는 내가 수와는 아무 상관이없는 일 반환 846 00:35:28,940 --> 00:35:30,080 에 대한 사용자 요구. 847 00:35:30,080 --> 00:35:33,620 그냥 모두가 추측 컨데, 좋아하는 말에 의미합니다. 848 00:35:33,620 --> 00:35:36,290 >> 그럼 내가 여기서 내 터미널 창으로 가자. 849 00:35:36,290 --> 00:35:39,590 저 입력, 수학을 입력 보자. 850 00:35:39,590 --> 00:35:41,360 그리고 뭔가 잘못 됐어. 851 00:35:41,360 --> 00:35:44,620 수학 문제가 해결되지 확인하십시오. 852 00:35:44,620 --> 00:35:46,170 다음은 오류 메시지의 첫 번째입니다. 853 00:35:46,170 --> 00:35:46,570 이유는 무엇입니까? 854 00:35:46,570 --> 00:35:49,720 약간 이상한,하지만 - 855 00:35:49,720 --> 00:35:50,060 그래. 856 00:35:50,060 --> 00:35:51,240 따라서 cs50.h. 857 00:35:51,240 --> 00:35:53,900 그럼 다시, 특히 초기에, 당신은 첫 번째를 작성합니다 858 00:35:53,900 --> 00:35:56,590 섹션에 pset 1 프로그램, 근무 시간에, 그리고 859 00:35:56,590 --> 00:35:59,050 솔직히, 가끔은 압도적 할 일이 일 860 00:35:59,050 --> 00:36:00,000 실제로 말을하고 있습니다. 861 00:36:00,000 --> 00:36:01,890 그러나 당신은 그들이 넘어 시작 매우 빨리 깨닫게 될 거예요 862 00:36:01,890 --> 00:36:06,120 이 하나 하나를 떠 났어요 것을 의미된다 버킷으로 863 00:36:06,120 --> 00:36:08,290 의 # 파일의 상단에 포함되어 있습니다. 864 00:36:08,290 --> 00:36:10,960 그리고 꽝, 컴파일러는,하여​​ 당신을 알리는합니다 865 00:36:10,960 --> 00:36:14,090 의 말을, 오히려 fancifully, 암시 적 선언 866 00:36:14,090 --> 00:36:15,990 기능 GetInt가 잘못되었습니다. 867 00:36:15,990 --> 00:36:16,310 >> 괜찮아요. 868 00:36:16,310 --> 00:36:17,520 그러니까 무슨 뜻 이죠? 869 00:36:17,520 --> 00:36:22,080 그것은 당신이 암시 적으로 GetInt에서 선언 한 의미 870 00:36:22,080 --> 00:36:24,850 당신이 명시 적으로 선언하지 않은 느낌. 871 00:36:24,850 --> 00:36:27,300 명시 적으로 정수 선언하기 위해 가르쳐야 872 00:36:27,300 --> 00:36:28,740 가 존재 꽝. 873 00:36:28,740 --> 00:36:32,020 그리고에 대한 매우 간단한 솔루션을하여 가르 칠 것입니다 874 00:36:32,020 --> 00:36:34,780 이 다른 파일 cs50.h에서 포함 875 00:36:34,780 --> 00:36:35,850 파일의 상단. 876 00:36:35,850 --> 00:36:40,380 말 그대로, 어떻게 # 포함하는 것입니다 않기 때문에이 꽝을 알려줍니다 877 00:36:40,380 --> 00:36:44,030 거의 cs50.h, 복사라는 파일을 찾아 이동하려면, 878 00:36:44,030 --> 00:36:48,150 나를 위해 내 프로그램의 상단에 자동으로 붙여 넣습니다, 879 00:36:48,150 --> 00:36:50,850 그리고 제로와 것​​들에 소스 코드를 변환합니다. 880 00:36:50,850 --> 00:36:52,850 우리 인간이 있다면 그건 분명 매우 지루한 것 881 00:36:52,850 --> 00:36:55,370 모든 시간을 복사하고이 큰 파일을 붙여 이동하려면, 882 00:36:55,370 --> 00:36:58,540 그래서 # 그냥 그없이 자동으로 수행 등 883 00:36:58,540 --> 00:37:01,550 다른 사람의 라이브러리 내 코드를 muddying. 884 00:37:01,550 --> 00:37:06,370 그리고 도서관은 다른 기능을 포함하는 파일과입니다 885 00:37:06,370 --> 00:37:08,340 다른 사람이 우리가하는 서면 것으로 다른 것들 886 00:37:08,340 --> 00:37:10,270 우리 자신을 위해서 활용. 887 00:37:10,270 --> 00:37:10,580 >> 괜찮아요. 888 00:37:10,580 --> 00:37:11,200 다시 해보자. 889 00:37:11,200 --> 00:37:12,250 수학을합니다. 890 00:37:12,250 --> 00:37:13,120 입력합니다. 891 00:37:13,120 --> 00:37:13,530 좋아. 892 00:37:13,530 --> 00:37:14,880 그래서 그런 일 것 같습니다. 893 00:37:14,880 --> 00:37:18,330 그럼 내가 지금 수학을 실행합니다,. / 수학. 894 00:37:18,330 --> 00:37:21,100 입력 나에게 번호 123을 제공합니다. 895 00:37:21,100 --> 00:37:22,620 123 주셔서 감사합니다. 896 00:37:22,620 --> 00:37:24,490 지금의 다른 코너 케이스를 봅시다. 897 00:37:24,490 --> 00:37:26,530 문자열 때문에, 매우 관대 898 00:37:26,530 --> 00:37:27,620 문자열은 아무 것도 할 수 있습니다. 899 00:37:27,620 --> 00:37:28,910 숫자처럼 보이는, 같이 900 00:37:28,910 --> 00:37:30,600 문자, 단어 같아. 901 00:37:30,600 --> 00:37:31,900 그러나 정수는 정수입니다. 902 00:37:31,900 --> 00:37:34,370 그래서 지금은 어려운 사용자, 그리고 나 줘 "라는 거라면 903 00:37:34,370 --> 00:37:38,730 숫자, "내가 0.1처럼 뭔가를하려고한다면? 904 00:37:38,730 --> 00:37:41,510 음, 숫자, 그리고 그와 일치 905 00:37:41,510 --> 00:37:44,180 문법 여기 사용하지만 후드 아래에, 나는이 아니에요 906 00:37:44,180 --> 00:37:45,610 함수 GetInt를 사용하여 코스입니다. 907 00:37:45,610 --> 00:37:46,610 >> 그럼 어떻게되는지 보자. 908 00:37:46,610 --> 00:37:48,250 다시 시도 입력하십시오. 909 00:37:48,250 --> 00:37:48,560 괜찮아요. 910 00:37:48,560 --> 00:37:50,570 내가 어렵고 다시 Enter 키를 누르합시다. 911 00:37:50,570 --> 00:37:51,700 입력 입력합니다. 912 00:37:51,700 --> 00:37:53,890 그래서 지금은 그 GetInt가 좀 더 보인다 913 00:37:53,890 --> 00:37:55,240 GetString보다 강력합니다. 914 00:37:55,240 --> 00:37:58,540 저희 직원은 우리가 발생할 경우하는 방식으로 구현 915 00:37:58,540 --> 00:38:02,100 당신은 우리에게 정수를 입력하지 않은 - 그리고 정수는 10 진수입니다 916 00:38:02,100 --> 00:38:04,785 포함 제로, 사람, 열 종대, 열로, 발로, 이군요, 판 벌리, 917 00:38:04,785 --> 00:38:05,540 는데, 패는, 또는 9 시리즈. 918 00:38:05,540 --> 00:38:06,310 그리고 바로 그 거에요. 919 00:38:06,310 --> 00:38:08,810 더 소수점없고, 문자, 안 구두점. 920 00:38:08,810 --> 00:38:10,390 우리가 협력해야 할 것 같습니다. 921 00:38:10,390 --> 00:38:13,680 그럼 내가 넷, 다섯, 여섯, 그리고 이끌어 봅시다. 922 00:38:13,680 --> 00:38:16,760 그래서 정말 여기 항문을 위해 아마 이리 줘 "라고합니다 923 00:38:16,760 --> 00:38:20,310 정수 "사용자에게 전달하기 위해 924 00:38:20,310 --> 00:38:22,620 정확히 내가 의도. 925 00:38:22,620 --> 00:38:24,090 >> 이번에는 후드 아래에 생각해 보죠. 926 00:38:24,090 --> 00:38:27,930 우리는 cs50.h은 오늘 구현하는 방법을 살펴 않을거야 927 00:38:27,930 --> 00:38:29,080 그 라이브러리를 제공합니다. 928 00:38:29,080 --> 00:38:33,600 하지만, 다시 시도, 다시 시도, 다시 시도 말을 계속한다면 어떤 프로그래밍 929 00:38:33,600 --> 00:38:36,970 나는 아마에 후드 아래에 사용하고 구축 930 00:38:36,970 --> 00:38:39,000 그렇게 구현? 931 00:38:39,000 --> 00:38:39,980 그러니 그냥 루프, 그렇죠? 932 00:38:39,980 --> 00:38:41,930 우리가 스크래치에 본 가장 간단한 아이디어 중 하나입니다. 933 00:38:41,930 --> 00:38:45,050 영원히 반복 구성, 구성합니다. 934 00:38:45,050 --> 00:38:47,320 어쩌면,이 프로그램에, 후드 아래에, 심지어 935 00:38:47,320 --> 00:38:49,470 이되지 스크래치 C로 작성하고 있어요하지만 저 래요 936 00:38:49,470 --> 00:38:54,300 사용자가하지 않은 경우 무슨 일이 영원히에 해당라고 937 00:38:54,300 --> 00:38:58,710 정수 입력, 그래서 다시 시도, 다시 시도, 다시 시도, 다시 시도라고 938 00:38:58,710 --> 00:39:01,220 그리고 마지막으로 우리가 할 때 다음 정수를 얻을 939 00:39:01,220 --> 00:39:02,970 그 루프의 탈출. 940 00:39:02,970 --> 00:39:05,610 >> 그럼 다른 어떤 기능을 우리는 CS50의 라이브러리에 현재 사용할 수 있습니까? 941 00:39:05,610 --> 00:39:07,880 음, 분명 사람의 종류, 적어도에 따라 942 00:39:07,880 --> 00:39:09,570 지금 우리가 존재 알고 데이터 유형. 943 00:39:09,570 --> 00:39:12,900 우리는 GetString, GetInt을 구현하지만, 전역 944 00:39:12,900 --> 00:39:15,680 용어의 첫 주, 당신은 또한 GetFloat를 사용 할 수 있습니다 945 00:39:15,680 --> 00:39:18,870 정확하게 얻을 수 있도록 GetDouble 및 GetLongLong 946 00:39:18,870 --> 00:39:20,030 원하는 데이터 유형. 947 00:39:20,030 --> 00:39:24,030 여기 열쇠 세부입니다 일부 언어와는 달리, 때문에 948 00:39:24,030 --> 00:39:26,630 당신이 반드시 필요 없어 파이썬과 루비 같은 949 00:39:26,630 --> 00:39:29,730 변수의 데이터 형식을 선언 - 950 00:39:29,730 --> 00:39:32,390 당신은 컴퓨터를 말할 필요하지 못하는 일이 어떤 종류의 951 00:39:32,390 --> 00:39:34,000 당신이 변수에 넣어 갈거야 - 952 00:39:34,000 --> 00:39:36,640 C에서, 당신은 아무리 정확하게해야합니다. 953 00:39:36,640 --> 00:39:40,060 당신은 N이라는 변수, 저장 덩어리를 원하는면 954 00:39:40,060 --> 00:39:42,900 이 경우 당신은 규칙에 의해 32 비트에서 일어나는 것을 955 00:39:42,900 --> 00:39:45,660 이 비트가있는 컴퓨터를 얘기해야 956 00:39:45,660 --> 00:39:47,840 번호를 저장하려고 - 957 00:39:47,840 --> 00:39:50,630 아닌 문자가 아닌 문자열,하지 부동. 958 00:39:50,630 --> 00:39:52,620 그리고 우리 효과적으로 문제를 해결 959 00:39:52,620 --> 00:39:53,760 지난 주에 다 퉜다. 960 00:39:53,760 --> 00:39:57,050 우리는 단지를 대표하는 제로와 사람의 번호를 사용하는 경우 961 00:39:57,050 --> 00:40:00,770 숫자 세계에서 얼마나하지만, 및 학사 C를, 962 00:40:00,770 --> 00:40:03,460 컴퓨터는 걸 알게 될거야 실제로 비트의 패턴 963 00:40:03,460 --> 00:40:07,650 로 대표에 반대하는 숫자 65을 나타냅니다 964 00:40:07,650 --> 00:40:09,860 에 따라 우연히 문자 A,, 965 00:40:09,860 --> 00:40:13,440 기억, ASCII 65에 해당 였어요? 966 00:40:13,440 --> 00:40:16,550 >> 따라서 컴퓨터에 컨텍스트를 제공하는 이러한 데이터 형식은 자 967 00:40:16,550 --> 00:40:18,810 이러한 비트로 해석해야하는 경우가 알고있는 968 00:40:18,810 --> 00:40:23,660 INT 또는 문자열로. 969 00:40:23,660 --> 00:40:26,500 질문하고이 일에? 970 00:40:26,500 --> 00:40:28,149 응? 971 00:40:34,780 --> 00:40:35,270 데이빗 J. MALAN : 좋은 질문입니다. 972 00:40:35,270 --> 00:40:39,140 우리가 stdio.h을 빼 내면, 우리는 파일을 저장합니다 - 973 00:40:39,140 --> 00:40:44,360 나를 터미널 창에 가서 수학, 줌을 실행하게 974 00:40:44,360 --> 00:40:45,530 및 입력 - 975 00:40:45,530 --> 00:40:47,700 나는 절대적이기 때문에 지금은 다른 오류가 발생합니다 976 00:40:47,700 --> 00:40:49,650 지금은 기능을 어떻게 선언? 977 00:40:49,650 --> 00:40:50,700 Printf. 978 00:40:50,700 --> 00:40:52,970 그래서 지금 제가있는 곳이 누구의 솔루션을 새로운 문제를 만들었습니다 979 00:40:52,970 --> 00:40:53,890 본질적으로 동일합니다. 980 00:40:53,890 --> 00:40:55,365 나는 다시 넣어해야합니다. 981 00:40:55,365 --> 00:40:56,615 대상 : [안 들리게] 982 00:41:03,534 --> 00:41:04,030 데이빗 J. MALAN : 아. 983 00:41:04,030 --> 00:41:04,850 나는 빼면 - 984 00:41:04,850 --> 00:41:05,360 그래, 그래. 985 00:41:05,360 --> 00:41:08,960 I는 표준 I / O 라이브러리의 포함을 제거한다면 986 00:41:08,960 --> 00:41:12,020 여기 그리고 당신은 내가 printf를 제거하면 얻을 말이야 987 00:41:12,020 --> 00:41:13,450 printf 없애? 988 00:41:13,450 --> 00:41:13,810 예. 989 00:41:13,810 --> 00:41:18,450 죄송합니다 - 난을 사용하여 더 이상 아닙니다 때문 작동해야합니다. 990 00:41:18,450 --> 00:41:20,110 난 단지 거짓말을 했죠? 991 00:41:20,110 --> 00:41:21,650 아, 그래. 992 00:41:21,650 --> 00:41:25,640 이 우리가 도입하는 오류 때문에 작동하지 않습니다. 993 00:41:25,640 --> 00:41:28,390 그리고이 녀석은 좀 더 자기 설명입니다. 994 00:41:28,390 --> 00:41:29,440 >> 문제는 무엇입니까? 995 00:41:29,440 --> 00:41:30,680 사용하지 않는 변수 N. 996 00:41:30,680 --> 00:41:34,040 그래서이 오류는 우리가 구성 것에의 결과입니다 997 00:41:34,040 --> 00:41:36,640 정말 소리 지르고, 특히 학자 연하는 될 수있는 기기 998 00:41:36,640 --> 00:41:39,060 가능한 모든 실수에 대한 당신 경우에도 그건 가지 999 00:41:39,060 --> 00:41:41,950 이와 같은 비 치명적 실수 - 그게 정말 그렇게 큰 것입니다 1000 00:41:41,950 --> 00:41:44,820 나는 정수를 할당하는 처리, 다음에 숫자를 넣어, 그리고 1001 00:41:44,820 --> 00:41:46,030 단지가 그런 건없는 거죠? 1002 00:41:46,030 --> 00:41:47,020 따라서 기능적으로, 안돼. 1003 00:41:47,020 --> 00:41:50,410 그 프로그램을 아프게하지 않을거야. 1004 00:41:50,410 --> 00:41:51,490 이 바보 권리이긴하네요? 1005 00:41:51,490 --> 00:41:54,220 저장, 그 전화 번호를 물어 것으로 할 가치가 없습니다 1006 00:41:54,220 --> 00:41:56,370 이 변수에 경우 아무 것도 할 수 없어 1007 00:41:56,370 --> 00:41:58,000 그와 함께 그것을 인쇄하거나 저장 여부를 지정합니다. 1008 00:41:58,000 --> 00:42:00,270 따라서이 경우, 꽝이 그만큼 인정되어 1009 00:42:00,270 --> 00:42:02,010 는 사용하지 않는 변수 n을 말하는거야. 1010 00:42:02,010 --> 00:42:05,380 >> 우리가 원하는 경우 그래서 우리는이 문제를 해결할 수 있습니다. 1011 00:42:05,380 --> 00:42:07,250 다시 한 번,이 지금은 좋은 프로그래밍 없습니다. 1012 00:42:07,250 --> 00:42:09,310 그래서이 일을 단지 수 - 1013 00:42:09,310 --> 00:42:12,060 여기에 가서,이 화면을 지우 수학을 보자. 1014 00:42:12,060 --> 00:42:13,090 그 작동합니다. 1015 00:42:13,090 --> 00:42:18,110 지금은, 내 수학 프로그램을 실행 입력을 소요 할 수 있습니다 - 1016 00:42:18,110 --> 00:42:18,700 음, 그건 좋지 않았죠. 1017 00:42:18,700 --> 00:42:23,450 입력이 소요되며, 그것이이 경우에 맞지 않는 모든 것입니다. 1018 00:42:23,450 --> 00:42:25,220 >> 따라서, 사실의 또 하나의 코너 케이스를 봅시다 우리 1019 00:42:25,220 --> 00:42:26,300 이전에 생각하지 않았다. 1020 00:42:26,300 --> 00:42:28,220 이 경우에는 - 여기가 사람은 다시 가자 1021 00:42:28,220 --> 00:42:29,500 사용자 친화적 좀 더. 1022 00:42:29,500 --> 00:42:32,580 내가 여기서 돌아가서 다시 수학을 실행할 수 있습니다. 1023 00:42:32,580 --> 00:42:34,190 이런, 내가 무슨 짓을 한거야? 1024 00:42:34,190 --> 00:42:35,400 추가로 롤백 알았어요. 1025 00:42:35,400 --> 00:42:36,390 좋아요. 1026 00:42:36,390 --> 00:42:38,490 이제 우리는 어디에서 모두 원래 상태로 돌아 간다 1027 00:42:38,490 --> 00:42:39,990 잘하면 잘합니다. 1028 00:42:39,990 --> 00:42:43,360 나는 수학을 실행하는 경우 그리고 지금은 123 일 것 같습니다. 1029 00:42:43,360 --> 00:42:46,010 그러나이 말을 꼭 전 해주고, 정말 효과가 증명되지 않습니다 1030 00:42:46,010 --> 00:42:47,930 좋아, 그 작동합니다. 1031 00:42:47,930 --> 00:42:49,120 789, 그 작동합니다. 1032 00:42:49,120 --> 00:42:50,100 제출 시간. 1033 00:42:50,100 --> 00:42:51,870 여기에 다른 코너 경우가 때문입니다. 1034 00:42:51,870 --> 00:42:55,040 문자열은 정말에 입력하여 우리에게 많은 문제를주지 않았어 1035 00:42:55,040 --> 00:42:56,510 전체 문자 많이. 1036 00:42:56,510 --> 00:42:59,580 하지만 여기에 무엇을 입력하면? 1037 00:42:59,580 --> 00:43:04,850 - 숫자 1이 훨씬 여기 훨씬 더 섭니다 1038 00:43:04,850 --> 00:43:06,300 좋아, 좀 지루을 받고 그래서 난 갈거야 1039 00:43:06,300 --> 00:43:10,040 여기 중지, 그리고 입력을 누르거야. 1040 00:43:10,040 --> 00:43:11,290 >> 방금 무슨 짓을하는거야? 1041 00:43:14,110 --> 00:43:17,680 그래서 실제로 설명 할 수 있습니다. 1042 00:43:17,680 --> 00:43:18,920 그래서 바이너리로 가져 거죠? 1043 00:43:18,920 --> 00:43:21,130 좋은 생각은, 그런데, 그것이 가져 갔다는 사실 아닙니다 1044 00:43:21,130 --> 00:43:22,815 바이너리로, 사실 때문에, 그 중 같은 걸 1045 00:43:22,815 --> 00:43:23,080 우연의 일치. 1046 00:43:23,080 --> 00:43:23,930 우리는 다시이 작업을 수행 할 수 있습니다. 1047 00:43:23,930 --> 00:43:26,530 너무 이진 시스템에서 2, 없습니다 1048 00:43:26,530 --> 00:43:27,420 아마도 충분 어쨌든. 1049 00:43:27,420 --> 00:43:28,780 입력합니다. 1050 00:43:28,780 --> 00:43:30,140 그래서 그런 문제가 아니 었습니다. 1051 00:43:30,140 --> 00:43:31,390 또 뭐가 있지? 1052 00:43:34,650 --> 00:43:35,400 그렇지. 1053 00:43:35,400 --> 00:43:37,830 >> 따라서 정수가 실제로 무엇인지 다시 생각합니다. 1054 00:43:37,830 --> 00:43:40,970 이 집합 적 해석 32 비트 1055 00:43:40,970 --> 00:43:42,090 수 있습니다. 1056 00:43:42,090 --> 00:43:44,730 당신이 32 비트가있는 경우, 그 비트의 각이 될 수 있다는 것을 의미합니다 1057 00:43:44,730 --> 00:43:46,690 0 또는 1, 0 또는 1. 1058 00:43:46,690 --> 00:43:49,090 이 비트에 대한 두 가지 가능성이 있다는 거, 그래서 그 1059 00:43:49,090 --> 00:43:51,140 이것에 대한 두 가지 가능성이 두 가능성 1060 00:43:51,140 --> 00:43:52,570 비트 - 그 2 배 2 배 야 - 1061 00:43:52,570 --> 00:43:55,480 그래서 그 32 전원 2 시야의 총 수는 1062 00:43:55,480 --> 00:43:58,960 제로와 사람들의 순열은 32가있는 경우 1063 00:43:58,960 --> 00:44:01,400 당신의 앞에 자리 표시 자, 제로 또는 사람. 1064 00:44:01,400 --> 00:44:04,250 제가 뭐가 수학적으로 32로 2가면? 1065 00:44:07,080 --> 00:44:07,840 그럼 너무 많아요. 1066 00:44:07,840 --> 00:44:09,910 이 정도일, 4000000000입니다. 1067 00:44:09,910 --> 00:44:13,510 와 4 억 여기 인쇄 된 것을 것 같습니다하지 않습니다. 1068 00:44:13,510 --> 00:44:16,290 사실,이 2 억 가까이 보입니다. 1069 00:44:16,290 --> 00:44:17,970 그러나 이것은 우연의 일치가 아닙니다. 1070 00:44:17,970 --> 00:44:21,590 컴퓨터가 내 엄청난 수를 잘못 해석했다는 사실, 1071 00:44:21,590 --> 00:44:24,260 사람 그리고 열 종대 내 큰 순서, 나의 큰 순서 1072 00:44:24,260 --> 00:44:26,880 약 2,000,000,000으로 어떻게 설명합니까? 1073 00:44:30,250 --> 00:44:32,180 INT에 캡이있어. 1074 00:44:32,180 --> 00:44:34,970 당신이 대표 할 수있는 최대 값은 확실히있다. 1075 00:44:34,970 --> 00:44:36,370 하지만 옳지, 보통 4,000,000,000거야? 1076 00:44:36,370 --> 00:44:39,100 2 32 인 경우 약 4,000,000,000, 그 것 같습니다 1077 00:44:39,100 --> 00:44:40,350 그 가장 큰 숫자입니다. 1078 00:44:42,420 --> 00:44:45,240 따라서이 아닌 나머지 있지만, 좋은 생각. 1079 00:44:45,240 --> 00:44:46,340 음수. 1080 00:44:46,340 --> 00:44:49,570 당신이 할 수 4,000,000,000 가능한 일이면 1081 00:44:49,570 --> 00:44:52,970 32 0s의 이러한 다양한 순열과 대표하고 1082 00:44:52,970 --> 00:44:55,600 1 초, 그래, 우리 인간이 할 수도 있다는 이유를 의미 1083 00:44:55,600 --> 00:44:57,110 뿐만 아니라 긍정적 인 정수를 나타냅니다 1084 00:44:57,110 --> 00:44:58,240 하지만 부정적인 정수. 1085 00:44:58,240 --> 00:45:00,410 그리고 실제로, C가 수행하는 가정은입니다. 1086 00:45:00,410 --> 00:45:03,550 따라서 32 비트와 함께, 당신은 약 부정적인 2 나타낼 수 1087 00:45:03,550 --> 00:45:06,630 긍정적 인 2,000,000,000로 억 완전히 들어. 1088 00:45:06,630 --> 00:45:08,750 그리고이 경우에, 우리가 정말보고 계시는 것은 단지입니다 1089 00:45:08,750 --> 00:45:13,600 우리 정수의 용량 근교, 우리는 이렇게 있습니다 1090 00:45:13,600 --> 00:45:15,860 말하자면, 정수를 넘쳤 거든. 1091 00:45:15,860 --> 00:45:19,180 우리는 실제로 들어갈 수있는 것보다 그 안으로 더 많은 비트를 밀어 넣고 선하려고했습니다. 1092 00:45:19,180 --> 00:45:22,960 따라서 최종 결과는 우리가 본질적으로 모두 1 비트를 가지고 있습니다. 1093 00:45:22,960 --> 00:45:25,280 우리는 우리의 비트에 모두 뒤집힌 한, 우리는 표현하기 위해 노력하고 1094 00:45:25,280 --> 00:45:27,630 가능한 가장 큰 수는 있지만 거의 분명 아닙니다 1095 00:45:27,630 --> 00:45:30,960 제가 방금 들어 입력 한 두 가지를 대표 할 수있을만큼 큰 1096 00:45:30,960 --> 00:45:31,730 응? 1097 00:45:31,730 --> 00:45:32,980 대상 : [안 들리게] 1098 00:45:37,230 --> 00:45:37,830 >> 데이빗 J. MALAN : 좋은 질문입니다. 1099 00:45:37,830 --> 00:45:40,080 왜 우리는 그 부정적인 대표 할 수 없습니다 1100 00:45:40,080 --> 00:45:41,500 단지 주인공으로 서명? 1101 00:45:41,500 --> 00:45:44,200 그래서 우리는 절대적으로 수, 우리는 다음 절약 할 수 1102 00:45:44,200 --> 00:45:45,470 추가 비트. 1103 00:45:45,470 --> 00:45:49,100 하지만 당신은 아직 대시를 대표 할 것, 그리고하고 1104 00:45:49,100 --> 00:45:50,700 즉, 당신에게 적어도 무언가를 들겠 죠 1105 00:45:50,700 --> 00:45:52,220 아마 비트. 1106 00:45:52,220 --> 00:45:55,610 그래서 예, 우리는 우리의 번호를 사용하는 32 비트가 있지만, 수 지금 1107 00:45:55,610 --> 00:45:57,610 우리는 우리의 대시에 사용되는 또 다른 비트가 필요 1108 00:45:57,610 --> 00:45:58,810 기호, 빼기 기호. 1109 00:45:58,810 --> 00:46:01,470 이제 우리가 할 수있는 33 비트 값을 가지고 있지만, 그건 1110 00:46:01,470 --> 00:46:02,570 단지 방법은 이미 끝났다고 없습니다. 1111 00:46:02,570 --> 00:46:05,140 우리는 통화 년 전에 판단을 한, 32 비트는 종류입니다 1112 00:46:05,140 --> 00:46:06,170 여기에 측정 단위입니다. 1113 00:46:06,170 --> 00:46:08,120 그래서 우리는에 효율적으로 이러한 비트 중 하나를 사용하는 것 1114 00:46:08,120 --> 00:46:12,950 부정적를 대표하고, 수를 나타내는 31 비트. 1115 00:46:12,950 --> 00:46:15,550 다른 질문? 1116 00:46:15,550 --> 00:46:15,670 괜찮아요. 1117 00:46:15,670 --> 00:46:16,030 많은 기록이다. 1118 00:46:16,030 --> 00:46:17,930 왜 우리는 우리를 계속 다섯 분 휴식을 여기에 쓰는 게 어떨까? 1119 00:46:23,580 --> 00:46:24,270 >> 괜찮아요. 1120 00:46:24,270 --> 00:46:31,250 그럼 다시, 수학 응용 프로그램을 overemphasize하지 말라고 1121 00:46:31,250 --> 00:46:33,840 프로그래밍을 해보자 구, 그냥이 한 가지 예를 꺽을 1122 00:46:33,840 --> 00:46:36,590 우리가 다른 구조로 이동하기 전에, 그건 단지 그 1123 00:46:36,590 --> 00:46:39,430 의 일부에 몇 가지 일반적인 자빠지는 점을 보여주는 것입니다 1124 00:46:39,430 --> 00:46:41,520 기본이 작성 프로그램에 제공합니다. 1125 00:46:41,520 --> 00:46:44,360 이 경우, 일부가 산술 식을하고 1126 00:46:44,360 --> 00:46:48,010 구문에 대한 흥미로운 관련성에 따라 결정됩니다. 1127 00:46:48,010 --> 00:46:50,430 >> 이 우리가 전환 할 수있는 공식이다 그래서 1128 00:46:50,430 --> 00:46:52,690 화씨에서 섭씨로 온도. 1129 00:46:52,690 --> 00:46:54,600 당신이 기억하지 않는 경우, 본은 공식입니다. 1130 00:46:54,600 --> 00:46:58,870 우리는 32도 화씨 값을 연결한다면 1131 00:46:58,870 --> 00:47:02,850 냉동, 그게 실제로 32 마이너스 32 0 수있을거야,하고있어, 1132 00:47:02,850 --> 00:47:05,130 섭씨의 0도 동결입니다. 1133 00:47:05,130 --> 00:47:08,210 너무 빨리 정신이 확인 - 그 익숙한 공식입니다. 1134 00:47:08,210 --> 00:47:10,880 내가하지만 어플라이언스에 가서, 그리고 시작하자 1135 00:47:10,880 --> 00:47:13,920 f2c처럼라는 프로그램을 작성; "화씨로 1136 00:47:13,920 --> 00:47:15,920 점 C 섭씨. " 1137 00:47:15,920 --> 00:47:18,930 그리고 여기까지 상단에, 나는 # 포함로 시작 갈거야 1138 00:47:18,930 --> 00:47:22,190 stdio.h, 나는 INT 메인 (무효)을 할테니까 1139 00:47:22,190 --> 00:47:24,680 다시 한 번, 우리가 정수가 무슨 뜻인지하는 것과 같이 미래에 다시 올게요 1140 00:47:24,680 --> 00:47:26,820 과 무효가 거기 의미합니다. 1141 00:47:26,820 --> 00:47:28,770 그리고 지금은 진행하고있는 프로그램을 구현하게 1142 00:47:28,770 --> 00:47:31,170 본질적으로 우리에게 변환하지 않습니다. 1143 00:47:31,170 --> 00:47:36,830 >> 따라서 printf와, 화씨 온도를 가정 해 보겠습니다. 1144 00:47:36,830 --> 00:47:40,140 그리고 내가 가서 사용자의 값을 가자. 1145 00:47:40,140 --> 00:47:43,120 제가 원하는 경우 값이 어떤 종류의 I는 사용자의 가야 1146 00:47:43,120 --> 00:47:45,620 그들을 나에게 화씨 온도를 제공 하는가? 1147 00:47:45,620 --> 00:47:48,090 응? 1148 00:47:48,090 --> 00:47:50,090 당신은 무엇을 제안까요? 1149 00:47:50,090 --> 00:47:50,410 그래. 1150 00:47:50,410 --> 00:47:51,960 그래서 float이 매우 합리적인 생각합니다. 1151 00:47:51,960 --> 00:47:53,950 우리는 다시 그 몇 가지 옵션이 있습니다 1152 00:47:53,950 --> 00:47:55,310 우리는 지금까지 봤어요. 1153 00:47:55,310 --> 00:48:00,100 우리는 긴 긴 문자, 더블, 무개차, int는 같은 일이 1154 00:48:00,100 --> 00:48:01,150 BOOL, 문자열입니다. 1155 00:48:01,150 --> 00:48:03,510 따라서 이들 중, 부동 꽤 합리적인 생각합니다. 1156 00:48:03,510 --> 00:48:06,340 우리가 정말 원하는 경우 때문에, 더블 권리를 사용할 수 1157 00:48:06,340 --> 00:48:07,580 인간의 온도를 나타냅니다 - 1158 00:48:07,580 --> 00:48:10,730 98.60000 - 1159 00:48:10,730 --> 00:48:12,990 우리는을 수행하는 64 비트를 사용할 수 있지만, 느낌 1160 00:48:12,990 --> 00:48:14,200 온도 과잉. 1161 00:48:14,200 --> 00:48:16,380 그럼이 수레로 돌아가 보자. 1162 00:48:16,380 --> 00:48:18,100 지금은 변수가 필요합니다. 1163 00:48:18,100 --> 00:48:20,500 그냥 일을 간단하게하기 위해, 내가 F 전화하려고하지만 난 1164 00:48:20,500 --> 00:48:23,370 마찬가지로 올바르게 온도 호출 수 1165 00:48:23,370 --> 00:48:24,600 다만 유효합니다. 1166 00:48:24,600 --> 00:48:27,610 따라서 F = GetFloat을 떠. 1167 00:48:27,610 --> 00:48:30,220 지금 GetFloat를 사용하기로 결정했습니다 자마자,하지만 I 1168 00:48:30,220 --> 00:48:33,340 한 수정을해야합니다. 1169 00:48:33,340 --> 00:48:33,720 그래. 1170 00:48:33,720 --> 00:48:37,460 우리가 # 포함시킬 필요가 그래서, 그렇지 않으면 컴파일러는 1171 00:48:37,460 --> 00:48:39,000 우리 소리지를 거예요. 1172 00:48:39,000 --> 00:48:41,720 지금은 부동이 있는지, 내가 가서하자 1173 00:48:41,720 --> 00:48:42,460 변환. 1174 00:48:42,460 --> 00:48:44,980 >> 그래서 일단, 나 또한 습관에 가자 1175 00:48:44,980 --> 00:48:46,310 내 코드를 주석. 1176 00:48:46,310 --> 00:48:49,820 그러니 다시 코멘트입니다 인간에게 단지 표기법 is 1177 00:48:49,820 --> 00:48:52,600 하지 본질적으로 프로그램의 일환하지만 하나는 당신을 도움 1178 00:48:52,600 --> 00:48:55,010 당신이 다음 날 아침에 무슨 짓을했는지 이해하거나, 다음 1179 00:48:55,010 --> 00:48:57,570 월, 당신의 교육 동료 당신이 무슨 짓을했는지 이해하는 데 도움이 1180 00:48:57,570 --> 00:48:59,230 나 때문에 당신은 무슨 의도입니다 1181 00:48:59,230 --> 00:49:00,950 일반적으로 아주 좋은 연습. 1182 00:49:00,950 --> 00:49:02,940 코드의 모든 몇 줄은에 댓글을 작성 1183 00:49:02,940 --> 00:49:04,490 귀하 또는 귀하의 동료. 1184 00:49:04,490 --> 00:49:08,460 그래서 여기, 난 말할거야 "온도에 대한 사용자에게 문의하십시오." 1185 00:49:08,460 --> 00:49:10,890 완전한 문장, 짧은 문구가 될 필요가 없습니다. 1186 00:49:10,890 --> 00:49:14,270 그러나 C에 댓글을 뒤에 아이디어는 귀하의 각 1187 00:49:14,270 --> 00:49:17,980 라고, TF 나 동료 또는 - 댓글은 권한을 부여해야합니다 - 1188 00:49:17,980 --> 00:49:21,290 하지 않음으로써, 프로그램을 탈지 그리고 그렇게 정확히 알 수 1189 00:49:21,290 --> 00:49:24,650 이렇게 코드를 읽을 수 있지만, 댓글을 읽어, 그 1190 00:49:24,650 --> 00:49:26,220 간결하고 명확해야합니다. 1191 00:49:26,220 --> 00:49:29,030 자, 그럼 이제 변환 ", 제가 가서 말을 해 1192 00:49:29,030 --> 00:49:32,660 화씨로 온도가. "그래서, 가서 할거야 1193 00:49:32,660 --> 00:49:34,340 C를 떠, 보자. 1194 00:49:34,340 --> 00:49:36,610 부동 소수점 값으로 우리는 섭씨하겠습니다. 1195 00:49:36,610 --> 00:49:37,630 >> 그리고 내가이에 찔러합시다. 1196 00:49:37,630 --> 00:49:40,350 이 수식은 여기 다시 달려 있습니다. 1197 00:49:40,350 --> 00:49:45,510 9분의 5 번으로 F 마이너스 32. 1198 00:49:45,510 --> 00:49:46,360 그래서 한번 해보자 구. 1199 00:49:46,360 --> 00:49:50,450 그럼 5는 9로 나눈 빼기 - 1200 00:49:50,450 --> 00:49:52,330 이런, 이미 엉망이에요. 1201 00:49:52,330 --> 00:49:53,070 시간. 1202 00:49:53,070 --> 00:49:56,550 따라서 9분의 5 번 F 마이너스 32. 1203 00:49:56,550 --> 00:49:59,650 세미콜론, F 마이너스 32 그럼. 1204 00:49:59,650 --> 00:50:02,000 그리고 지금, 여기, 나 먼저 갈거야 1205 00:50:02,000 --> 00:50:03,220 하고 말 결과를 인쇄 할 수 있습니다. 1206 00:50:03,220 --> 00:50:05,160 그리고이 부분은 간단합니다. Printf. 1207 00:50:05,160 --> 00:50:07,980 어떻게하면 인쇄에 대해가요? 1208 00:50:07,980 --> 00:50:16,890 글쎄, 난 "그 숫자 섭씨의가 F \ N %는"말할 수 1209 00:50:16,890 --> 00:50:18,060 단지 미적. 1210 00:50:18,060 --> 00:50:20,450 그리고 나서 printf의로 여기에 연결하는 어떤 값을할까요 1211 00:50:20,450 --> 00:50:21,360 두 번째 인수? 1212 00:50:21,360 --> 00:50:21,650 좋아요. 1213 00:50:21,650 --> 00:50:22,540 그러므로 다. 1214 00:50:22,540 --> 00:50:24,760 그래서 우리는이 시작됩니다 그리고 나선 그냥 0을 반환합니다. 1215 00:50:24,760 --> 00:50:25,960 다시, 그것은 수학과는 아무 상관이 없습니다. 1216 00:50:25,960 --> 00:50:27,610 단지 모두가 잘되고 있다는 것을 의미합니다. 1217 00:50:27,610 --> 00:50:31,210 >> 자,이 올바른,이 프로그램입니까? 1218 00:50:31,210 --> 00:50:31,520 괜찮아요. 1219 00:50:31,520 --> 00:50:33,630 그래서 몇 번 실수를 한 적이. 1220 00:50:33,630 --> 00:50:35,980 당신은 프로그래밍이 뭔지는 전혀 감이없는 경우에도, 당신은 정렬 할 수 있습니다 1221 00:50:35,980 --> 00:50:37,120 학년 학교 반대 방향 다시 어떤 1222 00:50:37,120 --> 00:50:38,740 여기 실수 수 있습니다. 1223 00:50:38,740 --> 00:50:40,050 첫 번째 중 하나는 무엇입니까? 1224 00:50:40,050 --> 00:50:41,256 대상 : [안 들리게] 1225 00:50:41,256 --> 00:50:41,660 데이빗 J. MALAN : 그래. 1226 00:50:41,660 --> 00:50:42,940 그래서 우리는 괄호가 누락하고 있습니다. 1227 00:50:42,940 --> 00:50:45,420 내가 기조에 괄호를 한 것을 의도적으로했습니다 1228 00:50:45,420 --> 00:50:48,130 주문이 개념이 실제로 있기 때문에, 여기에 슬라이드 1229 00:50:48,130 --> 00:50:51,590 운영하거나, 우선 순위, 상기 특정 작업 - 1230 00:50:51,590 --> 00:50:52,890 곱셈 - 1231 00:50:52,890 --> 00:50:56,000 높은 구속력을 가지고, 일보다 높은 우선 순위를가 1232 00:50:56,000 --> 00:50:58,050 추가 또는 빼기처럼. 1233 00:50:58,050 --> 00:51:00,550 그래서 우리는 분명 정확히를 만들기 위해 년 동안이 과정을 마친 후에 1234 00:51:00,550 --> 00:51:02,840 어떤 수학적 작업을 먼저 수행해야합니다. 1235 00:51:02,840 --> 00:51:05,010 그래서 아마도 정확하게 모방한다. 1236 00:51:05,010 --> 00:51:08,990 그렇지 않으면, 컴퓨터가 아마 수행하려고 할 것입니다 1237 00:51:08,990 --> 00:51:13,090 9 시까 나누기 5 같은 한 다음 뺄셈을 한 후, F를 곱 1238 00:51:13,090 --> 00:51:14,850 모든 일에서 32. 1239 00:51:14,850 --> 00:51:16,480 그게 바로 우리가 뭘 원하는지 사실이 아닙니다. 1240 00:51:16,480 --> 00:51:17,340 그러니 괄호로 묶다 보자. 1241 00:51:17,340 --> 00:51:20,860 의이 여기 여기 괄호, 괄호를 추가 할 수 있습니다. 1242 00:51:20,860 --> 00:51:22,670 가 여기에 해당하자. 1243 00:51:22,670 --> 00:51:25,130 자, 내가 그냥 그 길을 따라 한 또 다른 실수를 발견했습니다. 1244 00:51:25,130 --> 00:51:25,680 응? 1245 00:51:25,680 --> 00:51:26,930 대상 : [안 들리게] 1246 00:51:29,632 --> 00:51:30,130 >> 데이빗 J. MALAN : 아. 1247 00:51:30,130 --> 00:51:30,470 좋아. 1248 00:51:30,470 --> 00:51:32,400 그래서 우리는 실제로 동일한 정수가 1249 00:51:32,400 --> 00:51:34,020 이전의 부문에 문제가있을 수 있습니다. 1250 00:51:34,020 --> 00:51:35,800 나는 증상이 무엇인지 알아 보자 것을 수정합니다. 1251 00:51:35,800 --> 00:51:36,990 그러나 우리는 하나를 수정해야 할 것 1252 00:51:36,990 --> 00:51:37,680 여기에 다른 실수. 1253 00:51:37,680 --> 00:51:38,015 응? 1254 00:51:38,015 --> 00:51:39,540 대상 : [안 들리게] 1255 00:51:39,540 --> 00:51:40,070 데이빗 J. MALAN : 예. 1256 00:51:40,070 --> 00:51:43,130 그래서 바보 같은 실수를 저질렀 내가 만들어하지만, 매우 중요합니다. 1257 00:51:43,130 --> 00:51:45,870 컴퓨터는 눈에 멀었하고 알려 줘야하지 1258 00:51:45,870 --> 00:51:48,770 나는 실제로 변수를 선언 할 때이 자본 F를 사용하여 1259 00:51:48,770 --> 00:51:51,360 같은 라인 8 여기에 소문자 F,. 1260 00:51:51,360 --> 00:51:54,470 그래서 한 줄에 11 내 자본에 수정을 필요로하는 1261 00:51:54,470 --> 00:51:56,820 순간 전에 실수로 자본 F했습니다. 1262 00:51:56,820 --> 00:51:57,610 여긴 어때요? 1263 00:51:57,610 --> 00:51:59,980 이뿐만 아니라 소문자를해야 하는가? 1264 00:51:59,980 --> 00:52:02,260 그것은해야합니다,하지만 그건 우연의 일치입니다. 1265 00:52:02,260 --> 00:52:05,070 그 %의 말뜻은 변수와는 아무 상관이 없습니다. 1266 00:52:05,070 --> 00:52:07,980 그럼 여기 분명 슈퍼로, 제가 진행합시다 1267 00:52:07,980 --> 00:52:10,710 이, 짧게, "온도를."이름을 내가 이름을 보자 1268 00:52:10,710 --> 00:52:15,050 이 "온도." 내가이 이름을 변경하지 말자. 1269 00:52:15,050 --> 00:52:18,180 왜냐하면, 다시 %의 F는 전 세계적으로 의미, "포인트 값을 떠." 1270 00:52:18,180 --> 00:52:19,950 내 변수와는 아무 상관이 없습니다. 1271 00:52:19,950 --> 00:52:23,080 그러나 사방에 "온도"는, 조금 말의입니다 1272 00:52:23,080 --> 00:52:25,370 그래서 내 소문자 "F"s (으)로 돌아 가야 겠어. 1273 00:52:25,370 --> 00:52:27,890 >> 이제 내가 여기서 내 창으로 앞서 가자. 1274 00:52:27,890 --> 00:52:29,190 f2c합니다 - 1275 00:52:29,190 --> 00:52:31,200 이는 다시, 임의의 이름이 I 1276 00:52:31,200 --> 00:52:32,590 이 파일을 주었다. 1277 00:52:32,590 --> 00:52:33,690 컴파일 한 것 같습니다. 1278 00:52:33,690 --> 00:52:35,080 나 f2c 실행할 수 있습니다. 1279 00:52:35,080 --> 00:52:35,780 입력합니다. 1280 00:52:35,780 --> 00:52:37,786 화씨 온도 - 쉬운 하나를 수행 까. 1281 00:52:37,786 --> 00:52:39,370 32. 1282 00:52:39,370 --> 00:52:40,910 OK, 수정합니다. 1283 00:52:40,910 --> 00:52:45,910 그러나, 지금은 끓는 위해 212을한다면 .. - 1284 00:52:45,910 --> 00:52:46,630 빌어 먹을. 1285 00:52:46,630 --> 00:52:47,030 괜찮아요. 1286 00:52:47,030 --> 00:52:50,780 귀하의 TF가 시도다면, 분명 해결되지 1287 00:52:50,780 --> 00:52:51,800 적어도 두 개의 값이 있습니다. 1288 00:52:51,800 --> 00:52:53,340 그럼 문제가 뭐에요? 1289 00:52:53,340 --> 00:52:55,970 글쎄, 당신은 이미 문제가 무엇인지에 손가락을 넣어. 1290 00:52:55,970 --> 00:52:57,600 그런데 왜 경우 것이 야? 1291 00:52:57,600 --> 00:53:00,630 여기에, 나는 9로 나누어 5 수학을하고있을 때. 1292 00:53:00,630 --> 00:53:02,190 따라서 개념적으로, 그 완벽하게 맞습니다. 1293 00:53:02,190 --> 00:53:03,690 공식 완전히 일치. 1294 00:53:03,690 --> 00:53:05,940 그러나 컴퓨터는 정확하게하는 것을 1295 00:53:05,940 --> 00:53:06,760 그들에게 말해. 1296 00:53:06,760 --> 00:53:08,940 그리고 우리가 효과적으로 컴퓨터를 말하는 것은 .. 1297 00:53:08,940 --> 00:53:12,320 정수 9 정수 5를 나누어 1298 00:53:12,320 --> 00:53:13,670 나에게 결과를 제공합니다. 1299 00:53:13,670 --> 00:53:16,230 이 부서는 데이터를 사용 할 때 문제는,하지만 것입니다 1300 00:53:16,230 --> 00:53:20,220 유형은, 출력은 입력과 같은 데이터 형식입니다. 1301 00:53:20,220 --> 00:53:23,670 두 입력 모두 ints 경우 그리고, 출력가는거야 1302 00:53:23,670 --> 00:53:25,110 정수가 될 수 있습니다. 1303 00:53:25,110 --> 00:53:28,770 그리고 9로 나누어 5 점 일입니다. 1304 00:53:28,770 --> 00:53:32,320 하지만 뭔가를 가리 키도록 가장 가까운 정수가 뭐야? 1305 00:53:32,320 --> 00:53:33,630 그래서, 실제로 0입니다. 1306 00:53:33,630 --> 00:53:36,620 소수점 뒤에 우리가 월요일에 논의​​ 않도록, 모든 1307 00:53:36,620 --> 00:53:37,940 포인트가 잘 렸습니다됩니다. 1308 00:53:37,940 --> 00:53:39,495 이제 막 버려진됩니다. 1309 00:53:39,495 --> 00:53:42,760 그래서이 완벽한 실수 야, 내가 있기 때문에뿐만 아니라 단지 1310 00:53:42,760 --> 00:53:44,700 여기에 0이 모든을 곱합니다. 1311 00:53:44,700 --> 00:53:46,550 >> 자, 몇 가지 방법으로이 문제를 해결할 수 있습니다. 1312 00:53:46,550 --> 00:53:48,080 난 이걸 할 수 있어요. 1313 00:53:48,080 --> 00:53:50,490 5.0 9.0로 나눈 값입니다. 1314 00:53:50,490 --> 00:53:52,110 기술적으로는, 난 그런 작업을 수행 할 필요가 없습니다. 1315 00:53:52,110 --> 00:53:55,780 그것은 단지 숫자 수레 중 하나를 만들기 위해 충분하지 - 1316 00:53:55,780 --> 00:53:58,290 또는 더블 - 여기 소수점을 삽입하여. 1317 00:53:58,290 --> 00:54:01,740 자네가 정수를 나눌 때 어떤 지금 무슨 일이 일어날이기 때문에 1318 00:54:01,740 --> 00:54:04,670 부동 또는 더블, 컴퓨터는 걸 깨닫게 될 꺼야 1319 00:54:04,670 --> 00:54:06,830 오, 그 중 하나가 더 정확합니다. 1320 00:54:06,830 --> 00:54:09,420 나보다 더 정밀도를 제공의 측면에 잘못을하자 1321 00:54:09,420 --> 00:54:10,310 당신은 의도 된 것입니다. 1322 00:54:10,310 --> 00:54:12,700 그래서 그 결과를 변환합니다 - 1323 00:54:12,700 --> 00:54:16,240 그것은 부동 소수점 값뿐만 아니라 그 결과를 반환합니다. 1324 00:54:16,240 --> 00:54:17,330 그래서 일 것이다. 1325 00:54:17,330 --> 00:54:18,060 이 일 것입니다. 1326 00:54:18,060 --> 00:54:20,010 그리고 우리가 볼 수있는 또 하나의 다른 메커니즘이 1327 00:54:20,010 --> 00:54:21,390 더 자세히 다음 주. 1328 00:54:21,390 --> 00:54:24,690 당신은 실제로 프로그래머로 컴퓨터를 알 수 1329 00:54:24,690 --> 00:54:27,930 실제로 하나의 데이터 유형으로 취급하는 1330 00:54:27,930 --> 00:54:29,260 그것은 또 다른 자라 할지라도. 1331 00:54:29,260 --> 00:54:30,990 >> 그래서 실제로이 작업을 수행 수 있습니다. 1332 00:54:30,990 --> 00:54:35,280 괄호, 나는 열려있는 이런 일을 (수레), 말할 수 1333 00:54:35,280 --> 00:54:36,350 괄호 가까이 괄호. 1334 00:54:36,350 --> 00:54:39,050 그리고이라는거야 '캐스팅. " 다시 더 1335 00:54:39,050 --> 00:54:39,940 이 다음 주에. 1336 00:54:39,940 --> 00:54:42,280 그러나 이런 말을 중 프로그래밍 방법입니다 1337 00:54:42,280 --> 00:54:45,910 컴퓨터 그래 난 9가 정수 또는 긴 알아요. 1338 00:54:45,910 --> 00:54:47,700 나는 부동 소수점 값이 아니라는 걸 알아. 1339 00:54:47,700 --> 00:54:49,420 하지만 어쨌든 같은 취급. 1340 00:54:49,420 --> 00:54:52,000 따라서 데이터 형식을 주조하는 것은 변환을 의미합니다 1341 00:54:52,000 --> 00:54:53,310 한사람에게서 다른 사람에게로. 1342 00:54:53,310 --> 00:54:55,790 솔직히 이건 좀 추한이기 때문에, 나는 우리가 가서 제안 것 1343 00:54:55,790 --> 00:54:58,830 단지 변환의 원래 제안에 백업 1344 00:54:58,830 --> 00:55:00,770 이것들은 수동으로 포인트 값을 떠 있습니다. 1345 00:55:00,770 --> 00:55:02,890 지금은 무슨 일을 취소 단지 최고이고, 때문에 1346 00:55:02,890 --> 00:55:04,280 이 혼란 한 모든 아닙니다. 1347 00:55:04,280 --> 00:55:06,710 >> 그럼 이제 내 터미널 창으로 돌아 가자. 1348 00:55:06,710 --> 00:55:07,990 f2c하십시오. 1349 00:55:07,990 --> 00:55:09,430 내가 가서이를 실행할 수 있습니다. 1350 00:55:09,430 --> 00:55:12,340 그리고, 옆으로, 당신은이 명령을 입력 따분해 1351 00:55:12,340 --> 00:55:14,910 또 한번, 또 한번, 여기 리눅스처럼 그 컴퓨터를 실현 1352 00:55:14,910 --> 00:55:16,010 예쁘고, 똑똑하고있는 경향이 있습니다. 1353 00:55:16,010 --> 00:55:18,890 나는 최대 친다면, 우리는 제 전체 역사를 통해 갈 수 1354 00:55:18,890 --> 00:55:20,380 명령, 위, 아래. 1355 00:55:20,380 --> 00:55:23,840 그래서 여기이 경우, 난 그냥 f2c를 실행하는 데 최대 이동할 수 있습니다. 1356 00:55:23,840 --> 00:55:25,830 난 그냥 초 전 그런 짓을해서가 바가지 나 긁히고되고 있어요. 1357 00:55:25,830 --> 00:55:27,030 이 최신 이미 있습니다. 1358 00:55:27,030 --> 00:55:30,720 이제 다시 f2c 실행할 수 있습니다. 1359 00:55:30,720 --> 00:55:33,260 의 32 화씨을 시도해 보자. 1360 00:55:33,260 --> 00:55:36,720 이번에는 212 화씨을 시도해 보자. 1361 00:55:36,720 --> 00:55:37,250 >> 휴. 1362 00:55:37,250 --> 00:55:38,250 일 것 같습니다. 1363 00:55:38,250 --> 00:55:41,760 자,이 좋은이지만, 조금 임의의 느낌이 1364 00:55:41,760 --> 00:55:44,890 나는 소수점 이후에 6 자리 숫자를 보여주는거야. 1365 00:55:44,890 --> 00:55:45,070 그래? 1366 00:55:45,070 --> 00:55:47,830 당신이 TV에 날씨 사람 경우, 당신은 바보 멍청 것 같은데 1367 00:55:47,830 --> 00:55:49,150 당신은에 온도를 읽는다면 1368 00:55:49,150 --> 00:55:50,070 정밀도의 학위를 취득했습니다. 1369 00:55:50,070 --> 00:55:51,270 그럼이를 단순화 보자. 1370 00:55:51,270 --> 00:55:53,880 그럼 실제로 내 printf까지, 여기 가자. 1371 00:55:53,880 --> 00:55:55,490 그리고 그래, 난 떠 싶습니다. 1372 00:55:55,490 --> 00:55:57,570 하지만 지금은 정밀도를 지정하고 싶습니다. 1373 00:55:57,570 --> 00:55:59,070 그리고 내가 좀 더 간결해질 겁니다. 1374 00:55:59,070 --> 00:56:03,090 나는 나에게 소수점 자리로 후 1 점을주고, 말거야. 1375 00:56:03,090 --> 00:56:07,590 따라서 오히려 %의 F 말보다, 나는 %의 0.1 f를 말할거야. 1376 00:56:07,590 --> 00:56:09,760 그리고 나 한테 한 위치를 제공 의미 1377 00:56:09,760 --> 00:56:11,410 소수점. 1378 00:56:11,410 --> 00:56:11,700 괜찮아요. 1379 00:56:11,700 --> 00:56:12,570 가 다시 해 보자. 1380 00:56:12,570 --> 00:56:15,590 내가 그것을 컴파일 후 다시 실행할 수 있습니다. 1381 00:56:15,590 --> 00:56:18,160 그리고 지금은 32 입력하고 다시받을 1382 00:56:18,160 --> 00:56:19,310 더 간결 값입니다. 1383 00:56:19,310 --> 00:56:22,480 그리고, 지금에 212을 입력하고보다 간결를 돌려받을 수있는 1384 00:56:22,480 --> 00:56:23,260 가치뿐만 아니라. 1385 00:56:23,260 --> 00:56:25,190 그리고 당신이 printf로 할 수있는 다른 일이 있어요. 1386 00:56:25,190 --> 00:56:27,950 당신은 실제로 숫자가 있어야 얼마나 다양한 지정할 수 있습니다. 1387 00:56:27,950 --> 00:56:30,900 당신이에서 패딩을 원할 경우, 그래서 당신은 오른쪽 정렬 또는 수 1388 00:56:30,900 --> 00:56:32,360 왼쪽 정렬하여 숫자의 전부 또는 1389 00:56:32,360 --> 00:56:33,400 센터 일하려고합니다. 1390 00:56:33,400 --> 00:56:35,340 당신이 할 수 속임수가 알고 있습니다. 1391 00:56:35,340 --> 00:56:38,420 그러나 그들은 단지 형식 코드로 졸이다 1392 00:56:38,420 --> 00:56:39,600 우리는 거기에있는 것. 1393 00:56:39,600 --> 00:56:41,090 >> 그래서 우선이 문제의 관점 인치 1394 00:56:41,090 --> 00:56:43,820 이 methodically을 통해 갈 수있는 매우 지루 테이블입니다. 1395 00:56:43,820 --> 00:56:46,780 그러나 C의 저자가 마련 것을 실현 1396 00:56:46,780 --> 00:56:50,190 사업자가 높은 가지고있는 지정 규칙 1397 00:56:50,190 --> 00:56:53,680 우선, 다른 사람들보다 더 많은 바인딩을 전원. 1398 00:56:53,680 --> 00:56:55,890 따라서 학년 학교 반면, 우리는 일반적으로 그게 것을 알고 1399 00:56:55,890 --> 00:56:58,930 곱셈과 나눗셈 다음, 추가 및 뺄셈, 1400 00:56:58,930 --> 00:56:59,950 그리고 다른 소식입니다. 1401 00:56:59,950 --> 00:57:01,720 프로그래밍의 세계에서 훨씬가 1402 00:57:01,720 --> 00:57:03,360 일 이상 목록입니다. 1403 00:57:03,360 --> 00:57:05,150 그리고 지금은 암기 가치가있는 것은 아니다. 1404 00:57:05,150 --> 00:57:07,310 당신은 오래 전에에 적응하게됩니다. 1405 00:57:07,310 --> 00:57:10,690 그러나 단지 초등학교에서와 같이 괄호는 일반적으로 해결 1406 00:57:10,690 --> 00:57:12,990 에 슈퍼가 명확함으로써 우선 순위의 문제, 1407 00:57:12,990 --> 00:57:15,620 컴퓨터와 의도하는지 모두 인간. 1408 00:57:15,620 --> 00:57:17,770 그래서이 그냥 약간의 컨닝 시트를 고려하십시오. 1409 00:57:17,770 --> 00:57:21,690 하지만 그 내용의 대부분은 우리는 시간에 도착하지 않습니다. 1410 00:57:21,690 --> 00:57:21,900 >> 괜찮아요. 1411 00:57:21,900 --> 00:57:24,120 자, 이제가 구축하고 이러한 멍청한 멀리 이동 1412 00:57:24,120 --> 00:57:25,460 수학 예. 1413 00:57:25,460 --> 00:57:27,500 아직도 동일한 기본을 사용하지만 시작 1414 00:57:27,500 --> 00:57:29,960 우리 스크래치와 같은 좀 더 표현. 1415 00:57:29,960 --> 00:57:31,660 따라서 스크래치, 우리는 이러한 부울 표현했다. 1416 00:57:31,660 --> 00:57:34,890 그리고 영어로, 부울 표현식이 무엇입니까? 1417 00:57:34,890 --> 00:57:35,580 참이거나 거짓입니다. 1418 00:57:35,580 --> 00:57:38,300 이 true 또는 false로 평가 겠죠. 1419 00:57:38,300 --> 00:57:39,060 1 또는 0. 1420 00:57:39,060 --> 00:57:39,870 사용 또는 사용 중지. 1421 00:57:39,870 --> 00:57:41,000 당신이 뭐라고 부르든간에. 1422 00:57:41,000 --> 00:57:43,210 지금 스크래치에 퍼즐 조각이처럼 보였다. 1423 00:57:43,210 --> 00:57:45,850 그리고 세의, 거기 하단에, 조합 1424 00:57:45,850 --> 00:57:47,980 퍼즐 조각. 1425 00:57:47,980 --> 00:57:48,980 하나의 연계 - 1426 00:57:48,980 --> 00:57:51,710 빈 공백이 무언가. 1427 00:57:51,710 --> 00:57:53,970 그리고 후 두 부울 표현식을 그 안에. 1428 00:57:53,970 --> 00:57:56,460 그럼 당신은 더 많은 정보를 얻을 수있는 둥지를 부울 표현 할 수 있습니다 1429 00:57:56,460 --> 00:57:59,360 부울 표현식을 복잡. 1430 00:57:59,360 --> 00:58:03,930 예를 들어, 오늘은 토요일이며, 경우이 좋다 1431 00:58:03,930 --> 00:58:06,180 날씨가 다음 외부 이동합니다. 1432 00:58:06,180 --> 00:58:07,500 그런 식으로 임의 또는 뭔가. 1433 00:58:07,500 --> 00:58:10,090 그럼 당신은을 마련하기 위해 부울 식을 가입 할 수 1434 00:58:10,090 --> 00:58:12,780 그의 대답 더 큰 진리 값은 기반으로 1435 00:58:12,780 --> 00:58:13,800 작게 있습니다. 1436 00:58:13,800 --> 00:58:15,770 >> 이제 C에서, 고맙게도,이 매핑​​은 1437 00:58:15,770 --> 00:58:16,720 실제로 아주 간단합니다. 1438 00:58:16,720 --> 00:58:18,820 괄호는 여기 일을 취소 할 수 있습니다. 1439 00:58:18,820 --> 00:58:21,700 &&는 무슨 뜻이다 "와." 그래서 그런 방법 1440 00:58:21,700 --> 00:58:24,700 우리는 처음부터 C.에 해당 블록을 변환 할거야 1441 00:58:24,700 --> 00:58:27,590 그리고 조건을 우리는 왼쪽에 스크래치에서 본 1442 00:58:27,590 --> 00:58:31,150 x가 적은 경우가면​​, 나는 C로 비슷하게을 쌓을 수 있습니다 1443 00:58:31,150 --> 00:58:32,970 Y보다 다음이 작업을 수행합니다. 1444 00:58:32,970 --> 00:58:35,100 x는 Y보다 큰 다른 경우,이 작업을 수행합니다. 1445 00:58:35,100 --> 00:58:38,030 아니면 논리적으로 그들은 그렇게 말하고, 같아야합니다 1446 00:58:38,030 --> 00:58:39,140 그들은 동일한 것을. 1447 00:58:39,140 --> 00:58:41,210 그래서 우리는 지금이 일을 구축 할 수 있습니다. 1448 00:58:41,210 --> 00:58:42,170 >> 따라서 예를 해보자 구. 1449 00:58:42,170 --> 00:58:45,550 제가 코스의 웹 사이트에있어 그 파일을 열어 보자 1450 00:58:45,550 --> 00:58:47,270 나는 사전에 썼다. 1451 00:58:47,270 --> 00:58:50,540 그는 nonswitch.c라고합니다. 1452 00:58:50,540 --> 00:58:52,270 왜 그냥 순간에 우리는 볼 수 있습니다. 1453 00:58:52,270 --> 00:58:54,770 따라서이 파일에 - nonswitch.c .. - 1454 00:58:54,770 --> 00:58:56,830 먼저 전체 무리가 있다는 인식 1455 00:58:56,830 --> 00:58:58,460 상단에 댓글이 있습니다. 1456 00:58:58,460 --> 00:59:00,110 그건 그냥 그런 일이 파일의 이름을 설명하는거야 1457 00:59:00,110 --> 00:59:01,260 수행, 등등. 1458 00:59:01,260 --> 00:59:04,390 그리고 분명 부울 AND-ING의 사용을 보여줍니다 - 1459 00:59:04,390 --> 00:59:06,220 이 표현을 conjoining. 1460 00:59:06,220 --> 00:59:07,670 >> 따라서이 프로그램의 작동 방식 보자. 1461 00:59:07,670 --> 00:59:10,840 내 두 개의 파일, cs50.h과 stdio.h 포함되어 있습니다. 1462 00:59:10,840 --> 00:59:13,180 나는 아래로 스크롤하면, 이제, 프로그램에, 조금 더 이상 1463 00:59:13,180 --> 00:59:15,730 우리는 이전에 작성된하지만, 꽤 읽을 것보다. 1464 00:59:15,730 --> 00:59:18,360 그래서 먼저, 선 18, 사용자에게 인쇄 1465 00:59:18,360 --> 00:59:20,460 "저에게 1과 10 사이의 정수를주세요." 그래서 1466 00:59:20,460 --> 00:59:21,530 그 바로 저기 야. 1467 00:59:21,530 --> 00:59:23,410 지금은 정수를 얻을. 1468 00:59:23,410 --> 00:59:25,380 그러나 GetInt을 실현 - 아주 간단합니다. 1469 00:59:25,380 --> 00:59:26,510 단지 정수를 얻을거야. 1470 00:59:26,510 --> 00:59:28,830 이없는 것 INT를 않도록하려하고있어 1471 00:59:28,830 --> 00:59:30,060 문자열이나 부동. 1472 00:59:30,060 --> 00:59:32,390 그러나 경계 검사를 모든 종류의를하려는 게 아닙니다. 1473 00:59:32,390 --> 00:59:34,750 이 숫자는 사이로 필터링 할 수 없을거야 1474 00:59:34,750 --> 00:59:35,630 특정 범위. 1475 00:59:35,630 --> 00:59:37,730 그래서 우리는 우리 것을을 구현해야합니다. 1476 00:59:37,730 --> 00:59:40,680 그래서 내가이 함께 할 수있는, 스크래치처럼 1477 00:59:40,680 --> 00:59:43,560 이 표현은, 나는 다음과 같이 C에서 해당 작업을 수행 할 수 있습니다. 1478 00:59:43,560 --> 00:59:48,660 n은보다 크거나 1 동등하고, N 인 경우 미만에 있으며, 1479 00:59:48,660 --> 00:59:52,220 또는 3 같은, 아주 임의로 법령에가는임을 1480 00:59:52,220 --> 00:59:53,830 소수가 될 수. 1481 00:59:53,830 --> 00:59:56,730 단 진술을 위해서. 1482 00:59:56,730 --> 01:00:00,210 n은 4 번과 6 번 사이 다른 경우, 인쇄는 "당신은 미디어를 선택한 1483 01:00:00,210 --> 01:00:03,440 "N 7 ~ 10 인 경우 아니면, 인쇄는"번호. 당신은 생각을 하다니 1484 01:00:03,440 --> 01:00:06,390 큰 숫자. 당신은 잘못된 번호를 선택 "기타 인쇄". " 1485 01:00:06,390 --> 01:00:07,900 우리가 한 경우 논리적으로, 그 다음 있기 때문에 1486 01:00:07,900 --> 01:00:09,230 우리의 범위를 소진. 1487 01:00:09,230 --> 01:00:12,400 >> 그래서 우리는 나보다 큰를 작성하는 방법이별로입니다 실현 1488 01:00:12,400 --> 01:00:15,000 수학 클래스와 동일. 1489 01:00:15,000 --> 01:00:15,160 그래? 1490 01:00:15,160 --> 01:00:17,430 당신은 보통 그 아래 라인이처럼립니다. 1491 01:00:17,430 --> 01:00:19,250 하지만 키보드에 이런 키는 없습니다. 1492 01:00:19,250 --> 01:00:22,390 따라서보다 더 큰 표현을위한 C의 기호 나 1493 01:00:22,390 --> 01:00:25,770 와 같은 두 문자 및 이하의 상징이다 1494 01:00:25,770 --> 01:00:29,100 거나 같음도 두 문자입니다. 1495 01:00:29,100 --> 01:00:29,330 괜찮아요. 1496 01:00:29,330 --> 01:00:31,910 내가이 프로그램을 실행다면, 당신은 아마 그건 어떤 추측 할 수 1497 01:00:31,910 --> 01:00:32,650 할거야. 1498 01:00:32,650 --> 01:00:36,180 제가 가서 nonswitch를 한 경우 입력합니다. 1499 01:00:36,180 --> 01:00:38,130 그리고 nonswitch를 실행합니다. 1500 01:00:38,130 --> 01:00:39,530 저에게 1과 10 사이의 숫자를 제공합니다. 1501 01:00:39,530 --> 01:00:40,870 내가 한 11 주겠어. 1502 01:00:40,870 --> 01:00:42,280 나는 숫자가 잘못 골랐어 요. 1503 01:00:42,280 --> 01:00:44,090 제가 3 번을 시도해 보자. 1504 01:00:44,090 --> 01:00:45,990 나는 작은 번호를 골랐어 요. 1505 01:00:45,990 --> 01:00:48,360 거기에 따라서 매우 간단. 1506 01:00:48,360 --> 01:00:52,230 >> 내가이 프로그램의 동작을 변경하려는 경우 1507 01:00:52,230 --> 01:00:54,250 대신 좀 다른 일을? 1508 01:00:54,250 --> 01:00:57,620 내가 가서이 말을 보자. 1509 01:00:57,620 --> 01:00:59,480 날이 없애 보자. 1510 01:00:59,480 --> 01:01:03,780 그리고 내 말을하게되는 경우 (N == 42). 1511 01:01:03,780 --> 01:01:08,730 그리고 제가 가서 인쇄 말할거야 "당신을 선택한 1512 01:01:08,730 --> 01:01:16,340 정답은. "아니면 우리는 가서 무슨 말을 1513 01:01:16,340 --> 01:01:18,460 printf ( "당신은 생각을 하다니 1514 01:01:18,460 --> 01:01:21,170 잘못된 답변 ");. 좋아. 1515 01:01:21,170 --> 01:01:22,040 그냥 때문입니다. 1516 01:01:22,040 --> 01:01:23,890 >> 지금, 몇 점은 우리가 여기 할 수 있습니다. 1517 01:01:23,890 --> 01:01:26,570 하나는, 당신이 생각하는 기호를 입력하지 않은 1518 01:01:26,570 --> 01:01:27,390 가장 합리적인. 1519 01:01:27,390 --> 01:01:30,110 당신이를 사용하지 않는을 알아 평등을 확인하려는 경우, 변 1520 01:01:30,110 --> 01:01:30,910 등호. 1521 01:01:30,910 --> 01:01:34,000 대신 같은 등호를 사용합니다. 1522 01:01:34,000 --> 01:01:36,440 그 이유는 직관적이 될 수 있을까요? 1523 01:01:36,440 --> 01:01:37,030 그래. 1524 01:01:37,030 --> 01:01:39,330 대상 : [안 들리게] 1525 01:01:39,330 --> 01:01:39,615 데이빗 J. MALAN : 맞아요. 1526 01:01:39,615 --> 01:01:41,630 등호가 이미 지정에 사용됩니다. 1527 01:01:41,630 --> 01:01:43,020 누군가가 정말 이럴 생각은 아니 었어요. 1528 01:01:43,020 --> 01:01:45,820 그리고, 지금은 평등 시험 할 때, 우리가 1529 01:01:45,820 --> 01:01:48,850 더 명시하고, 말을하는 것은 동일 같습니다. 1530 01:01:48,850 --> 01:01:52,110 가장 일반적인 실수는이 작업을 수행하는 것입니다. 1531 01:01:52,110 --> 01:01:54,800 그리고 근무 시간 또는 언젠가 다음 주 또는의 경우 1532 01:01:54,800 --> 01:01:58,340 이주 다음주는 이런 일을하고 1533 01:01:58,340 --> 01:02:00,920 20 분 알아 내려고, 10 그것으로 분투 1534 01:02:00,920 --> 01:02:03,330 빌어 먹을 버그가 무엇인지, 당신은 그 중 하나는 것을 1535 01:02:03,330 --> 01:02:04,470 이 실수를 한 명. 1536 01:02:04,470 --> 01:02:06,030 그래서 할 쉬운 슈퍼. 1537 01:02:06,030 --> 01:02:08,240 그러나 목표는 지금 실수를 피할 수있다하는 것입니다. 1538 01:02:08,240 --> 01:02:11,840 이게 정말 무슨 말을하기 때문에 이것은 평가 수 있을까? 1539 01:02:11,840 --> 01:02:15,010 N 42를 얻을합니다. 1540 01:02:15,010 --> 01:02:18,250 따라서 동사 사람들을 표현하기 위해, 구두로 사용 1541 01:02:18,250 --> 01:02:21,800 과제의 개념은 "도착"입니다. N 42를 얻을 수 있도록합니다. 1542 01:02:21,800 --> 01:02:24,060 그래서 그런 N 42를 할당 의미합니다. 1543 01:02:24,060 --> 01:02:26,250 지금은, 괄호의 부울 식을이 1544 01:02:26,250 --> 01:02:30,230 이 조건 안에,의 값은 42입니다. 1545 01:02:30,230 --> 01:02:30,390 그래? 1546 01:02:30,390 --> 01:02:32,690 때문에 내부 아웃, 전체에서 평가하는 경우 1547 01:02:32,690 --> 01:02:34,100 대답은 지금 42입니다. 1548 01:02:34,100 --> 01:02:37,360 >> 내가 진정으로 너희에게 질문을하면, "(42), 경우에"무슨 1549 01:02:37,360 --> 01:02:38,410 그 사실 말하는거야? 1550 01:02:38,410 --> 01:02:40,990 음, 부울 표현식은 true 또는 false가 될 수 있습니다. 1551 01:02:40,990 --> 01:02:42,010 1 또는 0. 1552 01:02:42,010 --> 01:02:43,010 사용 또는 사용 중지. 1553 01:02:43,010 --> 01:02:45,240 그래서 우리는 상기의 모든 여기 코너 케이스를 갖고있는 것 같다 1554 01:02:45,240 --> 01:02:50,060 "(42) 경우 '갑자기, 내 말은. 그건 부울 값입니다. 1555 01:02:50,060 --> 01:02:54,500 따라서 컴퓨터가 무엇하지만, 그것이 본질적으로 equates입니다 1556 01:02:54,500 --> 01:02:58,620 0 않아 아무것도은 true로 해석됩니다. 1557 01:02:58,620 --> 01:02:59,340 1. 1558 01:02:59,340 --> 01:02:59,690 있습니다. 1559 01:02:59,690 --> 01:03:01,510 모두 동등한 기능을하고 있습니다. 1560 01:03:01,510 --> 01:03:05,070 만 값이 우리가주지로 0 또는 false 키워드 1561 01:03:05,070 --> 01:03:07,860 결국보고 실제로 false입니다. 1562 01:03:07,860 --> 01:03:15,040 가 아닌 0 있기 때문에 "만약 (42)"사실, 사실 것입니다. 1563 01:03:15,040 --> 01:03:18,620 그래서 여기 더 정확하게 말하자면, 부울 값이 정말 그렇게하지 ​​않습니다 1564 01:03:18,620 --> 01:03:20,680 많은 true 또는 false,이에 대한 1565 01:03:20,680 --> 01:03:24,650 경우 경우는 0이 아닌 0입니다. 1566 01:03:24,650 --> 01:03:26,330 허위 따라서 허위 또는 없습니다. 1567 01:03:26,330 --> 01:03:28,640 그리고 우리 모두가 더 포괄 할 수 있도록 1568 01:03:28,640 --> 01:03:30,980 삽입구 표현의 가능성. 1569 01:03:30,980 --> 01:03:33,840 그래서 우리는 이런 말을, 아무리 신중하게해야 - 1570 01:03:33,840 --> 01:03:35,620 경우 (N == 42). 1571 01:03:35,620 --> 01:03:39,100 우리는 평등의 테스트를 지정해야하기 때문에 1572 01:03:39,100 --> 01:03:40,930 값의 아닌 할당. 1573 01:03:40,930 --> 01:03:42,830 >> 여기에 주목할 가치가 다른 무엇입니까? 1574 01:03:42,830 --> 01:03:46,030 이 중괄호는 실제로 필요하지 않습니다. 1575 01:03:46,030 --> 01:03:48,650 난 여기 알 - 까다로 몰려를 해왔습니다. 1576 01:03:48,650 --> 01:03:51,350 그러나 당신은 단 한 줄이 조건이있을 때 1577 01:03:51,350 --> 01:03:55,100 코드는 편의 프로그래머는 사용할 필요가 없습니다 1578 01:03:55,100 --> 01:03:56,030 중괄호. 1579 01:03:56,030 --> 01:03:59,370 단지 예술적으로는, 들여 쓰기하기에 충분하고, 1580 01:03:59,370 --> 01:04:01,050 다음 코드의 라인을 써주세요. 1581 01:04:01,050 --> 01:04:04,160 에 - 당신은 코드 두 줄을 작성하려는 경우에만 1582 01:04:04,160 --> 01:04:08,230 예를 들어, 다른 printf ( "안녕!"). 당신은하고 싶은 경우 1583 01:04:08,230 --> 01:04:09,540 즉,이가 고장 났어요. 1584 01:04:09,540 --> 01:04:11,700 당신이 원하는 모든 들여 쓰기 할 수는 있지만이 있다는 사실 1585 01:04:11,700 --> 01:04:14,600 중괄호를 사용하지 않고 코드 두 줄을 입력 1586 01:04:14,600 --> 01:04:16,860 이 프로그램은 올바르게 수도 실행하지 않을 것을 의미 1587 01:04:16,860 --> 01:04:18,530 도 제대로 컴파일되지. 1588 01:04:18,530 --> 01:04:21,040 그럼 지금부터, 솔직히, 난 최선을 습관 방금 생각 1589 01:04:21,040 --> 01:04:24,460 중괄호를 사용하며, 당신은 그들이 만들 것을 발견합니다 1590 01:04:24,460 --> 01:04:25,750 슈퍼 분명 무슨 일이야. 1591 01:04:25,750 --> 01:04:29,410 >> 또한, 옆으로 - 당신은 그 사이에있어 특히 사용하는 1592 01:04:29,410 --> 01:04:31,700 온라인 권장 도서 또는 리소스 - 1593 01:04:31,700 --> 01:04:33,480 스타일이 개념에있어 걸 깨닫게 1594 01:04:33,480 --> 01:04:34,130 프로그래밍. 1595 01:04:34,130 --> 01:04:37,280 그리고 어떤 사람들은 실제로 곱슬 중괄호를 넣어하는 것을 선호 1596 01:04:37,280 --> 01:04:38,720 여기에 줄에. 1597 01:04:38,720 --> 01:04:41,520 어떤 사람들은 터무니없는 일을하는 것을 선호 1598 01:04:41,520 --> 01:04:43,830 여기두면 좋아요. 1599 01:04:43,830 --> 01:04:45,140 가에 관한 한 아무 잘못 대답이 없습니다 1600 01:04:45,140 --> 01:04:46,710 스타일,하지만 이건 잘못된 것입니다. 1601 01:04:46,710 --> 01:04:47,700 그러나 어떤 사람들은 해. 1602 01:04:47,700 --> 01:04:49,160 [웃음] 1603 01:04:49,160 --> 01:04:51,760 데이빗 J. MALAN : 그럼 지금이 얘기, 단순히 때문에 1604 01:04:51,760 --> 01:04:54,400 당신은 책이나 온라인에서 물건을 읽어, 당신은받을거야 1605 01:04:54,400 --> 01:04:55,990 서로 다른 교사로부터의 메시지와 1606 01:04:55,990 --> 01:04:56,730 다른 저자. 1607 01:04:56,730 --> 01:04:58,640 그리고 단지 기능들이있어, 그 실현 1608 01:04:58,640 --> 01:05:00,740 일반적으로 동등한하지만, 일관성을 유지하십시오. 1609 01:05:00,740 --> 01:05:02,850 따라서이 경우에는, 우리는 곱슬에 표준화됩니다 1610 01:05:02,850 --> 01:05:04,650 괄호는 왼쪽에 여기 늘어서. 1611 01:05:04,650 --> 01:05:04,910 >> 괜찮아요. 1612 01:05:04,910 --> 01:05:07,040 그럼 이제 가서이를 실행하게하고, 어떻게 된건 지 확인 1613 01:05:07,040 --> 01:05:07,780 이 프로그램을 갖추고 있습니다. 1614 01:05:07,780 --> 01:05:09,970 nonswitch하십시오. 1615 01:05:09,970 --> 01:05:11,040 그런 다음 nonswitch을 실행합니다. 1616 01:05:11,040 --> 01:05:13,900 나에게 공 사이의 정수를 포기하고 - 그래서 그 관련 없어 1617 01:05:13,900 --> 01:05:16,480 더 이상, 난 그냥 임의로 42 말거야. 1618 01:05:16,480 --> 01:05:17,850 그리고 오른쪽 답변을 골랐어 요. 1619 01:05:17,850 --> 01:05:20,430 자 이제, 실제로는 다른 방향으로 이것들을 가져 가게. 1620 01:05:20,430 --> 01:05:22,070 다른 구문 우리가 밖에서는 변 1621 01:05:22,070 --> 01:05:23,480 프로그램에서 사용할 수 있습니다. 1622 01:05:23,480 --> 01:05:27,310 여기 기능적으로 동일한 구문의 새 작품 이예요 1623 01:05:27,310 --> 01:05:30,680 하지만 단지 자신을 표현하는 다른 방법을 소개합니다. 1624 01:05:30,680 --> 01:05:32,830 그래서이라는거야 "스위치 문." 그리고 1625 01:05:32,830 --> 01:05:34,820 switch 문은 다음과 같이 작동합니다. 1626 01:05:34,820 --> 01:05:37,580 그것은 괄호 안에, 당신이 원하는 것을 값을 걸립니다 1627 01:05:37,580 --> 01:05:38,860 의 "스위치". 1628 01:05:38,860 --> 01:05:41,490 당신은 가치에 따라 다르게 행동하고 싶습니다. 1629 01:05:41,490 --> 01:05:44,360 그래서이 N의 값에 스위치를 의미합니다. 1630 01:05:44,360 --> 01:05:45,480 이 무슨 뜻 이죠? 1631 01:05:45,480 --> 01:05:50,530 그럼 여기서 n은 1 또는 2 또는 3 인 경우, 가서 "당신을 인쇄 1632 01:05:50,530 --> 01:05:52,680 큰 숫자 "를 선택한 후하다. 1633 01:05:52,680 --> 01:05:55,720 휴식을위한 이유는 C의 작동 방법으로 점이다 1634 01:05:55,720 --> 01:05:59,790 꼭 그렇게는 일치 사례를 발견 즉시, 그것은 실행 시작 1635 01:05:59,790 --> 01:06:01,610 그 아래 모든 코드. 1636 01:06:01,610 --> 01:06:04,580 I 줄 27 여기처럼 내 말은, 코드 한 줄을 가지고 있으므로 경우, 1637 01:06:04,580 --> 01:06:05,360 실행됩니다. 1638 01:06:05,360 --> 01:06:07,520 여기 또 다른 행을 추가 할 경우, 실행됩니다. 1639 01:06:07,520 --> 01:06:09,350 또 다른 라인은 그 곳에서 실행됩니다. 1640 01:06:09,350 --> 01:06:12,460 이 프로그램은 아래의 어떤 실행 중지 1641 01:06:12,460 --> 01:06:14,680 내가 명시 적으로 해당 case 문 1642 01:06:14,680 --> 01:06:17,210 "깨."라고 잘못. 1643 01:06:17,210 --> 01:06:19,220 맞아요,이 경우 결과로. 1644 01:06:19,220 --> 01:06:22,130 사례 4, 5, 6, 마찬가지로, 것이다 1645 01:06:22,130 --> 01:06:23,160 메시지를 인쇄합니다. 1646 01:06:23,160 --> 01:06:24,410 이 경우, 중간 번호입니다. 1647 01:06:24,410 --> 01:06:25,200 휴식. 1648 01:06:25,200 --> 01:06:28,160 사례 7, 8, 9, 10, 밖은 인쇄 할거야 "당신은 큰를 정 1649 01:06:28,160 --> 01:06:28,950 번호입니다. "봐라. 1650 01:06:28,950 --> 01:06:31,290 그리고 "기본"이라는 키워드는 그대로가 1651 01:06:31,290 --> 01:06:34,090 그 효과적으로 구축 "다른"같은. 1652 01:06:34,090 --> 01:06:36,010 지적 그래서 새로운 구문, 그러나, 1653 01:06:36,010 --> 01:06:37,060 모든 새로운 여기에서 아무것도. 1654 01:06:37,060 --> 01:06:38,280 그건 그냥 스크래치 같아요. 1655 01:06:38,280 --> 01:06:41,040 다른 다른 경우 경우 같은 블록의, 경우. 1656 01:06:41,040 --> 01:06:44,560 >> 그럼이 프로그램의 전환 버전입니다. 1657 01:06:44,560 --> 01:06:46,280 그러나 우리가 여기에 숫자와 함께 한 것을 확인할 수 있습니다. 1658 01:06:46,280 --> 01:06:49,040 단지 보여, 내가 두 번째 버전을 열어 보자 1659 01:06:49,040 --> 01:06:50,670 좀 더 구체적인 뭔가. 1660 01:06:50,670 --> 01:06:52,840 그래서 여기에 우리가 대신 등급 있습니다. 1661 01:06:52,840 --> 01:06:55,540 당신이 정수에 단지 스위치를 사용할 수 있습니다 밝혀 있지만,에 1662 01:06:55,540 --> 01:06:56,340 자. 1663 01:06:56,340 --> 01:06:58,930 모든 데이터 유형에 있지만 자 이상 있습니다. 1664 01:06:58,930 --> 01:07:02,670 그래서 여기, 우리가 뭔가 같이 할 수있는 C의 값이있는 경우 1665 01:07:02,670 --> 01:07:06,230 사용자는 GetChar 함수를 사용하여, 라인 (19)에 입력 1666 01:07:06,230 --> 01:07:09,410 자본 또는 소문자, 그럼 성적으로 해석하게입니다 1667 01:07:09,410 --> 01:07:11,340 하고 훌륭한 성적을 선택한 말한다. 1668 01:07:11,340 --> 01:07:14,690 그리고 아래 switch 문을 따라, 우리는 다른있어 1669 01:07:14,690 --> 01:07:17,950 "B"s와 "C"의, 등등을위한 가지 경우. 1670 01:07:17,950 --> 01:07:19,780 그러나이 지금 다른 일로 완성 보자. 1671 01:07:19,780 --> 01:07:21,130 또, 가지를 통해 날아 1672 01:07:21,130 --> 01:07:22,200 이 예제의 일부. 1673 01:07:22,200 --> 01:07:26,990 그러나 우리가 지금, 그들에게 적용 할 수있는 정말이야이야 - 1674 01:07:26,990 --> 01:07:28,880 나, 정말로 지금 번역 - 1675 01:07:28,880 --> 01:07:32,220 C.에 1676 01:07:32,220 --> 01:07:33,310 >> 그럼 내가 가서이 해주세요. 1677 01:07:33,310 --> 01:07:34,830 나는 새 파일을 열거야. 1678 01:07:34,830 --> 01:07:39,430 그리고 를 포함 할거야. 1679 01:07:39,430 --> 01:07:42,770 그리고 나서 정수 주를 (무효) 할거야. 1680 01:07:42,770 --> 01:07:46,390 저 loop.c.로 파일을 저장하자 1681 01:07:46,390 --> 01:07:48,280 그냥 예를 들어 있습니다. 1682 01:07:48,280 --> 01:07:49,910 그리고 가서 다음을 수행 할거야. 1683 01:07:49,910 --> 01:07:54,180 난 아주 지루한 프로그램을 작성하고 싶습니다. 1684 01:07:54,180 --> 01:07:56,170 10 그럼. 1685 01:07:56,170 --> 01:07:58,862 이 작업을 수행하자. 1686 01:07:58,862 --> 01:07:59,320 9. 1687 01:07:59,320 --> 01:08:00,360 괜찮아요. 1688 01:08:00,360 --> 01:08:02,120 당신이 프로그래밍에이 일을 시작 즉시, 넌 1689 01:08:02,120 --> 01:08:03,490 아마 뭔가 잘못하고. 1690 01:08:03,490 --> 01:08:04,950 그러나 우리는 어쨌든이 시작합니다. 1691 01:08:04,950 --> 01:08:05,430 죄송합니다. 1692 01:08:05,430 --> 01:08:06,950 그 사실은 잘못입니다. 1693 01:08:06,950 --> 01:08:08,230 7. 1694 01:08:08,230 --> 01:08:09,440 6. 1695 01:08:09,440 --> 01:08:10,750 5. 1696 01:08:10,750 --> 01:08:11,200 4. 1697 01:08:11,200 --> 01:08:12,450 아무것도 우리가 0으로 가면 무슨 일이 일어날 없어요. 1698 01:08:12,450 --> 01:08:13,290 3. 1699 01:08:13,290 --> 01:08:14,590 2. 1700 01:08:14,590 --> 01:08:15,630 1. 1701 01:08:15,630 --> 01:08:16,020 좋아요. 1702 01:08:16,020 --> 01:08:17,560 0. 1703 01:08:17,560 --> 01:08:18,689 삭제합니다. 1704 01:08:18,689 --> 01:08:19,029 >> 괜찮아요. 1705 01:08:19,029 --> 01:08:20,029 따라서 0을 반환합니다. 1706 01:08:20,029 --> 01:08:22,010 그래서이 프로그램은 분명히 무슨 일이 아주 할거야 1707 01:08:22,010 --> 01:08:23,310 지루하고 어쩔거야 말합니다. 1708 01:08:23,310 --> 01:08:24,060 그것은 그 모두 인쇄 할거야 1709 01:08:24,060 --> 01:08:25,290 위에서 아래로 값입니다. 1710 01:08:25,290 --> 01:08:27,140 그럼 내가 루프를하자. 1711 01:08:27,140 --> 01:08:28,640 그리고 - 아하하. 1712 01:08:28,640 --> 01:08:29,700 루프를 확인합니다. 1713 01:08:29,700 --> 01:08:31,479 난 잘못된 디렉토리에했습니다. 1714 01:08:31,479 --> 01:08:33,300 그리고 지금은 루프를 실행할 수 있습니다. 1715 01:08:33,300 --> 01:08:34,140 입력합니다. 1716 01:08:34,140 --> 01:08:34,620 Woohoo. 1717 01:08:34,620 --> 01:08:35,270 아주 좋아요. 1718 01:08:35,270 --> 01:08:36,279 니스 (Nice), 긴 프로그램입니다. 1719 01:08:36,279 --> 01:08:38,109 >> 좋아,하지만 지금은 더 나은이 작업을 수행 까. 1720 01:08:38,109 --> 01:08:40,810 당신이 루핑을 사용하기 시작했을 때, 스크래치에 좋아 1721 01:08:40,810 --> 01:08:43,149 건설, 대신 그냥 복사를 모두 붙여 넣기 1722 01:08:43,149 --> 01:08:45,580 퍼즐 조각은, 내가이 일을 소개하겠습니다. 1723 01:08:45,580 --> 01:08:48,609 따라서 C에서, 다양한 반복 구조가 있습니다 1724 01:08:48,609 --> 01:08:50,540 중 하나는이 것 같습니다. 1725 01:08:50,540 --> 01:08:55,069 A "에 대한"루프는 두 세미콜론으로 구분 세 가지 있습니다. 1726 01:08:55,069 --> 01:08:57,770 내부 루프의 시체를 그리고, 말하자면 방법 - 1727 01:08:57,770 --> 01:08:59,390 중괄호의 마음 속에 - 1728 01:08:59,390 --> 01:09:01,010 우리는 또 한번, 또 한번 일을 할 수 있습니다. 1729 01:09:01,010 --> 01:09:02,310 그래서 화면에 여기 일이 있습니다 1730 01:09:02,310 --> 01:09:03,300 말 그대로 그냥 댓글 달기를 수행 할 수 있습니다. 1731 01:09:03,300 --> 01:09:05,380 / /이 댓글을 나오고 의미합니다. 1732 01:09:05,380 --> 01:09:06,180 이 코드하지 않습니다. 1733 01:09:06,180 --> 01:09:08,890 이 나에게 단지 영어 설명, 인간이다. 1734 01:09:08,890 --> 01:09:11,300 >> 따라서 초기화, 조건, 및 업데이트. 1735 01:09:11,300 --> 01:09:12,770 그럼, 어떻게이 작품을 살펴 보자. 1736 01:09:12,770 --> 01:09:15,520 이 날 다음과 같이이 프로그램을 다시 작성 할 수 있습니다. 1737 01:09:15,520 --> 01:09:16,399 에 대한 - 1738 01:09:16,399 --> 01:09:18,029 그래서 여기 내 루프를 제공 - 1739 01:09:18,029 --> 01:09:19,439 i를 INT - 1740 01:09:19,439 --> 01:09:21,330 여기에 "나"라는 변수는 있습니다 - 1741 01:09:21,330 --> 01:09:23,140 10 초기화됩니다. 1742 01:09:23,140 --> 01:09:25,260 그럼 내 초기화가 있습니다. 1743 01:09:25,260 --> 01:09:29,450 난 오랫동안 "난"보다 크거나이기 때문에이 루프를 수행하려면 1744 01:09:29,450 --> 01:09:30,899 0 평등. 1745 01:09:30,899 --> 01:09:32,880 그리고이 루프의 각 반복에 내가 원하는 1746 01:09:32,880 --> 01:09:34,979 내가 작업을 수행 할 수 -. 1747 01:09:34,979 --> 01:09:36,310 그래서 우리는 월요일에 + +를 보았다. 1748 01:09:36,310 --> 01:09:37,660 - 맞은 편에 위치해 있습니다. 1749 01:09:37,660 --> 01:09:39,410 이 1의 값을 감소. 1750 01:09:39,410 --> 01:09:43,319 이 루프의 내부, 사실은 뭔가를하길 원한다. 1751 01:09:43,319 --> 01:09:46,390 그래서 printf 같은 말을거야. 1752 01:09:46,390 --> 01:09:48,939 이건 분명히 단지이기 때문에 난 지금 10 말하고 싶지 않아 1753 01:09:48,939 --> 01:09:50,000 같은 값을 인쇄하려고. 1754 01:09:50,000 --> 01:09:52,246 내가 대신 아마 인쇄 원하는 게 뭐야? 1755 01:09:52,246 --> 01:09:52,590 그래. 1756 01:09:52,590 --> 01:09:55,270 그래서 "내가." 따라서 % d 개, 전. 1757 01:09:55,270 --> 01:09:57,340 >> 그래서 이전부터 그 아이디어 중 하나를 훔쳐 갈거야 - 1758 01:09:57,340 --> 01:09:59,640 형식 코드이 대체 - 1759 01:09:59,640 --> 01:10:01,620 그리고 여기, 하단에, 난 그냥, 0을 반환합니다 1760 01:10:01,620 --> 01:10:02,710 좋은 측정을위한. 1761 01:10:02,710 --> 01:10:04,740 그러나 지금은보다 간결 프로그램을 갖추고 있습니다. 1762 01:10:04,740 --> 01:10:07,490 단지 몇 줄, 그리고하지 일부 10 또는 11 선. 1763 01:10:07,490 --> 01:10:09,440 내가 여기서 내려 프롬프트 가자. 1764 01:10:09,440 --> 01:10:10,630 리메이크 루프. 1765 01:10:10,630 --> 01:10:12,140 루프를 다시 실행합니다. 1766 01:10:12,140 --> 01:10:13,570 그리고 같은 것 같습니다. 1767 01:10:13,570 --> 01:10:15,550 이제 프로그램이 더 이상 흥미 없어. 1768 01:10:15,550 --> 01:10:17,180 하지만 지금은 사람들이 이런 일을 입력 할 수 있습니다. 1769 01:10:17,180 --> 01:10:18,970 나는 100이 변경할 수 있습니다. 1770 01:10:18,970 --> 01:10:21,400 나는 그 때 내 프로그램을 컴파일 할 수 있습니다. 1771 01:10:21,400 --> 01:10:23,360 그리고 나서 나는 내 프로그램을 다시 실행할 수 있습니다. 1772 01:10:23,360 --> 01:10:26,390 그리고 이제 오늘의 컴퓨터에 초고속갑니다. 1773 01:10:26,390 --> 01:10:27,820 하지만, 내가 가진 - 1774 01:10:27,820 --> 01:10:29,620 실제로, 내 스크롤 버퍼는하지 않습니다 1775 01:10:29,620 --> 01:10:30,890 심지어 멀리 이동합니다. 1776 01:10:30,890 --> 01:10:31,680 우리는 간다. 1777 01:10:31,680 --> 01:10:34,090 그래서 우리는 100 있습니다. 1778 01:10:34,090 --> 01:10:35,880 그러나 여기에 실수를하는 방법은 간단합니다. 1779 01:10:35,880 --> 01:10:37,920 예상 행동 할, 무슨 일이야 만약 내가 1780 01:10:37,920 --> 01:10:41,150 실수로 그렇게? 1781 01:10:41,150 --> 01:10:42,550 그래서이 무한 인 것 같아요. 1782 01:10:42,550 --> 01:10:44,670 따라서 컴퓨터가 작동하는 경우 보자. 1783 01:10:44,670 --> 01:10:47,020 >> 그럼 내가 가서 루프를 보자. 1784 01:10:47,020 --> 01:10:48,355 그리고 나 루프를 실행할 수 있습니다. 1785 01:10:53,590 --> 01:10:55,210 그러니까 그냥 순간에 그에게로 돌아가요. 1786 01:10:55,210 --> 01:10:56,720 우리는 실행을 알려드립니다. 1787 01:10:56,720 --> 01:10:59,520 때문에 최소한으로 무엇을 계산해야합니까? 1788 01:10:59,520 --> 01:11:02,200 아마 최소 2 억 우리는 많은 비트가있는 경우, 그리고 1789 01:11:02,200 --> 01:11:03,660 우리는 긍정적 인 값을 사용하고 있습니다. 1790 01:11:03,660 --> 01:11:04,890 그럼 여기서 다시 뛰어 보자. 1791 01:11:04,890 --> 01:11:07,810 루프 이러한 종류의 외에, 우리는 동안이라는 것을 가지고 1792 01:11:07,810 --> 01:11:09,430 루프. 그래서, 그냥 스크래치에서처럼, 영원히 가지고 1793 01:11:09,430 --> 01:11:11,240 블록, 당신은 반복 블록을했습니다. 1794 01:11:11,240 --> 01:11:13,270 마찬가지로, C에, 당신은 다른 방법을 가지고 1795 01:11:13,270 --> 01:11:14,260 자신을 표현. 1796 01:11:14,260 --> 01:11:17,110 그래서 당신은 당신이 할 수있는 동안 루프의 개념을 가지고 1797 01:11:17,110 --> 01:11:18,860 자신에게 다르게 조금 표현한다. 1798 01:11:18,860 --> 01:11:21,490 그리고 당신은 몰라 동안 루프라는 게 있어요 1799 01:11:21,490 --> 01:11:24,200 이는 물론 약간 다르게 작동합니다. 1800 01:11:24,200 --> 01:11:25,320 그리고 우리는 시간이 지남에 떨어져 다음을 괴롭혀야합니다. 1801 01:11:25,320 --> 01:11:28,630 >> 그러나의 여기 마지막 부분을 살펴 봅시다. 1802 01:11:28,630 --> 01:11:30,160 우리는에 가면 - 1803 01:11:30,160 --> 01:11:31,466 여전히 실행할 수 있습니다. 1804 01:11:31,466 --> 01:11:32,770 꽤 무한입니다. 1805 01:11:32,770 --> 01:11:36,870 그럼 내가 긍정적으로 가자, 어떻게 우리가 실제로 할 수 표시 1806 01:11:36,870 --> 01:11:39,410 좀 더 효율적으로 사용자의 입력을 통제하고 있습니다. 1807 01:11:39,410 --> 01:11:40,910 꽤 짧은 프로그램입니다. 1808 01:11:40,910 --> 01:11:43,730 그리고 여기에 우리는 주, 정수 N 선언에 있습니다. 1809 01:11:43,730 --> 01:11:46,570 그러니까 나 한테 N이라는 변수를 제공합니다. 자, 문자 그대로 1810 01:11:46,570 --> 01:11:48,340 "어떻게." 그리고 나서 오픈 곱슬이 있어요 1811 01:11:48,340 --> 01:11:49,630 브레이스 가까이 곱슬 곱슬 한 부목. 1812 01:11:49,630 --> 01:11:52,000 그리고 바로 다음,주의, 그것은 말합니다 동안 N 1813 01:11:52,000 --> 01:11:53,790 미만 1입니다. 1814 01:11:53,790 --> 01:11:55,300 따라서주의 그 다음 행 - 1815 01:11:55,300 --> 01:11:56,740 19-24 - 1816 01:11:56,740 --> 01:11:59,450 통칭 DO-동안 루프를 작성하십시오. 1817 01:11:59,450 --> 01:12:01,280 그리고 다시, 새로운 구문이 아닌 새로운 아이디어. 1818 01:12:01,280 --> 01:12:03,740 이 구문 반복의 또 다른 방법,입니다. 1819 01:12:03,740 --> 01:12:04,890 그래서 어떻게합니까? 1820 01:12:04,890 --> 01:12:08,000 n은 1보다 적은 상태에서 다음을 수행합니다. 1821 01:12:08,000 --> 01:12:09,080 그래서 어떻게할까요? 1822 01:12:09,080 --> 01:12:11,390 난 당신이 나에게 양의 정수를주는 요구합니다. 1823 01:12:11,390 --> 01:12:14,110 그리고 실제로 사용자로부터 정수를하려고합니다. 1824 01:12:14,110 --> 01:12:16,740 하지만 여기 작업의 순서의 관점에서, 때문에 1825 01:12:16,740 --> 01:12:21,850 상태가 여기있는 동안, 그때 확인해 보죠, N은 1826 01:12:21,850 --> 01:12:23,100 1보다 적은? 1827 01:12:23,100 --> 01:12:24,600 그래서 사용자는 가정 - 1828 01:12:24,600 --> 01:12:26,450 -이 방법으로 요구 된 후 1829 01:12:26,450 --> 01:12:29,190 값 0 유형입니다. 1830 01:12:29,190 --> 01:12:34,510 이 조건은 참 또는 거짓하실 건가요? 1831 01:12:34,510 --> 01:12:35,820 음, 사실은 사실거야. 1832 01:12:35,820 --> 01:12:38,700 N은 0이며, 0 미만이기 때문입니다. 1833 01:12:38,700 --> 01:12:40,140 그럼 무엇을 의미합니까? 1834 01:12:40,140 --> 01:12:41,160 다시. 1835 01:12:41,160 --> 01:12:41,990 다시. 1836 01:12:41,990 --> 01:12:42,640 다시. 1837 01:12:42,640 --> 01:12:46,080 한 번만 그 조건은 false로 평가합니다. 1838 01:12:46,080 --> 01:12:47,510 I 42를 입력합니다. 1839 01:12:47,510 --> 01:12:49,690 아니 글쎄, 42 미만 없습니다. 1840 01:12:49,690 --> 01:12:52,320 따라서이 루프는 실행 완료됩니다. 1841 01:12:52,320 --> 01:12:54,650 그리고 그 시점에서 프로그램은에 감사를 말할 것이다 1842 01:12:54,650 --> 01:12:57,530 이 경우 42. 1843 01:12:57,530 --> 01:13:00,320 당신은 자신을 표현하는이 방법이 지금있는 - 1844 01:13:00,320 --> 01:13:02,360 우리는 완성이 기다려해서는 안됩니다. 1845 01:13:02,360 --> 01:13:03,620 그것은 시간이 좀 걸릴 겁니다. 1846 01:13:03,620 --> 01:13:04,990 아마도 다음 번에 ​​계속 될 수 있습니다. 1847 01:13:04,990 --> 01:13:08,050 >> 그러나 지금 당신은 이해를 희망 할 수있는 능력을 가지고 1848 01:13:08,050 --> 01:13:09,060 괴짜 유머 비트. 1849 01:13:09,060 --> 01:13:11,560 죄송합니다. 1850 01:13:11,560 --> 01:13:13,620 이 컴퓨터 과학에 유머를 대표하지 않는 1851 01:13:13,620 --> 01:13:14,870 세계하지만 귀엽다. 1852 01:13:21,020 --> 01:13:23,890 그 말이 나와서 말인데 [웃음]하자 끝. 1853 01:13:23,890 --> 01:13:25,750 우리는 월요일에 표시됩니다. 1854 01:13:25,750 --> 01:13:31,629 [박수 갈채]