[音楽再生] ROBボーデン:それは、ロブ私です。 それではどのように見ていきましょう マリオを実装します。 だから我々がする必要がある最初の事はある ユーザーに入力を促す。 私たちは、正確にどのようにそれらを求める必要がある 背の高いピラミッドがある必要があります。 だからここに、我々は我々がやっている参照してください。 高さ= GetIntで。 そして、覚えているGetIntで機能 CS50に実装されています ライブラリには、その最上部まで、私たちのことを行う必要があり #に覚えcs50.h.を含める では、なぜ我々はこの包まれています DO-whil​​eループ内の? さて、私たちもそれを覚えておく必要があり ユーザーの入力が有効である必要があります。 無効な入力とは何ですか? よくPSET仕様は、具体的に述べています その高さが0より小さい以上 無効である23より。 だからここまで、我々は我々が定義していることがわかります とMAX_HEIGHTと呼ばれる定数 23の値。 このDO-whil​​eループはしばらく継続する 高さが0より小さいかMAX_HEIGHTです ことを意味する高さよりも小さい 図23は、高さよりも低い。 高さが24以上であればそこで、我々はしている ループし続けるつもり。 覚えておいてそれを行う-whil​​eループはかなりある 役立つ私たちは、取得したいときはいつでも ユーザーの入力して以来、それを検証する 我々は必然的にユーザーに確認する必要があります 少なくとも一度は彼らが望む値。 だから我々は、我々がそれらの入力ができたら 今ピラミッドを構築することができます。 この問題セットのトリックの一つである 私達はの上部に開始する必要があること ピラミッド。 あなたはの底のprintfすることはできません その後、ピラミッド、あなたの方法を構築する。 それでは、例を見てみましょう PSETスペックから。 我々は、高さを入力したときにことがわかり 8の、の一番下 ピラミッドは9ハッシュを出力します。 それから1つ上のレベルのプリント 1スペースと8ハッシュ。 それから1つ上のレベルは2のスペースで、 7ハッシュ、すべての方法まで、私たち である、ピラミッドの頂点に到達 7を印刷し、最大8つのレベル、 スペースと2ハッシュ。 だから我々はしなければならないことを覚えている 最初にこのトップレベルを行う。 ここでは、繰り返しをしている トップレベル、行8、継続 行が0になるまで。 我々はそのようにどのように多くのスペースが必要でした その一番上の行に印刷する? 我々は7スペースを印刷 そして2ハッシュ。 だから、私たちが望むのスペースの数です マイナス1にあった行。 一番上の行は8,8マイナスの場合 1は私たちに7のスペースを提供します。 その後、我々が印刷されたループを持っている 当時の各スペースの1つ。 そうスペースは、このループ7のとき 7回、印刷 7個々のスペース。 だから今我々はこれらのハッシュを印刷する必要がある ピラミッドの最後に。 だからここに、我々は計算する必要が ハッシュの数。 我々は、高さをやっていることがわかります マイナス行プラス2。 では、どのようにそれを手に入れたの? 覚えておいて、そのピラミッドの頂点 行8は、高さが8である。 そして我々はまだ2ハッシュを印刷した。 だから、少なくとも、8マイナス8プラス 2は私たちに正しい答えを提供します。 して、一番下を検討 ピラミッドの、行1。 高さマイナスの行は私たちに7を与えると、 その後、プラス2は私達に9ハッシュを与え、 これを正確に数値です の我々は印刷されていることをハッシュします。 だから、これは我々がする数式です 数を計算するために使用 各行のハッシュ。 その番号を使用して、我々はその後、別のものを有する と非常に類似したループのための 我々はスペースのために使用されるループのため、 ハッシュ時間の反復処理番号 つのハッシュを毎回印刷。 一番上の行に、だろうと 2ハッシュを印刷します。 下段に、だろうと 9ハッシュを印刷します。 互いの行は、すべての印刷されます その間のハッシュの数。 して、一番最後に、私たちのことを行う必要があり 次のに行くために私たちの新しい行を印刷 ピラミッド内の行。 最後に、新しい行を印刷する必要がある の順に行の終わりに 次の継続 ピラミッドの列。 そして、我々のプログラムの最後に、 我々はリターン0を持っている。 PSET仕様、リターンに従って 0は必ずしも必要ではありません。 しかし、それは主がなされていることを意味しません。 私の名前はロブであり、これはマリオだった。 [音楽再生]