[MUSIC CHƠI] ROB Bowden: Đó là tôi, Rob. Chúng ta hãy đi bộ qua như thế nào để thực hiện Mario. Vì vậy, điều đầu tiên chúng ta cần làm là nhắc nhở người dùng cho đầu vào. Chúng ta cần phải yêu cầu họ chính xác như thế nào cao kim tự tháp nên được. Vì vậy, ở đây, chúng ta thấy chúng ta đang làm chiều cao = getInt. Và hãy nhớ rằng một chức năng getInt được thực hiện trong CS50 thư viện, do đó lên hàng đầu, chúng ta cần phải nhớ # bao gồm cs50.h. Vì vậy, tại sao chúng ta có điều này được bao bọc trong một vòng lặp do-while? Vâng, chúng tôi cũng cần phải nhớ rằng đầu vào của người dùng phải có giá trị. Một đầu vào không hợp lệ là gì? Cũng spec pset cụ thể nói rằng một chiều cao nhỏ hơn 0 hoặc lớn hơn hơn 23 là không hợp lệ. Vì vậy, ở đây, chúng ta thấy rằng chúng ta đang xác định một hằng số gọi là MAX_HEIGHT với giá trị 23. Vòng lặp do-trong khi điều này sẽ tiếp tục trong khi chiều cao nhỏ hơn 0 hoặc MAX_HEIGHT là ít hơn chiều cao, có nghĩa là 23 là ít hơn so với chiều cao. Vì vậy, nếu chiều cao là 24 hoặc cao hơn, chúng tôi sẽ tiếp tục vòng lặp. Hãy nhớ rằng làm-trong khi vòng là khá hữu ích bất cứ khi nào chúng ta muốn có được đầu vào người dùng và sau đó xác nhận nó, vì chúng tôi chắc chắn cần phải yêu cầu người dùng tại một lần ít nhất là cho các giá trị mà họ muốn. Vì vậy, khi chúng tôi có đầu vào của họ, chúng tôi bây giờ có thể xây dựng các kim tự tháp. Một trong những thủ đoạn của vấn đề này là thiết lập rằng chúng ta phải bắt đầu ở đầu kim tự tháp. Bạn không thể printf dưới cùng của kim tự tháp và sau đó xây dựng theo cách của bạn. Vì vậy, chúng ta hãy nhìn vào ví dụ từ các spec pset. Chúng ta thấy ở đây là khi chúng ta bước vào một chiều cao 8, dưới cùng của kim tự tháp in chín băm. Một mức so với bản in mà một không gian và tám băm. Một mức so với đó là hai không gian và bảy băm, tất cả các cách cho đến khi chúng tôi đến được với các đỉnh kim tự tháp, đó là tám cấp lên, mà in bảy không gian và hai băm. Vì vậy, hãy nhớ rằng chúng ta phải làm cấp cao nhất đầu tiên này. Ở đây chúng ta đang lặp lại từ cấp cao nhất, hàng 8, tiếp tục cho đến khi hàng đến 0. Vì vậy, bao nhiêu không gian đã làm chúng tôi cần in trong đó hàng đầu? Chúng tôi in bảy không gian và hai băm. Vì vậy, số lượng không gian chúng tôi muốn là hàng mà là trên trừ đi 1. Nếu hàng đầu là 8, 8 trừ 1 cung cấp cho chúng tôi có bảy gian. Sau đó chúng ta có một vòng lặp sẽ ra mỗi một không gian tại một thời điểm. Vì vậy, khi không gian là 7, vòng lặp này bảy lần, in ấn bảy không gian cá nhân. Vì vậy, bây giờ chúng tôi cần phải in những băm ở cuối của kim tự tháp. Vì vậy, ở đây, chúng ta cần phải tính toán số lượng băm. Chúng ta thấy rằng chúng tôi đang làm chiều cao hàng trừ cộng với 2. Vì vậy, làm thế nào chúng ta có được điều đó không? Hãy nhớ rằng trên cùng của kim tự tháp là hàng 8, và chiều cao là 8. Và chúng tôi vẫn in hai băm. Vì vậy, ít nhất, 8 trừ 8 cộng 2 cho chúng ta câu trả lời đúng. Và sau đó xem xét phía dưới của kim tự tháp, hàng 1. Hàng cao trừ đi sẽ cho chúng ta 7, và sau đó cộng thêm 2 cho chúng ta chín băm, đó chính là số của băm mà chúng tôi in. Vì vậy, đây là công thức chúng ta muốn sử dụng để tính toán số băm trong mỗi hàng. Sử dụng con số đó, chúng ta có một cho vòng lặp, rất giống với cho vòng mà chúng tôi sử dụng cho các không gian, đó lặp số băm lần in một băm duy nhất mỗi lần. Trên hàng đầu, mà sẽ thấy in hai băm. Trên hàng dưới cùng, đó sẽ thấy in chín băm. Và mỗi hàng khác sẽ in tất cả các số băm ở giữa. Và sau đó vào cuối, chúng ta cần phải in dòng mới của chúng tôi để đi đến tiếp theo hàng trong kim tự tháp. Cuối cùng, chúng ta cần phải in dòng mới ở cuối hàng để tiếp tục tiếp theo hàng của kim tự tháp. Và vào cuối chương trình của chúng tôi, chúng tôi có sự trở lại 0. Theo spec pset, sự trở lại 0 là không thực sự cần thiết. Nhưng nó biểu thị rằng chính được thực hiện. Tên tôi là Rob, và điều này là Mario. [MUSIC CHƠI]