[음악 연주] ROB 보덴 : 그것은 롭 나야. 의 방법을 통해 살펴 보겠습니다 마리오를 구현합니다. 그래서 우리가해야 할 첫번째 일은이다 사용자 입력하라는 메시지를 표시합니다. 우리는 정확히 어떻게 그들에게 필요 키가 큰 피라미드해야합니다. 그래서 여기, 우리는 우리가하고있는 참조 높이 = getInt를. 그리고 기억이 getInt와 기능 CS50에서 구현 라이브러리는, 그래서 정상까지, 우리는 필요 #으로 기억이 cs50.h. 포함 그럼 왜 우리는이 포장해야합니까 DO-whil​​e 루프에서? 음, 우리는 또한 기억해야합니다 사용자의 입력이 유효합니다. 유효하지 않은 입력은 무엇입니까? 그럼 PSET 사양은 구체적으로 말한다 그 높이가 0보다 작거나 23이 잘못보다. 그래서 여기까지, 우리는 우리가 정의하는 것을 볼 수 와 MAX_HEIGHT라는 상수 23의 값. 이 DO-whil​​e 루프 동안 계속됩니다 높이가 0보다 작거나 MAX_HEIGHT입니다 것을 의미한다 높이보다 도 23은 높이보다 작다. 높이가 24 이상인 경우에, 우리는거야 계속해서 반복 할 것. 는 것을 기억 할 - 동안 루프가 사랑스러운 도움이 우리가하고 싶어 할 때마다 사용자 입력과 그 이후, 유효성을 검사 우리는 필연적으로 사용자를 요청해야 적어도 한 번 이상 자신이 원하는 값. 그래서 일단 우리가 입력을 가지고, 우리 이제 피라미드를 구축 할 수 있습니다. 설정이 문제의 트릭 중 하나는 우리는 상단에 시작해야한다는 피라미드. 당신의 바닥을 printf를 할 수 없습니다 피라미드 다음까지 당신의 방법을 구축 할 수 있습니다. 그럼 예를 살펴 보자 PSET 사양에서. 우리는 여기에서 보는 우리는 높이를 입력 할 때 8, 맨 아래 피라미드 구 해시를 인쇄합니다. 그에서 한 레벨 위로 인쇄 하나의 공간과 여덟 해시. 그에서 한 레벨 위로는 두 개의 공간과입니다 일곱 해시, 모든 방법까지 우리 인 피라미드의 정상에 도착 일곱 출력 최대 8 수준, 공간과 두 해시. 그래서 우리가이 사실을 기억 먼저이 최고 수준을한다. 여기에 우리가에서 반복하고 최상위 레벨, 8 행, 계속 행이 0에 도달 할 때까지. 그래서 얼마나 많은 공간을 우리가 필요로 않았다 그 위쪽 행에 인쇄 할? 우리는 일곱 공백을 인쇄 두 해시. 그래서 우리가 원하는 공간의 수는 - 1에 있던 행. 맨 윗줄은 8, 8 마이너스 인 경우 1은 우리에게 일곱 공간을 제공합니다. 그럼 우리가 인쇄됩니다 루프가 한 번에 각각의 공간을 하나의 중. 이렇게하면 공간이 루프는 7이다 7 번 인쇄 7 개의 독립적 인 공간. 그래서 지금 우리는이 해시를 인쇄해야 피라미드의 끝에. 그래서 여기, 우리가 계산해야 해시의 수. 우리는 우리가 높이를하고있는 것을 볼 수 마이너스 행 플러스 2. 어떻게 우리는 그것을 거죠? 기억이 피라미드의 꼭대기 8 행이고, 높이가 13이다. 그리고 우리는 여전히 두 해시 인쇄. 그래서 적어도, 8 마이너스 8 플러스 2 우리에게 정답을 제공합니다. 그리고 하단 참고 피라미드, 1 행. 높이 마이너스 행은 우리에게 7을, 그리고 해줄 것이다 후 플러스 2는 우리에게 아홉 해시를 제공, 정확히 어떤 번호 의 우리가 인쇄 된 것을 해시. 그래서 이것은 우리가 원하는 식입니다 수를 계산하기 위해 사용 각 행에서 해시. 해당 번호를 사용하여, 우리는 또 다른이 매우 유사 루프에 대한 우리가 공간에 사용되는 루프, 그 해시 시간의 반복 번호 하나의 해시마다 인쇄. 맨 윗줄에, 그 거 두 해시를 인쇄 할 수 있습니다. 맨 아래 행에 그 거 구 해시를 인쇄 할 수 있습니다. 서로 행마다 인쇄됩니다 그 사이에 해시의 수. 그리고 맨 마지막에, 우리는 필요 다음에 가서 우리의 새로운 라인을 인쇄 피라미드에 행. 마지막으로, 우리는 새로운 라인을 인쇄 할 필요가 행의 마지막 순서에서 다음에 계속 피라미드의 행. 그리고 우리의 프로그램의 끝에서, 우리는 0을 반환있다. PSET 사양, 반환에게 당 0 엄격하게 할 필요가 없습니다. 그러나 기본이 완료 한 것을 나타냅니다 않습니다. 내 이름은 롭,이 마리오했다. [음악 연주]