LUCASフレイタス:[OK]を、私は推測 今、私たちは生きている。 CS50スーパーセクションへようこそ。 私たちは、あまり快適だ。 私の名前はルーカスフレイタスです。 私は1 CS50ヘッドのTFよ。 これがローレンです。 LAUREN CARVALHOは:こんにちは、私はローレンだ。 私はまた、CS50用のヘッドTFよ。 LUCASフレイタス:今日はちょうどつもりだ どのようなすべてのあなたの概要を与えるために みんながうまくいけば、週1で学んだ あなたに良いの男を与える あなたが知っておくべきものの意味 問題のために1を設定します。 ほんのお知らせ。 まず、営業時間。 営業時間は月曜日から起こっている 内の別の住宅の木曜日まで 毎日アネンバーグ。 彼らはあなたのために非常に良いリソースだ 来て、質問をし、する人 のTFと話をし、さらに交換 他の学生とのアイデア。 だから、そのリソースを使用してください あなたの好意にある。 2つ目は CS50アプライアンス。 最後の[聞こえない]ため あなたたちは、実際にする必要はありませんでした アプライアンスを持っている。 あなただけですべてをした お使いのパソコン。 しかし、この問題のために、あなたが実際に持っている 仮想マシンを持っているので、すべき CS50をダウンロードしてください アプライアンスとそれを設定。 第三のものは、に必ずある ただできるだけ早く問題セットを開始 それは見つけることがはるかに簡単だから あなたがにいるときに役立つ 週の始まり。 人々は、まで待つ傾向があるため 問題のセットを開始する最後秒、 そして、あなたは営業時間に行って、 そして多くの人々があります。 どこに月曜日に行く場合、あなたはなるだろう あなたはのTFに話すことができることを確認する 一晩のためにかなり多くの、 彼らはより多くなるつもりだ あなたを助けて幸せ。 LAUREN CARVALHO:私はちょうど停止できます ちょうど1秒あなたは? 誰もがダウンロードできるようになりました CS50アプライアンス? 人々は試したことがありますか? LUCASフレイタス:によって、ダウンロードするには、 方法は、時の指示を得ることができます cs50.net/appliance。 LAUREN CARVALHO:右。 そして、それは私たちのために少し時間がかかりますか のシステム管理者はあなたのライセンスを取得するには キーなので、サインアップする 無料トライアル初めて。 そうすれば、あなたは30日間のためにそれがあるでしょう、 して、ライセンスキーを待つ それを与える必要があります 今年のあなたに。 LUCASフレイタス:まず第一に、 それでは少しお話ししましょう CS50アプライアンスに関する。 CS50アプライアンスは、実際には仮想です あなたがしようとしているマシン で、自分のコンピュータで実行する 基本的に別のコンピュータを実行している 自分のコンピュータの内部。 そのかなりクールです。 そして実際にそれがどこでも使われています。 それを知っているだろうテックへの人々 これは、すべての時間を使用します。 あなたは? 複数のコンピュータを持つことができます 1デバイス内。 それでは、実際に見てみましょう アプライアンスで。 あなたが後にアプライアンスに行くとき 登録は、次の作業を行う必要があるとしている 自分の名前を入れて、ハーバードにログイン 私たちはあなたのすべてを登録し取得することができます。 基本的には見に行くだけで 壁紙、その後、ホーム、ゴミ箱、 して、これらの小さなアイコン。 この3つのアイコンは、実際にはほとんどあり あなたが持つことができる重要な事柄 アプライアンス。 最初のものはテキストであるgeditの、ある ただメモ帳などのエディタ等で、 テキストエディタの任意の種類。 それはちょうど私たちが書き込みに使用何か コー​​ドし、それをものを行う。 その我々二つ目 ここにあるクロームです。 だから、インターネットを使用する必要がある場合 アプライアンスで、それはです 何を使用することができます。 第三のものは端末であり、 その実際には非常に甘いです。 人々は通常、この種のを怖がっている それは、この非常に端末ため あなたの中に昔ながらのアプリケーション ただ、基本的にすべてのものを入力します キーボード。 相互作用の多くはありません マウスで。 しかし、実際には、端末 非常に良いことを行います。 まず第一に、ちょうど通す いくつかのコマンドがあること ターミナルで使用することができます。 LAUREN CARVALHO:とストップ気軽に 私たちご質問があれば。 LUCASフレイタス:うん。 我々は持っているので、最初のコマンド 端末にlsがある。 LSは基本的にすべて、リストのすべてを意味 ファイルとすべての取締役、 私は私が私の場所に持っていること。 私はここで、LSを行うのであれば、私は見に行くよ 私はいくつかのディレクトリを持っていること。 私は、ダウンロードのデスクトップを持っている、 ログ、およびバーチャルホスト。 それらは青であるため、彼ら すべてのディレクトリがあります。 その後、他のいくつかのファイルがあります。 あなたはハローとのhello.cのように持っている ファイルだけであり、それらはにいる 色違い。 だから、これは非常に重要なコマンドですちょうど あなたは、ファイルが何であるかを見ることができます そしてあなたが持っているディレクトリ そのディレクトリに あなたは、端末内にいる。 あなたはjharvardで@アプライアンスと表示されたら そこはほとんどのシンボル、 ただそれはだことを意味していることを、チルダ あなたは、現時点ではされるディレクトリです。 LAUREN CARVALHO:だからlsと入力すると、ほとんどである フォルダをクリックするように それは、それショーに、すぐそこに記載されている あなたであるすべてのコンテンツ そのフォルダ内に。 読者:テキストがある hello.cの後? LAUREN CARVALHO:ああ、することはできません それが青だから、それを参照してください。 LUCASフレイタス:それは述べています ログとバーチャルホスト。 LAUREN CARVALHO:それらは ただ他のフォルダ。 すみません、それは見て、本当に難しい。 我々は、ライトをオフに多分場合はどうなりますか? コルトンは、あなたが試してみたい観光 ライトスイッチを見つける? そのことはごめんなさい。 私はそれについて考えていませんでした。 LUCASフレイタス:しかし、それは基本的にです - ええ、あなたができれば - LAUREN CARVALHO:画面を拡大表示します。 LUCASフレイタス:私はしないでください その機能を持っています。 LAUREN CARVALHO:[聞こえない]。 [OK]をクリックします。 さて、自然がたくさんはそこだ この部屋での光だけでなく。 LUCASフレイタス:ちょうどそれを想定してみましょう そこに2他のディレクトリがあります。 LAUREN CARVALHO:ちょうどご容赦。 これはよ一部にすぎません ターミナルを見ている。 LUCASフレイタス:次のコマンドは、 基本的には多分あなたは整理したい あなたのファイル - 1の例では、すべてのCファイル ディレクトリが、あなたは持っていない まだ単にCファイル用のディレクトリ。 基本的には、ディレクトリを作成することができます あるだけでなく、端末を使用して 右クリックするのと同じ事 および新規フォルダを言って。 コマンドは、ディレクトリを作成している します。mkdirなので、基本的に「作る」と 「ディレクトリ」 そして、あなたは置くことができます ディレクトリの名前。 のは、私が呼ばれるように思ったとしましょう​​、 私は知らない、のはPSET1がやってみましょう これは、私はちょうどディレクトリを作成した。 ちょうどそれがあることを確認してみましょう。 私はLSを行うのであれば、今私は、ログを見て、 その後PSET1、その後、バーチャルホスト。 だから私はそこに新しいディレクトリを持っています。 して、新しいディレクトリをした後、 多分あなたはナビゲートしたい そこに、このCDの次のコマンドは、そう、 ただ、基本的に行くことを意味する 特定のディレクトリ。 だから私はPSET1に行きたい場合は、 私はちょうどのCD PSET1を行うことができます。 LAUREN CARVALHO:CDには、変更の略 できるディレクトリ、[聞こえない] それを覚えています。 LUCASフレイタス:そして今、あなたはそれを参照してください だけではなくjharvardを持っていることの アプライアンスは、私がアプライアンスをjharvardしている、 して、PSET1、それは見せているので 私はこのコンピュータで午前私。 今私はに戻りたい場合は、 この1の前にいたディレクトリに、私 ちょうど行く意味CDドットドットを行うことができます 私が前にいたディレクトリに、 これの親のように ディレクトリ、基本的に。 そして今、私は、私はあることを参照してください。 バックjharvardへ。 私はそれを行うことができ、次のこと ファイルを削除しているRM、です。 例えば、まずはlsコマンドをやらせる 私がここに持っているものを確認します。 私はハローとのhello.cを持っている。 のは、私はそれらを削除したいとしましょう​​。 私はハローRM行うことができます。 これは、通常のファイルを削除する "と言うだろう もしもし?はい」と私は言って、 "。"そして今、私の場合 、私はそれがだとLS見ていますか ていないそこにはもう。 私は、ディレクトリのRMを使用しようとすると、 しかし、それはないだろう あなたが何かを行うようにする。 それはあなた、ちょっと、と言うだろう ディレクトリを削除することはできません。 だから我々はRMDIRと呼ばれるこの他の来て、 これだけで、基本的な手段 ディレクトリを削除します。 私は、例えば、PSET1を削除することができます。 私はLSをすればと、私はしないでください もうそれを持っている。 これについてのご質問? なし? うん? 観客:それはあなたが残していることが重要である 後のスペース - たび で何かの入力を開始? LUCASフレイタス:うん。 私は、CDやディレクトリのよう行うと、 私はスペースを配置する必要があります。 どのような空間をあなたが話しているの? LAUREN CARVALHO:の間にスペース CDや[聞こえない]。 LUCASフレイタス:ええ、あなたがする必要があります CDがあるため、スペースを入れ コマンド、[次へ]の文字列 あなたのタイプは、基本的にはディレクトリです。 だから、引数のようなものだ。 うん? 聴衆:リスト、すべての人 別のディレクトリがありますよね? LUCASフレイタス:ええ、彼ら ディレクトリにあります。 観客:違いは何ですか ディレクトリの中? LUCASフレイタス:彼らはただだ 異なるフォルダ。 ディレクトリはフォルダです お使いのコンピュータの。 観客:フォルダを開く。 LUCASフレイタス:ええ、それはだ ちょうど開いているフォルダ。 LAUREN CARVALHO:ここでは、もの 青であることを実際のアール あなたが入ることができるディレクトリや そしてあるものの束を参照してください。 その内、これは残念なことです 実際に読むことができないので、 青もの。 と白のものは単なるファイルです 現在のディレクトリ内にあること。 LUCASフレイタス:だからディレクトリ フォルダがあります。 他のものはファイルです。 観客:コマンドは何ですか それをリセットするか、それをクリアするために? LUCASフレイタス:クリアするには? LAUREN CARVALHO:クリアするには? LUCASフレイタス:私は思う それは「クリア」ですうん。 だから、あなただけの場合は、クリアタイプ 画面があまりにも乱雑だ。 その他のご質問は? そして、あなたは他の束を学びます 中にちょうど自然にコマンド 学期彼らは非常に便利だから。 だから今のコンパイルについて話しましょう​​。 私たちは、擬似コードの話と ソースコードとオブジェクトコード。 多分そこにコードがたくさんだし、 あなたたちは、そのことについて混乱している。 それでは何について少しお話ししましょう あなたがプログラムを書いているときに何が起こる、 あなたはそれをコンパイルし、それになります 実行ファイル。 それらは、すべての単語君たちです おそらく聞いた、そして多分あなたはわからない 何が起こっているのか本当にわから。 私がしたいことを、例えば、としましょう 「こんにちは。」と言うプログラムを書くザ· あなたの心に来る最初の事はある あなたは親切のあなたがしているかを考えてみてください あなたの心にそれをやろうとしてて、 おそらく、英語で考えたりしている 自然のようないくつかの他の言語で、 言語、おそらく。 それから、あなたが思う、まあ、私はしたい場合は、 例えば、プログラムを書くこと 「こんにちは、 "私は、プログラムを開始すると述べています 私はハロー印刷され、その後、私は意志 プログラムを終了します。 これは擬似コードである。 これは単に基本的には、しようとしているされている イベントのシーケンスを思い付く あなたがあることがやろうとしていることを プログラムを書くことができる。 次に、ソースコードを持っており、 ソースコードは必要はありません 特に我々は話をしているCであること C言語のソースコードに関するものですので、 我々は学習している言語が、もちろん コー​​ドはかなり上の任意のことができます あなたが持っているプログラミング言語。 後学期では、あなたが行っている 他の言語を学ぶこと。 それは、ソースコードです。 例えば、ここでは、これは私の源である コー​​ドし、私は含めています 図書室、その後、私が開始 メイン、その後、私が印刷します。 とローラが少し話をしようとしている このすべてについて少し。 これはソースコードである。 オブジェクトコードは何ですか? オブジェクトには、ゼロの束です 基本的に、どれ、。 何が起こるかは、あなたが最初に持っている すべて英語である擬似コード、。 そして、私は意味、あなたはそれを理解しています。 おそらくあなたの友人が理解して それ、ほとんどの人になる 考えを理解しています。 しかし、コンピュータは本当にばかであり、彼ら 英語を理解することは出来ませんから、あなた 何かにそれを翻訳している、 通常、いくつかに翻訳 プログラミング言語。 そして、あなたはプログラミングについて考えることができる などの種類の言語のような言語 あなたはどのようにコンピュータを教えていることを 話すことと理解すること。 基本的にはで何かを書いている あなたとあなたの両方の言語 コンピュータが理解しています。 つまり、ソースコードです。 だから、ソースにフォーム擬似コードを行く コー​​ドは、それはあなた次第です。 それはあなたのプログラムをやって、基本的だ。 しかし、問題は、 コンピュータがさえない プログラミング言語を理解しています。 それは理解していない すべてのソースコード。 それは実際には理解して 0と1。 だから我々はと呼ばれるこの非常に魔法のものを持っている 基本的に、コンパイラ、 ソースは、あなたが呼び出さ取得するつもり 使う言語の両方で書いた コンピュータが話し、今あなたがしている にそれを変換するつもり 0と1。 そこで、基本的にコンパイラが何をするかである それは、この場合、Cは、ソースコードを取得する それがゼロに変換しようとしている ともの、そのコンピュータ 理解し、行うことができます それから、実行可能ファイル。 それは理にかなっていますか? あなただけのように、コンパイラと考えることができます ある翻訳者のいくつかの種類 コンピュータに説明して支援する まさにそれが行うことになっています。 しかし、どのようにコンパイルする。 のアプライアンスに戻りましょう、と の私はそのプログラムをやっているとしましょう​​。 最初に私は、ディレクトリを作成するつもりです ここで、私はそれを呼び出すつもりだ 「練習。 "今、私は移動するつもりだ ディレクトリに、そのCDの練習。 今、私は練習の中にね。 今、私はgeditのを始めたい、 私はそれをどのように行うのですか? 私はこちらをクリックするか、または私はちょうどことができます 文字通り "、geditの"と入力し、それが起こっている 私のために開きます。 今、私は、私のプログラムを入力するつもりです まさに、私がスライドに書いている。 私は図書館を宣言してい。 私はint型のメインは、空隙をやっている。 そして今、私はこんにちは、printf関数をやってる。 今、私はこれを保存するつもりです。 私が実践してみましょう、と 私はこれのhello.cを呼ぶつもりです。 だから今、それが保存さだ。 私はそれをコンパイルしたい場合は、私が実際に 2つの異なる場所でそれを行うことができます。 私はどちらか、ターミナルウィンドウでそれを行うことができます したがって、この大きなもの、または次の操作を実行できます 実際に持ってgeditを使用 右ここターミナルウィンドウ。 だから、非常に便利なだけで行うことができます あなたのコード、そしてあなただけ入力することができます ここは何でも、それをコンパイルしよう。 それでは、どのよう私は、コードをコンパイルするには? 我々が持っている最も簡単な方法は、使用している 関数で、作成することを 基本的にしようとしている あなたのコードをコンパイルします。 あなただけのハロー作ると言っているので、 「作る」とプログラムの名前。 おっと。 これは厄介です。 LAUREN CARVALHO:できますが、[聞こえない]? LUCASフレイタス:申し訳ありません。 私はそれを保存していない 正しいディレクトリ。 今練習してきて、 のhello.cとして保存します。 ごめんなさい。 今では保存だ。 私はちょうどLSをやらせるとなる それがここにあることを確認してください。 [OK]を、今ではここにある。 私はハロー作るのですかそうであれば今、それは吐く 多くのものが、その後それだけで提供します 端末の私の別のライン、その それが成功したことを意味します。 だから今、私は再び、LSをすれば、私は実際に ある、緑色でこのファイルを参照してください。 実行ファイル。 そして、私はそれを実行したい場合は、すべてのこと 私がしなければならないハロードットスラッシュです。 それはそう、まさにここ挨拶になるだろう それは私がそれを求めているがまさにそれだ。 コンパイルの1以上の方法がありますが、 打ち鳴らすを使用している。 打ち鳴らすは、我々が持っているだけで、コンパイラである、 それは少し冗長なのだ それをコンパイルします。 しかし、それは全く同じように動作します。 だから私は打ち鳴らす、その後、-Oをすれば、その後、 私がに付ける名前 実行可​​能ファイルは、それでは言わせて 「こんにちは。」そして、私は目的のファイル 、のhello.cをコンパイルします。 また、コンパイルになるだろう。 そして、あなたはここにファイルを持っており、 私は同様にそれを実行することができます。 ので、それらの両方が動作します。 それは理にかなっていますか? ご質問? 読者:あなたがズームすることができます 少し中? LUCASフレイタス:申し訳ありませんが? 観客:ズームイン! LAUREN CARVALHO:私はあなたを思う ただPlusコマンドすることができます。 LUCASフレイタス:何を?コマンド LAUREN CARVALHO:コマンドプラス。 LUCASフレイタス:いいえ。 LAUREN CARVALHO:ああ、それはありません 仕事に行くために - 我々は、解像度を設定するからだ この事のために。 LUCASフレイタス:私はしないでください 我々はズームインことができると思います ええ、私たちはズームできません。 あなたが別の質問がありますか? 申し訳ありません。 読者:あなたが打ち鳴らすを繰り返すことはできますか? LUCASフレイタス:打ち鳴らす? 打ち鳴らすは、makeと同じものですが、 違いは、最初に私は行くよということです コマンドで打ち鳴らすを書くこと、 私はある、すべて、-0をするつもりです ちょうど私たちがしようとしている フラグとして後で学ぶ。 だからいつもあなたと思う -Oを​​配置する必要があります。 した後、最初に、置くつもりだ 実行可​​能ファイルの名前、 基本的にあなたがしているファイル 作成しようとして。 だから私は、例えば、hello2を言うことができますし、 それから、私がコンパイルしたいファイルを、 これcファイルです。 だから、hello.cのだ。 それは理にかなっていますか? 観客:何もしもし? それは何ですか? LUCASフレイタス:hello.cの。 そして、私はそれをコンパイルした場合、もし 私は、私はまた、LSがありますか 私はコンパイルされていることをhello2。 私はそれを実行しようとすると、それがために起こっている こんにちはとまったく同じことを行う、 ちょうどこんにちは印刷します。 観客:作り方のために来て あなたが後にのhello.cを置くことができますか? LUCASフレイタス:メイクでは、 。Cを入れる必要はありません。 メイクでは、あなただけの言う プログラムの名前。 あなたは、Cを言う必要はありません。 しかし、打ち鳴らすために、知っておくべきです。 観客:打ち鳴らすとあなたはまた、 [聞こえない]を追加する必要があります LAUREN CARVALHO:うん。 だから、また、ライブラリにあります。 LUCASフレイタス:ええ、それは何か 我々は、後で使用するつもり。 それはリンクと呼ばれ、私は我々がいると思うのは 後でそれについて話をするつもり。 別の質問? 読者:あなたは置かないでください ドットスラッシュ打ち鳴らす? LUCASフレイタス:いいえ。 ドットスラッシュだけ開くことです 実行ファイル。 そう打ち鳴らす、あなただけの「打ち鳴らす」を書いて、 あなたが開く場合 それだけで、実行可能ファイル コンパイルされ、その後、ドットを行う スラッシュと名前。 それは理にかなっていますか? 読者:あなただけ変更した場合 [聞こえない]ハロー世界に、あなたは何 それを再コンパイルする必要がありますか? LUCASフレイタス:うん。 私が言いたい場合には、例えば、「ハロー そこに、「私は今それを保存して、私ができます もう一度コンパイルします。 だから、こんにちは私はメイクをしてみましょう。 私はハロー行う場合と、それがために起こっている 「そこにこんにちは。」と言う理にかなっている? その他のご質問は? 読者:あなたは含める必要はありますか 作業を調整するための標準的なI / Oの? LUCASフレイタス:うん。 標準I / Oが基本的にある 持つライブラリ printf関数の実装。 だから、そのこと右に トップは標準入出力が含まれています。 つまり、そのライブラリを含めている 基本的に異なるの束を持っている あなたが使用できるツール。 1? それらの関数であるprintf関数である それは基本的に印刷する 画面にメッセージが表示されます。 その他のご質問は? なし? [OK]をクリックします。 だから今のについて話しましょう​​ - LAUREN CARVALHO:レッツだけ スタイルガイドを参照してください。 あなたはちょうどここでそれを見つけることがしたいですか? LUCASフレイタス:だから我々は行っている スタイルについて話をする。 LAUREN CARVALHO:ああ、デビッド 終了しませんでした。 [OK]をクリックします。 なぜ我々はに戻って来ることはありません 一番最後のスタイル? これは、実際に更新されているの として我々は話す。 LUCASフレイタス:うん。 ダビデはそれを終了するのの道をしてみましょう。 LAUREN CARVALHO:CAN 私たちは実際に切り替える? だから私は、誰もがされているのを願って スクラッチを楽しむ。 残念ながら、それは時間だ このから離れる - 残念ながらそれは離れて移動する時が来た これらはかなりのプログラミングブロックから Cにではなくの幸いなことに、すべての あなたがしたプログラミング構成 スクラッチにしている仕事をして 直接C言語に翻訳可能、と我々はしている について学ぶために開始する予定 今それらのいくつか。 条件についてレッツ最初の話 ブール式中。 これは準備金で実行されている バッテリ電源。 LUCASフレイタス:どのように その動作していない? [OK]をクリックします。 あなたはそこに行く、私は取得するつもりだ - LAUREN CARVALHO:だから条件は、 重要な彼らは私たちがすることができますので、 我々のプログラムにロジックを導入する。 ここでは、条件の例を示します。 Cプログラム内に。 それではどのようにこの点に注意してみましょう - したがって、この条件ブロック右ここでは、この printf文は実行されません ない限り、内部の条件 括弧、nは0より大きく、 trueと評価されます。 F内の状態の今、すべての ステートメントは、ブール式である、 これはつまり、そこに 唯一の2つのオプションがあります。 彼らはどちらか、trueと評価できた またはそれらはfalseに評価することができます。 だからここに、これは右、理にかなっている? N 0より大きく、それが正であることを意味 それが印刷されることを意味します数、 「あなたは正の数を選んだ。「OUT ブール式がたくさんあり​​ます つまり、との条件を形成することができる INITステートメント。 私たちは、より少ないがあります。 これは以下に等しい。 これは単に面白い[聞こえない]です。 あなたはそれがだた場合のprintfが発生する場合 次いで、0以上 あなたはこれを選ぶだろう。 そう等しいちょうど追加し 大なり記号の後に。 とは異なる、等しい等しく ただ1等号、等しい等しく 実際にどのように上にあることを意味します これの左側は同じである これの右側に何が ここで1等号は何ですか? ただ1等号とは何ですか? 割り当て。 LUCASフレイタス:それを言った? それは、キャンディですか? ああ、ない。 申し訳ありません。 申し訳ありません。 両方のお菓子を取得。 [OK]を、ああ! 三人はお菓子をゲット! ローレンCARVALHO:だからこの1右ここに ビッグバン演算子は、先行されている 等号、のように 等しくない。 だから、これは私の条件の範囲内であった場合には、 条件の本体だろう 実行する場合にのみどのような年代の 左は同じではありません 右で何をしよう。 私もちょうど持つことができます 感嘆符。 実際に、我々は機能で表示されます これがどのように使用されるかにスライドさせます。 LUCASフレイタス:ご質問? なし? LAUREN CARVALHO:我々は、これらを組み合わせることができます 詳細を構築するブール式 複雑な条件文。 だからここで、左の何の 二重線の右側または の右側には何でも 二重線は、trueと評価され その後、我々は、無効をプリントアウトします。 した後、ダウンここでは、どのようなのであれば 2の左側にある 右のアンパサンドと何の 2つのアンパサンドの右側 そして、真と評価さ 我々は有効なプリントアウトします。 二重線は、論理と呼ばれている OR演算子二重アンパサンドがある 論理AND演算子と呼ばれる。 はい? 観客:それらはちょうどています 小文字のLの? LAUREN CARVALHO:いいえ。 彼らは実際にしている - あなたは次のように、バックラッシュを知っている あなたのリターンキーの上に? あなたはそれを見ていますか? LUCASフレイタス:それは実際のバーだ。 LAUREN CARVALHO:これは、実際の ちょうど2小節。 読者:あなたが使用することはできます 文字列の等しい等しい? LUCASフレイタス:いいえ。 我々は、後で学習するつもりだ それについて何か。 LAUREN CARVALHO:機能があります あなたが使用できる。 しかし、あなたがする必要はありません ただ、まだそれを心配している。 私はこのプログラムを与える場合はどう 5番? 何がプリントアウトされます? 観客:[聞こえない] 有効な。 LAUREN CARVALHO:有効? うん。 私はそれを得たか分からない。 [笑い] LAUREN CARVALHO:それはようなものだ の怖い[聞こえない]。 観客:そう、ダブルと、 それはちょうど意味? LAUREN CARVALHO:うん。 だから、数5は、より両方です 0以上100未満である。 観客:なぜそれが1でしょうか? LAUREN CARVALHO:ワンアンパサンドがある 実際には別の何か、それはだ ビット演算子、あなたはよ 後については、こちらをご覧ください。 しかし、それは実際に動作するものだ 与えられた数のビットを持つ。 LUCASフレイタス:ちょうどそうではないと思う 今はそれを心配する必要があります。 LAUREN CARVALHO:私はそれはおそらくだと思う 来週来る。 LUCASフレイタス:任意の他の質問? なし? LAUREN CARVALHO:だから我々は見てきました。 スタンドアロンますが、それができることができ、それをブロック また、ブロックとし、他のペアにする。 したがって、この場合には、nがより大きい場合に 0、私たちは "あなたをプリントアウトするつもりだ 正の数を選んだ。」他、意味 それが0である場合、またはそれ未満の場合 0よりも、我々は、プリントアウトするつもりだ "あなたは負の数を選んだ。" ここで興味深いのは、これらのことである 互いに排他的である。 ケースのようにそこに行くことはないでしょう その中のこれとこれ 両方で印刷することができます。 私は、もしあなたが/誰と仕事を確信している スクラッチで箱、これはあるべき かなりお馴染み。 はい? 観客:我々は間にスペースが必要です int型のnが内GetIntで、その後のスペースに等しい if文? 我々は、ライン[聞こえない]を使用してのように LAUREN CARVALHO:ああ、ここにスペース? 観客:それと似ていますが、 あなたはスペースを倍増。 いや、上がる。 上がる。 LUCASフレイタス:ちょうどライン? 観客:うん。 LUCASフレイタス:ちょうど空白行? 観客:うん。 LAUREN CARVALHO:空白行? いいえ。 それはちょうど文体のことだ。 LUCASフレイタス:それはちょうど、時々のようなものだ あなただけのため、いくつかの行をスキップする コー​​ドは次のようになっていないこと テキストの巨大なブロック。 LAUREN CARVALHO:私は何が起こったのかと思う 私たちはここにコメントしていたことだったが、 皆さんが持っているように、それを取り出した むしろコードについて考える ちょうど私のコメントを読むより。 一般的には、間隔が本当にないでしょう あなたのプログラムの実行方法に影響を与える。 それは文体のもののよりです。 そして、我々は更新されたスタイルガイドを持っているとき そして年末には行く準備ができて スーパーセクション、我々は話をしましょう その詳細に​​ついては。 と間違って何かがある このプログラムは、右? 0は本当にありませんので、 負の数。 だから我々はそれを修正することができるかどうかを見てみましょう。 あなたは、おそらく想像することができます これで右言う? nが0よりも大きい場合、我々はあなたが」、印刷 正の数を選んだ。」すると、他 nが0未満であれば、「あなたが選んだ 負の数。「他に、「あなたが選んだ 0。 " 今興味深いのは、ということです これは永遠に行くことができます。 あなたがあれば、それ以外の場合はブロックを持つことができます ブロック、別のelseブロック、他の場合、もし それ以外は基本的に、そうでない場合はそうでない場合 限り、あなたが望むように。 そして、次のように構築されたとき、 これらは、全てのことを行っている 互いに排他的。 はい? 観客:なぜあなただ​​けを使用することはできません 別の[聞こえない]場合の代わりに? LAUREN CARVALHO:この場合は、はい私 場合は、別のものを使用することができ、それは次のようになります。 絶対に細かいため、 条件自体はある 互いに排他的。 しかし、条件が排他的ではなかった場合は、 お互いの、これがでしょう 両方の評価がないためにそれらを強制し、 それは理にかなっている場合。 読者:その場合は、可能性があり、私たちの巣 第一中の場合であれば? LAUREN CARVALHO:もし - どういう意味ですか? 観客:2の条件の場合 相互に排他的ではない? LAUREN CARVALHO:もし条件 相互に排他的ではない? しかし、あなたはそれらの一方のみを実行したいですか? 読者:あなたが欲しいだけ 代わりに、他の場合。 LAUREN CARVALHO:うん。 いつもたくさんがあるように起こっている これを行うことができる方法の。 あなたは間違いなく、巣、それらをことができます。 そして、あなたは、将来のスライドで表示されます あなたは、複数のIFSを持つことができるだけ1 別の後に。 しかし、これは論理的にする方法です あなたのプログラムの流れを整理する。 LUCASフレイタス:そしてもう一つがあります 事は、あなたが置くことについて尋ねたということです もし、その後、別の場合。 それは完璧に動作しますが、それは残念だ デザインのため、基本的にある場合 場合は、最初にチェックし、あなたがいることに注意してください 番号は、あなた0より大きい 単にプログラムを終了することができます。 あなたがいるかどうかをチェックする必要はありません それは右、0未満か? もしあればあなたが行う場合しかし、それはチェックするだろう 両方、私がもし他に行うとされている間、 それはどうかを確認するために起こっている それが0より大きいです。 そうである場合、それも見するつもりはない コー​​ドの他の行に。 だから、基本的には同じようにそれをチェックしている 二度不必要なので、だからこそ、私たち もし他にあればやる。 その他のご質問は? 観客:そうな機能 それ以外の場合には同じです それだけあればあった場合はどうなりますか? LAUREN CARVALHO:いいえ。 あなたが実際に私の次に見ることになるだろう それが可能な例をスライド 異なっている。 この場合には、ほぼ同じだ。 だからここでは、複数の例を持っている if文、および 機能は同じではありません 私はちょうどかどう言ったかのように、 そうでなければ、他の場合、他の場合。 ちょうど印刷なるかを考えてみましょう 私は数95を入力すると出 このプログラムに。 観客:[聞こえない] LAUREN CARVALHO:そして? 観客:[聞こえない] LAUREN CARVALHO:うん。 したがって、この場合には、これらの条件は、 お互いの相互排他的ではない。 と停止は何もないので、 この場合は、評価から、この条件 1が既に持っている、彼らだけだ すべてプリントアウトしようとして。 だから私は、これをどのように解決するだろうか? 観客:誰IFS? LAUREN CARVALHO:あなたは、他のIFSを使用することができます。 私は順序を変更することができます これらの、右? 私が最初にこれをやった場合はどうなりますか? さて、実際には、ない。 それは95のために動作しません。 LUCASフレイタス:いいえ、ちょうど他のIFS。 LAUREN CARVALHO:他のIFS これを修正しましたでしょう。 それが混乱を解消ん IFSの間、他のIFS? 読者:私はちょうどあれば、お聞きしたかった 、それは停止する場合は、他に使用しましたか? LAUREN CARVALHO:右。 だから、これだけ最初の1。 私は数95を入力した場合は、これだけ プリントアウトし、それたことがないだろう 他に進行しているだろう。 LUCASフレイタス:だけの種類を考える この問題が発生したかのように、これを行う。 他にはいない場合は、チェックのようなものです このため、その後、それを行う。 そこで、彼らはすべて相互にしているよう 排他的。 あなたはそれらの上の2に入ることができません。 読者:あなたは論理的に使用することはできます そして、そのような状況のために? LAUREN CARVALHO:うん。 つまり、私たちができるもう一つの方法だ この問題を修正しました。 我々は定義されている可能性がしている 範囲は、右? nが大きい場合だから私は言ったかもしれない 90未満 - まあ、私はこの1つは実際にはないと思います 重要ではありますが、ここで私が述べていることができるかの nが80より大きく90未満である。 70、80よりも小さいよりも大きい。 それはまた働いているだろう。 [笑い] LUCASフレイタス:彼女は怖いです。 LAUREN CARVALHO:恐れてはいけない。 LUCASフレイタス:そうではありません つまり、それは間違っているでしょう。 それは不必要だというだけだ 冗長。 コンピュータサイエンスのように、人はすべき 限りできるだけ単純である あなたが機能を持っている。 あなたがお菓子をしたいですか? 観客:それを必要としない。 LAUREN CARVALHO:あなたはギョッとしている 誰もが、ルーカス。 LUCASフレイタス:申し訳ありません。 LAUREN CARVALHO:デビッドも言及 これらはクラスで声明を切り替える。 基本的には何が起こっているのは、スイッチで ステートメントは、変数を取ります。 このケースでは、整数を取っている。 整数が1の場合、我々はするつもりだ あなたが小さなを選んだ」、プリントアウト 数。あなたは "整数、1であれば" 媒体番号を選んだ。「IF 整数が[高を選んだ」、3です 数。 "そして私はまた、デフォルトのケースを持っていた ダウンここでは、それは表示されないのは 残念である、アップ。 基本的に、これはただです 別の構文。 私たちは、正確な、これを実装している可能性が 同じもので、ifとelseの場合 文。 しかし、ときに別のがたくさんあり​​ます 条件の異なるたくさんの あなたが何をしたいかによる変奏曲 各入力には、これはオプションです。 だから、知っているだけでいいの構文です。 はい? 観客:なぜバックスラッシュがない 最初の1中のn? LAUREN CARVALHO:そこまでに? そこまでそこにはバックスラッシュませんN GetIntであるため - あなたはこれをしようとした場合、それはよ あなたにこのプロンプトを与える。 私に1と3の間の整数を与える。 そして、私はバックラッシュを入れ、N、それが希望の場合 次の行に私を取るが、私だけで 彼らは、整数を入力したかった コロンの後の権利。 あなたは、バックラッシュnを入れている可能性があります。 それは大したことではありません。 うん? 読者:このコードでは、これは ケース1は、そのためである それが最初のケースですか? なぜなら - LAUREN CARVALHO:いや、いや、ない。 だから、これは私に整数を与えている 1〜3。 nが1の場合は、私はこれを印刷します。 私は手紙を求めていたなら、私は可能性があります 私にAと手紙を与えた とCは、この場合には、Aのでしょう 観客:[聞こえない]。 ケースのと同じ[聞こえない] LAUREN CARVALHO:うん、右。 うん? 読者:あなたが持っていると思った場合はどう 関係式のより? だからではなく、Nを言っての 1に等しい、[聞こえない] nが第一ケース1よりも大きい? LAUREN CARVALHO:実は、私はそうでない場合 これらのケースのいくつかを定義し、これがでしょう キャリーダウンする。 だから実際には、多分これではありません あなたは何を求めている。 LUCASフレイタス:私は彼女がどうかを尋ねると思う ケースは、n個の場合0より大きかった 0より小さい。 LAUREN CARVALHO:たぶんスイッチ 文は、何をしたい、本当にありません その場合に使用します。 LUCASフレイタス:switch文がある ただ値で登録して、チェックしているの 値は、このまたはそのようなものです。 だから、実際にはできない 条件を置く。 観客:どのような人であれば [聞こえない]との種類? LAUREN CARVALHO:それはあったであろう 残念ながら、私のデフォルトの場合、 あなたが見ることができない。 LUCASフレイタス:[聞こえない] それらを見させる。 LAUREN CARVALHO:実際に、 あなたは何を知っていますか? ちょうど50を勉強しに行こう、と私は意志 ただ研究上のスライドにズームイン 50、これは単なる迷惑ですので。 だから私は、実際の条件に行こう。 これはちょうどしようとしている 少し時間がかかる。 わかりました。 だから、私は申し訳ありません。 少なくとも今、我々は確認することができます それは切断せずにすべてのもの。 わかりました。 彼らは10に置けばそうでは、デフォルトになる ここに私のデフォルトの場合に、そして私 ちょうど私ので、無効に印刷だろう 整数を入力してもらった 1〜3。 その他のご質問は? うん? 観客:それではケース1、ケースにしましょう 3は、あなたはそれがすべてになりたかったと言う 同じことで登録して、番号を選んだ つまり、媒体番号ではありません。 その場合には、冗長になる? あなただけの両方のテキストを変更します そのうちの、またはいくつかがあるだろう 冗長性? 結合する方法はありますか [聞こえない]? LAUREN CARVALHO:への方法があります。 それらを組み合わせるが、私はあなたができると信じて 唯一の隣接するものを兼ね備えています。 だから、私は何も定義していない場合 ケース2の場合、これはだろう どちらの場合にも適用されます。 ああ、私はケースのために何も入れていなかった場合 1、これは、両方に適用される ケース1および2。 それは理にかなっている場合。 読者:あなたはその1を繰り返すことはできますか? LUCASフレイタス:わかりました。 あなたは基本的に行った場合、のように、あなたが持っている 同じことはできますが、入れないで ここでは何も、あなたはどちらかになるだろう ケース1またはケース2は、これを行う。 右? このブレークはあなたが得る場合には意味 この場合に、ただ去る。 だから、ブレーキが何を意味するかだ。 私はこれをしなかったのであれば、あなたが見て、それはだ ケース1、あなたはこれを行うだろう。 それはケース2であった場合、それはまただろう ちょうどここに来て、それを行う。 観客:しかし、あなたはそれを行うことができますか? のための何かがあるとすれば ケース2 [聞こえない] LAUREN CARVALHO:私は信じていない あなたはそれを行うことができます。 私はあなたの周りにスキップすることができないと思います。 あなたは、ロブのことを行うことができますか? 私はそうは思わない。 観客:1番号だけそう 右、ケースの後に行くことができますか? ケース1、カンマ、2が存在することはできません? LUCASフレイタス:いいえ、できません。 あなたは間違いなくすることはできません。 LAUREN CARVALHO:つまり、ポイントです これはオプションであり、これはしないかもしれない あなたのユースケースに合わせて、そう、あなた 条件あれば使用することになります。 観客:なぜあなたはこれを行うだろう? スイッチ? LAUREN CARVALHO:私はこれを使用します あなたは非常に定義している場合 - 実際、ルーカスは、あなたがブロックしているされている。 LUCASフレイタス:ああ、申し訳ありません。 LAUREN CARVALHO:あなたは非常に持っている場合 あなたが欲しい定義されている動作 一人ひとりの入力、これは次のようになります。 書き出すよりも少し簡潔 それぞれについてif文。 観客:どういう ブレークが再び意味ですか? LAUREN CARVALHO:ブレークが停止を意味します。 私はこのブレークを持っていなかった場合には、覚えておいてください ここで、私たちは倒れただろう 次のケースへ。 LUCASフレイタス:ブレークを取得することを意味する switch文の外。 それが1なら、私はしたいので これを印刷して終了します。 私は何か他のものをチェックする必要はありません。 読者:あなたはしたくない 何か他のものを印刷します。 LUCASフレイタス:うん。 それは相互に排他的だから。 観客:そして、これは唯一の続行ん 最初のケースであれば、次の場合に 真実ではないでしょうか? それとも、すべてのケースをテストしません 同時に? LUCASフレイタス:いいえ、それ 順次チェックします。 順次、うん。 もう一つの疑問は、その後、我々はするんだ 私たちはすべてをカバーすることができますに移動します。 うん? 観客:そうな場合のために、可能性がある ただ1以外に何かをやっ? あなたはそれを範囲を与えることができる? LUCASフレイタス:いいえ。 LAUREN CARVALHO:私は考えていない あなたはそれを範囲を与えることができます。 LUCASフレイタス:あなたことはできません それに範囲を与えることはできません。 観客:ケースは、特定され [聞こえない]。 LUCASフレイタス:スイッチ 値のようなものです。 あなたが応じて異なることをやって 値に、特定の値。 rangeを行うことはできません、できません 他に何も。 それは見てちょうど別のツールです。 LAUREN CARVALHO:ほとんどの人は使用しないでください CS50は非常に多くのswitch文、 それはあります。 わかりました。 我々は話をするつもりだので、次の事 約三項演算子です。 これはちょうど別のタイプです の条件付き。 基本的には何がここで起こっていることは私はある 整数値を求めて、nがあるか 100よりも大きい、私はプリントアウトするつもりだ 「ハイ。 "そうでない場合、私はするつもりだ 「低」をプリントアウト それでは、それはやっていることは条件です 右ここカッコ内の、そしてあなた 種類の問題を考えることができます 私はどうかを求めているように これは本当かではありません。 それが本当なら、私が最初にこれを実行するつもりです 事、それは真実ではない、私はもし この第二のことをするつもり。 についての質問 三項演算子? LUCASフレイタス:ちょうどから注意したい デビッドは、使用しているときはいつでもということです 条件 - LAUREN CARVALHO:私は推測ダビデの ライブストリーム経由で見ている。 LUCASフレイタス:彼がやっている 今のライフストリーム。 あなたが条件を持っているときはいつでもそう、あなたはね 中括弧を置くことになって、 我々は、スイッチを持っていると同じように ここに声明。 ここでは、中括弧を持っている。 どのような条件では、ね また、それを置くことになって。 LAUREN CARVALHO:あなたが表示されます このスタイルガイドの。 私たちは、実際に持っていない 今のスタイルガイド。 私はデビッドのはまだ働い思う。 LUCASフレイタス:彼が言ったこと それだけで、今取り組んでいる。 LAUREN CARVALHO:ああ、それは今働いている? [OK]をクリックします。 スタイルでどうやら今年 あなただけの1行があっても、ご案内、 あなたはそれらを置くようになってきました 中括弧インチ あなたは、必ずしもために必要はありません。 プログラムの機能。 そして多分私達はちょうど休憩を取る必要があります 条件の後、まっすぐに行く クリアするにはスタイルガイドへ これらの事のいくつかアップ? LUCASフレイタス:うん。 あなたが疑問を持っていますか? 観客:いいえ、私はただ待っています スタイルガイドまで。 読者:あなたが戻って行くことができる 三項演算子に? LAUREN CARVALHO:三元、はい。 LUCASフレイタス:三項演算子です 基本的には他のif文が、 代わりに2つの行を持っていることの ANあれば、次にチェックする そうでなければ、あなただけの1行があります。 そこで、基本的に私は、文字列を与えたい場合は、 ハイまたはローの値、およびI nがより大きい場合にハイにしたい 100または低それが少ないなら、私は何ができますか で、この[聞こえない] 文字列があることを行って、[Iである プログラムは100よりもNも大き​​い尋ねる? 私はこの表現を持っている理由ので、それはです ()内の、その後 疑問符。 私はそれが100以上である聞いてるのよ? そうである場合には、高になるだろう。 そうでないなら、それは低いことになるだろう。 だから、基本的にはあなたが求めると思われるもの で登録して、括弧で質問する 条件。 その後、疑問符を置く あなたがそれを求めているからです。 これが本当であれば、それはなるだろう 最初の値にある[聞こえない]ここに。 そうでない場合は、私が置くつもりだ コロンの後の値。 それは理にかなっていますか? また、のようなものです何か C言語でツールが、あなたがする必要はありません 特にそれを使用します。 しかし、CSの人々は通常、好きなこと それだけで行を保存するため。 LAUREN CARVALHO:それは非常にエレガントです。 それはちょうど1文の中で多くのことを行います。 読者:だから、パーセント記号がある ただどのような結果に 前の行? LAUREN CARVALHO:ああ、ごめんなさい。 このパーセント記号は、実際には このプレースホルダは、S。 printf文では、これを持っている ここに文字列に何が起こっているのである プリントアウトしていますが、だけではなく、でき これはそこにあるよ置く。 それ以外の場合は、印刷するだろう 文字通りS OUT。 だから我々は保つために、ここでパーセントを置く 何のために開催されたこの場所 カンマの後に来る。 ため、文字列では、%のSを持っている。 整数、パーセント私のため。 フロート、パーセントfの。 あなたは、私たちのようなものが表示されます より多くの例を参照してください。 しかし、多分あなたは話をする必要があり 今しばらくのスタイルガイド それは最高だと。 LUCASフレイタス:あなたがに行くと cs50.net/style、次のように表示するつもりだ スタイルガイド。 問題のセットの場合は、ご使​​用のスコア の問題セットは、スコープからなり、 これは、すべて行った場合、基本的に意味します 問題の部分は、設定したり、場合 何かをしようとしました。 2つ目は、正しさである 手段は、プログラムがどのようなことをやっている やっていることになったり、それをしないた バグを持っているか、それは何をやっていません それが行うことになっています。 第三のものがデザインされ、その手段 あなたもこれを実装するか、であるアール あなたは、不要なステートメントを使用して? 例えばので、繰り返したい場合は、 数10回、あなたが書いている forループまたはあなただけの10倍をやっている 同じ文だけやって コピー&ペースト。 だから、デザインはそのためです。 そして最後に、スタイルを持っている。 スタイルだけで判断するようなものである コー​​ドが見える場合 読みやすく、ちょっとかわいい。 それだけで、基本的に意味します あなたのコードは読みやすいでしょうか? 探していた他の誰かがいるだろう あなたのコードは何を理解することができる それはやっている? それは、コメントなどを持っていますか? のそのスタイルについて話しましょう あなたが使うことになっている。 まず最初に、コメントである。 コメントはあなたのために非常に重要です コー​​ドは時々あなたがやっているので、 あなたのプログラムは、あなたが正確に何を知っている あなたはあなただけで起動そうしたい コー​​ディング、ちょうどCの束をタイプではなく、 誰か他の人が見ている場合は、しているしている コー​​ドは、それらのことができるようにするつもりはない 彼らは知らないので、それを理解する のようなあなたの頭の中にあるもの、 pesudocodeので、おそらく彼らは、意志 理解するために苦労する コー​​ドが何をしているのか。 だからコメントは、説明するのは本当に便利です 見て誰かに それが何をやっているあなたのコード、および 実際にも、あなたのために、 彼らは非常に便利だ。 鍵盤を強くし、ハードのPsetに行くように、 あなたは、コードが取得することを確認するつもりだ 長く、その後、コメントは実際にある 重要なので、何ごとを覚えている あなたのプログラムの一部を行います。 コメントを入れて、あなただけ行うことができます スラッシュをスラッシュしてからコメントを書いてください。 全体のラインは、コメントの一部である、 そしてあなたが何を書き留め、 それがであることを行っていない あなたのコードに使用。 これは、コンパイラのよう基本的にです それを無視しようとしている。 それは理にかなっていますか? 読者:あなたは再び何をしますか コメントを書くには? LUCASフレイタス:これ? スラッシュスラッシュ? あなたはスラッシュスラッシュを入力するたびに、どのような その行にあるつもりはない うんであると考えられる? 観客:そうコメントした後で、 単に新しい行を入力して起動する? LUCASフレイタス:ええ、その通りです。 LAUREN CARVALHO:スラッシュスラッシュ 単一行のコメント用です。 LUCASフレイタス:たとえば、 ここでは、持っている - 私はズームインしましょう​​ - 例えば、ここで私は、floatを宣言してい、 しかし、多分あなたはこれを入れておけば コー​​ド内で、あなたのような全く分からない これは、実際のように、何をしているか このコードを見ている誰か 、のように、あることを行っているか 一体何が起こっているの? あなたが変換 "というコメントを入れた場合 摂氏華氏、それははるかになります より多くの意味。 あなたにしている、のように、[OK]を、あなたがしている 変換を行う。 それは理にかなっていますか? だから、それだけで人々を助け何か 確認また、コードの準備や あなたは整理することができるよう あなたのコードより良い。 2つ目はあなたが行うことができるということです 複数行のコメントは、その1を持っている ラインの束にコメント。 代わりにスラッシュスラッシュを入れて持っていることの、 最初の行のコメント、スラッシュスラッシュ、 というように2行目と、あなた スラッシュのスターを使用することができます。 あなたがそれを行う方法があるため コメントの最初の行は、あなたがしている スラッシュスタースターをやろうとし、 そうちょうどそのような。 ちょうどここのように、我々は最初のを持っている プログラムは、通常あなたは誰を置く このプログラムが何をするか、ある そのようなもの。 それは一種のヘッダのようなものだ プログラムの。 ここでも、Aの何かではありません コンパイラは気にするつもりはしているが、 あなたは何この知るこ​​とが重要です プログラムがないか、他の人のために あなたのプログラムが何をしているか知っている。 だから、スタースタースラッシュしてからか あなたは星をやろうとしている最後の行 閉じることができるようにスラッシュ そのコメント。 そこで、基本的に他のすべての行のために、 あなただけの何でも書いて、このことができます すべて無視されようとしている。 また、単にスタイルとして、あなたがいることがわかり ラインの各々が星を有しており、すべての 星が整列される。 これらは非常に重要なことである あなたのコードがきれいに見えること。 いいですね? 今、条件。 ダビデは言っていた私たちがべきであること 実際に、これらのスライドに入れていることである あなたはif文の任意の種類を持っているとき または状態の任意の種類、 あなたはそれを示すために中括弧を使用する必要があります これが起こるとしていたものです あなたが条件を持っているとき。 技術的には、あなたが条件を持っている して、次の行はただ一つです 行には、技術的にはありません 中括弧を置く。 基本的にコンパイラが理解するであろう とにかく、暗黙としてそれ。 しかし、CS50のために、我々は入れてあなたたちに尋ねる 中括弧ちょうどあなたのように コー​​ドはより構成されています より読みやすい。 もしあれば、そのコードが長くなるため、 中括弧などを持っていません。 それは本当に厄介な取得します。 LAUREN CARVALHO:これは正確に 何デイヴィッドはちょうど指摘した 私の前のスライドで。 これは間違いなくカーリーなしで動作 中括弧が、文体の理由で 我々はそれを頼むつもりだ あなたはインチのものを入れない そして、あなたはstyle50の実行を開始するとき、 チェック50の種類にある スタイル、それがこれを行うにを思い出させます。 LUCASフレイタス:そしてもう一つは、ある 一緒に中括弧を置くことを忘れないでください 各行の。 だから、やる、例えば、Lの。 カーリーを開き、次の行に移動 中括弧は、その後、次の行に移動します。 4つのスペースでインデント、。 次に、どのような場合、別の書き込み 行し、中括弧を閉じます。 だから必ずあるものカーリー両方 中括弧は別の行にあります。 このコードは次のように持っていたそうであれば対象読者 10他のIFSは、これはすべき ブラケット10セットできますか? LUCASフレイタス:ええ、それらの各々のために。 うん。 もしそうであればそうでない場合、などなど。 読者:あなたすることはできません インデントタブを押して? LUCASフレイタス:私たちはあなたを求めている 人は4つのスペースを使用します。 一部のテキストエディタはタブを翻訳 自動的に4つのスペースとして。 geditのはいないので、あなたが持っている スペーススペーススペーススペースを行います。 これはまた、いくつかの何かである プログラマはタブだけ、いくつかの操作を行い プログラマは、唯一の4つのスペースをし、 そしていくつかの他の人々もやる 2または3のスペース。 それはちょうどそのここでは、求めているのは もし4つのスペースをする男。 観客:ほぼ間違いなくあります geditのための方法があるはずだ 自動的に[聞こえない]。 好き未[聞こえない]これを行います。 LUCASフレイタス:うん。 私は、あなたが設定に行くことができると思います。 観客:それはすでにそのすべてを行います。 LUCASフレイタス:それはすでにでしょうか? [OK]をクリックします。 だからもし、そのことを確認してください 4つのスペースを持っています。 観客:我々は、中に入れて持っていますか だけでなく、forループ内のブラケット? LUCASフレイタス:はい。 LAUREN CARVALHO:たびに ただ、コードのブロックをカプセル化する 中括弧を使用してください。 そして、あなたは我々だけだと思う​​前に、 よからこれについてsticklersいる 君たちが取得するために行くならばその理由、 大企業での技術のインターンシップ、 彼らはあなたのスタイルガイドを与えると、 彼らは、これがどのようなあなたであることを教えてくれます コー​​ドは次のようにする必要があります。 そして、あなたは次のようなコードを学んだにもかかわらず、 この、多分あなたのインターンシップ あなたが何かを行う必要があるでしょう 完全に異なる。 彼らはあなたが適合するように期待しています 自分のスタイルに。 LUCASフレイタス:1つのより多くの事です それはあなたが、私はXのように持っている様子がわかります スペース、より少ないスペース、0? あなたが子を持っている時はいつでも - それは、プラス、マイナス、時間、少ないようにすることができます より、どのようなオペレータ - あなたが左にスペースを配置する必要があり オペレータの権利。 LAUREN CARVALHO:それらは バイナリのオペランドと呼ばれる。 ちょうどあなたが常にスペースを確認してください バイナリのオペランドが不足しています。 LUCASフレイタス:これは いないバイナリのオペランド。 LAUREN CARVALHO:それはある 2つのかかるので。 LUCASフレイタス:ああ、うん。 [OK]を、スイッチ。 まず、あなたは同じようにそれを参照する必要があります ifまたはelseステートメントには、次のものが 独自の行に中括弧を置くこと そして、ここで中括弧の下に。 単一のスペースがあることに注意してください 他の場合、スイッチの後に、ちょうどのように 我々は、単一のスペースを持っていた そのカッコ。 だから、それを配置する必要があります。 とスペースは、右それぞれの後にありません 括弧または終了する前に、 括弧。 だから、それはすべて一緒だと参照してください。 またここに好きです。 うん? LAUREN CARVALHO:私は思う 我々は上に移動する必要があります。 LUCASフレイタス:これはの一部である CS50のため、使用しているスタイルガイド。 cs50.net/styleに行くようにしてください これを見てみましょう。 これらはすべて非常に重要である あなたのスタイルスコア。 私の文に戻りましょう。 LAUREN CARVALHO:私はむしろしたい ただstyle50を使用しています。 我々だけで行くつもりです ストレートループを。 わかりました。 それでは、今、戻ってコンテンツに取得させ 我々は、スタイルガイドの上行ってきたこと。 ループ、スクラッチでそれらを見てきたし、 我々は、それらについて話をするつもりだ C. forループでは、あります 3つの部分 ループは、この宣言。 あなたは、あなたの初期化を持っている そのあなたの変数を設定します。 あなたはあなたの状態を、持っている 何かがあるかどうかを確認する trueまたはfalseかどうか ループは継続すべきである。 そして、あなたは、あなたの更新を持っている あなたの変数を更新しています。 ちょうどいくつかを簡単に見てみましょう アクションで、forループこれのCコード。 何が起こっているのは、ここにある 初期、我々は0にIを設定している。 条件では、チェックしている iが10未満であるか否かを判定する。 そしてアップデートで、我々はしている 私はインクリメント。 それでは、からなります このループのために? LUCASフレイタス:実際には、まず第一に、 あなたたちは、私+ +とは何か知っていますか? 観客:1増加した。 LUCASフレイタス:はい、1増加した。 だから、これは同じものです。 そう私はプラス1に等しい。 そして、我々はスペースがないことに気付く iと+ +の間。 だから、あなたたちは、これが何をするかを知っていますか? 誰か教えてもらえますか? そしておそらくいくつかのお菓子を取得 それのために? 観客:[聞こえない] LUCASフレイタス:わかりました。 [聞こえない] [聞こえない]後で皆を示しています。 ええ、それは「これを示すために起こっている CS50は、「10倍です。 LAUREN CARVALHO:私はそれがあったと思います スライドのタイトルに。 LUCASフレイタス:ああ、うん。 [笑い] LUCASフレイタス:するのに役立ちます。 LAUREN CARVALHO:だからそれらの forループである。 我々はいくつかのより多くの例を参照してくださいするつもりだ 後でforループの。 しかし、ここでは実際に見てみましょう あなたが遭遇ループの第二のタイプ C言語で、それは、whileループと呼ばれています。 whileループでは、き ただ条件を得た。 条件がチェックインされている 始め、もしその条件 内のコード、その後、真であると評価 一方、ブロックの本体 実行されます。 とコードは改善されつつあります。 そのように長い間実行 条件が真のまま。 ここでCのwhileループの例を示します。 我々は10にカウントを設定しようとしている で始まります。 限りカウントが0よりも大きいように、 我々はこれをプリントアウトしておくつもりだ ここに変数。 私たちは、カウントをデクリメントするつもりだし、 再度状態を確認してください。 プリント、デクリメント、チェック 条件を再び。 ここでは、関連する例があります 以前のご質問に。 私達がいたとき、我々は、パーセントsであった 文字列をプリントアウトし、今では 我々は我々が持っている、int型をプリントアウトしている 私たちのプレースホルダとしてパーセント私の代わりに。 文字はすべてき​​れいでなければなりません 直感的には、int型の文字列は、私のためにね。 このコードが実行されるのであれば、あなたがすべき プリントアウト、10から0カウントダウン 各整数。 LUCASフレイタス:そして、あなたが考えることができる それが空白のように感じている割合として スペース、そしてあなたはこれを入れている ここでその空白の変数。 したがって、たとえば、ここで私はちょうど必要があります 空白、その後、私が入れている 、右がカウント countの値。 それは理にかなっていますか? 私はprintfのように行うことができます してから、カウントを引用? その動作には問題でしょうか? 観客:いいえ。 LUCASフレイタス:いいえ、それは変化するために 実際に単語「カウント」をプリント 代わりに、値を印刷する。 これは、それが値を出力させる方法です 変数に向けての代わりに、 変数の名前だけ。 ご質問? 観客:なぜあなたが探し使うのですか しばらくは対照的に? LAUREN CARVALHO:私はのために使用します ループ、私が知っている場合、正確にどのように多くの 私はループが実行する反復。 この場合、それは問題ではないので、 つまり、私はちょうどしようとしていた 本当にシンプル考える このスライドの例。 しかし、例えば、あなたが何かをしたいとしましょう しばらく続けるために - LUCASフレイタス:たとえば、あなたがしている 人まで、入力を求め あなたに右入力を提供します。 そう入力がない間のような [OK]を、それを求めておく。 またはあなたがいる間、親が与えていないような あなたのお金、それを求めておく。 [笑い] LAUREN CARVALHO:あなたが方法がわからない 何度もあなたはそれを行う必要があるでしょう。 LUCASフレイタス:あなたがいないため、 それはだ何回知る 続けるつもり。 LAUREN CARVALHO:しかし、forループで あなたは何度も知っておく必要があります。 うん? 観客:だけを明確にするには、パーセント これは約何かと言う 起こり、整数のためのiの、 バックスラッシュN - LAUREN CARVALHO:手段? 誰がバックスラッシュnは何を意味するか知っている? 新しい行、うん。 その通りです。 LUCASフレイタス:あなたが考えることができます 新ラインとして、nの。 LAUREN CARVALHO:ニース。 読者:その数は何ですか ダッシュダッシュ[聞こえない]? LUCASフレイタス:カウントマイナスマイナスです 同じことは、プラスプラスが、 代わりに増加する、 それは1減のだ。 LAUREN CARVALHO:任意のより多くの ループ質問しながら? なし? ああ、私たちは、ことになっていた それをスキップした。 これは、DOループの中にある。 を除いてwhileループに非常によく似 この場合、我々は後に状態を確認してください 本体のコード ループは一度実行されます。 だから我々はコードを実行する 最初何で。 その後、我々は実行状態を確認してください 再び条件が真の場合。 あなたがするとき、これを使って自分自身を見つけることができます あなたがユーザーの入力を求めている。 あなたは常にする必要があるとしているので、 一度聞いて、[内容に応じ ユーザ入力はあなたがするかもしれない、ある 求める​​プロンプトを表示している場合、何度も何度も尋ねる 入力は何ではなかった それがあると予想。 観客:だから、フォームのようなものだ 人々が記入してください。 LAUREN CARVALHO:ええ、その通りです。 あなたは、あなたの非常に最初に、私が思うに、見つけることができます PSET、あなたがする必要があるとしている 収集するために行うだけでなくループを使用 ユーザからの入力。 観客:状況に応じて、 あなたの中のループはより多くを実行する傾向がある 多くの場合、様ループ、しばらくより 1か何かに? LAUREN CARVALHO:それは正確だ場合 - LUCASフレイタス:彼らは常に実行する必要があります あなたの時間の正確な量 それは実行したい。 我々は、理由私たちが本当にしながらやるように使用します 少なくとも一回の入力を取得したい。 しばらくループでは、時々あなたはしたくない そうでない場合は、すべてでそれを実行するには 実行するためのケース。 だから、設計に依存します。 私が意味する、次のいずれかの使用は、一方または行うことができます しばらくする限り、コードのことを行うように それが行うことになっています。 LAUREN CARVALHO:しかし、私はやる あなたへの答えを考える 問題は、はいおそらくある。 の条件が偽だったとしましょう​​。 1ケースでは、一度だけ実行し、う 別のケースでは、ゼロ回を実行します。 そう、そう。 これ以上の質問? はい? 読者:ループ条件が指定できます 変数、他の面でのforループ [聞こえない]より。 LAUREN CARVALHO:ええ、 それは何もすることができます。 おそらく始めのPsetのために、 その際に遭遇する必要はありませんが、 間違いなくそれは何もすることができます。 LUCASフレイタス:私は思う 我々はここで終了です。 LAUREN CARVALHO:私たちはいますか? なし? LUCASフレイタス:ループ? うん。 LAUREN CARVALHO:我々はすべきではない。 ああ、私たちはループで行われます。 [OK]をクリックします。 実際に、我々はそう話をしてきたので、 多くの、のは実際にすべてを移動させて study.cs50.net/conditionsにフェールオーバ。 そして、あなたがダウンしてナビゲートするつもりだ 問題のウィジェットへ。 さて、実際に、人々はなっている間に これはセットアップ、CS50研究である あなたのTFをするツールになるだろう セクションに対して、その準備をするために使用する あなたはセクションを逃せばあなたたちは使用することができます。 これは、スライドの束が含まれているために起こっている、 それぞれについて、いくつかのヒントとコツ トピック、およびいくつかの練習問題 ソリューションと。 誰もがちょうど見てみない理由 この問題ではまさにここ。 私申し訳ありませんが、私が思い出したはず 今日のラップトップを持参する人々。 しかし、あなたは持っていない場合 ラップトップは、それは大丈夫です。 あなただけでこれを書き留めることができます 一枚の紙以上に見える あなたの隣人の肩。 のは、そのプログラムを試してみて、書いてみましょう 推測するために、ユーザーに求め、 家族あたりの子供の平均数 米国におけるユニット。 その数は、あなたのように、ところで、2である これらの例から見ることができます。 我々は数の平均をプリントアウトしたい 米国では、家族ごとに子供たちは、私たち 何をしたいですか? 我々は、入力を収集したい ユーザーからの。 した後、どのようなユーザーのに応じて、 入力には、プリントアウトしようとしている、ある これが正しいかのどちらか またはこれは正しくありません。 そして、あなたはよ非常にまず最初に 申請者は小さな矢印をクリックすると、参照してください。 問題のあるウィジェットの下部にある いくつかの擬似コードをメモするスポット。 だから、まだプログラミングをしていない。 あなたは自分を取得している 順番にアイデア。 誰もがルーカスを助けたいん 右を思い付く この問題のための擬似コード? LUCASフレイタス:最初の事は何ですか 我々は、おそらくここで行うべきだと? 皆さんはどう思いますか? 観客:[聞こえない] LUCASフレイタス:うん、OK。 だから、印刷。 ただ印刷この平均値を言う 人々の数? [OK]をクリックします。 プリントの質問、のは言わせて。 私はこの質問を印刷した後、 私はどうしたらよいでしょうか? 観客:入力を取得。 LUCASフレイタス:入力を得る。 何か他には? 観客:コンディション。 LUCASフレイタス:条件。 LAUREN CARVALHO:それは何ですか 条件があることを行って? 観客:[聞こえない]の数。 LAUREN CARVALHO:右。 LUCASフレイタス:だから、私は行きます 状態をチェックインするには? 観客:それが2の場合。 LAUREN CARVALHO:それが2の場合。 その通りです。 LUCASフレイタス:問題がありますか 私がすべきことを他に? 観客:カウント。 LUCASフレイタス:だからそれはだ場合には 2に等しい、のは言わせて - 入力が等しいなら、私はちょうど書いてみましょう 2に、私は行くよ何 行うには、印刷正しい。 して、そうでなければ、私は行くよ 間違って印刷します。 何か他には? なし? LAUREN CARVALHO:だから をクリックすることができます - 誰もがこのダウンがありますか? LUCASフレイタス:それは理にかなっていますか? だから今のこれをコード化してみましょう。 LAUREN CARVALHO:あなたは少しをクリックした場合 それは実際にあなたが保存され、矢印 本当にエキサイティングで擬似コード、。 そして、あなたは、コメントにそれらを作ることができれば あなただけを思い出すようにしたい 何をすべきか。 LUCASフレイタス:だからたとえば、最初の 私は、質問を印刷するつもりです どのように私は実際に、それをするつもり? printf関数。 そうprintf関数、および質問が平均である あたりの子供の数 米国では家族。 それから私は取得するつもりだ ユーザからの入力。 それでは、どのよう私はそれを行うことができますか? 聴衆:INTを取得します。 LAUREN CARVALHO:GetIntで。 LUCASフレイタス:わかりました。 したがって、最初の宣言は、右? int型、のはそれを呼び出すN GetIntで等しくなりましょう。 そして今、条件。 だから私は私が行くよと言ってみましょう チェックの答えをここまで。 したがって、最初は、nは入力が等しい場合に へ - どのように私はそれを書くつもりですか? 観客:イコール等しい。 LUCASフレイタス:パーフェクト。 そうN。 そして、私はスペースがないことに注意してください 等しく、真の、スペース、等しくなります。 そして今、私は何をすべきか? スタイルのために非常に重要な何か。 中括弧。 そして私は印刷するつもりです。 どのようにして印刷しますか? printf関数。 観客:それは資産計上していませんか? LUCASフレイタス:いいえ。 それは、すべて小文字ことになっている。 だから正しい。 これは、printfのために十分である ステートメント、または私は何も不足しているのですか? 観客:改行。 LUCASフレイタス:改行、うん。 そして今、他。 観客:スペースがある printfの後、あるいはまったく? LAUREN CARVALHO:我々はすべき スタイルガイドをご確認ください。 観客:それはあってはならない。 LUCASフレイタスは:[OK]を、してはならない。 だからそれ以外、printf関数は、「それは間違っています。 " LAUREN CARVALHO:おっと、あなたの引用符。 LUCASフレイタス:わかりました。 何か他には? それはよく見るのですか? LAUREN CARVALHO:我々はそれを試してみましょうか? LUCASフレイタスは:うん、それを実行してみましょう。 だから、コンパイルだし、それ それが動作するようです。 それでは二人の子供を試してみましょう。 それは正しいです。 そして今現在、代わりのをもう一度実行してみましょうが、 二人の子供を置く、みましょう 私は5のように置くつもりだと言う。 それは間違っています。 だから、それが動作するようです。 LAUREN CARVALHO:なぜあなたがそれらを表示しない あなたが何かを置けば何が起こる いくつかの手紙のような、奇妙な。 LUCASフレイタス:ああ、うん。 のもそれを確認してみましょう。 ユーザーが混乱しようとしている場合はどう あなたのプログラムで、彼らだけで 書き込み、私は2を知らない。 これは、再試行を言おうとしています。 LAUREN CARVALHO:だからGetIntで 再試行するためにそれらを求めています。 私たちは、世話をする必要はありませんでした それの私達自身。 LUCASフレイタス:うん。 私は実際に数を入れない限り、だから、それはだ 再試行する私を求め続けるつもり。 観客:どのようにそれを実行しましたか? LUCASフレイタス:クリックするだけ このスターボタン。 LAUREN CARVALHO:あなたは上がるはずです。 そこに行く。 LUCASフレイタス:スター すぐそこにボタンを押します。 うん? 観客:それは[聞こえない]を求めていますか あまりに進数で? LAUREN CARVALHO:私はそれを確信しています。 LUCASフレイタス:それは何をするか? LAUREN CARVALHO:彼らは入力した場合 10進数で、私は思う それが要求するようになるだろう。 LUCASフレイタス:見てみましょう。 LAUREN CARVALHO:ので、 それがint型ではありません。 LUCASフレイタス:うん。 LAUREN CARVALHO:だから、それはint型ではない、 INTが再試行するように指示されます取得します。 観客:だから、コード内は次のようになります プロンプト小数点以下 これらは入力する必要があり、ユーザ 特に整数? LAUREN CARVALHO:GetIntでは、実際には 私たちのためにそれをやって。 観客:いいえ、私は我々が望んでいる場合を意味する 入力して[聞こえない] LUCASフレイタス:あなたが平均のように言うことができます 米国では子供の数。 知りません。 我々は、例えば、「してくださいと言うことができます 入力する整数。 " LAUREN CARVALHO:整数 平均数を。 私が意味する、それがどれだけの あなたの単語それは、右? LUCASフレイタス:うん。 これは実際のコーディングの一部ではありません。 それはどのようなのようなより多くのだ あなたがするつもりだ あなたのプログラムで書く。 観客:それあればどのように我々はそれを実行するだろう [聞こえない] geditの中で実際にあった。 代わりに、プレイを押すの? LUCASフレイタス:させて頂きます 最初にそれをコンパイルします。 我々は、makeを実行して、それを行うことができます およびファイルの名前。 そして、それを実行するために、我々は、ドットスラッシュをやる そしてプログラムの名前。 読者:私は私がした場合だった何を意味するのかと思います 私たちは、プログラムが応答したかった 彼らの間違った、無効なエントリ、 あなたがに入れてはならない - LUCASフレイタス:私たちはすることができません ないことがあるため、これは言うコード 再試行であるの取得intから来る すでに実装されている機能 CS50ライブラリ経由で、それ以来私たちのために それはすでに、そこに我々が実装だ だけではなく、[聞こえない]ことができます。 LAUREN CARVALHO:あなたが使用しない場合 GetIntでは、あなたはそれを行うことができます。 LUCASフレイタス:うん。 あなたはGetIntでを使用している場合しかし、あなたがすることはできません。 その他のご質問は? 読者:あなたのように行っている可能性 GetFloat指定してから置くことができる 十進数ではそれ? LUCASフレイタス:うん。 観客:[OK]をクリックします。 次に、あなただけ入力できた 等号をフロート - LAUREN CARVALHO:うん。 を除いて、まったく同じ フロートintの代わりに。 LUCASフレイタス:ちょうどそれをここに置く そしてそこGetFloat指定。 読者:あなたがするように 参照するか、見てきました - LAUREN CARVALHO:我々は持っている まだもらっていない。 観客: - との不平等をしてい 山車んではない[聞こえない] 観客:セミコロンは何を意味するのですか? LAUREN CARVALHO:セミコロンだけ このステートメントが完了したことを意味し、 そして私達は行くつもりです 次のスライドへ。 観客:だから、それが必要だ 毎回? LAUREN CARVALHO:うん。 さて、[OK]を、そうではない、これらの条件のために、 彼らがしているので 何かをカプセル化する。 そこで、基本的に何かが発生している場合 その後、中括弧を作成するには ブロックは、セミコロンを入れないで 最後に。 LUCASフレイタス:しかし、すべて 他に、はい。 あなたが文を終了したら、 セミコロンを置く。 そして、あなたはセミコロンを忘れてしまった場合、 コンパイラは、あなたに怒るだろう あなたが持っているつもりです それを修正しようとする。 LAUREN CARVALHO:私はセミコロンを置く場合 ここで、それは、これを停止し、Iう 何の実行に取得することはありませんでしょう 内側、ところで。 だから、これらの一般的なバグの一つだ。 観客:常に実行する。 LAUREN CARVALHO:うん。 この場合、我々は常にだろう 中身を実行します。 読者:あなたのスタイル[聞こえない] と思った、あなたのためにそれを添付します。 LAUREN CARVALHO:ああ、それは本当だ。 観客:[聞こえない]シングル ラインの事[聞こえない] 観客:はい? 読者:あなたは複数持つことができます 1行に入力? だから、ユーザーに依頼することができますように 二つのことを印刷する? LAUREN CARVALHO:使用しない - LUCASフレイタス:いいえ。 それでは私もしたくなったとしましょう この整数mを取得する。 私は別の行でそれをしなければならない。 読者:あなたが実行した場合 それは、どのように[聞こえない]? これは、プロンプトをプリントだろ そこに[聞こえない] そして、あなたは1を入力したい - LAUREN CARVALHO:まあ、それを実行する。 私が意味する、から私たちを止めるものはありません ただそれを実行していると何を見て どうなる。 LUCASフレイタス:私はそれがだと思う するつもりは、私たちに文句を言って 我々は使用していないので - LAUREN CARVALHO:おっと。 LUCASフレイタス:それは右の私たちに訴えた 今我々はこれを使用していないので、 変数が、私はなかった場合は、例えば、 nは等しくあると等しく、mは等しい その後、何でしょう、に等しい この場合で起こる? このプログラムは何をしますか? 読者:私は思ったんだけど どのようにでしょう - LAUREN CARVALHO:彼女はちょうど望んでいる それがどのように見えるか知っている のように、私は右、と思いますか? だから、そのうちの一つを取って、その後、 それは第二の1を取った。 私たちは上に移動すべきだと思う、 我々は1以上を持っているので、 前へ行くスライドショー - あなたは数学をプルアップしたいのですか? LUCASフレイタス:うん、数学。 LAUREN CARVALHO:進呈 私はちょうど1秒。 いくつかの異なる数字があります C言語で数値データの変数 異なるタイプに分類することができ、 これらはあなたがよものです 最も頻繁に参照してください。 とINTは整数です。 任意の小数点以下を持つことはできません。 アプライアンスでは、それはとり int型を格納するための32ビット。 フロートは小数を持つことができます。 また、ストアに32ビットを取る アプライアンス内のフロート。 ダブルは小数点付きの数である それを格納するための64ビットを要する点 これはあなただけで持つことができることを意味します より高い精度のため あなたがより多くを持つことができます - あなたは何と呼ぶのですか? LUCASフレイタス:ええ、それはより多くのです。 LAUREN CARVALHO:より多くの場所 小数点以下。 そして長い長い整数です すなわち、64ビットを取り アプライアンスでの痛いこと。 LUCASフレイタス:だからそれができる int型よりも大きいとすることができる。 LAUREN CARVALHO:データについての事 C言語での型は、彼らはあなたを伝えることは何か あなたが格納できるデータの種類 あなたの変数に。 彼らは、あなたがこれを使用する方法を教えてくれ プログラム内の変数。 それだけで追跡することが非常に重要です どのようなデータ型では使用しており、している場合 あなたは、データ型からキャストする必要があります 別の、あなたが知っていることを確認してください ときに、正確に何が起こる キャスティングが行われます。 そして、あなたは、後で例を見ることができます これらのスライドで上 発生する可能性が間違い。 のC言語でいくつかの数学を見てみましょうと、 本当によく考え、私が推測する、 ときは、この起こっているのかについて 数学が行われている。 最初の行では、何が 私はXを宣言する際に起こって? 読者:あなたができるようにしている 何かあるとX? LAUREN CARVALHO:うん。 まあ、私は実際に動作を求めている メモリの32ビットのためのシステムですよね? 私はint型を格納することができる、と 私は、int型のXを呼ぶつもりです。 LUCASフレイタス:基本的にメモリに行く と32を持っている場所を見つける ビット、ねえ、私はこのスペースが欲しい、と言って、 そしてそれは、Xと呼ばれるようになるだろう。 だから、あなただけのほとんど発見している あなたの記憶にあるボックス Xのための値を格納する。 LAUREN CARVALHO:そして私は初期化 私は保存することを意味し、X、 その代わりに2の値、そのチャンク 我々は、動作に尋ねたメモリのこと のためのシステム。 そしてダウンここで我々が​​やっていることです。 私たちは実際に宣言しています 1行で、yを初期化する代わりに、 我々がここまでやったように2行で、 また、まったく問題である、我々はしている Xに1を加算し、我々はそれを保存している yの値。 LUCASフレイタス:だから、基本的に何本 行は、それが今yの箱を見つけ、ない、 そして、その値、事 あなたは、ボックス内に置くことであるつもりだ xの値に1を加えたことになるだろう。 だから、yについて、このボックスを持っています。 それは、xの値を取得見える ここでは、それは2だと表示されます。 そう、そこに置いて、プラス1 それはそこに3を入れます。 それは理にかなっていますか? そこでyは、この場合、2となる。 LAUREN CARVALHO:クールなすべての権利、。 我々はいくつかの追加を見たので、今度は考えてみましょう 私はここでは約分裂 フロートを宣言し、初期化する 、その答えと呼ばれ、10で1を割る そして、私は答えをプリントアウトしています 小数点以下2桁まで。 そして、私のprintf文で、ここで注意、 私は2に何かを印刷したいとき 小数点以下の桁、%0.2 Fで 私が使用したいもの。 だから、ポイント2はちょうど言っている 私は、後の二つの場所を必要とする 小数点以下はプリントアウト。 今、何が起こるだろう 私は、このコードを実行する場合はどうなりますか? 誰もがアイデアを持っていますか? 何がプリントアウトでしょうか? LUCASフレイタス:どのようなものがあります 我々が得ることを期待。 LAUREN CARVALHO:何を 私たちは、まず第一に、したいですか? LUCASフレイタス:[聞こえない] LAUREN CARVALHO:0.1、うん。 しかし、何が出力します? 観客:[聞こえない] LAUREN CARVALHO:まあ、いや、実際には。 これは私が話していたものですなぜ のために非常に慎重に追跡する必要があります あなたのデータ型。 だから、これはどのようなデータ型ですか? int型は、右か? 全く小数点以下はありません。 10もintです。 全く小数点以下はありません。 私はint型でint型を分割する場合は、私が取得 0.1ではないint型、int型のため 小数点以下の桁数を持っていますが、単に0することはできません。 int型は、単に切り捨てているため 小数点以下オフ。 LUCASフレイタス:だからあなたはいつ int型での操作は、あなたがしようとしている 答えとしてint型を取得します。 そこで、基本的に、どのようなコンピュータ やっている、それはで割り1だ 10、それは0.1を得る。 しかし、それはこれが、待って、ようなものだ あなただけの整数であることになったので 0.1を無視するので、今ちょうど0です。 LAUREN CARVALHO:だから私はこれを印刷する うち、私はむしろ0.10よりも0.00を得る。 LUCASフレイタス:理にかなっていますか? LAUREN CARVALHO:それはようなものだ 右、不幸なの? LUCASフレイタス:では、どのように我々はこの問題を解決することができますか? LAUREN CARVALHO:レッツ 試してみて、これを修正。 ここで私はどこの例を示します。 実際に1をキャスト とフロートに10。 だから今、1はもはやint型ではありません。 1は、フロートです。 ちなみに、これは単なる構文です あなたは1からキャストしたいときのために データタイプ別に。 あなただけのデータ型を置くことができます 括弧とばかり先行していることがある あなたはキャストしている値。 だからここに、私がでフロートを分割しています フロート答えを得るためにフロート。 そう、これはの場合と 事実は、0.10を印刷します。 それは理にかなっていますか? LUCASフレイタス:だから型キャストだけです 他の型に変換する。 だから、1は実際には1.000で浮かんでいる。 いない、まさにこの、それは何か 小数点以下の桁に それは実際には1である。 それは理にかなっていますか? うん? 読者:あなたはフロート答えをしなかった場合 10で割った1.0に等しい? LAUREN CARVALHO:あなたが実際に行っている 次のスライドにそれを確認します。 それは実際に私たちの非常に次のスライドです。 これは実際よりも進歩しています 型キャスト、私は思う。 したがって、これら2はフロートだけである その彼ら事実の性質 小数点以下の桁を持っている。 はい? 観客:何をやっている場合、[聞こえない] 10で割った? LAUREN CARVALHO:実際にフロート int型で割った実際にあなたができます フロート、それが正常に動作しますので。 誰もがこのことを理解していない、待つのか? これは本当にあることを行っているので、 PSET1において大したこと、実際に。 はい? 観客:でしたあなただけの迅速 赤い部分の上に行く? LAUREN CARVALHO:赤い部分、うん。 ルーカスは、あなたがしたいですか? LUCASフレイタス:わかりました。 だから覚えている割合 プレースホルダです。 それが空白のようなものだ。 それでは、すべてを理解してみましょう つまり、ここで起こっている。 %は、それがプレースホルダだことを意味します。 その後、ことを意味し、Fを持っている このプレースホルダは、フロート用です。 我々はここにある最後の事はある 私は2が欲しいことを意味0.2、 フロートの小数点以下の桁。 私は%Fを持っていた場合、彼らはそれが置かれます 小数点以下の束。 だから、僕は0.2または0.1または0.5を置くことができ、または 何でも、それはそれを置くために起こっている 小数点以下の桁数。 唯一のことは、あなたが好きな置けばということです 0.100または.1,000、それは実際にはありません これらすべての小数点以下の桁を置くつもり それが十分なメモリを持っていないため、 その精度が。 その他のご質問は? うん? 観客:そう浮くだけで可能に あなたの整数を超えてどこへ行く? LUCASフレイタス:はい。 LAUREN CARVALHO:まあ、フロートだけ あなたは小数点以下を持つことができます。 LUCASフレイタス:それはちょうどことを意味します 今小数を持つことができます。 観客:なぜだろう 今までの整数を使うのか? LUCASフレイタス:なぜだろう あなたは、整数を使うのか? あなたは0から10までカウントしているかもしれない場合には、 あなたが実際に整数を使用したい。 あなたは、floatを使用する必要はありません。 いくつかの状況ではない 実際に持っている - LAUREN CARVALHO:たぶん 小数を望んでいない。 LUCASフレイタス:たぶん、あなたはしないでください フロートを使用したい。 LAUREN CARVALHO:他の事はある、 floatとint型を入れて、両方の、覚えて 多分それらを格納する32ビットを取り、 あなたは上のビットを無駄にしたくない 小数点以下の桁。 LUCASフレイタス:うん。 そうのように、ちょうどこの考えてみてください。 あなたは、両方のための32ビットを持っている int型とfloat型。 int型のため、すべての32ビット 整数部に移動します。 あなたは、32ビットで浮動小数点数を使用する場合 このメモリの一部が使用されてきた numberには、整数のため、 とに使用され、他の部分 小数点以下の桁。 だから、あなたがに得ることができないことを意味します フロートと非常に多くの理由 フロートはすでにたくさんのを使っている 小数点以下の桁数のメモリ。 うん? 読者:その最初の答え、 それが正確に何をやっている? それは等しいfloat型の値を設定されている そのプレースホルダにあなたができることに 次の行でそれを思い出す? それは、答えをフロートと言います。 LUCASフレイタス:うん。 だから、フロート答えはあなたが取得していることを意味 今、メモリ内の小さなバケツという フロートを保持しており、それが起こっているの その答えと呼ばれていました。 だから、フロートの答えが何をするかだ。 そして、あなたは言うの内側 これは、置くつもりだ この結果。 だから、1.0で割っやろうとしている 10.0は、あなたが0.1を取得し、その後、置く 答えの内側。 LAUREN CARVALHO:だから1行では、我々はしている このフロートを宣言し、初期化する その答えと呼ばれる。 LUCASフレイタス:興味深いことに、ものの これは単なる1行である、それはやっている 複数の操作。 これは、Cさせるのでだけの方法だ あなたが少ないコードを使用しています。 これは、三元と同じことだ あなただけ行うことができますどのように演算子、 [聞こえない] 1行で。 これは、実際と同じことをやっている フロート答え、セミコロン、およびをしてい そして答えは代わりますが、これに等しい あなたはそのための2行を行うこと、 それはショートカットのようなものだ。 うん? 観客:だから、あなたがこれを実行した場合、 それは0.10でしょうか? LUCASフレイタス:はい。 うん? 観客:実際にコードに答えると、 またはそれは名前だけでしょうか? LAUREN CARVALHO:この 実際のコードである。 これは我々が行っているものです 私達の変数名に。 観客:だから、それだけだ 名[聞こえない]。 LAUREN CARVALHO:うん。 私は、フロートxが1.0に等しいと述べたかもしれない。 LUCASフレイタス:事はことである 変数の名前です。 お使いの何か。 それはあなたのために重要です。 実際のプログラム、唯一のもののために 事項は、あなたの値であることを バケツの中に持っている。 あなたは、変数を持っているとした理由 変数の名前は、そうあなたが知っていると思いますです 何がどのように、扱っている あなたがしているデータの種類 一度にアクセス。 しかし、コード自体については、呼び出す場合 それが答えか質問か何か、 ほとんど、それは問題ではありません。 それは関係ありません。 限り、あなたはすべての中で一貫しているように 発生それので、あなたはそれを呼び出す 何か他のもの。 うん? 観客:変数の操作を行います 機能を超えた? あなたは、ブラケットを作成した場合と同様に [聞こえない]、可能性だけでは [聞こえない]もう一度答える? LAUREN CARVALHO:いいえ。 観客:[聞こえない] LAUREN CARVALHO:いいえ。 それは範囲外になります この特定の変数の。 そして実際に、それは一種のだ 我々が持っているときなので、面白い ループまたはこれらの場合のようなもの 条件は、変数を宣言する場合 中括弧の別のセット内で、 それは本当に唯一の存在 これらの中括弧内に。 観客:最後の注意について [聞こえない]山車。 なぜあなたはint型を使用したいのでしょうか? これはよりサイドノートの詳細です 何が、あなたのコンピュータであり、 整数を扱うに有意に優れて それはフロートの取り扱いであるより。 それが順序のようなものだ 大きさは速い。 だから、我々だけで処理した場合にのみ、浮く 物事がたくさん遅くなるでしょう。 LAUREN CARVALHO:実際にはあるようだ フロートに問題がある。 LUCASフレイタス:理由の種類 あなたが考えることができることを、どのようにバイナリである あなたは、整数を表すことができます 0と1を引くことができます。 LAUREN CARVALHO:それは 次の事。 LUCASフレイタス:わかりました。 素晴らしい。 LAUREN CARVALHO:ちょうど その考えを保持します。 LUCASフレイタス:[OK]を、私はよ 後で教えてくれ。 LAUREN CARVALHO:私たちは何に到達する前に ルーカスはちょうど言っていた、オペレータ 優先。 これは常識である。 あなたたちは、この十分に行っている。 だから、何かが括弧内にいたかの、 それが最初に発生します。 これは、乗算が優先されます さらに上の、 減算、そのようなこと。 だから実際には、誰もがしたいん 実際に何がナンバー1を教えて と評価された? 観客:27。 LAUREN CARVALHO:27? うん。 LUCASフレイタス:私を挙げてみましょう 人にキャンディー。 LAUREN CARVALHO:すべての権利。 何番2はどうですか? 何番2はどうですか? 観客:22。 LAUREN CARVALHO:22、ええ。 私はそれを得たか分からない。 数3? 観客:10。 LAUREN CARVALHO:10、はい。 涼しい。 そうモジュロ。 ルーカスは、あなたがを法を説明したいと思いますか? LUCASフレイタス:モジュロこの演算子である それは実際に非常に便利です 問題の束。 私はそれが何をするか55を法10を行うと これはの私はしたいことを言わせて 10で55で割ります。 私は何を手に入れたのか? 私は実際にいたらそれだけのように感じている 割り算をして、何 私は、整数を得た初めて? 観客:5。 LUCASフレイタス:5。 した後、残りの部分は、右、5ですか? だから、5回10プラス5のようなものだ。 基本的に、どのような法と、それはしようとしません この1でこの数を分割し、 それは余りあるもの見ている 分裂。 LAUREN CARVALHO:だからそれだけ 余りを返します。 だから、ナンバー1は何ですか? 5。 数2? 観客:3。 LAUREN CARVALHO:3。 数3? 0。 そして4は1です。 その通りです。 LUCASフレイタス:単純な、右か? LAUREN CARVALHO:なぜ我々はこれを省略しない 私たちは本当に持っていないという理由だけで 時間、人々は理解しているようだ。 だからここにルーカスが何だったの ただの話。 LUCASフレイタス:なぜもう一つの理由 代わりに、floatのint型であるを使用します 山車は非常に不正確であること。 そして、なぜ彼らは不正確である? デビッドは、整数を表すためにと言った、 例えば、我々は0を使用し、 1の、右? そして、あなたは基本的にやる 乗算、ないすべてのもの 操作は、知っている何十進数 ではなく、バイナリの持っている。 私がしようとした場合、今何が起こるか 小数点を置くか? 実際に、例えば、私が持っている場合 3.33333のような数? これは、3以上10のように感じている。 どのようにして保存しようと思って、すべての 3、私はその後持っていることは? それは右、本当に難しいです! あなただけのコンピュータを言うことができない、 ねえ、私は3を持っており、 あなたは永遠にそれを行う。 実際にコンピュータではありません このため十分にスマート。 そこで、基本的にすべてのコンピュータがされません それはできるだけ多くの数字を入れしようとしていること それは、最大使用しているメモリにできます。 それでは、それがために起こっているとしましょう 3.3333を言うと、それはそれだ。 だから、実際に表現することができません まさにそのフロートがある。 LAUREN CARVALHO:私たちは、有限個を持っている ではないことを意味するビットの すべての小数があることを行っている 正確に表現することができるように。 そして、我々はあるので、この例では、IF 0.1をプリントアウト、我々は今プリントする うち20箇所。 LUCASフレイタス:私が言っていたのと同じように あなたたち、あなたはいくつでも置くことができます。 しかし、あなたはちょうど2つの場所をした場合には、 あなたは20を置く場合には、0.10が、を取得したい 場所、それはあなたの束を示しているために起こっている のの、これはあなたが置くことができるものであるため、 メモリには、右か? しかし、右ここでは、0まで、 そして、ちょうどその置かれている 乱数の束。 これは一種の一部のようなものです - LAUREN CARVALHO:我々はしているためです この小数を表現することができません 正確に番号を持つ ビットで、我々は持っている。 LUCASフレイタス:そして コンピュータは基本的に あなたのゴミの番号を与える。 これは実際にはありません 番号の値。 観客:それは、できるだけ近いです それは得ることができます[聞こえない] [聞こえない]を使用。 LAUREN CARVALHO:だから含意の これがそれですが言わせていることはなく、 0.100014であること、何でも、 それは何0.0999だった場合 - そうですね。 それでは、実際の答えを考えてみましょう これ0.9999999だった。 それは1に非常に近いですが、 それは正確に1ではありません。 それは0.99999です。 それは私が0.999それを取ればことを意味し、 と私は0を取得し、int型にキャストします。 私は1を得ることはありません。 LUCASフレイタス:覚えているので、鋳物 フロートからintへの、あなただけの すべての小数点以下を無視します。 あなただけのそれらを無視。 切り上げのようなものはありません あなたはキャスト時に上下稼働。 実際には、この機能が存在するよう 非常にある、丸めない 重要なのは、しかし、あなたはちょうどその時だと思い あなたは型キャストを行うと、それだけだ すべて削除する予定。 ですから、0.99999であっても、それが起こっている あなたは型キャストした場合だけ0を与える [聞こえない]整数。 LAUREN CARVALHO:だから本当に注意してください 精度の浮動小数点、 あなたが開始する場合は特に PSET1に浮かぶを使用します。 必要がありますが散歩 あなたにもそのことを警告している。 LUCASフレイタス:そして実際に、それは本当にです 私が行った場合には、例えば、ハード フロート答え1オーバー1.0に等しい 10、そして、答え2フロート 10.0 100.0上で等しくなります。 彼らは、同じ番号である、右か? 0.1、右? 10または100以上10以上1。 しかし、今、私は平等を参照しようとすると、 のような答え1が2に答えるに等しい場合には、 多分それは実際にはないだろう 同じことであると。 だから、山車は一種のようなものです。 彼らは、平等をして似ている。