>> [音楽再生]
>> 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です。
そして、これはペニーだった。
>> [音楽再生]