>> [音楽再生]
>> 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は必ずしも必要ではありません。
しかし、それは主がなされていることを意味しません。
私の名前はロブであり、これはマリオだった。
>> [音楽再生]