1 00:00:00,000 --> 00:00:00,493 2 00:00:00,493 --> 00:00:09,860 >> [音楽再生] 3 00:00:09,860 --> 00:00:13,520 >> ZAMYLA CHAN:あなたではなく受け取ることになる 千万ドル今右または受信 4 00:00:13,520 --> 00:00:17,460 ペニー月の毎日、どこ 後続の各一日、あなたは受けるのは 5 00:00:17,460 --> 00:00:21,280 ペニーあなたの量を倍増 前日の受信? 6 00:00:21,280 --> 00:00:24,010 ペニー、我々はするつもりだ なぜあなたがすべきことを証明 7 00:00:24,010 --> 00:00:27,000 間違いなく小銭を取る。 8 00:00:27,000 --> 00:00:29,130 あなたの仕事は - pennies.cを書くことです 9 00:00:29,130 --> 00:00:33,330 最初にどのようにユーザに要求したプログラム そこに多くの日は月にあり、 10 00:00:33,330 --> 00:00:38,780 どのように多くのペニーユーザー次に尋ね 最初の日に受信します。 11 00:00:38,780 --> 00:00:41,780 次に、プログラムは計算する必要があります ユーザーが持っているという量 12 00:00:41,780 --> 00:00:46,530 の端部に蓄積された 月とそれを表示する。 13 00:00:46,530 --> 00:00:49,670 >> 私たちは、このプログラムを破ることができる タスクのカップルに。 14 00:00:49,670 --> 00:00:52,830 我々のために要求する必要があります 複数のユーザ入力 - 15 00:00:52,830 --> 00:00:55,510 日と月、ペニー 初日に。 16 00:00:55,510 --> 00:00:59,390 我々はを追跡する必要がありますどのくらいのお金 ユーザーがあらゆるを持っており、それを更新する 17 00:00:59,390 --> 00:01:03,060 量を倍増日、 彼らが受けることペニー。 18 00:01:03,060 --> 00:01:06,710 そして最後に、我々は彼らの印刷 ドルの最後の合計。 19 00:01:06,710 --> 00:01:08,570 >> タックルユーザー入力ましょう。 20 00:01:08,570 --> 00:01:11,560 私は、apples.cを開くつもりだ ダメージショートプログラム 21 00:01:11,560 --> 00:01:13,840 入力と出力を持つ。 22 00:01:13,840 --> 00:01:17,310 ここでは一番上で、私はいくつかが含まれてきた - 私が必要とするライブラリーの 23 00:01:17,310 --> 00:01:20,450 CS50のライブラリと標準 I / Oライブラリ。 24 00:01:20,450 --> 00:01:24,310 私が使用してプロンプトを表示 からprintf関数 25 00:01:24,310 --> 00:01:25,660 標準I / Oライブラリ。 26 00:01:25,660 --> 00:01:29,740 しかし実際には、ユーザーのプロンプト これに次の行で発生 27 00:01:29,740 --> 00:01:33,650 CS50、ライブラリ内の場合、getInt機能。 28 00:01:33,650 --> 00:01:38,300 >> 場合、getIntは、ユーザからの入力を取得し、 入力が整数であることを保証します。 29 00:01:38,300 --> 00:01:45,160 だから私は、整数にユーザーの入力を保存 私は、私から1を減算した後、 30 00:01:45,160 --> 00:01:47,610 iの場合は、新しい値をプリントアウト。 31 00:01:47,610 --> 00:01:53,050 使用apples.cをコンパイルした後 コマンドは "リンゴを作る、"私が持っている 32 00:01:53,050 --> 00:01:55,770 実行ファイルのりんご。 33 00:01:55,770 --> 00:01:58,760 私は入力1、それを実行しているでしょう。 34 00:01:58,760 --> 00:02:02,600 プログラムは私に語ったこと 私は左の0りんごを持っている。 35 00:02:02,600 --> 00:02:05,480 そして期待通りに働いていたこと。 36 00:02:05,480 --> 00:02:09,740 >> それでは、もう一度これを実行してみましょう 負入力1。 37 00:02:09,740 --> 00:02:13,950 さて、りんごの負の量を持つ 本当に意味をなすのではなく、 38 00:02:13,950 --> 00:02:18,370 負のため、プログラムには、それを受け入れ 1は、まあ、それは整数です。 39 00:02:18,370 --> 00:02:22,740 そして今、プログラムまたはモンスター プログラムでは、負のを食べるの内側 40 00:02:22,740 --> 00:02:26,250 リンゴ、そして今私が持っている 負の2りんご。 41 00:02:26,250 --> 00:02:28,610 フム、だから1のレッスンだ - 42 00:02:28,610 --> 00:02:32,965 にもかかわらず場合、getInt機能と 関連GetFlowような関数、または 43 00:02:32,965 --> 00:02:38,100 GetStringメソッドあなたは、正しいデータ型を取得する 入力が行うことを確認する必要があります 44 00:02:38,100 --> 00:02:41,430 あなたのプログラムの感覚。 45 00:02:41,430 --> 00:02:45,500 >> ペニーは、それだけでプロンプトを行うことはありません 整数に対しては、確認する必要があります 46 00:02:45,500 --> 00:02:49,550 ユーザ入力整数その確認 それは、与えられた文脈の意味を行います。 47 00:02:49,550 --> 00:02:55,690 今月だけで、28を持つことができます 29、30、または31日。 48 00:02:55,690 --> 00:02:59,160 我々は継続的に要求したい 有効な整数。 49 00:02:59,160 --> 00:03:03,240 彼らは我々の入力の整数外場合 受け入れられた境界は、我々はそれらを促すよ 50 00:03:03,240 --> 00:03:07,190 何度も何度も、あなたまで 私たちに有効な整数を与える。 51 00:03:07,190 --> 00:03:10,070 >> "になるまで繰り返し"を思い出し スクラッチでブロック? 52 00:03:10,070 --> 00:03:13,070 あなたが同じような構造を作ることができる Cの "一方、"ループを使用して 53 00:03:13,070 --> 00:03:14,830 や "日曜一方、"ループ。 54 00:03:14,830 --> 00:03:18,280 whileループ構造は、条件を有する ために満たさなければならない 55 00:03:18,280 --> 00:03:20,160 実行するループの本体。 56 00:03:20,160 --> 00:03:23,080 >> これは、少し似ているはずです 条件は同じようなので、 57 00:03:23,080 --> 00:03:25,970 角度でスクラッチブロック とブラケットに入る 58 00:03:25,970 --> 00:03:27,950 "一方、"ループの。 59 00:03:27,950 --> 00:03:30,600 だから条件があるかどうかチェックします 整数の範囲内である 60 00:03:30,600 --> 00:03:32,680 適切な境界。 61 00:03:32,680 --> 00:03:36,620 あなたが場合、getIntを使用整数を促すことができる その後あなたの "しばらく"を実行 62 00:03:36,620 --> 00:03:41,030 ループ、繰り返しプロンプトおよび印刷 入力しながら命令、 63 00:03:41,030 --> 00:03:43,470 有効ではありません。 64 00:03:43,470 --> 00:03:47,610 >> 正しいユーザ入力を確保するための別の方法 、 "やる·一方、"ループを使用することです 65 00:03:47,610 --> 00:03:50,400 これは、Whileループに非常に類似している。 66 00:03:50,400 --> 00:03:54,950 "日曜ながら"ループコードを実行 ボディのもの、次にチェックする内部 67 00:03:54,950 --> 00:03:57,150 かどうかの条件が満たされているか。 68 00:03:57,150 --> 00:04:00,590 このことは、ユーザ入力を得るために有用である あなたが必要とすることを知っているので、 69 00:04:00,590 --> 00:04:02,980 少なくとも一度、それらを促すため。 70 00:04:02,980 --> 00:04:07,200 条件が満たされない場合、プログラム 後の行を実行します 71 00:04:07,200 --> 00:04:08,530 あなたの "日曜一方、"ループ。 72 00:04:08,530 --> 00:04:13,230 しかし、条件が満たされた場合、 ループが繰り返されます 73 00:04:13,230 --> 00:04:17,490 >> ユーザを検証する "を行う - 一方、"ループ 入力は次のようになります。 74 00:04:17,490 --> 00:04:24,530 私は変数n、場合、getIntを宣言し、 nが有効になるまで、その後繰り返し。 75 00:04:24,530 --> 00:04:28,040 そして、このプロセスは、私が説明したように、使用していた 整数データ型、その 76 00:04:28,040 --> 00:04:29,820 あなたは月の日のために使用します。 77 00:04:29,820 --> 00:04:33,560 しかし、我々は知っているペニーの数 するためにそう、すぐに積み上げます 78 00:04:33,560 --> 00:04:39,160 より大きい数値を格納、データ型を使用 LONGLONG、しかし同じよ​​うに覚えている 79 00:04:39,160 --> 00:04:42,590 検証の原則が適用されます。 80 00:04:42,590 --> 00:04:47,070 >> 素晴らしいので、かつて我々は2つ​​の有効なを持ってい ユーザからの入力 - 81 00:04:47,070 --> 00:04:49,530 月の日数とペニー 初日に - 82 00:04:49,530 --> 00:04:52,870 我々は次の上に移動することができます プログラムの一部。 83 00:04:52,870 --> 00:04:56,680 最初の日、ユーザで始まる 彼らは指定しかし多くのペニー 84 00:04:56,680 --> 00:05:00,370 その彼らはペニーのと量 翌日受け取りは2倍になります。 85 00:05:00,370 --> 00:05:03,130 だから、追跡することが理にかなっている これら2つの金額の - 86 00:05:03,130 --> 00:05:08,890 ユーザーは、どのくらいのお金があり、どのように 多くのペニーそれらは与えられたことでしょう。 87 00:05:08,890 --> 00:05:13,760 >> さて、28〜31日間のために何をやって ので、 "用"を使用してみましょう、反復的である 88 00:05:13,760 --> 00:05:18,220 で日間反復処理するループ 月、合計とペニーを更新 89 00:05:18,220 --> 00:05:21,010 毎回達する。 90 00:05:21,010 --> 00:05:23,550 ループ構文が含まれています "の場合は" 次の - 91 00:05:23,550 --> 00:05:27,510 初期化条件 とアップデート。 92 00:05:27,510 --> 00:05:29,590 あなたの "のための"ループが初期化されます 変数、ときに 93 00:05:29,590 --> 00:05:31,380 最初はループに入ります。 94 00:05:31,380 --> 00:05:34,860 条件は、身体を満たしている場合 ループが実行されます。 95 00:05:34,860 --> 00:05:36,860 その後、アップデートが実行されます。 96 00:05:36,860 --> 00:05:40,900 条件が満たされた場合、 ループが実行され、更新され、そして 97 00:05:40,900 --> 00:05:45,820 限り、あなたの条件として、繰り返し trueと評価されます。 98 00:05:45,820 --> 00:05:51,080 >> ここで分割 "for"ループです 2 10回の合計によって整数pを。 99 00:05:51,080 --> 00:05:55,380 私は整数Pを宣言した方法に注意してください 私の "for"ループの外なので、その 100 00:05:55,380 --> 00:05:59,850 整数は、アクセス可能 "for"ループ外。 101 00:05:59,850 --> 00:06:03,620 月が経過した後、それは時間だ ユーザーを伝えるにはどのくらいのお金 102 00:06:03,620 --> 00:06:04,790 彼らは得ている。 103 00:06:04,790 --> 00:06:08,740 スペックごとに、ユーザーに指示する必要があり どのように多くのドルではなく、どのように多くの 104 00:06:08,740 --> 00:06:10,780 ペニーは、彼らが持っている。 105 00:06:10,780 --> 00:06:14,620 しかし、これまでのところ、あなたには、トラックを保った 合計とLongLongsを使用ペニー、 106 00:06:14,620 --> 00:06:16,640 全体の数字はどのです。 107 00:06:16,640 --> 00:06:20,560 >> 1〜100ドルペニーはそうしない限り、あります ペニーの数です 108 00:06:20,560 --> 00:06:24,860 100の倍数で、あなたがする必要があります 小数点以下の桁を表す。 109 00:06:24,860 --> 00:06:28,060 倍増オートタイプにより、 あなたはこれを行うには。 110 00:06:28,060 --> 00:06:32,790 では、どのように表現するから変換か ドルにペニー? 111 00:06:32,790 --> 00:06:35,330 >> のが見てみましょうpi.c. 112 00:06:35,330 --> 00:06:41,690 このプログラムはLONG​​LONG big_piとを取り 100,000それを分割し、出力します 113 00:06:41,690 --> 00:06:44,270 小数点以下5桁までの結果。 114 00:06:44,270 --> 00:06:48,560 我々は4つの10進を表示したい場合 場所は、我々はこれを置き換えることができます 115 00:06:48,560 --> 00:06:49,760 ここ数。 116 00:06:49,760 --> 00:06:58,370 それでは、保存πをコンパイルしてみましょう その後、結果を参照した我々 117 00:06:58,370 --> 00:07:02,240 3.1415であることを期待 - 118 00:07:02,240 --> 00:07:04,540 円周率の最初の5桁の数字。 119 00:07:04,540 --> 00:07:06,300 >> これは、しかしではありません。 120 00:07:06,300 --> 00:07:07,390 そして、なぜ? 121 00:07:07,390 --> 00:07:11,920 まあ、big_piは、LONGLONGあるので 全体数は、どれがどれであるかではないでしょう 122 00:07:11,920 --> 00:07:13,740 小数を追跡。 123 00:07:13,740 --> 00:07:16,850 私がする必要がある変更 メイクは、分割されている。 124 00:07:16,850 --> 00:07:23,300 私は前にここで二重にキャストする必要があります ダブルスでは維持することはできませんので、分割 125 00:07:23,300 --> 00:07:25,260 小数点以下の桁を追跡。 126 00:07:25,260 --> 00:07:28,080 そして、私は、新しい行を追加するつもりだ ここで良いの書式のために。 127 00:07:28,080 --> 00:07:33,090 128 00:07:33,090 --> 00:07:34,230 >> そしてここで我々はそれを持っている - 129 00:07:34,230 --> 00:07:37,660 3.1416。 130 00:07:37,660 --> 00:07:43,520 あなたはそれが3.1416をプリントしている場合があり 代わりに3.1415の予想通り。 131 00:07:43,520 --> 00:07:47,550 中に、それはラウンドだからだ 分割プロセスは、同じくらいに対向 132 00:07:47,550 --> 00:07:50,490 値を切り捨てる。 133 00:07:50,490 --> 00:07:53,710 今、あなたは印刷することができるはずです 終了正しく最後の合計、 134 00:07:53,710 --> 00:07:54,870 プログラム。 135 00:07:54,870 --> 00:07:55,930 >> おめでとうございます。 136 00:07:55,930 --> 00:07:57,340 私の名前はZamylaです。 137 00:07:57,340 --> 00:07:58,720 そして、これはペニーだった。 138 00:07:58,720 --> 00:08:05,589 >> [音楽再生]