ZAMYLA CHAN：それはZamyla、-私です。
今日は、実装するつもりです 我々はマリオを描くマリオ、
彼のために完全なピラミッドがオーバージャンプします。
分解してみましょう この問題のサブタスク。
>> まず、ユーザにプロンプ​​トを表示したいです ピラミッドの高さ。
そして、我々は確認します その入力が有効です。
そして、我々はするつもりです ピラミッドを描きたいです。
>> それでは、プロンプトについて話しましょう ユーザ入力を検証します。
それはのように見えるかもしれません この、それがdo-whil​​eループ
以下のためにユーザに促します 整数とだけ繰り返し
その整数は無効である場合。
したがって、この条件は何をすべきですか？
>> このために、のに戻ってみましょう 仕様へ。
まあ、スペックは任意の有効なことを教えてくれる 高さは、0と23との間になるだろう
包括的。
それでは、それは無効なことを意味し 高さが0未満になるだろう
または23以上。
>> だから今、私たちの情報を持っていること、 私たちの状態を設計してみましょう。
しかし、我々は注意する必要があり、 今、私たちが持っているので、
私たちは評価したい2ブール値。
>> ここで私はあなたを提供してきました 真理値表。
これは、私たちは2を取ることができます ブール値、ブール1および2。
そして、我々はbool1のいずれかを評価することができます そして、するbool2またはbool1またはするbool2。
>> だから違いは何ですか 間ととや？
まあ、bool1とするbool2意志 場合にのみ、真と評価
両方のブール値に該当する場合、 または操作に対し、
のいずれか1つがtrueになります ブール値または両方が真です。
念頭に置いてこれにだから、 あなたが把握できるかどうかを確認
何のために適切な条件 無効なnのあなたがdo-whil​​eループ
なるだろう。
>> それにより、我々は、プロンプトが表示され、検証しました ピラミッドの高さのためのユーザ
彼らが望むこと。
だから今、それは私たち次第です ピラミッドを描画します。
このため、完全なピラミッド 問題は少しになります
このような、我々は左のピラミッドを持っている場合に、 いくつかのギャップ、右ピラミッド。
それでは、少しこれを打破しましょう​​。
>> 私は私のテキストエディタに行く場合は、ここで私がしました 私たちに左揃えのピラミッドを描かれました。
しかし、それはしないでしょう。
私たちがやりたいことは、私たちがしたいです 最初右揃えピラミッドを作成します。
だからプッシュする、これを行うには 側面に沿って私のハッシュ、
私はいくつかの文字を入れるつもりです ただこれらのドット、間インチ
それから私は、上の2つを置くつもりです 次の行、およびその行の1。
だから、ここで私が持っています 右揃えピラミッド。
>> その後、私はするつもりです 一番上の行に戻ります
そしてその隙間に入れます 二つのスペースは、仕様ごとに、です。
それから私はに記入するつもりです ピラミッドの向こう側。
私は書いて、2行目に行くつもりです 2ギャップのためのスペースと、その後2
ハッシュ。
戻る3行目に、二つのスペース ギャップと3ハッシュのために。
そして、最後に、二つのスペース ギャップと4ハッシュのために。
だから、何をフル ピラミッドは次のようになります。
>> もちろん、私たちは望んでいません 方法で、これらのドット。
だから我々は、これらを交換するつもりです 中にいくつかのスペースを置くことによってドット。
一つ、二つ、最初の行に3。
一、第二の上の2つ。
そして、3行目の1。
だから、これは、我々場合はどうなるかであります ちょうど完全なピラミッドを作りたかったです、
私たちのテキストエディタで、言います。
>> それでは、これをみましょう、 パターンを理解し、
そしていくつかの擬似コードにそれを変換します。
ピラミッドの各行のために、私たちはしたいです 左のピラミッドを印刷し、その後、
ギャップ、右ピラミッド。
左のピラミッドのために、私たちは印刷します スペースの必要量、
ハッシュが続きます。
その後、我々は、ギャップを印刷します ちょうど2つのスペース毎回です。
そして右のピラミッドでは、我々は印刷します ハッシュの必要数。
>> 2番目の行では、我々が行いました まったく同じ方法。
私たちは、左のためのスペースを印刷します ピラミッド、必要量
ハッシュ、ギャップ、二つのスペース、および その後、右のピラミッドのためのハッシュ。
>> パターンに取り組むみましょう 左ピラミッドのため。
私が持っていた場合は、目的のために この例の、高さ
によって要求された8の ユーザーは、私の最初の行
1つのハッシュと7のスペースを持っているでしょう。
私の2行目は持っているだろう 2つのハッシュ、6スペース。
第三行、3ハッシュ、5つのスペース。
あなたは、おそらくこれを行うことができます 8の高さのために、自分自身
そして、どのように多くの行ごとに決定 ハッシュとどのように多くのスペースが必要。
しかし、私たちがやりたいことはあります 我々はそれ抽象化したいです。
だから私は、任意のn行をお願いし、どのように多くの ハッシュと、私たちはどのように多くのスペースが必要なのでしょうか？
>> さて、あなたが決定するように どのように多くのハッシュのためのパターン
そしてあなたが必要とするどのように多くのスペース 所定の高さのための任意のn行目、
注意してくださいすることを忘れないでください あなたがインデックス化しているかの。
私はこれの意味することは、日常でのことです 人生私たちのほとんどは、1によってカウントを開始します。
だから、最初の行は、ナンバーワンになります。
2行目は、行になります 数2、というようになど。
>> しかし、コンピュータサイエンスのと CS50、我々はゼロインデックスが付けられます。
だから我々は、実際にはゼロからカウントを開始します。
だから、最初の行には、希望 行番号はゼロです。
2行目 行番号1になります。
だから私はのための8の高さを有していた場合 私のピラミッド、n個の最後の値
実際に7はない8であろう。
>> だから、これについては注意してください。
あなたが決定しているときと注意してください あなたのゼロインデックスかどうか、あなたのパターン
または1インデックス
>> OK。
だから今我々が持っていること 左ピラミッドのためのパターン、
我々は決定する必要があります ギャップのためのパターン。
幸いなことに、これは本当に簡単です。
それはちょうど常に2つのスペースです。
>> だから今、私たちは右のパターンに進みます。
最初の行は1つのハッシュを持つことになります。
2行目、2。
第三行、3。
だから上など。
だからもう一度、任意の抽象のために決定 nは、どのように多くのハッシュ任意の高さ
そして、どのように多くのスペース 各行が持つべきです。
>> OK。
だから我々は知っている各行私たちのために いくつかのプロセスを実施する必要があります。
我々はそれをどのように行うのですか？
さて、私たちはループ構造のために使用し、 初期設定で構成される、
条件、および更新。
ループを使用することができるため 処理を繰り返します。
>> だから、私はそれが挨拶したいと言います 世界50回、その後、私のforループ
ここで、このようになります 私はゼロに私の変数を初期化します。
条件は、iが50未満であることです。
そして、この更新プログラムは、ということです 1度にインクリメント。
だから、これはすることであろう何をするのか 行で、Hello Worldの50回を印刷します。
>> 今、私は反復したかったと言います ピラミッドの高さを超えます。
そして、代わりのハードコーディング 条件の一部の値が、
私は、変数の高さを使用しています。
だから、これは何をするかの反復であります 高さはそれぞれの行を超えます。
そして、私は内側に何かを行うことができます そのループの本体の。
>> 我々は何をすべきかをしたいですか ループの本体内部？
さて、私たちは私たちが望む、前に示したように スペースやハッシュを印刷します
左ピラミッドし、印刷のために その後、二つのスペースとハッシュを印刷します。
だから我々はすでにそれを考え出しました。
だから我々は埋めるために開始することができます 私たちのプログラムで、より多くの。
>> ここで私は、forループの外側を持っています ピラミッド内のすべての行を反復処理。
そして、その体内に私が行きますよ 繰り返しスペースを印刷するには、
繰り返しハッシュし、その後、ギャップ、 し、右ピラミッドのためにハッシュし、
新しいし、その後、最終的には、 行は次の行を開始します。
>> それにより、我々は、プロンプトが表示されました 入力のためのユーザー。
私たちは、それが有効だと確信して作りました。
そして、我々は、ピラミッドを描きました。
だから、マリオが正常にすることができます ピラミッドに登ります。
>> 私の名前はZamylaです。
そして、これはCS50です。