ZAMYLA CHAN : 그것은 Zamyla, A-나야. 오늘, 우리는 구현하는거야 우리가 마리오를 그릴 마리오, 그를 위해 전체 피라미드를 통해 이동합니다. 의은을 무너 뜨리는하자 이 문제에 대한 하위 작업. 첫째, 우리는 사용자에게 메시지를 표시 할 피라미드의 높이. 그리고 우리가 있는지 확인하려면 것을 그 입력이 유효합니다. 그리고 우리는 거 야 피라미드를 그리려. 그럼 프롬프트에 대해 이야기하자 사용자 입력의 유효성을 검사. 그것은 뭔가를 보일 수 있습니다 이, 할 - while 루프가 에 대한 사용자 프롬프트 정수 만 반복 그 정수는 무효 인 경우. 따라서이 조건은 무엇을해야 하는가? 이 들어, 돌아 가자 사양합니다. 음, 사양이 유효한 것을 우리에게 알려줍니다 높이가 0에서 23 사이가 될 것입니다 포함한. 그래서 그 어떤 잘못된 것을 의미한다 높이가 0보다 작이 될 것입니다 또는 이상 23. 그래서 지금 우리는이 정보를 가지고, 의 우리의 조건을 설계 할 수 있습니다. 하지만 우리가 조심해야, 지금 우리가 가지고 있기 때문에 우리가 평가하고자하는 두 개의 부울. 여기 당신을 제공 한 진실 테이블. 이것은 우리 둘을 촬영할 수 있습니다 부울, 부울 하나, 둘. 그리고 우리는 하나 bool1을 평가할 수 있습니다 및 Bool2를 또는 bool1 또는 Bool2를. 그래서 차이점은 무엇입니까 사이와 나? 음, bool1 및 Bool2를 것 로 평가 진정한 경우에만 모두 부울에 해당하는 경우, 또는 ▶ 동작 반면, 사실이 될 것 둘 중 하나의 경우 부울 또는 두 가지 모두에 해당합니다. 이 마음에 너무 당신이 알아낼 수 있는지 무엇 적절한 조건 잘못된 N에 대한 DO-whil​​e 루프 될 것입니다. 즉, 우리는 메시지가 표시 및 확인했습니다 피라미드의 높이 유저 그들이 원하는. 그래서 지금, 그것은 우리에게 달려 있습니다 피라미드를 그립니다. 이에 대한 전체 피라미드 문제는 조금 볼 것이다 이런 식으로, 우리는 왼쪽 피라미드이 경우, 약간의 갭 한 다음 바로 피라미드. 그럼 조금이 분해 할 수 있습니다. 내 텍스트 편집기로 이동하는 경우, 나는 여기했습니다 우리에게 왼쪽 정렬 피라미드를 그려. 그러나 그것은하지 않습니다. 우리가 원하는 것은 우리가 원하는 것입니다 먼저 오른쪽 맞춤 피라미드를 만듭니다. 그래서 그냥 밀어,이 작업을 수행하는 측면을 따라 내 해시, 난 그냥 몇 가지 문자를 넣어 갈거야 바로 이러한 점 사이입니다. 그럼 난 두 넣어 갈거야 다음 행, 그 줄에 하나. 그래서 여기 내가있다 피라미드를 마우스 오른쪽 단추로 정렬됩니다. 그 후, 나는 갈거야 맨 윗줄로 돌아가 과의 간극에 넣어하는 사양, 두 공간 당입니다. 그럼 난에 기입거야 피라미드의 다른 측면. 내가 두 번째 행에 갈거야, 쓰기 이 간극을위한 공간과 두 개의 해시. 위로 세 번째 행에, 두 공간 갭 세 해시합니다. 그리고 마지막에, 두 공간 갭과 네 개의 해시합니다. 그래서 무엇 전체 피라미드처럼 보이는 것입니다. 물론, 우리는 원하지 않는다 그런데 이러한 점. 그래서 우리는 이들을 대체 할거야 일부 공간을 넣어 점. 하나, 둘, 첫 번째 줄에 세. 하나, 두 번째의 두. 그리고 세 번째 줄에 하나. 그래서 이것은 우리가 우리 경우 어떻게 할 것인지입니다 단지 전체 피라미드를 만들고 싶었다, 우리의 텍스트 편집기에서, 말한다. 그래서이 보자, 패턴을 이해하고, 일부 의사로를 통해 변환 할 수 있습니다. 피라미드의 각 행에 대해, 우리는 할 다음, 왼쪽 피라미드를 인쇄하기 갭 다음 오른쪽 피라미드. 왼쪽 피라미드를 들어, 우리는 인쇄 공간 필요한 양 해시 하였다. 그 다음 우리는 격차를 인쇄하는 두 공간마다입니다. 그리고 오른쪽 피라미드, 우리는 인쇄 해시의 필요한 번호입니다. 두 번째 행을 위해, 우리는 실시 똑같은 과정. 우리는 왼쪽의 공백을 인쇄 피라미드 필요량 해시, 갭, 두 공간, 그리고 오른쪽 피라미드에 대한 다음 해시. 의 패턴을 해결하자 왼쪽 피라미드합니다. 내가 가진 경우, 목적 이 예제의 높이 팔의에 의해 요청 사용자, 다음 내 첫 번째 행 하나의 해시 일곱 공간을 가질 것이다. 내 두 번째 행 것이다 두 해시, 여섯 공간. 세 번째 행, 세 해시, 다섯 공간. 당신은 아마이 작업을 수행 할 수 있습니다 팔의 높이에 대한 자신 얼마나 많은 각각의 행에 대해 결정 해시 얼마나 많은 공간이 필요합니다. 하지만 우리가 원하는 것은 우리는 추상적으로합니다. 그래서 얼마나 많은 임의의 n 번째 행를 요청 해시 우리는 얼마나 많은 공간을 필요합니까? 지금으로 당신은을 결정 얼마나 많은 해시에 대한 패턴 얼마나 많은 공간이 당신을 위해 필요 주어진 높이에 대한 n 번째 행, 조심해야 기억 어떻게 당신은 색인을 생성하고 있습니다. 내가이 의미하는 것은 일상에서이다 생활 우리의 대부분은 하나에 의해 계산 시작합니다. 그래서 첫 번째 행은 숫자 하나가 될 것입니다. 및 상기 제 2 열은 열 것 두 번째, 등등 등등. 그러나 컴퓨터 과학 및 CS50, 우리는 제로 인덱싱됩니다. 그래서 우리는 실제로 제로 카운트 시작합니다. 그래서 첫 번째 행은 것 행 번호 제로. 그리고 두 번째 행 행 번호 하나가 될 것입니다. 그래서 만약 내가 8 개의의 높이를했다 내 피라미드, N의 다음 마지막 값 실제로 칠 아니라 팔 것입니다. 그래서 이것에 대해주의해야합니다. 당신이 결정하는 때주의 당신의 제로 인덱스 여부를 당신의 패턴 또는 하나의 인덱스 승인. 그래서 지금 우리가이 있는지 왼쪽 피라미드에 대한 패턴, 우리가 결정해야 간격의 패턴입니다. 다행히이 정말 쉽습니다. 그냥 항상 두 개의 공간입니다. 그래서 지금 우리는 오른쪽 패턴에 진행합니다. 첫 번째 행은 하나의 해시를해야합니다. 두 번째 행이. 세 번째 행 세. 등등 등등. 그래서 다시, 어떤 추상적 인에 대한 결정 n은 얼마나 많은 해시 어떤 높이 얼마나 많은 공간 각 행이 있어야합니다. 승인. 그래서 우리가 알고있는 각 행의 우리에 대한 어떤 과정을 수행해야합니다. 우리는 어떻게해야합니까? 글쎄, 우리는 루프 구조의 사용, 초기화 구성, 조건 및 업데이트. 루프가 사용될 수있다 들어 프로세스를 반복합니다. 그래서, 나는 그것이 인사하고 싶은 말은 세계 50 배, 다음 내 루프 같이 보일 것입니다, 어디 I 0으로 내 변수를 초기화합니다. 조건은 i가 50보다 작은 것입니다. 다음 업데이트는 것입니다 하나마다에 의해 증가합니다. 그래서이하는 것입니다 무엇을 할 것이라고 행 안부 세계 50 회 인쇄 할 수 있습니다. 지금, 나는이 반복 싶어 말 피라미드의 높이 이상. 그리고 대신 하드 코딩 조건의 일부 값, 난 그냥 변수 높이를 사용합니다. 그래서이 수행 할 작업을 반복 처리입니다 높이 각 행 이상. 그리고 나는 내 일을 할 수 있습니다 이 루프 본체. 우리가하고 싶은 일을 루프의 체내? 우리가 전에 표시뿐만 아니라, 우리가 원하는 공간과 해시를 인쇄 다음 왼쪽 피라미드 및 인쇄 이 공간은 다음 해시를 인쇄 할 수 있습니다. 그래서 우리는 이미 그것을 알아 냈어요. 그래서 우리는 채우기 위해 시작할 수 있습니다 더 많은 우리의 프로그램입니다. 여기에 내가 루프 외부가 그 피라미드의 모든 행을 반복. 그리고 그 몸 안에 내가 갈거야 반복적으로 공간을 인쇄하려면, 반복적으로 해시하고 갭 다음 오른쪽 피라미드에 대한 해시, 다음, 마지막으로, 새로운 라인은 다음 행을 시작합니다. 즉, 우리는 메시지가 표시했습니다 입력을위한 사용자. 우리는 그것이 유효하다고 확인했습니다. 그리고 우리는 피라미드를 그려했습니다. 그래서 마리오가 성공적으로 수 피라미드를 등반. 내 이름은 Zamyla입니다. 그리고 이것은 CS50입니다.