ZAMYLA CHAN：それは、Zamyla私です。
マリオ今日は、我々がすることになるだろう マリオための半ピラミッドを描きます
登るします。
>> それでは、私たちの話をしましょう to-doこの問題のための。
私たちは希望するつもりです 要求し、検証します
方法の有効な入力のためのユーザ 高い彼らはマリオのピラミッドになりたいです。
そして、我々はそれを描画するつもりです。
それではを促すとして始めましょう そのユーザーに入力を検証します。
>> 私たちは、を利用することができます CS50ライブラリ関数
ことを保証しますint型を取得 ユーザは、整数を入力します。
任意の正の整数、負 整数は、数0はすべての公正なゲームです。
そうしないと、ユーザーはに求めるメッセージが表示されます それらの入力有効な整数まで再試行してください。
GET intはない今が、 私たちのために多くの作業
ことを確保する上で ユーザーは、私たちに整数を与えます、
我々はまだいくつかを適用する必要があります その上で追加の制約。
結局のところ、我々はマリオクライミングを持つことができません 12負の高さの半分ピラミッド。
>> それに加えて、 問題の仕様
我々は唯一できることを言います マリオは登るできるようにします
0と23の間の高さのピラミッド。
[OK]を、ので、それは私たちに必要なことを意味し 継続的にユーザーを促します
私たちに有効なを与えるために 数だけ続けます
彼らは私たちに有効な高さを与えてくれた後に。
我々はそれをどのように行うのですか？
>> まあ、連続プロセスは、私たちを与えます loops--のアイデアは、何かをして
繰り返し。
しばらくとしてCにおける一つのループ ループそれは継続的になります
限り、ル​​ープの本体を実行します 与えられた条件がtrueに評価されます。
すぐにその条件として、 falseと評価され、
プログラムは、に進みます 何がその後に来ます。
だからループが一つの方法でありながら、 継続的に私たちのことを確認
有効な入力をユーザーに促します。
そして、彼らは私たちに有効な入力を与えると、 我々は次に来るものは何でもに進みます。
私たちは、私たちがお願いするつもりだことを知っています 少なくとも一度入力するためのユーザー。
だから今、私たちは姉妹に来ます do-whil​​e文でループ、しばらく。
>> ループが実行されながら行います ループの本体に少なくとも一回。
だから、条件をチェックせずに、 それは、ループの本体を実行します。
そして見るために条件をご確認ください それは自分自身を繰り返す必要があるかどうか。
これは、ときに便利です 私たちは、ユーザーの入力を検証しています。
我々は、我々が行っていることを知っています 少なくとも一度、それらを依頼します。
だから、ループかもしれませんが行います このようなものを見て。
私たちは、整数nを持っています。
そして、DOの内側 whileループ、我々すぐに
整数の入力をユーザーに求めます。
nが無効であるなら、私たちは彼らを促します 何度も何度も何度も彼らまで
私たちはその有効な整数を与えます。
最後に、一度nは有効な入力である、我々はよ 私たちのプログラムの残りの部分に進みます。
>> それでは、スペックやチェックに戻りましょう 何の有効な入力のための条件
なるだろう。
有効な高さがしようとしています 0から23、包括間です。
だから、無効な高さをしようとしています 0未満または23以上であること。
だから設計することを忘れないでください あなたの条件慎重に、
条件を知ります んがforループ
nが無効である間でなければなりません。
さて、これはあることを行っていません 単純な単一ブール式。
私たちは、結合する必要があるとしています 二つの異なる表現
私達の全体の状態を作るために。
>> それでは、ちょうど私がきた真理値表を見てみましょう すでにあなたに私たちがしているヒントを与えられました
2ブール値を扱うことになるだろう。
だからここに私の真理値表です 2 Booleans--ブール1と2を持っています。
だから我々は、評価するためのオプションを持っています bool1とするbool2またはbool1またはするbool2。
両方の場合にのみtrueになります ブール値は、すべてのに対し、trueと評価します
またはの1限り、trueになります 2ブール値がtrueに評価されます。
[OK]を、ので、時間を割いて、これを一時停止 この真理値表を映像とダイジェスト。
私は右ここに待っていることでしょう。
あなたが戻ってくるときに、参照してください。 あなたは、つなぎ合わせることができるかどうか
あなたのためのブール式 n個の条件は無効に入力されています。
>> だから今我々が持っていること 有効なユーザ入力、してみましょう
先に行くとどのように我々の話を 半分のピラミッドを描くかもしれません。
ここでは、この単純なテキストエディタで、 私は左揃えピラミッドを描きました。
しかし、我々は我々が必要であることを知っています 右詰めするピラミッド。
だから私はこれをどのように行うのでしょうか？
まあ、私がプッシュしようとする可能性があり 側に至るまで
ほんの少しを置くことによって、 間の文字。
そして、次のために ラインは、私が置くつもりです
いくつかのより多くの文字が、それに沿ってプッシュします そして、further--ようにとそうforth--
私は右揃えピラミッドを持つまで。
だから我々は右の整列ピラミッドを持っていますが、 それはドットでそれほど大きくは見えません。
しかし、我々はまだしたいです その素敵な間隔を維持します。
だから私は、文字通りに行きますよ いくつかのスペースを挿入します。
>> 代わりに3つのドット、I'LLの 1、2、3つのスペースを置きます。
二行目。
私は、1つ、2つのスペースを入れます。
そして、最後から二番目に ライン、ちょうど1スペース。
そして、ここで私は右揃えピラミッドを持っています。
テキストの例をやってから、 エディタ、我々はパターンのためのアイデアを持っています
我々は半分のピラミッドを描画するために使用しますことを。
すべての行のために、私たちは何をしました 我々はいくつかのスペースを入力され、
そして、次に入力されたいくつかの ハッシュし、次に入力されました
Enterキー、その 新しい行を作成しています。
だから今、私たちはそれを持っていることを、行きましょう さらに一歩とパターンを見つけます。
>> だから私はのために、と言うつもりです この例の関心、
私たちは8の高さを扱っています。
最初の行には2を持ってしようとしています 7スペースを次のハッシュ。
second-- 3ハッシュ、6スペース。
第三row-- 4ハッシュ、5 spaces--ようになど
我々は、n行目に到達するまで。
それでは、私はn番目の行をお願いします、 どのように多くのハッシュ我々が持ってしようとしています
そして、どのように多くのスペース？
だから、把握するのはあなた次第です どのように多くのハッシュを表現する式
そして、のためにどのように多くのスペースを必要としています n番目の行は、いくつかの高さを持っている場合。
>> 今、あなたはこれを考え出すしているとき、 あなたはインデックスを作成しているか注意してください。
私はこれの意味することです 日常生活の中で私たちのすべて
通常1により、カウントを開始します。
しかし、CS50およびコンピューター・サイエンスの 一般的に、我々は0索引化されています。
だから、最初の行は次のようになります 1とは対照的に、0のn個。
あなたがしている場合は、この点に注意してください あなたのパターンを把握しようとしています。
だから今のは、どのように戻ってみましょう 私たちは、ピラミッドを描くつもりです。
すべての行については、我々はしたいとしています スペースを印刷し、ハッシュを印刷し、
して、新しい行を印刷します。
ここにヒントがあります すべての行」を「単語。
Cでは、我々は、構造を持っています forループと呼ばれます、
から構成されています 初期化、条件、更新、
ループの本体。
>> こんにちは、私が言いたかったと言います 世界、50回、私のforループ
このようになります。
私は0に私の整数を初期化します。
条件は、私が50未満であることです。
そして私のアップデートはちょうどです 私は1つによってたびにインクリメントします。
また、ループを使用することができます 物事を繰り返し処理します。
私たちが持っていないどのようにここで注意してください ハード番号をコード化され、
むしろ変数を置い 代わりに、条件に高さ。
だから私はここでやっている私は反復よさ ピラミッドのすべての行を超えます。
私はそれぞれのために何かを行うことができます 私のループの本体内部行。
>> 私たちは、内部の何をしています ループの本体？
まあ、我々はすでに言ったように、我々は印刷しています スペースと我々はハッシュを印刷しています
私たちは、新しい行を印刷しています。
forループだから私の外 このようになります。
私はすべての行を反復します ピラミッドの、使用して、
変数として、この場合には、高さ それはピラミッドの高さを格納します。
そのループの本体内部には、私はよ 繰り返しスペースを印刷しようとして、プリント
繰り返しハッシュ、 して、新しい行を印刷します。
>> だから今、その概念のすべてを使用して、 私は、このウォークスルーでは約話をしました
あなたが促すことができるはずです ユーザは、入力のために、その入力を検証します
そしてその後、半ピラミッドを描きます。
>> 私の名前はZamylaであり、これはCS50です。