1 00:00:00,000 --> 00:00:00,982 2 00:00:00,982 --> 00:00:11,293 >> [음악 연주] 3 00:00:11,293 --> 00:00:13,580 >> ROB 보덴 : 그것은 롭 나야. 4 00:00:13,580 --> 00:00:16,540 의 방법을 통해 살펴 보겠습니다 마리오를 구현합니다. 5 00:00:16,540 --> 00:00:21,040 그래서 우리가해야 할 첫번째 일은이다 사용자 입력하라는 메시지를 표시합니다. 6 00:00:21,040 --> 00:00:24,440 >> 우리는 정확히 어떻게 그들에게 필요 키가 큰 피라미드해야합니다. 7 00:00:24,440 --> 00:00:27,110 그래서 여기, 우리는 우리가하고있는 참조 높이 = getInt를. 8 00:00:27,110 --> 00:00:32,479 그리고 기억이 getInt와 기능 CS50에서 구현 9 00:00:32,479 --> 00:00:38,060 라이브러리는, 그래서 정상까지, 우리는 필요 #으로 기억이 cs50.h. 포함 10 00:00:38,060 --> 00:00:41,360 >> 그럼 왜 우리는이 포장해야합니까 DO-whil​​e 루프에서? 11 00:00:41,360 --> 00:00:45,080 음, 우리는 또한 기억해야합니다 사용자의 입력이 유효합니다. 12 00:00:45,080 --> 00:00:46,910 유효하지 않은 입력은 무엇입니까? 13 00:00:46,910 --> 00:00:51,460 그럼 PSET 사양은 구체적으로 말한다 그 높이가 0보다 작거나 14 00:00:51,460 --> 00:00:54,530 23이 잘못보다. 15 00:00:54,530 --> 00:00:59,030 >> 그래서 여기까지, 우리는 우리가 정의하는 것을 볼 수 와 MAX_HEIGHT라는 상수 16 00:00:59,030 --> 00:01:00,750 23의 값. 17 00:01:00,750 --> 00:01:06,380 이 DO-whil​​e 루프 동안 계속됩니다 높이가 0보다 작거나 MAX_HEIGHT입니다 18 00:01:06,380 --> 00:01:11,870 것을 의미한다 높이보다 도 23은 높이보다 작다. 19 00:01:11,870 --> 00:01:15,390 높이가 24 이상인 경우에, 우리는거야 계속해서 반복 할 것. 20 00:01:15,390 --> 00:01:18,300 는 것을 기억 할 - 동안 루프가 사랑스러운 도움이 우리가하고 싶어 할 때마다 21 00:01:18,300 --> 00:01:22,070 사용자 입력과 그 이후, 유효성을 검사 우리는 필연적으로 사용자를 요청해야 22 00:01:22,070 --> 00:01:25,010 적어도 한 번 이상 자신이 원하는 값. 23 00:01:25,010 --> 00:01:28,500 >> 그래서 일단 우리가 입력을 가지고, 우리 이제 피라미드를 구축 할 수 있습니다. 24 00:01:28,500 --> 00:01:31,940 설정이 문제의 트릭 중 하나는 우리는 상단에 시작해야한다는 25 00:01:31,940 --> 00:01:32,750 피라미드. 26 00:01:32,750 --> 00:01:36,800 당신의 바닥을 printf를 할 수 없습니다 피라미드 다음까지 당신의 방법을 구축 할 수 있습니다. 27 00:01:36,800 --> 00:01:38,830 그럼 예를 살펴 보자 PSET 사양에서. 28 00:01:38,830 --> 00:01:41,530 29 00:01:41,530 --> 00:01:45,430 >> 우리는 여기에서 보는 우리는 높이를 입력 할 때 8, 맨 아래 30 00:01:45,430 --> 00:01:48,660 피라미드 구 해시를 인쇄합니다. 31 00:01:48,660 --> 00:01:52,990 그에서 한 레벨 위로 인쇄 하나의 공간과 여덟 해시. 32 00:01:52,990 --> 00:01:58,250 그에서 한 레벨 위로는 두 개의 공간과입니다 일곱 해시, 모든 방법까지 우리 33 00:01:58,250 --> 00:02:03,050 인 피라미드의 정상에 도착 일곱 출력 최대 8 수준, 34 00:02:03,050 --> 00:02:06,000 공간과 두 해시. 35 00:02:06,000 --> 00:02:08,810 그래서 우리가이 사실을 기억 먼저이 최고 수준을한다. 36 00:02:08,810 --> 00:02:11,620 37 00:02:11,620 --> 00:02:18,500 >> 여기에 우리가에서 반복하고 최상위 레벨, 8 행, 계속 38 00:02:18,500 --> 00:02:22,150 행이 0에 도달 할 때까지. 39 00:02:22,150 --> 00:02:25,820 그래서 얼마나 많은 공간을 우리가 필요로 않았다 그 위쪽 행에 인쇄 할? 40 00:02:25,820 --> 00:02:29,310 우리는 일곱 공백을 인쇄 두 해시. 41 00:02:29,310 --> 00:02:34,450 그래서 우리가 원하는 공간의 수는 - 1에 있던 행. 42 00:02:34,450 --> 00:02:39,310 >> 맨 윗줄은 8, 8 마이너스 인 경우 1은 우리에게 일곱 공간을 제공합니다. 43 00:02:39,310 --> 00:02:43,770 그럼 우리가 인쇄됩니다 루프가 한 번에 각각의 공간을 하나의 중. 44 00:02:43,770 --> 00:02:47,450 이렇게하면 공간이 루프는 7이다 7 번 인쇄 45 00:02:47,450 --> 00:02:50,300 7 개의 독립적 인 공간. 46 00:02:50,300 --> 00:02:54,672 >> 그래서 지금 우리는이 해시를 인쇄해야 피라미드의 끝에. 47 00:02:54,672 --> 00:02:57,930 그래서 여기, 우리가 계산해야 해시의 수. 48 00:02:57,930 --> 00:03:01,930 우리는 우리가 높이를하고있는 것을 볼 수 마이너스 행 플러스 2. 49 00:03:01,930 --> 00:03:04,170 어떻게 우리는 그것을 거죠? 50 00:03:04,170 --> 00:03:08,630 >> 기억이 피라미드의 꼭대기 8 행이고, 높이가 13이다. 51 00:03:08,630 --> 00:03:10,890 그리고 우리는 여전히 두 해시 인쇄. 52 00:03:10,890 --> 00:03:15,420 그래서 적어도, 8 마이너스 8 플러스 2 우리에게 정답을 제공합니다. 53 00:03:15,420 --> 00:03:19,170 그리고 하단 참고 피라미드, 1 행. 54 00:03:19,170 --> 00:03:24,020 높이 마이너스 행은 우리에게 7을, 그리고 해줄 것이다 후 플러스 2는 우리에게 아홉 해시를 제공, 55 00:03:24,020 --> 00:03:26,620 정확히 어떤 번호 의 우리가 인쇄 된 것을 해시. 56 00:03:26,620 --> 00:03:29,880 그래서 이것은 우리가 원하는 식입니다 수를 계산하기 위해 사용 57 00:03:29,880 --> 00:03:32,220 각 행에서 해시. 58 00:03:32,220 --> 00:03:36,020 >> 해당 번호를 사용하여, 우리는 또 다른이 매우 유사 루프에 대한 59 00:03:36,020 --> 00:03:41,270 우리가 공간에 사용되는 루프, 그 해시 시간의 반복 번호 60 00:03:41,270 --> 00:03:43,720 하나의 해시마다 인쇄. 61 00:03:43,720 --> 00:03:46,010 맨 윗줄에, 그 거 두 해시를 인쇄 할 수 있습니다. 62 00:03:46,010 --> 00:03:48,390 맨 아래 행에 그 거 구 해시를 인쇄 할 수 있습니다. 63 00:03:48,390 --> 00:03:52,610 서로 행마다 인쇄됩니다 그 사이에 해시의 수. 64 00:03:52,610 --> 00:03:57,340 >> 그리고 맨 마지막에, 우리는 필요 다음에 가서 우리의 새로운 라인을 인쇄 65 00:03:57,340 --> 00:03:59,400 피라미드에 행. 66 00:03:59,400 --> 00:04:03,070 마지막으로, 우리는 새로운 라인을 인쇄 할 필요가 행의 마지막 순서에서 67 00:04:03,070 --> 00:04:06,260 다음에 계속 피라미드의 행. 68 00:04:06,260 --> 00:04:08,980 그리고 우리의 프로그램의 끝에서, 우리는 0을 반환있다. 69 00:04:08,980 --> 00:04:12,770 >> PSET 사양, 반환에게 당 0 엄격하게 할 필요가 없습니다. 70 00:04:12,770 --> 00:04:15,710 그러나 기본이 완료 한 것을 나타냅니다 않습니다. 71 00:04:15,710 --> 00:04:17,610 내 이름은 롭,이 마리오했다. 72 00:04:17,610 --> 00:04:22,470 >> [음악 연주] 73 00:04:22,470 --> 00:04:25,558