[Музика грає] ROB BOWDEN: Це я, Роб. Давайте розглянемо хау для реалізації Маріо. Тому перше, що ми повинні зробити, це запропонує користувачеві для входу. Ми повинні запитати їх, як саме високий піраміда повинна бути. Так от, ми бачимо, що ми робимо Висота = GetInt. І пам'ятайте, що функція GetInt реалізується в CS50 бібліотека, так нагорі, ми повинні не забудьте # включають cs50.h. Так чому ми повинні це загорнуті в зроби час циклу? Ну, ми також повинні пам'ятати, що введення користувача повинен бути дійсним. Що є неприпустимим вхід? Ну PSET специфікації зокрема, йдеться що висота менше 0 або більше ніж 23 є недійсним. Так тут, ми бачимо, що ми визначаємо постійна називається MAX_HEIGHT з значення 23. Це робити-поки петля буде продовжувати час висота менше 0 або MAX_HEIGHT є менше, ніж висота, тобто 23 менше, ніж висота. Так що, якщо висота становить 24 або більше, ми збирається продовжити цикл. Пам'ятайте, що робити-то час петлі досить корисними, коли ми хочемо отримати користувальницький введення, а потім перевірити його, так як ми неминуче повинні запитати користувача на хоча б один раз для значення вони хочуть. Тому, як тільки у нас є свій вклад, ми тепер можна побудувати піраміду. Одна з вивертів цієї проблеми є діяльність що ми повинні почати у верхній частині піраміда. Ви не можете Printf дно піраміда, а потім побудувати свій шлях. Отже, давайте подивимося на прикладі від PSet спец. Ми бачимо тут, що, коли ми входимо у висоту 8, на саме дно піраміда друкує дев'ять хешей. На рівень вище від відбитків один пробіл і вісім хеши. На рівень вище від тобто два простору і не сім хеши, всю дорогу, поки ми дістатися до вершини піраміди, яка є вісім рівнів вгору, який друкує сім простору і два хешей. Так що пам'ятайте, що ми повинні зробити це верхній рівень в першу чергу. Тут ми ітерації від верхнього рівня, ряд 8, продовжуючи поки рядок не досягне 0. Так скільки прогалин чи потрібна нам друкувати в цьому верхньому ряду? Ми надрукували сім просторів і два хешей. Таким чином, кількість просторів ми хочемо, рядок, що були на мінус 1. Якщо верхній рядок 8, 8 мінус 1 дає нам сім місць. Тоді у нас є цикл, який буде друкувати з кожного простору по одному. Тому, коли простору є 7, ця петля сім разів, друк сім окремих просторів. Так що тепер нам потрібно роздрукувати ці хеши в кінці піраміди. Так от, нам потрібно обчислити кількість хешей. Ми бачимо, що ми робимо висоту мінус рядок плюс 2. Так як же ми отримуємо, що? Слід пам'ятати, що вершина піраміди є рядок 8, а висота 8. І ми як і раніше друкуються два хешей. Так, принаймні, 8 мінус 8 плюс 2 дає нам правильну відповідь. І потім розглянути дно піраміди, ряд 1. Зростання мінус рядок дасть нам 7, і то плюс 2 дає нам дев'ять хешей, а це саме число з хеш, що ми друкували. Так це і є формула ми хочемо використовувати для розрахунку кількості хеши в кожному рядку. За допомогою цього телефону, ми тоді є інший цикл, дуже схоже на цикл, який ми використовували для просторів, , Який виконує ітерацію кількість хешей раз Друк одного окрошка кожного разу. На верхньому ряду, що буду надрукувати два хешей. На нижньому ряду, що буду роздрукувати дев'ять хешей. І один з одним ряд друкуватиме кожен кількість модулів, між ними. А потім в самому кінці, ми повинні друкувати нашу нову лінію, щоб перейти до наступного гребти в піраміді. Нарешті, ми повинні друкувати нову лінію в кінці рядка для того, щоб перейти до наступного ряд піраміди. І наприкінці нашої програми, у нас є повернення 0. Відповідно до PSet специфікації, повернення 0 не є строго обов'язковим. Але це означає, що основною робиться. Мене звуть Боб, і це був Маріо. [Музика грає]