[MUSIC SPIEL] ROB BOWDEN: Es ist mir, Rob. Lassen Sie uns durch, wie gehen Mario zu implementieren. Das erste, was wir tun müssen, ist fordert den Benutzer zur Eingabe. Wir müssen sie fragen, wie genau die Pyramide hoch sein sollte. So, hier sehen wir, wir tun height = GetInt. Ein Und denken Sie daran, dass die Funktion GetInt in der CS50 umgesetzt Bibliothek, so bis oben, müssen wir denken Sie daran, # include cs50.h. Also warum haben wir diese gewickelt in einer do-while-Schleife? Nun, wir müssen auch daran erinnern, dass Eingabe des Benutzers gültig sein. Was ist eine ungültige Eingabe? Nun, die pset spec sagt ausdrücklich dass eine Höhe kleiner als 0 oder größer als 23 ist ungültig. Also hier sehen wir, dass wir die Definition eine Konstante genannt MAX_HEIGHT mit der Wert von 23. Dieser do-while-Schleife wird weiterhin während Höhe kleiner als 0 ist oder MAX_HEIGHT weniger als der Höhe, was bedeutet, dass 23 ist kleiner als die Höhe. Also, wenn Höhe beträgt 24 oder mehr, wir sind werde weiterhin Looping. Beachten Sie, dass do-while-Schleifen sind ziemlich hilfsbereit, wenn wir wollen, um Benutzereingabe und dann zu validieren, da wir zwangsläufig müssen die Benutzer bei Fragen mindestens einmal für den Wert, den sie wollen. Also, sobald wir ihren Input, wir können jetzt bauen die Pyramide. Einer der Tricks des Problems gesetzt ist dass wir an der Spitze starten die Pyramide. Sie können den Boden nicht die printf Pyramide und dann bauen Sie sich. Also schauen wir uns am Beispiel von der pset spec. Wir sehen hier, dass, wenn wir eine Höhe eingeben von 8, die ganz unten auf der Pyramide druckt neun Hashes. Ein Level aus, dass Drucke ein Leerzeichen und acht Hashes. Ein Level ist, dass aus zwei Räumen und sieben Hashes, den ganzen Weg, bis wir an die Spitze der Pyramide, das ist acht Stufen hinauf, die sieben druckt Plätze und zwei Hashes. Also denken Sie daran, dass wir zuerst tun diese Top-Niveau. Hier sind wir von der Iteration Top-Level-, Reihe 8, weiter bis Zeile 0 erreicht. Also, wie viele Räume brauchten wir in dieser oberen Zeile zu drucken? Wir druckten sieben Räume und zwei Hashes. So ist die Zahl der Räume, die wir wollen, ist die Zeile, die auf minus 1 waren. Wenn die obere Zeile 8, 8 minus 1 gibt uns sieben Räume. Dann haben wir eine Schleife, die gedruckt werden aus jedem Raum ein zu einer Zeit. Also, wenn Räume 7 ist, diese Schleife siebenmal Druck sieben einzelne Räume. So, jetzt müssen wir diese Hashes ausdrucken am Ende der Pyramide. Also hier müssen wir berechnen die Anzahl von Hashes. Wir sehen, dass wir tun, Höhe minus Reihe plus 2. Also, wie kommen wir dazu? Denken Sie daran, dass die Spitze der Pyramide Reihe 8 ist, und die Höhe 8. Und wir haben noch zwei gedruckte Hashes. So zumindest, 8 minus 8 Plus 2 gibt uns die richtige Antwort. Und dann erwägen, die unten der Pyramide, Reihe 1. Höhe minus Zeile wird uns 7 und dann plus 2 gibt uns neun Hashes das ist genau die Anzahl von Hashes, dass wir gedruckt. Das ist also die Formel, die wir wollen verwenden, um die Zahl zu berechnen Hash-Werte in jeder Zeile. Mit Hilfe dieser Nummer, dann haben wir ein weiteres for-Schleife, ähnlich der for-Schleife, die wir für die Räume verwendet wird, dass läuft Anzahl der Hashes Zeiten Drucken einer einzelnen Hash jeder Zeit. Auf der oberen Reihe, das wird drucken zwei Hashes. Auf der unteren Reihe, das wird drucken neun Hashes. Und jede zweite Zeile wird jeder drucken Anzahl der Hashes dazwischen. Und dann am Ende, müssen wir drucken unsere neue Linie, um zum nächsten gehen Zeile in der Pyramide. Schließlich brauchen wir, um die neue Zeile zu drucken am Ende der Reihe, um weiter zum nächsten Reihe der Pyramide. Und am Ende unseres Programms, wir haben die return 0. Gemäß der pset spec, die Rückkehr 0 ist nicht unbedingt notwendig. Aber es muss bedeuten, dass die Haupt ist getan. Mein Name ist Rob, und das war Mario. [MUSIC SPIEL]