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