[音楽再生] ZAMYLA CHAN:あなたではなく受け取ることになる 千万ドル今右または受信 ペニー月の毎日、どこ 後続の各一日、あなたは受けるのは ペニーあなたの量を倍増 前日の受信? ペニー、我々はするつもりだ なぜあなたがすべきことを証明 間違いなく小銭を取る。 あなたの仕事は - pennies.cを書くことです 最初にどのようにユーザに要求したプログラム そこに多くの日は月にあり、 どのように多くのペニーユーザー次に尋ね 最初の日に受信します。 次に、プログラムは計算する必要があります ユーザーが持っているという量 の端部に蓄積された 月とそれを表示する。 私たちは、このプログラムを破ることができる タスクのカップルに。 我々のために要求する必要があります 複数のユーザ入力 - 日と月、ペニー 初日に。 我々はを追跡する必要がありますどのくらいのお金 ユーザーがあらゆるを持っており、それを更新する 量を倍増日、 彼らが受けることペニー。 そして最後に、我々は彼らの印刷 ドルの最後の合計。 タックルユーザー入力ましょう。 私は、apples.cを開くつもりだ ダメージショートプログラム 入力と出力を持つ。 ここでは一番上で、私はいくつかが含まれてきた - 私が必要とするライブラリーの CS50のライブラリと標準 I / Oライブラリ。 私が使用してプロンプトを表示 からprintf関数 標準I / Oライブラリ。 しかし実際には、ユーザーのプロンプト これに次の行で発生 CS50、ライブラリ内の場合、getInt機能。 場合、getIntは、ユーザからの入力を取得し、 入力が整数であることを保証します。 だから私は、整数にユーザーの入力を保存 私は、私から1を減算した後、 iの場合は、新しい値をプリントアウト。 使用apples.cをコンパイルした後 コマンドは "リンゴを作る、"私が持っている 実行ファイルのりんご。 私は入力1、それを実行しているでしょう。 プログラムは私に語ったこと 私は左の0りんごを持っている。 そして期待通りに働いていたこと。 それでは、もう一度これを実行してみましょう 負入力1。 さて、りんごの負の量を持つ 本当に意味をなすのではなく、 負のため、プログラムには、それを受け入れ 1は、まあ、それは整数です。 そして今、プログラムまたはモンスター プログラムでは、負のを食べるの内側 リンゴ、そして今私が持っている 負の2りんご。 フム、だから1のレッスンだ - にもかかわらず場合、getInt機能と 関連GetFlowような関数、または GetStringメソッドあなたは、正しいデータ型を取得する 入力が行うことを確認する必要があります あなたのプログラムの感覚。 ペニーは、それだけでプロンプトを行うことはありません 整数に対しては、確認する必要があります ユーザ入力整数その確認 それは、与えられた文脈の意味を行います。 今月だけで、28を持つことができます 29、30、または31日。 我々は継続的に要求したい 有効な整数。 彼らは我々の入力の整数外場合 受け入れられた境界は、我々はそれらを促すよ 何度も何度も、あなたまで 私たちに有効な整数を与える。 "になるまで繰り返し"を思い出し スクラッチでブロック? あなたが同じような構造を作ることができる Cの "一方、"ループを使用して や "日曜一方、"ループ。 whileループ構造は、条件を有する ために満たさなければならない 実行するループの本体。 これは、少し似ているはずです 条件は同じようなので、 角度でスクラッチブロック とブラケットに入る "一方、"ループの。 だから条件があるかどうかチェックします 整数の範囲内である 適切な境界。 あなたが場合、getIntを使用整数を促すことができる その後あなたの "しばらく"を実行 ループ、繰り返しプロンプトおよび印刷 入力しながら命令、 有効ではありません。 正しいユーザ入力を確保するための別の方法 、 "やる·一方、"ループを使用することです これは、Whileループに非常に類似している。 "日曜ながら"ループコードを実行 ボディのもの、次にチェックする内部 かどうかの条件が満たされているか。 このことは、ユーザ入力を得るために有用である あなたが必要とすることを知っているので、 少なくとも一度、それらを促すため。 条件が満たされない場合、プログラム 後の行を実行します あなたの "日曜一方、"ループ。 しかし、条件が満たされた場合、 ループが繰り返されます ユーザを検証する "を行う - 一方、"ループ 入力は次のようになります。 私は変数n、場合、getIntを宣言し、 nが有効になるまで、その後繰り返し。 そして、このプロセスは、私が説明したように、使用していた 整数データ型、その あなたは月の日のために使用します。 しかし、我々は知っているペニーの数 するためにそう、すぐに積み上げます より大きい数値を格納、データ型を使用 LONGLONG、しかし同じよ​​うに覚えている 検証の原則が適用されます。 素晴らしいので、かつて我々は2つ​​の有効なを持ってい ユーザからの入力 - 月の日数とペニー 初日に - 我々は次の上に移動することができます プログラムの一部。 最初の日、ユーザで始まる 彼らは指定しかし多くのペニー その彼らはペニーのと量 翌日受け取りは2倍になります。 だから、追跡することが理にかなっている これら2つの金額の - ユーザーは、どのくらいのお金があり、どのように 多くのペニーそれらは与えられたことでしょう。 さて、28〜31日間のために何をやって ので、 "用"を使用してみましょう、反復的である で日間反復処理するループ 月、合計とペニーを更新 毎回達する。 ループ構文が含まれています "の場合は" 次の - 初期化条件 とアップデート。 あなたの "のための"ループが初期化されます 変数、ときに 最初はループに入ります。 条件は、身体を満たしている場合 ループが実行されます。 その後、アップデートが実行されます。 条件が満たされた場合、 ループが実行され、更新され、そして 限り、あなたの条件として、繰り返し trueと評価されます。 ここで分割 "for"ループです 2 10回の合計によって整数pを。 私は整数Pを宣言した方法に注意してください 私の "for"ループの外なので、その 整数は、アクセス可能 "for"ループ外。 月が経過した後、それは時間だ ユーザーを伝えるにはどのくらいのお金 彼らは得ている。 スペックごとに、ユーザーに指示する必要があり どのように多くのドルではなく、どのように多くの ペニーは、彼らが持っている。 しかし、これまでのところ、あなたには、トラックを保った 合計とLongLongsを使用ペニー、 全体の数字はどのです。 1〜100ドルペニーはそうしない限り、あります ペニーの数です 100の倍数で、あなたがする必要があります 小数点以下の桁を表す。 倍増オートタイプにより、 あなたはこれを行うには。 では、どのように表現するから変換か ドルにペニー? のが見てみましょうpi.c. このプログラムはLONG​​LONG big_piとを取り 100,000それを分割し、出力します 小数点以下5桁までの結果。 我々は4つの10進を表示したい場合 場所は、我々はこれを置き換えることができます ここ数。 それでは、保存πをコンパイルしてみましょう その後、結果を参照した我々 3.1415であることを期待 - 円周率の最初の5桁の数字。 これは、しかしではありません。 そして、なぜ? まあ、big_piは、LONGLONGあるので 全体数は、どれがどれであるかではないでしょう 小数を追跡。 私がする必要がある変更 メイクは、分割されている。 私は前にここで二重にキャストする必要があります ダブルスでは維持することはできませんので、分割 小数点以下の桁を追跡。 そして、私は、新しい行を追加するつもりだ ここで良いの書式のために。 そしてここで我々はそれを持っている - 3.1416。 あなたはそれが3.1416をプリントしている場合があり 代わりに3.1415の予想通り。 中に、それはラウンドだからだ 分割プロセスは、同じくらいに対向 値を切り捨てる。 今、あなたは印刷することができるはずです 終了正しく最後の合計、 プログラム。 おめでとうございます。 私の名前はZamylaです。 そして、これはペニーだった。 [音楽再生]