1 00:00:00,000 --> 00:00:00,982 2 00:00:00,982 --> 00:00:11,293 >> [音楽再生] 3 00:00:11,293 --> 00:00:13,580 >> ROBボーデン:それは、ロブ私です。 4 00:00:13,580 --> 00:00:16,540 それではどのように見ていきましょう マリオを実装します。 5 00:00:16,540 --> 00:00:21,040 だから我々がする必要がある最初の事はある ユーザーに入力を促す。 6 00:00:21,040 --> 00:00:24,440 >> 私たちは、正確にどのようにそれらを求める必要がある 背の高いピラミッドがある必要があります。 7 00:00:24,440 --> 00:00:27,110 だからここに、我々は我々がやっている参照してください。 高さ= GetIntで。 8 00:00:27,110 --> 00:00:32,479 そして、覚えているGetIntで機能 CS50に実装されています 9 00:00:32,479 --> 00:00:38,060 ライブラリには、その最上部まで、私たちのことを行う必要があり #に覚えcs50.h.を含める 10 00:00:38,060 --> 00:00:41,360 >> では、なぜ我々はこの包まれています DO-whil​​eループ内の? 11 00:00:41,360 --> 00:00:45,080 さて、私たちもそれを覚えておく必要があり ユーザーの入力が有効である必要があります。 12 00:00:45,080 --> 00:00:46,910 無効な入力とは何ですか? 13 00:00:46,910 --> 00:00:51,460 よくPSET仕様は、具体的に述べています その高さが0より小さい以上 14 00:00:51,460 --> 00:00:54,530 無効である23より。 15 00:00:54,530 --> 00:00:59,030 >> だからここまで、我々は我々が定義していることがわかります とMAX_HEIGHTと呼ばれる定数 16 00:00:59,030 --> 00:01:00,750 23の値。 17 00:01:00,750 --> 00:01:06,380 このDO-whil​​eループはしばらく継続する 高さが0より小さいかMAX_HEIGHTです 18 00:01:06,380 --> 00:01:11,870 ことを意味する高さよりも小さい 図23は、高さよりも低い。 19 00:01:11,870 --> 00:01:15,390 高さが24以上であればそこで、我々はしている ループし続けるつもり。 20 00:01:15,390 --> 00:01:18,300 覚えておいてそれを行う-whil​​eループはかなりある 役立つ私たちは、取得したいときはいつでも 21 00:01:18,300 --> 00:01:22,070 ユーザーの入力して以来、それを検証する 我々は必然的にユーザーに確認する必要があります 22 00:01:22,070 --> 00:01:25,010 少なくとも一度は彼らが望む値。 23 00:01:25,010 --> 00:01:28,500 >> だから我々は、我々がそれらの入力ができたら 今ピラミッドを構築することができます。 24 00:01:28,500 --> 00:01:31,940 この問題セットのトリックの一つである 私達はの上部に開始する必要があること 25 00:01:31,940 --> 00:01:32,750 ピラミッド。 26 00:01:32,750 --> 00:01:36,800 あなたはの底のprintfすることはできません その後、ピラミッド、あなたの方法を構築する。 27 00:01:36,800 --> 00:01:38,830 それでは、例を見てみましょう PSETスペックから。 28 00:01:38,830 --> 00:01:41,530 29 00:01:41,530 --> 00:01:45,430 >> 我々は、高さを入力したときにことがわかり 8の、の一番下 30 00:01:45,430 --> 00:01:48,660 ピラミッドは9ハッシュを出力します。 31 00:01:48,660 --> 00:01:52,990 それから1つ上のレベルのプリント 1スペースと8ハッシュ。 32 00:01:52,990 --> 00:01:58,250 それから1つ上のレベルは2のスペースで、 7ハッシュ、すべての方法まで、私たち 33 00:01:58,250 --> 00:02:03,050 である、ピラミッドの頂点に到達 7を印刷し、最大8つのレベル、 34 00:02:03,050 --> 00:02:06,000 スペースと2ハッシュ。 35 00:02:06,000 --> 00:02:08,810 だから我々はしなければならないことを覚えている 最初にこのトップレベルを行う。 36 00:02:08,810 --> 00:02:11,620 37 00:02:11,620 --> 00:02:18,500 >> ここでは、繰り返しをしている トップレベル、行8、継続 38 00:02:18,500 --> 00:02:22,150 行が0になるまで。 39 00:02:22,150 --> 00:02:25,820 我々はそのようにどのように多くのスペースが必要でした その一番上の行に印刷する? 40 00:02:25,820 --> 00:02:29,310 我々は7スペースを印刷 そして2ハッシュ。 41 00:02:29,310 --> 00:02:34,450 だから、私たちが望むのスペースの数です マイナス1にあった行。 42 00:02:34,450 --> 00:02:39,310 >> 一番上の行は8,8マイナスの場合 1は私たちに7のスペースを提供します。 43 00:02:39,310 --> 00:02:43,770 その後、我々が印刷されたループを持っている 当時の各スペースの1つ。 44 00:02:43,770 --> 00:02:47,450 そうスペースは、このループ7のとき 7回、印刷 45 00:02:47,450 --> 00:02:50,300 7個々のスペース。 46 00:02:50,300 --> 00:02:54,672 >> だから今我々はこれらのハッシュを印刷する必要がある ピラミッドの最後に。 47 00:02:54,672 --> 00:02:57,930 だからここに、我々は計算する必要が ハッシュの数。 48 00:02:57,930 --> 00:03:01,930 我々は、高さをやっていることがわかります マイナス行プラス2。 49 00:03:01,930 --> 00:03:04,170 では、どのようにそれを手に入れたの? 50 00:03:04,170 --> 00:03:08,630 >> 覚えておいて、そのピラミッドの頂点 行8は、高さが8である。 51 00:03:08,630 --> 00:03:10,890 そして我々はまだ2ハッシュを印刷した。 52 00:03:10,890 --> 00:03:15,420 だから、少なくとも、8マイナス8プラス 2は私たちに正しい答えを提供します。 53 00:03:15,420 --> 00:03:19,170 して、一番下を検討 ピラミッドの、行1。 54 00:03:19,170 --> 00:03:24,020 高さマイナスの行は私たちに7を与えると、 その後、プラス2は私達に9ハッシュを与え、 55 00:03:24,020 --> 00:03:26,620 これを正確に数値です の我々は印刷されていることをハッシュします。 56 00:03:26,620 --> 00:03:29,880 だから、これは我々がする数式です 数を計算するために使用 57 00:03:29,880 --> 00:03:32,220 各行のハッシュ。 58 00:03:32,220 --> 00:03:36,020 >> その番号を使用して、我々はその後、別のものを有する と非常に類似したループのための 59 00:03:36,020 --> 00:03:41,270 我々はスペースのために使用されるループのため、 ハッシュ時間の反復処理番号 60 00:03:41,270 --> 00:03:43,720 つのハッシュを毎回印刷。 61 00:03:43,720 --> 00:03:46,010 一番上の行に、だろうと 2ハッシュを印刷します。 62 00:03:46,010 --> 00:03:48,390 下段に、だろうと 9ハッシュを印刷します。 63 00:03:48,390 --> 00:03:52,610 互いの行は、すべての印刷されます その間のハッシュの数。 64 00:03:52,610 --> 00:03:57,340 >> して、一番最後に、私たちのことを行う必要があり 次のに行くために私たちの新しい行を印刷 65 00:03:57,340 --> 00:03:59,400 ピラミッド内の行。 66 00:03:59,400 --> 00:04:03,070 最後に、新しい行を印刷する必要がある の順に行の終わりに 67 00:04:03,070 --> 00:04:06,260 次の継続 ピラミッドの列。 68 00:04:06,260 --> 00:04:08,980 そして、我々のプログラムの最後に、 我々はリターン0を持っている。 69 00:04:08,980 --> 00:04:12,770 >> PSET仕様、リターンに従って 0は必ずしも必要ではありません。 70 00:04:12,770 --> 00:04:15,710 しかし、それは主がなされていることを意味しません。 71 00:04:15,710 --> 00:04:17,610 私の名前はロブであり、これはマリオだった。 72 00:04:17,610 --> 00:04:22,470 >> [音楽再生] 73 00:04:22,470 --> 00:04:25,558