[MUSICのPLAYING] DAVID J.マラン:すべての権利。 これはCS50およびこれです 2週目の開始です。 そして、あなたはそれを超える思い出し 過去数週間、 我々は、コンピュータを導入してきました 科学とは、順番に、プログラミング。 そして、我々は、を介して話を始めました スクラッチ、そのグラフィカル言語 MITのメディアラボから。 そして、最近、 先週、私たちはやりました higher-- aを導入します 下位レベルの言語は、既知の C、純粋にテキスト何かとして。 そして、確かに、最後の時間、私たち その文脈の中で模索 概念の数。 これ、リコール、非常にでした 私たちが見た最初のプログラム。 そして、このプログラムは、非常に単純に、 プリントアウトし、 "こんにちは、世界。」 しかし、そんなにあります 見せかけの魔法が起こっています。 これの#includeがあります これらの角括弧付き。 int型があります。 (ボイド)があります。 括弧、中括弧があります、 セミコロン、およびそんなに多く。 そしてそう、ということを思い出します 我々はスクラッチを導入しました 私たちは、理想的には、過去を見ることができるように、 その構文、本当にないですもの 知的すべてのこと 早い段階で興味深いが、 、絶対に、少しトリッキーです あなたの心をラップアラウンドします。 そして、確かに、最も一般的なの一つ 早い段階でのプログラミングクラスのもの、 特に以下のもののために 快適でイライラすることです および特定の統語によってアップトリップ エラーは、論理エラーは言うまでもありません。 だから我々の目標のうち、 今日、実際には、意志 いくつかであなたを装備すること どのようにするための問題解決技法 より良い問題そのものを解決するために デバッグの形態です。 そして、あなたは、あまりにも、思い出すことでしょう 我々は導入環境 前回は、CS50 IDEと呼ばれていました。 これは、ウェブベースのソフトウェアです あなたは雲の中にプログラムすることができ、 ので、あなたのすべてを維持しながら、話すこと 我々は再び今日れるように、ファイルを一緒。 そして、その私たちを思い出します ここではこれらのトピックを再訪し、 その中で機能し、ループ、 変数、ブール式、 そして、条件。 そして、我々その実際にいくつかのより多くの スクラッチの世界から翻訳 Cの世界へ しかし、基本的なビルディング いわばブロック、 本当にまだ同じ先週でした。 実際に、私たちは本当にちょうど持っていました 異なるパズルのピース、可能ならば。 その代わりに紫の ブロックを保存し、私たちの代わりに である、のprintfました Cでこの関数こと あなたが何かを印刷することができます そして、、画面上でフォーマットします。 私たちは、CS50を導入しました 図書館、あなた あなたの処分のget_charで今持っています、 そして、get_int、およびget_string、 そして、いくつかの他の機能として、 よく、それを介してあなたが入力を取得することができます ユーザー自身のキーボードから。 そして、我々はまた、物事を見ていました these-ブール値、お​​よび文字など、 ダブル、フロート、 int型、long_long文字列。 そして、Cのさえ他のデータ型があります あなたが宣言し換言すれば、 いくつかの値を格納する変数、 または、機能を実装する場合 それはいくつかの値を返し、 あなたは何を指定することができます ある値の型。 それは、文字列は次のように、あります 文字のシーケンス? それは、整数のように、番号はありますか? それは浮動小数点です 値、など? だからCで、スクラッチとは異なり、私たちは実際に データの種類を指定するようになりました 我々は戻ってまたは使用していました。 しかし、もちろん、我々はまた、に走りました コンピューティングのいくつかの基本的な限界。 特に、 この言語C、リコール 私たちが見ていたこと 整数オーバーフロー、現実 あなたが唯一持っている場合に メモリの有限量 または、具体的には、有限数 ビットで、あなただけの非常に高いカウントすることができます。 そして、私たちはここで、この例を見て これにより、飛行機内のカウンタ、 実際には、十分な長さで実行されている場合、希望 ソフトウェアのオーバフローと結果 実際の物理的な潜在的なエラー。 また、フローティング見 ポイントの不正確、現実 その唯一の有限数で ビットの、それは32か64だかどうか、 あなただけの非常に多くの数を指定することができます 小数点の後、これを使用した後、 不正確な取得を開始します。 で三分の一は、例えば、そのように ここでは、私たち人間の世界では、世界、 私たちは無限の数を知っています 小数点以下3秒の。 しかし、コンピュータが必ずしもできません 数字の数が無限であることを表します あなたが唯一許可されている場合、それいくつかの 情報の有限量。 だから私たちはあなたを装備しただけでなく、 面で大きな力を持ちます あなたがで自分を表現する方法の プログラミングの観点から、キーボード、 我々はまた、どのような制限され あなたが実際に行うことができます。 そして実際、バグやミスができます 問題のこれらの種類の中から生じます。 そして実際、トピックの中で今日 デバッグのようなトピックであることを行っています そして実際にボンネットの下に見て 物事は先週紹介した方法で、 実際に実装されています あなたより良いように 両方の機能を理解し、 C.のような言語の制限 そして実際に、我々は層をバックはがします データ構造の最も単純なの、 配列と呼ばれるもの、その スクラッチは、呼び出すために起こる」リストを。」 それは少しです そのコンテキストで異なります。 そして、我々はまた、のいずれかを紹介します 私たちのドメイン固有の問題の最初の CS50、の世界では 暗号化、スクランブルの芸術 または情報を暗号でそう あなたは秘密のメッセージを送ることができます そして、秘密のメッセージを解読 二人、AとBの間 そこで、遷移前 その新しい世界へ、 それでは、いくつかであなたを装備してみましょう あなたは排除することが可能な技術 または少なくともいくつかを軽減 欲求不満の あなたはおそらく発生していること 一人で、過去一週間以上。 実際には、あなたの前のいくつかをsuch--されています C.そしてオッズであなたの最初の問題があり、 あなたが私に似ている場合は、初めて あなたがプログラムを入力しようと、 あなたは論理的に考える場合でも、 プログラムは非常に簡単です、 あなたは非常によく壁にぶつかる可能性があり、 コンパイラは、協力するつもりはありません。 メイクやクランは行っていません 実際にあなたの入札を行います。 そして、なぜそれがあるかもしれませんか? さて、見てみましょう、 おそらく、簡単なプログラム。 私は先に行くと、これを保存するつもりです 故意にbuggy0.cと呼ばれるファイル、 私はそれを知っているので、 事前に欠陥があります。 しかし、私はこの場合ことを認識しない場合があります 第一又は第二又は第三のプログラムであります 私は実際に自分自身を作ってるんだということ。 だから私は先に行くつもりだと 、int型メイン(ボイド)を入力します。 そして、私の中括弧の内側に、 こんにちは、world--(「非常に精通して バックスラッシュ、n個 ") - およびセミコロン。 私は、ファイルを保存しました。 今、私がダウンして行くつもりです 私の端末ウィンドウに タイプメイクbuggy0、なぜなら、再び、 ファイルの名前、今日はbuggy0.cです。 だから私は入力して、buggy0を作る入力します。 そして、ああ、まあ、前回からリコール エラーメッセージが表示されないことは良いことです。 だから、何も出力は良いことではありません。 しかし、ここで私が明確に持っています ミスをいくつか。 出力の最初の行だから buggy0を作る入力した後、リコール、 クランのかなり詳細な出力です。 ボンネットの下に、 CS50 IDEが構成されています の全体の束を使用するには このコンパイラでのオプション あなたが持っていないように、 それらについて考えて。 そしてそれはすべてのこと最初の行です クランで始まる手段。 しかし、その後、問題 その外観を作るために始めます。 3行目のBuggy0.c、文字 図5は、大きな、赤いエラーがあります。 それは何ですか? 暗黙的にライブラリ関数を宣言 int型(のconst char型*とのprintf、 ...)[-Werror]。 私は非常に迅速に、それを意味します 非常に難解な取得します。 そして確かに、最初は 一見、我々はないでしょう あなたが理解することを期待 そのメッセージの全体。 レッスンのだから1 今日のために起こっています 気づくしようとすることにします パターン、または類似のもの、 あなたが持つかもしれないエラーに 過去に発生しました。 これだけ離れていじめるしましょう 見覚えがそれらの言葉。 大きな、赤いエラーが明らかに 間違っている何かの象徴。 暗黙的に宣言 ライブラリ関数のprintf。 だから私は非常に何を理解していない場合でも、 暗黙的にライブラリ関数を宣言 手段、きっと問題 何とかprintfのためにも関します。 そして、その問題の原因 それを宣言するに関係しています。 関数である宣言 最初にそれを言及。 そして、我々は先週の用語を使用しました 関数のプロトタイプを宣言する、 いずれかの上部に1行を使用して 自分のファイルやいわゆるヘッダファイルインチ そして、何のファイルに私たちは言っていました 先週のprintfが引用であることを、 引用終わり、宣言? どのようなファイルでは、そのプロトタイプはありますか? 私は非常に最初の事、あなたが思い出すのであれば 入力された、ほぼすべてのプログラム最後time-- そして、誤って一瞬前に開始 myself--を入力すると、この1 here--ました hash--する#include